{"_id":"bo-selector","_rev":"23-f56d5cdf1e6cee46bdacea10980ae8ed","name":"bo-selector","description":"CSS selector parser based on jison","dist-tags":{"latest":"0.0.10"},"versions":{"0.0.1":{"name":"bo-selector","version":"0.0.1","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse('p:has(.foo), b');\nconsole.log(require('util').inspect(ast, false, null));\n```\n\nGenerates\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'selector',\n      element:\n       { type: 'element',\n         name: 'p',\n         constraints:\n          [ { type: 'pseudo_func',\n              func:\n               { type: 'function',\n                 name: 'has',\n                 body:\n                  { type: 'selector_list',\n                    selectors:\n                     [ { type: 'selector',\n                         element:\n                          { type: 'element',\n                            name: '*',\n                            constraints: [ { type: 'class', name: 'foo' } ] } } ] } } } ] } },\n    { type: 'selector',\n      element: { type: 'element', name: 'b', constraints: [] } } ] }\n```\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.1","dist":{"shasum":"f89b653b572359b59bfb640233ef1e81e9592509","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.1.tgz","integrity":"sha512-os5/MEyILM+MNLzZGXJPwkb6VAGlTV1LXUWftRnIKs4FffwtV9Vrl/lhy6lN4N0y9odOPD2CUvv5tOCjyn526g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdaGqHqEGHVJmZFXE98DVZl+kFj+ciY1PZCLtFrmKl1AiEAy7MrrDFjjHYg1HA+Hsnd6VRiHy1+ckhiBsne1BL2Pyc="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.2":{"name":"bo-selector","version":"0.0.2","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse('․a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= o]');\nconsole.log(require('util').inspect(ast, false, null));\n```\n\nGenerates\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'element',\n       name: 'a',\n       constraints: [ { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               body:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'element',\n          name: '*',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.2","dist":{"shasum":"b11870d25354f2ac75c25365102e7df4695fa8b1","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.2.tgz","integrity":"sha512-HY1eP/UW2deQhIkHi5lnTQuzGdbRvaHrKgM8SCYmPRQeYEHC5t0Qt3qhPPvQfD2nNz0v1k1uSOBerOsqqFfS5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCNHazhqaWkHbET8E700Iu/6ejHUJTnJ21tSmx3j6cmAiAT9wGL7pQ6VE25C2jejBkz9TufvoQIZbSeXKTdoz3ajQ=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.3":{"name":"bo-selector","version":"0.0.3","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse('․a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= o]');\nconsole.log(require('util').inspect(ast, false, null));\n```\n\nGenerates\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'element',\n       name: 'a',\n       constraints: [ { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               body:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'element',\n          name: '*',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.3","dist":{"shasum":"6151b80416a3a4b34cd3c6ed3fe07f5f5fccf94d","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.3.tgz","integrity":"sha512-Wd79P7ZvBSrLwW1/WbOkgmWrHZ+VNt+eKwZENYYV5PcZiuxXodXUQlnOOR7aGY1Nwb70QLpe0Mm2exV8tXxMlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbgn5IPVpgoLKqEqYUCxzu3+OUp/5CZT7PZcSXabLn/QIhAL69g3Ne3cpDc9BO2CvNb0IqmOk/OVWIrsdGKz9lq11C"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.4":{"name":"bo-selector","version":"0.0.4","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'element',\n       name: '*',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               body:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'element',\n          name: '*',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.4","dist":{"shasum":"bb759084c765661095836d6858d7de2ac4747720","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.4.tgz","integrity":"sha512-bhCY/gYP0EdiHwd3kjqPQTaOMsjOSUBGJ8NXv8OgQxTYKdckCEZxF6sc0cjsivMkGTHtVVF7EjRm2OO7puqAyQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFOBpYtT6rylFiv02yt3E4pt+tF12VC6K+FXoyDNhPZCAiAs8O7x4b0CuJvm8agWDAD6IM8IxdpbWWq8y6IeVp2s9A=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.5":{"name":"bo-selector","version":"0.0.5","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'element',\n       name: '*',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               body:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'element',\n          name: '*',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.5","dist":{"shasum":"d23bd003e5b99f92366902fbc103d126b9ab5d8a","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.5.tgz","integrity":"sha512-Ov4gpTsgxlYQ88C/l/X5wQ1EniZq6gQDYr7/G6EjwiDsju/2FxeovYMJho5G6sBKuTSUKVpwB6irfLVkqKH/zQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBXJPVCqZcISH6p0/9P0aa3dcY9uF8kFKE+5nYOsNsQRAiBJYrzEieP4LdR8M7KBkFgjV9aXngWEXckd1yHkU9kdig=="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.6":{"name":"bo-selector","version":"0.0.6","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'element',\n       name: '*',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               body:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'element',\n          name: '*',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.6","dist":{"shasum":"19f7bbbcd43d7727ca3caeb64c83edc713af476b","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.6.tgz","integrity":"sha512-tmUReMN5ZTaLAby5dc94MNlmTJXOzZ5FiKPC1/f7f1Zolkn3uNZuGmFsNgIrAgc5VVflI7ZQCDIXmTJew/YnnA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLyTTisRU5HMWdyBlpV5wBLyrvBcNH0LlPZOy5dNdoqQIhANKes7k+po1d7nscNcRMuCSUZEkWarTKZIUSdGL1zdWI"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.7":{"name":"bo-selector","version":"0.0.7","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('./bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'constraint_list',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               args:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'constraint_list',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains_word', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.7","dist":{"shasum":"8c4d477a4018fc3c7232548e5b8da93eb8e5c08a","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.7.tgz","integrity":"sha512-qnuc1gX11YdaEpUiNmXYhvecgbe8ZzM8+LR9d2qKW0GDNOhjQl0HHYHrj+e6tUTaSz171pmoTdNyRP+S0RRxSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAzUt13tYGcqTUigU9tPWpo7xHQHWwWhoeDgSgiMVFDHAiEAzxdpNAtOUGU6mOMvkbxvufq9oHJecRypFghcEfleUtU="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.8":{"name":"bo-selector","version":"0.0.8","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('./bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'constraint_list',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               args:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'constraint_list',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains_word', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.8","dist":{"shasum":"eff4557333a8c0dec2c03d05b33425e94a7a4c1d","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.8.tgz","integrity":"sha512-WKfUoyX0KKJqtHS2XiFqtBTZir4FjeZRtHCPhfiTtiv0FWL64+gu0eqRzzSD9WKlnfWjpoK5T2KRCesf5ZnVdQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGNvPl9lrlScDZ2Tx3q7FiagfbFjiMT8ibiVmgRdD8O4AiEA+TtRBi0CMI1ME4pBl/7WoK5jKSU8hMK+o8RRtkl1Vgk="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.9":{"name":"bo-selector","version":"0.0.9","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('./bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'constraint_list',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               args:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'constraint_list',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains_word', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.9","dist":{"shasum":"4fd05483334a83ad986f072720bfe3461626ac18","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.9.tgz","integrity":"sha512-+yRJ+OFH+UxeR8y/c8Z+QYjZhWK15rWyu5DamsSWeIsYXjCXghNZAITsdMLz1K6TxpzI0yn1a08FS7SFYmKSXA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCszv/xYmRtCAe51cCktVhwJddvBwnQAXJydkOqczTKKQIhAJzafn3u/2l0KkBa76uMcipRpOEBE3E83qN03ZqznWN3"}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]},"0.0.10":{"name":"bo-selector","version":"0.0.10","description":"CSS selector parser based on jison","main":"bo-selector.js","directories":{"test":"test"},"scripts":{"test":"make test"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"},"dependencies":{},"devDependencies":{"jison":"~0.4.13","should":"~2.1.1","pogo":"~0.6.4","mocha":"~1.16.2"},"keywords":["css","selector","parser","jison","shamone"],"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"license":"BSD","readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('./bo-selector').parser;\nvar ast = parser.parse(\".a[b = c], c[d]:e:f(g *:h:i[j]:k), :l > m[n ~= 'o']\");\nconsole.log(require('util').inspect(ast, false, null));\n```\n\n...generates:\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'constraint_list',\n       constraints:\n        [ { type: 'class', name: 'a' },\n          { type: 'attribute_equals', name: 'b', value: 'c' } ] },\n     { type: 'element',\n       name: 'c',\n       constraints:\n        [ { type: 'has_attribute', name: 'd' },\n          { type: 'pseudo_class', name: 'e' },\n          { type: 'pseudo_func',\n            func:\n             { type: 'function',\n               name: 'f',\n               args:\n                { type: 'selector_list',\n                  selectors:\n                   [ { type: 'combinator_selector',\n                       left: { type: 'element', name: 'g', constraints: [] },\n                       right:\n                        { type: 'element',\n                          name: '*',\n                          constraints:\n                           [ { type: 'pseudo_class', name: 'h' },\n                             { type: 'pseudo_class', name: 'i' },\n                             { type: 'has_attribute', name: 'j' },\n                             { type: 'pseudo_class', name: 'k' } ] },\n                       combinator: 'descendant' } ] } } } ] },\n     { type: 'combinator_selector',\n       left:\n        { type: 'constraint_list',\n          constraints: [ { type: 'pseudo_class', name: 'l' } ] },\n       right:\n        { type: 'element',\n          name: 'm',\n          constraints: [ { type: 'attribute_contains_word', name: 'n', value: 'o' } ] },\n       combinator: 'child' } ] }\n```\n\n### Bo?\n\n[Craig David - Bo' Selecta Ruined My Life](http://www.youtube.com/watch?v=gpOA8AMZG8M)\n\n### License\n\nBSD","readmeFilename":"README.md","bugs":{"url":"https://github.com/featurist/bo-selector/issues"},"homepage":"https://github.com/featurist/bo-selector","_id":"bo-selector@0.0.10","dist":{"shasum":"9816dcb00adf374ea87941a863b2acfc026afa3e","tarball":"https://registry.npmjs.org/bo-selector/-/bo-selector-0.0.10.tgz","integrity":"sha512-Drm8W3MFLNhzHTXG93g8ll7wBlmiRr5C9W8R0sbsNQp/8h1IoPnzDH4dEQuJx8VaNq02io2ZfFnzKC1s64xRJg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFRjw3xXdBJrswlx7bjEdXouIMLA00ZtMwOfFA0ClMsXAiEAyEi/c0QFNGuXPFH9iX3eui47/De8DyeFDxUJk6OxP3A="}]},"_from":".","_npmVersion":"1.3.14","_npmUser":{"name":"joshski","email":"josh@featurist.co.uk"},"maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}]}},"readme":"# bo-selector\n\nA CSS selector parser based on [jison](http://zaach.github.io/jison/)\n\n[![Build Status](https://secure.travis-ci.org/featurist/bo-selector.png?branch=master)](http://travis-ci.org/featurist/bo-selector)\n\n### Example\n\n```js\nvar parser = require('bo-selector').parser;\nvar ast = parser.parse('p:has(.foo), b');\nconsole.log(require('util').inspect(ast, false, null));\n```\n\nGenerates\n\n```js\n{ type: 'selector_list',\n  selectors:\n   [ { type: 'selector',\n      element:\n       { type: 'element',\n         name: 'p',\n         constraints:\n          [ { type: 'pseudo_func',\n              func:\n               { type: 'function',\n                 name: 'has',\n                 body:\n                  { type: 'selector_list',\n                    selectors:\n                     [ { type: 'selector',\n                         element:\n                          { type: 'element',\n                            name: '*',\n                            constraints: [ { type: 'class', name: 'foo' } ] } } ] } } } ] } },\n    { type: 'selector',\n      element: { type: 'element', name: 'b', constraints: [] } } ] }\n```\n\n### License\n\nBSD","maintainers":[{"name":"joshski","email":"josh@featurist.co.uk"}],"time":{"modified":"2022-06-13T04:52:59.653Z","created":"2013-12-29T10:39:25.271Z","0.0.1":"2013-12-29T10:39:26.635Z","0.0.2":"2013-12-29T11:23:35.006Z","0.0.3":"2013-12-30T15:26:59.058Z","0.0.4":"2013-12-30T21:51:44.629Z","0.0.5":"2013-12-30T23:51:49.188Z","0.0.6":"2013-12-31T15:50:38.590Z","0.0.7":"2014-01-01T15:19:44.163Z","0.0.8":"2014-01-02T00:35:34.376Z","0.0.9":"2014-01-02T01:25:16.967Z","0.0.10":"2014-01-02T01:50:26.237Z"},"author":{"name":"Josh Chisholm","email":"joshchisholm@gmail.com","url":"http://featurist.co.uk/"},"repository":{"type":"git","url":"https://github.com/featurist/bo-selector.git"}}