mirror of
https://github.com/XFox111/PasswordGeneratorExtension.git
synced 2026-04-22 08:08:01 +03:00
75b6ccd2d6
* Bump vite from 5.4.10 to 5.4.14 in the npm_and_yarn group across 1 directory (#472) * Update README.md * Bump vite in the npm_and_yarn group across 1 directory Bumps the npm_and_yarn group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite). Updates `vite` from 5.4.10 to 5.4.14 - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Eugene Fox <eugene.xfox@outlook.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/eslint-plugin from 8.19.1 to 8.23.0 (#485) Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 8.19.1 to 8.23.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @fluentui/react-components from 9.57.0 to 9.58.2 (#478) Bumps [@fluentui/react-components](https://github.com/microsoft/fluentui) from 9.57.0 to 9.58.2. - [Release notes](https://github.com/microsoft/fluentui/releases) - [Changelog](https://github.com/microsoft/fluentui/blob/master/azure-pipelines.release.yml) - [Commits](https://github.com/microsoft/fluentui/compare/@fluentui/react-components_v9.57.0...@fluentui/react-components_v9.58.2) --- updated-dependencies: - dependency-name: "@fluentui/react-components" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump eslint from 9.18.0 to 9.19.0 (#477) Bumps [eslint](https://github.com/eslint/eslint) from 9.18.0 to 9.19.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @eslint/js from 9.18.0 to 9.19.0 (#476) Bumps [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) from 9.18.0 to 9.19.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.19.0/packages/js) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump wxt from 0.19.24 to 0.19.26 (#474) Bumps [wxt](https://github.com/wxt-dev/wxt) from 0.19.24 to 0.19.26. - [Release notes](https://github.com/wxt-dev/wxt/releases) - [Commits](https://github.com/wxt-dev/wxt/compare/wxt-v0.19.24...wxt-v0.19.26) --- updated-dependencies: - dependency-name: wxt dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump dev-build-deploy/release-me from 0.17.0 to 0.18.0 (#483) Bumps [dev-build-deploy/release-me](https://github.com/dev-build-deploy/release-me) from 0.17.0 to 0.18.0. - [Release notes](https://github.com/dev-build-deploy/release-me/releases) - [Changelog](https://github.com/dev-build-deploy/release-me/blob/main/docs/get-release.md) - [Commits](https://github.com/dev-build-deploy/release-me/compare/v0.17.0...v0.18.0) --- updated-dependencies: - dependency-name: dev-build-deploy/release-me dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump @typescript-eslint/parser from 8.19.1 to 8.23.0 (#484) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.19.1 to 8.23.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Eugene Fox <eugene.xfox@outlook.com> * Bump @fluentui/react-icons from 2.0.270 to 2.0.274 (#475) Bumps [@fluentui/react-icons](https://github.com/microsoft/fluentui-system-icons) from 2.0.270 to 2.0.274. - [Changelog](https://github.com/microsoft/fluentui-system-icons/blob/main/fluentui-android-system-icons-release.yml) - [Commits](https://github.com/microsoft/fluentui-system-icons/commits) --- updated-dependencies: - dependency-name: "@fluentui/react-icons" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Eugene Fox <eugene.xfox@outlook.com> * Update package.json * Fix for CWE-532 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
107 lines
2.9 KiB
TypeScript
107 lines
2.9 KiB
TypeScript
// Based on ealamiLabs - Password generator (https://github.com/ealamiLabs/password-generator)
|
|
// licensed under MIT
|
|
|
|
import dictionary from "./dictionary.json";
|
|
import { getBooleanSequence, getRandomInt } from "./randomUtils";
|
|
|
|
/* MIT License
|
|
*
|
|
* Copyright (c) 2024 ealamiLabs
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in all
|
|
* copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
* SOFTWARE.
|
|
*/
|
|
|
|
export default function generatePassphrase(options: PassphraseProps): string
|
|
{
|
|
const words: string[] = [];
|
|
|
|
for (let i = 0; i < options.wordCount; i++)
|
|
{
|
|
const word: string = dictionary[getRandomInt(0, dictionary.length)].word;
|
|
|
|
if (!options.allowRepeating && words.includes(word))
|
|
i--;
|
|
else
|
|
words.push(word);
|
|
}
|
|
|
|
let result: string = words.join(options.separator).toLocaleLowerCase();
|
|
|
|
console.log(result);
|
|
|
|
if (options.swapCharacters)
|
|
result = swapCharacters(result);
|
|
|
|
if (options.randomizeCase)
|
|
result = RandomUpperCase(result);
|
|
|
|
return result;
|
|
}
|
|
|
|
function RandomUpperCase(passphrase: string): string
|
|
{
|
|
const sequence: boolean[] = getBooleanSequence(passphrase.length);
|
|
let result: string = "";
|
|
|
|
for (let i = 0; i < passphrase.length; i++)
|
|
result += sequence[i] ? passphrase[i].toLocaleUpperCase() : passphrase[i];
|
|
|
|
return result;
|
|
}
|
|
|
|
function swapCharacters(passphrase: string): string
|
|
{
|
|
const sequence: boolean[] = getBooleanSequence(passphrase.length);
|
|
let result: string = "";
|
|
|
|
for (let i = 0; i < passphrase.length; i++)
|
|
if (sequence[i])
|
|
switch (passphrase[i].toLocaleLowerCase())
|
|
{
|
|
case "a":
|
|
result += getRandomInt(0, 100) < 50 ? "@" : "4";
|
|
break;
|
|
case "e":
|
|
result += "3";
|
|
break;
|
|
case "i":
|
|
result += "!";
|
|
break;
|
|
case "s":
|
|
result += getRandomInt(0, 100) < 50 ? "$" : "5";
|
|
break;
|
|
default:
|
|
result += passphrase[i];
|
|
break;
|
|
}
|
|
else
|
|
result += passphrase[i];
|
|
|
|
return result;
|
|
}
|
|
|
|
export type PassphraseProps =
|
|
{
|
|
wordCount: number;
|
|
swapCharacters: boolean;
|
|
randomizeCase: boolean;
|
|
allowRepeating: boolean;
|
|
separator: string;
|
|
};
|