mirror of
https://github.com/bitwarden/browser
synced 2026-02-08 04:33:38 +00:00
Add sdk hookup
This commit is contained in:
@@ -2,7 +2,6 @@ import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||
import { GENERATOR_DISK } from "@bitwarden/common/platform/state";
|
||||
import { PublicClassifier } from "@bitwarden/common/tools/public-classifier";
|
||||
import { ObjectKey } from "@bitwarden/common/tools/state/object-key";
|
||||
import { BitwardenClient } from "@bitwarden/sdk-internal";
|
||||
|
||||
import { SdkPasswordRandomizer } from "../../engine";
|
||||
import { passphraseLeastPrivilege, PassphrasePolicyConstraints } from "../../policies";
|
||||
@@ -31,7 +30,7 @@ const sdkPassphrase: GeneratorMetadata<PassphraseGenerationOptions> = {
|
||||
create(
|
||||
dependencies: GeneratorDependencyProvider,
|
||||
): CredentialGenerator<PassphraseGenerationOptions> {
|
||||
return new SdkPasswordRandomizer(new BitwardenClient()); // @TODO hook up a real SDK client
|
||||
return new SdkPasswordRandomizer(dependencies.sdk);
|
||||
},
|
||||
},
|
||||
profiles: {
|
||||
|
||||
@@ -2,7 +2,6 @@ import { PolicyType } from "@bitwarden/common/admin-console/enums";
|
||||
import { GENERATOR_DISK } from "@bitwarden/common/platform/state";
|
||||
import { PublicClassifier } from "@bitwarden/common/tools/public-classifier";
|
||||
import { deepFreeze } from "@bitwarden/common/tools/util";
|
||||
import { BitwardenClient } from "@bitwarden/sdk-internal";
|
||||
|
||||
import { SdkPasswordRandomizer } from "../../engine";
|
||||
import { DynamicPasswordPolicyConstraints, passwordLeastPrivilege } from "../../policies";
|
||||
@@ -31,7 +30,7 @@ const sdkPassword: GeneratorMetadata<PasswordGeneratorSettings> = deepFreeze({
|
||||
create(
|
||||
dependencies: GeneratorDependencyProvider,
|
||||
): CredentialGenerator<PasswordGeneratorSettings> {
|
||||
return new SdkPasswordRandomizer(new BitwardenClient()); // @TODO hook up a real SDK client
|
||||
return new SdkPasswordRandomizer(dependencies.sdk);
|
||||
},
|
||||
},
|
||||
profiles: {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
||||
import { SdkService } from "@bitwarden/common/platform/abstractions/sdk/sdk.service";
|
||||
import { RestClient } from "@bitwarden/common/tools/integration/rpc";
|
||||
import { BitwardenClient } from "@bitwarden/sdk-internal";
|
||||
|
||||
import { Randomizer } from "../abstractions";
|
||||
|
||||
@@ -10,5 +10,5 @@ export type GeneratorDependencyProvider = {
|
||||
// FIXME: introduce `I18nKeyOrLiteral` into forwarder
|
||||
// structures and remove this dependency
|
||||
i18nService: I18nService;
|
||||
sdkService: SdkService;
|
||||
sdk: BitwardenClient;
|
||||
};
|
||||
|
||||
@@ -16,12 +16,14 @@ import {
|
||||
} from "rxjs";
|
||||
|
||||
import { Account } from "@bitwarden/common/auth/abstractions/account.service";
|
||||
import { SdkService } from "@bitwarden/common/platform/abstractions/sdk/sdk.service";
|
||||
import { BoundDependency, OnDependency } from "@bitwarden/common/tools/dependencies";
|
||||
import { VendorId } from "@bitwarden/common/tools/extension";
|
||||
import { SemanticLogger } from "@bitwarden/common/tools/log";
|
||||
import { SystemServiceProvider } from "@bitwarden/common/tools/providers";
|
||||
import { anyComplete, memoizedMap } from "@bitwarden/common/tools/rx";
|
||||
import { anyComplete, memoizedMap, withLatestReady } from "@bitwarden/common/tools/rx";
|
||||
import { UserStateSubject } from "@bitwarden/common/tools/state/user-state-subject";
|
||||
import { BitwardenClient } from "@bitwarden/sdk-internal";
|
||||
|
||||
import { CredentialGeneratorService } from "../abstractions";
|
||||
import {
|
||||
@@ -33,7 +35,7 @@ import {
|
||||
toVendorId,
|
||||
CredentialType,
|
||||
} from "../metadata";
|
||||
import { CredentialGeneratorProviders } from "../providers";
|
||||
import { CredentialGeneratorProviders, GeneratorDependencyProvider } from "../providers";
|
||||
import { GenerateRequest } from "../types";
|
||||
import { isAlgorithmRequest, isTypeRequest } from "../types/metadata-request";
|
||||
|
||||
@@ -48,6 +50,7 @@ export class DefaultCredentialGeneratorService implements CredentialGeneratorSer
|
||||
constructor(
|
||||
private readonly provide: CredentialGeneratorProviders,
|
||||
private readonly system: SystemServiceProvider,
|
||||
private readonly sdkService: SdkService,
|
||||
) {
|
||||
this.log = system.log({ type: "CredentialGeneratorService" });
|
||||
}
|
||||
@@ -108,9 +111,10 @@ export class DefaultCredentialGeneratorService implements CredentialGeneratorSer
|
||||
|
||||
// load the algorithm's engine
|
||||
const engine$ = metadata$.pipe(
|
||||
withLatestReady(this.sdkService.client$),
|
||||
memoizedMap(
|
||||
(metadata) => {
|
||||
const engine = metadata.engine.create(this.provide.generator);
|
||||
([metadata, sdk]) => {
|
||||
const engine = metadata.engine.create(this.getGeneratorDependencies(sdk));
|
||||
|
||||
this.log.debug({ algorithm: metadata.id }, "engine cached");
|
||||
return engine;
|
||||
@@ -213,4 +217,10 @@ export class DefaultCredentialGeneratorService implements CredentialGeneratorSer
|
||||
|
||||
return this.provide.profile.constraints$(activeProfile, dependencies);
|
||||
}
|
||||
|
||||
getGeneratorDependencies(sdk: BitwardenClient): GeneratorDependencyProvider {
|
||||
const provider = this.provide.generator;
|
||||
provider.sdk = sdk;
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user