import { VaultTimeoutSettingsService as AbstractVaultTimeoutSettingsService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeoutSettings.service"; import { VaultTimeoutSettingsService } from "@bitwarden/common/services/vaultTimeout/vaultTimeoutSettings.service"; import { policyServiceFactory, PolicyServiceInitOptions, } from "../../admin-console/background/service-factories/policy-service.factory"; import { tokenServiceFactory, TokenServiceInitOptions, } from "../../auth/background/service-factories/token-service.factory"; import { cryptoServiceFactory, CryptoServiceInitOptions } from "./crypto-service.factory"; import { CachedServices, factory, FactoryOptions } from "./factory-options"; import { stateServiceFactory as stateServiceFactory, StateServiceInitOptions, } from "./state-service.factory"; type VaultTimeoutSettingsServiceFactoryOptions = FactoryOptions; export type VaultTimeoutSettingsServiceInitOptions = VaultTimeoutSettingsServiceFactoryOptions & CryptoServiceInitOptions & TokenServiceInitOptions & PolicyServiceInitOptions & StateServiceInitOptions; export function vaultTimeoutSettingsServiceFactory( cache: { vaultTimeoutSettingsService?: AbstractVaultTimeoutSettingsService } & CachedServices, opts: VaultTimeoutSettingsServiceInitOptions ): Promise { return factory( cache, "vaultTimeoutSettingsService", opts, async () => new VaultTimeoutSettingsService( await cryptoServiceFactory(cache, opts), await tokenServiceFactory(cache, opts), await policyServiceFactory(cache, opts), await stateServiceFactory(cache, opts) ) ); }