mirror of
https://github.com/bitwarden/browser
synced 2026-02-10 13:40:06 +00:00
61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
import { LogService } from "@bitwarden/logging";
|
|
import { BitwardenClient } from "@bitwarden/sdk-internal";
|
|
import { StateProvider } from "@bitwarden/state";
|
|
|
|
import { PolicyService } from "../admin-console/abstractions/policy/policy.service.abstraction";
|
|
import { PlatformUtilsService } from "../platform/abstractions/platform-utils.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;
|
|
|
|
/** Platform Service to inspect runtime environment */
|
|
readonly environment: PlatformUtilsService;
|
|
|
|
/** SDK Service */
|
|
readonly sdk?: BitwardenClient;
|
|
};
|
|
|
|
/** Constructs a system service provider. */
|
|
export function createSystemServiceProvider(
|
|
encryptor: LegacyEncryptorProvider,
|
|
state: StateProvider,
|
|
policy: PolicyService,
|
|
registry: ExtensionRegistry,
|
|
logger: LogService,
|
|
environment: PlatformUtilsService,
|
|
): 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,
|
|
environment,
|
|
};
|
|
}
|