Changeset 44356
- Timestamp:
- 12/20/2018 09:02:16 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Gruntfile.js
r44354 r44356 6 6 var path = require('path'), 7 7 fs = require( 'fs' ), 8 rot = require( 'rot' );9 esprima = require( 'esprima' );10 estraverse = require( 'estraverse' );11 escodegen = require( 'escodegen' );12 8 spawn = require( 'child_process' ).spawnSync, 13 9 SOURCE_DIR = 'src/', … … 685 681 '!wp-admin/js/farbtastic.js', 686 682 '!wp-includes/js/swfobject.js', 687 '!wp-includes/js/wp-embed.js', // We have extra options for this, see uglify:embed 688 689 // .min files that still need to be minified. 690 'wp-includes/js/zxcvbn.min.js' 683 '!wp-includes/js/wp-embed.js' // We have extra options for this, see uglify:embed 691 684 ] 692 685 }, … … 1076 1069 } 1077 1070 }, 1078 rot13: {1079 zxcvbn: {1080 src: './node_modules/zxcvbn/dist/zxcvbn.js',1081 dest: 'build/wp-includes/js/zxcvbn.min.js'1082 },1083 },1084 1071 _watch: { 1085 1072 options: { … … 1360 1347 'webpack:dev', 1361 1348 'copy:js', 1362 'rot13:zxcvbn',1363 1349 'file_append', 1364 1350 'uglify:all', … … 1379 1365 'clean:all', 1380 1366 'copy:all', 1381 'rot13:zxcvbn',1382 1367 'file_append', 1383 1368 'cssmin:core', … … 1452 1437 grunt.registerTask('default', ['build']); 1453 1438 1454 grunt.registerMultiTask('rot13', 'ROT-13 zxcvbn passwords for PG-ness.', function() {1455 this.files.forEach(function(f) {1456 // Build AST from source code1457 var code = grunt.file.read(f.src);1458 var ast = esprima.parse(code);1459 1460 ast = estraverse.replace(ast, {1461 enter: function(node) {1462 // Filter string1463 let key_names = [1464 'passwords',1465 'english_wikipedia',1466 'female_names',1467 'surnames',1468 'us_tv_and_film',1469 'male_names'1470 ];1471 1472 if( node.type === 'Property' && key_names.includes( node.key.name ) ) {1473 // Wrap encrypted string with decrypt function.1474 var value = {1475 type: 'CallExpression',1476 callee: {1477 type: 'Identifier',1478 name: 'rot'1479 },1480 arguments: [{1481 type: 'Literal',1482 value: rot(node.value.callee.object.value, 13),1483 raw: rot(node.value.callee.object.raw, 13)1484 }, {1485 type: 'Literal',1486 value: 13,1487 raw: 131488 }]1489 };1490 node.value = value;1491 return node;1492 }1493 }1494 });1495 1496 // ROT-13 decode function1497 var prependCode = 'var lowercase="abcdefghijklmnopqrstuvwxyz",uppercase="ABCDEFGHIJKLMNOPQRSTUVWXYZ",regexLowercase=/[a-z]/,regexUppercase=/[A-Z]/,rot=function(e,r){if(null==r&&(r=13),r=Number(r),e=String(e),0==r)return e;0>r&&(r+=26);for(var a,c,t,s=e.length,p=-1,n="";++p<s;)a=e.charAt(p),regexLowercase.test(a)?(c=lowercase.indexOf(a),t=(c+r)%26,n+=lowercase.charAt(t)):regexUppercase.test(a)?(c=uppercase.indexOf(a),t=(c+r)%26,n+=uppercase.charAt(t)):n+=a;return n};\n';1498 1499 // Generate new file from modified AST1500 var modifiedCode = prependCode + escodegen.generate(ast);1501 grunt.file.write(f.dest, modifiedCode);1502 1503 grunt.log.writeln('File "' + f.dest + '" encrypted.');1504 });1505 });1506 1507 1439 /* 1508 1440 * Automatically updates the `:dynamic` configurations -
trunk/package-lock.json
r44354 r44356 4429 4429 } 4430 4430 }, 4431 "deep-is": {4432 "version": "0.1.3",4433 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",4434 "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="4435 },4436 4431 "deepmerge": { 4437 4432 "version": "1.5.2", … … 4994 4989 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 4995 4990 }, 4996 "escodegen": {4997 "version": "1.10.0",4998 "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz",4999 "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==",5000 "requires": {5001 "esprima": "^3.1.3",5002 "estraverse": "^4.2.0",5003 "esutils": "^2.0.2",5004 "optionator": "^0.8.1",5005 "source-map": "~0.6.1"5006 },5007 "dependencies": {5008 "esprima": {5009 "version": "3.1.3",5010 "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",5011 "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="5012 },5013 "source-map": {5014 "version": "0.6.1",5015 "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",5016 "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",5017 "optional": true5018 }5019 }5020 },5021 4991 "eslint-scope": { 5022 4992 "version": "4.0.0", … … 5030 5000 }, 5031 5001 "esprima": { 5032 "version": "4.0.0", 5033 "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", 5034 "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" 5002 "version": "1.0.4", 5003 "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", 5004 "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", 5005 "dev": true 5035 5006 }, 5036 5007 "esrecurse": { … … 5046 5017 "version": "4.2.0", 5047 5018 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 5048 "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" 5019 "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 5020 "dev": true 5049 5021 }, 5050 5022 "esutils": { … … 5412 5384 "dev": true 5413 5385 }, 5414 "fast-levenshtein": {5415 "version": "2.0.6",5416 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",5417 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="5418 },5419 5386 "faye-websocket": { 5420 5387 "version": "0.10.0", … … 7113 7080 "requires": { 7114 7081 "esprima": "~1.0.0" 7115 },7116 "dependencies": {7117 "esprima": {7118 "version": "1.0.4",7119 "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",7120 "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",7121 "dev": true7122 }7123 7082 } 7124 7083 }, … … 9316 9275 } 9317 9276 }, 9318 "levn": {9319 "version": "0.3.0",9320 "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",9321 "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",9322 "requires": {9323 "prelude-ls": "~1.1.2",9324 "type-check": "~0.3.2"9325 }9326 },9327 9277 "line-height": { 9328 9278 "version": "0.3.1", … … 11200 11150 } 11201 11151 }, 11202 "optionator": {11203 "version": "0.8.2",11204 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",11205 "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",11206 "requires": {11207 "deep-is": "~0.1.3",11208 "fast-levenshtein": "~2.0.4",11209 "levn": "~0.3.0",11210 "prelude-ls": "~1.1.2",11211 "type-check": "~0.3.2",11212 "wordwrap": "~1.0.0"11213 },11214 "dependencies": {11215 "wordwrap": {11216 "version": "1.0.0",11217 "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",11218 "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="11219 }11220 }11221 },11222 11152 "optipng-bin": { 11223 11153 "version": "3.1.4", … … 12216 12146 } 12217 12147 } 12218 },12219 "prelude-ls": {12220 "version": "1.1.2",12221 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",12222 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="12223 12148 }, 12224 12149 "prepend-http": { … … 13318 13243 } 13319 13244 }, 13320 "rot": {13321 "version": "0.1.0",13322 "resolved": "https://registry.npmjs.org/rot/-/rot-0.1.0.tgz",13323 "integrity": "sha1-rPQEhNIAhC6LxIRDgmFuSGNdSN4="13324 },13325 13245 "rtlcss": { 13326 13246 "version": "2.2.1", … … 15383 15303 "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-11.0.0.tgz", 15384 15304 "integrity": "sha1-fuxX0Sv9H//o1efwXaC2QipgeQ8=" 15385 },15386 "type-check": {15387 "version": "0.3.2",15388 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",15389 "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",15390 "requires": {15391 "prelude-ls": "~1.1.2"15392 }15393 15305 }, 15394 15306 "type-is": { … … 16874 16786 "readable-stream": "^2.0.0" 16875 16787 } 16876 },16877 "zxcvbn": {16878 "version": "4.4.2",16879 "resolved": "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz",16880 "integrity": "sha1-KOwXzwl0PtyrBW3dixsGJizHPDA="16881 16788 } 16882 16789 } -
trunk/package.json
r44354 r44356 95 95 "backbone": "1.3.3", 96 96 "element-closest": "^2.0.2", 97 "escodegen": "1.10.0",98 "esprima": "4.0.0",99 "estraverse": "4.2.0",100 97 "formdata-polyfill": "^3.0.12", 101 98 "imagesloaded": "3.2.0", … … 111 108 "react": "^16.6.3", 112 109 "react-dom": "^16.6.3", 113 "rot": "0.1.0",114 110 "twemoji": "11.0.0", 115 111 "underscore": "1.8.3", 116 "zxcvbn": "4.4.2",117 112 "whatwg-fetch": "^3.0.0" 118 113 },
Note: See TracChangeset
for help on using the changeset viewer.