diff --git a/src/js/config/Categories.js b/src/js/config/Categories.js index a1aa43de..e2f26ef0 100755 --- a/src/js/config/Categories.js +++ b/src/js/config/Categories.js @@ -248,6 +248,7 @@ var Categories = [ "JavaScript Parser", "JavaScript Beautify", "JavaScript Minify", + "JavaScript Obfscate", "JSON Beautify", "JSON Minify", "XML Beautify", diff --git a/src/js/config/OperationConfig.js b/src/js/config/OperationConfig.js index 70a032c6..393d1153 100755 --- a/src/js/config/OperationConfig.js +++ b/src/js/config/OperationConfig.js @@ -2491,6 +2491,13 @@ var OperationConfig = { outputType: "string", args: [] }, + "JavaScript Obfscate": { + description: "Obfscate JavaScript code.", + run: JS.run_minify, + input_type: "string", + output_type: "string", + args: [] + }, "XML Beautify": { description: "Indents and prettifies eXtensible Markup Language (XML) code.", run: Code.runXmlBeautify, diff --git a/src/js/operations/JS.js b/src/js/operations/JS.js index 0f109eee..b943f01b 100755 --- a/src/js/operations/JS.js +++ b/src/js/operations/JS.js @@ -10,7 +10,18 @@ * @namespace */ var JS = { + + /** + * JavaScript Obfscate operation. + * + * @param {string} input + * @returns {string} + */ + run_obfscate : function(input) { + return require('./javascriptObfscate').obfscate(input); + }, + /** * @constant * @default diff --git a/src/js/operations/JavascriptObfscate.js b/src/js/operations/JavascriptObfscate.js new file mode 100644 index 00000000..95d3b6ff --- /dev/null +++ b/src/js/operations/JavascriptObfscate.js @@ -0,0 +1,37 @@ +/* globals UAS_parser */ + +/** + * Javascript Obfscate operations. + * + * @author G047 [drgoatyt@gmail.com] + * @copyright Crown Copyright 2016 + * @license MIT + * + * @namespace + */ +var JavascriptObfscate = { + + obfuscator : require('javascript-obfuscator'), //Needs to be installed with the package.json + + /** + * Obfscate javascript operation. + * + * @param {string} source + * @returns {string} + */ + + obfscate : function (source) { + var obfuscationResult = this.obfuscate(source, { + compact: true, + debugProtection: true, + debugProtectionInterval: true, + selfDefending: true, + }); + source = obfuscationResult.getObfuscatedCode(); + return source; + } + + +}; + +module.exports = JavascriptObfscate; \ No newline at end of file