Index: node_modules/vulcanize/node_modules/whacko/node_modules/parse5/lib/tree_adapters/default.js |
diff --git a/node_modules/vulcanize/node_modules/whacko/node_modules/parse5/lib/tree_adapters/default.js b/node_modules/vulcanize/node_modules/whacko/node_modules/parse5/lib/tree_adapters/default.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5303c923da1cd2813437c259009af5190b66fb3a |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/whacko/node_modules/parse5/lib/tree_adapters/default.js |
@@ -0,0 +1,200 @@ |
+'use strict'; |
+ |
+//Node construction |
+exports.createDocument = function () { |
+ return { |
+ nodeName: '#document', |
+ quirksMode: false, |
+ childNodes: [] |
+ }; |
+}; |
+ |
+exports.createDocumentFragment = function () { |
+ return { |
+ nodeName: '#document-fragment', |
+ quirksMode: false, |
+ childNodes: [] |
+ }; |
+}; |
+ |
+exports.createElement = function (tagName, namespaceURI, attrs) { |
+ return { |
+ nodeName: tagName, |
+ tagName: tagName, |
+ attrs: attrs, |
+ namespaceURI: namespaceURI, |
+ childNodes: [], |
+ parentNode: null |
+ }; |
+}; |
+ |
+exports.createCommentNode = function (data) { |
+ return { |
+ nodeName: '#comment', |
+ data: data, |
+ parentNode: null |
+ }; |
+}; |
+ |
+var createTextNode = function (value) { |
+ return { |
+ nodeName: '#text', |
+ value: value, |
+ parentNode: null |
+ } |
+}; |
+ |
+ |
+//Tree mutation |
+exports.setDocumentType = function (document, name, publicId, systemId) { |
+ var doctypeNode = null; |
+ |
+ for (var i = 0; i < document.childNodes.length; i++) { |
+ if (document.childNodes[i].nodeName === '#documentType') { |
+ doctypeNode = document.childNodes[i]; |
+ break; |
+ } |
+ } |
+ |
+ if (doctypeNode) { |
+ doctypeNode.name = name; |
+ doctypeNode.publicId = publicId; |
+ doctypeNode.systemId = systemId; |
+ } |
+ |
+ else { |
+ appendChild(document, { |
+ nodeName: '#documentType', |
+ name: name, |
+ publicId: publicId, |
+ systemId: systemId |
+ }); |
+ } |
+}; |
+ |
+exports.setQuirksMode = function (document) { |
+ document.quirksMode = true; |
+}; |
+ |
+exports.isQuirksMode = function (document) { |
+ return document.quirksMode; |
+}; |
+ |
+var appendChild = exports.appendChild = function (parentNode, newNode) { |
+ parentNode.childNodes.push(newNode); |
+ newNode.parentNode = parentNode; |
+}; |
+ |
+var insertBefore = exports.insertBefore = function (parentNode, newNode, referenceNode) { |
+ var insertionIdx = parentNode.childNodes.indexOf(referenceNode); |
+ |
+ parentNode.childNodes.splice(insertionIdx, 0, newNode); |
+ newNode.parentNode = parentNode; |
+}; |
+ |
+exports.detachNode = function (node) { |
+ if (node.parentNode) { |
+ var idx = node.parentNode.childNodes.indexOf(node); |
+ |
+ node.parentNode.childNodes.splice(idx, 1); |
+ node.parentNode = null; |
+ } |
+}; |
+ |
+exports.insertText = function (parentNode, text) { |
+ if (parentNode.childNodes.length) { |
+ var prevNode = parentNode.childNodes[parentNode.childNodes.length - 1]; |
+ |
+ if (prevNode.nodeName === '#text') { |
+ prevNode.value += text; |
+ return; |
+ } |
+ } |
+ |
+ appendChild(parentNode, createTextNode(text)); |
+}; |
+ |
+exports.insertTextBefore = function (parentNode, text, referenceNode) { |
+ var prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1]; |
+ |
+ if (prevNode && prevNode.nodeName === '#text') |
+ prevNode.value += text; |
+ else |
+ insertBefore(parentNode, createTextNode(text), referenceNode); |
+}; |
+ |
+exports.adoptAttributes = function (recipientNode, attrs) { |
+ var recipientAttrsMap = []; |
+ |
+ for (var i = 0; i < recipientNode.attrs.length; i++) |
+ recipientAttrsMap.push(recipientNode.attrs[i].name); |
+ |
+ for (var j = 0; j < attrs.length; j++) { |
+ if (recipientAttrsMap.indexOf(attrs[j].name) === -1) |
+ recipientNode.attrs.push(attrs[j]); |
+ } |
+}; |
+ |
+ |
+//Tree traversing |
+exports.getFirstChild = function (node) { |
+ return node.childNodes[0]; |
+}; |
+ |
+exports.getChildNodes = function (node) { |
+ return node.childNodes; |
+}; |
+ |
+exports.getParentNode = function (node) { |
+ return node.parentNode; |
+}; |
+ |
+exports.getAttrList = function (node) { |
+ return node.attrs; |
+}; |
+ |
+//Node data |
+exports.getTagName = function (element) { |
+ return element.tagName; |
+}; |
+ |
+exports.getNamespaceURI = function (element) { |
+ return element.namespaceURI; |
+}; |
+ |
+exports.getTextNodeContent = function (textNode) { |
+ return textNode.value; |
+}; |
+ |
+exports.getCommentNodeContent = function (commentNode) { |
+ return commentNode.data; |
+}; |
+ |
+exports.getDocumentTypeNodeName = function (doctypeNode) { |
+ return doctypeNode.name; |
+}; |
+ |
+exports.getDocumentTypeNodePublicId = function (doctypeNode) { |
+ return doctypeNode.publicId; |
+}; |
+ |
+exports.getDocumentTypeNodeSystemId = function (doctypeNode) { |
+ return doctypeNode.systemId; |
+}; |
+ |
+//Node types |
+exports.isTextNode = function (node) { |
+ return node.nodeName === '#text'; |
+}; |
+ |
+exports.isCommentNode = function (node) { |
+ return node.nodeName === '#comment'; |
+}; |
+ |
+exports.isDocumentTypeNode = function (node) { |
+ return node.nodeName === '#documentType'; |
+}; |
+ |
+exports.isElementNode = function (node) { |
+ return !!node.tagName; |
+}; |