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

@ -89,11 +89,11 @@ var ByteRepr = module.exports = {
else if (ordinal < 4294967296) padding = 8;
else padding = 2;
if (padding > 2) app.options.attemptHighlight = false;
if (padding > 2 && app) app.options.attemptHighlight = false;
output += Utils.hex(ordinal, padding) + delim;
} else {
app.options.attemptHighlight = false;
if (app) app.options.attemptHighlight = false;
output += ordinal.toString(base) + delim;
}
}
@ -119,7 +119,7 @@ var ByteRepr = module.exports = {
throw "Error: Base argument must be between 2 and 36";
}
if (base !== 16) {
if (base !== 16 && app) {
app.options.attemptHighlight = false;
}

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);
},

View file

@ -3,7 +3,7 @@ var rawdeflate = require("zlibjs/bin/rawdeflate.min"),
zlibAndGzip = require("zlibjs/bin/zlib_and_gzip.min"),
zip = require("zlibjs/bin/zip.min"),
unzip = require("zlibjs/bin/unzip.min"),
bzip2 = require("../lib/bzip2.js");
bzip2 = require("exports-loader?bzip2!../lib/bzip2.js");
var Zlib = {
RawDeflate: rawdeflate.Zlib.RawDeflate,

View file

@ -1,6 +1,3 @@
var moment = require("moment-timezone");
/**
* Date and time operations.
*

View file

@ -1,4 +1,4 @@
var UAParser = require("../lib/uas_parser.js");
var UAParser = require("exports-loader?UAS_parser!../lib/uas_parser.js");
/**

View file

@ -92,7 +92,7 @@ var Hexdump = module.exports = {
var w = (width - 13) / 4;
// w should be the specified width of the hexdump and therefore a round number
if (Math.floor(w) !== w || input.indexOf("\r") !== -1 || output.indexOf(13) !== -1) {
app.options.attemptHighlight = false;
if (app) app.options.attemptHighlight = false;
}
return output;
},