Make WordPress Core

Changeset 44356


Ignore:
Timestamp:
12/20/2018 09:02:16 PM (8 years ago)
Author:
desrosj
Message:

External Libraries: zxcvbn library.

This reverts [44354] for more investigation into inconsistent password strength values that passed locally prior to commit.

Unprops omarreiss, netweb, desrosj.
See #43749.

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Gruntfile.js

    r44354 r44356  
    66        var path = require('path'),
    77                fs = require( 'fs' ),
    8                 rot = require( 'rot' );
    9                 esprima = require( 'esprima' );
    10                 estraverse = require( 'estraverse' );
    11                 escodegen = require( 'escodegen' );
    128                spawn = require( 'child_process' ).spawnSync,
    139                SOURCE_DIR = 'src/',
     
    685681                                        '!wp-admin/js/farbtastic.js',
    686682                                        '!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
    691684                                ]
    692685                        },
     
    10761069                        }
    10771070                },
    1078                 rot13: {
    1079                         zxcvbn: {
    1080                                 src: './node_modules/zxcvbn/dist/zxcvbn.js',
    1081                                 dest: 'build/wp-includes/js/zxcvbn.min.js'
    1082                         },
    1083                 },
    10841071                _watch: {
    10851072                        options: {
     
    13601347                'webpack:dev',
    13611348                'copy:js',
    1362                 'rot13:zxcvbn',
    13631349                'file_append',
    13641350                'uglify:all',
     
    13791365                'clean:all',
    13801366                'copy:all',
    1381                 'rot13:zxcvbn',
    13821367                'file_append',
    13831368                'cssmin:core',
     
    14521437        grunt.registerTask('default', ['build']);
    14531438
    1454         grunt.registerMultiTask('rot13', 'ROT-13 zxcvbn passwords for PG-ness.', function() {
    1455                 this.files.forEach(function(f) {
    1456                         // Build AST from source code
    1457                         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 string
    1463                                         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: 13
    1488                                                         }]
    1489                                                 };
    1490                                                 node.value = value;
    1491                                                 return node;
    1492                                         }
    1493                                 }
    1494                         });
    1495 
    1496                         // ROT-13 decode function
    1497                         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 AST
    1500                         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 
    15071439        /*
    15081440         * Automatically updates the `:dynamic` configurations
  • trunk/package-lock.json

    r44354 r44356  
    44294429                        }
    44304430                },
    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                 },
    44364431                "deepmerge": {
    44374432                        "version": "1.5.2",
     
    49944989                        "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
    49954990                },
    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": true
    5018                                 }
    5019                         }
    5020                 },
    50214991                "eslint-scope": {
    50224992                        "version": "4.0.0",
     
    50305000                },
    50315001                "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
    50355006                },
    50365007                "esrecurse": {
     
    50465017                        "version": "4.2.0",
    50475018                        "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
    5048                         "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
     5019                        "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
     5020                        "dev": true
    50495021                },
    50505022                "esutils": {
     
    54125384                        "dev": true
    54135385                },
    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                 },
    54195386                "faye-websocket": {
    54205387                        "version": "0.10.0",
     
    71137080                        "requires": {
    71147081                                "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": true
    7122                                 }
    71237082                        }
    71247083                },
     
    93169275                        }
    93179276                },
    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                 },
    93279277                "line-height": {
    93289278                        "version": "0.3.1",
     
    1120011150                        }
    1120111151                },
    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                 },
    1122211152                "optipng-bin": {
    1122311153                        "version": "3.1.4",
     
    1221612146                                }
    1221712147                        }
    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="
    1222312148                },
    1222412149                "prepend-http": {
     
    1331813243                        }
    1331913244                },
    13320                 "rot": {
    13321                         "version": "0.1.0",
    13322                         "resolved": "https://registry.npmjs.org/rot/-/rot-0.1.0.tgz",
    13323                         "integrity": "sha1-rPQEhNIAhC6LxIRDgmFuSGNdSN4="
    13324                 },
    1332513245                "rtlcss": {
    1332613246                        "version": "2.2.1",
     
    1538315303                        "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-11.0.0.tgz",
    1538415304                        "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                         }
    1539315305                },
    1539415306                "type-is": {
     
    1687416786                                "readable-stream": "^2.0.0"
    1687516787                        }
    16876                 },
    16877                 "zxcvbn": {
    16878                         "version": "4.4.2",
    16879                         "resolved": "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz",
    16880                         "integrity": "sha1-KOwXzwl0PtyrBW3dixsGJizHPDA="
    1688116788                }
    1688216789        }
  • trunk/package.json

    r44354 r44356  
    9595                "backbone": "1.3.3",
    9696                "element-closest": "^2.0.2",
    97                 "escodegen": "1.10.0",
    98                 "esprima": "4.0.0",
    99                 "estraverse": "4.2.0",
    10097                "formdata-polyfill": "^3.0.12",
    10198                "imagesloaded": "3.2.0",
     
    111108                "react": "^16.6.3",
    112109                "react-dom": "^16.6.3",
    113                 "rot": "0.1.0",
    114110                "twemoji": "11.0.0",
    115111                "underscore": "1.8.3",
    116                 "zxcvbn": "4.4.2",
    117112                "whatwg-fetch": "^3.0.0"
    118113        },
Note: See TracChangeset for help on using the changeset viewer.