Index: node_modules/vulcanize/node_modules/whacko/node_modules/parse5/package.json |
diff --git a/node_modules/vulcanize/node_modules/whacko/node_modules/parse5/package.json b/node_modules/vulcanize/node_modules/whacko/node_modules/parse5/package.json |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ad99a7089a45642bc469543abc5cc858656063cd |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/whacko/node_modules/parse5/package.json |
@@ -0,0 +1,64 @@ |
+{ |
+ "name": "parse5", |
+ "description": "WHATWG HTML5 specification-compliant, fast and ready for production HTML parsing/serialization toolset for Node.", |
+ "version": "1.2.0", |
+ "author": { |
+ "name": "Ivan Nikulin", |
+ "email": "ifaaan@gmail.com", |
+ "url": "https://github.com/inikulin" |
+ }, |
+ "contributors": [ |
+ { |
+ "name": "Sebastian Mayr", |
+ "email": "sebmaster16@gmail.com", |
+ "url": "http://blog.smayr.name" |
+ }, |
+ { |
+ "name": "Sean Lang", |
+ "email": "slang800@gmail.com", |
+ "url": "http://slang.cx" |
+ } |
+ ], |
+ "homepage": "http://inikulin.github.io/parse5/", |
+ "devDependencies": { |
+ "mocha": "1.21.4" |
+ }, |
+ "keywords": [ |
+ "html", |
+ "parser", |
+ "html5", |
+ "WHATWG", |
+ "specification", |
+ "fast", |
+ "html parser", |
+ "html5 parser", |
+ "htmlparser", |
+ "parse5", |
+ "serializer", |
+ "html serializer", |
+ "htmlserializer", |
+ "sax", |
+ "simple api" |
+ ], |
+ "licenses": [ |
+ { |
+ "type": "MIT", |
+ "url": "https://raw.github.com/inikulin/parse5/master/LICENSE" |
+ } |
+ ], |
+ "main": "./index.js", |
+ "repository": { |
+ "type": "git", |
+ "url": "git://github.com/inikulin/parse5.git" |
+ }, |
+ "scripts": { |
+ "test": "node test/run_tests.js" |
+ }, |
+ "readme": "<p align=\"center\">\n <img src=\"https://raw.github.com/inikulin/parse5/master/logo.png\" alt=\"parse5\" />\n</p>\n\n[](https://travis-ci.org/inikulin/parse5)\n\n*WHATWG HTML5 specification-compliant, fast and ready for production HTML parsing/serialization toolset for Node.*\n\nTo build [TestCafé](http://testcafe.devexpress.com/) we needed fast and ready for production HTML parser, which will parse HTML as a modern browser's parser.\nExisting solutions were either too slow or their output was too inaccurate. So, this is how parse5 was born.\n\n**Included tools:**\n* [Parser](#class-parser) - HTML to DOM-tree parser.\n* [SimpleApiParser](#class-simpleapiparser) - [SAX](http://en.wikipedia.org/wiki/Simple_API_for_XML)-style parser for HTML.\n* [Serializer](#class-serializer) - DOM-tree to HTML code serializer.\n\n##Install\n```\n$ npm install parse5\n```\n\n\n##Usage\n```js\nvar Parser = require('parse5').Parser;\n\n//Instantiate parser\nvar parser = new Parser();\n\n//Then feed it with an HTML document\nvar document = parser.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>')\n\n//Now let's parse HTML-snippet\nvar fragment = parser.parseFragment('<title>Parse5 is fucking awesome!</title><h1>42</h1>');\n\n```\n\n##Is it fast?\nCheck out [this benchmark](https://github.com/inikulin/node-html-parser-bench).\n\n```\nStarting benchmark. Fasten your seatbelts...\nhtml5 (https://github.com/aredridel/html5) x 0.18 ops/sec ±5.92% (5 runs sampled)\nhtmlparser (https://github.com/tautologistics/node-htmlparser/) x 3.83 ops/sec ±42.43% (14 runs sampled)\nhtmlparser2 (https://github.com/fb55/htmlparser2) x 4.05 ops/sec ±39.27% (15 runs sampled)\nparse5 (https://github.com/inikulin/parse5) x 3.04 ops/sec ±51.81% (13 runs sampled)\nFastest is htmlparser2 (https://github.com/fb55/htmlparser2),parse5 (https://github.com/inikulin/parse5)\n```\n\nSo, parse5 is as fast as simple specification incompatible parsers and ~15-times(!) faster than the current specification compatible parser available for the node.\n\n\n##API reference\n\n###Enum: TreeAdapters\nProvides built-in tree adapters which can be passed as an optional argument to the `Parser` and `Serializer` constructors.\n\n####• TreeAdapters.default\nDefault tree format for parse5.\n\n\n####• TreeAdapters.htmlparser2\nQuite popular [htmlparser2](https://github.com/fb55/htmlparser2) tree format (e.g. used in [cheerio](https://github.com/MatthewMueller/cheerio) and [jsdom](https://github.com/tmpvar/jsdom)).\n\n---------------------------------------\n\n\n###Class: Parser\nProvides HTML parsing functionality.\n\n####• Parser.ctor([treeAdapter])\nCreates new reusable instance of the `Parser`. Optional `treeAdapter` argument specifies resulting tree format. If `treeAdapter` argument is not specified, `default` tree adapter will be used.\n\n*Example:*\n```js\nvar parse5 = require('parse5');\n\n//Instantiate new parser with default tree adapter\nvar parser1 = new parse5.Parser();\n\n//Instantiate new parser with htmlparser2 tree adapter\nvar parser2 = new parse5.Parser(parse5.TreeAdapters.htmlparser2);\n```\n\n\n\n####• Parser.parse(html)\nParses specified `html` string. Returns `document` node.\n\n*Example:*\n```js\nvar document = parser.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');\n```\n\n\n####• Parser.parseFragment(htmlFragment, [contextElement])\nParses given `htmlFragment`. Returns `documentFragment` node. Optional `contextElement` argument specifies context in which given `htmlFragment` will be parsed (consider it as setting `contextElement.innerHTML` property). If `contextElement` argument is not specified then `<template>` element will be used as a context and fragment will be parsed in 'forgiving' manner.\n\n*Example:*\n```js\nvar documentFragment = parser.parseFragment('<table></table>');\n\n//Parse html fragment in context of the parsed <table> element\nvar trFragment = parser.parseFragment('<tr><td>Shake it, baby</td></tr>', documentFragment.childNodes[0]);\n```\n\n---------------------------------------\n\n\n###Class: SimpleApiParser\nProvides [SAX](https://en.wikipedia.org/wiki/Simple_API_for_XML)-style HTML parsing functionality.\n\n####• SimpleApiParser.ctor(handlers)\nCreates new reusable instance of the `SimpleApiParser`. `handlers` argument specifies object that contains parser's event handlers. Possible events and their signatures are shown in the example.\n\n*Example:*\n```js\nvar parse5 = require('parse5');\n\nvar parser = new parse5.SimpleApiParser({\n doctype: function(name, publicId, systemId) {\n //Handle doctype here\n },\n\n startTag: function(tagName, attrs, selfClosing) {\n //Handle start tags here\n },\n\n endTag: function(tagName) {\n //Handle end tags here\n },\n\n text: function(text) {\n //Handle texts here\n },\n\n comment: function(text) {\n //Handle comments here\n }\n});\n```\n\n####• SimpleApiParser.parse(html)\nRaises parser events for the given `html`.\n\n*Example:*\n```js\nvar parse5 = require('parse5');\n\nvar parser = new parse5.SimpleApiParser({\n text: function(text) {\n console.log(text);\n }\n});\n\nparser.parse('<body>Yo!</body>');\n```\n\n---------------------------------------\n\n###Class: Serializer\nProvides tree-to-HTML serialization functionality.\n**Note:** prior to v1.2.0 this class was called `TreeSerializer`. However, it's still accessible as `parse5.TreeSerializer` for backward compatibility.\n\n####• Serializer.ctor([treeAdapter])\nCreates new reusable instance of the `Serializer`. Optional `treeAdapter` argument specifies input tree format. If `treeAdapter` argument is not specified, `default` tree adapter will be used.\n\n*Example:*\n```js\nvar parse5 = require('parse5');\n\n//Instantiate new serializer with default tree adapter\nvar serializer1 = new parse5.Serializer();\n\n//Instantiate new serializer with htmlparser2 tree adapter\nvar serializer2 = new parse5.Serializer(parse5.TreeAdapters.htmlparser2);\n```\n\n\n####• Serializer.serialize(node)\nSerializes the given `node`. Returns HTML string.\n\n*Example:*\n```js\nvar document = parser.parse('<!DOCTYPE html><html><head></head><body>Hi there!</body></html>');\n\n//Serialize document\nvar html = serializer.serialize(document);\n\n//Serialize <body> element content\nvar bodyInnerHtml = serializer.serialize(document.childNodes[0].childNodes[1]);\n```\n\n---------------------------------------\n\n\n##Testing\nTest data is adopted from [html5lib project](https://github.com/html5lib). Parser is covered by more than 8000 test cases.\nTo run tests:\n```\n$ npm test\n```\n\n\n##Custom tree adapter\nYou can create a custom tree adapter so parse5 can work with your own DOM-tree implementation.\nJust pass your adapter implementation to the parser's constructor as an argument:\n\n```js\nvar Parser = require('parse5').Parser;\n\nvar myTreeAdapter = {\n //Adapter methods...\n};\n\n//Instantiate parser\nvar parser = new Parser(myTreeAdapter);\n```\n\nSample implementation can be found [here](https://github.com/inikulin/parse5/blob/master/lib/tree_adapters/default.js).\nThe custom tree adapter should implement all methods exposed via `exports` in the sample implementation.\n\n##Questions or suggestions?\nIf you have any questions, please feel free to create an issue [here on github](https://github.com/inikulin/parse5/issues).\n\n\n##Author\n[Ivan Nikulin](https://github.com/inikulin) (ifaaan@gmail.com)\n", |
+ "readmeFilename": "README.md", |
+ "bugs": { |
+ "url": "https://github.com/inikulin/parse5/issues" |
+ }, |
+ "_id": "parse5@1.2.0", |
+ "_from": "parse5@1.2.0" |
+} |