1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-14 07:13:32 +00:00

[PM-328] Move generator to tools (#4980)

* Move generator to tools

libs/angular:
- Move generator.component to tools
libs/common:
- Move password generation to tools
- Move username generation including email-forwarders to tools

apps/*
- create tools-subfolder and move files regarding generator functionality
- Update all the imports

.github/:
- Cleaned up whitelist-capital-letters.txt
- Added team-tools-dev folders to CODEOWNERS

* Remove unused barrel file
This commit is contained in:
Daniel James Smith
2023-03-10 21:39:46 +01:00
committed by GitHub
parent e9d0f75b8a
commit d4c812160f
92 changed files with 238 additions and 202 deletions

View File

@@ -15,13 +15,13 @@ import { SendData } from "../models/data/send.data";
import { ServerConfigData } from "../models/data/server-config.data";
import { Account, AccountSettingsSettings } from "../models/domain/account";
import { EncString } from "../models/domain/enc-string";
import { GeneratedPasswordHistory } from "../models/domain/generated-password-history";
import { Policy } from "../models/domain/policy";
import { StorageOptions } from "../models/domain/storage-options";
import { SymmetricCryptoKey } from "../models/domain/symmetric-crypto-key";
import { WindowState } from "../models/domain/window-state";
import { CollectionView } from "../models/view/collection.view";
import { SendView } from "../models/view/send.view";
import { GeneratedPasswordHistory } from "../tools/generator/password";
import { CipherData } from "../vault/models/data/cipher.data";
import { FolderData } from "../vault/models/data/folder.data";
import { LocalData } from "../vault/models/data/local.data";

View File

@@ -5,6 +5,7 @@ import { EnvironmentUrls } from "../../auth/models/domain/environment-urls";
import { KdfType } from "../../enums/kdfType";
import { UriMatchType } from "../../enums/uriMatchType";
import { Utils } from "../../misc/utils";
import { GeneratedPasswordHistory } from "../../tools/generator/password";
import { DeepJsonify } from "../../types/deep-jsonify";
import { CipherData } from "../../vault/models/data/cipher.data";
import { FolderData } from "../../vault/models/data/folder.data";
@@ -21,7 +22,6 @@ import { CollectionView } from "../view/collection.view";
import { SendView } from "../view/send.view";
import { EncString } from "./enc-string";
import { GeneratedPasswordHistory } from "./generated-password-history";
import { Policy } from "./policy";
import { SymmetricCryptoKey } from "./symmetric-crypto-key";

View File

@@ -32,7 +32,6 @@ import {
AccountSettingsSettings,
} from "../models/domain/account";
import { EncString } from "../models/domain/enc-string";
import { GeneratedPasswordHistory } from "../models/domain/generated-password-history";
import { GlobalState } from "../models/domain/global-state";
import { Policy } from "../models/domain/policy";
import { State } from "../models/domain/state";
@@ -41,6 +40,7 @@ import { SymmetricCryptoKey } from "../models/domain/symmetric-crypto-key";
import { WindowState } from "../models/domain/window-state";
import { CollectionView } from "../models/view/collection.view";
import { SendView } from "../models/view/send.view";
import { GeneratedPasswordHistory } from "../tools/generator/password";
import { CipherData } from "../vault/models/data/cipher.data";
import { FolderData } from "../vault/models/data/folder.data";
import { LocalData } from "../vault/models/data/local.data";

View File

@@ -19,9 +19,9 @@ import {
EncryptionPair,
} from "../models/domain/account";
import { EncString } from "../models/domain/enc-string";
import { GeneratedPasswordHistory } from "../models/domain/generated-password-history";
import { GlobalState } from "../models/domain/global-state";
import { StorageOptions } from "../models/domain/storage-options";
import { GeneratedPasswordHistory } from "../tools/generator/password";
import { CipherData } from "../vault/models/data/cipher.data";
import { FolderData } from "../vault/models/data/folder.data";

View File

@@ -0,0 +1,3 @@
export { PasswordGenerationServiceAbstraction } from "./password-generation.service.abstraction";
export { PasswordGenerationService } from "./password-generation.service";
export { GeneratedPasswordHistory } from "./generated-password-history";

View File

@@ -1,10 +1,11 @@
import * as zxcvbn from "zxcvbn";
import { GeneratedPasswordHistory } from "../models/domain/generated-password-history";
import { PasswordGeneratorOptions } from "../models/domain/password-generator-options";
import { PasswordGeneratorPolicyOptions } from "../models/domain/password-generator-policy-options";
import { PasswordGeneratorPolicyOptions } from "../../../models/domain/password-generator-policy-options";
export abstract class PasswordGenerationService {
import { GeneratedPasswordHistory } from "./generated-password-history";
import { PasswordGeneratorOptions } from "./password-generator-options";
export abstract class PasswordGenerationServiceAbstraction {
generatePassword: (options: PasswordGeneratorOptions) => Promise<string>;
generatePassphrase: (options: PasswordGeneratorOptions) => Promise<string>;
getOptions: () => Promise<[PasswordGeneratorOptions, PasswordGeneratorPolicyOptions]>;

View File

@@ -1,15 +1,16 @@
import * as zxcvbn from "zxcvbn";
import { CryptoService } from "../abstractions/crypto.service";
import { PasswordGenerationService as PasswordGenerationServiceAbstraction } from "../abstractions/passwordGeneration.service";
import { PolicyService } from "../abstractions/policy/policy.service.abstraction";
import { StateService } from "../abstractions/state.service";
import { PolicyType } from "../enums/policyType";
import { EFFLongWordList } from "../misc/wordlist";
import { EncString } from "../models/domain/enc-string";
import { GeneratedPasswordHistory } from "../models/domain/generated-password-history";
import { PasswordGeneratorOptions } from "../models/domain/password-generator-options";
import { PasswordGeneratorPolicyOptions } from "../models/domain/password-generator-policy-options";
import { CryptoService } from "../../../abstractions/crypto.service";
import { PolicyService } from "../../../abstractions/policy/policy.service.abstraction";
import { StateService } from "../../../abstractions/state.service";
import { PolicyType } from "../../../enums/policyType";
import { EFFLongWordList } from "../../../misc/wordlist";
import { EncString } from "../../../models/domain/enc-string";
import { PasswordGeneratorPolicyOptions } from "../../../models/domain/password-generator-policy-options";
import { GeneratedPasswordHistory } from "./generated-password-history";
import { PasswordGenerationServiceAbstraction } from "./password-generation.service.abstraction";
import { PasswordGeneratorOptions } from "./password-generator-options";
const DefaultOptions: PasswordGeneratorOptions = {
length: 14,

View File

@@ -1,4 +1,4 @@
import { ApiService } from "../abstractions/api.service";
import { ApiService } from "../../../../abstractions/api.service";
import { Forwarder } from "./forwarder";
import { ForwarderOptions } from "./forwarder-options";

View File

@@ -1,4 +1,4 @@
import { ApiService } from "../abstractions/api.service";
import { ApiService } from "../../../../abstractions/api.service";
import { Forwarder } from "./forwarder";
import { ForwarderOptions } from "./forwarder-options";

View File

@@ -1,4 +1,4 @@
import { ApiService } from "../abstractions/api.service";
import { ApiService } from "../../../../abstractions/api.service";
import { Forwarder } from "./forwarder";
import { ForwarderOptions } from "./forwarder-options";

View File

@@ -1,4 +1,4 @@
import { ApiService } from "../abstractions/api.service";
import { ApiService } from "../../../../abstractions/api.service";
import { Forwarder } from "./forwarder";
import { ForwarderOptions } from "./forwarder-options";

View File

@@ -1,4 +1,4 @@
import { ApiService } from "../abstractions/api.service";
import { ApiService } from "../../../../abstractions/api.service";
import { ForwarderOptions } from "./forwarder-options";

View File

@@ -0,0 +1,7 @@
export { AnonAddyForwarder } from "./anon-addy-forwarder";
export { DuckDuckGoForwarder } from "./duck-duck-go-forwarder";
export { FastmailForwarder } from "./fastmail-forwarder";
export { FirefoxRelayForwarder } from "./firefox-relay-forwarder";
export { Forwarder } from "./forwarder";
export { ForwarderOptions } from "./forwarder-options";
export { SimpleLoginForwarder } from "./simple-login-forwarder";

View File

@@ -1,4 +1,4 @@
import { ApiService } from "../abstractions/api.service";
import { ApiService } from "../../../../abstractions/api.service";
import { Forwarder } from "./forwarder";
import { ForwarderOptions } from "./forwarder-options";

View File

@@ -0,0 +1,2 @@
export { UsernameGenerationServiceAbstraction } from "./username-generation.service.abstraction";
export { UsernameGenerationService } from "./username-generation.service";

View File

@@ -1,4 +1,4 @@
export abstract class UsernameGenerationService {
export abstract class UsernameGenerationServiceAbstraction {
generateUsername: (options: any) => Promise<string>;
generateWord: (options: any) => Promise<string>;
generateSubaddress: (options: any) => Promise<string>;

View File

@@ -1,15 +1,18 @@
import { ApiService } from "../abstractions/api.service";
import { CryptoService } from "../abstractions/crypto.service";
import { StateService } from "../abstractions/state.service";
import { UsernameGenerationService as BaseUsernameGenerationService } from "../abstractions/usernameGeneration.service";
import { AnonAddyForwarder } from "../email-forwarders/anon-addy-forwarder";
import { DuckDuckGoForwarder } from "../email-forwarders/duck-duck-go-forwarder";
import { FastmailForwarder } from "../email-forwarders/fastmail-forwarder";
import { FirefoxRelayForwarder } from "../email-forwarders/firefox-relay-forwarder";
import { Forwarder } from "../email-forwarders/forwarder";
import { ForwarderOptions } from "../email-forwarders/forwarder-options";
import { SimpleLoginForwarder } from "../email-forwarders/simple-login-forwarder";
import { EFFLongWordList } from "../misc/wordlist";
import { ApiService } from "../../../abstractions/api.service";
import { CryptoService } from "../../../abstractions/crypto.service";
import { StateService } from "../../../abstractions/state.service";
import { EFFLongWordList } from "../../../misc/wordlist";
import {
AnonAddyForwarder,
DuckDuckGoForwarder,
FastmailForwarder,
FirefoxRelayForwarder,
Forwarder,
ForwarderOptions,
SimpleLoginForwarder,
} from "./email-forwarders";
import { UsernameGenerationServiceAbstraction } from "./username-generation.service.abstraction";
const DefaultOptions = {
type: "word",
@@ -21,7 +24,7 @@ const DefaultOptions = {
forwardedAnonAddyDomain: "anonaddy.me",
};
export class UsernameGenerationService implements BaseUsernameGenerationService {
export class UsernameGenerationService implements UsernameGenerationServiceAbstraction {
constructor(
private cryptoService: CryptoService,
private stateService: StateService,