UNPKG

wifi-setup

Version:

WiFi AP setup, particularly useful for IoT devices

76 lines (74 loc) 9.21 kB
"use strict"; var fs = require('fs'); var Utils = (function () { function Utils() { } // NOTE: this is not cryptographically secure. Only use this for very unimportant passwords /* requirements = {lowercase: true, uppercase: true, numbers: true, symbols: true} */ /* specialLists = {lowercase: "??", uppercase: "??", numbers: "??", symbols: "??"} */ Utils.generatePassword = function (length, requirements, specialLists) { var lowercase = 'abcdefghijklmnopqrstuvwxyz'; var uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var numbers = '0123456789'; var symbols = '!@#$%^&*()-_+=,<.>/?|`~'; if (specialLists) { if (specialLists.lowercase) { lowercase = specialLists.lowercase; } if (specialLists.uppercase) { uppercase = specialLists.uppercase; } if (specialLists.numbers) { numbers = specialLists.numbers; } if (specialLists.symbols) { symbols = specialLists.symbols; } } if (!requirements) { requirements = {}; } if (!requirements.lowercase) { requirements.lowercase = true; } if (!requirements.uppercase) { requirements.uppercase = true; } if (!requirements.numbers) { requirements.numbers = true; } if (!requirements.symbols) { requirements.symbols = true; } if (!length) { length = 24; } var characters = ((requirements.lowercase) ? lowercase : '') + ((requirements.uppercase) ? uppercase : '') + ((requirements.numbers) ? numbers : '') + ((requirements.symbols) ? symbols : ''); var password = ''; for (var i = 0; i < length; i++) { password += characters[Math.floor(Math.random() * characters.length)]; } return password; }; ; Utils.backupFile = function (path, modifier) { if (!modifier) { modifier = function (path) { return path += '.back'; }; } try { var file = fs.readFileSync(path); fs.writeFileSync(modifier(path), file); } catch (err) { } }; ; Utils.replaceAll = function (input, find, replace) { return input.replace(new RegExp(find, 'g'), replace); }; return Utils; }()); exports.Utils = Utils; ; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZHVsZXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQVksRUFBRSxXQUFNLElBQUksQ0FBQyxDQUFBO0FBRXpCO0lBQUE7SUFrRUEsQ0FBQztJQWpFRywyRkFBMkY7SUFDM0YscUZBQXFGO0lBQ3JGLHFGQUFxRjtJQUM5RSxzQkFBZ0IsR0FBdkIsVUFBeUIsTUFBTyxFQUFFLFlBQWEsRUFBRSxZQUFhO1FBQzFELElBQUksU0FBUyxHQUFHLDRCQUE0QixDQUFDO1FBQzdDLElBQUksU0FBUyxHQUFHLDRCQUE0QixDQUFDO1FBQzdDLElBQUksT0FBTyxHQUFHLFlBQVksQ0FBQztRQUMzQixJQUFJLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQztRQUN4QyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2YsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDekIsU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDdkMsQ0FBQztZQUNELEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxDQUFDO1lBQ0QsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1lBQ25DLENBQUM7UUFDTCxDQUFDO1FBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUIsWUFBWSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDeEIsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDeEIsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNWLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9MLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlCLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUVELE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDcEIsQ0FBQzs7SUFDTSxnQkFBVSxHQUFqQixVQUFtQixJQUFJLEVBQUUsUUFBUztRQUM5QixFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDWixRQUFRLEdBQUcsVUFBQyxJQUFJO2dCQUNaLE1BQU0sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO1lBQzNCLENBQUMsQ0FBQztRQUNOLENBQUM7UUFFRCxJQUFJLENBQUM7WUFDRCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUU7UUFBQSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztJQUNwQixDQUFDOztJQUNNLGdCQUFVLEdBQWpCLFVBQW1CLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTztRQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNMLFlBQUM7QUFBRCxDQWxFQSxBQWtFQyxJQUFBO0FBbEVZLGFBQUssUUFrRWpCLENBQUE7QUFBQSxDQUFDIiwiZmlsZSI6Im1vZHVsZXMvdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyB7XG4gICAgLy8gTk9URTogdGhpcyBpcyBub3QgY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlLiBPbmx5IHVzZSB0aGlzIGZvciB2ZXJ5IHVuaW1wb3J0YW50IHBhc3N3b3Jkc1xuICAgIC8qIHJlcXVpcmVtZW50cyA9IHtsb3dlcmNhc2U6IHRydWUsIHVwcGVyY2FzZTogdHJ1ZSwgbnVtYmVyczogdHJ1ZSwgc3ltYm9sczogdHJ1ZX0gKi9cbiAgICAvKiBzcGVjaWFsTGlzdHMgPSB7bG93ZXJjYXNlOiBcIj8/XCIsIHVwcGVyY2FzZTogXCI/P1wiLCBudW1iZXJzOiBcIj8/XCIsIHN5bWJvbHM6IFwiPz9cIn0gKi9cbiAgICBzdGF0aWMgZ2VuZXJhdGVQYXNzd29yZCAobGVuZ3RoPywgcmVxdWlyZW1lbnRzPywgc3BlY2lhbExpc3RzPykge1xuICAgICAgICB2YXIgbG93ZXJjYXNlID0gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JztcbiAgICAgICAgdmFyIHVwcGVyY2FzZSA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7XG4gICAgICAgIHZhciBudW1iZXJzID0gJzAxMjM0NTY3ODknO1xuICAgICAgICB2YXIgc3ltYm9scyA9ICchQCMkJV4mKigpLV8rPSw8Lj4vP3xgfic7XG4gICAgICAgIGlmIChzcGVjaWFsTGlzdHMpIHtcbiAgICAgICAgICAgIGlmIChzcGVjaWFsTGlzdHMubG93ZXJjYXNlKSB7XG4gICAgICAgICAgICAgICAgbG93ZXJjYXNlID0gc3BlY2lhbExpc3RzLmxvd2VyY2FzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzcGVjaWFsTGlzdHMudXBwZXJjYXNlKSB7XG4gICAgICAgICAgICAgICAgdXBwZXJjYXNlID0gc3BlY2lhbExpc3RzLnVwcGVyY2FzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzcGVjaWFsTGlzdHMubnVtYmVycykge1xuICAgICAgICAgICAgICAgIG51bWJlcnMgPSBzcGVjaWFsTGlzdHMubnVtYmVycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzcGVjaWFsTGlzdHMuc3ltYm9scykge1xuICAgICAgICAgICAgICAgIHN5bWJvbHMgPSBzcGVjaWFsTGlzdHMuc3ltYm9scztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVxdWlyZW1lbnRzKSB7XG4gICAgICAgICAgICByZXF1aXJlbWVudHMgPSB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlcXVpcmVtZW50cy5sb3dlcmNhc2UpIHtcbiAgICAgICAgICAgIHJlcXVpcmVtZW50cy5sb3dlcmNhc2UgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVxdWlyZW1lbnRzLnVwcGVyY2FzZSkge1xuICAgICAgICAgICAgcmVxdWlyZW1lbnRzLnVwcGVyY2FzZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZXF1aXJlbWVudHMubnVtYmVycykge1xuICAgICAgICAgICAgcmVxdWlyZW1lbnRzLm51bWJlcnMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcmVxdWlyZW1lbnRzLnN5bWJvbHMpIHtcbiAgICAgICAgICAgIHJlcXVpcmVtZW50cy5zeW1ib2xzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxlbmd0aCkge1xuICAgICAgICAgICAgbGVuZ3RoID0gMjQ7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2hhcmFjdGVycyA9ICgocmVxdWlyZW1lbnRzLmxvd2VyY2FzZSkgPyBsb3dlcmNhc2UgOiAnJykgKyAoKHJlcXVpcmVtZW50cy51cHBlcmNhc2UpID8gdXBwZXJjYXNlIDogJycpICsgKChyZXF1aXJlbWVudHMubnVtYmVycykgPyBudW1iZXJzIDogJycpICsgKChyZXF1aXJlbWVudHMuc3ltYm9scykgPyBzeW1ib2xzIDogJycpO1xuICAgICAgICB2YXIgcGFzc3dvcmQgPSAnJztcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFzc3dvcmQgKz0gY2hhcmFjdGVyc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhc3N3b3JkO1xuICAgIH07XG4gICAgc3RhdGljIGJhY2t1cEZpbGUgKHBhdGgsIG1vZGlmaWVyPykge1xuICAgICAgICBpZiAoIW1vZGlmaWVyKSB7XG4gICAgICAgICAgICBtb2RpZmllciA9IChwYXRoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGggKz0gJy5iYWNrJztcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IGZpbGUgPSBmcy5yZWFkRmlsZVN5bmMocGF0aCk7XG4gICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKG1vZGlmaWVyKHBhdGgpLCBmaWxlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7fVxuICAgIH07XG4gICAgc3RhdGljIHJlcGxhY2VBbGwgKGlucHV0LCBmaW5kLCByZXBsYWNlKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKG5ldyBSZWdFeHAoZmluZCwgJ2cnKSwgcmVwbGFjZSk7XG4gICAgfVxufTtcbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ==