WordPress.org

Make WordPress Core

Changeset 44356


Ignore:
Timestamp:
12/20/2018 09:02:16 PM (6 months 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.