{"_id":"watchr","_rev":"182-92b9dea6a89b63baaa4a2c7f1cdfae1c","name":"watchr","description":"Better file system watching for Node.js","dist-tags":{"latest":"6.11.0","next":"6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd"},"versions":{"0.1.0":{"name":"watchr","version":"0.1.0","description":"Node.js watching library, as all the other ones suck.","homepage":"https://github.com/balupton/watchr","keywords":["watching","watch","files","directories","smart"],"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/balupton/watchr/issues"},"licenses":[{"type":"MIT","url":"http://creativecommons.org/licenses/MIT/"}],"repository":{"type":"git","url":"git://github.com/balupton/watchr.git"},"engines":{"node":">=0.4.0"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"main":"./lib/watchr.coffee","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@0.1.0","dependencies":{},"devDependencies":{},"_engineSupported":true,"_npmVersion":"1.0.104","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"f9533dc60d942b0bb5b68e098aedfc4d2d75a8cb","tarball":"https://registry.npmjs.org/watchr/-/watchr-0.1.0.tgz","integrity":"sha512-VvyEpCXTclJn1bSw4s3JDp52S/gAdm+ZUq79klDLbTHJ8261ov6iLPEjYC0lOr7iXaHXm+2ogAYTfiOJbNkUZw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2ahAaxfYuyOJHQv07JGJLBN6eWHCS1JXw8E82TW8yLQIhAL2TU4/bK9Wjg97ij4bp5AnRSavpDR681GywP2K9RxxD"}]}},"1.0.0":{"name":"watchr","version":"1.0.0","description":"Node.js watching library, as all the other ones suck.","homepage":"https://github.com/balupton/watchr","keywords":["watching","watch","files","directories","smart"],"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/balupton/watchr/issues"},"licenses":[{"type":"MIT","url":"http://creativecommons.org/licenses/MIT/"}],"repository":{"type":"git","url":"git://github.com/balupton/watchr.git"},"devDependencies":{"docco":"0.3.x","bal-util":"1.1.x","mocha":"0.11.x"},"engines":{"node":">=0.4.0"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"main":"./lib/watchr.coffee","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@1.0.0","dependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-beta-4","_nodeVersion":"v0.6.6","_defaultsLoaded":true,"dist":{"shasum":"ce023fd59edae9430523031915c1812ff2302c27","tarball":"https://registry.npmjs.org/watchr/-/watchr-1.0.0.tgz","integrity":"sha512-qaR72INd8EsMZ63VY+o91n6KHyy4gPUb0td2vsQQEWfgApg5NxXWBSh3zSXWoaJc7PS3imSNPggiHnQJfKxpNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICY8eHM43w6m2SfSbKkEpNvQNf01rxy32NIZ7AQdH/PIAiEAuyIkIVAC6VEmdFYj65E6faPe9pBQ8dSpA3lo1BcfpRA="}]}},"2.0.0":{"name":"watchr","version":"2.0.0","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"coffee-script":"1.3.x","bal-util":"1.5.x"},"devDependencies":{"docco":"0.3.x","mocha":"1.0.x"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"scripts":{"test":"node ./node_modules/mocha/bin/mocha"},"main":"./main.js","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@2.0.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"1eaf327206dee032001ad39e28b817ac4ab803f9","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.0.0.tgz","integrity":"sha512-tdyGINUlNJSSP3kN9PobE+yA9fsaw0Ubs3GGTeVQXItRPvNKCSJ1vxMj4tWG7j88u75JfDyhDK1pTl74TnlE5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFd0DepyYiINmjeNM21BIGDpIuxssxBTZLGj/9nOUz9oAiB4EC+wjHqeF0+DVcPoT553TRkZ9+eaRW7oRinpCLkZGw=="}]}},"1.1.0":{"name":"watchr","version":"1.1.0","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"coffee-script":"1.3.x"},"devDependencies":{"bal-util":"1.5.x","docco":"0.3.x","mocha":"1.0.x"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"scripts":{"test":"node ./node_modules/mocha/bin/mocha"},"main":"./main.js","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@1.1.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.12","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"3808bb2bdfb1bb6bc435cd3731dd2b23c1c713b1","tarball":"https://registry.npmjs.org/watchr/-/watchr-1.1.0.tgz","integrity":"sha512-rPXVwNQmaeemTq716LWcyPECMDsNQ4BtMUMn3S3sQznmdpzEGU2rPH7WmAaiHG/2DbS91usRwRJEIw2R4sbjlA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGvEKiFoqncZUgam8BPcaDwg3AW18rGEnGjYYSmBkKvVAiEAwA+ZSXtMFXMZ3OlIhw6MjLgmd0Nf5BOdDikrSy36I7g="}]}},"2.0.1":{"name":"watchr","version":"2.0.1","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"coffee-script":"1.3.x","bal-util":"1.5.x"},"devDependencies":{"docco":"0.3.x","mocha":"1.0.x"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"scripts":{"test":"node ./node_modules/mocha/bin/mocha"},"main":"./lib/watchr","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@2.0.1","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"2e3f8a25c1b30cf56f1fdcc2c25bacf9147f3fc2","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.0.1.tgz","integrity":"sha512-Iyay+WaEV4sMyjGET+9k9dK8NmVdAVud4dVl+SOvQtelF9VXWkn9itbGC8RmCxmbhb8P5Jo1/nUQiYgXoSPk/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZTGDwaPvogEYjFWNDpic2AgylxLASm7IbIaqaYLsIMAIhAOENc4HsQi2vW6gnNtP7IrKAltCSB2f3kcrjYwuAusky"}]}},"2.0.2":{"name":"watchr","version":"2.0.2","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.5.x"},"devDependencies":{"coffee-script":"1.3.x","docco":"0.3.x","mocha":"1.0.x"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"scripts":{"test":"node ./node_modules/mocha/bin/mocha"},"main":"./lib/watchr","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@2.0.2","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"a24f24d56eac5d3f0778f225bd72a5c85cc02e80","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.0.2.tgz","noattachment":true}},"2.0.3":{"name":"watchr","version":"2.0.3","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.5.x"},"devDependencies":{"coffee-script":"1.3.x","docco":"0.3.x","mocha":"1.0.x"},"bin":{"watchr":"./bin/watchr"},"directories":{"lib":"lib"},"scripts":{"test":"node ./node_modules/mocha/bin/mocha"},"main":"./lib/watchr","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"_id":"watchr@2.0.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.15","_defaultsLoaded":true,"dist":{"shasum":"a9c72f3b2aa89ad661cae57f77629193b3107b06","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.0.3.tgz","integrity":"sha512-+cQ4WT23IR5n6KfDutefRpG3yU42ltD7GZct6OU2yTgJFGF06qX9EgTR8ucq6u3d+dZOBHW9m1IzOtSMsNPyCQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7roB+g2nwKKMxF6/udoIU9yGA4VasVzZBsUAr6IpcAAiADr4HSjDAEu4JRwy3AIYhDSu8d+GQM8Ntlrrp16/CY+Q=="}]}},"2.1.0":{"name":"watchr","version":"2.1.0","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.9.x"},"devDependencies":{"coffee-script":"1.3.x","joe":"1.0.x"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.0","dist":{"shasum":"cb88a2f3fbce40c3b7681a8ccf4b260b97efe9d5","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.0.tgz","integrity":"sha512-1m6Tqkio75dobMAI8nrx0mnGmlwSDAurx/5ShdCBqRflOZL3cGjXwMSHOnCLj9A+/+Z55e/QcGbpcS7gmRoRYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDePNq0u4Iv95foBIa/4Hgmngz79fWQ+UCeahbA/b8uCgIgN8MBTzxrScbQHPFl1bAOQEl+FIN9cFcDpe5jfwx1lRM="}]}},"2.1.1":{"name":"watchr","version":"2.1.1","description":"Provides a better and normalised API between Node's 0.4 watchFile and 0.6's fsWatcher","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.11.x"},"devDependencies":{"coffee-script":"1.3.x","joe":"1.0.x"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.1","dist":{"shasum":"1e1d1a83916e65c1423acda65f5d277cc31724c9","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.1.tgz","integrity":"sha512-p/JzxmqZ0eYFguEsxVjxrmQoY4VafNSQ0TTrD6+YHUTtHLmKTRQXBQFUc1asTOE01Ql7N2Xp1NgEoeLdggr4Mg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA53NrGQF8WhEp/yXLYJskGcpa7bnjkeIGEtjk1uITRIAiEAr6ALaop0epTYp8DH1yv4ODEv7V0kmne/MplObguiwhk="}]}},"2.1.2":{"name":"watchr","version":"2.1.2","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.11.x"},"devDependencies":{"coffee-script":"1.3.x","joe":"1.0.x"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.2","dist":{"shasum":"a8b2dbc21f6ea18a69119b7e5a0aaf343dff89ec","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.2.tgz","integrity":"sha512-QO+3u9TT0RtykjJSmv1qs39uOBki5aI14pPwMRizZUEgASjsl5rtEvmq+UBICLHw/kWSGxHkovPiRruO0Ry9cg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDatc81M/dz27svSxctqojoixdMXdBVct9mKDCuCpF3CAIga0vhFeFsOg1TfhBYDDi/wtthU0ICI9LjUKVOmZkEnh0="}]}},"2.1.3":{"name":"watchr","version":"2.1.3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.11.x"},"devDependencies":{"coffee-script":"1.3.x","joe":"1.0.x"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.3","dist":{"shasum":"eb1b5b4341fbbafaf532d45c7d26804ebe0389d3","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.3.tgz","integrity":"sha512-SsZxfw2Xv+fe4Kqb9+M9KUmOAuu0ibfLeaRVwBv0ptqkiMmGOzaKz2qfBwAIVL2n4tvFs89lBEWLfrxS1zK4Rg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBu8T4vT/J43ZSlInALXRmznecS/3A09Tx7ygT11FRfAIgH7kdRoEk3owotY6A82zcMs/ITGJKGvymX/PKEz7lWLc="}]}},"2.1.4":{"name":"watchr","version":"2.1.4","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.13.x"},"devDependencies":{"coffee-script":"1.3.x","joe":"1.0.x"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.4","dist":{"shasum":"9c1a405ca923a78cd6e4b8e372327c31f901cb07","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.4.tgz","integrity":"sha512-wJsfP8C8IWIbF6Ek/siEv0zvLZkyWiU9FwlFxqrTRhe6kW1lbJAQssDmJKZimeqoZIm1NzWH/pv31iuNiLb2Hw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqN966XKRvdUEGQT3uhN1j0s4uebTe/LMwNi2t6i3uEAiEAkBnOlkbX5VhTuns0WT2Izqv/APSzlBsTrSlDMkRLglU="}]}},"2.1.5":{"name":"watchr","version":"2.1.5","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.13.x"},"devDependencies":{"coffee-script":"1.3.x","joe":"1.0.x"},"directories":{"lib":"./out/lib"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.5","dist":{"shasum":"4e570a0da0105debdd89c86052f95affcafddaf4","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.5.tgz","integrity":"sha512-20c6a2sb287dvsoqDM40K3Qdajfzof3LM5R0wZQ6pZLcS/vhggVoJvlTXmpF4OYNI5YHdFzOGg8RFjJNrHeh4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAx+TXGh+v98uXbdhCgvsRF2NPFU2NUXgrwOj74e06qtAiBoTe8mV9ZcX62t5VhxQNsdGTobbfb9gLmYiSFUoz+4vw=="}]}},"2.1.6":{"name":"watchr","version":"2.1.6","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.13.x"},"devDependencies":{"coffee-script":"1.4.x","joe":"1.1.x"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.1.6","dist":{"shasum":"6dc895bf6c95ab6f5e06d811948b320a98413891","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.1.6.tgz","integrity":"sha512-lHz6bHbErWuAcaIs/Igsra705T0tL0crLLuzyqtAeWNaRX992hwUWlaoyR/ECTzOoCu4W4mzu8/aAMj0nDVZ8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIANr+n8W22kiJyFcC0HZctYRPprIjtb5J/TU8jLINZNiAiEA4IyxV8jE+1LaBRKpuhaUkRIsVOzikxlZjvnFvxsK770="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.2.0":{"name":"watchr","version":"2.2.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"1.15.x"},"devDependencies":{"coffee-script":"1.4.x","joe":"1.1.x"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.2.0","dist":{"shasum":"88c42221d7582c60aab3bed0c0f74d109d8e0263","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.2.0.tgz","integrity":"sha512-bYZrqlM8sKRLFayPQassBkEbqt09NWOJsxpLb68c4Jkf18c1Vf5ICro1hbkAtcWN5XdW0Pa6g/qJBc7kDFfZIQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEgQp3+SNDczFRPF3OM9KJVl8uugn5GOPnXMLjmTiozgIhAKDApCMS9Jjc2HYKZHLlHJXswlnvnI0+Auv//uQGiBZB"}]},"_npmVersion":"1.1.62","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.2.1":{"name":"watchr","version":"2.2.1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"~1.15.2"},"devDependencies":{"coffee-script":"1.4.x","joe":"1.1.x"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.2.1","dist":{"shasum":"68d9187f21f4999a6692c440c733e0747b438bac","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.2.1.tgz","integrity":"sha512-xqesMNLcIjJYoZZQfmPOL9K1fhG9ZuM5ZzzG7GakgDyXEe+UKy/f7eDyi1LFPDLDF7pVSBufYrUbqxVtA5af+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFQVID1kIHF+ErPXBLqUp9J3UVKFF6o+mkcCkou4A4LoAiAK9HCMyWKLiogK5A7JjkGr7x50xqDtj6dZlxz5AqG6OQ=="}]},"_npmVersion":"1.1.69","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.0":{"name":"watchr","version":"2.3.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"~1.15.2"},"devDependencies":{"coffee-script":"1.4.x","joe":"1.1.x"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.0","dist":{"shasum":"fe012981db0b45973beeeae001380db62015459a","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.0.tgz","integrity":"sha512-MJxGe5/vR+4fmqA9K659PskeN0APw11eocagc5z24onBjDWxmnaY4gkc6EW6ezjNKTK/xiM05SDk+5RcDXL94Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHk3fEjx4XSsCxe+BeNExMMN3m9Z6dUU8id4+jNX5ENKAiEAn11tgkHFv9dE3CD2xEOmTqNX1xzDFki+Y1fuOod6RTc="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.1":{"name":"watchr","version":"2.3.1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"~1.15.2"},"devDependencies":{"coffee-script":"1.4.x","joe":"1.1.x"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.1","dist":{"shasum":"d8a8c9fe9d4d4db9726422d61dcc4ec74e1e080c","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.1.tgz","integrity":"sha512-bAykV4HcxX0rDNfaXpZp6tWFvWuDV3l5o9UeJQ9K9E6jZWZnJ/Quu8n9RD5MmhFhoE0WiuSysXga0VA/lKSdgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsK8eICMMn/AXdbhSmjb7GxpoaU7E1BXnSlMu2HXl6KAiEAwR/7CfOpaVC0bRSnrIn4PyizbqzhwWDzPzkDEFBtPfI="}]},"_npmVersion":"1.1.62","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.2":{"name":"watchr","version":"2.3.2","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4.0"},"dependencies":{"bal-util":"~1.15.2"},"devDependencies":{"coffee-script":"1.4.x","joe":"1.1.x"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.2","dist":{"shasum":"e644f88a0332acd47c03ea091f25fa4951756eca","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.2.tgz","integrity":"sha512-MMdGt8zltHkH2ydppunPfBatEqXAr07XWNs5EesU2z7vZbo3D93IHftabC+0BDh4TzEPzJjf0dq9CnP3UdRbMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICAVUQCv9nsPfgfnHLVkVDcl8iX6rBuOUB8lmRa6vOi8AiA/8r93ufGZmZgIY/6ivnjsEk7mNZNzwEIisFCGpQcflA=="}]},"_npmVersion":"1.1.70","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.3":{"name":"watchr","version":"2.3.3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.15.4"},"devDependencies":{"coffee-script":"~1.4.0","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.3","dist":{"shasum":"bd0d67b87a616d4c1cce43fe996d9b89f8d43864","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.3.tgz","integrity":"sha512-qb6sj7J96J1LUduDD9bFGs/VCVpsqtbHUX2BgW6BqmJqkDiKij1EgiiXFLzLnVpYUa8gNOptbtgt986Az2kLdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICXqwRoEsykO4lp1yycpIbs/Pmd9C1Y9yIxeMVC8YrpqAiAaOqkATUKVnGZgl1NdHjKTk7RpTf31Famp6mA87Ng/Xg=="}]},"_npmVersion":"1.1.70","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.4":{"name":"watchr","version":"2.3.4","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.16.3"},"devDependencies":{"coffee-script":"~1.4.0","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.4","dist":{"shasum":"625991fa11b5d65c99e732bb92b0a728ddbba37d","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.4.tgz","integrity":"sha512-4gzOm3lK3xt/lSkTbGAaREMchLCa56OpSrM45pOsLERkILaCM7g/ea97+Ya2rr9ODCaMDwaEHC8ewKCVtoimvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAClLn+5bWCumZIGd4mgbb1Dg9eZKUs1r/rzNEVQnsyHAiEArtdehVH1j2BRTm4jgSaoxcKlKgbnSfR+UlkCR6MKH8s="}]},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.5":{"name":"watchr","version":"2.3.5","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.16.3"},"devDependencies":{"coffee-script":"~1.4.0","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.5","dist":{"shasum":"2228cd0083479090d504856bb73731d990f9644e","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.5.tgz","integrity":"sha512-eNuCAKefyCaz/hL7m9y331joTtyk9u0vOaBnbMGzcaCrXCHAVD1ZQW/UKdGwaBgPTvuZvKZLC3KxQRxkwYSdyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgQouHrYVwCDBgsLo1j+pmcem389CL8u1TtpQE4z2G/gIhAKyxC+ANGjS56QoTDOBFcxJzRLJzH/culT1QFwfAFLnK"}]}},"2.3.6":{"name":"watchr","version":"2.3.6","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.16.3"},"devDependencies":{"coffee-script":"~1.4.0","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.6","dist":{"shasum":"6017a2eb401beca89a0491c4037688d5e790d6c5","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.6.tgz","integrity":"sha512-pTZZdFg5knk8eKzmJkTKS9eGSShYjZ6cqYTpPDli4r3FIqfvtlSrxuHYgcGGjkovoqVbTcQgBppEiS3IDveAXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDxIuaOKhmfbt849YZir2OJOeiwdFfZ4FsOtTaoMLpCdAiA9Hcx1kyv2q7ynm+oWAAJ7p9E0clTfWagjvHx+7d3hIg=="}]},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.7":{"name":"watchr","version":"2.3.7","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.16.3"},"devDependencies":{"coffee-script":"~1.4.0","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.7","dist":{"shasum":"084bf2256591f7b7c6c7bbd9ea3f0df9d42ad224","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.7.tgz","integrity":"sha512-fJmfMpVpB9aeAlutxSJJMNXfOkmDLswF36gt3WuJgd9GCnrC4Lu2KBGUWbO4tK0IFx6fyfCFmtnW3KFq4DDHhg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3KtHVqJzUIIa36SIdEGo8iHAak1on4DmT386sIyzDhAIhAMm+ZzpubEFmkDDCfF2qySOtsMRrANlU+cNTo2DDNnE9"}]},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.8":{"name":"watchr","version":"2.3.8","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.16.11"},"devDependencies":{"coffee-script":"~1.6.1","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.8","dist":{"shasum":"5ee7db571030f5528049f43e8c2b286a0b831f8d","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.8.tgz","integrity":"sha512-zwQjlVGBeAXPMK4zAQjH/xmefGZDx+e4lFyaFZ+lq9lcxsHkdZud/gJtcl9vzw2qTjIT3UWZe0PEUnmhidbnYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCHwiLD0OEGh+Lp90Mxm1dH32G8DHD2fX2X6QAR5pkgHQCIQDGNQbp4/nHyN5BPGkH8H3t/AzcqFTPiDpewgTBI14vgg=="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.9":{"name":"watchr","version":"2.3.9","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.16.11"},"devDependencies":{"coffee-script":"~1.6.1","joe":"~1.1.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.9","dist":{"shasum":"29608effb16630f69c73fffc5192f49fbfd33564","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.9.tgz","integrity":"sha512-bJiaYR09yTDDhWhvI7zoAMa605U/jlUGp+pFnZAkoDHAcYfPTgOh9CE5aOJyuQGlroc7LKKBAvC6ldteFRnTYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFIlFBAQzYshfiOJjaAN5EUfNsS8wnidSF2HSkYo8gfWAiA3VVuumCx7dhiN1PDozqrCsQOPv2rqVBwJkrfYBI3DGg=="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.3.10":{"name":"watchr","version":"2.3.10","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~1.18.0"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.1.2"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js --joe-reporter=console"},"main":"./out/lib/watchr","_id":"watchr@2.3.10","dist":{"shasum":"2fe0af537071cae6a776d4523356f8f3a230b7ce","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.3.10.tgz","integrity":"sha512-so+9C/lbZTy3lFNYRwbD4VasZZ9hmi05jL45YffuAgXf7jYSJCbLeZxe5/p09N8h2cQzbn+za2lJngupvD5LhA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCibI6pvrnGc5dv+90t6GCI7CHNa9LCUH4VIVOABImNKgIhAMyd67U4slH6b2AVwFvTSsR86vQ0qHMA9ttAIcvmq5ZI"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.0":{"name":"watchr","version":"2.4.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.0.0","typechecker":"~2.0.1","extendr":"~2.0.1","eachr":"~2.0.2","safefs":"~3.0.1","taskgroup":"~3.1.1"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.2.0","joe-reporter-console":"~1.2.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.0","dist":{"shasum":"7abd838e25f0e311c5c74764a90c1c26f016dee2","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.0.tgz","integrity":"sha512-jwCVTptuMMhPFaMUodHdgmx1TIa/3SkK0rkUt9TyR5iLygGwQ+/PSbwH1VGAgOaovjsnFTczhFBd/VsszFu53w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH2JAIejHAGa6ag9f/oYRgcmSG6PCNihRP3p4YJvIKlwIgaUKCd5Hx+bNOcB5PI20QlQ36x0j+ffgcmsYJIiuUVgk="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.1":{"name":"watchr","version":"2.4.1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.0.0","typechecker":"~2.0.1","extendr":"~2.0.1","eachr":"~2.0.2","safefs":"~3.0.1","taskgroup":"~3.1.1"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.2.0","joe-reporter-console":"~1.2.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.1","dist":{"shasum":"eab77999cc2e0b33e113243ddfd0907543964193","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.1.tgz","integrity":"sha512-1jsYlDrJH83SrxK5JKkyMi0x27ZrP9SD6IwS4man8aS3bOcEmsZvLXrr+0MXgrypkSX2qXhj9vu2W2RP/6a6fA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC027W61ydBXN8KTSYuHaeiVMHERl3si14f6SZI4T5AtwIhAJandQq1ITGVYZSXbV3wqFPu4YTVohjR4RpXPXYEUSXy"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.2":{"name":"watchr","version":"2.4.2","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.0.0","typechecker":"~2.0.1","extendr":"~2.0.1","eachr":"~2.0.2","safefs":"~3.0.1","taskgroup":"~3.1.1"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.2.0","joe-reporter-console":"~1.2.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.2","dist":{"shasum":"c16cb72c163bbdd0e5787e115aabc065d6893845","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.2.tgz","integrity":"sha512-9v/dH8iXEVzKT7YR1RnbRUp8DnuLinP6PEmpO6+JFGxfz827O7XggZzgxw1qoeUDsWPOuGW+SbUpzPHknFgvYA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH8T0jkj/eUS4PJ6R4pINJl6V8X7bMoHkzKjFWmMXfqgIhANxzJiJYWJjAKpSlwTpwh7q8qPqc/p6SI4j83blLGKBn"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.3":{"name":"watchr","version":"2.4.3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.0.0","typechecker":"~2.0.1","extendr":"~2.0.1","eachr":"~2.0.2","safefs":"~3.0.1","taskgroup":"~3.1.1"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.2.0","joe-reporter-console":"~1.2.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.3","dist":{"shasum":"b7e32fc1cc7a730043a73b3fc6559ad2283af79e","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.3.tgz","integrity":"sha512-lkGw/K6ZAE2GBIEuEnjEZkNkylY/9qVoWEQ1clGQ26lLuivjM1/pq1fHRnONYWZSbRpxnRees0HwqoJlQKxFjA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRqJmE5AOyGgbd6RikiDvNnjBXpUtUiBPag6ITsvkyvwIhAJZqAPbfkoUmGz7vO2p7JzOIjTbkXAfvuoToVGyKhvaH"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.4":{"name":"watchr","version":"2.4.4","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.3.0","typechecker":"~2.0.1","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.0.3","taskgroup":"~3.2.3"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.3.0","joe-reporter-console":"~1.2.1"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/everything.test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.4","dist":{"shasum":"4a3f93a81f6846ad87416b1ee4db4cafcf95072f","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.4.tgz","integrity":"sha512-b1nppzXrF+KfI0XbkICdvz/SiitvjoYmo0AePTVujywFpcS9lEU2fLcxtfS1b/MIkiRzd2Tg1BGV9y4jH/A+9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAFekhLtYB2C6IZiK0w8oTZhNSBqhEqUvrblBSOcnIWiAiALBcKX/DrKT3DKRyfsCaZ0P+J6w6QjM51Y8YRQCcE9LA=="}]},"_from":".","_npmVersion":"1.3.8","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.6":{"name":"watchr","version":"2.4.6","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.4.0","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.0.5","taskgroup":"~3.3.1","ignorefs":"~1.0.0"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.3.2","joe-reporter-console":"~1.2.1","projectz":"~0.3.2"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.6","dist":{"shasum":"50edd0f49fc57875d06b348cb598b6c027c62f61","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.6.tgz","integrity":"sha512-FMl8HtVRccucfOmX5dZFL9O0e+3XvX60qLoFcHVX+tdYkc65UwAc6LL1H7rkB6I7Mk2P3W5VnLzXaUUVo8O8Ww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFdeMeDxtviCwohIcNk0L7BhShXhx/jUZ5UG85GDcrwwAiBwr2ercRCQCb/hO33qflu2s0tgKUW3GSOEaWQU4RNbfA=="}]},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.7":{"name":"watchr","version":"2.4.7","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.4.0","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.1.0","taskgroup":"~3.3.1","ignorefs":"~1.0.0","extract-opts":"~2.2.0"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.3.2","joe-reporter-console":"~1.2.1","projectz":"~0.3.2"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.7","dist":{"shasum":"d75ff730d332910ced5a3611a8d890dfa629aac6","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.7.tgz","integrity":"sha512-1eYQkECRodEnL5e0XNL37BTb1+nxkesMcodZcZygJWY/d+RMUaXiHZ4kgWXb5hI7rEk9ul10iFv9bn4vchys2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1DIRK1KWX42/Mzzl/oY0QrQ5yLTRUSCHDvzw0ZbnRXAIhAIUuT5VO+oKRBmSy9mzT9eE4X7UXSRA4Uhltk45Bqi4E"}]},"_from":".","_npmVersion":"1.3.17","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.8":{"name":"watchr","version":"2.4.8","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.4.0","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.1.0","taskgroup":"~3.3.1","ignorefs":"~1.0.0","extract-opts":"~2.2.0"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.3.2","joe-reporter-console":"~1.2.1","projectz":"~0.3.2"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.8","dist":{"shasum":"0ecaab4ca24ece59df918b3ced6633dfa250dbc1","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.8.tgz","integrity":"sha512-/3nE0GGkVu7k3Wivlvg6gjTXm2LOnSgdV5EIzAo1Tg9S0j6dwE/zy9+yDZDgogR7OHIam9P8CZC2i5Wm69wVjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/xcZ4WR6NELAZ/vN1hn9E2Hh8bP7wNYPAibPfyQ7NlQIgDDc+QK7NSNz1Z1M/sXYqNL+t+831l2yGobUx6Lhf9Ro="}]},"_from":".","_npmVersion":"1.3.22","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.9":{"name":"watchr","version":"2.4.9","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"david":true,"daviddev":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6","bitcoin":"https://coinbase.com/checkouts/9ef59f5479eec1d97d63382c9ebcb93a"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.4.0","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.1.0","taskgroup":"~3.3.1","ignorefs":"~1.0.0","extract-opts":"~2.2.0"},"devDependencies":{"coffee-script":"~1.6.2","joe":"~1.3.2","joe-reporter-console":"~1.2.1","projectz":"~0.3.9"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.9","dist":{"shasum":"ab2731165abacdd44a0cf8c2028f2f9688303323","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.9.tgz","integrity":"sha512-SDXMElgeOfTLTvfDC88zdsspdN8t9u6ggBpaca+GOJfuruEYArrQTiUCMz5O/xDE7IDT90otHtcI4gYJWNOZBw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBdVdCLc63ya0XV+gA1JQPyh+Kx0+Wk9TDNd2sYS/GUhAiByu3uOWFKP7+Tdh9/0dPVbInS86lxdN0RzAmJIjVmKrg=="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.10":{"name":"watchr","version":"2.4.10","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"david":true,"daviddev":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6","bitcoin":"https://coinbase.com/checkouts/9ef59f5479eec1d97d63382c9ebcb93a","wishlist":"http://amzn.com/w/2F8TXKSNAFG4V"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.4.1","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.1.1","taskgroup":"~3.3.8","ignorefs":"~1.0.0","extract-opts":"~2.2.0"},"devDependencies":{"coffee-script":"~1.7.1","joe":"~1.3.2","joe-reporter-console":"~1.2.1","projectz":"~0.3.10"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.10","dist":{"shasum":"dbf46f79f5080172786013f3d9558b3de11a7829","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.10.tgz","integrity":"sha512-E06hEFm+ZjqvDZnnf/rrGSCIzP/ActmAVjH9ThrXki08z8M6lL2GSfcipPGMKSadVCOpwhCQ4NAPToSY10baAg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVhyr1++8CeYKVWCppbxUwg74ABYnKYp4VgLP/3W5zKgIhAIKppIrxSVrKAb91BlJU+fOqIA+1aqdO6Lnoo5H/QvEs"}]},"_from":".","_npmVersion":"1.3.26","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.11":{"name":"watchr","version":"2.4.11","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"david":true,"daviddev":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6","bitcoin":"https://coinbase.com/checkouts/9ef59f5479eec1d97d63382c9ebcb93a","wishlist":"http://amzn.com/w/2F8TXKSNAFG4V"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"AaronO","url":"https://github.com/AaronO"},{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"bal-util":"~2.4.1","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.1.1","taskgroup":"~3.3.8","ignorefs":"~1.0.0","extract-opts":"~2.2.0"},"devDependencies":{"coffee-script":"~1.7.1","joe":"~1.3.2","joe-reporter-console":"~1.2.1","projectz":"~0.3.10"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","_id":"watchr@2.4.11","dist":{"shasum":"ad0ac83cafe4a198670df9c313715481674e6674","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.11.tgz","integrity":"sha512-ytbHFY4xirOS1Lu1YR6sni87IErTUToAAUq1zP4Pxx9Utc9WqiZhuCEOEX+5oH6z6BhdRSuyMXcOJhgk47NfOA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDH/JMKKZqh2ZFcYUd7GbYgCkPMPdC35rSpEi0aZqnDkwIhAJLZA+of1wHw1ilQBqfGMgFJIlzbrPSYprBAbjdx5ex8"}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"balupton","email":"b@lupton.cc"}},"2.4.12":{"name":"watchr","version":"2.4.12","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"npmdownloads":true,"david":true,"daviddev":true,"gittip":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6","bitcoin":"https://coinbase.com/checkouts/9ef59f5479eec1d97d63382c9ebcb93a","wishlist":"http://amzn.com/w/2F8TXKSNAFG4V"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"AaronO","url":"https://github.com/AaronO"},{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuk","url":"https://github.com/Stuk"},{"name":"thebyrd","url":"https://github.com/thebyrd"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"scandirectory":"~2.5.0","typechecker":"~2.0.8","extendr":"~2.1.0","eachr":"~2.0.2","safefs":"~3.1.2","taskgroup":"~4.0.5","ignorefs":"~1.0.0","extract-opts":"~2.2.0"},"devDependencies":{"bal-util":"~2.5.0","coffee-script":"~1.8.0","joe":"~1.5.0","joe-reporter-console":"~1.2.1","projectz":"~0.3.17","rimraf":"^2.2.8"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","cakeConfiguration":{"COFFEE_SRC_PATH":"src"},"gitHead":"3b97505eb0bfa717b3320a2a82c996a6cf4f7309","_id":"watchr@2.4.12","_shasum":"2b30115d0df4f7f3b7f7c999658220f34e87cf7b","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"2b30115d0df4f7f3b7f7c999658220f34e87cf7b","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.12.tgz","integrity":"sha512-874xPiGXmTuC4F0CW7GbmzQeLkIWisf8WRFneXOporFmp8GdpPCV64E9+KvXyPAvQYgiLTM4uo1NISnUvgVmvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqqIoUGpzHikQU618Urp6SsOlJkQh7CQchSKt5u4mSIAiEAyCfwk7Pwc3x+E1yeSmEVcSlec0Tdtp2f0N+wVVTFeQ8="}]}},"2.4.13":{"name":"watchr","version":"2.4.13","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":{"type":"MIT"},"badges":{"travis":true,"npm":true,"npmdownloads":true,"david":true,"daviddev":true,"gratipay":"bevry","flattr":"344188/balupton-on-Flattr","paypal":"QB8GQPZAH84N6","bitcoin":"https://coinbase.com/checkouts/9ef59f5479eec1d97d63382c9ebcb93a","wishlist":"http://amzn.com/w/2F8TXKSNAFG4V"},"keywords":["watching","watch","fswatcher","watchfile","fs"],"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"AaronO","url":"https://github.com/AaronO"},{"name":"adamsanderson","url":"https://github.com/adamsanderson"},{"name":"balupton","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"FredrikNoren","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuk","url":"https://github.com/Stuk"},{"name":"thebyrd","url":"https://github.com/thebyrd"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"http://github.com/bevry/watchr.git"},"engines":{"node":">=0.4"},"dependencies":{"scandirectory":"^2.5.0","typechecker":"^2.0.8","extendr":"^2.1.0","eachr":"^2.0.2","safefs":"^3.1.2","taskgroup":"^4.2.0","ignorefs":"^1.0.0","extract-opts":"^2.2.0"},"devDependencies":{"bal-util":"^2.5.0","coffee-script":"^1.9.0","joe":"^1.6.0","joe-reporter-console":"^1.2.1","projectz":"^0.3.17","rimraf":"^2.2.8"},"directories":{"lib":"./out/lib"},"bin":{"watchr":"./bin/watchr"},"scripts":{"test":"node ./out/test/watchr-test.js"},"main":"./out/lib/watchr.js","cakeConfiguration":{"COFFEE_SRC_PATH":"src"},"gitHead":"32b470972e2edc6f3670421da4d782c9643d68db","_id":"watchr@2.4.13","_shasum":"d74847bb4d6f90f61fe2c74f9f68662aa0e07601","_from":".","_npmVersion":"2.4.1","_nodeVersion":"0.10.35","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"d74847bb4d6f90f61fe2c74f9f68662aa0e07601","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz","integrity":"sha512-yyEIbHuTP3dN2s8752n2IdJU+eg1sbLsw6m6BgrMNsgkU7K4vXSh+TeCHW4+1SvDdCiA3UZgtYyTUs054RggoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsH/X6FQnOM4YyFgv2hUHgT2UoE771O7AhRHMryaXeXAIgC9z2dkmQAShTUvLIQwDUzz+29ufcjnjuBJLxu8q8ZTs="}]}},"2.5.0":{"name":"watchr","version":"2.5.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","slackin","patreon","gratipay","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/bevry/watchr.git"},"engines":{"node":">=0.12"},"editions":[{"description":"Source + CoffeeScript + Require","entry":"src/lib/getmac.coffee","directory":"src","syntaxes":["coffeescript","require"]},{"description":"CoffeeScript Compiled JavaScript + ES5 + Require","entry":"es5/lib/getmac.js","directory":"es5","syntaxes":["javascript","es5","require"]}],"main":"es5/lib/watchr.js","bin":{"watchr":"bin/watchr"},"scripts":{"setup":"npm install","compile":"npm run compile:coffeescript","compile:coffeescript":"coffee -bco ./es5 ./src","meta":"npm run meta:projectz","meta:projectz":"projectz compile","prepare":"npm run compile && npm run test && npm run meta","release":"npm run prepare && npm run release:publish && npm run release:tag && npm run release:push","release:publish":"npm publish","release:tag":"git tag v$npm_package_version -a","release:push":"git push origin master && git push origin --tags","pretest":"npm run test:coffeelint","test:coffeelint":"coffeelint ./src","test":"node --harmony ./es5/test/watchr-test.js"},"dependencies":{"scandirectory":"^2.5.0","typechecker":"^4.3.0","extendr":"^3.2.2","eachr":"^3.2.0","safefs":"^4.1.0","taskgroup":"^5.0.1","ignorefs":"^1.1.1","extract-opts":"^3.3.1"},"devDependencies":{"bal-util":"^2.5.1","coffee-script":"^1.10.0","coffeelint":"^1.15.7","joe":"^1.8.0","joe-reporter-console":"^1.2.1","projectz":"^1.1.6","rimraf":"^2.5.3"},"gitHead":"f674d0730e13dff2e037227119ad39040bd1cd6a","_id":"watchr@2.5.0","_shasum":"51ced53ea58b4c462f96b3e1d7297684abe00c6b","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.0","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"51ced53ea58b4c462f96b3e1d7297684abe00c6b","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.5.0.tgz","integrity":"sha512-lg1OR+X5Nvj4OMjLqZo3MWUMNek/dH5qBfBe1cWHKWy/EOCdVqJrQ6rN6YIe8aO4vZe11Wh5mLwWl9kRuAF43g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVC6tG6p91DUIbYZds1e822ap3Zwf+yLkcan1nqeT/AQIhAN7HqySBRt8zCqcoCWx8ozQlYxxtA9oTi7DreVUkczmx"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/watchr-2.5.0.tgz_1468546881637_0.5775656758341938"},"directories":{}},"2.6.0":{"name":"watchr","version":"2.6.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","slackin","patreon","gratipay","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/bevry/watchr.git"},"engines":{"node":">=0.12"},"editions":[{"description":"Source + CoffeeScript + Require","entry":"src/lib/getmac.coffee","directory":"src","syntaxes":["coffeescript","require"]},{"description":"CoffeeScript Compiled JavaScript + ES5 + Require","entry":"es5/lib/getmac.js","directory":"es5","syntaxes":["javascript","es5","require"]}],"main":"es5/lib/watchr.js","bin":{"watchr":"bin/watchr"},"scripts":{"setup":"npm install","compile":"npm run compile:coffeescript","compile:coffeescript":"coffee -bco ./es5 ./src","meta":"npm run meta:projectz","meta:projectz":"projectz compile","prepare":"npm run compile && npm run test && npm run meta","release":"npm run prepare && npm run release:publish && npm run release:tag && npm run release:push","release:publish":"npm publish","release:tag":"git tag v$npm_package_version -a","release:push":"git push origin master && git push origin --tags","pretest":"npm run test:coffeelint","test:coffeelint":"coffeelint ./src","test":"node --harmony ./es5/test/watchr-test.js"},"dependencies":{"scandirectory":"^2.5.0","typechecker":"^4.3.0","extendr":"^3.2.2","eachr":"^3.2.0","safefs":"^4.1.0","taskgroup":"^5.0.1","ignorefs":"^1.1.1","extract-opts":"^3.3.1"},"devDependencies":{"bal-util":"^2.5.1","coffee-script":"^1.10.0","coffeelint":"^1.15.7","joe":"^1.8.0","joe-reporter-console":"^1.2.1","projectz":"^1.1.6","rimraf":"^2.5.3"},"gitHead":"3e0e89c724d8c7718b326050e9590f61d5f172ac","_id":"watchr@2.6.0","_shasum":"e75c423b10be79267a0c3ef76e2ea104fe0267a5","_from":".","_npmVersion":"3.10.5","_nodeVersion":"6.3.0","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"e75c423b10be79267a0c3ef76e2ea104fe0267a5","tarball":"https://registry.npmjs.org/watchr/-/watchr-2.6.0.tgz","integrity":"sha512-eHqnPA71jn+lLf/c49mjXqQzzwKLmDdLZXiB53PtgBY8X75zqUWL2PmJWjJ45Bcy8PHOMDdVUCLEud36Lk5QZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBWi0v5KsR02oGSpQf+c3K5gmV1QDy0sKg/vQBrUbQhxAiBf0fDWdzzq15Y6q21rlmMcA0azFVI6Cbs0f4IWrBvTkQ=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/watchr-2.6.0.tgz_1468548729106_0.14081443287432194"},"directories":{}},"3.0.0":{"name":"watchr","version":"3.0.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","slackin","patreon","gratipay","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/bevry/watchr.git"},"engines":{"node":">=0.8"},"editions":[{"description":"Source + ESNext + Require + Flow Type Comments","entry":"index.js","directory":"source","syntaxes":["javascript","esnext","require","arrows","getset","const","let","classes","defaults","spread","rest","destructuring","template strings","flow type comments"]},{"description":"Babel Compiled + ES2015 + Require","entry":"index.js","directory":"es2015","syntaxes":["javascript","es2015","require"]}],"main":"index.js","scripts":{"setup":"npm install","clean":"rm -Rf ./docs ./es2015","compile":"npm run compile:es2015","compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","meta":"npm run meta:docs && npm run meta:projectz","meta:docs":"documentation build -f html -o ./docs -g --shallow ./source/**.js","meta:projectz":"projectz compile","prepare":"npm run compile && npm run test && npm run meta","release":"npm run prepare && npm run release:publish && npm run release:tag && npm run release:push","release:publish":"npm publish","release:tag":"git tag v$npm_package_version -a","release:push":"git push origin master && git push origin --tags","pretest":"npm run test:eslint && npm run test:flow","test:eslint":"eslint ./source","test:flow":"flow check","test":"node --harmony ./test.js"},"dependencies":{"eachr":"^3.2.0","editions":"^1.3.1","extendr":"^3.2.2","ignorefs":"^1.1.1","safefs":"^4.1.0","scandirectory":"^2.5.0","taskgroup":"^5.0.1"},"devDependencies":{"assert-helpers":"^4.4.0","babel-cli":"^6.16.0","babel-preset-es2015":"^6.16.0","bal-util":"^2.6.0","core-js":"^2.4.1","documentation":"^4.0.0-beta11","eslint":"^2.13.1","flow-bin":"^0.33.0","joe":"^1.8.0","joe-reporter-console":"^1.2.1","projectz":"^1.3.0","rimraf":"^2.5.4"},"gitHead":"980d791a7fe0ae76ceea6275324587b35286eb45","_id":"watchr@3.0.0","_shasum":"e49bf6c8ca666a522fdcfbab9b1cec2436ee3a0b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.0","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"e49bf6c8ca666a522fdcfbab9b1cec2436ee3a0b","tarball":"https://registry.npmjs.org/watchr/-/watchr-3.0.0.tgz","integrity":"sha512-ZKQgxfuv+2TotNO+HPR294CfZxTg+LwZ4i2eFN3Lu3rvrI6G60S8WwkgPlGe3WkgpvJp7wynmS5PIkqaWBg0wA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8XX71NDyH07zA0Bgejm9n5acDVjUVO9uieuUaS09dqQIgVBV1CNkGrVsXxZPO8pcK+enQh9TkXkfusIRVnOIaJCY="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/watchr-3.0.0.tgz_1476880780176_0.19080701563507318"},"directories":{}},"3.0.1":{"name":"watchr","version":"3.0.1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","slackin","patreon","gratipay","flattr","paypal","bitcoin","wishlist"],"config":{"patreonUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/bevry/watchr.git"},"engines":{"node":">=0.8"},"editions":[{"description":"Source + ESNext + Require + Flow Type Comments","entry":"index.js","directory":"source","syntaxes":["javascript","esnext","require","arrows","getset","const","let","classes","defaults","spread","rest","destructuring","template strings","flow type comments"]},{"description":"Babel Compiled + ES2015 + Require","entry":"index.js","directory":"es2015","syntaxes":["javascript","es2015","require"]}],"main":"index.js","scripts":{"our:clean":"rm -Rf ./docs ./es2015","our:compile":"npm run our:compile:es2015","our:compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","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:verify":"npm run our:verify:eslint && npm run our:verify:flow","our:verify:eslint":"eslint --fix ./source","our:verify:flow":"flow check","our:test":"npm run our:verify && npm test","our:release":"npm run our:release:prepare && npm run our:release:publish && npm run our:release:tag && npm run our:release:push","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:publish":"npm publish","our:release:tag":"git tag v$npm_package_version -a","our:release:push":"git push origin master && git push origin --tags","test":"node --harmony ./test.js"},"dependencies":{"eachr":"^3.2.0","editions":"^1.3.1","extendr":"^3.2.2","ignorefs":"^1.1.1","safefs":"^4.1.0","scandirectory":"^2.5.0","taskgroup":"^5.0.1"},"devDependencies":{"assert-helpers":"^4.4.0","babel-cli":"^6.16.0","babel-preset-es2015":"^6.16.0","bal-util":"^2.6.0","core-js":"^2.4.1","documentation":"^4.0.0-beta11","eslint":"^3.8.1","flow-bin":"^0.33.0","joe":"^1.8.0","joe-reporter-console":"^1.2.1","projectz":"^1.3.0","rimraf":"^2.5.4"},"gitHead":"782e194fe7e3122173c21a690bc8f6f041da0b1c","_id":"watchr@3.0.1","_shasum":"3b7e078160d12484481d81a8640d5fd880408540","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.1","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"dist":{"shasum":"3b7e078160d12484481d81a8640d5fd880408540","tarball":"https://registry.npmjs.org/watchr/-/watchr-3.0.1.tgz","integrity":"sha512-U/xBnQYSt9e2GQs7Cp/Yw5cpg36zD3rzuDZ9kCARP2NoHzkbbE1k7jT6n9vrFF9Iv7MBileydy/eE5yIa7wXWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaDaMMe5qDzoRskhyG0kKxJoPZSllWwmEoXdngA5RvzQIhAJ9a1VtmWwWqPjcDcbefVrcZgZeEJoOFi+kMJmu+p1q9"}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/watchr-3.0.1.tgz_1477236009404_0.3325454068835825"},"directories":{}},"4.0.1":{"name":"watchr","version":"4.0.1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","opencollective","gratipay","flattr","paypal","bitcoin","wishlist","---","slackin"],"config":{"patreonUsername":"bevry","opencollectiveUsername":"bevry","gratipayUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"us@bevry.me","name":"bevryme"},{"email":"b@lupton.cc","name":"balupton"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron.omullan@gmail.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=0.12"},"editions":[{"description":"Source + ESNext + Require + Flow Type Comments","entry":"index.js","directory":"source","syntaxes":["javascript","esnext","require","arrows","getset","const","let","classes","defaults","spread","rest","destructuring","template strings","flow type comments"]},{"description":"Babel Compiled + ES2015 + Require","entry":"index.js","directory":"es2015","syntaxes":["javascript","es2015","require"]}],"main":"index.js","dependencies":{"eachr":"^3.2.0","editions":"^1.3.3","extendr":"^3.2.2","ignorefs":"^1.1.1","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.0.1"},"devDependencies":{"assert-helpers":"^4.5.0","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","bal-util":"^2.6.0","core-js":"^2.4.1","documentation":"^5.3.5","eslint":"^4.16.0","flow-bin":"^0.63.1","joe":"^2.0.2","joe-reporter-console":"^2.0.1","projectz":"^1.4.0","rimraf":"^2.5.4","surge":"^0.19.0"},"scripts":{"our:setup":"npm run our:setup:npm","our:setup:npm":"npm install","our:clean":"rm -Rf ./docs ./es2015 ./es5 ./out","our:compile":"npm run our:compile:es2015","our:compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","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:verify":"npm run our:verify:eslint && npm run our:verify:flow","our:verify:eslint":"eslint --fix ./source","our:verify:flow":"flow check","our:test":"npm run our:verify && npm test","our:release":"npm run our:release:prepare && npm run our:release:check && npm run our:release:tag && npm run our:release:push","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:check":"npm run our:release:check:changelog && npm run our:release:check:dirty","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: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:release:push":"git push origin master && git push origin --tags","test":"node --harmony ./test.js --joe-reporter=console"},"gitHead":"21f39d979aeb08546d9e102485fa9326b39960dd","_id":"watchr@4.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"bevryme","email":"us@bevry.me"},"dist":{"integrity":"sha512-NjLjy+86D4KcyzA/G5exO1V3h5g1eAzG5kdv5EkjoURMWpoQnSP9VQ/wl7ia6QgXLIcHXLvf3egib+l+UR0zWw==","shasum":"ec85d42e138eab7eaa136b4de4c0218f5a3843d1","tarball":"https://registry.npmjs.org/watchr/-/watchr-4.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDbhdoeXR63ImgD84uBs+LoIjUBlOipFRlyVKdtcwNGeAiEAnPt4xn+ebYdBMYhnaz5EPDJkaS+CRjLWzRkAqvYWBPA="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr-4.0.1.tgz_1516805440329_0.7613816624507308"},"directories":{}},"4.1.0":{"name":"watchr","version":"4.1.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","thanksapp","boostlab","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"}},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=0.12"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 11","browsers":false}},{"description":"esnext compiled for node.js 0.12 with require for modules","directory":"edition-node-0.12","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.12 || 4 || 6 || 8 || 10 || 11","browsers":false}}],"main":"index.js","dependencies":{"eachr":"^3.2.0","editions":"^2.1.0","extendr":"^3.2.2","ignorefs":"^1.1.1","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.0.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-proposal-object-rest-spread":"^7.2.0","@babel/preset-env":"^7.2.0","assert-helpers":"^4.5.1","bal-util":"^2.6.0","core-js":"^2.4.1","eslint":"^5.9.0","eslint-config-bevry":"^1.0.2","eslint-config-prettier":"^3.3.0","eslint-plugin-prettier":"^3.0.0","joe-reporter-console":"^2.0.1","jsdoc":"^3.5.5","kava":"^3.1.0","minami":"^1.2.3","prettier":"^1.15.3","projectz":"^1.5.3","rimraf":"^2.5.4","surge":"^0.20.1","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out","our:compile":"npm run our:compile:edition-node-0.12","our:compile:edition-node-0.12":"env BABEL_ENV=edition-node-0.12 babel --out-dir ./edition-node-0.12 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"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:npm","our:setup:npm":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' './source/**/*.*'","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-node-0.12":{"presets":[["@babel/preset-env",{"targets":{"node":"0.12"}}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"8fcf0dc1c9c870d8f669ed569b84ff028bfc314c","_id":"watchr@4.1.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.1","_npmUser":{"name":"bevryme","email":"us@bevry.me"},"dist":{"integrity":"sha512-ShaYIRazXv+4FjHNcjd6H8oyWcJnLh3M7Gle/7ZVj8WoMqBXU0xotCwxPFjEe8j92nozdBz0Q2hOrnp+U+55FA==","shasum":"d1fd7704f6e64ce7e75e51e1eb6abda12d5acd97","tarball":"https://registry.npmjs.org/watchr/-/watchr-4.1.0.tgz","fileCount":7,"unpackedSize":94512,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCdsRCRA9TVsSAnZWagAA1v8P/1/FJ5luxPYNRZprMzOF\n/LhCaTbSGzecX2OW4/iRu+rKH+wOwaJYimKAw9e8s0kjLp3dxPcgDgL9YmHT\nho++SqBZ6gpeiwc4u0FIDOuo/AROrbe+7b17wIqnBYSmJ5DqeBPWFWZiZw1N\nTCEmm4ofvjkkEGEBye/FXR4HF0NZVMNWwXqEinDa5QblCOCUpDMCymRRtxgu\nrs24K7k2TXN25+xyHwkRbBwk3gMs0/mXiIZiZ/mtIIpDwy6OaFYBXUAy/vsK\n/8WeNZpvUwP5wA6Of+rHcjL1OnElNEM77ub0WuGWq+iQ53jrwB5ao2U02ikT\neBSjEh45wFt7dS1ujswbiWhADSt7qKm8lV7IDr2r+0AIv6lJ0LKDlue102gP\n99LSC7PF9z84aHMuhmMVK4e8JpKtWmuOMLaOkq6K0vXPowI0KF7QBhAMJ25v\nE1p2K+mhjiEu3bezP2qLCwcmEcdZN2X4AllIsZsOGvKcndOV12w1bii7EhQn\nk6thWd3TjnsLC+3D3ciaL5oLwceCiNVYimzoMRsjbAayf2zn5KR0W6qr7b5D\nDyDZvEK3X2wRB8WOutQUnigISGy/m0ceoDMRwuUJ/4SCRustFb2DP685xmTV\njmYO16is8UQIPCYgLCIIjj5s7oyju+l2OkNDjSBGHP2rnazGeYej35v1Pj/w\nNStl\r\n=cPmb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmNLBpEeo3eBNZpeIU4gFAteJiIQwlQ3nUwjeubQa5+AIhANBWf9OK+hY2G17ClA3kan6F3NG6pp5ZTVwP6x2VjxdB"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_4.1.0_1544149776733_0.33958841740231627"},"_hasShrinkwrap":false},"5.0.0-next.1573394166.3a6f451716f648ad59914fac1518e91ffeab162d":{"name":"watchr","version":"5.0.0-next.1573394166.3a6f451716f648ad59914fac1518e91ffeab162d","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.3.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3a6f451716f648ad59914fac1518e91ffeab162d","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573394166.3a6f451716f648ad59914fac1518e91ffeab162d","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-SE9bg6zH7PrXH71Bc/2FccvLjUTpV12DR8AQrgXzY7pWd4caCICExNcCVp30p1+0f1FMDxvghgDA0+tU+QAxVQ==","shasum":"d361ca03bf09434e5178230f836b8ad243dc6b75","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573394166.3a6f451716f648ad59914fac1518e91ffeab162d.tgz","fileCount":7,"unpackedSize":58914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyBb5CRA9TVsSAnZWagAA2OsP/ifZuVymb89rz94OQjpu\nyAGUh+wUzquV5Ao9TGbToUBwqB8KbgrQa+01lJW3kTLpVz2HonT+XPivaXAW\nsGR5op8tW7hZDvM2Vvzv2rMoLZKiAVUjk9KxNgo/szefETTJJi+MSPAa/pYi\nGbR/vA7tr3BVLElKXFmyXURHIbKtIRTpq6TgcfqhtNwOVCAX8CUvmlbFhkcr\n4HrCFELdzQ7Lh2INLiNcKOGkE7WyxVCz8rsekrsvjjMhkMjHXmNhLkdUi+6D\n1iOFqBSJwyrtniwHQ16arWyG/iiH2D5b1NFH12CrmupLf94tT0wApP7lhJeY\nb+auuH+tMpjIOTal4z0yu4yJJPIndmNRST0Dt+IyDWXhd0mU3VyqKkC1Z6Rd\nRL/Fk/MFT0E0UPo099hGNUI5mnkydTzu29cK2MnHrK2+IJRdc+hrhLEPYb/R\nFW4eaVBimhJa+Yx9qFswD9j/2HgXrN/VmNoNmPrmhcXHimYUvWnaqsxhfiXa\ndxTBiuD6HdgcWadQONGjSCf4UknBHtyhzOL+CNe1PAtuZTHwiVVw+bDuVAb7\noM7LOHwfdtNRv87sLgrnRp+Cz2IJtlOY5Gx3/03L6vb3fpka3ayaHZ3lz+NN\nhG3eYSSvLZpfFM6uB2YrtnTjp2AfqQYSd6F6roQQeIVNg+HcHG2+jXVYCNK4\nhBHW\r\n=vGTB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCl7Xp+r2e6S+7S1cBZJXBsqp5QmcyNZJ6Wbt5ZQlIfHwIgYMqEfHpZ+XjR7634U/mD9/RMYhHASficJvfHMiGMu5c="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573394166.3a6f451716f648ad59914fac1518e91ffeab162d_1573394168653_0.6211705323305019"},"_hasShrinkwrap":false},"5.0.0":{"name":"watchr","version":"5.0.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.3.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3a6f451716f648ad59914fac1518e91ffeab162d","_id":"watchr@5.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-mgCkctlLGiVu0w0K8GxSI3cmHJEgasZGXPWuRQ0A500wO7iZa2hN3FrvnAHAm0sczdt4WOGIbP41qO61BpYBHw==","shasum":"e98ba3b7cbc433f677717f7aa9f8528af360d0f2","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0.tgz","fileCount":7,"unpackedSize":58857,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyBg5CRA9TVsSAnZWagAADB4QAJqbE0tfblfej/w27OCk\nRVaDHZLEcUenXwpSbAmuhG6tWlqeRIDgD9G2FnS/84mmx1Uc/Pd5CsH1hJX6\ng7RxvoXH2gLnNlFD+hAKcsBjxwHOyVy5RhntTAzHw5br7P9z3lpMC/Y8Tfdl\n3DKAhHIor8lG+420PdChqyy1AfxHSubfQGU9LXb57pYj70XytNPouTmaUrnW\n0GOOVVs4e4ST6lCuB8rHfSprxFfPSU1prito7bzUvn5PF77YvFEDz0hmfdaG\nZmJ706lHYuOtV0891pJrXqP/xGiqnTYPRh/qQuT1aL1zUuaKXLWiIROc/Qa1\n+p3WIv9MQHO0PkS7X3DfDPydEEM/egv3th9r9bytoR/2H+XmV0Zrxty/mqt6\nz08dU9fdeEVt1rQZevoutXK5saD6K7hqK1OND5Q/0NPjbYls2kq5KdSToADv\nI1Je6u9IB2UzLyXVouIst/GreuJKzir//3hze5m0vJEVKxRHgryAKnVjzM4J\nQI3BbjqSy8LeZUWQNcdm0xDtGz0EF/DPdTw4ZySHufKl+P6nJJYbpPxq4fPv\nX3Q6YJ63Ez/G7mYcuxRxiPDDCRNlPqMvQplggCE/8nVS1IR18hdrROc7iYhw\nssURcyeZWeef1ORUIoSVNhYVPSR8n3hpqxw+UpwTKpy+4zI4zfaJ5x7+6/iI\np4UM\r\n=wW59\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBYKIEIddLodR2Io1z0Hv9YIXwsnrc5kXC9ULKolu+D9AiB7Tzanfq6teO35nXlGBlApElwU/r1EeJ8OJhEGapFPRw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0_1573394488824_0.196805189369204"},"_hasShrinkwrap":false},"5.0.0-next.1573412525.4d7310104440c8bb56c86c41282b155ae2eedbee":{"name":"watchr","version":"5.0.0-next.1573412525.4d7310104440c8bb56c86c41282b155ae2eedbee","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.3.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"4d7310104440c8bb56c86c41282b155ae2eedbee","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573412525.4d7310104440c8bb56c86c41282b155ae2eedbee","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-VZcw4RDhGp7rG1tkBB3CtVq6io/k2Z0AxRT+RSdTnqyUkkvpf5C2K+x4DMI5lTx8m+HtI+CfjOwPWZk73Je05g==","shasum":"874c619e03eabbbadc994a9e88e5ec2c1aa210e0","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573412525.4d7310104440c8bb56c86c41282b155ae2eedbee.tgz","fileCount":7,"unpackedSize":58914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyF6vCRA9TVsSAnZWagAACuQQAJ5pb5+chpPVpYnB7MH2\nYpPl4QqDRK1ubucTzBVBkexTZi4Avk8E8wEcdF6RdWWX95ZfrZI2O0z75WEq\nMR3Fg6uK6JsItWOL1eNqaab+ZB2xiYAewt6EnrF7vjQEyYnDQAqsK8TD9w0v\nqDcm7enXZJQdz4DFeF59mHTzdTMzb7IIsNgkdnDI5KqYXhZ1PC/9xDADeLUj\ng8DnZUZXZMK7fzvMzzFqg/nYOvD+oCfVq5Wwx6l3gOx20fOUsI5tn95nwYGH\nPwbpRdBOUYOH8ytzmCTAto7tEOf+bvhZvZPd0Y0jLsX+fhsrqpo0TeA2wxy6\nmA68QjAWR83ofm9TuWWsc184KO1L5QbZDQRxESgJUiPyEpNcXX419oDnqMYV\ndMtNu/FL/qCIPmIg3A2/d2NmynMtqDke6oFXlyAtnc1T4B908++x5eX3Kl5x\n8VLcKjGczBnsfovboMjfkUWmUXuIUF6xoQib8SBG7wbLbwMXUU15FrWl0UWt\ncGJFSijRBCyWOaFQ2hH0c1aTBjJYg5C378dgArIJxsyaMG1EbryJVSrGP2la\nTQIMcJsF4mIsr6izpYwSBkCzO9Yjr04PelEbEkKCAmVeQBwhaVcDO2c9xlOc\nzsJ70ayxdIV+ODJnew2RS68En8F5pFYMBd0Upn52TogI1QTzVTd570p7gfTk\nntX9\r\n=PDSO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBYo2tZvL4ursm8prS8LxyfB+uwvdkixDft2Sb94ks0pAiAG5o4uIzvvGE4M4tEPpq1E30qRHV49akiEMCye4J8kUA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573412525.4d7310104440c8bb56c86c41282b155ae2eedbee_1573412527257_0.24241493320171337"},"_hasShrinkwrap":false},"5.0.0-next.1573427498.aa69161d2af696c4771f6c94226b81eb2f6927d4":{"name":"watchr","version":"5.0.0-next.1573427498.aa69161d2af696c4771f6c94226b81eb2f6927d4","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.3.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"aa69161d2af696c4771f6c94226b81eb2f6927d4","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573427498.aa69161d2af696c4771f6c94226b81eb2f6927d4","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-19oIkalgCLZSqRl6Zi65LOrRuIRCnb3Kzh5EVLYncXrz/iTNKGVmH3/XcNpQQi25vWHBB2rwsVC5QxvvCeq1tg==","shasum":"197c9e47f53a09a99eb513e13cf04f3d553bd7da","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573427498.aa69161d2af696c4771f6c94226b81eb2f6927d4.tgz","fileCount":7,"unpackedSize":59278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyJksCRA9TVsSAnZWagAAZU8P/2uJDqLamHK4bR42BcXY\nKC4uQwRN4P896yzvg6eN9QpZGTom7q6dDFWNFsnjP2vb94donG3GRCsUdrUY\n18Pk8AqpuCVXkCEKL+YVfJ6fTr9HeBIHT/WScsIlv6PKVmuwMEPyu6LSKvL2\n+Znd6pImwW4K6bSjx36ZvgWajoktX2/ls9ywNo3pMKWOQLioqVZezw/vYLWS\n3N//vaVes1khI14Y8RzH33ejFEq/iYZju0/va33AEjXQdmVBRmSjyquSC+eu\neMKk/qOpc7Ud2ByyxCOfJNVJ0QKui1sxydqVrc0d00GGIKBGibcNm+p3dWjn\noMKWXKGVo1hyyx580gQorBegJ5ay/bbJcGYA3mTgTTSUzcUTZznv4lOlsW/S\nNgpBcEn/c/Jh7zTRkZ3905NFju5Zj91lObyWVl1+gx4Rwx/i6Q9AnYninmfn\nMIlBwrI+1kdecxO34I+FM0S3G1c2Dr1cv9Qo4NiHNeP55zqnDrhJenmWzITC\nxKP3n0/dRL3gWs0UkVJQ/SehbtoUkphNxgy52b9354TSe4S94ljuJQ9HcLCT\nyEeDIRMTf6FRK6kRNqYhrsa1iq6heDzHOguGVB5m1AE4S4DtdmLI7oVB0382\n59cNyuxwaQjgVbM5DM4lLcc8F90lQ0LfRGuM3xF1QnFWgAeRvDXYTJxEq1c8\nvmrS\r\n=g2+Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCb5IehXGR/3ds3DdzEfAH0PmyH8tDkH3q+moS6jbgs7gIhAOwtaQOP8ER/e898Zu69Bi4gET9p5weZ7+QYj6UkAAqr"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573427498.aa69161d2af696c4771f6c94226b81eb2f6927d4_1573427500049_0.2968935051183714"},"_hasShrinkwrap":false},"5.0.0-next.1573428056.2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3":{"name":"watchr","version":"5.0.0-next.1573428056.2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^5.3.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573428056.2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-gOUxHlhnf8kgywGCtbnlNB423/inIkvXGoFQuyxJv66BsPJLulq22Yg+5Hmr5VSoeFC0raQzmyJho809uxfsDg==","shasum":"bceec84207922b36266080d401d9520330f2c666","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573428056.2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3.tgz","fileCount":7,"unpackedSize":59278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyJtbCRA9TVsSAnZWagAAGRkP/iV37qFWlMpMvuao2OCL\nsZFvulkqmCQ7pRt3cIN0mqjDxC+UjiL2U2VpuR9DWRL6mKfs7hRP8mcrJzOz\ndsjTgg1RPT/vY+UqTOLU0nxCg4ChAJKSM9yKgSoDBfk+L8mKhp0nLF1Ag8UW\n2vla2RtcHrwhh6Md0kPgtDKnLsK6EJ+eBYivPLR5E/0bw1RIEJ4QbbBBA+Uf\nxI0RKC7a+QAsI4ELW+06YKZGPVXDU8Hy0vkSDIu7AOitsSuocAMJhEFaTfpI\nMJMpsPmmyyaGScGuw2KHoo3pKretnXlT1LRzUux8KzO01WYWibb5T3sgOqvh\ncFkvu2xAJsOQXjkj4VLN9elvDP7CLJ/6ZUH5iS6LDP839lmhJBvIdOvZwZCF\nNpDHPnAdBDVz8Fs2/tdaz7m74xGDcF8lByS0cJwwrPtu0vCm7E3WfQG45gLu\npQq9QMgFaSKPJtV3XY/KAk2aifN5P4SykzZH+iW+5Lx7EYLwxOsBMw5bnnIY\nhaqmmPKh3sWAhvLYRJBggz1Rxu32pxVk58VjpRR/U2p/WWN/Dwu0ScjbqQV8\n6XJS3MDGzjokWAevbfFA+S5SCgQGu6/t0PY2ddELmLSHXPuPsjFWZmLI0A3/\ngEnTbdMzR3qgW2nUvV2Znp/pDOw/AR7qzsD9Zv1uJgEz7weCvAjTHX7LtLg9\n12qJ\r\n=X7DE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCp3N6TJArCXZauSGPYcRAnLZ8OlSuKiLkjFWlDjHdaQIgEy6mxpLlNdK/GJAwO1QFf6V7cHWHcuxmX3jhoMB8jAM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573428056.2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3_1573428058624_0.2949751256616384"},"_hasShrinkwrap":false},"5.0.0-next.1573430516.b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094":{"name":"watchr","version":"5.0.0-next.1573430516.b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573430516.b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-7+vi26hWGzbQCw7EuC+PZajnY+T/i7SDwIAQDDke91DxqzCnLX9zB32hoZOWJ50vghT0G1TpuumLn9uya6wn/A==","shasum":"128b7e7305cb8b57a0c651954f09609bf570c8f9","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573430516.b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094.tgz","fileCount":7,"unpackedSize":57670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyKT2CRA9TVsSAnZWagAACpIP/0OqK9cA0ThPfUWllxiS\nlqi8Tc22YhP/1hTbU5/y9ukt4/7JpdC46nfStIuTxiQqjpEDwJwQK9VMK6Sm\nSQ55qKMjBQ9IRPHGjyK6pzLkD8YTM/zenj5Lf6UnDiLp0JK/gtX0l2xY4ogS\nSRkgPr9ZWAkIlwTEcPdtEkUWXXIVL6Y+LsPG1w9/sHaYT3qm46o01g6RGSK2\nyyYe12mx+7zBx7TNTDzsNg5kZpOABz3YCEZCTOUbBQSz08cemTZkiCHXCvhv\nuvFVhOIXzzhBceDiI7YLD++QbP082lSvVSj1+O+DZBChhe85Yzhzk/nDP/by\n2CEflpNJmHeaEnt5I5z5Pu3H3F1rrDRYl0CnC4+b6dzyYteByoif39Lx2KDa\ntv+8s4jq1Ri7DTIj+JOHkJ/u4hwLQkvgaIVxeZuNbpDsTnAS7XU5oM0Dn8oz\nv4+5S3/GzXvMDBw4QGgfppgUxARTBGCv+U1HzwPcm0r/Ad60aJGygV6LfZUR\nzEXH955xNkGgBzzLkqn/U9Gg8fLJozMS4ceapvAXNzjdI8gib8FisdnmjX5a\nQikylUAx7fS7edcZIQaj/4RycBNYVrPXXzkXjnjY3tqLnnKMzdWASKg4wfNh\nMpFboPHcdzroXOshgM5jLE0f/+KPlhbqCelkThjOlBrAgj/BEQX7SbIquvhI\nL5ij\r\n=zoPF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICj0EXrshV6QjqO+60rD2tXTcuPZUUIjtc+eEpH52x+wAiB/KPpNj4dxYwYo9GbuwfGWRvN6CyX35vgHmM7J+qw6yw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573430516.b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094_1573430518027_0.9819782478036954"},"_hasShrinkwrap":false},"5.0.0-next.1573546511.039cb74e6d8fcf252ec8a65255ea2857faf5f396":{"name":"watchr","version":"5.0.0-next.1573546511.039cb74e6d8fcf252ec8a65255ea2857faf5f396","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"039cb74e6d8fcf252ec8a65255ea2857faf5f396","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573546511.039cb74e6d8fcf252ec8a65255ea2857faf5f396","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-IZVIqRcolLJgUP4c9Km5ttCdyJGbqiCnLm0ODhkus7pdjFgmKuxgjYGRH/OaGYMRhI6VtHI+kAaZnVfvaoVC1Q==","shasum":"08ef8c3ae627b1631a5393e4fce03d62d0ad651b","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573546511.039cb74e6d8fcf252ec8a65255ea2857faf5f396.tgz","fileCount":7,"unpackedSize":57670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdymoRCRA9TVsSAnZWagAAJQYP/1owzXZLGFDqVryt2q6d\ndQxR2WtRv4vtIT7A1VNvabluqlQDaDf1nA9DqzwB5uEnwK5+rTxCQsgRk39G\nfneXKKZJfXpEsOV397ABL3mwDSrm0visj68/zYf4kGt4a+oinI1zXrHcBabz\nzDdXk8qba2MmDgwPk6P3u41e4Grlp8eC0xG4EbR2hDp9T4b4aeQAjuLr8oJY\n4G048+DFe9q3mIBx54C4Y2EQrEwOSwageLF5ZcjVSLujplnk2PbcN79XbS/K\nps/REz+fzsLjVxO3tyNk7TatuqpXuwNqPGfrGr8dF5lZj/okFEcbCPOv0XB6\nUqUS9BUJAK/o+b5Qn+o1jx9TwfifXloI3/R4vQ0+szmfhg21klYPwb0zo6pZ\n0JAb73Hdvg09HiB7IdSmRSloMWiGDTvQTdK6Pjw6mHPBsEyk/X0H2Zy1XJEG\nsmcQfqZGWXbjAD+RCq2KeyhKemK3mFNdVqM+Ch0imGKOymoAF19noVvUNpF8\nujkEgi3UzNl9kt5Kc6L12GV8v55TBW12ExpZhPJ/seBPBaVwT4cSbQQTfNWX\nfcyk3Ggi3Mw41nNUWX2fM6zmWYTFCc4/fP5Es1wPMkvImGPMFkrbWJdmYRfJ\nu28Tjgq3rcSL0yO2zLSvo6EPgYg3XfN65LqLITadkrAkffNxrSui6CyG7A5r\nOWpa\r\n=c1N+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQjTIsHZqRWMPVHdKFzAehZkpv7jRp9Ki+qGPd0i7OLAiASgTEG4rgLqjuDUPYp5QtI/un4KqE/+sI7NR8SwW7fkw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573546511.039cb74e6d8fcf252ec8a65255ea2857faf5f396_1573546513292_0.6988248705721685"},"_hasShrinkwrap":false},"5.0.0-next.1573587808.50d0d6738cdb1f00f478754c2de1cc4ff5d633b2":{"name":"watchr","version":"5.0.0-next.1573587808.50d0d6738cdb1f00f478754c2de1cc4ff5d633b2","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"50d0d6738cdb1f00f478754c2de1cc4ff5d633b2","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573587808.50d0d6738cdb1f00f478754c2de1cc4ff5d633b2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-B/mp9e3cuCucL1DnYtD8Lc9VTHb8I78kwlaiU/Xtiijv8mxeVwzKmrdUQI6G2uVKi0OiY7SUBUu/qKM62nLZYA==","shasum":"e5416292c89ae956149cddbe2e15107746f0ad12","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573587808.50d0d6738cdb1f00f478754c2de1cc4ff5d633b2.tgz","fileCount":7,"unpackedSize":57670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdywtiCRA9TVsSAnZWagAA0NcP/iJz7y3acr4KNawd0Y+7\nBOVXQdkXTGelVW/P7QK+a49WNc6NhyLvN+GXGWfCzpAC/bWxdar1+dNTcf24\n34PAJjvOndqn7iiLRseXxWbX9x2AeDyVW3QlgxeWS+dBP736e3quuahLyefT\nSIc6TC1Lg5q7juHzhd41ZTbNFrktJ+77IK/Cqt9ryVHgPxrdzhxeinOhVSf7\nuaL7sYawPsDU9klhzzOFd3Cbu6TUQWKpXw5y83fxNX4gU+VlOAqF42PNQmsm\nnkRqOkXa76FtiOuK24ooM698Z/a31w9qjvNFmtozA9wrvUhZz7GYFFDm18GC\nBq+QC03kd6VOSDfIBFi2GkekwUUfwO+FR8iOH9AUZHjbvH/1GpLsOjl0sMhi\nLdNUPRC3u998TIwE71r+H+QseCZ5aPjZyD0PtIZqgLYJI0OtphAiW4h64F2a\n9ZtL/qCL6UrFPEQZwZKWTZaGw+FUfmUA6ftrBC6HvyZTZKYiEB8cgciWrZHa\nNWZFFVpLTp89nAGoNHgiC+crmWerO0v+6SGBMbKsWCuSRZ4m+LUGPWxWY0zG\ns4YwSmKDNHlxF9jnlDd5ixqTVO2g7knMNuvKmUOUCRGbKiYy/ivuPgilU8oV\n7svn8PlqoQ8uOuZ7+HgQRfIdwjrUAn+aMhYUUIl7wojoFpfOX1aqZjQxtSkZ\nIymO\r\n=g5Mk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKr6br5BRb+AuLC77QUlNuDJF0EBVOOOFVYoHnvOVJyAIgVL2cx9rsgzpne0GMWpPen+FPtxhDxPSsXfbz5cUFTJ0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573587808.50d0d6738cdb1f00f478754c2de1cc4ff5d633b2_1573587810077_0.8499244431433444"},"_hasShrinkwrap":false},"5.0.0-next.1573588354.c16fe6f661c03aed6ced71a2443d7062d25a31ec":{"name":"watchr","version":"5.0.0-next.1573588354.c16fe6f661c03aed6ced71a2443d7062d25a31ec","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"c16fe6f661c03aed6ced71a2443d7062d25a31ec","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573588354.c16fe6f661c03aed6ced71a2443d7062d25a31ec","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-GJoQt0ASFAyK5l33skDdDycPyRpoQaiox6kAJcB2bz1QVBm8bs/Xk4ODpIBrGb7lQvjeWtwJZder+OsdTeElpQ==","shasum":"c3738fe7be02f28beecb9cb5cc626112deb5f55a","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573588354.c16fe6f661c03aed6ced71a2443d7062d25a31ec.tgz","fileCount":7,"unpackedSize":57670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyw2ECRA9TVsSAnZWagAAKycQAKGe1ONzepJq+IkIQo8o\nuQ9TdnfcHEp+CpN+PfSNYWY5LMkTOH0+o27Dlgyh+eQhnhayRrLVKfj+Bjaw\nZereJZi27atsVZi42ahub1JNp9tBI2klI8zbv25herlOjBMCCJTx7YCc+EA8\n95MKBDIRc4Gln/ay9eubKEpZ/x4XjadwAiOHqWLuHv3GWdoVAZjilNlR0+RP\nROdRIYBWnC4qew1Q6R3SomHlt8brG2bubxe0V0GiG1r2sFgrnrbFOI6NG0Mv\nmQe8YRtwP58oO4yqg+d6t1Ud+N2bJC7XNjOwEgrx+ZmqPWWgIoKWpV4UeSEe\nRO+OCboANQoZc/7hNJ9UfVeoKSfZ1dHg8IwUi9NmrY4Q73App7Yt6WiF0jjO\nflqONLtF1+v/1fK+3kOtIRbBxc0EjFuj8XD7vl3lW8vUAooKyFY6VtYh+TC7\nXZWbsHtdhx5uwc9p92tvvvYUttmkU7PswL2kkw4F+VBMBeqxGqvhrMAP71do\nv8gCE5XVoei52f57JgnPWAnuzTHDB+V8YIadC5I9QecyrC8Pl4tqlfP9F3k0\n5+Go8AcYS9XGIeVI0B49slTDBflqBRrfh3gRlUwAEqbzm7VocN+5FC483Wb1\nFKlkv8lkgMB4tC6wdct9HXcMvuAPj15U3/Gsg9o9Hvwx8FXwp42b0HGt/O0E\nXqgM\r\n=ghMJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC49KletJt4OkwGaHSM7u2MGRavoX7wZjtHjY4jsdsttQIgYKPCHTfbUaeIwqkQk4S3bW/yTo4cCL1TNM0AqZ0byf0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573588354.c16fe6f661c03aed6ced71a2443d7062d25a31ec_1573588356455_0.4373570559816702"},"_hasShrinkwrap":false},"5.0.0-next.1573593085.f052b391cb2d136d0583f34b9a362c1d1fe4f732":{"name":"watchr","version":"5.0.0-next.1573593085.f052b391cb2d136d0583f34b9a362c1d1fe4f732","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^4.1.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f052b391cb2d136d0583f34b9a362c1d1fe4f732","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573593085.f052b391cb2d136d0583f34b9a362c1d1fe4f732","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-8QZ/C7PuyFJqp8SYLxhSBvZMBu1gomsy9gkwkJflzLk9lctmIVOq/hS4ymHFq1xJ3ztwJknyEJuih0mHDKhcSg==","shasum":"cdd3a64ba3d4e0bc10dc0239bac8fc037775698f","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573593085.f052b391cb2d136d0583f34b9a362c1d1fe4f732.tgz","fileCount":7,"unpackedSize":59278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyx//CRA9TVsSAnZWagAAkTsP/36ASWQM98GbciStIK9p\np+jv2r/1xu/OBBYgRxWfsdymUHX5/OPYdvpJS+wLNBzYpV1gxnKPpFvjzurP\nABmbke9v3s4ymw4OrhKSiva0kirmn3w8HmUCzWYaumik77fHnfWHt1DbDob7\n9WfyWQk6IvVB0RsjHuBm51XCP7uTjE68OaiXaPsSnuXcHWRjLDnvmGCn8dK2\nQyTq12h+w+ZYa0yMGZNn1NEv8AiLHSvJCYR1WNBvWd3HanZLu81N53Yg9KxH\nWWe8B3/+MHrb39s78Gz5l0m8Z9YGinAh90ToOuf3KvEfeaif2LZP92PrqVhB\n1DrPbWh5hNepo6lbO+jQhIphGkxBLMFq1+7NSL3bDBz3+DJ8aO8wUY042Ww8\nb+PKtfZfTPQISytrJsQwTHJVoBEerBqgLlUGuHvA8brNeUs7iGbbEmIWebg3\nl6J+s0TgToD9qQjnYfBPsffN80YhUkK9p8BqVQFDlEg1eRaBoVVZbPXDkX/c\nn+8LxDRDCMS8oLZl0RhVeqAmkzBVhvktEKegq6qO0hd+5/d5hjQYSWbHDKkX\nzBUS81E3UakJjn7XKt9agML5Cb89H92cFTli4J2F5uEybWWe1bprJXaEHRQR\nstifXgcVB0C8O3a4uMvs8Q//8vn8RWnhwC1xEdgRJ5hMS/RnLAf/bzFXRAZz\ngLcU\r\n=ah+6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcx1+XxhOg+q6zu+8HBejaxLH/mSmyBmumJokEB6D+kQIhANrteuGx4eFzUniUVZknghoLKDrkKY324kRpTh/Kyf62"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573593085.f052b391cb2d136d0583f34b9a362c1d1fe4f732_1573593087431_0.534074531713356"},"_hasShrinkwrap":false},"5.0.0-next.1573594292.734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23":{"name":"watchr","version":"5.0.0-next.1573594292.734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573594292.734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-2Beo0kTpGZfM5FYjS3PfR9ylrabfnMR2cauSMsPjy5CV07qSXstg9fEnhQr1Zd5FeMHwxBN60J43hJJrNUnCZQ==","shasum":"824b8a45148a719be48ff0b4a6a50cdff5c15ad8","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573594292.734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23.tgz","fileCount":7,"unpackedSize":57670,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyyS2CRA9TVsSAnZWagAABAAQAIoCe39Ljj/tgipF2Wxv\nuGgCIUp7Z6lS56jxk2+b5SQt4AxHSR8qi6ONz0BT+Oa/PwDZ4DeuMKHyVUxa\nXDS4bO5yHLxg2wdpmORljGpKY4Fm9kOnjYSVxD2h80sW/oR/KSw0llj4CW6h\nn4oCQLuLl1zUYb4nnWzvtf5iWO4dr9jwFahNMlFxGPJeFawfNHqgMLCxS39u\nYON8kGsNyqviXXRb+PaUJOZhA/EG+ItfZpSigOELvTCPT+Eji1R605x6tfxS\nTxUAj/qNEmon70oA4dk0Z8o0AX1w1cL3ZhHSm9kYeB84vkB+PtEpUkK/p3Ry\nwfX6OmmREE5ecfeKLOQyQN103EZ3TTd6M/ahgUvwHmIipzV3RyWfue7zbkxe\nuZw1qMaXAsMHXE3OyxjiyJrocw9Fm7LtejpTT1D92VsigAIxKSb7QBoyjsYc\ntJPRM/8rLti0M/M29L+aLzY8IHuXnCJizD/Ct1HVyX7MWHWklWOyWpM69lzu\n+iQv9PC0X2pmfTSwsckSvt2w8lqhNYGq93HMSoGpnqxvtHLd2Jkz/0ke7pVb\nyythuIIIknBlit6X/dwLaq2rVTI7HvsypVr0SIrevqGcoAU2g01C5lNAFPiq\nUcnCt43+pvtDoBYG0+425SACIvuWdGDl62kEaZUVzwvdZ03lCWx2Yf1P9Kxg\nublx\r\n=vIJR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfCJbP6iQ2et6cRTKLTXrHRCisubUU992zEHhpWCuoqAIhAK7J0jKV8nHaI6iMPWem5Sgb8XvHkhbVbuvJCxOlTUa1"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573594292.734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23_1573594294050_0.22203435967244656"},"_hasShrinkwrap":false},"5.0.0-next.1573597245.fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e":{"name":"watchr","version":"5.0.0-next.1573597245.fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.2.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.0.0","bal-util":"^2.8.0","core-js":"^3.4.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.1.0","minami":"^1.2.3","prettier":"^1.19.1","projectz":"^1.7.5","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.0.0-next.1573597245.fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-QwcG3X14L5Z6+Cvk0O3WxqN72B9KTBc3FV3ScjiPbp/DtNlc0+WfBIdzmQk5/gedCncVnMtJiNzJZ+5OWejP1w==","shasum":"91bb8ffaaf06ba40db998df195dab50334d0186f","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.0.0-next.1573597245.fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e.tgz","fileCount":7,"unpackedSize":59278,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyzA/CRA9TVsSAnZWagAAY+EP/1yVF4pc4N75edRxXCSs\nYSatl6SRxuoj3yZeZYydnHHrO1JZzpQOvSQknlBzNNLUaxAG/4eDZG0d9CC5\nThtK2iLH3rNYGr14sYmEb9fyLtkj38f7+SKEix7sRJIyKY9BZkeyRe5ktuWc\nekyPZdRwKTlkVAMGhB0MMcBCmGgZKDwq2qlyE+HKf1i3dAb8HLu1/5E0/TtG\nOZogw3EExnrxVxrAcNMnoUd3VHZrE2prEGSITrcYZ5Iah35obK+suJD4R3eB\najCeosBsbs89F5u9bvwp7Sg9NUNnczfcMMgBtCYIqn9+2J/fOsYDzETQk8vS\nDOL11juE8lNR6/aBv6IfiGYtWweylk5zJATtYIT03uP0CqwzScNpMdZaicUG\nEsSZCVlqdG2eL7SDCk1izhRYe+minU78L9PcCl369rISHV2e/FE/+7F2FCKG\nwgJj5MHImLcq0A0GGHNN5+muskkcYuAKmVZ+4kmSIVyUwhNcOPn0HPHrl05p\n/qgEjzMeIq81AYaiUxyztMnplIzu2yMhhaKsCyC1nuQaxRfk71JzKHYwWpCL\n06awkRzlbuXuv7KdIi1qOgBetpcDwEvydwlJ+UyIcFKeep/SsDtIMThdeAqr\nhbYfGueYx53vgGycZNApQTzp+G9hZjLUkmZhalHQiKn4qpqh9TXD3bB6/aNF\n8QIh\r\n=yDoS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHII1P2M6GNn3iAdncmwvfyin8TIymp/j2wVrDTnJ4utAiEAq2DCtHbd6YET6nK7iJ5JvKMfA+PDSpsWp0WucFtbJDI="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.0.0-next.1573597245.fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e_1573597246918_0.7547531154363518"},"_hasShrinkwrap":false},"5.1.0-next.1573598940.5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42":{"name":"watchr","version":"5.1.0-next.1573598940.5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</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/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573598940.5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-o0K99ebtywgzE4iRw/Vor4t2eu8H2e7kr6/DxTcnKmTKAaf5PykZUId0nfvXASNDP29IiJzznTNcvFifN8Jr4g==","shasum":"82e01089b8e58aab442a921f5af73b949ce0f3f1","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573598940.5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42.tgz","fileCount":7,"unpackedSize":58039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyzbeCRA9TVsSAnZWagAAUggP+QBvNTgQcbeJSRkj6Iyw\n4MmMk1eM2NnnCK26Xj/U5NNi+BVnyn6Ob5h0Sh4S0o9g5VCMbusiBHbF9jbL\nZiE0YZKm8ZBlvdqj+ZxbBACaZuI9bB1O9UKloI12v9BNS/9vCIWzLQAVoXrx\nWGKMX/PHcH0AGB504K6Tmexmd+s/M0Q+U+pAYk8xnazNHxKr3WgNhiQpyHZU\nSXvzOPB+nLOGbBqArydZyYVP7GpO5/dPL/zXJLRqkZPK2RFgyteN2kiJm6YO\nRWCSBozfYyqBpMpMOlkpJ74brXGYMto3oc77rI/qAVjFS/m4Gz2MJClq4YG8\nZC/imnSTjO173VkktOSX/wQ3bK8U4QBDObN2k9ucflTQmhcTcYGU7xSW9K8V\ndKxzE5v4v3Rp/zNIK3ENUHgSjJJaLeeTm6EL+qGZHE3LXobEJvt8AflfZY7t\n7Bjm8k84oBBso3iUAO/oob0gBK/yzJH3tQbd8/Nsl125QSnkL65ulA0Hu/2H\nIerqDwNg8tNNlIjIMBfqga9IK4qK5v3CvgWWQwbtpoa5hW+qFWpR4R7tfrwn\nRP0hsvIUNY75Y7HT9J3NoxQjAlwoooUlm9j12DUp/VRzfH+b5f5YhK9zcAwn\nT7bjh5fpm6NNjxihuws7GaQRA7bw0sZxaVHzHTe0Dy1vc5BFmeoe5FAOCE2W\nIZG0\r\n=gMMy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID9l3h5BvqBzbcuVhE9N+BObaHXhDmg2UKIULw6RKoKMAiEA9BIO/nVtML9UQDh28ibhoI54/atYtm57YqkmqUOQPS8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573598940.5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42_1573598942418_0.15095156995140435"},"_hasShrinkwrap":false},"5.1.0":{"name":"watchr","version":"5.1.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42","_id":"watchr@5.1.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-qoA0CA0D6E9AWKiyUzmv1feJREhWa7RmuDZBiBWrJLaWKo32FVxrDis3GLWol82OQ2InkUPSdFQd93yetR+guA==","shasum":"63ca893cdaf73582de0487b4f2a65af8db93865c","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0.tgz","fileCount":7,"unpackedSize":57982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyzgVCRA9TVsSAnZWagAAlnkP/iMCQqimNXvqExteOFs4\nHebPfSELpx2CFCAbJdBUbMgqaiU8y3H9nWIJn3GpnjaNI/oYxA3KXZN4M0qO\n+f66vU7Vu0J7cZFr8aopOmuIvKG6kQ8ZsR38yOEWDevdBpVj1S8nsuttPXR7\nAlhJQ9iZOiVRD5Crh6ghQSL+H8CyWX9eTxrzKcyIPxnkWzecJbScKFa9b7C6\nG7Ge1gVfi5ga0RscU8lFo4AO1uvd3nv07C+UA52y7YKBDeaMIxntyJUKHct/\nwR/ZP3kdQjJsoV5sw+KuBXY64x41WL52FwIG2JHkgktdNShpLO/IVcTWf8eJ\n0WKTTZXuAVa8nYHdzUJw5hW3OQ9u1YfFDMq77Ka8rlg6TNpBLq+G8jMMNgQG\nre7eHYDq5erKn2id82V6huaWycPl8lJXNlalRJh2LgEhLNKoa/UKBfpJInB4\nXEXkjDpjTqI74zMcMhpl9uDmNNvLnuM71WXH+Dke84Ai+hEdIAcTxhpz9mu2\n2gD3iNaXuCsoMeghrznqejBIDRicLHoorxyrFH/Ozt0qJ2mKXqlMt+Olt41V\npj52bv6ZRjiT7URuZEpl9+PdkTYrpUZYDTJ/PPPrZVZ42arxDRQUQv4+/K33\nonHCvvkn2rq+zE3BkC6PZGlAuy3Zg4HAKT1dcrDeKE3fbV9IeOfbso92RVCK\nBB7e\r\n=rbC7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGL5AqiZFMEs6zosD/R+NYsTLvu3W+wKmkE4mdzt0x/4AiEA+xsHcsdVT+4RdBi0ukqkGeaONMMxStw9iyNyATuPc0A="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0_1573599252726_0.3944511687825032"},"_hasShrinkwrap":false},"5.1.0-next.1573684699.e0c70462e487e155a1e084471c79eb75acf9aaa4":{"name":"watchr","version":"5.1.0-next.1573684699.e0c70462e487e155a1e084471c79eb75acf9aaa4","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"e0c70462e487e155a1e084471c79eb75acf9aaa4","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573684699.e0c70462e487e155a1e084471c79eb75acf9aaa4","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-USR0BTmccPO4Ayl/5Pq4z7hRMtbiZagSfyt4tFl5upgqb3aUOopg4cJ5l0UbWhwSBLsM6vz4foElVTzVNFFHIA==","shasum":"911c71f9efdbc7a59bb3a49f0ed3ff71183c275c","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573684699.e0c70462e487e155a1e084471c79eb75acf9aaa4.tgz","fileCount":7,"unpackedSize":59483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzIXdCRA9TVsSAnZWagAAsSUP/0G1Qfw7Beht21NDw4qr\nFPdJfpTAkAm3Ss/dQYs0zwZE6oBQrRYk8jKtoez7j+QxXAs/vDjoybkITyfL\neRAdXXqviZ079veOe8zp9UyBN4v+dw91XH6FPjTLIcuvoHy4+1axW6z9KrPc\nNYnksZeN47dfr09YIUWL4Qnuns6PoHnnGsiX2nxO9M6YBd+sxu8YWxMuJbjS\nawjjJcY8+SQkLblmw2CG71T+6uOSQKvYJ85UQRDcJ6V83LKz3Mowfz657qaQ\nmSUDj9rC/fGfW+cp+yB40sFaiohwykf/Sx2knUT053JtrmkLs0wpPb6fWdqZ\n3RhI9S0vwE/C+xmM87sX1LkbBw99LLHuQA7c7Uvb1XuvxKQ+FCkXkbgEk74M\nnuVJh52Au4JCdf0wW5hpnaetMdj0z0mu4xv+Ts5v33GbuHPzYnrOgUaaysXO\nD2LFb1GRiRgA6hACO6Sd8bk3UrGbfvwLfjHQF5YUKSFQcAZRmWcx+h22BPbB\neyIAZ2RlJmqqGSwmVxIcjXNBsZKYnvoQio1pkY6U6WmYbnXHqVagRwsMU3RQ\nhufvrIZt4LuS3/oKrQWlB2KbfgzHrdAfE7AoPdDpNLhBvxmZ9vCQZo9Bx6WY\nVhI9nMI8V8vQ1otYIgh88EFUwflNKsbg0v6VtLLOtY7ZQmdUY7dolEY9k6eV\nHdy2\r\n=xnQq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAahxiaZJhwycG7tfRFUv8lFRWC5j+J/lfmKZJBI/V9YAiAPvo8+iCaFEC8e0j0SucvceozK1mHEp82JFxBrHAPktQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573684699.e0c70462e487e155a1e084471c79eb75acf9aaa4_1573684701167_0.28861911750164837"},"_hasShrinkwrap":false},"5.1.0-next.1573685301.88419b430aea54b2eb38960196d574a6ea684a0e":{"name":"watchr","version":"5.1.0-next.1573685301.88419b430aea54b2eb38960196d574a6ea684a0e","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"88419b430aea54b2eb38960196d574a6ea684a0e","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573685301.88419b430aea54b2eb38960196d574a6ea684a0e","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-TaoYxbavKwgaQg0Xtagivd2lXifHFz/6jxFwL+MNLM3t5tqpy8rAJLLB1rrsN+rLmqUeMNlqU6Xyj3Q376EuTA==","shasum":"eb10dff8962fa51ac7b248a29595df9f0596d9b6","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573685301.88419b430aea54b2eb38960196d574a6ea684a0e.tgz","fileCount":7,"unpackedSize":59483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzIg4CRA9TVsSAnZWagAAUFsP/i9H/xkBrgXolTP/hACZ\n/oo9ckzZfU1piG16rxT34aN3B4vS2yCrV2koEZATqTaEOWQ/8+TS14+lk+Ho\nSgDo9cI186/TmZdRphAHyHZqeVDFhxXAB5aHbBsKAgmBnmiAJs/Qt1QcoOJn\nxr/HlvHQ8152ail00Z2NJJa4+krcWTiwtbJDlUjcnp02AwSA/5AkphVZ4boO\nbsa7z286N5C2CFZEWpTySGXs3/ossuGnqBvQEUjIu4aJMhidORfXjs8UCh/V\nDRue/HCJBzLBIcAsP38KfqYdQ3edVinJEeVbLGwj2xmONU5fBMU5h4L91JHr\n0OtQOr3MHso8UYK2n9Nj+jXf/sWz18X4mAODlVApBx3onh9WEtU83uwfMcq7\nnSd3Ls1VkOIvfAFSymDom5jVQAmwPyCQNY8faI6EzqWOfgZbk9FO084at6kF\nPdWMJPCBZccmJSxiArUD+oj5v8zVWyFvJ4kTsTjz14EtGWead3qqa8B44XBB\nEk+HgXP3So8r6q8XbpKMqxDdF/+ALKp7iIXPbrLr4Q39GhPAQRhaaFdQIivq\np3d053Bwf+K9BedRNEs4pw9jvwFLejefXYfOCKPNrNcbVOY2TSNY0s/dAjEw\nUdvH5s4oQ3/U58aLLEEN1XYfmyLhrUCn3YQHkBFw7HMGSsFcLvSBlKYkvAP6\nbZ6w\r\n=/mIU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeSO8NLXbA7sP+KPU332XNQrYeYibZ4YrHmzLbUFgqvwIhAJ7LFQ4nLU35r2mErckv6cjKE6TY3h/+LLaklZMEGwMt"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573685301.88419b430aea54b2eb38960196d574a6ea684a0e_1573685303587_0.5884022970809677"},"_hasShrinkwrap":false},"5.1.0-next.1573686240.a90fc3ccf4aaec9522dbd86b381df453dd37cff2":{"name":"watchr","version":"5.1.0-next.1573686240.a90fc3ccf4aaec9522dbd86b381df453dd37cff2","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"a90fc3ccf4aaec9522dbd86b381df453dd37cff2","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573686240.a90fc3ccf4aaec9522dbd86b381df453dd37cff2","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-+/DOA4ACmZzEdCnOvBZnFj8OMu15qiv7LneYwkQUiEpF2Bjx+Ji00Ws92xUIasDJbZuUCnUgQD5LfOw82BNOAQ==","shasum":"5f13137f30abf6b84435a8496027595ae5c3260c","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573686240.a90fc3ccf4aaec9522dbd86b381df453dd37cff2.tgz","fileCount":7,"unpackedSize":59483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzIviCRA9TVsSAnZWagAAB6QP/iMeZfWkfcUFme2sG4vA\n6ji76jut07elRJAsiCRdwE1MeEfpl0CfnUj3g80AX2K+u48NZjpciet9P8SG\nssyWgyGuWSPHb7ZmPlgNqcaHAdBWEeDLZ3b21emVC8A5aU2BHcy4huAzwIeN\nf4Xgas62620Qgd/0T+iECBjK7rgrqmbfxMdTDcip7VkieH2NZjKdJ2mmLwNu\nB2MgB912tirqzhBlnt09HYfFQlkKmEmj7hObzZWpcAyIhMDBpBIP9UtdLY6h\nBnL6Q238G/25rPpZGLLMU1MUvN+JytDJO+3nyA62QV0QoYKPh9rPXUUHnwPe\nKU7WNReEO+yzoFKK4XAUlUqyC2qmpiFpgSePvrWEAqs8JZ11ihiI8g8o9q1x\n6EA4yQ3HIYBEtkKUv1hLWETCrsYZSAW5FodlQdSGIjLT0puqkO3Mh3JyjMLK\nqyJ/2oGbm13xR2L14GhaCRA+wgAvYaaJm/aSXKVye+ZS51xYUoGXVk9IYcJq\npPBVC7LbU6y3apmWgG97z49Y39mKthQ7nT92fIgRw27Pqodhg2WpuJ1OZ47+\npkefOn0YeIIDr0G5zhiGZWyO+Lft6cZgGHxU+8wcaaC8VjbXMOWDlkXXLb+n\nQMoI8aHlPAMG49Xoc5lOeAnBqczULUJ9kkMNWQsW5zLJGTp/m+Mwg/qWuZBr\n0MYR\r\n=bnYO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdUIXlJBSuZ4Z25NR7wGahXuZn360G7QRvE4fre+HX/AiAxkdX1iJ+gJCdGQRUQ9bBtGPT6O3f879jT0/JlGHbpag=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573686240.a90fc3ccf4aaec9522dbd86b381df453dd37cff2_1573686242082_0.1942239266510697"},"_hasShrinkwrap":false},"5.1.0-next.1573687078.87ae145fcfbd42199b2c768535985b1f15908b12":{"name":"watchr","version":"5.1.0-next.1573687078.87ae145fcfbd42199b2c768535985b1f15908b12","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"87ae145fcfbd42199b2c768535985b1f15908b12","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573687078.87ae145fcfbd42199b2c768535985b1f15908b12","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-ZVz8Q2D8ITwxJK5C7dlMlGZsCwvs4DF/KGcpD2yTa/A0MTJRJIkjgtssF4Hu4s5up/OuMkUvcURv01xyUdhVaA==","shasum":"7a4bfd56c97a210e02d728280dfe2b96c5a4d5c9","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573687078.87ae145fcfbd42199b2c768535985b1f15908b12.tgz","fileCount":7,"unpackedSize":59483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzI8oCRA9TVsSAnZWagAAo/oP/R4fb/4mb75XmS7bF7y7\nuo3DCBYk0ocY5RCwMLDkaAA2dT8BXbQlPgYbaZbziB0olIUq2LzLfcOjNq50\nnnWNOtyIM0MrQnfJ0ECNK01so/8Xhoj46eE0+WfG+dB1gvEP3i0Ljq/ubxg6\nt2+5WxX1Ezj93oyE3agHIXOD8Q3uAH0MsdUjg5jLbonkRxiLvKgR5nr9Piz4\nT2vjY10CGlenRK3SPXygjev6k9a3H8t5k5B0ZuFCdUpbawkTzQ1cBsR1+pxt\nNBLfcXLH0BHdOdjyNtq8CUkq4eR5Ms3brpD75rDdgXdA/tftNdQyLhGCLCsA\nxdbjObEYsESQpgQbu3TgzwTgH9V10Gi5Yc7A8JqABS7JVwXP5L1HQ1Al5FQm\n+yMfM8UL+4puu/33LSMOHu7LPh4F0wyXkd+LYKklhCRZpjohJu4TyO9klVoN\n8TotsK80+aoPHdxav0XiV9KmsKqirlPP10IopzFUUpJq013Djmh19Pdr6IRJ\nayvzbyJgrYz9bNWJ9HGxvRzS2YzCYWFY+eM1OxO+Xyua8M8P8wj/j2YoAJ4u\nKwut+qrHx7oFsdU7r0EZZcLbo6BSW9DPEgkud3DqGePepZR5MqXIkgu2RkQY\nZoJ7XaT5sAio4ILEJqxorDFEyOYAWpXAu3yPcus4ky4yWwbVuV5rdppqFyeW\nzD6U\r\n=rf3e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqD85dAwsZHrDbEtSziyovsfj/haLp/YnN4PQFowWGAwIgXDEUwh121a/RH43wnBBocfOYOC1snlSIo5arMtU/hls="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573687078.87ae145fcfbd42199b2c768535985b1f15908b12_1573687079666_0.5622059620366748"},"_hasShrinkwrap":false},"5.1.0-next.1573690012.873a407ced75831a64869b3fdfc009bdfbd042b1":{"name":"watchr","version":"5.1.0-next.1573690012.873a407ced75831a64869b3fdfc009bdfbd042b1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"873a407ced75831a64869b3fdfc009bdfbd042b1","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573690012.873a407ced75831a64869b3fdfc009bdfbd042b1","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-MeAiIfhsCsbh0azY3UEjUEWiGO6Rla0I/dfw0EqJ/dD+4Y8K88EVANBEHUDZEKP028vklqNWyR5gPV7kr5sXEQ==","shasum":"c7ddcd8e071d33c69e7e69757f50a6eb0f084d98","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573690012.873a407ced75831a64869b3fdfc009bdfbd042b1.tgz","fileCount":7,"unpackedSize":59483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzJqeCRA9TVsSAnZWagAACwwP/iTkVCBF6lfJUj95AvHy\nOoWddSl4fyUuhAwMGYN9YzC2/UA++FoOyjHNnFXVol3i1gAFvw2nkDeCob41\npwr1FcaDXFMpVRhZHiRUJTwMBvIpBZsWEujD0FmyxjXgW6qI8TXF0NbQ4TkT\nkYkaD+oawK6rN6vzXUN7UxmxajGAgbGt6gGH3Y57A/r8s/S+8PMpO5nhGKj6\n+EjVeGRO3hUw1uknAz49caM5fXkvGWw/vUvPNG4+/hslXz89rjBVqjwS3P03\nA0EyRUN32PlGeMeN7Wu6ZT48b0rG4rqQENwaizw+avqL5ZrJO9+kn/y5+qHp\nhdmxdui0vybP5hu4m1Fvj/809mqWlbfRUef7XhIyiYMN/QbDhR5W9q/LmPPV\nRL2Vy0U1m8JCGa2P/Dh/PJTpQCKss1K4WA4bG6Gt33+R2byHjIDIaWP477UL\nD9epO9+TkJtJY/Cq/qu8Kj/pbnt0IFiKrvN/fO6gE8PYQHoOK80Xw+dTjZ09\nIqllqlzwfcOeaIFpwavPffFEPZKpZxYVG1q7tEj3UD9ah36VGvTNhrAwn9n7\nkR8BDQyrynsOBJbhu7MaEXbsBkG7xP0YqyeSfJ2tJUp8GJsNbcSXutLM2Deu\nO4FUK/ZvrVI0E8idYy98BL4QyPVYuz57eZ3gmbxG6/f3VgV9t0ueMDPXGLuf\n0FXS\r\n=e0q1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8TGeZ6++a16OwaYtttoYdFWa4/RzvTkXP2pgQtNTP4wIgFlLqj+Nsb+IqMzJj9OCUl3tTsGYdUzHcneNxRs8SZa8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573690012.873a407ced75831a64869b3fdfc009bdfbd042b1_1573690013930_0.37988959991485594"},"_hasShrinkwrap":false},"5.1.0-next.1573740058.c4e43b074155387c0b91e475511e9488a0db1f19":{"name":"watchr","version":"5.1.0-next.1573740058.c4e43b074155387c0b91e475511e9488a0db1f19","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":{"type":"cooperative","url":"https://bevry.me/fund"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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}}],"main":"source/index.js","dependencies":{"eachr":"^3.2.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.0.0","scandirectory":"^3.0.1","taskgroup":"^6.0.0"},"devDependencies":{"assert-helpers":"^5.2.1","bal-util":"^2.8.0","core-js":"^3.4.1","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.9.0","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"c4e43b074155387c0b91e475511e9488a0db1f19","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.1.0-next.1573740058.c4e43b074155387c0b91e475511e9488a0db1f19","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-nLEV+NAD5kLRvIIZO2VuEKZJH6X62Qh+/jrjNG9ciJOwXC8uKzuWjrs4Ro73WqTsVaeFd6O/fxpFh8ftxtbYjQ==","shasum":"47f7af0d26f6602d9fe671489921f1f990bdb5d1","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.1.0-next.1573740058.c4e43b074155387c0b91e475511e9488a0db1f19.tgz","fileCount":7,"unpackedSize":59483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzV4cCRA9TVsSAnZWagAAld8P/imWvJGqNwBq7snF4ozr\nwWLtyPg0xVLmP633l6IsLIBXj3f83BbdCvah96576ojAZIDSkcIsNYWYTsJn\n+FrCBsKgtKgKpJakzhRIWSan+FPs0oE3XxkUlwQ0fAFcAU0my22woWEniJhW\nJRjyz41BCPx8kYzgXd1UEODfvgJT/2maNAYsnx0tZWYBapH1EjbjvC6RdtYL\nnYGY9yGrt+Z82249Qt+3LXuNFvLnnGPlHb+MgVO4eb1oqld6PvuuIbQjd3Jv\n4Qom3yd/tzOuEzEXabxnEfRF9srHTebGN1CCMjs2mIXjb42SbL7YpbP8HFdU\naW7h2dyFldZYOrNEIkC6uusxaHJpjCdDzPzVxUyCunghE06ah4n2eJ9nrWuS\n+Whwl46XlYiNy84dBm3cEtHyYE6J7Vtm+YZ+zVSXG7NwL0rahuTMGdzlH0Ra\ngDKXObLQNU1beqG7erX2r4hYO8wuUnckiMqKXPer0yXK7+9A9YX0d53ezMsR\nO03H60AZ7RtJ7ykHPXWDmKKlnGVzFPe8l88t1vWGSDXohkD25CrmTKqm+TmJ\nzWGwVnShAeL9mcBFsQ+vlFXw6EWYiXOT/VFnD1av9y7HWgTLkeU6Kfe0NxHf\nbqBSPX9ej52Ce6cpD95ITauFxcg3oQG3iV//zHVTi54eC1iICU4Ywir5IpVA\nu4dj\r\n=4ZTs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDlzZOvF9Y6Z1BX1hf5h+HYSHZjJIaLdv3EtAhAJZtfFAiEAofb95NSODsygXb8ZP2qUbOpG/Y18RxH+bNrDWWj6FJ4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.1.0-next.1573740058.c4e43b074155387c0b91e475511e9488a0db1f19_1573740060285_0.24715082953504086"},"_hasShrinkwrap":false},"5.2.0-next.1574018673.85c95cfa5df1aaa4e154b09eb6383e140c0d8581":{"name":"watchr","version":"5.2.0-next.1574018673.85c95cfa5df1aaa4e154b09eb6383e140c0d8581","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.3.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.1.0","scandirectory":"^4.1.0","taskgroup":"^6.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","bal-util":"^2.8.0","core-js":"^3.4.1","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.6.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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"85c95cfa5df1aaa4e154b09eb6383e140c0d8581","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\n// http://rawgit.com/bevry/watchr/master/docs/index.html#Watcher%23setConfig\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.2.0-next.1574018673.85c95cfa5df1aaa4e154b09eb6383e140c0d8581","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-9rSGJVa8RmEg++NylmeOXgm+NcmJl+ql7crzGhxuL0NYmsK0RHUg/7SpM6ijwlI4i/MCicIH4LD6SLImlWR45Q==","shasum":"57342b0971359f617d5a7b4c6f4dc57bbca27011","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.2.0-next.1574018673.85c95cfa5df1aaa4e154b09eb6383e140c0d8581.tgz","fileCount":7,"unpackedSize":59638,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0Z5zCRA9TVsSAnZWagAAy5YP+wWqSFck1lbTueV4VNUY\nXQSINiyI9Mu+xb02RFjSAz+HukTuz/cImQfnIqzbOHgmhMzx2TSNBYsHJ//A\nCE1MdDBzHSTnas9CRt+2yNW1uapuvgSMJDJeRVSQO4SL2Z6GUjYSxdw9XvSJ\nRzHmqUozPj+G+VqRLVy2yXIMNx1k82q4KQZdZaQDlYnosKPhXdk0uPaK7vY3\nDCEWuI+QvzqodentBHU9mLDfZ+Msomnx21UtvignsTgfEhZIZajQ8sO0jMuK\ni0EISuZqDNo6MTd+GZuLOwEZrU4i0MoKZhX/auAqSQTa70JwEf7JFjJR2aH7\nRqCaGQ1YzTuX0NOaJM4DOV/Tk7K+++GNr6jlTY6Iba8gCifZlKqmYdmnokcM\n9dDID/Ki10UwExfzUFHL72Fl749aBhT9TQyd2KtJB4TmGUnoy4gTB2KFT7CN\nlbZb2mxAFOb7trNqauF2jzrxrji//G9Vc/Nwop5xcYV34PY9Hvy3CpqULweg\nzqYUSzb7HAxy86HGQkmMDVFy+/JxnyRh1PjZL5VwtaIBnMaiBrskvC++D5ri\nCOjjrupc8kJ3nxPyq51c+DbA0N4F6b5bTjYBrd+4gCmf0FNf2Wull+wxYUCF\neG1jKgYARx+Q6sc9hol1HrjRk9w/N5Rb4ZcmfW5yhvtT7faR0XY/gj+VOoW7\n9yiz\r\n=4dyI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHFwY+Uxq57qVIofIfDtAIchvMcIW2VF2PoOnAiS4dNHAiEA9NletN4p5EiGV/KVn5QQ5zLOdxmm96djbjWGllfOh3o="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.2.0-next.1574018673.85c95cfa5df1aaa4e154b09eb6383e140c0d8581_1574018675215_0.6185288667528854"},"_hasShrinkwrap":false},"5.2.0":{"name":"watchr","version":"5.2.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.3.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.1.0","scandirectory":"^4.1.0","taskgroup":"^6.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","bal-util":"^2.8.0","core-js":"^3.4.1","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.6.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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"85c95cfa5df1aaa4e154b09eb6383e140c0d8581","_id":"watchr@5.2.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-9ITbPIBC1ZzAxhNS10rG7nngYp6bO877XXYHW1TamLeYOV3DELyHlSZTVzCZgBURd3Eo8GGBcdguNV0pf+NOtg==","shasum":"fd3c257bfa0c6a77653ac24fa02a1c1b9e2ee34c","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.2.0.tgz","fileCount":7,"unpackedSize":59581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0Z7LCRA9TVsSAnZWagAAVckP/j5+s3oRrnlvtAQ0yuvW\nHr5B+rjpM4FpfMMU2RyBGpGVCXdoS0wr4r3dRwgSoaNC1S5pjnzd5XS13yG+\nAmAREisGYo7XGkxWn+Fsp5vf2pkFwjwnyfxbqm8UDF7CQ02KyoBkQ25eQfuQ\nqwDE1/sBqiadztyHiyz1/YV4s0mWmJxKE1gRyz3Asih3aXale+pdUq7tLCet\nunckMpEn7s1mOqwMINoUIpLmiXBl9/XKdOltuyQwx0QvvMn3iFm3Oq5BAJal\nMKyqZ9diGWB/2ZtvjSbgGvNdpysBONHEe49EZDwyqy951rG8Pwxsv3lYd3Jn\neKJMRIzYwFhML9g+K0Zw1LxAc4oz9CsD23N0qATnCOCdD0VUepfBbxPo/h6r\ntq4LW04FhsdZ+SEDdbsfuhWf1zQszxLKJSncq13ryZ2+4UDswekpgNrTrqIF\nTr3A4BfWOPMA/wlCu1NVQxe8LnpoaOYQj4sGG1JqYNvzbMe8Yrv0BZtG2gB7\n+IfcRCJuz6ty3p+GKcwQ2JgGVHeMC29QIrxKbPokk+IIJf7PWFHixnFRNEPW\n9VKJdtmjGDoEDSDTQS2/iVYLjogdzUdyj6rlJSzFxQTdqpNBUEyYNqEqhnkJ\nQa5FMNTOKhOe1C7AnJmCEzVuWj8SS5BnkIvSfaSHx2kppziXa0nqxAeY/BqT\n3vN9\r\n=ufND\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCF2keYJFU7RPhEHffJ3h8fxlyj17CLto7vjvt3m7BvCgIgVCSoHyuGxbhjv1h4vaPCm/hhgj+oJEioh06zZH5zZwg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.2.0_1574018763089_0.6833850248280078"},"_hasShrinkwrap":false},"5.2.0-next.1574036900.f2209bc62cf410a0707710efab144e96fb9ec74f":{"name":"watchr","version":"5.2.0-next.1574036900.f2209bc62cf410a0707710efab144e96fb9ec74f","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.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","browsers":false}}],"main":"source/index.js","dependencies":{"eachr":"^3.3.0","extendr":"^3.5.0","ignorefs":"^1.3.0","safefs":"^5.1.0","scandirectory":"^4.1.0","taskgroup":"^6.1.0"},"devDependencies":{"assert-helpers":"^5.3.0","bal-util":"^2.8.0","core-js":"^3.4.1","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.6.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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f2209bc62cf410a0707710efab144e96fb9ec74f","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.2.0-next.1574036900.f2209bc62cf410a0707710efab144e96fb9ec74f","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-PHvrSfOiU0rpKp1qQrSvCYO5WgYpuSKSEKqBjqSDeD6SKsmA6wSlkc4VFRXOJMmtcLL+r5tZAnlEcf27gIxGQA==","shasum":"0d10604443eb1f8eba5daf91bbcec0fb9b3c2ff3","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.2.0-next.1574036900.f2209bc62cf410a0707710efab144e96fb9ec74f.tgz","fileCount":7,"unpackedSize":59496,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0eWmCRA9TVsSAnZWagAAo3gP/iiy8bGGNTPPlO4lHNBk\n1lKOCubhLOXdXQ5/4iqVrLR3Cmbtj9ImtJHYCCwnGe6SXDGxwjU6iaaYWr7h\nU4EnU8kQ3ePRWRZ+d26ogr3MJvUeYaI+8alLn4M7E+ad4utEk7J3J3LYRoM/\n2hETcOZW2LEvBKvBM450NO/UnQmP4mce/kZFd3fVTXfUP7KTrVE2EW6vEIDa\nfIEeNApqEBdLYOK0PtHtqFfw/tDzGbG7wZQPzBEQNcG0rUF863OrblxRhvQU\n4cTOTk6U7UmzNaNG07jjx3EvGfBJTpxo+hrct2Xb6p1jdc5GeO40Yifzjf2p\n9cEw09JuI0P6m1avjY9jN5Sm8IYzZJTzDogUY0RxQeLa+WzattEy4B6yWdDG\nXb/LPdN4wSbp+rS8g0tN9B7ghu/xPqH5KzmBQJ5WPDPmNXpv9aCh/ccSvwvE\nlRcECxbZl6Pf0i6o28LsO9QLZ9yoMsKXdWrd1nQd4MYb0b4FfTVrbGoQIgPA\nW/b4n7tVj4mAozHeAhx9bjPPivaGvITy75kk2THwvV/Mqw98F4KtZFeo17TY\n0AK6ZLkHNZXYf/OUNI3ROQYBKdBUzkN1CI5iMn3VD/utxmDY8WMjkeGpqTY0\nzVizcEUnMl9/kixvkH0LHSn605Y9sfE1+foiXVlTjG2kONWVx9dHjhCpa+X4\nNEYj\r\n=kzEo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSaqIobk0/Oti6jGkyBVWYvnC39rSvQ04A0rJQyoy2JgIgOuQ+4xfYo6YXVDE9OajR5be+cCk8CqlWqoO1gDC9Hlk="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.2.0-next.1574036900.f2209bc62cf410a0707710efab144e96fb9ec74f_1574036901793_0.5452499715840073"},"_hasShrinkwrap":false},"5.3.0-next.1574066682.2eff1fbf316a2e9f3a029f19bb275f7d1db614c3":{"name":"watchr","version":"5.3.0-next.1574066682.2eff1fbf316a2e9f3a029f19bb275f7d1db614c3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.1.0","extendr":"^4.0.0","ignorefs":"^2.0.0","safefs":"5.2.0","scandirectory":"^5.0.0","taskgroup":"6.2.0"},"devDependencies":{"assert-helpers":"5.4.0","bal-util":"^2.8.0","core-js":"^3.4.1","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","rimraf":"3.0.0","surge":"^0.21.3","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2eff1fbf316a2e9f3a029f19bb275f7d1db614c3","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.3.0-next.1574066682.2eff1fbf316a2e9f3a029f19bb275f7d1db614c3","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-CVK3Czu5tRhdP/wUUBjcCwY4GIZ4lAIMfNyO9whGfPG2eURwFGGhtxPV4HdoPMeFfFoM/OPHvLt+31vcwDMJtA==","shasum":"4c103beb5427aaeb47a3746229f5cd0e830f9049","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.3.0-next.1574066682.2eff1fbf316a2e9f3a029f19bb275f7d1db614c3.tgz","fileCount":7,"unpackedSize":59657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0ln8CRA9TVsSAnZWagAApP8QAJP8ezTEQcD3xWVredCZ\nU6/ECSgNG81SBkudgFREcpYHqN2YfP2Ak+5FZ9n7FMP5IjOcj1T2xEOQKt8A\nRQNC9ZMgBYyGeDe2lRz8A4TV0sDaO7RtnRa43ylJHpGlxoXwjRkRVTpzsGVQ\n8FxK87fTE8zp7aCzGnCswmEoAs8pGB/YjF3q2Tq2CG/2mHI/vhXfTbLrQKKk\noeK7un0vxvL9twmLuHpvh3aKUh71abzPOaccp5BKvdCMxFzh4Nqw5BqvGfrx\ntxwTNFm04LKg1jTh2rOdfN/4lUBfK+iPZ7Z07XqWFGKka/lnQnUZVfDLjd1k\n8gD4FiObzda46703Pqu+nGVhVFoMZSV1oURG84ZvXoyo+mHQKwbYc9OMppgg\nkzm2+WVZQ6WH5DiKHJ9zN5PUgBGD1k0NCv0tHpzM9Sl9mxOGBQG/fon0l14c\nXp90OosnQzGBnnI9zC7BJoPOdGfq7d5AFiYIaVhwcfxxnF+Zspstc+P/vuQ0\n0bqHMEGHE+Y0fVKh5Zcxm7pbHEVyXyu1foRyQdJ5eBGUslYCQ0UdVkE72fnS\nMDhsFePsQY48m9rxhUc2ighjbzF3SlUZ7Re0ZgNuuNCCmEo0ugjQWyK7NXF/\nuPyPgACKfxu6t0QQgemgQw4nnC4Z/nUd3pUBsBW52JZmwkAM0TFtMofyP+oX\nVpeu\r\n=17uA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr636vpxFPozQBS7Kvdr15AnJ5OdiX/8akqpoFywPWkQIgRJuiGYLLY5Te/WdYHI6ylvO2RSJqz888CDh8ZbIa3aY="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.3.0-next.1574066682.2eff1fbf316a2e9f3a029f19bb275f7d1db614c3_1574066684220_0.15299570741685153"},"_hasShrinkwrap":false},"5.3.0":{"name":"watchr","version":"5.3.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.1.0","extendr":"^4.0.0","ignorefs":"^2.0.0","safefs":"5.2.0","scandirectory":"^5.0.0","taskgroup":"6.2.0"},"devDependencies":{"assert-helpers":"5.4.0","bal-util":"^2.8.0","core-js":"^3.4.1","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","rimraf":"3.0.0","surge":"^0.21.3","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2eff1fbf316a2e9f3a029f19bb275f7d1db614c3","_id":"watchr@5.3.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-6FnntTgXgbFaxYt/3b6F0zJtDwSIzOTGmk4nJMxnFkR04xuqLyJWxqqQqpEV5JyUKXt5So90Zx76FMbXYeKDgg==","shasum":"dc08618f1195abc71605c1dc573b1df496db88c4","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.3.0.tgz","fileCount":7,"unpackedSize":59600,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0lpCCRA9TVsSAnZWagAALW4P/1q/pZs3VtHA+8b5daeD\nuRSWooE/KPHL0j0cAbxdJV3wlI5GAUJDT9nKD5TwS/jekL5KlclOUt+tG4JZ\n15RrlY0c/fYv7O/w5zi5WSA8Rp51AO78OPoVeohVXJwmZFRYK/rGlZ3vWX0n\nIr7ircKzPLA6xaIx60k83WKYDZet41bOTmC2dXt0AYGf64djoRKXQtymRl+M\n6nJMIxUVOVJJa3LE6lTumBN7L8UQHlh1V6BBDD4KAH1gByrKXS2Clq/CR1VJ\nbpPdEYDACWRtaCCXDKpEIKoQRh0kBGJ89y2S6S4+uMwnLqPhw9e+oMygHfuy\nw8n5R2yr2EaWmkMZj6IEagW8QEPuO1dl9SCXzsx7tHi4mhtn6KrNSf6x6rQm\nlPswfox/+XonFh+l5F4Yq/S9vjHJWNj/ghHITMHHl4j/+/hONJHOI5SE3QtZ\nKiI4xx65OG+zBR/rkhKEfDtd/W0ria9FimQgJBeDAfvAK6B477LcDOVd6B/N\nr0WhLGEspltnsvscNSK2/3aYtzvVkl4dbyVKJl+Bw2Mq22JANNCRS1Jn1O+t\nv/BFB7voj5TnxMsr1U1bBX+QI4kiXGuZ0ZG4LS6shkMA7HNzsAt8FMAj86Tp\nKPn2/dPfzl4xR8lKncCc56LdLhdSPosMzza299RTtdve47nPztH+EhnFzrcD\n8+Q/\r\n=SuQE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHaYPZ3i/KjNQm45ustcrrW5vVnCaHilly3lz5kbOlnJAiBjGChPEgVrjWEBayzIeBWKFXzodOWRmjfobHlEmGz6ZQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.3.0_1574066753710_0.8379019330381083"},"_hasShrinkwrap":false},"5.3.0-next.1574612680.07f5657275358d629a1048151f06d9e263b07303":{"name":"watchr","version":"5.3.0-next.1574612680.07f5657275358d629a1048151f06d9e263b07303","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.1.0","extendr":"^4.0.0","ignorefs":"^2.0.0","safefs":"5.2.0","scandirectory":"^5.0.0","taskgroup":"6.2.0"},"devDependencies":{"assert-helpers":"5.4.0","bal-util":"^2.8.0","core-js":"^3.4.1","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","rimraf":"3.0.0","surge":"^0.21.3","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"07f5657275358d629a1048151f06d9e263b07303","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.3.0-next.1574612680.07f5657275358d629a1048151f06d9e263b07303","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-HxvShYDR+vURmit5c9KRRjlfrszAYEzr2iJn+3+nN3DK1J07h8DYi9ABqsao6ofnhfUMfOwwlSjg/RrK+5YxVw==","shasum":"fe40d2a1d7147c748958cbd6709b56515cbca741","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.3.0-next.1574612680.07f5657275358d629a1048151f06d9e263b07303.tgz","fileCount":7,"unpackedSize":59657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2q7iCRA9TVsSAnZWagAAOXoP/RZBgL77pFZmdcmZLEpj\nJ1t7VPx2EeNo49eHhD8Bf+BQ44AvBWTM4zogXq1yMEheiDZFcPDcki3NlapE\nLpAaStDG6NJcK/xrJJbM+Zps0cRcL1N6y7Itk416gyCqRiwJWmmqrjMU3uPQ\nvNd/uxo5fBlKKNkWQlikSPv6Z1petVZYSnuGKJR2py/S9RZMio1Qd/deY7Mu\nXayyDbEdjuQ+/w9p7fbWfxybqDe4ZjnUCvwdEGkFA0DNI2uoXUJW8wJed5if\nSrqmo3JROeX95fZuZtvOjh7QQW3TK0QhLUraggBUg0nQcrxxsDoFuslwrOGZ\nuh+YjGzcgWYqKGQbNpo+6nJKxnUXuJ3umUL2vjX/fpcM83WoxzYLg8D2JhbJ\npy+FHh2zd6Nn1rtWTNGMDQPQgjUXCOnHuzSBOB1E3Ri+Mfu+8xbD2iwmHXiS\nxYJngvSFicHXTZGbhy7mddtd9N5RD9ZNeE751evJznedrN5O1lLCLAQbmMw+\nu5J6ffxitNLElaClJzk2FmP8peUyLENcOdlOTZAr0q2ntDopfJ7xvb/EMf1r\nDLWDZFkiEq1AYCwEEhVzfwfcJVa9ihaPMpj6ESTLjZlvheLQJKdrm9kDEPZd\nLTOxVYWt8vVdcY8Kbx70jFcbR7jhDBSLLWgfoxu6Nh1f1XcY4ptFM1uYN/ab\nUxGr\r\n=crnb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCno6rYQRySkWjnXYadZgfS5MPR3Lm2a0LHk95QzLOcAiEAn37pevepcwfeWueg9yrXDXmi/m0kFNci5H++qNJekxg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.3.0-next.1574612680.07f5657275358d629a1048151f06d9e263b07303_1574612705768_0.7109641259781818"},"_hasShrinkwrap":false},"5.3.0-next.1574633125.a43a0d5974a848b4639ec5a3b62dff46d2e258ef":{"name":"watchr","version":"5.3.0-next.1574633125.a43a0d5974a848b4639ec5a3b62dff46d2e258ef","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.1.0","extendr":"^4.0.0","ignorefs":"^2.0.0","safefs":"5.2.0","scandirectory":"^5.0.0","taskgroup":"6.2.0"},"devDependencies":{"assert-helpers":"5.4.0","bal-util":"^2.8.0","core-js":"^3.4.1","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","rimraf":"3.0.0","surge":"^0.21.3","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"a43a0d5974a848b4639ec5a3b62dff46d2e258ef","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.3.0-next.1574633125.a43a0d5974a848b4639ec5a3b62dff46d2e258ef","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-Hkudb7+ZABlGvhufvjN/rDdIt9ByvUZnfQXXweFOVjB3WrQQrdLdytaP6bfHaBYfHio0Cti+t5ZLMXptk3pS3g==","shasum":"d43b59eabe734d5bc501d23f0b04473627a518cf","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.3.0-next.1574633125.a43a0d5974a848b4639ec5a3b62dff46d2e258ef.tgz","fileCount":7,"unpackedSize":59657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2v6nCRA9TVsSAnZWagAAzwIP/R+2d2ZPxD3FhclDfzJm\nYOpZ7yzKGrX5Fnz5BSGcrrYNL7ASCSRbFUTm0aEhKG1qSkn18RpcHK7GXWpV\nBSqNiB1X78XhUZczfW1ynkavP9ASqZFaIHqUuRAclHZFF8+Zz98UsERMx0Fz\njZ2fetLDkMVB2HTg/rr2FFZAoBx10E+zwrkC/8sDOXiv3Xd94AB1EfsCMKLr\nnA5Xt00frQdBl09jYgeY4Osm0NH3oDOXTa/NLAzNT+L5G5Pq72NS81knsfGU\n6InCt8Yy8BWQd8fbWbWPGoN8xoqWVI828fhA3RZBBFR2ZsDQHOsTCJY8yN9s\n/XfLscNQ3BBZ6rcznR3hS83k5xaxpKBhix1abCb+WaF4h3TEOtFJTJNNDASm\nhBwD/EgdEmCaX7aQyVMwIicpir7Tw/Apa+TA63u4RRurTRqKa5GLr2GI4wTX\nhpA3YnH1PZ18vp3SYMU9Bii5onG+3oVQw/yDEFkhb/cWzgsGlKzYaMsKgC5Z\nQkUOxc9MnGdywIBFmRUOtc31cXjpjiQquHr0SL0qua20+f6vyx75asYRsDBf\nfttMBIm2uqDlIFycBE8teFGYwded1CXHfwTa0qIym7gyrfcyQreZ8ZQPx6GI\nPjnRal3X8+c9DGknKltLU/HubQTzskqVI49tFbDlrZw2KN9S1ZjXZ6G3sTMg\nDpIJ\r\n=R74i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGu+I7DxfZ6BABUJNTqDAgupIYHy0km21tRLkP6hIplzAiAf2waoV/cDYhthE/zYaxf0QDn0GHs9v2yHby83ZCMFWg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.3.0-next.1574633125.a43a0d5974a848b4639ec5a3b62dff46d2e258ef_1574633126860_0.15441176711229665"},"_hasShrinkwrap":false},"5.3.0-next.1574636135.3ff5c2220829f42b5250df2d68cd6204909368a5":{"name":"watchr","version":"5.3.0-next.1574636135.3ff5c2220829f42b5250df2d68cd6204909368a5","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.1.0","extendr":"^4.0.0","ignorefs":"^2.0.0","safefs":"5.2.0","scandirectory":"^5.0.0","taskgroup":"6.2.0"},"devDependencies":{"assert-helpers":"5.4.0","bal-util":"^2.8.0","core-js":"^3.4.1","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","rimraf":"3.0.0","surge":"^0.21.3","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3ff5c2220829f42b5250df2d68cd6204909368a5","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.3.0-next.1574636135.3ff5c2220829f42b5250df2d68cd6204909368a5","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-aDePj/x+D6WsvBbpQR/dw+X7Guc1Nu7Pehg4WieAujLhh7Atchmcl//GxYrbLWmMCBB/m56VdJcBKGUup0bVug==","shasum":"d601c10521e0ceff0be70215420e124a509e7a18","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.3.0-next.1574636135.3ff5c2220829f42b5250df2d68cd6204909368a5.tgz","fileCount":7,"unpackedSize":59657,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2wptCRA9TVsSAnZWagAAq/wP/1JrPgJPrdFsmIs0HFV/\ncDTFvfPmL+T2qRNg/drwHM78ibHl4iAirUPSjP41ZM1cKGXFsLE7sWwG+z8x\n3vwX4oCr5eXrd3gKddeXcw8YPlHjyDCtmHqhNrJRC9vffgvJMNgNtSQ+8cWn\nXdPCaL3tBaQwgiGHh6dLA8ezdRL7DLf37/PSPzRsskmAmC1T5IEYK2Nsn0Bo\nSSQsZhxyv8k+YuhE0K95dHOI7TxnpLMF0oUmseLqwxYIOtoiILzQHoLxFuUF\nUN9JgaCcDtaDMRsVlXYbPTyWeCdX/GkvoMgZanVCudmknScOxKV2q9Jx2BVD\nQtYkakDk9f3T4hhCQGthCJKaRLMCjX+h50iByY5JneQUOzMSKDuQH6ZxQIZv\nhPBVjH+nQ0EntQBd2vg9GktmVoqr7mG5mw+SCSB82ZIgvCNP6juK9c4B5Prv\noQzGm9M/Vl9a2R5PVJuXjRSA2XqfYVWrCPnCCiEM/96pores/c5/QVK+8QGi\n7wM3LA7v6vxvVUdvQDOF8IljLCrTvYdtyHzLkV0+2kH5v68OiHsQBRlns5a1\nXcE7o0Vz1EROeBPIX/PFnlQ2jFZ0MSwlTlhXbIZMXlBstP9532YNG3Tgl8jf\nvl4vdbVmqJa6RRNLPeYbR06V2qK2vxuiX4OfLx1vyF+nJyrYW5EXZeXw+0c3\nIcKP\r\n=BNCC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNnG66BCdK7qrDDq915SDHBO4RdLKCT5SednMjxJ2yhAIgJ4ckK+BUp7ElJ4YiWeD2qQn6Gk7YBHv3h2Lo2Dk0aa8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.3.0-next.1574636135.3ff5c2220829f42b5250df2d68cd6204909368a5_1574636140843_0.491396413371856"},"_hasShrinkwrap":false},"5.4.0-next.1575161704.00cf4e08248f474e76a6ed5d75d7e040c3ca93f5":{"name":"watchr","version":"5.4.0-next.1575161704.00cf4e08248f474e76a6ed5d75d7e040c3ca93f5","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"00cf4e08248f474e76a6ed5d75d7e040c3ca93f5","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.4.0-next.1575161704.00cf4e08248f474e76a6ed5d75d7e040c3ca93f5","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-fp31NbvKhjxE/bT+IQi5rn4dpl8p0GejOmGDLNEokM5ypExYz7emWLAcWsDKfVHTYYVzJKuNIHCBLjsdEKJT1A==","shasum":"39f2f6cfee960b727c4e87f4207ec1eaece25e43","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0-next.1575161704.00cf4e08248f474e76a6ed5d75d7e040c3ca93f5.tgz","fileCount":7,"unpackedSize":59864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4w9pCRA9TVsSAnZWagAA4+gP/0uHx8erQoPcII+xS/tV\nByq8wTJVg0Qf0uuGJEUO8zC2ZJyW5Y3Rhnvl/KArGtqN/9YZwh4bps9oAcof\niwscZL1byUd5aRrdORbBTHSIZPMWONqy9NKDhsVXCVjwhP0f63OAq1+ZoTvI\nrbOpZAMcBvgWQ4QzRgRk9R2TtHeywsKmGeyh5A6s2QW+433boZhUV3D/O3gP\nC+WuLjoxjdx4VDUTJ2qVgfL3q9KpnCmVUD0PQ1EpZ0eHzmngvPpsN5PKJQci\n+HnjJ9mpucnzyDTR8hrVc0Axsy7mjCiDZpd6IqLDBLU89OmHK+pTYUBkCteX\n0vtiZe591pUswke82q95+uow/yTVwHGH5dm30EIMfP5vUWrIMbP0AzL5e6e9\nkPVTv1lcqutE7Gz6O7rSpQi9QxMruRvduSizHRjx6DLfSxelfQ+pmvImdlvC\nJNXJl5OWID9Ru+0N9Rznqsfj6k+ta8TAfEN15niWlP6JqvPPPEvvtcLRnb+R\nr5FgR1xZM83J23uVPbUIWjcq5lfQNLWbwb5KJpb0eDFpIiXogRHyoXZuQKIZ\nBoVV6FqeUBoNaSIZaDrs5pU+0pxnr9HEHnoViKx8Rx88RXEkUQ5USceS2jjL\n2yWyOSs538l3dCSrt/kEnT8WRfDCjiSmezWa6k09xfzCZ0pMDAex6koA19HG\n9MFO\r\n=aWbe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdP1rJkFGb/JHByhLo0+MFvBuDGj7BQ5JZgwyUeqFK/AIgPSb6yYH9OvvFk5+0j3+bkp1vmEm5lZzII24m9FqRh8c="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0-next.1575161704.00cf4e08248f474e76a6ed5d75d7e040c3ca93f5_1575161705507_0.2993401219259564"},"_hasShrinkwrap":false},"5.4.0":{"name":"watchr","version":"5.4.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"00cf4e08248f474e76a6ed5d75d7e040c3ca93f5","_id":"watchr@5.4.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-NQVGS8Zgd8Pd1Wm93uoLKtLrQqYxPlxYOScht3MoGF+xhxEGHoNluHzsHwdeG7fmmBSS3/MpDbx+A19qrKQHaw==","shasum":"5c8afe81b0d3716daa73ead2fc36f9ff6b2c94a9","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0.tgz","fileCount":7,"unpackedSize":59807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4xChCRA9TVsSAnZWagAAurUP/if4Qrbzo88rdPQnv34l\nBzeClTS7xOYO8Vlefv3SLH3SMpRMkv2n8cZJiNpkGzE+uobLddInpn08J/9T\nPV2sipUY1iazGt/ed4b+/uPVfXjsHTQQ0e9ZMqVdWmOUqVaPUAXm7MBW8r1h\nHVP0OT7rNF8EdoqE5XH+qaFYujxKmAM3zROhRaWNONpKieYadp6vw5TZluWe\n6iyCM0B+8LIkFp3aNh+N/Fxlh7DFZ01FQCYQRTwajONqnETn3tkvDGfjZ4B8\nazQKbrUGZ+Ag0HqBzSTh/6XcyCUZuq27lb3vgFNU2pTLzJwwgMJXrM4fxTAV\ngfV7aou0FtYWvzjXKeILBcUXdNy+BQybFwrmdQsYz6wT8SMIqW3NPiXJKvP+\n2JQmHdqoZQV7CzSOJ7XmAyUk9kqRdZk+zrzzkZEc024AqHYnqN/bism3Gj7n\niG7+yLwKvp60ZxV5fbUX+i0Ll0l8z3Ou5AHBaApO/JhTQBYIigNusLWmVAvp\n9dGmyVlYL2NyiI3QpZt2KF1Kn0DdbcNntnbn0/HhsE+JASL/P38oOaWuuSfK\nUrqeulRDk2rT30DIzg0l8AVzvDpjobYiWi+Fz+uBm9g8CWgFOMivNlLT59Lj\n877bMWhOi1WpnpB/P7NfxYhQSAJQE58A2XGaLe3rghkTtHpIqvdAf9KT3vwz\n7Ljq\r\n=Uz0U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpTKgYDNEieuX6PHvcbdL58R36azkZXmjFpvNrOVp2rAIgAvOsNG9zfIZCGaGKbLVVOrs6GxPtxxeE4nltTfljlDw="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0_1575162016809_0.4203871173228848"},"_hasShrinkwrap":false},"5.4.0-next.1575215136.9c249960fbb00faec77c2a6eaacd186187d69838":{"name":"watchr","version":"5.4.0-next.1575215136.9c249960fbb00faec77c2a6eaacd186187d69838","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"9c249960fbb00faec77c2a6eaacd186187d69838","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.4.0-next.1575215136.9c249960fbb00faec77c2a6eaacd186187d69838","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-h7Mh8yMGKV7xYdng7iKEmf+wKG7P2pk/+1hXru+R0t7RenuL6sCmTBQW1oEmgc0hPn0PcuODFrFU/7+DIBJe4w==","shasum":"1416fcd2926fa13ae7f52a8bb8c5c9b4b07eab98","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0-next.1575215136.9c249960fbb00faec77c2a6eaacd186187d69838.tgz","fileCount":7,"unpackedSize":59864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+AiCRA9TVsSAnZWagAASEoP/jAcE2N6FrKffZQd6RpC\ngCDEru6XIp/lfRkvjtN1YKkAwARfpoOYzkF2optOsZ6Rk6t0Hr4KKMrJtNxg\nN/g1nfOlNslvPPX153Kf3+wRX3jhuOQHdV8w+cdH4QjTSz9d4gMVJ277UEgH\ndIwho2CFIi2K4VPuuCpFsS76xyrWhCUkLGBdHMUQTZzhWiBse00dlOObKboZ\n523KtrzgPqToBc02q2TE6ZBlMFm+e7NGfKdMLO3aucRSw3WI73xTe3lkXCRu\n6zmwHeJmk5DfFp8ZmJ2xybsImVBV0spfXYlH9RM0scFFO2z0EBTxB8nJVchd\n3bge/TsPciz2rY3IQH42B8q6GeDxD2ScP5sifsPikLv3xUifr4BC0v3xx+u+\nl7jrkPHpkvhp4xGCcL5HQCYErNTmaebjt7UsfrSYF2w7XeiLDdOPLFaQhZuI\nwFUW8ArG9shBrjqyPHVopjgbCfSE9EB2uZZ/Iam0pmMtcZms4yTaHMrZ6bs9\nNw/RW/d/mqHBAZikGHSNYoNMVhtUxU5jKiYrFWZFFzVCwzFqEY/YjhlN0Gfu\n0jFe1Im7ycTmh4BpH1nnt6Hdcx7RT99AviBlKSE7roLkmErQ0JpMs/TBU6/q\nZpgg9+5Q+95m0xfgQxlpOQY4dyrCs4SIX35LsY7HUBEIiN9TPjSXYdHJCTrm\ngY/F\r\n=4RjS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDRishvZCXkiAD+FLkGQGJowStj8DX518JbNzMD6im0NAiAEKjQ8uQhZk9SDcmaTdZhGYehdZPH80HaLArRz8ACCHg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0-next.1575215136.9c249960fbb00faec77c2a6eaacd186187d69838_1575215138304_0.45036952554778775"},"_hasShrinkwrap":false},"5.4.0-next.1575215322.8d54e00b08747b2dd88bbbc63965a3c187b7518c":{"name":"watchr","version":"5.4.0-next.1575215322.8d54e00b08747b2dd88bbbc63965a3c187b7518c","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"8d54e00b08747b2dd88bbbc63965a3c187b7518c","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.4.0-next.1575215322.8d54e00b08747b2dd88bbbc63965a3c187b7518c","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-F3lqpLzKaTevGYRRxot3PHiSXgf14D9NcbIxP9iW6OAx+/2u1kGjOvS1nHhxTNn6pbBacpXjRxl8ByAA16XAVA==","shasum":"cbb8ba0443675ce0150804480976e8476f89403c","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0-next.1575215322.8d54e00b08747b2dd88bbbc63965a3c187b7518c.tgz","fileCount":7,"unpackedSize":59864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+DcCRA9TVsSAnZWagAAigkQAIrP6e4sC9bf4Dqzmnra\n3RWVifXbgTbJ72KnJZlIrqZwWdll3npeD/xdVT76Jq2bRA937ncjRWJv3FL2\nVQmQdAKSmvkDPkq4SBwb+NJ7L8yFzb04xa7F4L9QoFRniu+sEZ0oAclmy0ek\nn3GEDS4t4jpItYivN+N5dGeDNz11p48biyL4D0m5IsdU1q3PLHohhpEFbehu\nFhBc5rzJZKsia8knWPablAaewwQduGPVqb9W0+bFgpuoh5/UEGytvqDxTRQL\n4DH1jG9liFPWgRIvr87HDAl2npuh+bt0uW0A/zf22YJvX3rTsCd5dDoZqVBb\nmizifHs43BfMWfNCLC9Fv13+G9jTmdhqfMQH90otWl8hyq5RwYjeTRabfhBI\noIw1VOKg2F4D94Z2ltbOUk65c+Ri8+NXHXIIVNQzXRDbOPxQodcvbBouyDjt\nMpieXe5JH9UqefjDkIr3CVQvD5N5qclWO3aQCI0WN20PTv3stLjWPBlk73M+\ngguZ4YvnkppL/srLXtfcLgXWx1fGlgCaXN2M3OZTxjEZ1D7HBu6f1wzC/a6H\nXwMB/Rzjr4WMLnOWUD0Mrd0U9wgDObGzhwc+LkfvcB8EkjHU8nNhlvE/HkxA\nTjREitSx7thcYG+loqB47u1LKm4X/9ZmXvTDKzHblmrdueKboiuYr2BjYVD/\n6erK\r\n=lKlm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhIbibwj6r4eMKIyLr34Vz5l5kH7EXo61Wnew1wl2NKgIgCSUelBlhm3copBRaxRxjQaqqrCcNAOsb5eC8GRiECw0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0-next.1575215322.8d54e00b08747b2dd88bbbc63965a3c187b7518c_1575215323858_0.432091434361104"},"_hasShrinkwrap":false},"5.4.0-next.1575216384.31e2e7c757f149dc0f437c47a32069a4fb3b909c":{"name":"watchr","version":"5.4.0-next.1575216384.31e2e7c757f149dc0f437c47a32069a4fb3b909c","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"31e2e7c757f149dc0f437c47a32069a4fb3b909c","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.4.0-next.1575216384.31e2e7c757f149dc0f437c47a32069a4fb3b909c","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-WwOlq4xxzXiodEkOKeCN/Dlvlx2YX8SrgSsyu/Hj9TG6qMme/mPgszzESJbncTSVDm30CTyR1vQB2LPjI4298g==","shasum":"b4f80590b4c27a6b5a7644e1662be8240903223e","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0-next.1575216384.31e2e7c757f149dc0f437c47a32069a4fb3b909c.tgz","fileCount":7,"unpackedSize":59864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+UCCRA9TVsSAnZWagAACQcP/0OcrUGJ0Jzmo2LHDXAH\nGZh/s41Z191y09/kOSTTxLl5WU4VcgdFDVKxRjahe0YnYxU2Yu+tXcn/iVy2\nqPMyd8xeS9eRII963SPe4852LRMKve7YDtPoKVWLoTAOrPB/Lgeh1p41eFnG\ndTxcx7rfaJ4emKBlNhmCIuhRJRh0gBrCXT050IXhCIrNdu8uU2lbjs16duro\n/jqjMe5NhrRa6xl0cwk4t0RMjIwBeri4/KXminNgX8bNofTaNiMDyNVcXDxT\nA1ik27luLSLFaGRIAduLLrCHvn3ZDf9SXg+aXaNyNMCwfIWy7qic0UCpv9ut\nKEGHQYwPvtHEBx/8aNJWiahaQHmVU6PRbOFRoozDTQQ2YrBsyRCdbBJHLUm9\nQ7waNjHna46w2f3H360BRog8psTWV+UP+CI2f5EFA1v8SM9pRsnL9spTc9ea\n4IxLZ/px6N7wcPc9vLSzdvwKfle3LgvTG/5xETfy8iQOWTJhTudYHW8rVmcZ\nWyknpO7xlhJU+CC28PcCuKhtcE6jg7dUvvRakhUNGUdUetdbWnQ4bSCBifmB\nlb/R+nrMsznRi+WoDAudTFNavnbBhGlLADsQe0YaZoA08NjHOijT49Rc/CrB\nNgWeK50Rspxy12gB2KlBYzy5UGPrSiC2P1mtiJ7yVCjrxR5ROc8gyrhyxpXs\nOPZO\r\n=puM0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClB8tcVACxXVcfuxkwKmlfHonsp3d3ElewlI9aDK+MBwIgI/6itaeo8tSgIfBLEnmg+HJyEW4EJNsd41ODDiLliYs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0-next.1575216384.31e2e7c757f149dc0f437c47a32069a4fb3b909c_1575216385757_0.3106663118028996"},"_hasShrinkwrap":false},"5.4.0-next.1575216684.22123aa23fcab39cc383202f79a01b7eb3ae6df7":{"name":"watchr","version":"5.4.0-next.1575216684.22123aa23fcab39cc383202f79a01b7eb3ae6df7","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"22123aa23fcab39cc383202f79a01b7eb3ae6df7","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.4.0-next.1575216684.22123aa23fcab39cc383202f79a01b7eb3ae6df7","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-atb4Ifake1MlPehSOt0t8KZCKVYUlE+aqbWtqLsCLzMdeJYF1wEqglEIPfXadoKIqkWSDokoTS8AvKZRglsGGg==","shasum":"22bf18711d6f2cd52455556925e7e62ce58e14a0","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0-next.1575216684.22123aa23fcab39cc383202f79a01b7eb3ae6df7.tgz","fileCount":7,"unpackedSize":59864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+YuCRA9TVsSAnZWagAAlpoP/3ChiKRijrOewvdT0Uwt\nMH8U9uoiZRwqQLDhZiwy/TFtCWHAH4ayCzUXdo3iZDOYgZawkYlYq8vZXsf/\nVtkVkNIb0wl0QYwQ1vSwnO5HgvthudDWoAcAUAFpqAC7Vuuco7etf/Q2tKl0\nACaMSP37oFP7iYww7om+4STUy6dX41MZZkEeY1LGm/XaNiMuy910kWhPSwRR\nt9to85JJEaZ6QXy19If/2Yc6z+YGcX1bKAR4jmvXObbC7LwIf/ot70iQqSG2\nD2Nvlidx6u2qviXiyOLUPorTkNciX4TiqQCo45CJbLm3REEEyYelBNn/PuNz\nFRWrQwi+s8TB62p7BJk7X2HjgI5C9p0hiqwvzBVhfyGRd5cLronFRnGIuOjf\nLzA5JIEcy0CZie8EFT3u/tGUI3I2kvEgTh1KjAXnpcPJ8lQptzBdrd8l8KHh\n2hg7Z+G4EvxTTCVXpPuCBOcsMVaC5DTOuTfxXJDzu0ZroxqY1B9yGrrhrjxQ\nTbrMwvoa7Mz32/6nGcemBWcYHfeVo84oIkdWzYtD+2lx2KOagIQhEHH91j7V\nZuVj0sjgJ4ekCSXgP10laEVSR4DPKsAeXAlHekXJ5fBBkyr2+pJbzhW7xCNW\nxwkA8tO5gLAwo2/IXw8e0FoAwIQRQLdn4HL56zLC9pzcs2rUP0yio3YHXE3q\nImyj\r\n=OJdz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTXyF+jOOjtcAwZ/CBBeoGJpRkhGfI0tTe2KCQrWszaQIhAJBPw/Ql4ol4hIT1ofsZxPw7p1R44gDJLFtPZSa4BI/O"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0-next.1575216684.22123aa23fcab39cc383202f79a01b7eb3ae6df7_1575216686167_0.8009047914257685"},"_hasShrinkwrap":false},"5.4.0-next.1575217482.3d189242fb10ef0fffca2e9399d345c2d3ffdd97":{"name":"watchr","version":"5.4.0-next.1575217482.3d189242fb10ef0fffca2e9399d345c2d3ffdd97","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.3.0","extendr":"^4.1.0","ignorefs":"^2.1.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.6.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"3d189242fb10ef0fffca2e9399d345c2d3ffdd97","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.4.0-next.1575217482.3d189242fb10ef0fffca2e9399d345c2d3ffdd97","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-bLSrN4j0CAJw0siP2ue+Sp4jimoEMEHaUaSiTg4gK5qQ4aSXc4vzuVqfKsCYY05NcGpyTYsltFlurt3+gTkPlg==","shasum":"af438e2984ca671dac47cbf66cfd588a8d56189b","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.4.0-next.1575217482.3d189242fb10ef0fffca2e9399d345c2d3ffdd97.tgz","fileCount":7,"unpackedSize":59864,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4+lMCRA9TVsSAnZWagAAZ3EQAI4qQUxNGIoX8ufVxCD4\nmvN4FAsd3oZGKayVqlESExuU8b93eAoekJ4a+0iBU7qLzumfoZPlpHZ/MhZg\nPPGQA4xj2vZMNitG43wVoxibPI591/qB76nPKJ6ggBrnFRwdp4XnSB14mHql\n8qyp/CSjg1JT3BsXktYDqNWUAT5CLQIArMHbTg3whAgDO53pv5Sj3WTlvXVp\nEVrSanDMq1gDBB67yJxtjndvy1hVkgddVuZUt7VZRyBuzF4aOapBKRx0jcQ9\nIHGXdaeWuUn0Nv6Pudtspz+VCqirwiZNO4xqkc031IwNWXpPlwwA3aSEPWt7\nP/ehweXQVI3K59sgJGBXm94WEaeMao1T/maR/K8yjcTu+B5Q7AkXdiPkYgmR\nL8KWB511KGOgMQKyTC4b5oUIq7wRspl3WsRa5rELGQkzttRh2qu5DBakM6Y7\nPDV32tMWwoajQ/fvKP7qqoB7/35YpEt6eQ8tzLPK33dSsQWt2PH9uoK0haep\nPxOLaQhWMS320lH62j6umoGnWC7zRVrc8eTopmclBS29c5G/9ztmcrZV1P+A\njAma0F7Zk1Kl9IlN8fGY3LltE1nBRSquKK64m9jPCbxaIctQ4JzN7Y77/qr4\n76JXHYWz9oUP5zYDO7wJdyftJ6xu2ppWSkG5vxk3VDOy2UsR6yuaEuP7KFQd\nj1sn\r\n=cdDf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGz6KhyxvSjO77lZQP9AalIxQvgV06DZXhdFW+v5WBklAiB/xgSq2FXUjYNsxKlsKvwThzk2Imfj9Z8NnUBjj4E+gw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.4.0-next.1575217482.3d189242fb10ef0fffca2e9399d345c2d3ffdd97_1575217484312_0.24720784951372554"},"_hasShrinkwrap":false},"5.5.0-next.1575220849.e358ee5e5891d8083dc6b8d3e677b9349f6044e6":{"name":"watchr","version":"5.5.0-next.1575220849.e358ee5e5891d8083dc6b8d3e677b9349f6044e6","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.4.0","extendr":"^4.2.0","ignorefs":"^2.2.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.7.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"e358ee5e5891d8083dc6b8d3e677b9349f6044e6","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.5.0-next.1575220849.e358ee5e5891d8083dc6b8d3e677b9349f6044e6","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-3yuc2ViqvGFxR+1tdbQwcrcRFF/TQmENFO0HtYaVRJ2bNm5X4egfUycPTLJIwbAGiy8Pzejk03pNPJZa61OCOg==","shasum":"d8f45c67d0626ac523f406d88d82ac5d6f058d78","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.5.0-next.1575220849.e358ee5e5891d8083dc6b8d3e677b9349f6044e6.tgz","fileCount":7,"unpackedSize":60069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4/ZzCRA9TVsSAnZWagAAqJ8P/1QzQvMBjQXXFIMDuInu\n7ZpMToTrF6Yd+Akjgq4wAgtSJrvghSywPDPSMD+6g1soOBnLo58Nd5HAWvGR\nwKKQI32q/hNJuy280GyQtJ5FZ0T9oHwAb/3A5mGHIu+ZHVDKN04SygQjQQO/\nBP+dD0pF3GnpFTD80Zsd1Rl8uzpCICd4VPiIM4EjET7AUG4Kb9asqG7ebVla\nUwwuYqrV7dsF8AYmjaQTZ3HAZt29IB5eXdV52XR4vTf3iYHKO99GlBNybp3i\nyIIZXhaQ/W1Yx9Nkkcf/zjQA1Vtp5+SSTyt+8vgpqVdLnqsi+bf4d57cxcxj\no4g7AeBu9O8LBze7Hb4jd9TG+NID9cbr9jgXUBJfcPluPEi55NajrezyyB1N\nWAvo13xnion62NPXSaVG+mWuHMatR+4U7eAS10bLekIVoBvH1qfRPO3fZpX6\nF7nLVglh3NlNrcMQP90jNrGVzcg0nUfO5g3ZZ6GKOGdA7A28WUNsgupC3Llm\nvsmzoV6wzh/PWbADoL7gi85moSQz7soGyWeU34kf9p8R3xscvcNM7S/moMlV\n6CDBkT/UGcQwnFWgB+aFzh7RL+iHMq2vESfvIikaR9HTvUgD6/gZlzFQP+dV\nQ0JDkRj2VB7R5IITX9n1J7tBF9lT2eJmcadig77PxIPIsntpcS7BdEtbh6UP\nelwO\r\n=C4yJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTqVZpZFvSkhbQ6kM8TqFmHwhdJgLrQ1izI4c4shzXyQIhALtBIiG2JcOJ7D25CEVJEdE/jjDMInFe98NNECqMow8d"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.5.0-next.1575220849.e358ee5e5891d8083dc6b8d3e677b9349f6044e6_1575220850611_0.8692628067473767"},"_hasShrinkwrap":false},"5.5.0":{"name":"watchr","version":"5.5.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"main":"source/index.js","dependencies":{"eachr":"^4.4.0","extendr":"^4.2.0","ignorefs":"^2.2.0","safefs":"^5.3.0","scandirectory":"^5.1.0","taskgroup":"^6.3.0"},"devDependencies":{"assert-helpers":"^5.7.0","bal-util":"^2.8.0","core-js":"^3.4.5","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"e358ee5e5891d8083dc6b8d3e677b9349f6044e6","_id":"watchr@5.5.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-JFvEA5glMjdyJjhzd2Ex2mHq6zYbEgeDpO93iYKQq3Xnlng2lb91lR42kfsV3SYtTaQCSkC1pK95fgNHHHc0MA==","shasum":"b6bf1c843d3dee36914e27786ec4b0c69b97c116","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.5.0.tgz","fileCount":7,"unpackedSize":60012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4/dMCRA9TVsSAnZWagAAhdQP/1ERcfND4Rh1rB8UnYNi\nPNsANr1+GR6ptI3SJR9mMxZDI8jClNw0Cb2qsn+JZ5nzNRfif+rTsoWIjXP8\n4fEjYpaYIrHbMna9Yl4drLu2abC5BEbmp3hd0jx7jVCekD/2dqb4B9/p2409\nAOFNH8H/ZzNpZ7xSJhdUXz0T3hZ9R74NGFXxrob2+1JI+EqfRk//7MaKMf6t\nIFfYFocvFkthTS9oQNj4Z/OoPtyBRqGPT/1/IdfAHFF1df5ml05nQ4tyfcjn\n83ApJWrXKS9MQdb+gtqRRBLGv34ZgjoXwI9claPM4UuMAIUFmrxxdVQcwMAO\nBX9vadiPua61BVYwaK1h5ft7pX3v1PhT4YPBLaPhU7t6eQrdSVXIiSUZ+Us8\n+QQnicOdosLPb+N2RggbLSvNMuuuhVVXnO/xABIkSjU7wAVWrvNJ+U6GmBEp\nwXEnefzRl10RWL3ytKhQINqQ5WkFAfuGch2gMIAhEy1TVIpTQOOZ3dnUFEI9\nQ0Mo7sl0US7eWZi9oGEsfKQc6DOQRUBWqK3O1BlHtmy0yPDjEgo04bdV7KP3\nr6hgy5oTBSEkRniimkFqFHFC3MWA9KP2ML3FVn9gzcn0aKcvbHUUl3fqtRP0\nh5MukGlYelTjKMAcKQbycOnRIgHCA26Oe58GL+xHVKfAVAUBBC9MrDzDCy0N\nWYP8\r\n=WP59\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDkzWn+fu+LkeAajxDgnV8i2Mj8c8SWbTC/Sf8Hj5nl7AiEA8uhtCtzXowCt8S7tARpkjVnQd8/861CA4NwRKR0PBS8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.5.0_1575221067898_0.9496096913286227"},"_hasShrinkwrap":false},"5.6.0-next.1575925354.af94182c8d7f5fb426649ba0e89255811c5804da":{"name":"watchr","version":"5.6.0-next.1575925354.af94182c8d7f5fb426649ba0e89255811c5804da","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^4.3.0","ignorefs":"^2.3.0","safefs":"^5.5.0","scandirectory":"^5.3.0","taskgroup":"^6.5.0"},"devDependencies":{"assert-helpers":"^5.8.0","bal-util":"^2.8.0","core-js":"^3.4.8","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"af94182c8d7f5fb426649ba0e89255811c5804da","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Require: <code>require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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 Documentation](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n- Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n- Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n``` javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener (changeType, fullPath, currentStat, previousStat) {\n\tswitch ( changeType ) {\n\t\tcase 'update':\n\t\t\tconsole.log('the file', fullPath, 'was updated', currentStat, previousStat)\n\t\t\tbreak\n\t\tcase 'create':\n\t\t\tconsole.log('the file', fullPath, 'was created', currentStat)\n\t\t\tbreak\n\t\tcase 'delete':\n\t\t\tconsole.log('the file', fullPath, 'was deleted', previousStat)\n\t\t\tbreak\n\t}\n}\nfunction next (err) {\n\tif ( err )  return console.log('watch failed on', path, 'with error', err)\n\tconsole.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n``` javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n\tconsole.log('closed', path, 'because', reason)\n\tstalker.removeAllListeners()  // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n\tstat: null,\n\tinterval: 5007,\n\tpersistent: true,\n\tcatchupDelay: 2000,\n\tpreferredMethods: ['watch', 'watchFile'],\n\tfollowLinks: true,\n\tignorePaths: false,\n\tignoreHiddenFiles: false,\n\tignoreCommonPatterns: true,\n\tignoreCustomPatterns: null\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/watchr/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/watchr/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=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://www.gitbook.com\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"monkeyandcrow.com\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://ca.sey.me\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://stuartk.com/\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot\">dependabot[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot[bot]\" title=\"View the GitHub contributions of dependabot[bot] on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/watchr/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <a href=\"http://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":"watchr@5.6.0-next.1575925354.af94182c8d7f5fb426649ba0e89255811c5804da","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-VSXTu+okO/D4m1ltRZgLNxQnh6iBeMEN7MYGmAZD1skfOOkr8a9jAK2rOhFG3NsABsRl1c28eIsJChW4TbRYsQ==","shasum":"22db6794c925887a06a93b90e37d0fc1e3219482","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.6.0-next.1575925354.af94182c8d7f5fb426649ba0e89255811c5804da.tgz","fileCount":7,"unpackedSize":60912,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7rZrCRA9TVsSAnZWagAAAfwP/0Mf3N2s9eG5uUuLHTxM\n1hICZpnLXz6O6sW9wUo6yGwHOs0rwgnnHtkC2LfonADvCdOgr29IOB9Vb0lO\nLTpRWipD1Ck3NQNbWMqLlgDxMtIVkvBSABYeuOn7Jwbfg3UIM1A2/nrG2ibT\nB5gYT5rBYoZtt2S9BNgjJFTDAWJvW934jQGVk6zc/twXEY8CNl7Z1MCFKfrS\nck3ebbLcoBeB6xpG7xaWUqvYKl7Lev5JFJSHlEVlpLnJE7pv5ut7VRc43bKU\nLIATtxhV7R3kYNZqBSkY/Z07i2GYGzbqdkymUg3zIuqQ3OcXp7pXnAmlssYO\nULJy1t2/rWeqR4N60nD732onfVi0I2WHXHkApERoscV/NeO8cJIDF0UPS8BG\n2JEsgyTkUre7H2bbl2X1YtAJOG41PHVRqKarmXOcKefVxeEDYLKIwZPBuVbq\nqNGWfs0Zvu504tX8PRKZz2Tr/Z3ZiPeutQlllWH0+g7/4k8LCNF2/mk7ywB3\n4oQukzJpEAUSh9a0WN2iVkcuha25ul/44j4+oCqYZdFjmJCJRTSwlX8R7/cf\nslhwtqu87Ah8QSOMRTLBDfPvUepL+FIP3N7J2cxzcXhTDDm5o8R2ZGgOAXze\naUY4loqLZ96MZKkUBO5vZdBq1M6nKMt9fM8wJH1IjGaiyom4v5q+IDlrIyQT\niYXa\r\n=Yomd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZNhhmdmOhx44pEiGu95VEElGjIDlU22zpZzC+BeFmTAiEA5pr3UIG6ASB1za1o/KYbVh/LxeV9QJuvxyjIJjAputo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.6.0-next.1575925354.af94182c8d7f5fb426649ba0e89255811c5804da_1575925355164_0.9622410887990758"},"_hasShrinkwrap":false},"5.6.0":{"name":"watchr","version":"5.6.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["watching","watch","fswatcher","watchfile","fs"],"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":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"http://balupton.com"},{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"http://www.gitbook.com"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"monkeyandcrow.com"},{"name":"Casey Foster","url":"http://ca.sey.me"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"http://stuartk.com/"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"dependabot[bot]","url":"http://github.com/apps/dependabot"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^4.3.0","ignorefs":"^2.3.0","safefs":"^5.5.0","scandirectory":"^5.3.0","taskgroup":"^6.5.0"},"devDependencies":{"assert-helpers":"^5.8.0","bal-util":"^2.8.0","core-js":"^3.4.8","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","rimraf":"^3.0.0","surge":"^0.21.3","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"af94182c8d7f5fb426649ba0e89255811c5804da","_id":"watchr@5.6.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-ZgK6+tXtjXwSuN6cqCE7j43h8po7Od02r8r1eHo4IzHE69N6cEqD6Vhp3F3fRQF3DO5+tsKbMTAUF5a80+1cDw==","shasum":"3d6c94d5dc6a32c0528c32c79f84f5d7595b7813","tarball":"https://registry.npmjs.org/watchr/-/watchr-5.6.0.tgz","fileCount":7,"unpackedSize":60855,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7rekCRA9TVsSAnZWagAAGQkQAJ4fObMRY8kx5p+eriEu\ndILMXpNJk8dU7545iEvS83mkfn+BB4qeaMT3VUBms+kBjQSfzUy57snUt8ue\n/VCGyyi8s4ijnowWdzJv7KkBTxV2DSwoWU1eZZBkmeewgFUj8h/S3JlJevUL\ncYm5iSFz2ErpsFQT5/kd+FMw5WVVBmei37rMD7IHHK9SY+96o01j3Gul/vLQ\nrCQyHrbcNKc3b3zJ0BneFJxMo5dI/0zddmyXM93943VZdYQQYE/k3M2GCj15\n33hvRaG5OlK01mOSlQ3mHxkO6yhZcl5fK7VQNRUzFcciUzuc3sQzQDrInRsg\nmZAQctyYstlyAbFMrxG6Ie7yVjM359Bzo2w4PfgyH+fe1FGtR/U35FQrcObX\n1sGMtkubl9bF+wgt373wgWlQWya4ybEJBODtttu4hwqpcr7N/5OmM+teiE1z\ngrIcBFCW4K3h9BDFE4DHnu/5luRAMhNBVtUUi/fTBncFDev+xasrkQvjqrY7\niQNjozlPeenT/E5VejkpSJ1sROYsAdqysl6cnb0ZsZ7PC3zFEQZGOusgpGmG\nKAzpS/cMMfWQBvm6Gngtqptb+hXcq2+7Q/aasrw9nq619Rn5JXMIqJAE12zd\nypmra5urXfFZluDQ7fgA+rRvymgPqa3gOhy8N4TVW7IXCt9umHkOeiBR6z++\nbbyb\r\n=j2Cr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/40AL+PUqOwZpIkV0AyuuF4oKGI64XH8BcZYt/gGFdgIgIfFkr9ND0v7kQ9F6oRXM+5HUSrVtskY9wgSald5V9Xs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_5.6.0_1575925668490_0.7669706095149715"},"_hasShrinkwrap":false},"6.0.0-next.1590028186.78fa766f68901c2697a49e09d1925ee9e2c3fac1":{"name":"watchr","version":"6.0.0-next.1590028186.78fa766f68901c2697a49e09d1925ee9e2c3fac1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.2.0","ignorefs":"^3.1.0","safefs":"^6.1.0","scandirectory":"^6.1.0","taskgroup":"^7.4.0"},"devDependencies":{"@bevry/update-contributors":"^1.6.0","assert-helpers":"^6.4.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"78fa766f68901c2697a49e09d1925ee9e2c3fac1","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.0.0-next.1590028186.78fa766f68901c2697a49e09d1925ee9e2c3fac1","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-fk2mPjnOzben6drIWfnsRrPVU7J8T3PnxOgLzuNWVHl4abIAmIR8q1mP4d47/wXZzQJuxyMgHeFjwTi9X1RrEw==","shasum":"9985c2f930c45ec118ba410527e460f2b4d9a6c6","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.0.0-next.1590028186.78fa766f68901c2697a49e09d1925ee9e2c3fac1.tgz","fileCount":6,"unpackedSize":61265,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexeebCRA9TVsSAnZWagAAtU0P/0zYN9nF3lQF9RGNYRO3\nFDOg8YXIBwXBcSl1bdL3np3+p1gIS6XP7ncMT6zBHssP0lkn+L1u5vTfhPtc\nqKv+MiBJc2UqzYu1gnoCN2j2a/6y4AcM5jvT2iMyh3NlS38LN3eRvTu5sx7h\nUk/VzBJMtm1vH1QDfztzpM9ta1gfLoaD5aLlJQlMs+uq/AXMqDaxq4lTOMtP\nPYXw7y/pUa/HrO9lRrZ519weJ8lKIX+ShlRjkmzIbl3hp0rrBfUq8cwultw4\nXyZldx/31Mu0RCEc1LKKABtVVLak5AyXQfB/bY/rMnBlc1jtyvlD2lLkQXpQ\nnztzk99IlA/0vZPaiA8vt3R9unXrEB3uTROYjvdQAN9fKnZcxHLHSbSuBwv/\nB0KRG/xSu48DKO3JHT1TSMepj/jh2zXGrNXKxHwqnD9vCSIWrpxJSBrDrzLw\nPOvirzUw7Tb3l2bAVm7yvDT2mRcYpRDUxAStl5xJyqpDIfyPm6O+b8+Z5OkQ\n0ZYE/3HaXTl692gEh4Kx8JnjiG7/2lHQ4vUrgurNMntnYEmQVP4HA4+mh3Zl\nL3/z6E7kgu0IxwqOBZNUzPxM4J7VMixcLtAm4bNZ+oUnZxdjml5rW2m/T7WZ\n+zZgBVGAy7DnFpYSuRKB1VGkXyG1ibR6c5oPIzd3sJbjSnqS52sK7oUXr56T\n+1Iy\r\n=iL/h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqevfF0kOZlQCvRT+BliHG6QgogcMOg4vrD5GqEuBsDAIgKIiA13/r3Y5oe2SaK105A4Qgf7PZuwBF08bo+MtXVyU="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.0.0-next.1590028186.78fa766f68901c2697a49e09d1925ee9e2c3fac1_1590028187390_0.6855803318050402"},"_hasShrinkwrap":false},"6.0.0":{"name":"watchr","version":"6.0.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.2.0","ignorefs":"^3.1.0","safefs":"^6.1.0","scandirectory":"^6.1.0","taskgroup":"^7.4.0"},"devDependencies":{"@bevry/update-contributors":"^1.6.0","assert-helpers":"^6.4.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"78fa766f68901c2697a49e09d1925ee9e2c3fac1","_id":"watchr@6.0.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-rNxtbqaR2tlp9i4CLXwnJTo+msqBo76uGvdKMyq3aWo1jxDTle8C6L+axC1R6gwpfFk+ohrpKVtw68gC78hv7Q==","shasum":"ce12080abe527cb532a365f5410c59076f032008","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.0.0.tgz","fileCount":6,"unpackedSize":61208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexefdCRA9TVsSAnZWagAA88oP/jsdotf5I7YAmrkQtXUp\nnHW6OkGFOXJ6R4tZvq5hw9w+JCXVhAKtEaFcICsGbuZyHt3Tfddi3EZGBymY\nbDEPJsslPpA0tLw1kQrSzxUHEe19b0AN3VG2qUY04x6204oyemd3ip0ICacF\nlhWxFVSIB67OVjUjP2pp92Ar6CtS6dv2PpyB/KtqiR2JTpoKGAsATpGKrqcV\n6vOwA4CEaIGHShqL/w/5kKf8BGJvG7Uhski8FlDgtWB9kZccRhzWg0JLUNMU\n6R+Fye1/NAfycq+/qum2TK1/70r3EARUSxVx7ZqH+R9j80czNpZJXeuUp2hI\n93LdZiooV1iwseR44naJBgdQUTGiztXoko5CNwkvMpexIHE3WbcSK10xDVgW\nBjXhAl8j90QWsrYSbIjPWqY8uE6aQ6ELiXW/XrH1M+Jhhj5NkyfyuCw7ePvQ\njRfPw4mwLMwIIkUh55lzPR4KBV4YIjty60E0jHCT+kbGNPEP+pQNigz3PVv2\nDpxFcuHI3YuVQ2UqkvSmxy96VyuI0O9ezaZR81iFXa6o/n/9x2OTRimd4FPm\nm2iJg6rvWZQTl/dgv4bNmvrtUC0XmBEa+UT7VszIEd1n1jJ1Wg0gHzLmeBds\n4GEzOKNLiAju8iv6chTJFTMoKEhzlY1FAPucnuKHfV3EIUc2A/bkiA/lt87l\nWezn\r\n=XjZo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJSW3CDSdpH0NPcWAAKE3WnOTzR0CJDAPu1Ad5uzPXZAiEA/FXlz+efuWuvwwUvSHQarm8fpSvk+Jifq4Ll8+1lSGs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.0.0_1590028252826_0.30747550250292854"},"_hasShrinkwrap":false},"6.1.0-next.1590151259.22292b4f1ed5854409635291765f97781edc24af":{"name":"watchr","version":"6.1.0-next.1590151259.22292b4f1ed5854409635291765f97781edc24af","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.4.0","ignorefs":"^3.3.0","safefs":"^6.3.0","scandirectory":"^6.3.0","taskgroup":"^7.6.0"},"devDependencies":{"@bevry/update-contributors":"^1.8.0","assert-helpers":"^6.6.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"22292b4f1ed5854409635291765f97781edc24af","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.1.0-next.1590151259.22292b4f1ed5854409635291765f97781edc24af","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-VnCv2O6+E5+gWwqxpxd5XIrALKi+/Aw01Y1yA1RbnTnG0GcymTDKbmwBhgQmpy8JLXB9h836VhD25XS/Ea9T+w==","shasum":"f2fae1ac506586a9f19c8409a97ff77cccfd190f","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.1.0-next.1590151259.22292b4f1ed5854409635291765f97781edc24af.tgz","fileCount":6,"unpackedSize":61458,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex8hfCRA9TVsSAnZWagAAIzUQAIni1le9BVWWYnuy1loo\nixZpr+SunHLGgQTG/PvKKnHkcyJfuYngU7GT7gKIAotL3l+ZNFufjxm+xOMi\nNbRVjIMA2GySl6DSljRrzEmtWPslqF24WaBWlY05YeeTcFpmOZEeAH3Hmw8j\ntgnuwFem+JaKVVLiSl1jXECC8SfKbbk359osePrbLLDwN8VucOFRGa+U7UK7\nq6yjRYVVNEzKLIBBPOLnHcFOK+eGKu8VIniy4xKprgK3Y5e5ienUMS2jEACf\nw5A5XH/UI0T/YVHP112dpwLvv9tp5dSMCfFffIdOCi2Roft9pP5ayY6sRjmf\nvuvyZvEHYt5a0cUPvp750Wh0hP44TOWi5RG5WziqH90Gi02b5zRC30hKty/j\nqMKBelFib0VQVrWstlV7SN3uCbPqroc/ZDSr9T1xj1Tq0oo6JGTWOXH9NYiQ\n61PxGn+5Jq5X+NR9bfCYe1X1QaQd1XLMIwvnc9fi4aNFEB9h6ByMHTCidZbO\nWKtLwer2WsIOFZ6xkUYpNiC0TvrpKGl+9rdNv8hXRRQdUFe5lBzGY9NqfRcD\nXZVqQ6abAM3839eAtc7p9xSBOzsT/U8tWA8H3LrFq4L0i+44YJFclDZZVU7V\n9h9KWv6fI2OiS7AiNAv6QgVW5yn4rgDFpo05IUNfKnwC601niVN1kslPPj1J\nybIL\r\n=RC0W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFyUwrtRc58ijR5vdMZrIf8B9148JzSUPTQdaw9x+73AiEAyPdhGz744qrv0fwXqLKxAjl+wenJmjPQ+HRCzMfynl0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.1.0-next.1590151259.22292b4f1ed5854409635291765f97781edc24af_1590151260703_0.34623954270008195"},"_hasShrinkwrap":false},"6.1.0":{"name":"watchr","version":"6.1.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.4.0","ignorefs":"^3.3.0","safefs":"^6.3.0","scandirectory":"^6.3.0","taskgroup":"^7.6.0"},"devDependencies":{"@bevry/update-contributors":"^1.8.0","assert-helpers":"^6.6.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"22292b4f1ed5854409635291765f97781edc24af","_id":"watchr@6.1.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-kDmqHfilYVsOU4Ts1pJ4Lhu0fQ9HtW+q7e+B56nfsbYZvonAdunAGdwhll2bRCO96zdZt0rZcsOaNt1j/G5xCQ==","shasum":"e64bf29f5efeeacc31d3a1fb8fbc1aa61c7e1286","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.1.0.tgz","fileCount":6,"unpackedSize":61401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJex8mXCRA9TVsSAnZWagAA59MP/0dNxjnObzReYWgserqO\npJ577yT6dHCW4Oo/CPmnITwfM1jOKdzSY9ynP2tu0ldJKYjITU4+PRZpVyTj\nhyYhPfVW5ZzdSA+K9A8qK//A8YSXf9+6iLa9ANT71etYEEETL3MXXuBPhyBG\nijqDgRFyZtu/NX1ea8VO/katay8CtkHgwEH/FrWCvszzFHdZ2aspr1YUsbZI\nRvZParK1OiNBuOnwImF7yi6TejDZzzhBC8ZRKaMT5TVaMbxrt7jZATMFgu3h\nHPppEGE/T8+YFWkNfZREf1+J/4AyijA1BsJnDwYbxw9Jv1TDvnEBV8ww7xL4\nKb0CWj8lvOQAREp7vFHGJaH3foI/P8JdKMDgsM/7KXbFUO2Mx7ISKGKxTElh\nuYIVxqrFdPyspE+xTIAplIvYJAYScOUOki/o781wCQOlQVy2wogKid7TSWIE\nlN/sADwNVDm8rHXkYB5S1ad6grlxiX8npgo/68uZcGw3BN03DTb3U3kD0gDN\n+g6PofWuo/cHOcTJrTbk1rl1Xad7sj0hzD0tMRPARBQ05+pl5+p+fIixPFYY\nVgIpkwnntl2aa1rjngquBxCusxxmr7Fa2UaqY9ha7u79bqtUiXH0658NDs28\nDmEwm/5NNohiw228DaQDxxbAaa0vRtB6mmq9kcsLyubR0ypl66CQR8LrjM8z\n46L0\r\n=py1b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG1c5mQls73DFT07mgIQUeyyjWZffqno0b8BHXoGGRg4AiEAnXsinKzr5t18Ar1ElD6wdyj+/YsLDI1NIqywHqeNN1o="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.1.0_1590151574464_0.6604023236665972"},"_hasShrinkwrap":false},"6.2.0-next.1591790006.fc88daf31ac97e7948e1fddfe06905f5989143ee":{"name":"watchr","version":"6.2.0-next.1591790006.fc88daf31ac97e7948e1fddfe06905f5989143ee","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.5.0","ignorefs":"^3.4.0","safefs":"^6.4.0","scandirectory":"^6.4.0","taskgroup":"^7.7.0"},"devDependencies":{"@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.7.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"fc88daf31ac97e7948e1fddfe06905f5989143ee","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.2.0-next.1591790006.fc88daf31ac97e7948e1fddfe06905f5989143ee","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-gAeOgmVcJnKgg55R9qEUCyyqD1TJzawjbovg4iQFjZj0/SqF4vjtQAPHCiT8h6SJl68NWBYTeRXNgHwpUJvE3w==","shasum":"82fe75bff4007a379c791e062564f040fe4a2788","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.2.0-next.1591790006.fc88daf31ac97e7948e1fddfe06905f5989143ee.tgz","fileCount":6,"unpackedSize":61652,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4Mm4CRA9TVsSAnZWagAAigcP/jkysXXd6fqm+raiZw/E\n2ARAKC5Zt1iN5fDJkHq5pTspcCgBCc/FEdWG2z9uyE4zOjVttsBlm+ZZdqb6\nsPM8EnFgzmL4YIcp6izRnW2BJA6c1vRt5GCGQkQ9GzxOEn99ERyJn6CtHXLf\nZs0TAHDur0Z5iZny97HO10efuwUcxR0LmwdZdISFYj5MSbdchiTwXUPluwqU\n5I61rt6fWj7ZpwZjErp/hkU6W/TJast7hSQo7s/8OtvwqvRiy7qDesI6jVj0\nHq8ktsIvuOt4knUbNfygBvIbqPShQBduU2Gu1JCnSZLJn++zYyxmNM20jJGk\nw+pFQSac+sHSoExiXv7bXFTeEMJ342E6WTRzaIdDTYZzBNaSA/dmmIg+xnrR\nAfpEScNqbk9z4uhh40tMYsgwUKSQ98V6uP6DrZ2NIi32o05ImCpzC576wdbq\nSNFwnad/je3VovFvHRri6jH6Ir2ug3LMI7CguMkct+dt3D/kPAwsRw3wMt0B\nlSML8aiBRAktIjvfpEJTfZxKAvsrdv7FOsjt/tu9WqV8wLrc7VLjICW1InZC\ntYZYBMRty2GPl2sbclSsl7tYmpnehHEspN8mXTijyVXmZiEP4EExXLiaHm2m\n40AoSI9vifoNApvV9I4Sl9l4+yKgmi4lo3lR6/jOP4blk+vKG1TauiddU7mA\nZ4Hc\r\n=mwaT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEf5924zsNZx9+gOsc9n9m6RUZDh1qPljGn8ldEZgg1XAiEAp4X80DdZBslD7WC4PVsis6DExGIj+jX+iP3aJmdXYoI="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.2.0-next.1591790006.fc88daf31ac97e7948e1fddfe06905f5989143ee_1591790007945_0.7947444967518356"},"_hasShrinkwrap":false},"6.2.0":{"name":"watchr","version":"6.2.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.5.0","ignorefs":"^3.4.0","safefs":"^6.4.0","scandirectory":"^6.4.0","taskgroup":"^7.7.0"},"devDependencies":{"@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.7.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"fc88daf31ac97e7948e1fddfe06905f5989143ee","_id":"watchr@6.2.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-yk8LQaYvQgzduCWFzYfitmfsX5uF/FxqmOrFYvBiV/8/8Tv3f8xEWNX0B77POeLar4CNgLx5x8xFlJ/rXy6ObQ==","shasum":"468bebd2f2ab45458d715f1f9ebe43b7771a45d4","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.2.0.tgz","fileCount":6,"unpackedSize":61595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4MriCRA9TVsSAnZWagAA8aQQAJlIMgswk5IUxTjC3sQ9\nlvciFqfznyvXxGuM5AIfnXaE/m1CVrFuVej7xTevUVPOT6ta1a//Nepw8fuz\nXkEJqZbYZCdH84FxQ7bW7KsKOsQD8PzyAAIXW2itlei/c13cWXoZV+pgnl//\nyMQCorECyoZB5YmraMu2lYru8FfDShRxHYrZysRIHmB7YthCY/3t4VXSpBIB\nRvcm/mdBUkfE+Q3C+xeSOXMIgpwObX4WasFGf8Gd0jdzoE1W/ujlhRZdFKGY\nUvRZlWgqLYDL/9yEednVonl5QmIN5NQaf8rvLr3loUonGAc2Ze9WXcVksLgJ\n+Iy4ivb+WO613OCT2UgH/eiVJMbiaW1/BKRYttY8WpREyv0jNLtfBoF1cLj8\nsSLG566iRfZrSIgxZ65lbPdlfbRX2u3+fkBDheDS5Z+TCGwW6U1jNTVskxAO\netJBUMQ9XhpwElWD2xUzIyQ0Mp973nW5nrQSagmsjmlKlvDYW74IxZwl0NoN\naDQnZQdhd+fKiNX1WPyfZKLyNkLZKhRGmBVBqYKwwRlixZwqRkuuvz/v6GBn\nGhrsUTlyYJ5RvlAki8Gn9bjgooSHLN17g216RRb7EW6qCKr1Mcu0N/ryr87u\nvAS0pBpAwJFX7AqnOa+NKse6QQcql7R05gaIR5bz+gHL4v89Z9c8jApsPamb\n8Y3i\r\n=2IvX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICfPceVMf0URHNNRBxx0Vx0+AustsyM5hRpw7OEMzPsyAiEA3fGbRNMw2aALn37s7qEW4GMlcLw0F50DWAFvB3CRQJg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.2.0_1591790305896_0.051911047109114206"},"_hasShrinkwrap":false},"6.3.0-next.1592732750.f1931132cdaa5fceadf765510ac26438285915ee":{"name":"watchr","version":"6.3.0-next.1592732750.f1931132cdaa5fceadf765510ac26438285915ee","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.5.0","ignorefs":"^3.4.0","safefs":"^6.4.0","scandirectory":"6.4.0","taskgroup":"7.7.0"},"devDependencies":{"@bevry/update-contributors":"1.9.0","assert-helpers":"^6.8.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta: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:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f1931132cdaa5fceadf765510ac26438285915ee","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.3.0-next.1592732750.f1931132cdaa5fceadf765510ac26438285915ee","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-2kFwY7jcQugSa46rUm1txOKACabkZqV0v3ib1ieo41ZQo8A9UvkQVOm4CdZBJM7o5Veair4JeOyARX1X7+o7ow==","shasum":"98beaf489fbc16f69ba36ff4053ad7ab390431d2","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.3.0-next.1592732750.f1931132cdaa5fceadf765510ac26438285915ee.tgz","fileCount":5,"unpackedSize":61567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7yxQCRA9TVsSAnZWagAA1isP/iOoAHTq4ci8I0CPEsUG\nnXZ2E8egHJ4oeEUn0OzuqGObAoly/Rew/6GKQlpIG5RTjtq0s+PanuCjsIl5\nO5D84hirjHJCTt8kCnGYFmqeAxjaRdNVYvcvdIyPiHhxNCw+cwTeHnQKbFaP\nhTVjTkHmwParEraf75Zz9H77nqEa4yD3SReOPx7iQGHBUkn8rtNeWyA96jz9\nGg8WQNdkOEkP9/MshyiG9fI+LP+oNaI7w50zL1Uz7TWnPSNZrb0M1PPKFVkp\nMj0RkyueRvzYzb7cMUAu5M3WNFvN8NZsu+EfiFPxmTVzD9h4H/NeOSkHRzVg\nWWQx6p9cDNUQ2RqJxdXYl1rgZ1U7P62vk4zQHS0R11u0y6IKwle2c2KlMPEe\ngkdePmNpfNooffKTCsvxAAs/IL5CcZrYVTJJyCmgsR/y/WFaUFBKFLzyltn5\nTwxXyjq5n2q0JHWUqY9mgD7M4AYbL5DuCuWIEITzM6Y5YlHILyscnr1V7PaV\nSRY0CNCxjOKrdh9xF+XghwfZ+iH32bdL7XbRVNtGOyain8/wKq0pW7As3Ald\nPw1rI2sJ0yTm1qxq5ddw7cifi3FXEy5XmJPntHZuYvpIUnFxWSuA6Xr+aHe2\nDgVg+SdRp+dDmZzlYzAyihfbvRSW4PJcrG7NKjPkOdwbMNpjkN2Q9YK3G0ft\np1yA\r\n=RO+I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFI6ASDMy4AXhYlSrYdW2h33SE1swzXJW5zgC47kVeiEAiB8isvZNaiidMY3kjRW+ConR+cRQy6mP4gZIpPi5Tgubg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.3.0-next.1592732750.f1931132cdaa5fceadf765510ac26438285915ee_1592732751681_0.4398442699134757"},"_hasShrinkwrap":false},"6.3.0":{"name":"watchr","version":"6.3.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.5.0","ignorefs":"^3.4.0","safefs":"^6.4.0","scandirectory":"6.4.0","taskgroup":"7.7.0"},"devDependencies":{"@bevry/update-contributors":"1.9.0","assert-helpers":"^6.8.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta: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:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f1931132cdaa5fceadf765510ac26438285915ee","_id":"watchr@6.3.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-XQbVzb1ao5QvFr4n7mM6V/7phxON+vg1lNoVjSzubl09iH+OKZuuLhRmwOr6vzUFwyhSZv4y4pHycSd2A1VgzA==","shasum":"9ba373fb3521db9ecceacb4fccd0358b052986bc","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.3.0.tgz","fileCount":5,"unpackedSize":61510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7y13CRA9TVsSAnZWagAA/fsP/0Vv0/k2g9y+GVsDedxV\nV0+EY4AeM0wzvBZr6Xw3hEB8eTuPys0GeIBwVcCJn5l/rdWCF1myWomte7c8\n5d1KX2qYNxcvg/hYh1O1I3lXsZYMtWoO042WJuTOOfsFqYiRsPnbJBLQKYLP\n1/8HP1lI9jwU8KeCqH9uUgNQm/ftbv6Yx8L9vKTYsm1RgI94DH4FmKG7lIZj\nfDY56yZr2zJEyGJ726PHNh/zWYwSZiLdf/FXUJ/5f6+yEZ71zCfzMcAl0n6k\nWezdzswfaK4VnmRzoF9Pb/KVIKdLTxP66TXylOnUxx6GaRnW1XbzXCnKG+vb\nGBJu7Q5QWVuYd/RujU3GYV5QIg+4yzBHJKPKFvYLSC80bL01kR7Efl4DU2nx\n79RNxnzMJhxu5SgtJzypfSZO7k+sylkIXlQW6ImWPwxM5VPhR7NC9a7swgi2\nxs1dpPrIQBwUzrcnhmL2AcLJMdI8S4PVoTKcTvDAWPYdNB9P6WZqwYEXEuMf\nhvp5/IUbKSVljUwB/K8gsygJqW+yl3dvyhg6oud8ny/wa9JAO1yKJ86Ctlll\nPSSlyHWAIwMBKzPzrS5hKI/qXNTEyJltf9wQblchTQtdMaNvndczNYbZVoI2\nADrlpOCNFMITGeJJJZWGewQ7KvZb03T1CMwHPFrJnzzQNcf3HJ369nZhI839\nP3dW\r\n=k20n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD49o4kXwnO1b1tN4pHDwGNO8oq/PttPeU0DgYl89vB2AIgAY8kZnCIMEOFCBKa97o8zhrw9pcYuCWVRVqkt0gGbvM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.3.0_1592733046660_0.4145319982214921"},"_hasShrinkwrap":false},"6.4.0-next.1593063819.0f39917a2e0bee413affd0484badf3185a604d72":{"name":"watchr","version":"6.4.0-next.1593063819.0f39917a2e0bee413affd0484badf3185a604d72","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.10.0","ignorefs":"^3.9.0","safefs":"^6.9.0","scandirectory":"6.8.0","taskgroup":"7.12.0"},"devDependencies":{"@bevry/update-contributors":"^1.13.0","assert-helpers":"^6.13.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"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:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0f39917a2e0bee413affd0484badf3185a604d72","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.4.0-next.1593063819.0f39917a2e0bee413affd0484badf3185a604d72","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-N3M52FeZ201maGkFc3g6VKqnCrqIjuh2SOoHq3/qV3OnCpiUL4mKHtRo3TeWGEshsD7isWccXCuJOcMPFMlEdg==","shasum":"099baae80dfc52bf18388c063042eac05df188f8","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.4.0-next.1593063819.0f39917a2e0bee413affd0484badf3185a604d72.tgz","fileCount":5,"unpackedSize":61770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9DmNCRA9TVsSAnZWagAAz8sP/j46/5b8yf1lvQBYHkmY\nhsSKJDxbWuvU2EBLS72nTyDSCA2HNPQHz144Bg3KLRprT6AJF7juqI7Sd++8\nK8HsloEtvrkbOB3B7EE9DGhplohKJLB+s9Q/LkZKSmrds4YswYl0tGWu01nR\nvRrgKREp+B1I6UVh3nAnStYhA/z0FfEXuT1jW0JE3obvGKvutq8d5AlohJil\nFDtxhH78DWc3TrwUX/ea8RfR5h0+4AfAZRpJnm8XWzb5jM7QinGfjUg+/wkX\nUkZqoFWzfvloYHY7dXTSsj+WpxAEK/2V/Pc0Un0hpveVgYwDLYDl8jsREiN1\nyOs2TQhgGirpm9KYhQUYy5U+YiT0x24D4etIol4Yb4p78OM+13FT52I6SPNI\ncrLP+Z4Nc7WVyLCPSVbSTGMQaRAqDRY8AeSbnbQyTBKT8ovBA5VNF2elymXT\nv+1vbpc+IxGvZx7BormkD77FrKMiEgAIN/j7WAhFKnzecfXYDrAryFkFNMUU\nxt3iUSJL9OF6TtffMnsL0fms4SaNrihR3Kij6QN/gaPUcCPFt4FlbTc2BfKe\ntm1WUkPE9gk5yxLdlq9FnnRkBxQT/nKH91QrDHjVL+gWo30E8+BTHTabtvDX\nAPj/9DQ1uuHdoKcDmWkj9ICbovaUuIl0wfqXeBgnvymBq15srI1zqkSVGC10\nLAnl\r\n=5HNg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgNQ7Y7nOvkTwgpSvT+VXiOvcsct9tUJWEfz7ZhL9V/wIhAMqawrlozKeXrRs38/FzNh3ZksOow8V/i1hl8AYT6rwD"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.4.0-next.1593063819.0f39917a2e0bee413affd0484badf3185a604d72_1593063821038_0.025285088029936675"},"_hasShrinkwrap":false},"6.4.0":{"name":"watchr","version":"6.4.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.10.0","ignorefs":"^3.9.0","safefs":"^6.9.0","scandirectory":"6.8.0","taskgroup":"7.12.0"},"devDependencies":{"@bevry/update-contributors":"^1.13.0","assert-helpers":"^6.13.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.3","valid-directory":"^2.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"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:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"0f39917a2e0bee413affd0484badf3185a604d72","_id":"watchr@6.4.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-+KaJuH6NC5cWqJHFZHv8HUNLzoenosJBTwnFc67Iq79chQUQ+pNQKiBRRWi93Ytj4CL4ZKF9RbabOcLIuN988w==","shasum":"0e423d06d1bc58bab2971be8f3ecbf920bede939","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.4.0.tgz","fileCount":5,"unpackedSize":61713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9Dq7CRA9TVsSAnZWagAAttcP/0ZPPw5eoZjvzYO/R8m0\n/e8t9rBA54GJ1wY+8WTcphIQhDPiX46S73i5osesc+rE33YiidI2X0Er9gY1\n0Je9uCVlo2Xl5SBKMsQQi/biiAkcWJa775CqnMR8YQOVEmesj+48fJ8EQ3UC\nQG/6HKV0PYWnEdSZcw6qDJdCPHmzx15KYEV9J2NGoaPl7im95MVqsoh4qW5U\n0S0ud+sMNh5+UKDjzAKbfju4buh3sXcXa+t2/h0r3Gtsv/bcgyff2JR/fNnV\nQCSdo4kaApvUm/CKutNo8qsmSXuKN62GXJ9fymxbQMd7c8383Cqa4ftTm1Y2\nf3mnEjfh0/A61tdKu4lPJxdHolgzKJfMqxDTDVXIchyHkZJt+YSMZKNgyhtn\nWfActGyF82SLgK89HDYo3DFLUx44/xtWrCShqoUckTDf75W79JGAn1u/3Qkc\na0IYCpMv10wy+qst/wVLpeA/evJr4rPDbZASMmdSgqZOUZh8Jmq5+5tNUNz4\nUOBH+mHORk5pSALeA8nSBGn5bXIJqcWcBdH7mpgJaB200gRxqr/LkbUnFZGg\nkCtOM++aFuwdSXgFFF6wx8l1wKfVl11w6ggNW9Xg9YJRJjPO7xP+CgVktu/b\n+u0NbS6HdrDa02XStfmJMDQHxueM1F7Qwz7yieQxKC709KpPs862ZFs7tdan\n2oKp\r\n=yWgQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFt0uDg5u9lb4qyEOZINrRsSwVRSEawSH8UFMQUEuUzeAiEA5kC9LE1XaakP9B/07w3VGQpbpL62wKO9+Mv+vZPPPTU="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.4.0_1593064122556_0.7425995466207786"},"_hasShrinkwrap":false},"6.5.0-next.1595455383.12313ba33b987def3e3df6ec490472bc9b5285f7":{"name":"watchr","version":"6.5.0-next.1595455383.12313ba33b987def3e3df6ec490472bc9b5285f7","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.12.0","ignorefs":"^3.10.0","safefs":"^6.10.0","scandirectory":"^6.10.0","taskgroup":"^7.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.14.0","assert-helpers":"^6.18.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^2.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"12313ba33b987def3e3df6ec490472bc9b5285f7","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.5.0-next.1595455383.12313ba33b987def3e3df6ec490472bc9b5285f7","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-OPwSVU4AGVqQ7wVVNIGAZ7fSDlgrZjPRvPl9V5pL283PzPUsOIkfc7iaawRmtop+B1GsdKpd6XyRO+UIU+3Q1A==","shasum":"f2440be5aebedb89b5ef3ae993f0ea24a1cfb735","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.5.0-next.1595455383.12313ba33b987def3e3df6ec490472bc9b5285f7.tgz","fileCount":5,"unpackedSize":61959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLeZCRA9TVsSAnZWagAAcnAP/j+hiD3taVEekbGIGm5h\neaqy+Pzu+7Qq+kDNAmHC1AvSZVkQyhR7xwslMSIctbjQZMHIrMGA+CrXbVA1\n7aQ1wR7GtMczEDKMOC5lpb19HP8PgUqhMD8aG4Iyaq1tbowtA9Vr/qvNSNU4\n09o9wuf03A0iVUFxNM8WJYZ7mVmpLU3MbEKY73wzYsPnWWlleOHR82HMrqV4\nfnWRzCbJq2I864QN3qQbTZlm/yjyonskBF+2jWNhY7ammlmx5WbfuJZ1/JqE\nePB+jkiSodkt8ykbfoOjuqRPjOicm08uYh80oyrVPLTi8G+MXHsSbkPe1X+b\nt+jjorM6sxRuH8EoS3ViK0oC1qFKRJZeDNSsJvewhFI1iBR16/Pjwf1kb8sU\nnHgiFu5+fw8WvtS+dlvdZ5XeXBIlWHFlMj3VK59U+P2A8v5/aSOc4nPzWFu0\n2uFAVnNPxs0sq0n1xXot+ntr8j9Pfp4ObdkSeJULDfLIDVqPd1/qoIytFVes\nZ1Q6PJKI3Rasfis3jhyEeLsysHbOsSaV3Yvirrb7shMhmnn5gcnCJmL8+vzv\n0yvE8PxNNx0gjyQjVhjEmxhoYbJeHOPvh1reBQV8ssiGJLgvRR0C49r0BMZa\n6Gb0nX0DbhRVe2ZXcUFjA5LXqk8riq/b3fc86T6pO9J9ltIID9Nhm6ndF51r\nqAJ3\r\n=Gn45\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBAbIV98bULwdukvUFGn0pOVZTqF24lGJZnK9EiKmKMUAiBMKeY5sRkbrD11k8PjeVf5U+zT952LpaTgy90OsaaC+w=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.5.0-next.1595455383.12313ba33b987def3e3df6ec490472bc9b5285f7_1595455384497_0.5864783320213398"},"_hasShrinkwrap":false},"6.5.0":{"name":"watchr","version":"6.5.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.12.0","ignorefs":"^3.10.0","safefs":"^6.10.0","scandirectory":"^6.10.0","taskgroup":"^7.13.0"},"devDependencies":{"@bevry/update-contributors":"^1.14.0","assert-helpers":"^6.18.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^2.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"12313ba33b987def3e3df6ec490472bc9b5285f7","_id":"watchr@6.5.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-Cb4QtOntEUYBvx17aHvvoLee56RTOJ9+To9xs2n33GBLNUrsm0wE8N591yVHXg5eYjYCjvxhmP4TNPcotUabqg==","shasum":"b1201fb7a79527a14dd1b286fa516c04fef27fbc","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.5.0.tgz","fileCount":5,"unpackedSize":61902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLjLCRA9TVsSAnZWagAACBUP/i8WZCxykc/SMSi4NaX8\nE63SIcAsG746LjMKcby5+/B6j0HWEooHx8KNeEwC8egdCAYKoCgGn9wALyCB\nuyQxOQv7S+egdiP3PSNi38yqp0TqInM1hkD+W0RWiW8SX1XlpwcEgFJn27M5\nrxpl+qCQajdkXdbuLFw2LUEEwdVcQ7LFMMQiK/oTQL1NugwNR9o29B1qr8iY\n+ceMe4FIMnuW5d5BgEQtC9ReWdgPVHm4J2EYHnSFhQzLB6LRMEutU3t7KwSq\nzUojz1a8Wdzj626op7nJnPkHQxIHzAr8yw+2Lk8abhRzXf+FSYAcSZsZO+KN\n2UnuwBuDNPzY9oIplTJho346BKMz8WtArFenD6KJtY8ipbkQRnFWbB7zUKcU\nqMAWpFrgRR5f2SwgJc3XSYmhg5a+aU0PeUDD3C7xWxr1uzMLY2vl8Uuj8TnB\n2maIZx06hPUMX2Q/e1S/f7giD+KBffvT1lzHH9lIK2jZDSqmtBzlqJKT8Dz0\nPYvYQE2JJCte8PhBAugOM/0nK4lkq/5+Q+wNbrzlqwB+Uv4tXn2xl2iq2J3R\n16EcIgIyctKroCkbGPCx4UJEZZ7PQCNcNHCb/ZfjVSlhsTnoEcSUarvnujCe\no8erR3U4JkRPtTdx7ofo2OPI0mA/sd4Zy52F1HtH78dCSH7lRWGi/rgTwIxi\niQZi\r\n=Q3Vr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYTMZ3Ni5ReU6EhWNAvNABAsMEV3RmuYeXcX89TNW/gAIhALrjq02TCQvS47EbSn2m2qy+dKd65bmVgpOIsaPdiqv7"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.5.0_1595455690943_0.3479454944976401"},"_hasShrinkwrap":false},"6.6.0-next.1596532076.772131b7784c088b2a9790faf224595982e3c71f":{"name":"watchr","version":"6.6.0-next.1596532076.772131b7784c088b2a9790faf224595982e3c71f","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.13.0","ignorefs":"^3.11.0","safefs":"^6.11.0","scandirectory":"^6.11.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","assert-helpers":"^6.19.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^2.8.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"772131b7784c088b2a9790faf224595982e3c71f","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.6.0-next.1596532076.772131b7784c088b2a9790faf224595982e3c71f","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-gjprFZszfYqMTIHiPTR4oSdztlc06M6I7ndSLzUlKm4qpglONvZ5845QENBxSIo56AyD5J6VpBwI239CLd9Tow==","shasum":"f1ff0cbea9ba75679c987ad33d354df4cb6e9cdb","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.6.0-next.1596532076.772131b7784c088b2a9790faf224595982e3c71f.tgz","fileCount":5,"unpackedSize":62155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKSVuCRA9TVsSAnZWagAA0CgQAJ/2v9Lpy6nkz8YvufGN\n9nFnJaOLMfpoyLueii2A5gy66WrESm+wziaDIr9lA+NlSJhOAmLegn3g646U\nuVhiO05DmkWtvPcPcu+OubTOQrMY+cb49w7mnqzE2ybUBKzBNt02zoO8uRGP\nRfGEkMwbsUj64rg1ZPlUovNVRvo/TQjorcMtdQ+B9xMk76EVjIsUpJ0zNoGX\nvjdwLWL6AykwOBrP6PEGl0thn6vKZDpVOO5OqP4asi5i2RRYFFvD7IA1etIk\nMoBPXe+gf237O6BN3MmsaYem1qfZ3YBg7usM8IL0rfedx9l5AFzEa2NyeGo2\nFNES8u9+h4conWRinVX+EwRqNkFzOULVeWWI502K0rerZdrTROrDHy609z8N\n66L6RLNDe0lixMB8s4U5IKFrEVrDQtkKuxdmyM+1qMqeicbBIp9EzUE0Ehgs\nafcvyWUq2CPgKGzmqgrZi9+dJIT8t5AGk8WQuk6Cnmym4zIqVamAOCwXDyto\na+q+rejhBuco59GYz+ui8DKL/O7l0p2mQEpixpqeXf7v/pW4uB9Y0JoJvAGS\nqbeGAlv1z4n3TFmUgoSUWRBVCeJK+8ZniNkND4Gh34X8DmQskMuJJBGEeOmP\n3dxFlgYi1hotk7T+mH0ziNsLhIrXH+M7V+2fb40+s2SyVcH9CaRwrflvVZPL\nv4Nk\r\n=yA9h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+r+LOWRk7v1WolHJ8V7azbVJS8bv+dO0Y+dRq98p/8AiA/K/9P4CQyObX1uEADgbjUSDDvEzcj2yOvuCDrOgatIw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.6.0-next.1596532076.772131b7784c088b2a9790faf224595982e3c71f_1596532078073_0.9957703257693602"},"_hasShrinkwrap":false},"6.6.0":{"name":"watchr","version":"6.6.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.13.0","ignorefs":"^3.11.0","safefs":"^6.11.0","scandirectory":"^6.11.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.15.0","assert-helpers":"^6.19.0","bal-util":"^2.8.0","core-js":"^3.6.5","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","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^2.8.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"772131b7784c088b2a9790faf224595982e3c71f","_id":"watchr@6.6.0","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-E3GIINTwl0LUoYthaTcV6mfNiLkz/14FpUb4iIJj37SQuQm+254DPG+HZ/ZQU7iPjTPHISgzDRUObyhpNl7w+A==","shasum":"004e0c46a7b09add4b1d7919dbaa19442dc62c53","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.6.0.tgz","fileCount":5,"unpackedSize":62098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKSaWCRA9TVsSAnZWagAAUI0P/AmqWoD0N26A7b5NOG8m\nJWqDrMvT6QSk08TIIxN7syu+hovGwhJGzdJSHjdkgvgck2+zYZMI9pfR3M1g\n3UANzpLKDvFPOjCPwxfsyKJtUNMdCoJPjq2QDXPmkhxnsCqGoqd1BkPV/3Vo\nM0VJPfFkjUlH5TeR7OMPa6AS8sQHaCBiD/6geWZrrtVK4k8Ttpcko0+EWO1o\npqSa3uwDAD/e+C+F6YZxrbTM2ylJNArrqMo8JbKj8p0b6AX7gDT1rICJ8taX\nDz7VuEZ1r2QHwsTB5u7LTlvN5UcGJ5lNZmFthrXLBNjP3qShIgMVMlCOTbZz\nrdOAjkpSS2AfHpXhylYQQxPvousmZx/2ne8wruo3IU9jBVFty4aGrL1Fzm4T\njzs6D47g0cb+Vsd8bj2rrKOUocxVgnqteFSBhJo0q6Q4z9czSJlOGTYWkSKv\nBp8+5VIDMsbXwjDaBGVOaNokW6jruhyHNs2JFRzP8u6qi23QpmHvgoJeb26B\n9+KQIG2MryUH92+GvjNIcgX7/YH8pQczkiVkX9a3ZlouUvub/NwxALqqoM2X\nZSTO/2QBONbGcRW6Sv0v3DK/jgvofNlo7YPJJdXgkHotor/fc8dYgRSE6j+b\nrkS3UhyJmI6zrP5rKJisns8cylYBrClHVMEdPeObcXmTMhZwx9Q4jAlr5q+s\n+Ko9\r\n=Qjy5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVjX/vvPYSATo7CagwqulZXJAI5gdkHfO6pxEKq0oWvQIgWYK1z0Y9G8HRr1gwU0DA/JTBTATlwBk2i44HPq37kqA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.6.0_1596532373653_0.688509629913596"},"_hasShrinkwrap":false},"6.7.0-next.1597705351.2f6300d467823b9f319a3c85b91fff581db45b81":{"name":"watchr","version":"6.7.0-next.1597705351.2f6300d467823b9f319a3c85b91fff581db45b81","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.14.0","ignorefs":"^3.12.0","safefs":"^6.12.0","scandirectory":"^6.12.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^6.19.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2f6300d467823b9f319a3c85b91fff581db45b81","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.7.0-next.1597705351.2f6300d467823b9f319a3c85b91fff581db45b81","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-tv5WmIC/YuDywu+Q6wfUIu3U2J9nMah5ns04rTwswK4MfcwwQf2rE2twscmemnBGnY09GAEcLjjuqPM+xhlqxA==","shasum":"1972ada28c869b00d8e84a213e53c7cab1de53e4","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.7.0-next.1597705351.2f6300d467823b9f319a3c85b91fff581db45b81.tgz","fileCount":6,"unpackedSize":62588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwyJCRA9TVsSAnZWagAA21kQAJ80wqpehjda2z9xZP8v\nrPhg8lW4NWukeraLSZjME0oEwNKAsTSQnnRFVwPakbEG1WFl15abMU+L0jIB\nDP12jIH5y3eB+xzKUoKfHisAVTP8TWPK0kKemaolQZHxrlBmRJWrSsAvRIIH\n+Ejo5bK/vlJoDeZFCHnP+hGdynzP3HfEehfw2XLDK7X5ZmUvnfn9e1gejfm5\nvZPXwf9lMuuergVach8Oe1/jdlooENKu6X65bwIU3z1R+oO9S6KRLtsci+zA\n8xhlzagiltjgl7S+8hwDC6bZAIwVd0xIA0F4fnt2jushk0lxEKvsQfmyZQn8\nL6AOVmV3uorWVlAC9lKFo+PpMQWC8u8z8vmZPjkf8K/j8G8CiSwp5+ct+jxC\nTSvNfyE2LndUZNE3v30ZL6MN5Ds5AOPnVSq+yoOgtZ2vklcME1GwYFfcxryw\nxz4qnKvFsfliQKL9rmzz47eEiMaBq/dwqUt/zYO3jH2wilxc16bDHXpOeNXw\nY2++EFJZiogeIahtVwkCg2Etuotyv2cgm67iaoGzrnxvAXIF6BsAwKtJkIjz\nZVlJRJdE+RoFKIs4ec8swJp1KFkOQAzK2WJkJakZ5AxB7e5W6xGKv8euR72K\nSuVJE/aMazmqA/Q7U2BPWYnOQfECXyhpINkc1l7m/XpjoZ/1eeVIi0RZ7FWY\nrvLq\r\n=Kwss\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNEzAARro9iIDqyPIDNStqO3MOmcpOk3GwVO5N7La1kwIgfVd0XNJ+msDOR0u6RO4qslmgs2BahsgTXjH/NcToU4E="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.7.0-next.1597705351.2f6300d467823b9f319a3c85b91fff581db45b81_1597705352850_0.5670878709037781"},"_hasShrinkwrap":false},"6.7.0":{"name":"watchr","version":"6.7.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.14.0","ignorefs":"^3.12.0","safefs":"^6.12.0","scandirectory":"^6.12.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^6.19.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"2f6300d467823b9f319a3c85b91fff581db45b81","_id":"watchr@6.7.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-1d3l1U3rxKoa9bRhAAoGd6x81oTOGzMIc2hbRHRHo/Y34zXHa8xGMTRoU8Et9Y0FmoS+IfYiKqulZNnvh1R/IA==","shasum":"9d5cbca69bb1f67cd5b52a3f779e9d50f7e3a722","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.7.0.tgz","fileCount":6,"unpackedSize":62531,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOw27CRA9TVsSAnZWagAAkXMP/A1+7FgxpI7zkiai0xA6\nbT7saGq40lRqFNjfD8G7X0vVm5nNJuS5OZeFj6MAiqWyJOq9sv38yIzmX5Ss\nG2mJ/nfxINkuTUyk1gf1U1kZJvBd32WP6GL4F3Wn/WKo5bwTRp5YCjkHvalh\nbU5zzp388vuwryZIwAGKKFA+tB2Pjt6U55QjGQ5BsZHBW7o/PzrDxz6Q38Lx\nsXCiUPeSTeIxGvPNZ5EPmNF3BH+2CBK6oq7nigOU410zVpY1BpJU1+FUbl0k\nMPOzJ3T8kF+hA9oPqgkAsFNtwRNGbwXVi4D8du/t4mGiS+PBc8w/gg0TuBL5\nSW3/Lya8kwXwIvLURTRXY9DU0krXubGQx44MBcUDhSNj1+fTeXsh4n9UfmkR\nIlsEZhEwhbB+JmnFV6pXtzyplfsGqBYygBpAXmxYp3xR8P3BxM3A0oQVNaJW\nyNaohqo8DAMWMW2GGlXNIRURTyNKmEuHMvYW14N7Yu4t8O2yYFJ1d0/JhTQC\nJcySeA/O/8sgkehcfemj77f4+tL/oUzk1aAjvVCstrhuyCdcG4SXoKutDKw4\nXWqeLqtDEIeBSQMOmA1ePoqXfqLXOAucGUNdIRWanpFbzm4gFfuA1huAd1Hc\n9+vOkJEUMDCGZe5Mj5TrIG7lgNZShLc1EEkeQiS6TUQpgRqBx25oq41UH7q/\nJGQP\r\n=+/r7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrIj7YTo4fFT/mK5Plz1vIJTFVfxM1H3AwnNQyDa+kJwIhAJITb8wCPaymvHioMsxN94ANmk7UVSnXJUtnJE7QsTS2"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.7.0_1597705659368_0.32038825167890184"},"_hasShrinkwrap":false},"6.7.0-next.1597705659.c15a14c17127cd465008f7e33030e6a36a6cf382":{"name":"watchr","version":"6.7.0-next.1597705659.c15a14c17127cd465008f7e33030e6a36a6cf382","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.14.0","ignorefs":"^3.12.0","safefs":"^6.12.0","scandirectory":"^6.12.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^6.19.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"c15a14c17127cd465008f7e33030e6a36a6cf382","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.7.0-next.1597705659.c15a14c17127cd465008f7e33030e6a36a6cf382","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-RadoBrHtDwfvt7lxqFavFpJ5K70nZL5TJTqQpMwurDbpw2oqtgJkU3pzzoJN6qp+gAeb9jjjwRBaWJZyLwEDxg==","shasum":"30567fd1003700f43c476055c650bb0826b6c78c","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.7.0-next.1597705659.c15a14c17127cd465008f7e33030e6a36a6cf382.tgz","fileCount":6,"unpackedSize":62588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOw3MCRA9TVsSAnZWagAAWYAP/2tr2Xfahg13tHeTvfoc\n8RnVMmffa1PGwTnsYfhyZ/3q0C5m5nJVwY/dCVjpP6tv9F9VmVB7beTW5qLL\ndA4wMjiXbvT45lcpBfNx10Cv4pbHp/DlsI5inrmJLnWKCHtBRg6ufiETX+Qk\nyu1+BCsHrIXjh4gOPWIEHHgCROad/hp+18Aj48A8L5Pp0WjhMsdJ/yTWk9eg\nADrXJp2j7YLjnkzCPqNXRYZwKWK8/7c2Sn61/NIL+LPKBpQFf/5LBdt/p+GF\nMQt/pU7jjAvxhUahocpp7GaONPedLgWTrmM3MIEsbv0R4OtO0S1L7dQ9iaeC\nqCP2wCUpiwmPrCXM+UaRN0dmPLIpMZe1OMWMC7WMLSNM1df5cwggSf2BAk+q\nOhLq05UFR1APjKz/2NTwY3vrimSEr7WXp0HquFhV92YzYXLqizvKPk7zOXgx\nsJZJ1lfHhlFUpTUOU+NO8Q3vPdtWkqaReNsSNlDKRJ/XhUccex7tAVIHWeR2\nhiypZvTQKPo2O+Xk/1VlKv6hb57Diy8SOcqK9HSlBlpWOQdbMjO9NtcCXDc+\njSI7hba8Ia1KLM2RQqsfSLl7WlFpU6wik4AEdsWkyuFk/MK+9PNVSROkb8DQ\n9wfk1RiTjGzDDosJFOFVQbhrMjb05P0Dd0Z6mSdf4pL3IDIez0rzbgLfwsJH\n5//U\r\n=TDAm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHq4qXYrOP4/QI607S+53FhT9BHpggNNevbt3rvK2CVhAiEA302t8KP1GhgQy8oQuJjnd9ShHUAzWzYB5hGK7cRyfk8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.7.0-next.1597705659.c15a14c17127cd465008f7e33030e6a36a6cf382_1597705675836_0.2776456960545963"},"_hasShrinkwrap":false},"6.7.0-next.1597706439.b7a9ac4568aed57c0a18cfd97ce78bc639165fb3":{"name":"watchr","version":"6.7.0-next.1597706439.b7a9ac4568aed57c0a18cfd97ce78bc639165fb3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.14.0","ignorefs":"^3.12.0","safefs":"^6.12.0","scandirectory":"^6.12.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.0.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"b7a9ac4568aed57c0a18cfd97ce78bc639165fb3","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.7.0-next.1597706439.b7a9ac4568aed57c0a18cfd97ce78bc639165fb3","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-Wp59SfznlU3cFxK+6wQWBTg2uUaHIkgpcmvWDZb+4jT9AHVJBRAfICl9tQw0f429OsleDcSwDlXaDVrwliJvGg==","shasum":"77ac200bb1d801ed0f2eabf80304b13e6f86977a","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.7.0-next.1597706439.b7a9ac4568aed57c0a18cfd97ce78bc639165fb3.tgz","fileCount":6,"unpackedSize":62587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOxDJCRA9TVsSAnZWagAA36gQAI6kv3WQsWGm5iaU2Jv3\n+dtzRk5OSy3KFxPZUUkDjSSlGtaCh4kPair3Co76t2gtjKwcL1F6ugp/ChfL\nzQKNVHMxCKM/sRC6Jo9yl4n9U/5lIQF5Bc7dqmWeeaV4JzgpikV9AVeDKiOB\nK5qfI78S5tksfnN0UmCsLHthiUlGqUaLXoA2q3fMLEFRHhxxD7cHAsPk9QW1\nP0kQLZyAG5rOv5p/vPJZKlq4Acw0DbdhUQwUzh9XAiyBUJjP8bjGjOtMk8QP\njIxnn+2DIsUTHeQVET04bor+niKc6CjO5WAXtmXI27i5IiupCKMVyE1Zjha4\neOx2eHXLbXSdVEwNJiCJ8BFmccAgxc0XGT2uTY/fwN8ANd9nK1AnDqs/aje/\nDIdQH0CgOfWf0owOlJ1IBRfrUSwOITHNtAQo8wqmPCAdSMgu+yll3MUNEag2\ngP8xFJYcl9qWfZAEXl+qmPSEc3GWCWGoINctDn+Hodptu7vXCdyaeQeUyQFu\nhcPd4YElV76pqRF1TWUSMgD1AsdjeWCWN6/y5ZwhJmb9FmID9oaCbzq/2/dP\nLWfW/3VRlL3VErbsEIkCnc8pP2gW3kJICk+8An6bCnd5WcAdW75BT/m3k4xN\nGbxP/JqVbfzKa+kZeuYLTRO5t/UMLSkPzqLsRPS+LmFb3ewdBbKtSOVspkyu\nj73Q\r\n=oOYo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGMVmhv/yzfD5+tidlm4RxO4VT0Hz5JQ11/QcEwglzVwIgC7c6AnTtXEcseiLYBvOItIFvg17FH/j5IWHiqxIGN8Y="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.7.0-next.1597706439.b7a9ac4568aed57c0a18cfd97ce78bc639165fb3_1597706441128_0.4969302198801866"},"_hasShrinkwrap":false},"6.7.0-next.1598183942.a0a6d5ea0b06936c7e487def68b0f854d22ecad4":{"name":"watchr","version":"6.7.0-next.1598183942.a0a6d5ea0b06936c7e487def68b0f854d22ecad4","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.14.0","ignorefs":"^3.12.0","safefs":"^6.12.0","scandirectory":"^6.12.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.0.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"a0a6d5ea0b06936c7e487def68b0f854d22ecad4","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.7.0-next.1598183942.a0a6d5ea0b06936c7e487def68b0f854d22ecad4","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-/qMuZKeEZDwI9FiZLGvRTc6dXSXzobQBzhNcrLhjsxe9DPf6YgGits8d+qoEsAZA/acj4c89OVXOGFxE9OfibQ==","shasum":"ccce80a4fb79331d1493941c0f853930b92b3fcb","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.7.0-next.1598183942.a0a6d5ea0b06936c7e487def68b0f854d22ecad4.tgz","fileCount":6,"unpackedSize":62587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQloICRA9TVsSAnZWagAAjq8QAI2VK+egS76ZC0pfTnJx\nMwkKb6WG+7GEhvjPQb2UJoTHi2qfTAuUE1Uralj2a9yFGns7MkrZ0IYeeX0p\nx43Ub0KgGwcVw0cgaktURsbx3el/yPO7qKiGKs8uiHuw/gIfLo7daTzZrOxb\nThlzTzF7ChSycFY4mPzdcpA9iYcEfWSXBRk/1M1SfRZGlyfaVCsnzd5TsQTx\nQkoujLBvcxXI3o21XDQr9/Jf4xceGerHLIaxatB1m7R4YrCuLykrZBjV8sQ4\n8Mk8yySDSTRRGXyXGQ3UuzDHV++l/Gfe/MYNu7g4Dye8u+42DGXjBTXlElLe\naEU8qBzFF5jYeOaLpt59LBafaTT/6xN61+4RRk11E282bDCCbKgqoR+5WthD\n/Pf0rfO+y/u9ZjL0sk5Uqvq+oMxTs6kI64SVrarv/xSkmWNHp/sVVuWJMn+6\njxuYUnt1yUuf1qOxIilygjbvK+TPVTzhYR3U2TNZp39z/sfHqxErQh0OLoLl\nJfSbJIWoTXHTo7bg4swgQrk7UJfKmzqLcfqQ1wQSjI9JCQeSGuKNGqGRv422\nWkxGtbEBqgH2nG/7b8ZQqo2zlkbord0kwp861jv00s1fNa2Rm9cEaZJ7oH0b\nrlmS58s3E2n/lEYMOlmOoi7fPIL0MMyUtYMk7S4BtsjbnZ8EGfMxpvHBgtc+\npcXI\r\n=iA/0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOTgIgQlG06SBVoaf510oIcWyO4o6+FKO7//aqjJjg2gIhAK1v3AjhI8eQvUEqpmWPukMAZRJ6DohoYewdBfj9E+0k"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.7.0-next.1598183942.a0a6d5ea0b06936c7e487def68b0f854d22ecad4_1598183943842_0.19624581691553744"},"_hasShrinkwrap":false},"6.7.0-next.1598778942.03b8e1580468605c017d65e8fc00db3f48d1caf1":{"name":"watchr","version":"6.7.0-next.1598778942.03b8e1580468605c017d65e8fc00db3f48d1caf1","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.14.0","ignorefs":"^3.12.0","safefs":"^6.12.0","scandirectory":"^6.12.0","taskgroup":"^7.14.0"},"devDependencies":{"@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.0.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"03b8e1580468605c017d65e8fc00db3f48d1caf1","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.7.0-next.1598778942.03b8e1580468605c017d65e8fc00db3f48d1caf1","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-mqkmj+nu9vknvLxtb9Z/zhPjJPKcoYfzbYaLT0XM5REqrfg4B3d1xbJXZY+xtT608pTKZicgjOTtvkYgMbrJNg==","shasum":"ea766630985ea8dd689be0dc92559425f1bc811f","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.7.0-next.1598778942.03b8e1580468605c017d65e8fc00db3f48d1caf1.tgz","fileCount":6,"unpackedSize":62587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfS25ACRA9TVsSAnZWagAAj38QAIvNU+aHdc3bt83sg0Qe\nKRdMewLUwUKS/Ij7AJqGt4IJK5RrUa1PrnzRMN5XvWdkTTA+52IzQ8rWg0Nq\n/5u4W0jipEpVJM2jF+w3h6a5wvwQ7vBCsFtN/xpvIcCZNwjnY+vS6Bqdg+Lf\nDRJwa2W94bepPpKFJoZF8ZXK4eMHRY42fxt24qpDFOGOmWP48tdMYeV7KueT\nSRhJr1UFKKQPrPRg9oXmYBbGibC0zh3su9xdxuVuXcNJOoz0yAVF72+7G/Il\nJoMyE4Ly+bmjGiBKsIAYy/VipbewYYGbkFtA8RfNOtvHWJDHPWpHh6kwHC6v\nxdj8+hySBgwYI5ejqtQYiqOShZURJheXIA4H1JqXwfF0LXVuXf1scOLH6S2U\n0Ycq5BSCLZPwwRf5lc1nCAa4jNE7azHLwsKK8zncObxiqO604h/Zp2lnqXUj\n+X3GZEVPhYkgNeBqKTGxOJPtq86Gb9s1H8G2Uluwbwg1Vb2bjYJ0cdYqhnFa\nFCq7n3weKVDFqdsgkUtv4eR2E3OtKVViHYDUox+Cfwfc46YAnn6N3dBBLwxa\nuzEjRAVnICY8IWKXtw+sZdsPZ7YTPBPhYzrowEWt4P6J6APTd2aFov+uAZ8O\nahkYm1pLBEUexiKRKrVKOBPvQjZ4qZcHjl8bqUUfwVJLFomnzdejvtEcVUmx\nCm1a\r\n=r3P4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH7rVD7aEYe4A3J02StVGTH4EMCj0b12eC6ztS0IVDqPAiEA726YTPl5YJvPTpnP+6EL/dwm05pobFuuE0jvV3xuRXw="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.7.0-next.1598778942.03b8e1580468605c017d65e8fc00db3f48d1caf1_1598778943480_0.45408121028807846"},"_hasShrinkwrap":false},"6.8.0-next.1599284801.69a3925b7013ee594ede7fb52817a5d5fed0c0d3":{"name":"watchr","version":"6.8.0-next.1599284801.69a3925b7013ee594ede7fb52817a5d5fed0c0d3","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"69a3925b7013ee594ede7fb52817a5d5fed0c0d3","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1599284801.69a3925b7013ee594ede7fb52817a5d5fed0c0d3","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-+EdTN+agXDKABHGvKGfWmn94MF6FTfsPsj4BrW3DqaInc2gMv8YZpSu1xcjrWlVSsa0YAVTzubLGCiNF4vaL9g==","shasum":"e716bc26986a368f1dc2401025269eaeb511ced9","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1599284801.69a3925b7013ee594ede7fb52817a5d5fed0c0d3.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUyZDCRA9TVsSAnZWagAA2MsQAKFWP39ehrh9fvHsdSBk\nWs8ePFsx8+fYCvy9H6WpUf3AzoKbSJEgu41FHm03oZa2n0aMWbCyw7U/czO9\nlhXiCNIO+i0rqAmV8EshE7/WxJnalGhgZlzX1DutCKsFO50IdENMe8Locx1G\n5nCUviRTDffI49Iv//iujeW6SYn8UNaUBFqyMGJgyqJHgDMYHDOIXQeQAh26\nMW3t9X8iHUzy1oHc4HeF+HkcJtrntKeYWlQ6ReaLN36mSpOywnvO8ELJ9Nuw\nnmD6WaeQAmbZdvuJ4iif0q+iifdBDUok4FkjQB7ECy4abKpolA1ErTT72/q2\nQ+r94i/WXB5/f/gEIFqp7C8KDaQUeRkrLOOvKbWz8gHKZemNYa+X37yy4Qg+\ne9C/2zCWt/EjS7YHxwrn+b3IdPNNxYNLON1t6+jk5o5MaVnH+cdJ1CNgHYLv\n4h6DROJZfhd0CmYeAMUU+a+n9Q+ahyVj/lhVJua0VTDKgLpeidul9/5LPEms\nnq1YaLKvLd+epIRrt6c6Xj07+T3kYwJADpCURiAgpsevlPD2tjzQ/SD+lAii\nH+zYtAUXcAx/5wDbacJZZJKPT2zSz36R5DxQn1ZRF58A/Ep/2xkAwn+ZzoBz\nxEdwsMOdC4CD0naQUwTdHVxh+kmfneFp91+WrqStedc2HGIq0yeESBVfmu7V\naHTm\r\n=V9O1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE+HnKy2Qx3Zv4fAEvs5ittHKn/wuRQTHrBXzUgRxvtuAiEAmwjdEe9TCMTn9JUKiZQsKLWiLrhMVsNErSQoKd0AFHA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1599284801.69a3925b7013ee594ede7fb52817a5d5fed0c0d3_1599284802983_0.7731119984597301"},"_hasShrinkwrap":false},"6.8.0":{"name":"watchr","version":"6.8.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"email":"b@lupton.cc","name":"balupton"},{"email":"us@bevry.me","name":"bevryme"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"69a3925b7013ee594ede7fb52817a5d5fed0c0d3","_id":"watchr@6.8.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Xg/f4odn9do+3hjwpsNy6KHaOIQtGdm4p9JxFldiwRBy19bVE+1eB6WMAtOqQNCbYm0Ros8jpmFKuvgMAGYAFQ==","shasum":"0de2b9bb40034175da9208714d8dcd1b6b922e73","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0.tgz","fileCount":6,"unpackedSize":62746,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUyeCCRA9TVsSAnZWagAAw1IP/jsKY33Ny/jyTKFiQ+lC\nXcNIvPuRdUsUYHwUxKL//0zAFoDVxAUtKPfEaj/IOWT+uIC522VfFuZKZAfF\n7SUBRs/F6HQbPoE/TEi5d6TXXm06ib1WPLucAhIjXFItm0nbYK5RtBCB6FcM\ntp0pW24wWOGkODFiW4FA3r1xXPeoWuLX2+Zmg2EiwW3Ner1z+iSWIUnD3Ete\nccuOaPzzMyw6TjrvfI6ktjD2CMg9lfqCQhlguhpFLh7lsiDgt0+vOhZkICfl\necbJhCt+H/zjk2Yv8p1Jss8Zle7I/BKhyPu0KtOthShuxxWDin9Q4jBEWyhh\n3XhyVPQYmOgPbVeJgDEGEtdJ6IZxm7PlGLdv7Qa7V+OpnS5JtzqrbsmGKZtV\nEMNKGBl2RkmnIupyCtYxrsiNsq87xAohrUe2Pruag+cw79Am5zqUWIAKqtAO\nfRKp6nnKeub7Sho2GBWLuIIxgH0WHddQtqPT0slkw8sYubO/+rJjtR7CQc0M\nOv3urNtdBb3Zomk39HLmkRYXQgay70JalivT/0NS97FX/GGWzK/syqYr03ql\nS0u4dFx7pwe3l6K6UJE6CYemJxRu5he+rn5gwH461OReE+JAWXYXQhvs4tsm\nboJH0hzQWOsxkIrLbHbKY7EIZPcOCP4Ebv4ZmymANKtsMTnLc3S9QSOqWkxw\nDFrx\r\n=KWvv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD85a98VfV+lKh5V5bzWAfKCudxGftAxDAOKprbSE0FjQIhAKGd467da58zyBTH4UZzU5UwLHlAw8Gn8CSb2C3JFYus"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0_1599285122275_0.6826763426235667"},"_hasShrinkwrap":false},"6.8.0-next.1599990555.8c7bb2c19bfe458eb956b02b1bc17300a046a0e8":{"name":"watchr","version":"6.8.0-next.1599990555.8c7bb2c19bfe458eb956b02b1bc17300a046a0e8","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"8c7bb2c19bfe458eb956b02b1bc17300a046a0e8","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1599990555.8c7bb2c19bfe458eb956b02b1bc17300a046a0e8","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-HKvDSLKbBzxc4NG7o7MFJLSf2vmhwJRPpyM5VqdsiCH4bIog76S6yf/fvCF+bJQlWXqjiAPmSQOSPVKwDMwxWA==","shasum":"f34a93be4ed9fe6c0e756c4b06abec311feeb5a9","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1599990555.8c7bb2c19bfe458eb956b02b1bc17300a046a0e8.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXesdCRA9TVsSAnZWagAApjkP/0gbm9jmE8meUB/2XdTi\nmfM1ZuWDpwEKXESXOJqvBWnelgKAdc4ixJM9tY3qyz4IrJXTCMiQqzNIN1E2\ndjvNMRApLTW5ZX9Do+lezqx9gXCcrmNa948pPvR4FT7ngNIMV13e56sFW9iv\n+AKOTdKRnUnghSI5xQDaYWHfQRnPn6l0ZDAII3ZJTo7IQicUbcUq+FJNWe+b\n+sXxB+h55I/hhKzFS40PWD2buOdk7L8Krkpko5HOoikRVlog9N8eFAeMFP66\nBuFQzPsUU8k/3DPcIkkXPKkFZlVmGIGOQzPUDkNVnXEfKEqa9s9udUw69oSF\n+KjtZ4ZSZ2RXkQ07Z5BhAh/VtONH5DFRN+Rsa+qNrBKEjRb4p7VaVQ01OGmM\no7R6jxmFMzEXgX4y65OR3reWF+4MRlsZQxrnWtxsjUlHtaAuyOo4yBr+W6TN\n05cXaMRneJcNivj9NHWonYZLcVSoRcUxrs1p3W/dhY+TQS+SQZJQNc5fJGmH\nc9gSCj6un1HfGNkVl+wimwWsyl60iXJogMVLjv7u6qGlPzXhLUz3yTu8EnK2\nLxYqi1h+qsjDcvvf7RbY7fD1Tq7ppL6goIij8RABlnYJ6E2PzLPRvZ71qz/g\n6eH8v7GrDBOWmyTmaYnHPG6KrIL6Fcs+Bcu5xpUeJrGI0FDhZ7D7eK3IXEj8\ng4qx\r\n=uLV0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQsjh0Ehd7VbEccvrtK42BOQL4WtH7sbPGC7YpFedjpAiAbNX3Y7pig7gPLrM4JMO5oFMKC6T4E0EnozepOH+boCA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1599990555.8c7bb2c19bfe458eb956b02b1bc17300a046a0e8_1599990556771_0.763990823241762"},"_hasShrinkwrap":false},"6.8.0-next.1600596318.28400e20910df4c306942773b208c41042e94fe2":{"name":"watchr","version":"6.8.0-next.1600596318.28400e20910df4c306942773b208c41042e94fe2","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"28400e20910df4c306942773b208c41042e94fe2","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1600596318.28400e20910df4c306942773b208c41042e94fe2","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-1uODZXojqjB/FxvCdwfpWW5YJBEdyKnTfCGpi5c6mH5gcFrEOHN4neYgWT99DOjcDlLLBSqe/rvqtkMZbUDaWw==","shasum":"5da9accf384253ce75d4190f263ee325b2d74bff","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1600596318.28400e20910df4c306942773b208c41042e94fe2.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZylgCRA9TVsSAnZWagAA+gwP/1M/kshpKWOzvI3uVUaT\nBchGCryn37O0aNt9TsMWB5c1vxisHl4/Y2/lOjB7NBUE73aMMiXepXHi/mPW\nS2jLVxRU+XNAc2mAQTLeVMNsnGqqQZlGPUskCZYFoW4h0mls/ZcSgKrr4qrW\ntIKRjTZBLoOR9L3F7YKQqUnHBINUJ2gTU+kA0Q2z0+BQjg5MnCkRUebzZjFe\nAKfP4eSbh7NDry8AliN8UiRMK98ns3m1ahMfJ+Y8FMlTZIeOia7K4msFxTX8\nxh0QfeL8bLiSg0GbTBhU+t2xucY2eLbGrBZsz8P6YEGNHzrB/dqZt6v+ESKT\nKY2g1ewRAkbt7zy7w8R8b+1/ZF5qFItXFsXHZEEoa8yvCnhmVcr323SzLSU8\nyakKAMCma+SNVt9OufezgFPB3sZWC08tbFLNbRqnOo7qtlYnlLrrcalU2ylv\nu9yVzX+7qOScGMg3LKIP7Vw0XLfcFI93I7NursEq4k8xkABkp3ek/u6wYA94\n/I9s01HjnUDxFUo8Hq7vKFCPTkaDm9GGUfaEkLj+J8zXp41fYhA75j2i3bWj\nvwi/mm41RyrWigrPhEo+Hj/sa4qnuq/NfYM/y+G8H48bHOD8Enhj2dgaMScx\nisOML6uWdXIVBWuT+Q4ZD/F2GuRfpakuVZNp6LBXByPaEMeTq7BFH32ONH+H\nIcJh\r\n=6Yzn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBpmxd0iqEl1OpRnbvqfyWJ+B2f2lpVcn/D1j3oB/sJqAiAlVeL3gAkKOjKFyA3WlaMvsKCqOyxq/PlucUQkAKw8vA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1600596318.28400e20910df4c306942773b208c41042e94fe2_1600596319570_0.558127689859943"},"_hasShrinkwrap":false},"6.8.0-next.1600597837.5b0537b1d272ea82241610de02d496d2768f47ef":{"name":"watchr","version":"6.8.0-next.1600597837.5b0537b1d272ea82241610de02d496d2768f47ef","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5b0537b1d272ea82241610de02d496d2768f47ef","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1600597837.5b0537b1d272ea82241610de02d496d2768f47ef","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-8zXvGrJjLv0O7B3TKyF1hMHtlLACrjFY/r6StgoppLvujr0yBBqyJ8eI/vLC07kQ9GBuBcsvVLsmrV7JeM4bxg==","shasum":"ea74bd0a14e0a47811e73a581839d17389526acc","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1600597837.5b0537b1d272ea82241610de02d496d2768f47ef.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZy9PCRA9TVsSAnZWagAAqqUP/AjKQ4obADB85VGgngmQ\nIEN3Deyg/Nq/2IQqJIeF+HwM4ryQFl/fetJENrORdkB4FWJWWrLqG3tY1Zwy\nZfjCymtP6Fqnboe6lm65L497Nos+Pp+hcTeUbIjAaD1uycb04aVY3cKB+JMN\nivykXm9uK058Zz54WnK893dTShkOc6ATEpzaF4yyXbafUfHtxh7EnGPEnDOw\nQd0FAHkzUa6zhILzkEotuRu/55xrbhY1NrPYU6g+VCfftezfyDaOq0E6f04B\npHoXlp6EMDQzYlnEj9esnwFVWmFtozYUxrdpRASA1DuEoHoyY856ZrjIP0BX\nXngLIOLRWtD7WE3suzf7L9GMftOQOK17so6yL+UkAswPh4sxvmQgUdzS2PoL\nDwq562nCk+5ZN5R9PTLIVVhz5D2RXZLPxeRcGaO0GBd9hXXMnWCuAwcCTea9\nnPA3rGUInnifveEKedHa8uexosthVo5dqzUdDL1Xm6ZTlH5xfg3IT0lWn680\nlw19wNk9ykhMY4C1ebncyWdLjN0hsbsb/BoKuUEZbo/7PfcXoKfkkLvhEKum\nfW8ng4iY94li5AMgKRqYzTK5rOglNFuDUSpywpCH8xIq3dh5WgT3wSRYFBMl\n7cU5pMwbxsUtb79FuanIWszCHcyO56BZEgDUfhBf38g1hOjCTbp47bW5DBeD\nt0ab\r\n=PaS/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg9NIBB9bJm8RFhV9IDv3XUQ0taQp8WGOsY3Sh5yj3zwIhAPjGpzF6LbfO/F7ToiUgfyDEECe9F62uYtIduBEJAMy3"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1600597837.5b0537b1d272ea82241610de02d496d2768f47ef_1600597839366_0.257992730964302"},"_hasShrinkwrap":false},"6.8.0-next.1601203390.385ffbaf495efe8f4dd34f8081331bedd1bbb452":{"name":"watchr","version":"6.8.0-next.1601203390.385ffbaf495efe8f4dd34f8081331bedd1bbb452","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"385ffbaf495efe8f4dd34f8081331bedd1bbb452","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1601203390.385ffbaf495efe8f4dd34f8081331bedd1bbb452","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-PwbNdHuiJhhsKU71GlkEl0cNd8wP/UoVLGe7laKSTsqQR4glgCtp7uxi+UE+dHk4qNCUo/b1iIdUCyLTWUz4Mg==","shasum":"47be909662cd0c091ffbb7fc17fa7365c3925d3b","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1601203390.385ffbaf495efe8f4dd34f8081331bedd1bbb452.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcGzACRA9TVsSAnZWagAAnIoP/0YmITu+l8i2L3Ar2GRa\nVpDQbtwqZCtDV6UMDylgRU22B8Nysd1Rj2Pd4NKtJONsPuoZIH10BY1RfHLW\nVJJEEJs8dkaifvAcnaILfFbbLK+zVMx1OZbDKD7dUj9luvvuwla6lw7utYbN\ngTkw65Io8mSUa8yITLAiP0WLZRO7wt0s1wM3UTtn54RIp6BEflIVE4dpOdZN\njasnnwdXuJP8jNABEbgIQxbTxGhgCn8xJoOajdE3y+6uOaJGQS330EorgThx\n3xB5L+BVtRhsYV5lt/lFUg4fr2VsEzsmd+4oXOWxROIwSFo9c3zu1IJO0bsP\nrQl7S4QIlir4i3tWI5/7OBe5AIjZ7+xgW7KgP1jdl4uWe+hOFIHhrIbvEjE4\nh5r5jLms9D6LFu2PH+HqBlQQ25iaCfqLGw9XmY/SRQjvJzT3wU3CndXpPVOI\nYna5mON5I1ZXMnipbepjRxJ4KgXDO+NscXoDRK8F+BxWNOw+DQtuR9yL5x8Y\nxMNmLem7XSN/5cHAJsArv7N7Ih2s0vUUumGJmI+Z27xPzpd4kdWMPjzmQ3yX\n65LLN9jNPKMiEPhRQ4RfocO0HonZrGb1R7WflHoRmqsqgDx34O8NYbHL4uTN\nPo072JR3LBCATAnt1Bbqk9WgP95RkbYES6bQItUd0nJrgseSDfNWyLMKgptW\njWrU\r\n=YOZu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDM3mSp6yTrXwOGNSMsr6rsrkuelEzvoR2/3xkKjYDZwQIhANp25rtvCrBBDDHnMTYhiVCfrTCGuaIYC68A8AZQ4gnJ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1601203390.385ffbaf495efe8f4dd34f8081331bedd1bbb452_1601203391558_0.7650881135677956"},"_hasShrinkwrap":false},"6.8.0-next.1601204165.160d41e24ee2304fae83cf6cd7d7993a734ef050":{"name":"watchr","version":"6.8.0-next.1601204165.160d41e24ee2304fae83cf6cd7d7993a734ef050","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"160d41e24ee2304fae83cf6cd7d7993a734ef050","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1601204165.160d41e24ee2304fae83cf6cd7d7993a734ef050","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-w9pYnCRJGeFP7ZnsbYXy9TX11GgrYKU8Leh0M3u6skAvAXj5vf9RNp1M5rKtABlPt4MCBnHzIZxswT+r9p29UQ==","shasum":"dea54f16e8ad19f4ae8f7d7bef0f152ec1c0d4b0","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1601204165.160d41e24ee2304fae83cf6cd7d7993a734ef050.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcG/HCRA9TVsSAnZWagAAb7wP/iI+XPx/kYrFQny+2gq1\n+DSmSfQE/O1ntaO2GSEIrp0Axs4fAC11eg7apd0iUlxvsoo9qtdOuAXaY9Pn\npW26pzoNKagQDtPBxFn6ubyAGRGaNnrGHMPr/p1V7NaoNQ/+RG8EstN2ciJ6\nf4cGLh7WalFANYqW1BOccZo/2w+6UfsBgLQWjWuBmnPMCIy9dPpvngxFShWG\n7pXykLzoT145r4/yswd9DW8VJ+NVvYw/F9UpNxl6MemNMJRh2sqQDmjvopCX\nFtLOXC5NhB0/4HGGxUWvuLPCPXqJP2Ji6B5Yg342wUJsRPGhZK/WFCmveY2B\nDzu/7DXihGvALHu6K4KdlPhmGsOGYAKUCh8W1WDQSFLnny8md/Sm4Cr2b60F\nuCN4BsPQb9uP5kw+2qjJ719J4owdVsWmxRX7vsfyiE4rIDk3jzRluwc1XWqj\nSK/X26vYyZg7Ix1yRzVZo3B2LAS2JS0qb+EDhwaGa0eKNEfnKLaDtiFLfOOq\nK7crcK1WOHRmkMBcsGEgK/I1cQblX3DV/gLT30L2BHf+czezcUeQ4+cFX5uu\n48qe1hZPJL3xjKIDaoGioRyOnB0oLJ/lNqfgrB63QngegnrvCM8KVCUrjW9C\n7UaI3X3oSRPmG56acBuB6TABUr8a0LUg3Ghs37eulnCTbxFSJeLUlO1UL4F3\nYR2O\r\n=1iZt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDs9rZ5ESNMESzbssHTf+8+ItJZxqmhzZ1pexKNufuHDQIgTlpmQ8xKsGC3e8tUZPnAzGBZ+AoAk1QzospLq5uaHn8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1601204165.160d41e24ee2304fae83cf6cd7d7993a734ef050_1601204166621_0.7402633212761902"},"_hasShrinkwrap":false},"6.8.0-next.1602405766.5851463a473e2d42a2d10bb03befaf0f8b801c30":{"name":"watchr","version":"6.8.0-next.1602405766.5851463a473e2d42a2d10bb03befaf0f8b801c30","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"5851463a473e2d42a2d10bb03befaf0f8b801c30","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1602405766.5851463a473e2d42a2d10bb03befaf0f8b801c30","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9h4VhjCW5Bd182CclKwcfL74EmbSmNFfBg+gN74V706DKZcmttxmsWoL2fl4/w1TnOycRaqfHbpYtMn239pEpw==","shasum":"be4289155fede0d683d3cb3a7206df4337b3c7f7","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1602405766.5851463a473e2d42a2d10bb03befaf0f8b801c30.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgsWICRA9TVsSAnZWagAADtcQAItGqZc0TNTiafCM+IoJ\nLms2QZQfM8dojaJ8lWLKvZ6+oI4bBKWtHvHlTaqNkABuxclLMNR/4RNqLwhh\noxg1YzM0iSRb9wGRVbFukMl/ADhTct+dDU9DqIBekhf16o9atIsnGcArvwVs\nwsN55dJWFles2DbLGsMHzKBZO28l8wP3ZSKBfgg82lYVooeZToMMgLtEAaiw\nSOgm9KjAhTWufiTH0Bd/kCSMmhRfDLfA5jTkfF5lZKqBmNCsfiMz5gpJJNid\naf1VMAr81BTLBMfmTfFbQ9yno6j8c/a7JYkuff+EqGFX+6k7Xwx46UqXS2x8\nS5px2GeWaZuRj/57GVYrdIKA1+xBpD1t4L7kQSpwWZC0gmgdP9mA3O+DkVKY\n4WZ9Dc6CHYcj7nhmBOMXTlsyI0dgkmzZ8dBrzlp4+NzDinR8a3uALmWTYdTr\nY8f13IUECvJr2kOMwA+Cc+sByDXthqj3tygCYbKCp1LCW6fatq4be9Hl1fEw\nUQcf4s/oQ63bfsO3jSIstb6bC+OvEI8CHat9n45nlGPJmonFqr3DP1/D+OSU\nT1PK3Lr3S2o/4n4i+WnSD1L11eT2uWvOQatRGepTfANrpRliDdYc4Y9SWcP9\nRlzgWhO3hi6r5gkPFix4arCa/YA2HlQPT/pGZZ6uX9vZ6fB7HXKgLCIStnhM\n/Zd5\r\n=k9gF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDHZCiKrTgpHNi4wV20A1ZIkJmVcoWevyQz6uZKEIfFAiEAqc6A9vo9P6qhh/QoV12r0nfsJ7qSO0rKaHcWih/nmPg="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1602405766.5851463a473e2d42a2d10bb03befaf0f8b801c30_1602405767500_0.2583236640358406"},"_hasShrinkwrap":false},"6.8.0-next.1603013902.f2af01f5a4e4de5a18f72a561b86f118e1d04087":{"name":"watchr","version":"6.8.0-next.1603013902.f2af01f5a4e4de5a18f72a561b86f118e1d04087","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f2af01f5a4e4de5a18f72a561b86f118e1d04087","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1603013902.f2af01f5a4e4de5a18f72a561b86f118e1d04087","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-3Csd/zTjeoVrHgUSst9XfP9zZ7F3pCUuxlcQOTeRYlt71b7aitAbPrAPYd/eluFmbDJ9RHpqKfcfcxhxs2eqow==","shasum":"0510b11328f3b064b23ba89500a2a740aedad177","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1603013902.f2af01f5a4e4de5a18f72a561b86f118e1d04087.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjA0QCRA9TVsSAnZWagAAVdsP/0eLSLMfFgyAIAYNl16b\nXBayGSSxd+waWSiXqKpbFhUHXTUGRaokQHlD//5hSuHFGTEhpPMOISQ626kU\nIhYbcpUz1xk2Cns/h+p9i6V5NdnP2ln6Yua/lxAZi9MOUL2CdDeMjMaMJvWC\nsh4/nAxXDcc8TRGhI0afM5W/yxoumYCOsJOxYL6F8jTw51M52gGoFiU0qRL+\nrkET47C1Ywr8KpgPvAHMHS0bSPmyGePMvethdlHQWZ6tqdXSI05aIcPvHpOU\nFVvaSfdHYgpF+76hOLdJZa/lww6r6PylK2XmcFdn1UwUjvgoy5Dy7mN0R2NJ\ngGoept7ljOGXp2YvCzNjOdBBLux/bw1BmLDf0UIDWNIgN0HOG45YPUNSML58\nrdJZHdYgPpnE6zB7JcLbxZO5BiOMDNXyqha9O04gIsF2HkRkLzK5zvZBEump\nqmqfA0hq2bzA3mxiqHpK6eLuETlT0x4coxEHkE8YIP06CYeuWnuWAQA2F7q9\n/hBO+G5XqCJtEIG+PHOv1t9FrBFqg5lVtCFYYM6vItw2Q3bAQsVlHmdlI0iU\nePrg87fwRSiFoNBiRlCqLeAUFG84Qtxekr6fYosNTjAy+XpPy1uurtnaFXzK\n290UKOQzMd3dR4Fvz0xy1mBGEeQLHdRHwLndkv8uTKP6hMl8IYH5PGLeM5sO\nCPx8\r\n=7M6U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfll6AoevmkpTLHldxRVfXXmWTKoBlBdAL83usf1LWAgIhAIEQxKcays7NVCUXETTJ0RTOxXnylhz/X5xDSSPlLZGc"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1603013902.f2af01f5a4e4de5a18f72a561b86f118e1d04087_1603013903803_0.5070657831354106"},"_hasShrinkwrap":false},"6.8.0-next.1603619932.02b9cacda5958aa174f3bb19def66a5c9be135c9":{"name":"watchr","version":"6.8.0-next.1603619932.02b9cacda5958aa174f3bb19def66a5c9be135c9","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"02b9cacda5958aa174f3bb19def66a5c9be135c9","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1603619932.02b9cacda5958aa174f3bb19def66a5c9be135c9","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-w9y48Q6YT3PPEJq3u0Y1kFQu3pKsR6YzzGdYptAcK+BitEvO8LwS4sJBoBzLdiNHZ0XoICebBaZslrGKYbQ03g==","shasum":"7ce591ca7e510854dafac7d78e726df20498761e","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1603619932.02b9cacda5958aa174f3bb19def66a5c9be135c9.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflUxeCRA9TVsSAnZWagAAZiAP/jdBqc1rrS+2RX0JsgZY\nsKXzGAiq4PzW5Wsz7sRzXNkxVspUEMnzi75DS12kizN6E5FEnEDzvAHY3HjU\n02HyZuziaoGsqn3fEpkHbUX4kdpDmokGwftkcXlMggspkH2d7Ijag4cUS4gA\nEKCWTnRBKSM3erZ3Ngst+te3eyI8oEYw6are9YlBTwlKMCQlvEeEpz10WCj3\nqF20vPBHLGQlj4GTMG61YzzRabFcywUysXHyoY+EqiBDndk7hcsUfyCYn6tn\nl10uGmASVY7/laXgfAgmYJ9uffCF9x3D868uPgU2OowixSyUTBnO/iBPKWVU\nWizFcBwijtuqOUpSrmmXhY/vxsKL2DUddT9hUaw60qTXCF+SqvSIh6hBIP+t\n/X6OipMybq1bx3m3cZ1QczTaqSLim/lsuGmBILBz3jRRg6wdWxXEZyWF5/ls\nrqcPDInmEGuoRMCvoL8PFz/O19HX4r2ZYpca2ezh7Oi3A3GQdllqwjwdNln4\nrPI9yvyliT7BemE06gfxUwKOTeyEH2MRyKPY21UeFr0U0vQQ0kX31Y2bj8+h\nxFfjZpHp8rLsXtMDSTCx7ZNLFavXwnM5yIpsi7t9X5D4Ku++ZnGseBCzNcM4\nzmBecsm+xVZrY9AbDKW2Qlm0b60bPD8K+j85ob/ZnEn3C18MZq51t7ZBqU0S\nvSEj\r\n=PWIp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDcADV0Kab0UHPDT9m3OoAsGbcoMKAkvyo4C+ugNC3EZAiA3o7wba2a5xfKtYxisLiAy4XxUAhafRcX0cO3jVz11+Q=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1603619932.02b9cacda5958aa174f3bb19def66a5c9be135c9_1603619933511_0.2827452608641745"},"_hasShrinkwrap":false},"6.8.0-next.1603620738.9edf3923599ef6bce567a9827b85921c52e6563d":{"name":"watchr","version":"6.8.0-next.1603620738.9edf3923599ef6bce567a9827b85921c52e6563d","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.15.0","ignorefs":"^3.13.0","safefs":"^6.13.0","scandirectory":"^6.13.0","taskgroup":"^7.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.17.0","assert-helpers":"^7.2.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.5","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"9edf3923599ef6bce567a9827b85921c52e6563d","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.8.0-next.1603620738.9edf3923599ef6bce567a9827b85921c52e6563d","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-KCwH/3HLva9Toivms+A3qkrR1jzohammbRf0mZmo+a3YN/GxHQG/9FTfU2EXhDBWWwgt3Oz4TYOksZaINh+SWQ==","shasum":"3a60e34e77548dd1741b614d87b54e73d74a7354","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.8.0-next.1603620738.9edf3923599ef6bce567a9827b85921c52e6563d.tgz","fileCount":6,"unpackedSize":62803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflU+ECRA9TVsSAnZWagAAePEQAIvpikn9BhrHZIdfppMP\nXLILfAlfNHh70kDu+FohPJ0jE4JDs0OCrR7QUpHcK39GfxfFoBdK1/d+IcQV\n3lNE1iWS8yyCRgKi9bTZe+FIknBawhAEKNlduINcT7f86i/xwrHfdXVjRin9\nUNCbjpC4nwm73hWCslSG9Qw+bWgRTDkAjiLN0LF58S/g0xirHAfGX+FMJB8k\neMHT1PELGsJIKZobgX2hNktISMSifwBcEfjekpweC42UXIlPNAVo+y2+16lB\nkaQ2UjhJgvM8UvSUXqctaojtjTZb35rbLhDcwVSS5IDOkBXGqkMlHC8gAkyX\n00h4qiVXnJGrd6gttOTPWXe2lBqwuYlZK96+DuDM1wqxutFJrmNY9/2T8jvm\nXpuWX7H8r3G8oB0ESnO/Us0dn5exM3fj/+KDEOE1Mm9v/z2QE+hwsfW9f8EX\nJ0zpRrQFlNTLf8sLKNSPitt9FHBiXVfGb5edCkfR2rP7zRZOPoFEE539jNbk\n0/Epn48hBDO1zm4N0x4y9Xk2g45toog3EsJ/73zQ/5LkhblbljFn62gw3Sp2\nSeUnvMWfCsRW3+DN4cKZmbngrOXtS3OujIaraGE/DQu6EQJC6Z5VjkxJJ+/d\nuWzXIh5uU88XvuCc8dly3ZI39Zw/dS0un5yE7XDgLvvvmM8XK0OBBeNy1bxU\neV+E\r\n=AGda\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBY36XMUw78J0UDtvcahZtr/2bT0yp34L+UZQ34/fdpBAiBZ2v8EV9Ddm0wYBKK9gKEXhP7gq9sFd8Aox5c0rMrEMQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.8.0-next.1603620738.9edf3923599ef6bce567a9827b85921c52e6563d_1603620740098_0.46602712342977903"},"_hasShrinkwrap":false},"6.9.0":{"name":"watchr","version":"6.9.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.16.0","ignorefs":"^3.14.0","safefs":"^6.14.0","scandirectory":"^6.14.0","taskgroup":"^7.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.1.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.6","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"da4ff1ebffde6bb548d7577d695281fcb484b0e0","_id":"watchr@6.9.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-jRYsPfbwos3voH6YFzAIVrCYKbI5i8IUW3u+NxjDP4iKPgsd+weijAQhQmMFkG+BT5Bto26sVquxN90XR19btA==","shasum":"0f7100b8319404866608edf021918931477e3fdd","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.9.0.tgz","fileCount":6,"unpackedSize":62944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmkejCRA9TVsSAnZWagAAsiEP/ifdGcp4hEzKjYVxXHFO\ng3qpoush65QWwz0T/wYx2fC+d4uXVaM79ih+s2w/6TxW8QtnovqpBKCjCr0J\nVJEBQXUfoLTpFiTJYfymmsFZq5ENx8RicnHQH9CsCN76coJtwjiX1MBpistO\n3qtu071/+ZV1UbqOrUjQTB10pZHFXFWLgc81PNJwCQTWuFUDVn94NlFC1NMU\nKaxINsSMmdnQuVlkwCsasDoAONxuX/yHH4xb1Ev9YAZ9AHBhWMwMYR522E+s\nMqNligDLkOykI9YPwmtfDq6K1oyrBNuknXltc3BKRo4AhUzV3HvOuCl9/JjZ\nHw4GbroCVtST6ScWXgjFP7BHWRkFNpnwsd5OVw+5mRrElbkQ8Ui/oAxcyJ0x\nr45Q8xVbjUMbI+o3Fa5ahn89niX4Si1/upLjl/xfAKh/nk0f4T+tjH6ZtNRK\nERlnn9xWPJtXS8iJauFKk2G41D8kfMbcRcwA3VslSgAOWC1cr1SUH3lAQGUQ\nN6elwvHdRhyXPMV8d1FYtnLt1eaVYZa3QiST742ms2YbHbbq+irmxrSUtOFw\nnO1o0TZa0oUT82H70OG5gp55F2zOGVWWl6JyuQ5UiQOmx2JtOg0x5SC6HTG0\nqeg8lsO+z5gJL2l+T58kyU7lL5/Xjf5cbXo2bBZ0BU6/uvtvz63ub4xVIGSe\ndUCW\r\n=wskX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJYV38wcjP7ArPm4XcXNEhYc0b2J4f0npU+CcrdmB/PwIgRNMsRYuGr5uPgfp3YmaiO3b9kTgsUg+lA5d2b+XyLlM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.9.0_1603946401946_0.005981673057221526"},"_hasShrinkwrap":false},"6.9.0-next.1603946405.da4ff1ebffde6bb548d7577d695281fcb484b0e0":{"name":"watchr","version":"6.9.0-next.1603946405.da4ff1ebffde6bb548d7577d695281fcb484b0e0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.16.0","ignorefs":"^3.14.0","safefs":"^6.14.0","scandirectory":"^6.14.0","taskgroup":"^7.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.1.0","bal-util":"^2.8.0","core-js":"^3.6.5","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","jsdoc":"^3.6.6","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","rimraf":"^3.0.2","surge":"^0.21.6","valid-directory":"^3.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta: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:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"da4ff1ebffde6bb548d7577d695281fcb484b0e0","readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/watchr\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/watchr/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 15 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"watchr@6.9.0-next.1603946405.da4ff1ebffde6bb548d7577d695281fcb484b0e0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-yUiCqlSU4yeGZ3zEQv99lGWbKa9TVEF4VJ+q/ZiSQ8DJnK8pHMYe+voFygIGi92SHhF1djG/dALKxol0ORYW7g==","shasum":"f215268053cfb60a19f093a969525cfbdd6b50ad","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.9.0-next.1603946405.da4ff1ebffde6bb548d7577d695281fcb484b0e0.tgz","fileCount":6,"unpackedSize":63001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmke1CRA9TVsSAnZWagAAzMQP/jISJQ6mPsr0QGs00U+V\nOxewyjQP3bh1W54w48mIl37yeXhK93uqZFlO/cUeZuG97L+Pcpp+LAg1a7u+\naxg67KknWSzclb278nZ/EIOgKdotQDbzivu7JgGWs9ECC6v8/CJQGZBhZo07\ne6GGAr0BHO7dKQwVxYAQ0lOrYIGzEJA4erRKRJbBwZ8wFWMj8jUUTJsiMkaa\nV3G9MztphonAchmEeZltGIt2CYwksNdvozgmgI5Sc2bVUhJMVCQpvmQEz2Hz\ng+xF3BkX+gUo66Pykhqz4uDZYDoWfnd46oKAP3uaAg2BCy+X7OaznjoENExE\niy6wZGkwMSy8imA6V7EeW3tm/Uh4A8qxWgBugpr0LsP1QRYlA6eRIC5bz6k+\npZMBud+6zCcovA4h6LqgpSryPlLFh047GcjmOM8TJ9+BeDkrAQOb4L9D28/n\nha3eWvFSBPLoLED8aJrslH/ntNLcU18+ouET8Gy33/hJryJxdnlgR2Zjxznu\nuw/4gDkFUic6nl0g4vu6FAOiXsraxr+HzgvYJfbeZ4xjDMmZ56KYrps6sZ3q\nhrzrJlo9zJktkeknWpCpElCGQaj3n4DJflbuE9zKstDkEwaRoof9ArxE6oWp\nixi5G6K2aQYjI8nUs0CVGZ6d1oVHFulhicugUPqthbfEFwH0Ja30hTzo/Y4b\nSGWH\r\n=Jf/X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDW8t9mQqvZgPqT5nWE6imflfUekHPui4xffUl7LmQYhwIhAJXcKyJi9HxpU24+E5Ez0r9jl0Ykw2p5bt892htNKQxS"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.9.0-next.1603946405.da4ff1ebffde6bb548d7577d695281fcb484b0e0_1603946420632_0.14868615755926284"},"_hasShrinkwrap":false},"6.10.0-next.1627434539.e60bac757745cc63aba8035dd2a734d64d5bf127":{"name":"watchr","version":"6.10.0-next.1627434539.e60bac757745cc63aba8035dd2a734d64d5bf127","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","email":"stuart@stuartk.com","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.17.0","ignorefs":"^3.15.0","safefs":"^6.14.0","scandirectory":"^6.14.0","taskgroup":"^7.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.2.0","bal-util":"^2.8.0","core-js":"^3.15.2","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","jsdoc":"^3.6.7","kava":"^5.14.0","prettier":"^2.3.2","projectz":"^2.18.0","rimraf":"^3.0.2","surge":"^0.23.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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 && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/watchr/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/watchr/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/index.html)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"e60bac757745cc63aba8035dd2a734d64d5bf127","_id":"watchr@6.10.0-next.1627434539.e60bac757745cc63aba8035dd2a734d64d5bf127","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-hO/0Z9ONR4sYji4UphnLWpxMMtk2bRU1bUiu2/tdUZZv8MwIVR0YzhlyrsgaZaek2HMikLCNW6Ikg57cCru11w==","shasum":"4b93ea7c68be62c8759fcc6aa523fdabef9b79f3","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.10.0-next.1627434539.e60bac757745cc63aba8035dd2a734d64d5bf127.tgz","fileCount":5,"unpackedSize":62998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAK4tCRA9TVsSAnZWagAAYzQP+gOkcN64o6ACTehI2qT5\nu/j2AAMFOq3YDuUVwUcwDXgvqoqhoaI48a5Y1qpkhQdUyGUiKtC6zIi9+AEg\nQrkyrURJ2RnmKpA/S9/RFpTMlp8nxz5zc3a0Bjyy3wEjIvoxrhvjyZtf4ZOe\nDvJaJHSIxOQXBXB05mdYHaBNgvz2ifElVtn0ET83WG1qG1r663FOUKao8ile\nx+OvSzJOGS+zSZ3COLhj8O8FaU2LgnB+fBG+ZeDo2+SNMvPQBZRnjLu//GwV\nVW4Peco9pHpaAYj62rux8JvIpAzIKgY6vP2X6piIf97fzheXCrGc+lRJyC4q\n21XWpbf4I6ZV2Mfqrz3CSH/Bch1deWmTn6sO/dxY2GbvG52LpK+/BwR8qJOw\nkMMDHG/ZywK5aIC9DNko8cCUPL+jWXX5voihnaOR6B6IJIjNRvrs0RfXNiwb\nGKxR3Sd40+0ftC343nGOnQsAY0JX6cflLf6sucqbJpPWWVuoOdpU4rw7b92Z\nEhjugmEFO0ECW2nqe54kQ44ufyqOw+s5fYxvx3kwBuXSCZwv97r3Nlv4b6ns\nURAl33JodBiD7Gz/QnXwg6MDRTGnZfBk60NMuN18CPC1BQaakPeX7OEHAaxs\n+26Lk29m7pXbqRvdAhHkgyJj6F3gZW7nQGyYw9OnfzOvKw1aXcRogdWFQA/H\nKLxm\r\n=9M6F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGHEquHMKXslKWRq47sEEudmByyhslCNuetJNelZ0pcPAiBfS20vyxBJMYKwCxFSjHlaYJpQFjxL9oOvJcY0g94Y/w=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.10.0-next.1627434539.e60bac757745cc63aba8035dd2a734d64d5bf127_1627434541757_0.9035144281051086"},"_hasShrinkwrap":false},"6.10.0":{"name":"watchr","version":"6.10.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","email":"stuart@stuartk.com","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.17.0","ignorefs":"^3.15.0","safefs":"^6.14.0","scandirectory":"^6.14.0","taskgroup":"^7.17.0"},"devDependencies":{"@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.2.0","bal-util":"^2.8.0","core-js":"^3.15.2","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","jsdoc":"^3.6.7","kava":"^5.14.0","prettier":"^2.3.2","projectz":"^2.18.0","rimraf":"^3.0.2","surge":"^0.23.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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 && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"e60bac757745cc63aba8035dd2a734d64d5bf127","_id":"watchr@6.10.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-p8Z5qTgKqrek8YnSHVtGPRCDmCdfySICQtmKxmcIT0wBtf8lMakb5KNTLf/NyTZctAEC95jXrgGPbfnYgTB+yA==","shasum":"b92c527fdfd0d62dd6aa12d77b990c31b607934a","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.10.0.tgz","fileCount":5,"unpackedSize":62941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAK8zCRA9TVsSAnZWagAAz1IQAKCy7hxTJm5iyz5ABPCr\nhmwnWEuKiMPvE+J/KqgiyaOQA4a3/fMUFAXlXqzYaYBoNkJSbQ/kFBYaB1O+\nfYxeAWp1X/0hBHorpAM923njVCBM1YIAFqsC0dlkJav9xb6nYW6cccE6nRPi\n/+UnW8fIorgZdvx87woZIKc5UD5AZoK2ZH2HDKVt2D9OjwI5CI7jxt/Hg+Ki\nib04fAMju5DB7fC2ylM8qiNQ4AGBmYdWACkSmY/GgSVKkh7r+p6AhDpcQn/y\nLu2DIRDA7aCS8pUnc8lqX+Mf8EteCRoyKhVjPaWm171Km+Z9a8RGBFXR1Jbe\nWHwH/tJuCCoO4rpXS/t6hKYDgaz1d/o6igA8HRwl3U1kuyZmfa+apGMYseXu\nbLR4sQ1NzKsPNK+8JZGn5wAchh6WqD8KMOlOb4UtwKwOgUtZBY3YOMZSL5/q\nJwj7Ustof0VfwzVQQSo9CAO1DQs0pnhCm4dkP+igxc1WpdgP9x87P9llJ8JZ\n6ANADCznYGwT+5TgQtITCCpNoIdvbOJ5gAIFLbthF1RPOfJfcvD76r3VkezX\nOSBc7r2xG0p/bvPp1A4RbNcV2UGeMBre95vIslYi4zCHMamGVBPOX1wS+/EA\nED0rIFGBFiiTyUAsPlo1dmGZbx5//EQjgtw5ssDCfEsJyEfGKXlYxwjDKZOA\nKFe8\r\n=U5P+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcbR+gXyHirM1Ge+n5ev1UwuHtbiAACGMPpEnBbhFIYAIgW4klYw1qI+IT9n12Fa5VAYiYuNPBVrE+oINKWzHrUqc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.10.0_1627434803079_0.36047697921968047"},"_hasShrinkwrap":false},"6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd":{"name":"watchr","version":"6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","email":"stuart@stuartk.com","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.19.0","ignorefs":"^3.17.0","safefs":"^6.16.0","scandirectory":"^6.16.0","taskgroup":"^7.19.0"},"devDependencies":{"@bevry/update-contributors":"^1.20.0","assert-helpers":"^8.4.0","bal-util":"^2.8.0","core-js":"^3.16.0","eslint":"^7.31.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","jsdoc":"^3.6.7","kava":"^5.15.0","prettier":"^2.3.2","projectz":"^2.22.0","rimraf":"^3.0.2","surge":"^0.23.0","valid-directory":"^3.9.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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 && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/watchr/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/watchr/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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":"f63a0f6774cc3e38ecad32f55571e2276dd6c7cd","_id":"watchr@6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-cRgMKeMxsEUEoC77EgJri1/TM92W9RnNjnN41jGIccqBgddCxgLaFWLx9sdBX6kxci/RHRHkF454vuAbAywq1g==","shasum":"a691515025e569b7c9c67de79454d477182b192f","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd.tgz","fileCount":5,"unpackedSize":63201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFtmCRA9TVsSAnZWagAA7Q8P+gMHvuKq11VOqEQZuQ9V\n0PJqyBmD5nEcKp/atAg8X/41r1btZPkxKjSb99Zhd6F3X493BnN0UlAknRaE\nbP/NVC3X4X3Y/I/6pXr6ouOPNPowtR5ApT40J3o6TtJiOHdbdyleVWFQTzuz\n+7BxVUytXDfoEKKVI8D4h2qM2TjaZ9sInMj2lOeKgbVfu0H1m1drhjKwgX14\nZ3snEHdzBJDQX0WNpnBJpZA7OKh9vitLdcQcZNBYK+Aq6oglKS1PmPveqxK1\nMMn/6vDYMHImY/cI0QkzT1MmkKLTaANDaQ5Q3Ne/1Kqa642Hw9UlD8NcMlnP\nnJ7lxLh4UYbkIhVRFkdP0XCyoVCC8HCrxwg1ucHlAUYdsXoOPzgNoyZUn4hh\n02RXG8vDf2XyEltKucP/w4xv5dSdIozo0lNn+IbZoZRWQwsxTpt04S8+biK9\n6W9yIQEtIOSdKrcrJoO+0p/701b2E8njxG2ChiFrmb8RftCZdwKXDhN3HZ5T\ne9SEUrfe1wvRwBgmhDsSSFdgJ81ZoFDfqdW+AQU3QWvP9bl5ak6hLGOo6lRP\n2R4lBi3U3Ex8/rFIpiM5+QL89UQR7ZcpzTrjsLpTs/yNbWZRKqN4qbzPWBJs\n18cv3W0aRNOBCQOsLU4A2sMfADNfBHcO9LFMW/vpUKLXnqOSoD22CKpWOluz\nFzqH\r\n=k3O4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfktOVMLrbXgyK8x+1nTdRmWb1qQEz5g5xst6Ufq18lwIhAJQ1s6QHOUrNpMDuk/dxXDt1xsgcAdRyuPYlhthh7W2x"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd_1627675494119_0.969860887457044"},"_hasShrinkwrap":false},"6.11.0":{"name":"watchr","version":"6.11.0","description":"Better file system watching for Node.js","homepage":"https://github.com/bevry/watchr","license":"MIT","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"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":"watchr","githubSlug":"bevry/watchr","npmPackageName":"watchr"}},"funding":"https://bevry.me/fund","author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"},{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","email":"stuart@stuartk.com","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16"}}],"type":"commonjs","main":"source/index.js","dependencies":{"eachr":"^4.5.0","extendr":"^5.19.0","ignorefs":"^3.17.0","safefs":"^6.16.0","scandirectory":"^6.16.0","taskgroup":"^7.19.0"},"devDependencies":{"@bevry/update-contributors":"^1.20.0","assert-helpers":"^8.4.0","bal-util":"^2.8.0","core-js":"^3.16.0","eslint":"^7.31.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","jsdoc":"^3.6.7","kava":"^5.15.0","prettier":"^2.3.2","projectz":"^2.22.0","rimraf":"^3.0.2","surge":"^0.23.0","valid-directory":"^3.9.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"echo no need for this project","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta: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 && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"gitHead":"f63a0f6774cc3e38ecad32f55571e2276dd6c7cd","_id":"watchr@6.11.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-cOa2+BfmhpwlqHgDnTtIiraFOSSFMlnRLufGJItfTucZIKT80dV5/igo1GqDJ6a1IzM+/ghKtufvTMMmV2KCxQ==","shasum":"9d07152c23a07073557de5c561f87aa3fafbed17","tarball":"https://registry.npmjs.org/watchr/-/watchr-6.11.0.tgz","fileCount":5,"unpackedSize":63143,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFxYCRA9TVsSAnZWagAApskP/i4ehx02SAiPhbPYhZz/\n21BgDIlekht8ILUMvp/4QnQUGyrmtOBJrwwLEnx2qY7H/ycchmbBLCFlLA37\nBuj6srYke+cxU90ILiGgAQ6hkQGkfc2O3DKa1muNwME2AsuUr1r4FgbAF/De\n4DAbpF+SOH7SvRxjlOS6i1tamArrx1DV+XGqxfBiCczArMkllhDIeYRnVGJs\nu9paLTREwSWSK3C+aJg5cCEN1hqAOKQO+O7BnZwNYL7189s369cqBJezcVpY\nPlFBzYPIW9QA8EkPWsSHMvEi0GNTpDASlz+Mu4MsJcDGs3TvjlRk35FeKVt8\nRT1lgCS6eGC2TSMqk0QplSTR89To/id1mgwJ7Xvo/9sr2WVleXoQt+RlIAtZ\n+hLlQf2lQbJJW8oVW3T10BVQwbPnwxebGZOWq1h9Am+nwg1Zr+LeyVvN5ra/\nSNyvvYF9sDJj9ZMwgfeOrd4XLqcV603HASmbebFpx5z70giOLo2BhAksrXlS\nuY6dlwj1BI7xLlS7EfEZwNfRYC0vOaOWZR0AU+dAFV1DQzjq8hJKsbC120f9\nLCeIPY/I2jzu7npMWuHJOXnCDoUPAaJsOnLm3OZJq1oorFlLP7XCGGlOJ0eL\n5XtCwNmH88blDRRNRuU5fm7fJK2vzZfQ9LkT0bWqiCsoh5CUeLqbSxdZZZzy\njrod\r\n=WbZZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG90NGBKItmxrKUDKqHrs7xn5GIEaOUfIOkK7XsDLu2/AiEAhNtJVEmzZY/txi1HtivYX7DwOI22YV5CTaqm3/q/Hus="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/watchr_6.11.0_1627675736541_0.14424490145599078"},"_hasShrinkwrap":false}},"readme":"<!-- TITLE/ -->\n\n<h1>watchr</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/watchr/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/watchr/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/watchr.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/watchr\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/watchr.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/watchr\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/watchr.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/watchr#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/watchr.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\nWatchr provides a normalised API the file watching APIs of different node versions, nested/recursive file and directory watching, and accurate detailed events for file/directory creations, updates, and deletions.\n\n## Usage\n\n[Complete API Documentation.](http://master.watchr.bevry.surge.sh/docs/)\n\nThere are two concepts in watchr, they are:\n\n-   Watcher - this wraps the native file system watching, makes it reliable, and supports deep watching\n-   Stalker - this wraps the watcher, such that for any given path, there can be many stalkers, but only one watcher\n\nThe simplest usage is:\n\n```javascript\n// Import the watching library\nvar watchr = require('watchr')\n\n// Define our watching parameters\nvar path = process.cwd()\nfunction listener(changeType, fullPath, currentStat, previousStat) {\n    switch (changeType) {\n        case 'update':\n            console.log(\n                'the file',\n                fullPath,\n                'was updated',\n                currentStat,\n                previousStat\n            )\n            break\n        case 'create':\n            console.log('the file', fullPath, 'was created', currentStat)\n            break\n        case 'delete':\n            console.log('the file', fullPath, 'was deleted', previousStat)\n            break\n    }\n}\nfunction next(err) {\n    if (err) return console.log('watch failed on', path, 'with error', err)\n    console.log('watch successful on', path)\n}\n\n// Watch the path with the change listener and completion callback\nvar stalker = watchr.open(path, listener, next)\n\n// Close the stalker of the watcher\nstalker.close()\n```\n\nMore advanced usage is:\n\n```javascript\n// Create the stalker for the path\nvar stalker = watchr.create(path)\n\n// Listen to the events for the stalker/watcher\nstalker.on('change', listener)\nstalker.on('log', console.log)\nstalker.once('close', function (reason) {\n    console.log('closed', path, 'because', reason)\n    stalker.removeAllListeners() // as it is closed, no need for our change or log listeners any more\n})\n\n// Set the default configuration for the stalker/watcher\nstalker.setConfig({\n    stat: null,\n    interval: 5007,\n    persistent: true,\n    catchupDelay: 2000,\n    preferredMethods: ['watch', 'watchFile'],\n    followLinks: true,\n    ignorePaths: false,\n    ignoreHiddenFiles: false,\n    ignoreCommonPatterns: true,\n    ignoreCustomPatterns: null,\n})\n\n// Start watching\nstalker.watch(next)\n\n// Stop watching\nstalker.close()\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save watchr</code></li>\n<li>Import: <code>import * as pkg from ('watchr')</code></li>\n<li>Require: <code>const pkg = require('watchr')</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>watchr</code> aliases <code>watchr/source/index.js</code></li>\n<li><code>watchr/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<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/watchr/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/watchr/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/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">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://github.com/AaronO\">Aaron O'Mullan</a> — <a href=\"https://github.com/bevry/watchr/commits?author=AaronO\" title=\"View the GitHub contributions of Aaron O'Mullan on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/adamsanderson\">Adam Sanderson</a> — <a href=\"https://github.com/bevry/watchr/commits?author=adamsanderson\" title=\"View the GitHub contributions of Adam Sanderson on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/watchr/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/caseywebdev\">Casey Foster</a> — <a href=\"https://github.com/bevry/watchr/commits?author=caseywebdev\" title=\"View the GitHub contributions of Casey Foster on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"http://digitalocean.com\">David Byrd</a></li>\n<li><a href=\"https://github.com/FredrikNoren\">Fredrik Norén</a> — <a href=\"https://github.com/bevry/watchr/commits?author=FredrikNoren\" title=\"View the GitHub contributions of Fredrik Norén on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/jlevine22\">Josh Levine</a> — <a href=\"https://github.com/bevry/watchr/commits?author=jlevine22\" title=\"View the GitHub contributions of Josh Levine on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/robsonpeixoto\">Robson Roberto Souza Peixoto</a> — <a href=\"https://github.com/bevry/watchr/commits?author=robsonpeixoto\" title=\"View the GitHub contributions of Robson Roberto Souza Peixoto on repository bevry/watchr\">view contributions</a></li>\n<li><a href=\"https://github.com/Stuk\">Stuart Knightley</a> — <a href=\"https://github.com/bevry/watchr/commits?author=Stuk\" title=\"View the GitHub contributions of Stuart Knightley on repository bevry/watchr\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/watchr/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; 2012+ <a href=\"http://bevry.me\">Bevry Pty Ltd</a></li>\n<li>Copyright &copy; 2011 <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","maintainers":[{"email":"us@bevry.me","name":"bevryme"}],"time":{"modified":"2023-11-14T09:33:49.270Z","created":"2011-11-13T11:53:53.166Z","0.1.0":"2011-11-13T11:53:57.126Z","1.0.0":"2012-02-11T10:35:42.384Z","2.0.0":"2012-04-18T22:07:10.464Z","1.1.0":"2012-04-18T22:36:29.326Z","2.0.1":"2012-05-05T02:21:27.528Z","2.0.2":"2012-05-05T02:23:31.825Z","2.0.3":"2012-05-05T02:25:36.900Z","2.1.0":"2012-06-22T04:10:54.957Z","2.1.1":"2012-07-07T09:38:31.159Z","2.1.2":"2012-07-07T10:00:43.697Z","2.1.3":"2012-08-10T12:13:01.697Z","2.1.4":"2012-09-27T08:16:06.040Z","2.1.5":"2012-09-28T21:29:37.440Z","2.1.6":"2012-11-06T10:06:59.304Z","2.2.0":"2012-12-15T11:43:40.993Z","2.2.1":"2012-12-15T13:28:10.154Z","2.3.0":"2012-12-17T04:46:08.223Z","2.3.1":"2012-12-19T06:56:54.709Z","2.3.2":"2013-01-06T08:28:09.874Z","2.3.3":"2013-01-08T13:52:10.497Z","2.3.4":"2013-02-05T08:00:12.027Z","2.3.5":"2013-02-06T00:33:24.434Z","2.3.6":"2013-02-06T01:30:37.171Z","2.3.7":"2013-02-06T03:14:09.101Z","2.3.8":"2013-03-17T07:19:11.363Z","2.3.9":"2013-03-17T07:30:16.397Z","2.3.10":"2013-04-03T02:50:59.796Z","2.4.0":"2013-04-05T03:36:43.356Z","2.4.1":"2013-04-10T09:14:43.679Z","2.4.2":"2013-04-10T09:49:05.829Z","2.4.3":"2013-04-10T11:11:06.955Z","2.4.4":"2013-10-09T16:46:11.462Z","2.4.6":"2013-12-18T01:28:20.301Z","2.4.7":"2013-12-19T01:10:39.425Z","2.4.8":"2013-12-30T04:14:31.876Z","2.4.9":"2014-01-29T04:38:58.423Z","2.4.10":"2014-02-06T23:41:48.887Z","2.4.11":"2014-02-07T00:39:20.508Z","2.4.12":"2014-12-17T04:08:13.771Z","2.4.13":"2015-02-06T21:22:14.887Z","2.5.0":"2016-07-15T01:41:22.118Z","2.6.0":"2016-07-15T02:12:12.911Z","3.0.0":"2016-10-19T12:39:41.991Z","3.0.1":"2016-10-23T15:20:12.019Z","4.0.1":"2018-01-24T14:50:41.539Z","4.1.0":"2018-12-07T02:29:37.086Z","5.0.0-next.1573394166.3a6f451716f648ad59914fac1518e91ffeab162d":"2019-11-10T13:56:08.829Z","5.0.0":"2019-11-10T14:01:28.967Z","5.0.0-next.1573412525.4d7310104440c8bb56c86c41282b155ae2eedbee":"2019-11-10T19:02:07.385Z","5.0.0-next.1573427498.aa69161d2af696c4771f6c94226b81eb2f6927d4":"2019-11-10T23:11:40.187Z","5.0.0-next.1573428056.2db67faf54a8ce9b3ffe7a5df68d21b7e53f81c3":"2019-11-10T23:20:58.791Z","5.0.0-next.1573430516.b7d9c8b88f5f0fb6f5492304be7f1a2b6c837094":"2019-11-11T00:01:58.172Z","5.0.0-next.1573546511.039cb74e6d8fcf252ec8a65255ea2857faf5f396":"2019-11-12T08:15:13.475Z","5.0.0-next.1573587808.50d0d6738cdb1f00f478754c2de1cc4ff5d633b2":"2019-11-12T19:43:30.194Z","5.0.0-next.1573588354.c16fe6f661c03aed6ced71a2443d7062d25a31ec":"2019-11-12T19:52:36.573Z","5.0.0-next.1573593085.f052b391cb2d136d0583f34b9a362c1d1fe4f732":"2019-11-12T21:11:27.637Z","5.0.0-next.1573594292.734ab2e77c483f9bd0ccbb0f15da8c38c01b1b23":"2019-11-12T21:31:34.212Z","5.0.0-next.1573597245.fd6a28417dfa4203ff70b9a1d2e80de3ab18aa4e":"2019-11-12T22:20:47.036Z","5.1.0-next.1573598940.5d41c4ef7f3d0013ebdfe93289d3ebd60adb8d42":"2019-11-12T22:49:02.550Z","5.1.0":"2019-11-12T22:54:12.954Z","5.1.0-next.1573684699.e0c70462e487e155a1e084471c79eb75acf9aaa4":"2019-11-13T22:38:21.289Z","5.1.0-next.1573685301.88419b430aea54b2eb38960196d574a6ea684a0e":"2019-11-13T22:48:23.878Z","5.1.0-next.1573686240.a90fc3ccf4aaec9522dbd86b381df453dd37cff2":"2019-11-13T23:04:02.422Z","5.1.0-next.1573687078.87ae145fcfbd42199b2c768535985b1f15908b12":"2019-11-13T23:17:59.838Z","5.1.0-next.1573690012.873a407ced75831a64869b3fdfc009bdfbd042b1":"2019-11-14T00:06:54.099Z","5.1.0-next.1573740058.c4e43b074155387c0b91e475511e9488a0db1f19":"2019-11-14T14:01:00.392Z","5.2.0-next.1574018673.85c95cfa5df1aaa4e154b09eb6383e140c0d8581":"2019-11-17T19:24:35.448Z","5.2.0":"2019-11-17T19:26:03.240Z","5.2.0-next.1574036900.f2209bc62cf410a0707710efab144e96fb9ec74f":"2019-11-18T00:28:21.931Z","5.3.0-next.1574066682.2eff1fbf316a2e9f3a029f19bb275f7d1db614c3":"2019-11-18T08:44:44.392Z","5.3.0":"2019-11-18T08:45:53.851Z","5.3.0-next.1574612680.07f5657275358d629a1048151f06d9e263b07303":"2019-11-24T16:25:05.936Z","5.3.0-next.1574633125.a43a0d5974a848b4639ec5a3b62dff46d2e258ef":"2019-11-24T22:05:27.004Z","5.3.0-next.1574636135.3ff5c2220829f42b5250df2d68cd6204909368a5":"2019-11-24T22:55:40.970Z","5.4.0-next.1575161704.00cf4e08248f474e76a6ed5d75d7e040c3ca93f5":"2019-12-01T00:55:05.698Z","5.4.0":"2019-12-01T01:00:16.962Z","5.4.0-next.1575215136.9c249960fbb00faec77c2a6eaacd186187d69838":"2019-12-01T15:45:38.445Z","5.4.0-next.1575215322.8d54e00b08747b2dd88bbbc63965a3c187b7518c":"2019-12-01T15:48:44.011Z","5.4.0-next.1575216384.31e2e7c757f149dc0f437c47a32069a4fb3b909c":"2019-12-01T16:06:25.922Z","5.4.0-next.1575216684.22123aa23fcab39cc383202f79a01b7eb3ae6df7":"2019-12-01T16:11:26.326Z","5.4.0-next.1575217482.3d189242fb10ef0fffca2e9399d345c2d3ffdd97":"2019-12-01T16:24:44.484Z","5.5.0-next.1575220849.e358ee5e5891d8083dc6b8d3e677b9349f6044e6":"2019-12-01T17:20:50.785Z","5.5.0":"2019-12-01T17:24:28.005Z","5.6.0-next.1575925354.af94182c8d7f5fb426649ba0e89255811c5804da":"2019-12-09T21:02:35.305Z","5.6.0":"2019-12-09T21:07:48.625Z","6.0.0-next.1590028186.78fa766f68901c2697a49e09d1925ee9e2c3fac1":"2020-05-21T02:29:47.552Z","6.0.0":"2020-05-21T02:30:52.971Z","6.1.0-next.1590151259.22292b4f1ed5854409635291765f97781edc24af":"2020-05-22T12:41:00.903Z","6.1.0":"2020-05-22T12:46:14.570Z","6.2.0-next.1591790006.fc88daf31ac97e7948e1fddfe06905f5989143ee":"2020-06-10T11:53:28.294Z","6.2.0":"2020-06-10T11:58:26.026Z","6.3.0-next.1592732750.f1931132cdaa5fceadf765510ac26438285915ee":"2020-06-21T09:45:51.823Z","6.3.0":"2020-06-21T09:50:46.817Z","6.4.0-next.1593063819.0f39917a2e0bee413affd0484badf3185a604d72":"2020-06-25T05:43:41.194Z","6.4.0":"2020-06-25T05:48:42.710Z","6.5.0-next.1595455383.12313ba33b987def3e3df6ec490472bc9b5285f7":"2020-07-22T22:03:04.807Z","6.5.0":"2020-07-22T22:08:11.046Z","6.6.0-next.1596532076.772131b7784c088b2a9790faf224595982e3c71f":"2020-08-04T09:07:58.219Z","6.6.0":"2020-08-04T09:12:53.780Z","6.7.0-next.1597705351.2f6300d467823b9f319a3c85b91fff581db45b81":"2020-08-17T23:02:32.946Z","6.7.0":"2020-08-17T23:07:39.469Z","6.7.0-next.1597705659.c15a14c17127cd465008f7e33030e6a36a6cf382":"2020-08-17T23:07:55.964Z","6.7.0-next.1597706439.b7a9ac4568aed57c0a18cfd97ce78bc639165fb3":"2020-08-17T23:20:41.261Z","6.7.0-next.1598183942.a0a6d5ea0b06936c7e487def68b0f854d22ecad4":"2020-08-23T11:59:03.955Z","6.7.0-next.1598778942.03b8e1580468605c017d65e8fc00db3f48d1caf1":"2020-08-30T09:15:43.740Z","6.8.0-next.1599284801.69a3925b7013ee594ede7fb52817a5d5fed0c0d3":"2020-09-05T05:46:43.135Z","6.8.0":"2020-09-05T05:52:02.409Z","6.8.0-next.1599990555.8c7bb2c19bfe458eb956b02b1bc17300a046a0e8":"2020-09-13T09:49:16.865Z","6.8.0-next.1600596318.28400e20910df4c306942773b208c41042e94fe2":"2020-09-20T10:05:19.718Z","6.8.0-next.1600597837.5b0537b1d272ea82241610de02d496d2768f47ef":"2020-09-20T10:30:39.622Z","6.8.0-next.1601203390.385ffbaf495efe8f4dd34f8081331bedd1bbb452":"2020-09-27T10:43:11.697Z","6.8.0-next.1601204165.160d41e24ee2304fae83cf6cd7d7993a734ef050":"2020-09-27T10:56:06.764Z","6.8.0-next.1602405766.5851463a473e2d42a2d10bb03befaf0f8b801c30":"2020-10-11T08:42:47.603Z","6.8.0-next.1603013902.f2af01f5a4e4de5a18f72a561b86f118e1d04087":"2020-10-18T09:38:23.957Z","6.8.0-next.1603619932.02b9cacda5958aa174f3bb19def66a5c9be135c9":"2020-10-25T09:58:53.705Z","6.8.0-next.1603620738.9edf3923599ef6bce567a9827b85921c52e6563d":"2020-10-25T10:12:20.315Z","6.9.0":"2020-10-29T04:40:02.259Z","6.9.0-next.1603946405.da4ff1ebffde6bb548d7577d695281fcb484b0e0":"2020-10-29T04:40:20.825Z","6.10.0-next.1627434539.e60bac757745cc63aba8035dd2a734d64d5bf127":"2021-07-28T01:09:01.900Z","6.10.0":"2021-07-28T01:13:23.237Z","6.11.0-next.1627675492.f63a0f6774cc3e38ecad32f55571e2276dd6c7cd":"2021-07-30T20:04:54.245Z","6.11.0":"2021-07-30T20:08:56.667Z"},"author":{"name":"2012+ Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"repository":{"type":"git","url":"git+https://github.com/bevry/watchr.git"},"users":{"leesei":true,"thiagomata":true,"raiseandfall":true,"mano.rajesh":true,"xerik":true,"vb078":true,"gavatron":true,"vivek.vikhere":true,"juno":true,"icodeforcookies":true,"rbecheras":true},"readmeFilename":"README.md","homepage":"https://github.com/bevry/watchr","keywords":["esnext","fs","fswatcher","node","typed","types","watch","watchfile","watching"],"contributors":[{"name":"Aaron O'Mullan","email":"aaron@gitbook.com","url":"https://github.com/AaronO"},{"name":"Adam Sanderson","email":"netghost@gmail.com","url":"https://github.com/adamsanderson"},{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"},{"name":"Casey Foster","url":"https://github.com/caseywebdev"},{"name":"David Byrd","url":"http://digitalocean.com"},{"name":"Fredrik Norén","url":"https://github.com/FredrikNoren"},{"name":"Josh Levine","url":"https://github.com/jlevine22"},{"name":"Robson Roberto Souza Peixoto","email":"robsonpeixoto@gmail.com","url":"https://github.com/robsonpeixoto"},{"name":"Stuart Knightley","email":"stuart@stuartk.com","url":"https://github.com/Stuk"}],"bugs":{"url":"https://github.com/bevry/watchr/issues"},"license":"MIT"}