Set up Grunt tasks to build web and Node versions of CyberChef using webpack

This commit is contained in:
n1474335 2017-03-21 22:41:44 +00:00
parent 99f306dc18
commit 885fbe13ac
56 changed files with 299 additions and 29138 deletions

View file

@ -1,7 +1,8 @@
/* globals xpath */
var Utils = require("../core/Utils.js"),
VKbeautify = require("vkbeautify");
//Prettify = require("google-code-prettify");
VKbeautify = require("vkbeautify"),
dom = require("xmldom").DOMParser,
xpath = require("xpath"),
prettyPrintOne = require("exports-loader?prettyPrintOne!google-code-prettify/bin/prettify.min.js");
/**
@ -36,7 +37,7 @@ var Code = module.exports = {
runSyntaxHighlight: function(input, args) {
var language = args[0],
lineNums = args[1];
return "<code class='prettyprint'>" + Prettify.prettyPrintOne(Utils.escapeHtml(input), language, lineNums) + "</code>";
return "<code class='prettyprint'>" + prettyPrintOne(Utils.escapeHtml(input), language, lineNums) + "</code>";
},
@ -336,36 +337,25 @@ var Code = module.exports = {
var query = args[0],
delimiter = args[1];
var xml;
var doc;
try {
xml = $.parseXML(input);
doc = new dom().parseFromString(input);
} catch (err) {
return "Invalid input XML.";
}
var result;
var nodes;
try {
result = xpath.evaluate(xml, query);
nodes = xpath.select(query, doc);
} catch (err) {
return "Invalid XPath. Details:\n" + err.message;
}
var serializer = new XMLSerializer();
var nodeToString = function(node) {
switch (node.nodeType) {
case Node.ELEMENT_NODE: return serializer.serializeToString(node);
case Node.ATTRIBUTE_NODE: return node.value;
case Node.COMMENT_NODE: return node.data;
case Node.DOCUMENT_NODE: return serializer.serializeToString(node);
default: throw new Error("Unknown Node Type: " + node.nodeType);
}
return node.toString();
};
return Object.keys(result).map(function(key) {
return result[key];
}).slice(0, -1) // all values except last (length)
.map(nodeToString)
.join(delimiter);
return nodes.map(nodeToString).join(delimiter);
},