mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
89 lines
2.8 KiB
TypeScript
89 lines
2.8 KiB
TypeScript
import { IOptions } from "../interfaces/IOptions";
|
|
|
|
import { NodesGroup } from './NodesGroup';
|
|
import { UnicodeArrayCallsWrapper } from "../custom-nodes/unicode-array-nodes/UnicodeArrayCallsWrapper";
|
|
import { UnicodeArrayDecodeNode } from "../custom-nodes/unicode-array-nodes/UnicodeArrayDecodeNode";
|
|
import { UnicodeArrayNode } from '../custom-nodes/unicode-array-nodes/UnicodeArrayNode';
|
|
import { UnicodeArrayRotateFunctionNode } from '../custom-nodes/unicode-array-nodes/UnicodeArrayRotateFunctionNode';
|
|
import { Utils } from '../Utils';
|
|
|
|
export class UnicodeArrayNodesGroup extends NodesGroup {
|
|
/**
|
|
* @type {string}
|
|
*/
|
|
private unicodeArrayName: string = Utils.getRandomVariableName(UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH);
|
|
|
|
/**
|
|
* @type {number}
|
|
*/
|
|
private unicodeArrayRotateValue: number;
|
|
|
|
/**
|
|
* @type {string}
|
|
*/
|
|
private unicodeArrayTranslatorName: string = Utils.getRandomVariableName(UnicodeArrayNode.UNICODE_ARRAY_RANDOM_LENGTH);
|
|
|
|
/**
|
|
* @param options
|
|
*/
|
|
constructor (options: IOptions) {
|
|
super(options);
|
|
|
|
if (this.options.get('rotateUnicodeArray')) {
|
|
this.unicodeArrayRotateValue = Utils.getRandomGenerator().integer({
|
|
min: 100,
|
|
max: 500
|
|
});
|
|
} else {
|
|
this.unicodeArrayRotateValue = 0;
|
|
}
|
|
|
|
let unicodeArrayNode: UnicodeArrayNode = new UnicodeArrayNode(
|
|
this.unicodeArrayName,
|
|
this.unicodeArrayRotateValue,
|
|
this.options
|
|
),
|
|
unicodeArray: string [] = unicodeArrayNode.getNodeData();
|
|
|
|
this.nodes.set(
|
|
'unicodeArrayNode',
|
|
unicodeArrayNode
|
|
);
|
|
|
|
if (this.options.get('wrapUnicodeArrayCalls')) {
|
|
this.nodes.set(
|
|
'unicodeArrayCallsWrapper',
|
|
new UnicodeArrayCallsWrapper(
|
|
this.unicodeArrayTranslatorName,
|
|
this.unicodeArrayName,
|
|
unicodeArray,
|
|
this.options
|
|
)
|
|
);
|
|
}
|
|
|
|
if (this.options.get('encodeUnicodeLiterals')) {
|
|
this.nodes.set(
|
|
'unicodeArrayDecodeNode',
|
|
new UnicodeArrayDecodeNode (
|
|
this.unicodeArrayName,
|
|
unicodeArray,
|
|
this.options
|
|
)
|
|
);
|
|
}
|
|
|
|
if (this.options.get('rotateUnicodeArray')) {
|
|
this.nodes.set(
|
|
'unicodeArrayRotateFunctionNode',
|
|
new UnicodeArrayRotateFunctionNode(
|
|
this.unicodeArrayName,
|
|
unicodeArray,
|
|
this.unicodeArrayRotateValue,
|
|
this.options
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|