{"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"},{"name":"michaelficarra","email":"npm@michael.ficarra.me"}],"keywords":["ast","ecmascript","javascript","query"],"dist-tags":{"latest":"1.0.0"},"author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","readme":"ESQuery is a library for querying the AST output by Esprima for patterns of syntax using a CSS style selector system. Check out the demo:\n\n[demo](https://estools.github.io/esquery/)\n\nThe following selectors are supported:\n* AST node type: `ForStatement`\n* [wildcard](http://dev.w3.org/csswg/selectors4/#universal-selector): `*`\n* [attribute existence](http://dev.w3.org/csswg/selectors4/#attribute-selectors): `[attr]`\n* [attribute value](http://dev.w3.org/csswg/selectors4/#attribute-selectors): `[attr=\"foo\"]` or `[attr=123]`\n* attribute regex: `[attr=/foo.*/]`\n* attribute conditons: `[attr!=\"foo\"]`, `[attr>2]`, `[attr<3]`, `[attr>=2]`, or `[attr<=3]` \n* nested attribute: `[attr.level2=\"foo\"]`\n* field: `FunctionDeclaration > Identifier.id`\n* [First](http://dev.w3.org/csswg/selectors4/#the-first-child-pseudo) or [last](http://dev.w3.org/csswg/selectors4/#the-last-child-pseudo) child: `:first-child` or `:last-child`\n* [nth-child](http://dev.w3.org/csswg/selectors4/#the-nth-child-pseudo) (no ax+b support): `:nth-child(2)`\n* [nth-last-child](http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo) (no ax+b support): `:nth-last-child(1)`\n* [descendant](http://dev.w3.org/csswg/selectors4/#descendant-combinators): `ancestor descendant`\n* [child](http://dev.w3.org/csswg/selectors4/#child-combinators): `parent > child`\n* [following sibling](http://dev.w3.org/csswg/selectors4/#general-sibling-combinators): `node ~ sibling`\n* [adjacent sibling](http://dev.w3.org/csswg/selectors4/#adjacent-sibling-combinators): `node + adjacent`\n* [negation](http://dev.w3.org/csswg/selectors4/#negation-pseudo): `:not(ForStatement)`\n* [matches-any](http://dev.w3.org/csswg/selectors4/#matches): `:matches([attr] > :first-child, :last-child)`\n* [subject indicator](http://dev.w3.org/csswg/selectors4/#subject): `!IfStatement > [name=\"foo\"]`\n* class of AST node: `:statement`, `:expression`, `:declaration`, `:function`, or `:pattern`\n\n[![Build Status](https://travis-ci.org/estools/esquery.png?branch=master)](https://travis-ci.org/estools/esquery)\n","repository":{"type":"git","url":"git+https://github.com/jrfeenst/esquery.git"},"users":{"chocolateboy":true,"jjdanois":true,"kaizendad":true},"bugs":{"url":"https://github.com/jrfeenst/esquery/issues"},"license":"BSD","versions":{"0.0.1":{"name":"esquery","preferGlobal":false,"version":"0.0.1","author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","scripts":{"test":"node_modules/jstestr/bin/jstestr.js path=tests"},"repository":{"type":"git","url":"https://github.com/jrfeenst/esquery.git"},"keywords":["ast","ecmascript","javascript","query"],"devDependencies":{"jstestr":">=0.4"},"license":"BSD","engines":{"node":">=0.6"},"_id":"esquery@0.0.1","dist":{"shasum":"d42025e726e72eb64b413ba24b2acecc9718f1b6","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/esquery/-/esquery-0.0.1.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"jrfeenst","email":"jrfeenst@gmail.com"},"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"}],"directories":{}},"0.1.0":{"name":"esquery","preferGlobal":false,"version":"0.1.0","author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","scripts":{"test":"node_modules/jstestr/bin/jstestr.js path=tests"},"repository":{"type":"git","url":"https://github.com/jrfeenst/esquery.git"},"keywords":["ast","ecmascript","javascript","query"],"devDependencies":{"jstestr":">=0.4"},"license":"BSD","engines":{"node":">=0.6"},"_id":"esquery@0.1.0","dist":{"shasum":"b812f49d96c896c59806a21bba613dc03bb67c1c","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/esquery/-/esquery-0.1.0.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"jrfeenst","email":"jrfeenst@gmail.com"},"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"}],"directories":{}},"0.2.0":{"name":"esquery","preferGlobal":false,"version":"0.2.0","author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","main":"esquery.js","scripts":{"test":"node node_modules/jstestr/bin/jstestr.js path=tests"},"repository":{"type":"git","url":"https://github.com/jrfeenst/esquery.git"},"keywords":["ast","ecmascript","javascript","query"],"devDependencies":{"jstestr":">=0.4"},"license":"BSD","engines":{"node":">=0.6"},"_id":"esquery@0.2.0","dist":{"shasum":"07bc770fb94b879687326d5c6cd0afaf7273d002","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/esquery/-/esquery-0.2.0.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"jrfeenst","email":"jrfeenst@gmail.com"},"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"}],"directories":{}},"0.3.0":{"name":"esquery","preferGlobal":false,"version":"0.3.0","author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","main":"esquery.js","scripts":{"test":"node node_modules/jstestr/bin/jstestr.js path=tests"},"repository":{"type":"git","url":"https://github.com/jrfeenst/esquery.git"},"keywords":["ast","ecmascript","javascript","query"],"devDependencies":{"jstestr":">=0.4","pegjs":"~0.7.0"},"license":"BSD","engines":{"node":">=0.6"},"dependencies":{"estraverse":"~1.3.1"},"_id":"esquery@0.3.0","dist":{"shasum":"e43f2d321614d9d7cf6abd96243c70fc056585fa","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/esquery/-/esquery-0.3.0.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"jrfeenst","email":"jrfeenst@gmail.com"},"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"}],"directories":{}},"0.4.0":{"name":"esquery","preferGlobal":false,"version":"0.4.0","author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","main":"esquery.js","files":["esquery.js","parser.js","license.txt","README.md"],"scripts":{"test":"node node_modules/jstestr/bin/jstestr.js path=tests"},"repository":{"type":"git","url":"https://github.com/jrfeenst/esquery.git"},"keywords":["ast","ecmascript","javascript","query"],"devDependencies":{"jstestr":">=0.4","pegjs":"~0.7.0","commonjs-everywhere":"~0.9.4","esprima":"~1.1.1"},"license":"BSD","engines":{"node":">=0.6"},"dependencies":{"estraverse":"^4.0.0"},"gitHead":"dee284cc4eac7a31d251076199409b1ab5df86b5","bugs":{"url":"https://github.com/jrfeenst/esquery/issues"},"homepage":"https://github.com/jrfeenst/esquery","_id":"esquery@0.4.0","_shasum":"4c4fb5f6a5854fc12bbe2bebf3933b4ed9d4413e","_from":".","_npmVersion":"2.7.4","_nodeVersion":"0.12.2","_npmUser":{"name":"michaelficarra","email":"npm@michael.ficarra.me"},"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"},{"name":"michaelficarra","email":"npm@michael.ficarra.me"}],"dist":{"shasum":"4c4fb5f6a5854fc12bbe2bebf3933b4ed9d4413e","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/esquery/-/esquery-0.4.0.tgz"},"directories":{}},"1.0.0":{"name":"esquery","preferGlobal":false,"version":"1.0.0","author":{"name":"Joel Feenstra","email":"jrfeenst+esquery@gmail.com"},"description":"A query library for ECMAScript AST using a CSS selector like query language.","main":"esquery.js","files":["esquery.js","parser.js","license.txt","README.md"],"scripts":{"test":"node node_modules/jstestr/bin/jstestr.js path=tests"},"repository":{"type":"git","url":"git+https://github.com/jrfeenst/esquery.git"},"keywords":["ast","ecmascript","javascript","query"],"devDependencies":{"jstestr":">=0.4","pegjs":"~0.7.0","commonjs-everywhere":"~0.9.4","esprima":"~1.1.1"},"license":"BSD","engines":{"node":">=0.6"},"dependencies":{"estraverse":"^4.0.0"},"gitHead":"c029e89dcef7bc4ca66588a503ec154bd68f0e05","bugs":{"url":"https://github.com/jrfeenst/esquery/issues"},"homepage":"https://github.com/jrfeenst/esquery#readme","_id":"esquery@1.0.0","_shasum":"cfba8b57d7fba93f17298a8a006a04cda13d80fa","_from":".","_npmVersion":"4.1.2","_nodeVersion":"7.5.0","_npmUser":{"name":"michaelficarra","email":"npm@michael.ficarra.me"},"dist":{"shasum":"cfba8b57d7fba93f17298a8a006a04cda13d80fa","tarball":"http://nexus.dui88.com:8081/nexus/content/groups/npm-all/esquery/-/esquery-1.0.0.tgz"},"maintainers":[{"name":"jrfeenst","email":"jrfeenst@gmail.com"},{"name":"michaelficarra","email":"npm@michael.ficarra.me"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/esquery-1.0.0.tgz_1489187536588_0.0852991035208106"},"directories":{}}},"name":"esquery","time":{"modified":"2017-03-10T23:12:16.863Z","created":"2013-07-24T00:20:02.985Z","0.0.1":"2013-07-24T00:20:04.295Z","0.1.0":"2013-08-03T19:06:36.521Z","0.2.0":"2013-08-06T23:48:02.992Z","0.3.0":"2013-11-04T23:31:50.965Z","0.4.0":"2015-05-05T04:17:31.458Z","1.0.0":"2017-03-10T23:12:16.863Z"},"readmeFilename":"README.md","homepage":"https://github.com/jrfeenst/esquery#readme"}