1
0
mirror of https://github.com/bitwarden/browser.git synced 2025-01-02 18:17:46 +01:00
bitwarden-browser/libs/tools/generator/extensions/legacy/src/create-legacy-username-generation-service.ts
Bernd Schoolmann b486fcc689
[Pm-13097] Rename cryptoservice to keyservice and move it to km ownership (#11358)
* Rename cryptoservice to keyservice

* Rename cryptoservice to keyservice

* Move key service to key management ownership

* Remove accidentally added file

* Fix cli build

* Fix browser build

* Run prettier

* Fix builds

* Fix cli build

* Fix tests

* Fix incorrect renames

* Rename webauthn-login-crypto-service

* Fix build errors due to merge conflicts

* Fix linting
2024-10-24 19:41:30 +02:00

142 lines
4.1 KiB
TypeScript

import { ApiService } from "@bitwarden/common/abstractions/api.service";
import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { StateProvider } from "@bitwarden/common/platform/state";
import { RestClient } from "@bitwarden/common/tools/integration/rpc";
import { engine, services, strategies, Integrations } from "@bitwarden/generator-core";
import { DefaultGeneratorNavigationService } from "@bitwarden/generator-navigation";
import { KeyService } from "@bitwarden/key-management";
import { LegacyUsernameGenerationService } from "./legacy-username-generation.service";
import { UsernameGenerationServiceAbstraction } from "./username-generation.service.abstraction";
const { KeyServiceRandomizer, UsernameRandomizer, EmailRandomizer, EmailCalculator } = engine;
const DefaultGeneratorService = services.DefaultGeneratorService;
const {
CatchallGeneratorStrategy,
SubaddressGeneratorStrategy,
EffUsernameGeneratorStrategy,
ForwarderGeneratorStrategy,
} = strategies;
export function legacyUsernameGenerationServiceFactory(
apiService: ApiService,
i18nService: I18nService,
keyService: KeyService,
encryptService: EncryptService,
policyService: PolicyService,
accountService: AccountService,
stateProvider: StateProvider,
): UsernameGenerationServiceAbstraction {
const randomizer = new KeyServiceRandomizer(keyService);
const restClient = new RestClient(apiService, i18nService);
const usernameRandomizer = new UsernameRandomizer(randomizer);
const emailRandomizer = new EmailRandomizer(randomizer);
const emailCalculator = new EmailCalculator();
const effUsername = new DefaultGeneratorService(
new EffUsernameGeneratorStrategy(usernameRandomizer, stateProvider),
policyService,
);
const subaddress = new DefaultGeneratorService(
new SubaddressGeneratorStrategy(emailCalculator, emailRandomizer, stateProvider),
policyService,
);
const catchall = new DefaultGeneratorService(
new CatchallGeneratorStrategy(emailCalculator, emailRandomizer, stateProvider),
policyService,
);
const addyIo = new DefaultGeneratorService(
new ForwarderGeneratorStrategy(
Integrations.AddyIo,
restClient,
i18nService,
encryptService,
keyService,
stateProvider,
),
policyService,
);
const duckDuckGo = new DefaultGeneratorService(
new ForwarderGeneratorStrategy(
Integrations.DuckDuckGo,
restClient,
i18nService,
encryptService,
keyService,
stateProvider,
),
policyService,
);
const fastmail = new DefaultGeneratorService(
new ForwarderGeneratorStrategy(
Integrations.Fastmail,
restClient,
i18nService,
encryptService,
keyService,
stateProvider,
),
policyService,
);
const firefoxRelay = new DefaultGeneratorService(
new ForwarderGeneratorStrategy(
Integrations.FirefoxRelay,
restClient,
i18nService,
encryptService,
keyService,
stateProvider,
),
policyService,
);
const forwardEmail = new DefaultGeneratorService(
new ForwarderGeneratorStrategy(
Integrations.ForwardEmail,
restClient,
i18nService,
encryptService,
keyService,
stateProvider,
),
policyService,
);
const simpleLogin = new DefaultGeneratorService(
new ForwarderGeneratorStrategy(
Integrations.SimpleLogin,
restClient,
i18nService,
encryptService,
keyService,
stateProvider,
),
policyService,
);
const navigation = new DefaultGeneratorNavigationService(stateProvider, policyService);
return new LegacyUsernameGenerationService(
accountService,
navigation,
catchall,
effUsername,
subaddress,
addyIo,
duckDuckGo,
fastmail,
firefoxRelay,
forwardEmail,
simpleLogin,
);
}