69 lines
2.3 KiB
TypeScript
69 lines
2.3 KiB
TypeScript
import { PinServiceAbstraction, PinService } from "@bitwarden/auth/common";
|
|
|
|
import {
|
|
EncryptServiceInitOptions,
|
|
encryptServiceFactory,
|
|
} from "../../../platform/background/service-factories/encrypt-service.factory";
|
|
import {
|
|
FactoryOptions,
|
|
CachedServices,
|
|
factory,
|
|
} from "../../../platform/background/service-factories/factory-options";
|
|
import {
|
|
KeyGenerationServiceInitOptions,
|
|
keyGenerationServiceFactory,
|
|
} from "../../../platform/background/service-factories/key-generation-service.factory";
|
|
import {
|
|
LogServiceInitOptions,
|
|
logServiceFactory,
|
|
} from "../../../platform/background/service-factories/log-service.factory";
|
|
import {
|
|
StateProviderInitOptions,
|
|
stateProviderFactory,
|
|
} from "../../../platform/background/service-factories/state-provider.factory";
|
|
import {
|
|
StateServiceInitOptions,
|
|
stateServiceFactory,
|
|
} from "../../../platform/background/service-factories/state-service.factory";
|
|
|
|
import { AccountServiceInitOptions, accountServiceFactory } from "./account-service.factory";
|
|
import { KdfConfigServiceInitOptions, kdfConfigServiceFactory } from "./kdf-config-service.factory";
|
|
import {
|
|
MasterPasswordServiceInitOptions,
|
|
internalMasterPasswordServiceFactory,
|
|
} from "./master-password-service.factory";
|
|
|
|
type PinServiceFactoryOptions = FactoryOptions;
|
|
|
|
export type PinServiceInitOptions = PinServiceFactoryOptions &
|
|
AccountServiceInitOptions &
|
|
EncryptServiceInitOptions &
|
|
KdfConfigServiceInitOptions &
|
|
KeyGenerationServiceInitOptions &
|
|
LogServiceInitOptions &
|
|
MasterPasswordServiceInitOptions &
|
|
StateProviderInitOptions &
|
|
StateServiceInitOptions;
|
|
|
|
export function pinServiceFactory(
|
|
cache: { pinService?: PinServiceAbstraction } & CachedServices,
|
|
opts: PinServiceInitOptions,
|
|
): Promise<PinServiceAbstraction> {
|
|
return factory(
|
|
cache,
|
|
"pinService",
|
|
opts,
|
|
async () =>
|
|
new PinService(
|
|
await accountServiceFactory(cache, opts),
|
|
await encryptServiceFactory(cache, opts),
|
|
await kdfConfigServiceFactory(cache, opts),
|
|
await keyGenerationServiceFactory(cache, opts),
|
|
await logServiceFactory(cache, opts),
|
|
await internalMasterPasswordServiceFactory(cache, opts),
|
|
await stateProviderFactory(cache, opts),
|
|
await stateServiceFactory(cache, opts),
|
|
),
|
|
);
|
|
}
|