diff --git a/docs/plugins/passphrase-generator/manifest.json b/docs/plugins/passphrase-generator/manifest.json index 8b17ffc..0623c2d 100644 --- a/docs/plugins/passphrase-generator/manifest.json +++ b/docs/plugins/passphrase-generator/manifest.json @@ -9,9 +9,9 @@ "url": "https://github.com/GrantMoyer/" }, "resources": { - "js": "xI48tPthMnRvBDqUtz0/eX1fNYCdpAFfNd8vswWsuGPucj4BYei2fntsqBBW3R8yaFsiuh5UV8Zz+7kb5AgP4UVOU0Rip9kFmrgCHGo8cvvEWQa9KDFBvv+OvotCSllxT9ise4LNtfXQtoRXXZdWAqPsjZ3nfKhI/Al3n8QghXteNWiuvwX4D85S0VPJpL/sY4dUblFRz+GLj0E2QRbWhBsU5ccvdP50GNo0QJvSuiD59VUd+bRnjpaB4YofuR59D6Y4qAFjZqGlMIlRM5h2tmD11GLDXa7ZTVbWy1zKwz/Cn6TjwMQXFqAhh4xshkPF/KeNfYW1csZ0lYTbgHUPRQ==" + "js": "awImbm3h4cVUvt9b7hHs0PyzkGMVHp4zvk+/J8bXvePYok6KjRF7jPrmUxMHYhVX7n+F0TUQOl3S9UHIWPjBy1bYU5mwZD1ZS+/Gz5dBsrXK7Q0Jk/Cb8t9jtTcC5opKtZW3fGvvNCSzN+iKySJn14Q0gpmVlScMtw7S5P6RRz9z+QDP7vzo3UN9mhIi0E9b8S/wmoynGDTHivtuPoKbLdM1Sp/Qsuz3Rirkv8N+UTDbB3xYuCG9b3TvKDjXIHAcpMkKW4tOy9ALYBVWv3qgSy40JU0as/SGee24B1Q7bklVzbuM7b5TV2HYOLP6ZV5xw8I8fzcMdnXymPqwGbdm2A==" }, "licence": "MIT", "url": "https://github.com/GrantMoyer/keeweb-plugin-passphrase-generator", "publicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzOR25PG6eC40WZQvhia4tln4VEfafbuu+w1PQ88E4cJM6NZqZBxtJjA+0wMPHU+y2WlWMBgiEKanQYjy8JgNJSzUX3LvwzabnSb5EhJwyELvkqTlHupNhZXcQfCNc9awQSJT1wBnookq7r/CAHCPDaAS6EzdDKDOxTNiKYSp+hubln7bJwxgNfkL4WbapV1ZyJqU0Vcjl8btOoZpAWc0KtWqt893sBkuy8orcf8taChvtVWecW4zsBGRLKUG0WRN0t8zDpe+NHzL2JXyA/e44gahqbLuwXucg6zYGzFGxvKQAdNlQ/+tcBQ7nNUo13RahKpGGJVrzzDwVDcdJL0H8wIDAQAB" -} +} \ No newline at end of file diff --git a/docs/plugins/passphrase-generator/plugin.js b/docs/plugins/passphrase-generator/plugin.js index 139f013..d7994d7 100644 --- a/docs/plugins/passphrase-generator/plugin.js +++ b/docs/plugins/passphrase-generator/plugin.js @@ -4,39 +4,49 @@ * @license MIT */ -const { GeneratorView } = require('views/generator-view'); +const { GeneratorPresets } = require('comp/app/generator-presets') const Kdbxweb = require('kdbxweb'); const { PasswordGenerator } = require('util/generators/password-generator'); -let generatorViewGenerate = GeneratorView.prototype.generate; -GeneratorView.prototype.generate = function() { - if (!this.gen || this.gen.title !== 'passphrase') return generatorViewGenerate.apply(this); - if (typeof this.gen.length !== 'number' || this.gen.length < 0) { +let generatorPresetsBuiltIn = Object.getOwnPropertyDescriptor(GeneratorPresets, 'builtIn'); +Object.defineProperty(GeneratorPresets, 'builtInOriginal', generatorPresetsBuiltIn); +Object.defineProperty(GeneratorPresets, 'builtIn', { + get: function() { + const presets = this.builtInOriginal; + presets.push({ + name: 'passphrase', + title: 'passphrase', + type: 'passphrase', + builtIn: true, + options: [{ + name: 'dash', + title: 'Use dash as word seperator', + label: '-', + type: 'checkbox' + }], + dash: true, + length: 6 + }) + return presets; + } +}) + +let passwordGeneratorGenerate = PasswordGenerator.generate; +PasswordGenerator.generate = function(preset) { + if (preset.type !== 'passphrase') return passwordGeneratorGenerate(preset); + if (typeof preset.length !== 'number' || preset.length < 0) { return ''; } - this.password = Array - .from({length: this.gen.length}, _ => eff_large_wordlist()[get_random_index()]) - .join(' '); - this.showPassword(); - const isLong = this.password.length > 32; - this.resultEl.toggleClass('gen__result--long-pass', isLong); -} - -let generatorViewCreatePresets = GeneratorView.prototype.createPresets; -GeneratorView.prototype.createPresets = function() { - generatorViewCreatePresets.apply(this); - this.presets.unshift({ - name: 'passphrase', - title: 'passphrase', - builtIn: true, - length: 6 - }); - this.lengthToPseudoValue(this.presets[0]); + const password = Array + .from({length: preset.length}, _ => eff_large_wordlist()[get_random_index()]) + .join(preset.dash ? '-' : ' '); + return password; } module.exports.uninstall = function() { - GeneratorView.prototype.generate = generatorViewGenerate; - GeneratorView.prototype.createPresets = generatorViewCreatePresets; + Object.defineProperty(GeneratorPresets, 'builtIn', generatorPresetsBuiltIn); + Object.defineProperty(GeneratorPresets, 'builtInOriginal', {}); + PasswordGenerator.generate = passwordGeneratorGenerate; }; function get_random_index() {