mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
Dependencies update. Added tests for property identifier names cache.
This commit is contained in:
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+3
-3
@@ -24,7 +24,7 @@
|
||||
"@javascript-obfuscator/escodegen": "2.2.0",
|
||||
"@javascript-obfuscator/estraverse": "5.3.0",
|
||||
"@nuxtjs/opencollective": "0.3.2",
|
||||
"acorn": "8.2.4",
|
||||
"acorn": "8.3.0",
|
||||
"assert": "2.0.0",
|
||||
"chalk": "4.1.1",
|
||||
"chance": "1.1.7",
|
||||
@@ -68,8 +68,8 @@
|
||||
"chai-exclude": "2.0.3",
|
||||
"cross-env": "7.0.3",
|
||||
"eslint": "7.27.0",
|
||||
"eslint-plugin-import": "2.23.3",
|
||||
"eslint-plugin-jsdoc": "35.0.0",
|
||||
"eslint-plugin-import": "2.23.4",
|
||||
"eslint-plugin-jsdoc": "35.1.0",
|
||||
"eslint-plugin-no-null": "1.0.2",
|
||||
"eslint-plugin-prefer-arrow": "1.2.3",
|
||||
"eslint-plugin-unicorn": "32.0.1",
|
||||
|
||||
+117
@@ -407,5 +407,122 @@ describe('RenamePropertiesTransformer', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Property identifier names from property identifier names cache', () => {
|
||||
describe('Variant #1: no property identifier names in the cache', () => {
|
||||
const property1RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x1/;
|
||||
const property2RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x2/;
|
||||
const property3RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x3/;
|
||||
|
||||
let obfuscatedCode: string;
|
||||
|
||||
before(() => {
|
||||
const code: string = readFileAsString(__dirname + '/fixtures/property-identifier-names-cache.js');
|
||||
|
||||
obfuscatedCode = JavaScriptObfuscator.obfuscate(
|
||||
code,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
renameProperties: true,
|
||||
identifierNamesCache: {
|
||||
globalIdentifiers: {},
|
||||
propertyIdentifiers: {}
|
||||
}
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
});
|
||||
|
||||
it('Match #1: should rename property', () => {
|
||||
assert.match(obfuscatedCode, property1RegExp);
|
||||
});
|
||||
|
||||
it('Match #2: should rename property', () => {
|
||||
assert.match(obfuscatedCode, property2RegExp);
|
||||
});
|
||||
|
||||
it('Match #3: should rename property', () => {
|
||||
assert.match(obfuscatedCode, property3RegExp);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Variant #2: existing property identifier names in the cache', () => {
|
||||
const property1RegExp: RegExp = /'bar_from_cache': *0x1/;
|
||||
const property2RegExp: RegExp = /'baz_from_cache': *0x2/;
|
||||
const property3RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x3/;
|
||||
|
||||
let obfuscatedCode: string;
|
||||
|
||||
before(() => {
|
||||
const code: string = readFileAsString(__dirname + '/fixtures/property-identifier-names-cache.js');
|
||||
|
||||
obfuscatedCode = JavaScriptObfuscator.obfuscate(
|
||||
code,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
renameProperties: true,
|
||||
identifierNamesCache: {
|
||||
globalIdentifiers: {},
|
||||
propertyIdentifiers: {
|
||||
bar: 'bar_from_cache',
|
||||
baz: 'baz_from_cache'
|
||||
}
|
||||
}
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
});
|
||||
|
||||
it('Match #1: should rename property based on the cache value', () => {
|
||||
assert.match(obfuscatedCode, property1RegExp);
|
||||
});
|
||||
|
||||
it('Match #2: should rename property based on the cache value', () => {
|
||||
assert.match(obfuscatedCode, property2RegExp);
|
||||
});
|
||||
|
||||
it('Match #3: should rename property', () => {
|
||||
assert.match(obfuscatedCode, property3RegExp);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Variant #3: existing property identifier names in the cache, reserved name is defined', () => {
|
||||
const property1RegExp: RegExp = /'bar_from_cache': *0x1/;
|
||||
const property2RegExp: RegExp = /'baz': *0x2/;
|
||||
const property3RegExp: RegExp = /'(_0x[a-f0-9]{4,6})': *0x3/;
|
||||
|
||||
let obfuscatedCode: string;
|
||||
|
||||
before(() => {
|
||||
const code: string = readFileAsString(__dirname + '/fixtures/property-identifier-names-cache.js');
|
||||
|
||||
obfuscatedCode = JavaScriptObfuscator.obfuscate(
|
||||
code,
|
||||
{
|
||||
...NO_ADDITIONAL_NODES_PRESET,
|
||||
renameProperties: true,
|
||||
identifierNamesCache: {
|
||||
globalIdentifiers: {},
|
||||
propertyIdentifiers: {
|
||||
bar: 'bar_from_cache',
|
||||
baz: 'baz_from_cache'
|
||||
}
|
||||
},
|
||||
reservedNames: ['^baz$']
|
||||
}
|
||||
).getObfuscatedCode();
|
||||
});
|
||||
|
||||
it('Match #1: should rename property based on the cache value', () => {
|
||||
assert.match(obfuscatedCode, property1RegExp);
|
||||
});
|
||||
|
||||
it('Match #2: should keep original property name', () => {
|
||||
assert.match(obfuscatedCode, property2RegExp);
|
||||
});
|
||||
|
||||
it('Match #3: should rename property', () => {
|
||||
assert.match(obfuscatedCode, property3RegExp);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
const foo = {
|
||||
bar: 1,
|
||||
baz: 2,
|
||||
bark: 3
|
||||
};
|
||||
@@ -405,14 +405,14 @@
|
||||
resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz"
|
||||
integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==
|
||||
|
||||
"@es-joy/jsdoccomment@^0.7.2":
|
||||
version "0.7.2"
|
||||
resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.7.2.tgz#5c0802982b28e7dcd381fbb1f52e6fd088525a31"
|
||||
integrity sha512-i5p0VgxeCXbf5aPLPY9s9Fz6K5BkzYdbRCisw/vEY/FXAxUJ8SiAifPwkFUm0CJrmZ8tFBGW8bUtM7wiE4KTIA==
|
||||
"@es-joy/jsdoccomment@^0.8.0-alpha.2":
|
||||
version "0.8.0-alpha.2"
|
||||
resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.8.0-alpha.2.tgz#78585147d8e6231270374dae528fe5b7b5587b5a"
|
||||
integrity sha512-fjRY13Bh8sxDZkzO27U2R9L6xFqkh5fAbHuMGvGLXLfrTes8nTTMyOi6wIPt+CG0XPAxEUge8cDjhG+0aag6ew==
|
||||
dependencies:
|
||||
comment-parser "^1.1.5"
|
||||
esquery "^1.4.0"
|
||||
jsdoctypeparser "^9.0.0"
|
||||
jsdoc-type-pratt-parser "1.0.0-alpha.23"
|
||||
|
||||
"@eslint/eslintrc@^0.4.1":
|
||||
version "0.4.1"
|
||||
@@ -961,10 +961,10 @@ acorn-jsx@^5.3.1:
|
||||
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz"
|
||||
integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
|
||||
|
||||
acorn@8.2.4:
|
||||
version "8.2.4"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.2.4.tgz#caba24b08185c3b56e3168e97d15ed17f4d31fd0"
|
||||
integrity sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==
|
||||
acorn@8.3.0:
|
||||
version "8.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88"
|
||||
integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==
|
||||
|
||||
acorn@^7.4.0:
|
||||
version "7.4.0"
|
||||
@@ -1855,10 +1855,10 @@ eslint-module-utils@^2.6.1:
|
||||
debug "^3.2.7"
|
||||
pkg-dir "^2.0.0"
|
||||
|
||||
eslint-plugin-import@2.23.3:
|
||||
version "2.23.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.3.tgz#8a1b073289fff03c4af0f04b6df956b7d463e191"
|
||||
integrity sha512-wDxdYbSB55F7T5CC7ucDjY641VvKmlRwT0Vxh7PkY1mI4rclVRFWYfsrjDgZvwYYDZ5ee0ZtfFKXowWjqvEoRQ==
|
||||
eslint-plugin-import@2.23.4:
|
||||
version "2.23.4"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97"
|
||||
integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==
|
||||
dependencies:
|
||||
array-includes "^3.1.3"
|
||||
array.prototype.flat "^1.2.4"
|
||||
@@ -1876,18 +1876,18 @@ eslint-plugin-import@2.23.3:
|
||||
resolve "^1.20.0"
|
||||
tsconfig-paths "^3.9.0"
|
||||
|
||||
eslint-plugin-jsdoc@35.0.0:
|
||||
version "35.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-35.0.0.tgz#12634f12d1882a4f77b49aba2c4a17a7bc88cfcd"
|
||||
integrity sha512-n92EO6g84qzjF4Lyvg+hDouMQTRHCKvW0hRobGRza0aqbG9fmmlS4p1x8cvPPAc0P87TmahMZnrP0F7hPOcAoQ==
|
||||
eslint-plugin-jsdoc@35.1.0:
|
||||
version "35.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-35.1.0.tgz#7a28bd53b2dfec2ab0e6eb8ee59dfabf40449f04"
|
||||
integrity sha512-XfLaI9kzXW1mihqmeTWH+fn5Zw+sbX48Jcmwp9dftwqegj6yT/3FNnuIxmM5VyLX3AdoBNDc8p4fje7/ZxVQyg==
|
||||
dependencies:
|
||||
"@es-joy/jsdoccomment" "^0.7.2"
|
||||
"@es-joy/jsdoccomment" "^0.8.0-alpha.2"
|
||||
comment-parser "1.1.5"
|
||||
debug "^4.3.1"
|
||||
esquery "^1.4.0"
|
||||
jsdoctypeparser "^9.0.0"
|
||||
jsdoc-type-pratt-parser "^1.0.0"
|
||||
lodash "^4.17.21"
|
||||
regextras "^0.7.1"
|
||||
regextras "^0.8.0"
|
||||
semver "^7.3.5"
|
||||
spdx-expression-parse "^3.0.1"
|
||||
|
||||
@@ -2871,10 +2871,15 @@ js-yaml@^3.13.1:
|
||||
argparse "^1.0.7"
|
||||
esprima "^4.0.0"
|
||||
|
||||
jsdoctypeparser@^9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz"
|
||||
integrity sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==
|
||||
jsdoc-type-pratt-parser@1.0.0-alpha.23:
|
||||
version "1.0.0-alpha.23"
|
||||
resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.0.0-alpha.23.tgz#01c232d92b99b7e7ef52235ab8c9115137426639"
|
||||
integrity sha512-COtimMd97eo5W0h6R9ISFj9ufg/9EiAzVAeQpKBJ1xJs/x8znWE155HGBDR2rwOuZsCes1gBXGmFVfvRZxGrhg==
|
||||
|
||||
jsdoc-type-pratt-parser@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.0.1.tgz#7926c40b17f41a95c8cd2dad52169b2209eb198b"
|
||||
integrity sha512-+bq+6jEywRhrF06tCvjV0ew0XdFsaWTcmfpLE+42KbU6imm0TwoJrWclDVoo/8iGf0bO4SibYJLsduMWRD18kA==
|
||||
|
||||
jsesc@^2.5.1:
|
||||
version "2.5.2"
|
||||
@@ -3774,10 +3779,10 @@ regexpp@^3.1.0:
|
||||
resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz"
|
||||
integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
|
||||
|
||||
regextras@^0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz"
|
||||
integrity sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==
|
||||
regextras@^0.8.0:
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.8.0.tgz#ec0f99853d4912839321172f608b544814b02217"
|
||||
integrity sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==
|
||||
|
||||
release-zalgo@^1.0.0:
|
||||
version "1.0.0"
|
||||
|
||||
Reference in New Issue
Block a user