remove js files

This commit is contained in:
sanex3339
2016-05-09 12:21:48 +03:00
parent ecf5f97ec4
commit 4396921530
43 changed files with 2 additions and 925 deletions
-89
View File
@@ -1,89 +0,0 @@
"use strict";
const AppendState_1 = require('./enums/AppendState');
const FunctionDeclarationObfuscator_1 = require('./node-obfuscators/FunctionDeclarationObfuscator');
const FunctionObfuscator_1 = require('./node-obfuscators/FunctionObfuscator');
const LiteralObfuscator_1 = require('./node-obfuscators/LiteralObfuscator');
const MemberExpressionObfuscator_1 = require('./node-obfuscators/MemberExpressionObfuscator');
const MethodDefinitionObfuscator_1 = require('./node-obfuscators/MethodDefinitionObfuscator');
const ObjectExpressionObfuscator_1 = require('./node-obfuscators/ObjectExpressionObfuscator');
const UnicodeArrayNode_1 = require('./nodes/UnicodeArrayNode');
const UnicodeArrayNodesGroup_1 = require('./node-groups/UnicodeArrayNodesGroup');
const Utils_1 = require('./Utils');
const VariableDeclarationObfuscator_1 = require('./node-obfuscators/VariableDeclarationObfuscator');
let estraverse = require('estraverse');
class Obfuscator {
constructor(options) {
this.nodes = new Map();
this.nodeObfuscators = new Map([
['ClassDeclaration', [FunctionDeclarationObfuscator_1.FunctionDeclarationObfuscator]],
['FunctionDeclaration', [
FunctionDeclarationObfuscator_1.FunctionDeclarationObfuscator,
FunctionObfuscator_1.FunctionObfuscator
]],
['ArrowFunctionExpression', [FunctionObfuscator_1.FunctionObfuscator]],
['FunctionExpression', [FunctionObfuscator_1.FunctionObfuscator]],
['MethodDefinition', [MethodDefinitionObfuscator_1.MethodDefinitionObfuscator]],
['VariableDeclaration', [VariableDeclarationObfuscator_1.VariableDeclarationObfuscator]],
['ObjectExpression', [ObjectExpressionObfuscator_1.ObjectExpressionObfuscator]],
['MemberExpression', [MemberExpressionObfuscator_1.MemberExpressionObfuscator]],
['Literal', [LiteralObfuscator_1.LiteralObfuscator]]
]);
this.options = {
rotateUnicodeArray: true
};
Object.assign(this.options, options);
}
obfuscateNode(node) {
if (this.options['rotateUnicodeArray']) {
this.setNodesGroup('unicodeArrayNodesGroup', new UnicodeArrayNodesGroup_1.UnicodeArrayNodesGroup(node));
}
else {
this.setNode('unicodeArrayNode', new UnicodeArrayNode_1.UnicodeArrayNode(node, Utils_1.Utils.getRandomVariableName(UnicodeArrayNode_1.UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH)));
}
this.beforeObfuscation(node);
estraverse.replace(node, {
leave: (node, parent) => this.nodeController(node, parent)
});
this.afterObfuscation(node);
}
setNode(nodeName, node) {
this.nodes.set(nodeName, node);
}
setNodesGroup(groupName, nodesGroup) {
let nodes = nodesGroup.getNodes();
nodes.forEach((node, key) => {
this.nodes.set(key, node);
});
}
afterObfuscation(node) {
this.nodes.forEach((node) => {
if (node.getAppendState() === AppendState_1.AppendState.AfterObfuscation) {
node.appendNode();
}
});
}
beforeObfuscation(node) {
this.nodes.forEach((node) => {
if (node.getAppendState() === AppendState_1.AppendState.BeforeObfuscation) {
node.appendNode();
}
});
}
;
nodeController(node, parent) {
switch (node.type) {
default:
this.initializeNodeObfuscators(node, parent);
}
}
initializeNodeObfuscators(node, parent) {
if (!this.nodeObfuscators.has(node.type)) {
return;
}
this.nodeObfuscators.get(node.type).forEach((obfuscator) => {
new obfuscator(this.nodes).obfuscateNode(node, parent);
});
}
}
exports.Obfuscator = Obfuscator;
//# sourceMappingURL=Obfuscator.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"Obfuscator.js","sourceRoot":"","sources":["Obfuscator.ts"],"names":[],"mappings":"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"}
-37
View File
@@ -1,37 +0,0 @@
"use strict";
class Utils {
static arrayRotate(array, times, reverse = false) {
if (times < 0) {
return;
}
let newArray = array, temp;
while (times--) {
if (!reverse) {
temp = newArray.pop();
newArray.unshift(temp);
}
else {
temp = newArray.shift();
newArray.push(temp);
}
}
return newArray;
}
static decToHex(dec) {
return (dec + Math.pow(16, 6)).toString(16).substr(-6);
}
static getRandomInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
static getRandomVariableName(length = 6) {
const prefix = '_0x';
return `${prefix}${(Utils.decToHex(Utils.getRandomInteger(10000, 9999999))).substr(0, length)}`;
}
static stringToUnicode(string) {
return `'${string.replace(/[\s\S]/g, (escape) => {
return `\\u${('0000' + escape.charCodeAt(0).toString(16)).slice(-4)}`;
})}'`;
}
}
exports.Utils = Utils;
//# sourceMappingURL=Utils.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"Utils.js","sourceRoot":"","sources":["Utils.ts"],"names":[],"mappings":";AAAA;IAOI,OAAc,WAAW,CAAE,KAAY,EAAE,KAAa,EAAE,OAAO,GAAY,KAAK;QAC5E,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC;QACX,CAAC;QAED,IAAI,QAAQ,GAAU,KAAK,EACvB,IAAS,CAAC;QAEd,OAAO,KAAK,EAAE,EAAE,CAAC;YACb,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC;IACpB,CAAC;IAMD,OAAc,QAAQ,CAAC,GAAW;QAC9B,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAOD,OAAc,gBAAgB,CAAC,GAAW,EAAE,GAAW;QACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC7D,CAAC;IAMD,OAAc,qBAAqB,CAAE,MAAM,GAAW,CAAC;QACnD,MAAM,MAAM,GAAG,KAAK,CAAC;QAErB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IACpG,CAAC;IAMD,OAAc,eAAe,CAAE,MAAc;QACzC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM;YACxC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,CAAC,CAAC,GAAG,CAAC;IACV,CAAC;AACL,CAAC;AAhEY,aAAK,QAgEjB,CAAA"}
-7
View File
@@ -1,7 +0,0 @@
"use strict";
(function (AppendState) {
AppendState[AppendState["BeforeObfuscation"] = 0] = "BeforeObfuscation";
AppendState[AppendState["AfterObfuscation"] = 1] = "AfterObfuscation";
})(exports.AppendState || (exports.AppendState = {}));
var AppendState = exports.AppendState;
//# sourceMappingURL=AppendState.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"AppendState.js","sourceRoot":"","sources":["AppendState.ts"],"names":[],"mappings":";AAAA,WAAY,WAAW;IAAE,uEAAiB,CAAA;IAAE,qEAAgB,CAAA;AAAA,CAAC,EAAjD,mBAAW,KAAX,mBAAW,QAAsC;AAA7D,IAAY,WAAW,GAAX,mBAAiD,CAAA"}
-2
View File
@@ -1,2 +0,0 @@
"use strict";
//# sourceMappingURL=INode.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"INode.js","sourceRoot":"","sources":["INode.ts"],"names":[],"mappings":""}
-2
View File
@@ -1,2 +0,0 @@
"use strict";
//# sourceMappingURL=INodeObfuscator.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"INodeObfuscator.js","sourceRoot":"","sources":["INodeObfuscator.ts"],"names":[],"mappings":""}
-2
View File
@@ -1,2 +0,0 @@
"use strict";
//# sourceMappingURL=INodesGroup.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"INodesGroup.js","sourceRoot":"","sources":["INodesGroup.ts"],"names":[],"mappings":""}
-8
View File
@@ -1,8 +0,0 @@
"use strict";
class NodesGroup {
getNodes() {
return this.nodes;
}
}
exports.NodesGroup = NodesGroup;
//# sourceMappingURL=NodesGroup.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"NodesGroup.js","sourceRoot":"","sources":["NodesGroup.ts"],"names":[],"mappings":";AAIA;IASW,QAAQ;QACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;AACL,CAAC;AAZqB,kBAAU,aAY/B,CAAA"}
-29
View File
@@ -1,29 +0,0 @@
"use strict";
const NodesGroup_1 = require('./NodesGroup');
const UnicodeArrayNode_1 = require('../nodes/UnicodeArrayNode');
const UnicodeArrayRotateFunctionCallNode_1 = require('../nodes/UnicodeArrayRotateFunctionCallNode');
const UnicodeArrayRotateFunctionNode_1 = require('../nodes/UnicodeArrayRotateFunctionNode');
const Utils_1 = require('../Utils');
class UnicodeArrayNodesGroup extends NodesGroup_1.NodesGroup {
constructor(astTree) {
super();
this.unicodeArrayRotateFunctionIdentifier = Utils_1.Utils.getRandomVariableName();
let unicodeArrayName = Utils_1.Utils.getRandomVariableName(UnicodeArrayNode_1.UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH), unicodeArrayRotateValue = Utils_1.Utils.getRandomInteger(100, 500);
this.nodes = new Map([
[
'unicodeArrayNode',
new UnicodeArrayNode_1.UnicodeArrayNode(astTree, unicodeArrayName, unicodeArrayRotateValue)
],
[
'unicodeArrayRotateFunctionNode',
new UnicodeArrayRotateFunctionNode_1.UnicodeArrayRotateFunctionNode(astTree, this.unicodeArrayRotateFunctionIdentifier, unicodeArrayName)
],
[
'unicodeArrayRotateFunctionCallNode',
new UnicodeArrayRotateFunctionCallNode_1.UnicodeArrayRotateFunctionCallNode(astTree, this.unicodeArrayRotateFunctionIdentifier, unicodeArrayName, unicodeArrayRotateValue)
]
]);
}
}
exports.UnicodeArrayNodesGroup = UnicodeArrayNodesGroup;
//# sourceMappingURL=UnicodeArrayNodesGroup.js.map
@@ -1 +0,0 @@
{"version":3,"file":"UnicodeArrayNodesGroup.js","sourceRoot":"","sources":["UnicodeArrayNodesGroup.ts"],"names":[],"mappings":";AAEA,6BAA2B,cAAc,CAAC,CAAA;AAC1C,mCAAiC,2BAA2B,CAAC,CAAA;AAC7D,qDAAmD,6CAA6C,CAAC,CAAA;AACjG,iDAA+C,yCAAyC,CAAC,CAAA;AACzF,wBAAsB,UAAU,CAAC,CAAA;AAEjC,qCAA4C,uBAAU;IASlD,YAAa,OAAY;QACrB,OAAO,CAAC;QANJ,yCAAoC,GAAW,aAAK,CAAC,qBAAqB,EAAE,CAAC;QAQjF,IAAI,gBAAgB,GAAW,aAAK,CAAC,qBAAqB,CAAC,mCAAgB,CAAC,2BAA2B,CAAC,EACpG,uBAAuB,GAAW,aAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAEvE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,CAAkB;YAClC;gBACI,kBAAkB;gBAClB,IAAI,mCAAgB,CAChB,OAAO,EACP,gBAAgB,EAChB,uBAAuB,CAC1B;aACJ;YACD;gBACI,gCAAgC;gBAChC,IAAI,+DAA8B,CAC9B,OAAO,EACP,IAAI,CAAC,oCAAoC,EACzC,gBAAgB,CACnB;aACJ;YACD;gBACI,oCAAoC;gBACpC,IAAI,uEAAkC,CAClC,OAAO,EACP,IAAI,CAAC,oCAAoC,EACzC,gBAAgB,EAChB,uBAAuB,CAC1B;aACJ;SACJ,CAAC,CAAA;IACN,CAAC;AACL,CAAC;AA3CY,8BAAsB,yBA2ClC,CAAA"}
@@ -1,37 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
const Utils_1 = require('../Utils');
let estraverse = require('estraverse');
class FunctionDeclarationObfuscator extends NodeObfuscator_1.NodeObfuscator {
constructor(...args) {
super(...args);
this.functionName = new Map();
}
obfuscateNode(functionDeclarationNode, parentNode) {
if (parentNode.type === 'Program') {
return;
}
this.replaceFunctionName(functionDeclarationNode);
this.replaceFunctionCalls(parentNode);
}
replaceFunctionName(functionDeclarationNode) {
estraverse.replace(functionDeclarationNode.id, {
leave: (node) => {
if (node.type !== 'Identifier') {
return;
}
this.functionName.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = this.functionName.get(node.name);
}
});
}
replaceFunctionCalls(functionParentNode) {
estraverse.replace(functionParentNode, {
leave: (node, parentNode) => {
this.replaceNodeIdentifierByNewValue(node, parentNode, this.functionName);
}
});
}
}
exports.FunctionDeclarationObfuscator = FunctionDeclarationObfuscator;
//# sourceMappingURL=FunctionDeclarationObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"FunctionDeclarationObfuscator.js","sourceRoot":"","sources":["FunctionDeclarationObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAClD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAWvC,4CAAmD,+BAAc;IAAjE;QAAmD,eAAc;QAIrD,iBAAY,GAAyB,IAAI,GAAG,EAAoB,CAAC;IAyC7E,CAAC;IAnCU,aAAa,CAAE,uBAA4B,EAAE,UAAe;QAC/D,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAKO,mBAAmB,CAAE,uBAA4B;QACrD,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,EAAE;YAC3C,KAAK,EAAE,CAAC,IAAI;gBACR,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;oBAC7B,MAAM,CAAC;gBACX,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAKO,oBAAoB,CAAE,kBAAuB;QACjD,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AA7CY,qCAA6B,gCA6CzC,CAAA"}
@@ -1,36 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
const Utils_1 = require('../Utils');
let estraverse = require('estraverse');
class FunctionObfuscator extends NodeObfuscator_1.NodeObfuscator {
constructor(...args) {
super(...args);
this.functionParams = new Map();
}
obfuscateNode(functionNode) {
this.replaceFunctionParams(functionNode);
this.replaceFunctionParamsInBody(functionNode);
}
replaceFunctionParams(functionNode) {
functionNode.params.forEach((paramsNode) => {
estraverse.replace(paramsNode, {
leave: (node, parentNode) => {
if (node.type !== 'Identifier') {
return;
}
this.functionParams.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = this.functionParams.get(node.name);
}
});
});
}
replaceFunctionParamsInBody(functionNode) {
estraverse.replace(functionNode.body, {
leave: (node, parentNode) => {
this.replaceNodeIdentifierByNewValue(node, parentNode, this.functionParams);
}
});
}
}
exports.FunctionObfuscator = FunctionObfuscator;
//# sourceMappingURL=FunctionObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"FunctionObfuscator.js","sourceRoot":"","sources":["FunctionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAClD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAUvC,iCAAwC,+BAAc;IAAtD;QAAwC,eAAc;QAI1C,mBAAc,GAAyB,IAAI,GAAG,EAAoB,CAAC;IAsC/E,CAAC;IAjCU,aAAa,CAAE,YAAiB;QACnC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAKO,qBAAqB,CAAE,YAAiB;QAC5C,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU;YACnC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;oBACpB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC;wBAC9B,MAAM,CAAC;oBACV,CAAC;oBAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;oBAClE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnD,CAAC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,2BAA2B,CAAE,YAAiB;QAClD,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE;YAClC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAChF,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AA1CY,0BAAkB,qBA0C9B,CAAA"}
-23
View File
@@ -1,23 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
let escodegen = require('escodegen'), estraverse = require('estraverse');
class LiteralObfuscator extends NodeObfuscator_1.NodeObfuscator {
obfuscateNode(literalNode, parentNode) {
if (parentNode.type === 'Property' && parentNode.key === literalNode) {
return;
}
switch (typeof literalNode.value) {
case 'string':
if (literalNode['x-verbatim-property']) {
break;
}
literalNode['x-verbatim-property'] = {
content: this.replaceLiteralStringByArrayElement(literalNode.value),
precedence: escodegen.Precedence.Primary
};
break;
}
}
}
exports.LiteralObfuscator = LiteralObfuscator;
//# sourceMappingURL=LiteralObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"LiteralObfuscator.js","sourceRoot":"","sources":["LiteralObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAE/B,CAAC,CAFgD;AAEjD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,gCAAuC,+BAAc;IAK1C,aAAa,CAAE,WAAgB,EAAE,UAAe;QACnD,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC;YACnE,MAAM,CAAC;QACX,CAAC;QAED,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/B,KAAK,QAAQ;gBACT,EAAE,CAAC,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBACrC,KAAK,CAAC;gBACV,CAAC;gBAED,WAAW,CAAC,qBAAqB,CAAC,GAAG;oBACjC,OAAO,EAAG,IAAI,CAAC,kCAAkC,CAAC,WAAW,CAAC,KAAK,CAAC;oBACpE,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO;iBAC3C,CAAC;gBAEF,KAAK,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AAxBY,yBAAiB,oBAwB7B,CAAA"}
@@ -1,49 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
let escodegen = require('escodegen'), estraverse = require('estraverse');
class MemberExpressionObfuscator extends NodeObfuscator_1.NodeObfuscator {
obfuscateNode(memberExpressionNode) {
estraverse.replace(memberExpressionNode.property, {
leave: (node, parentNode) => {
switch (node.type) {
case 'Literal':
this.literalNodeController(node);
break;
case 'Identifier':
if (memberExpressionNode.computed) {
break;
}
memberExpressionNode.computed = true;
this.identifierNodeController(node);
break;
}
}
});
}
identifierNodeController(node) {
let nodeValue = node['name'];
node['type'] = 'Literal';
node['value'] = nodeValue;
node['raw'] = `'${nodeValue}'`;
node['x-verbatim-property'] = {
content: this.replaceLiteralStringByArrayElement(nodeValue),
precedence: escodegen['Precedence']['Primary']
};
delete node['name'];
}
literalNodeController(node) {
switch (typeof node.value) {
case 'string':
if (node['x-verbatim-property']) {
break;
}
node['x-verbatim-property'] = {
content: this.replaceLiteralStringByArrayElement(node.value),
precedence: escodegen['Precedence']['Primary']
};
break;
}
}
}
exports.MemberExpressionObfuscator = MemberExpressionObfuscator;
//# sourceMappingURL=MemberExpressionObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"MemberExpressionObfuscator.js","sourceRoot":"","sources":["MemberExpressionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAE/B,CAAC,CAFgD;AAEjD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,yCAAgD,+BAAc;IAInD,aAAa,CAAE,oBAAyB;QAC3C,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,QAAQ,EAAE;YAC9C,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,KAAK,SAAS;wBACV,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;wBAEjC,KAAK,CAAC;oBAEV,KAAK,YAAY;wBACb,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAChC,KAAK,CAAC;wBACV,CAAC;wBAED,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACrC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;wBAEpC,KAAK,CAAC;gBACd,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAcO,wBAAwB,CAAE,IAAS;QACvC,IAAI,SAAS,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,SAAS,GAAG,CAAC;QAC/B,IAAI,CAAC,qBAAqB,CAAC,GAAG;YAC1B,OAAO,EAAG,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC;YAC5D,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;SACjD,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAWO,qBAAqB,CAAE,IAAS;QACpC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxB,KAAK,QAAQ;gBACT,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBAC9B,KAAK,CAAC;gBACV,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,GAAG;oBAC1B,OAAO,EAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC7D,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;iBACjD,CAAC;gBAEF,KAAK,CAAC;QACd,CAAC;IACL,CAAC;AACL,CAAC;AA7EY,kCAA0B,6BA6EtC,CAAA"}
@@ -1,28 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
let estraverse = require('estraverse');
class MethodDefinitionObfuscator extends NodeObfuscator_1.NodeObfuscator {
constructor(...args) {
super(...args);
this.methodName = new Map();
this.ignoredNames = ['constructor'];
}
obfuscateNode(methodDefinitionNode, parentNode) {
this.replaceMethodName(methodDefinitionNode);
}
replaceMethodName(methodDefinitionNode) {
estraverse.replace(methodDefinitionNode.key, {
leave: (node) => {
if (node.type !== 'Identifier' ||
this.ignoredNames.indexOf(node.name) >= 0 ||
methodDefinitionNode.computed === true) {
return;
}
methodDefinitionNode.computed = true;
node.name = this.replaceLiteralStringByArrayElement(node.name);
}
});
}
}
exports.MethodDefinitionObfuscator = MethodDefinitionObfuscator;
//# sourceMappingURL=MethodDefinitionObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"MethodDefinitionObfuscator.js","sourceRoot":"","sources":["MethodDefinitionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAGlD,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAWvC,yCAAgD,+BAAc;IAA9D;QAAgD,eAAc;QAIlD,eAAU,GAAyB,IAAI,GAAG,EAAoB,CAAC;QAK/D,iBAAY,GAAa,CAAC,aAAa,CAAC,CAAC;IA6BrD,CAAC;IAvBU,aAAa,CAAE,oBAAyB,EAAE,UAAe;QAC5D,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAKO,iBAAiB,CAAE,oBAAyB;QAChD,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,EAAE;YACzC,KAAK,EAAE,CAAC,IAAI;gBACR,EAAE,CAAC,CACC,IAAI,CAAC,IAAI,KAAK,YAAY;oBAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;oBACzC,oBAAoB,CAAC,QAAQ,KAAK,IACtC,CAAC,CAAC,CAAC;oBACC,MAAM,CAAC;gBACX,CAAC;gBAED,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAtCY,kCAA0B,6BAsCtC,CAAA"}
-29
View File
@@ -1,29 +0,0 @@
"use strict";
const Utils_1 = require('../Utils');
class NodeObfuscator {
constructor(nodes) {
this.nodes = nodes;
}
replaceNodeIdentifierByNewValue(node, parentNode, namesMap) {
if (node.type === 'Identifier' && namesMap.has(node.name)) {
if ((parentNode.type === 'Property' && parentNode.key === node) ||
(parentNode.type === 'MemberExpression' && parentNode.computed === false && parentNode.property === node)) {
return;
}
node.name = namesMap.get(node.name);
}
}
replaceLiteralStringByArrayElement(nodeValue) {
let value = Utils_1.Utils.stringToUnicode(nodeValue), unicodeArray = this.nodes.get('unicodeArrayNode').getNodeData(), sameIndex = unicodeArray.indexOf(value), index;
if (sameIndex < 0) {
index = unicodeArray.length;
unicodeArray.push(Utils_1.Utils.stringToUnicode(nodeValue));
}
else {
index = sameIndex;
}
return `${this.nodes.get('unicodeArrayNode').getNodeIdentifier()}[${index}]`;
}
}
exports.NodeObfuscator = NodeObfuscator;
//# sourceMappingURL=NodeObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"NodeObfuscator.js","sourceRoot":"","sources":["NodeObfuscator.ts"],"names":[],"mappings":";AAIA,wBAAsB,UAAU,CAAC,CAAA;AAEjC;IASI,YAAY,KAA0B;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAaS,+BAA+B,CAAE,IAAS,EAAE,UAAe,EAAE,QAA8B;QACjG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxD,EAAE,CAAC,CACC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,CAAC;gBAC3D,CAAC,UAAU,CAAC,IAAI,KAAK,kBAAkB,IAAI,UAAU,CAAC,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,CAC5G,CAAC,CAAC,CAAC;gBACC,MAAM,CAAC;YACX,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAMS,kCAAkC,CAAE,SAAiB;QAC3D,IAAI,KAAK,GAAW,aAAK,CAAC,eAAe,CAAC,SAAS,CAAC,EAChD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,EAC/D,SAAS,GAAW,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAC/C,KAAa,CAAC;QAElB,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,aAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,KAAK,GAAG,SAAS,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,iBAAiB,EAAE,IAAI,KAAK,GAAG,CAAC;IACjF,CAAC;AACL,CAAC;AAxDqB,sBAAc,iBAwDnC,CAAA"}
@@ -1,48 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
const Utils_1 = require('../Utils');
let escodegen = require('escodegen'), estraverse = require('estraverse');
class ObjectExpressionObfuscator extends NodeObfuscator_1.NodeObfuscator {
obfuscateNode(objectExpressionNode) {
objectExpressionNode.properties.forEach((property) => {
estraverse.replace(property.key, {
leave: (node, parentNode) => {
switch (node.type) {
case 'Literal':
this.literalNodeController(node);
break;
case 'Identifier':
this.identifierNodeController(node);
break;
}
}
});
});
}
literalNodeController(node) {
switch (typeof node.value) {
case 'string':
if (node['x-verbatim-property']) {
break;
}
node['x-verbatim-property'] = {
content: Utils_1.Utils.stringToUnicode(node.value),
precedence: escodegen['Precedence']['Primary']
};
break;
}
}
identifierNodeController(node) {
let nodeValue = node['name'];
node['type'] = 'Literal';
node['value'] = nodeValue;
node['raw'] = `'${nodeValue}'`;
node['x-verbatim-property'] = {
content: Utils_1.Utils.stringToUnicode(nodeValue),
precedence: escodegen['Precedence']['Primary']
};
delete node['name'];
}
}
exports.ObjectExpressionObfuscator = ObjectExpressionObfuscator;
//# sourceMappingURL=ObjectExpressionObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"ObjectExpressionObfuscator.js","sourceRoot":"","sources":["ObjectExpressionObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAC/B,CAAC,CADgD;AACjD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAYvC,yCAAgD,+BAAc;IAInD,aAAa,CAAE,oBAAyB;QAC3C,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ;YAC7C,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;oBACpB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAChB,KAAK,SAAS;4BACV,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;4BAEjC,KAAK,CAAC;wBAEV,KAAK,YAAY;4BACb,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;4BAEpC,KAAK,CAAC;oBACd,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,qBAAqB,CAAE,IAAS;QACpC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxB,KAAK,QAAQ;gBACT,EAAE,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;oBAC9B,KAAK,CAAC;gBACV,CAAC;gBAED,IAAI,CAAC,qBAAqB,CAAC,GAAG;oBAC1B,OAAO,EAAG,aAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;iBACjD,CAAC;gBAEF,KAAK,CAAC;QACd,CAAC;IACL,CAAC;IAKO,wBAAwB,CAAE,IAAS;QACvC,IAAI,SAAS,GAAW,IAAI,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,SAAS,GAAG,CAAC;QAC/B,IAAI,CAAC,qBAAqB,CAAC,GAAG;YAC1B,OAAO,EAAG,aAAK,CAAC,eAAe,CAAC,SAAS,CAAC;YAC1C,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC;SACjD,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACL,CAAC;AA3DY,kCAA0B,6BA2DtC,CAAA"}
@@ -1,43 +0,0 @@
"use strict";
const NodeObfuscator_1 = require('./NodeObfuscator');
const Utils_1 = require('../Utils');
let estraverse = require('estraverse');
class VariableDeclarationObfuscator extends NodeObfuscator_1.NodeObfuscator {
constructor(...args) {
super(...args);
this.variableName = new Map();
}
obfuscateNode(variableDeclarationNode, parentNode) {
if (parentNode.type === 'Program') {
return;
}
this.replaceVariableName(variableDeclarationNode);
this.replaceVariableCalls(parentNode);
}
replaceVariableName(variableDeclarationNode) {
variableDeclarationNode.declarations.forEach((declarationNode) => {
estraverse.replace(declarationNode, {
leave: (node) => {
if (node.type !== 'VariableDeclarator') {
return;
}
estraverse.replace(node.id, {
leave: (node) => {
this.variableName.set(node.name, Utils_1.Utils.getRandomVariableName());
node.name = this.variableName.get(node.name);
}
});
}
});
});
}
replaceVariableCalls(variableParentNode) {
estraverse.replace(variableParentNode, {
leave: (node, parentNode) => {
this.replaceNodeIdentifierByNewValue(node, parentNode, this.variableName);
}
});
}
}
exports.VariableDeclarationObfuscator = VariableDeclarationObfuscator;
//# sourceMappingURL=VariableDeclarationObfuscator.js.map
@@ -1 +0,0 @@
{"version":3,"file":"VariableDeclarationObfuscator.js","sourceRoot":"","sources":["VariableDeclarationObfuscator.ts"],"names":[],"mappings":";AAAA,iCAA+B,kBAAkB,CAAC,CAAA;AAClD,wBAAsB,UAAU,CAAC,CAAA;AAEjC,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAYvC,4CAAmD,+BAAc;IAAjE;QAAmD,eAAc;QAIrD,iBAAY,GAAyB,IAAI,GAAG,EAAoB,CAAC;IA+C7E,CAAC;IAzCU,aAAa,CAAE,uBAA4B,EAAE,UAAe;QAC/D,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC;QACX,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAClD,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAKO,mBAAmB,CAAE,uBAA4B;QACrD,uBAAuB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,eAAe;YACzD,UAAU,CAAC,OAAO,CAAC,eAAe,EAAE;gBAChC,KAAK,EAAE,CAAC,IAAI;oBACR,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC;wBACrC,MAAM,CAAC;oBACX,CAAC;oBAED,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;wBACxB,KAAK,EAAE,CAAC,IAAI;4BACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,aAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC;4BAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACjD,CAAC;qBACJ,CAAC,CAAC;gBACP,CAAC;aACJ,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAKO,oBAAoB,CAAE,kBAAuB;QACjD,UAAU,CAAC,OAAO,CAAC,kBAAkB,EAAE;YACnC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU;gBACpB,IAAI,CAAC,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC9E,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAnDY,qCAA6B,gCAmDzC,CAAA"}
-21
View File
@@ -1,21 +0,0 @@
"use strict";
const AppendState_1 = require('../enums/AppendState');
class Node {
constructor() {
this.appendState = AppendState_1.AppendState.BeforeObfuscation;
}
getAppendState() {
return this.appendState;
}
getNode() {
return this.node;
}
setNode(node) {
this.node = node;
}
updateNode() {
this.node = this.getNodeStructure();
}
}
exports.Node = Node;
//# sourceMappingURL=Node.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"Node.js","sourceRoot":"","sources":["Node.ts"],"names":[],"mappings":";AAEA,8BAA4B,sBAAsB,CAAC,CAAA;AAEnD;IAWI;QAPU,gBAAW,GAAgB,yBAAW,CAAC,iBAAiB,CAAC;IAOnD,CAAC;IAOV,cAAc;QACjB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAKM,OAAO;QACV,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAKM,OAAO,CAAE,IAAS;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;AAML,CAAC;AA5CqB,YAAI,OA4CzB,CAAA"}
-70
View File
@@ -1,70 +0,0 @@
"use strict";
const Node_1 = require('./Node');
const Utils_1 = require('../Utils');
const AppendState_1 = require('../enums/AppendState');
let escodegen = require('escodegen'), estraverse = require('estraverse');
class UnicodeArrayNode extends Node_1.Node {
constructor(astTree, unicodeArrayName, unicodeArrayRotateValue = 0) {
super();
this.appendState = AppendState_1.AppendState.AfterObfuscation;
this.unicodeArray = [];
this.astTree = astTree;
this.unicodeArrayName = unicodeArrayName;
this.unicodeArrayRotateValue = unicodeArrayRotateValue;
this.node = this.getNodeStructure();
}
appendNode() {
estraverse.replace(this.astTree, {
leave: (node, parent) => {
switch (node.type) {
case 'Program':
node.body.unshift(this.getNode());
break;
}
}
});
}
getNodeIdentifier() {
return this.unicodeArrayName;
}
getNodeData() {
return this.unicodeArray;
}
getNode() {
Utils_1.Utils.arrayRotate(this.unicodeArray, this.unicodeArrayRotateValue);
this.updateNode();
return this.node;
}
getNodeStructure() {
return {
'type': 'VariableDeclaration',
'declarations': [
{
'type': 'VariableDeclarator',
'id': {
'type': 'Identifier',
'name': this.unicodeArrayName
},
'init': {
'type': 'ArrayExpression',
'elements': this.unicodeArray.map((value) => {
return {
'type': 'Literal',
'value': value,
'raw': `'${value}'`,
'x-verbatim-property': {
'content': value,
precedence: escodegen.Precedence.Primary
}
};
})
}
}
],
'kind': 'var'
};
}
}
UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH = 4;
exports.UnicodeArrayNode = UnicodeArrayNode;
//# sourceMappingURL=UnicodeArrayNode.js.map
-1
View File
@@ -1 +0,0 @@
{"version":3,"file":"UnicodeArrayNode.js","sourceRoot":"","sources":["UnicodeArrayNode.ts"],"names":[],"mappings":";AAAA,uBAAqB,QAAQ,CAAC,CAAA;AAC9B,wBAAsB,UAAU,CAAC,CAAA;AAEjC,8BAA4B,sBAAsB,CAAC,CAAA;AAEnD,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,EAChC,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,+BAAsC,WAAI;IAyCtC,YAAa,OAAY,EAAE,gBAAwB,EAAE,uBAAuB,GAAW,CAAC;QACpF,OAAO,CAAC;QAjCF,gBAAW,GAAgB,yBAAW,CAAC,gBAAgB,CAAC;QAU1D,iBAAY,GAAa,EAAE,CAAC;QAyBhC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAEM,UAAU;QACb,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM;gBAChB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,KAAK,SAAS;wBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAElC,KAAK,CAAC;gBACd,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAKM,iBAAiB;QACpB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAKM,WAAW;QACd,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAKM,OAAO;QACV,aAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAEnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAKS,gBAAgB;QACtB,MAAM,CAAC;YACH,MAAM,EAAE,qBAAqB;YAC7B,cAAc,EAAE;gBACZ;oBACI,MAAM,EAAE,oBAAoB;oBAC5B,IAAI,EAAE;wBACF,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,IAAI,CAAC,gBAAgB;qBAChC;oBACD,MAAM,EAAE;wBACJ,MAAM,EAAE,iBAAiB;wBACzB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK;4BACpC,MAAM,CAAC;gCACH,MAAM,EAAE,SAAS;gCACjB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,IAAI,KAAK,GAAG;gCACnB,qBAAqB,EAAE;oCACnB,SAAS,EAAG,KAAK;oCACjB,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,OAAO;iCAC3C;6BACJ,CAAC;wBACN,CAAC,CAAC;qBACL;iBACJ;aACJ;YACD,MAAM,EAAE,KAAK;SAChB,CAAC;IACN,CAAC;AACL,CAAC;AApHiB,4CAA2B,GAAW,CAAC,CAAC;AAJ7C,wBAAgB,mBAwH5B,CAAA"}
@@ -1,54 +0,0 @@
"use strict";
const Node_1 = require('./Node');
let estraverse = require('estraverse');
class UnicodeArrayRotateFunctionCallNode extends Node_1.Node {
constructor(astTree, unicodeArrayRotateFunctionName, unicodeArrayName, unicodeArrayRotateValue) {
super();
this.astTree = astTree;
this.unicodeArrayRotateFunctionName = unicodeArrayRotateFunctionName;
this.unicodeArrayName = unicodeArrayName;
this.unicodeArrayRotateValue = unicodeArrayRotateValue;
this.node = this.getNodeStructure();
}
appendNode() {
estraverse.replace(this.astTree, {
leave: (node, parent) => {
switch (node.type) {
case 'Program':
node.body.unshift(this.getNode());
break;
}
}
});
}
getNodeStructure() {
return {
'type': 'ExpressionStatement',
'expression': {
'type': 'CallExpression',
'callee': {
'type': 'Identifier',
'name': this.unicodeArrayRotateFunctionName
},
'arguments': [
{
'type': 'Identifier',
'name': this.unicodeArrayName
},
{
'type': 'Literal',
'value': this.unicodeArrayRotateValue,
'raw': `'${this.unicodeArrayRotateValue}'`
},
{
'type': 'Literal',
'value': true,
'raw': 'true'
}
]
}
};
}
}
exports.UnicodeArrayRotateFunctionCallNode = UnicodeArrayRotateFunctionCallNode;
//# sourceMappingURL=UnicodeArrayRotateFunctionCallNode.js.map
@@ -1 +0,0 @@
{"version":3,"file":"UnicodeArrayRotateFunctionCallNode.js","sourceRoot":"","sources":["UnicodeArrayRotateFunctionCallNode.ts"],"names":[],"mappings":";AAAA,uBAAqB,QAAQ,CAAC,CAAA;AAE9B,IAAI,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEvC,iDAAwD,WAAI;IAgCxD,YACI,OAAY,EACZ,8BAAsC,EACtC,gBAAwB,EACxB,uBAA+B;QAE/B,OAAO,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,8BAA8B,GAAG,8BAA8B,CAAC;QACrE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAEM,UAAU;QACb,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE;YAC7B,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM;gBAChB,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChB,KAAK,SAAS;wBACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;wBAElC,KAAK,CAAC;gBACd,CAAC;YACL,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAKS,gBAAgB;QACtB,MAAM,CAAC;YACH,MAAM,EAAE,qBAAqB;YAC7B,YAAY,EAAE;gBACV,MAAM,EAAE,gBAAgB;gBACxB,QAAQ,EAAE;oBACN,MAAM,EAAE,YAAY;oBACpB,MAAM,EAAE,IAAI,CAAC,8BAA8B;iBAC9C;gBACD,WAAW,EAAE;oBACT;wBACI,MAAM,EAAE,YAAY;wBACpB,MAAM,EAAE,IAAI,CAAC,gBAAgB;qBAChC;oBACD;wBACI,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,IAAI,CAAC,uBAAuB;wBACrC,KAAK,EAAE,IAAI,IAAI,CAAC,uBAAuB,GAAG;qBAC7C;oBACD;wBACI,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ;SACJ,CAAC;IACN,CAAC;AACL,CAAC;AA3FY,0CAAkC,qCA2F9C,CAAA"}
-269
View File
@@ -1,269 +0,0 @@
"use strict";
const Node_1 = require('./Node');
const Utils_1 = require('../Utils');
let estraverse = require('estraverse');
class UnicodeArrayRotateFunctionNode extends Node_1.Node {
constructor(astTree, unicodeArrayRotateFunctionName, unicodeArrayName) {
super();
this.astTree = astTree;
this.unicodeArrayRotateFunctionName = unicodeArrayRotateFunctionName;
this.unicodeArrayName = unicodeArrayName;
this.node = this.getNodeStructure();
}
appendNode() {
estraverse.replace(this.astTree, {
leave: (node, parent) => {
switch (node.type) {
case 'Program':
node.body.push(this.getNode());
break;
}
}
});
}
getNodeIdentifier() {
return this.unicodeArrayRotateFunctionName;
}
getNodeStructure() {
return {
'type': 'FunctionExpression',
'id': {
'type': 'Identifier',
'name': this.unicodeArrayRotateFunctionName
},
'params': [
{
'type': 'Identifier',
'name': 'array'
},
{
'type': 'Identifier',
'name': 'times'
},
{
'type': 'Identifier',
'name': 'reverse'
}
],
'defaults': [],
'body': {
'type': 'BlockStatement',
'body': [
{
'type': 'IfStatement',
'test': {
'type': 'BinaryExpression',
'operator': '<',
'left': {
'type': 'Identifier',
'name': 'times'
},
'right': {
'type': 'Literal',
'value': 0,
'raw': '0'
}
},
'consequent': {
'type': 'BlockStatement',
'body': [
{
'type': 'ReturnStatement',
'argument': null
}
]
},
'alternate': null
},
{
'type': 'ExpressionStatement',
'expression': {
'type': 'AssignmentExpression',
'operator': '=',
'left': {
'type': 'Identifier',
'name': 'reverse'
},
'right': {
'type': 'LogicalExpression',
'operator': '||',
'left': {
'type': 'Identifier',
'name': 'reverse'
},
'right': {
'type': 'Literal',
'value': false,
'raw': 'false'
}
}
}
},
{
'type': 'VariableDeclaration',
'declarations': [
{
'type': 'VariableDeclarator',
'id': {
'type': 'Identifier',
'name': 'temp'
},
'init': null
}
],
'kind': 'var'
},
{
'type': 'WhileStatement',
'test': {
'type': 'UpdateExpression',
'operator': '--',
'argument': {
'type': 'Identifier',
'name': 'times'
},
'prefix': false
},
'body': {
'type': 'BlockStatement',
'body': [
{
'type': 'IfStatement',
'test': {
'type': 'UnaryExpression',
'operator': '!',
'argument': {
'type': 'Identifier',
'name': 'reverse'
},
'prefix': true
},
'consequent': {
'type': 'BlockStatement',
'body': [
{
'type': 'ExpressionStatement',
'expression': {
'type': 'AssignmentExpression',
'operator': '=',
'left': {
'type': 'Identifier',
'name': 'temp'
},
'right': {
'type': 'CallExpression',
'callee': {
'type': 'MemberExpression',
'computed': true,
'object': {
'type': 'Identifier',
'name': 'array'
},
'property': {
'type': 'Literal',
'name': 'pop',
'x-verbatim-property': Utils_1.Utils.stringToUnicode('pop')
}
},
'arguments': []
}
}
},
{
'type': 'ExpressionStatement',
'expression': {
'type': 'CallExpression',
'callee': {
'type': 'MemberExpression',
'computed': true,
'object': {
'type': 'Identifier',
'name': 'array'
},
'property': {
'type': 'Literal',
'name': 'unshift',
'x-verbatim-property': Utils_1.Utils.stringToUnicode('unshift')
}
},
'arguments': [
{
'type': 'Identifier',
'name': 'temp'
}
]
}
}
]
},
'alternate': {
'type': 'BlockStatement',
'body': [
{
'type': 'ExpressionStatement',
'expression': {
'type': 'AssignmentExpression',
'operator': '=',
'left': {
'type': 'Identifier',
'name': 'temp'
},
'right': {
'type': 'CallExpression',
'callee': {
'type': 'MemberExpression',
'computed': true,
'object': {
'type': 'Identifier',
'name': 'array'
},
'property': {
'type': 'Literal',
'name': 'shift',
'x-verbatim-property': Utils_1.Utils.stringToUnicode('shift')
}
},
'arguments': []
}
}
},
{
'type': 'ExpressionStatement',
'expression': {
'type': 'CallExpression',
'callee': {
'type': 'MemberExpression',
'computed': true,
'object': {
'type': 'Identifier',
'name': 'array'
},
'property': {
'type': 'Literal',
'name': 'push',
'x-verbatim-property': Utils_1.Utils.stringToUnicode('push')
}
},
'arguments': [
{
'type': 'Identifier',
'name': 'temp'
}
]
}
}
]
}
}
]
}
}
]
},
'generator': false,
'expression': false
};
}
}
exports.UnicodeArrayRotateFunctionNode = UnicodeArrayRotateFunctionNode;
//# sourceMappingURL=UnicodeArrayRotateFunctionNode.js.map
@@ -1 +0,0 @@
{"version":3,"file":"UnicodeArrayRotateFunctionNode.js","sourceRoot":"","sources":["UnicodeArrayRotateFunctionNode.ts"],"names":[],"mappings":"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"}