mirror of
https://github.com/bitwarden/browser
synced 2025-12-18 09:13:33 +00:00
Refactorings for vaultTimeoutService/ServiceFactories (#3416)
* Move vaultTimeoutAbstraction into it's own folder * Move vaultTimeout service into it's own folder * Added vaultTimeoutServiceFactory and it's missing dependencies
This commit is contained in:
committed by
GitHub
parent
a022c58b16
commit
88a6541bd8
@@ -1,7 +1,7 @@
|
||||
import { AuthService } from "@bitwarden/common/abstractions/auth.service";
|
||||
import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service";
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
import { AuthenticationStatus } from "@bitwarden/common/enums/authenticationStatus";
|
||||
|
||||
import { BrowserApi } from "../browser/browserApi";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { NotificationsService } from "@bitwarden/common/abstractions/notifications.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
|
||||
import { StateService } from "../services/abstractions/state.service";
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ import { TwoFactorService as TwoFactorServiceAbstraction } from "@bitwarden/comm
|
||||
import { UserVerificationApiServiceAbstraction } from "@bitwarden/common/abstractions/userVerification/userVerification-api.service.abstraction";
|
||||
import { UserVerificationService as UserVerificationServiceAbstraction } from "@bitwarden/common/abstractions/userVerification/userVerification.service.abstraction";
|
||||
import { UsernameGenerationService as UsernameGenerationServiceAbstraction } from "@bitwarden/common/abstractions/usernameGeneration.service";
|
||||
import { VaultTimeoutService as VaultTimeoutServiceAbstraction } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService as VaultTimeoutServiceAbstraction } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
import { AuthenticationStatus } from "@bitwarden/common/enums/authenticationStatus";
|
||||
import { CipherRepromptType } from "@bitwarden/common/enums/cipherRepromptType";
|
||||
import { CipherType } from "@bitwarden/common/enums/cipherType";
|
||||
@@ -95,7 +95,7 @@ import { KeyGenerationService } from "../services/keyGeneration.service";
|
||||
import { LocalBackedSessionStorageService } from "../services/localBackedSessionStorage.service";
|
||||
import { StateService } from "../services/state.service";
|
||||
import { VaultFilterService } from "../services/vaultFilter.service";
|
||||
import VaultTimeoutService from "../services/vaultTimeout.service";
|
||||
import VaultTimeoutService from "../services/vaultTimeout/vaultTimeout.service";
|
||||
|
||||
import CommandsBackground from "./commands.background";
|
||||
import ContextMenusBackground from "./contextMenus.background";
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
import { CollectionService as AbstractCollectionService } from "@bitwarden/common/abstractions/collection.service";
|
||||
import { CollectionService } from "@bitwarden/common/services/collection.service";
|
||||
|
||||
import { cryptoServiceFactory, CryptoServiceInitOptions } from "./crypto-service.factory";
|
||||
import { CachedServices, factory, FactoryOptions } from "./factory-options";
|
||||
import { i18nServiceFactory, I18nServiceInitOptions } from "./i18n-service.factory";
|
||||
import {
|
||||
stateServiceFactory as stateServiceFactory,
|
||||
StateServiceInitOptions,
|
||||
} from "./state-service.factory";
|
||||
|
||||
type CollectionServiceFactoryOptions = FactoryOptions;
|
||||
|
||||
export type CollectionServiceInitOptions = CollectionServiceFactoryOptions &
|
||||
CryptoServiceInitOptions &
|
||||
I18nServiceInitOptions &
|
||||
StateServiceInitOptions;
|
||||
|
||||
export function collectionServiceFactory(
|
||||
cache: { collectionService?: AbstractCollectionService } & CachedServices,
|
||||
opts: CollectionServiceInitOptions
|
||||
): Promise<AbstractCollectionService> {
|
||||
return factory(
|
||||
cache,
|
||||
"collectionService",
|
||||
opts,
|
||||
async () =>
|
||||
new CollectionService(
|
||||
await cryptoServiceFactory(cache, opts),
|
||||
await i18nServiceFactory(cache, opts),
|
||||
await stateServiceFactory(cache, opts)
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
import { FolderService as AbstractFolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction";
|
||||
|
||||
import { FolderService } from "../../services/folders/folder.service";
|
||||
|
||||
import { cipherServiceFactory, CipherServiceInitOptions } from "./cipher-service.factory";
|
||||
import { cryptoServiceFactory, CryptoServiceInitOptions } from "./crypto-service.factory";
|
||||
import { CachedServices, factory, FactoryOptions } from "./factory-options";
|
||||
import { i18nServiceFactory, I18nServiceInitOptions } from "./i18n-service.factory";
|
||||
import {
|
||||
stateServiceFactory as stateServiceFactory,
|
||||
StateServiceInitOptions,
|
||||
} from "./state-service.factory";
|
||||
|
||||
type FolderServiceFactoryOptions = FactoryOptions;
|
||||
|
||||
export type FolderServiceInitOptions = FolderServiceFactoryOptions &
|
||||
CryptoServiceInitOptions &
|
||||
CipherServiceInitOptions &
|
||||
I18nServiceInitOptions &
|
||||
StateServiceInitOptions;
|
||||
|
||||
export function folderServiceFactory(
|
||||
cache: { folderService?: AbstractFolderService } & CachedServices,
|
||||
opts: FolderServiceInitOptions
|
||||
): Promise<AbstractFolderService> {
|
||||
return factory(
|
||||
cache,
|
||||
"folderService",
|
||||
opts,
|
||||
async () =>
|
||||
new FolderService(
|
||||
await cryptoServiceFactory(cache, opts),
|
||||
await i18nServiceFactory(cache, opts),
|
||||
await cipherServiceFactory(cache, opts),
|
||||
await stateServiceFactory(cache, opts)
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
import { PolicyService as AbstractPolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction";
|
||||
import { PolicyService } from "@bitwarden/common/services/policy/policy.service";
|
||||
|
||||
import { CachedServices, factory, FactoryOptions } from "./factory-options";
|
||||
import {
|
||||
organizationServiceFactory,
|
||||
OrganizationServiceInitOptions,
|
||||
} from "./organization-service.factory";
|
||||
import {
|
||||
stateServiceFactory as stateServiceFactory,
|
||||
StateServiceInitOptions,
|
||||
} from "./state-service.factory";
|
||||
|
||||
type PolicyServiceFactoryOptions = FactoryOptions;
|
||||
|
||||
export type PolicyServiceInitOptions = PolicyServiceFactoryOptions &
|
||||
StateServiceInitOptions &
|
||||
OrganizationServiceInitOptions;
|
||||
|
||||
export function policyServiceFactory(
|
||||
cache: { policyService?: AbstractPolicyService } & CachedServices,
|
||||
opts: PolicyServiceInitOptions
|
||||
): Promise<AbstractPolicyService> {
|
||||
return factory(
|
||||
cache,
|
||||
"policyService",
|
||||
opts,
|
||||
async () =>
|
||||
new PolicyService(
|
||||
await stateServiceFactory(cache, opts),
|
||||
await organizationServiceFactory(cache, opts)
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import { SearchService as AbstractSearchService } from "@bitwarden/common/abstractions/search.service";
|
||||
import { SearchService } from "@bitwarden/common/services/search.service";
|
||||
|
||||
import { cipherServiceFactory, CipherServiceInitOptions } from "./cipher-service.factory";
|
||||
import { CachedServices, factory, FactoryOptions } from "./factory-options";
|
||||
import { i18nServiceFactory, I18nServiceInitOptions } from "./i18n-service.factory";
|
||||
import { logServiceFactory, LogServiceInitOptions } from "./log-service.factory";
|
||||
|
||||
type SearchServiceFactoryOptions = FactoryOptions;
|
||||
|
||||
export type SearchServiceInitOptions = SearchServiceFactoryOptions &
|
||||
CipherServiceInitOptions &
|
||||
LogServiceInitOptions &
|
||||
I18nServiceInitOptions;
|
||||
|
||||
export function searchServiceFactory(
|
||||
cache: { searchService?: AbstractSearchService } & CachedServices,
|
||||
opts: SearchServiceInitOptions
|
||||
): Promise<AbstractSearchService> {
|
||||
return factory(
|
||||
cache,
|
||||
"searchService",
|
||||
opts,
|
||||
async () =>
|
||||
new SearchService(
|
||||
await cipherServiceFactory(cache, opts),
|
||||
await logServiceFactory(cache, opts),
|
||||
await i18nServiceFactory(cache, opts)
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
import { VaultTimeoutService as AbstractVaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
|
||||
import VaultTimeoutService from "../../services/vaultTimeout/vaultTimeout.service";
|
||||
|
||||
import { authServiceFactory, AuthServiceInitOptions } from "./auth-service.factory";
|
||||
import { cipherServiceFactory, CipherServiceInitOptions } from "./cipher-service.factory";
|
||||
import {
|
||||
collectionServiceFactory,
|
||||
CollectionServiceInitOptions,
|
||||
} from "./collection-service.factory";
|
||||
import { cryptoServiceFactory, CryptoServiceInitOptions } from "./crypto-service.factory";
|
||||
import { CachedServices, factory, FactoryOptions } from "./factory-options";
|
||||
import { folderServiceFactory, FolderServiceInitOptions } from "./folder-service.factory";
|
||||
import {
|
||||
keyConnectorServiceFactory,
|
||||
KeyConnectorServiceInitOptions,
|
||||
} from "./key-connector-service.factory";
|
||||
import { messagingServiceFactory, MessagingServiceInitOptions } from "./messaging-service.factory";
|
||||
import {
|
||||
platformUtilsServiceFactory,
|
||||
PlatformUtilsServiceInitOptions,
|
||||
} from "./platform-utils-service.factory";
|
||||
import { policyServiceFactory, PolicyServiceInitOptions } from "./policy-service.factory";
|
||||
import { searchServiceFactory, SearchServiceInitOptions } from "./search-service.factory";
|
||||
import {
|
||||
stateServiceFactory as stateServiceFactory,
|
||||
StateServiceInitOptions,
|
||||
} from "./state-service.factory";
|
||||
import { tokenServiceFactory, TokenServiceInitOptions } from "./token-service.factory";
|
||||
|
||||
type VaultTimeoutServiceFactoryOptions = FactoryOptions & {
|
||||
vaultTimeoutServiceOptions: {
|
||||
lockedCallback: (userId?: string) => Promise<void>;
|
||||
loggedOutCallback: (expired: boolean, userId?: string) => Promise<void>;
|
||||
};
|
||||
};
|
||||
|
||||
export type VaultTimeoutServiceInitOptions = VaultTimeoutServiceFactoryOptions &
|
||||
CipherServiceInitOptions &
|
||||
FolderServiceInitOptions &
|
||||
CollectionServiceInitOptions &
|
||||
CryptoServiceInitOptions &
|
||||
PlatformUtilsServiceInitOptions &
|
||||
MessagingServiceInitOptions &
|
||||
SearchServiceInitOptions &
|
||||
TokenServiceInitOptions &
|
||||
PolicyServiceInitOptions &
|
||||
KeyConnectorServiceInitOptions &
|
||||
StateServiceInitOptions &
|
||||
AuthServiceInitOptions;
|
||||
|
||||
export function vaultTimeoutServiceFactory(
|
||||
cache: { vaultTimeoutService?: AbstractVaultTimeoutService } & CachedServices,
|
||||
opts: VaultTimeoutServiceInitOptions
|
||||
): Promise<AbstractVaultTimeoutService> {
|
||||
return factory(
|
||||
cache,
|
||||
"vaultTimeoutService",
|
||||
opts,
|
||||
async () =>
|
||||
new VaultTimeoutService(
|
||||
await cipherServiceFactory(cache, opts),
|
||||
await folderServiceFactory(cache, opts),
|
||||
await collectionServiceFactory(cache, opts),
|
||||
await cryptoServiceFactory(cache, opts),
|
||||
await platformUtilsServiceFactory(cache, opts),
|
||||
await messagingServiceFactory(cache, opts),
|
||||
await searchServiceFactory(cache, opts),
|
||||
await tokenServiceFactory(cache, opts),
|
||||
await policyServiceFactory(cache, opts),
|
||||
await keyConnectorServiceFactory(cache, opts),
|
||||
await stateServiceFactory(cache, opts),
|
||||
await authServiceFactory(cache, opts),
|
||||
opts.vaultTimeoutServiceOptions.lockedCallback,
|
||||
opts.vaultTimeoutServiceOptions.loggedOutCallback
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -13,7 +13,7 @@ import { MessagingService } from "@bitwarden/common/abstractions/messaging.servi
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
||||
import { SyncService } from "@bitwarden/common/abstractions/sync/sync.service.abstraction";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
import { AuthenticationStatus } from "@bitwarden/common/enums/authenticationStatus";
|
||||
|
||||
import { BiometricErrors, BiometricErrorTypes } from "../../models/biometricErrors";
|
||||
|
||||
@@ -12,7 +12,7 @@ import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwo
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
||||
import { SyncService } from "@bitwarden/common/abstractions/sync/sync.service.abstraction";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
import { AuthenticationStatus } from "@bitwarden/common/enums/authenticationStatus";
|
||||
|
||||
import { BrowserApi } from "../../browser/browserApi";
|
||||
|
||||
@@ -47,7 +47,7 @@ import { TotpService } from "@bitwarden/common/abstractions/totp.service";
|
||||
import { TwoFactorService } from "@bitwarden/common/abstractions/twoFactor.service";
|
||||
import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification/userVerification.service.abstraction";
|
||||
import { UsernameGenerationService } from "@bitwarden/common/abstractions/usernameGeneration.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
import { AuthService } from "@bitwarden/common/services/auth.service";
|
||||
import { ConsoleLogService } from "@bitwarden/common/services/consoleLog.service";
|
||||
import { SearchService } from "@bitwarden/common/services/search.service";
|
||||
|
||||
@@ -11,7 +11,7 @@ import { KeyConnectorService } from "@bitwarden/common/abstractions/keyConnector
|
||||
import { MessagingService } from "@bitwarden/common/abstractions/messaging.service";
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service";
|
||||
import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout/vaultTimeout.service";
|
||||
import { DeviceType } from "@bitwarden/common/enums/deviceType";
|
||||
|
||||
import { BrowserApi } from "../../browser/browserApi";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { VaultTimeoutService as BaseVaultTimeoutService } from "@bitwarden/common/services/vaultTimeout.service";
|
||||
import { VaultTimeoutService as BaseVaultTimeoutService } from "@bitwarden/common/services/vaultTimeout/vaultTimeout.service";
|
||||
|
||||
import { SafariApp } from "../browser/safariApp";
|
||||
import { SafariApp } from "../../browser/safariApp";
|
||||
|
||||
export default class VaultTimeoutService extends BaseVaultTimeoutService {
|
||||
startCheck() {
|
||||
Reference in New Issue
Block a user