1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-20 11:24:07 +00:00
Files
browser/libs/common/src/tools/providers.ts
adudek-bw 70c321094e Remove feature flag check from password generation (#18003)
* Remove feature flag check from password generation
2026-02-17 09:52:00 -08:00

69 lines
2.0 KiB
TypeScript

import { LogService } from "@bitwarden/logging";
import { StateProvider } from "@bitwarden/state";
import { PolicyService } from "../admin-console/abstractions/policy/policy.service.abstraction";
import { ConfigService } from "../platform/abstractions/config/config.service";
import { PlatformUtilsService } from "../platform/abstractions/platform-utils.service";
import { SdkService } from "../platform/abstractions/sdk/sdk.service";
import { LegacyEncryptorProvider } from "./cryptography/legacy-encryptor-provider";
import { ExtensionRegistry } from "./extension/extension-registry.abstraction";
import { ExtensionService } from "./extension/extension.service";
import { disabledSemanticLoggerProvider, enableLogForTypes, LogProvider } from "./log";
/** Provides access to commonly-used cross-cutting services. */
export type SystemServiceProvider = {
/** Policy configured by the administrative console */
readonly policy: PolicyService;
/** Client extension metadata and profile access */
readonly extension: ExtensionService;
/** Event monitoring and diagnostic interfaces */
readonly log: LogProvider;
/** Config Service to determine flag features */
readonly configService: ConfigService;
/** Platform Service to inspect runtime environment */
readonly environment: PlatformUtilsService;
/** SDK Service */
readonly sdk: SdkService;
};
/** Constructs a system service provider. */
export function createSystemServiceProvider(
encryptor: LegacyEncryptorProvider,
state: StateProvider,
policy: PolicyService,
registry: ExtensionRegistry,
logger: LogService,
environment: PlatformUtilsService,
configService: ConfigService,
sdk: SdkService,
): SystemServiceProvider {
let log: LogProvider;
if (environment.isDev()) {
log = enableLogForTypes(logger, []);
} else {
log = disabledSemanticLoggerProvider;
}
const extension = new ExtensionService(registry, {
encryptor,
state,
log,
now: Date.now,
});
return {
policy,
extension,
log,
configService,
environment,
sdk,
};
}