mirror of
https://github.com/bitwarden/browser
synced 2025-12-20 18:23:31 +00:00
[PM-24030] Migrate abstract services in libs/common strict TS (#15727)
Migrates the abstract classes in libs/common to be strict ts compatible. Primarily by adding abstract to every field and converting it to a function syntax instead of lambda.
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { Observable } from "rxjs";
|
||||
|
||||
import { OtherDeviceKeysUpdateRequest } from "@bitwarden/common/auth/models/request/update-devices-trust.request";
|
||||
@@ -15,51 +13,51 @@ export abstract class DeviceTrustServiceAbstraction {
|
||||
* by Platform
|
||||
* @description Checks if the device trust feature is supported for the active user.
|
||||
*/
|
||||
supportsDeviceTrust$: Observable<boolean>;
|
||||
abstract supportsDeviceTrust$: Observable<boolean>;
|
||||
|
||||
/**
|
||||
* Emits when a device has been trusted. This emission is specifically for the purpose of notifying
|
||||
* the consuming component to display a toast informing the user the device has been trusted.
|
||||
*/
|
||||
deviceTrusted$: Observable<void>;
|
||||
abstract deviceTrusted$: Observable<void>;
|
||||
|
||||
/**
|
||||
* @description Checks if the device trust feature is supported for the given user.
|
||||
*/
|
||||
supportsDeviceTrustByUserId$: (userId: UserId) => Observable<boolean>;
|
||||
abstract supportsDeviceTrustByUserId$(userId: UserId): Observable<boolean>;
|
||||
|
||||
/**
|
||||
* @description Retrieves the users choice to trust the device which can only happen after decryption
|
||||
* Note: this value should only be used once and then reset
|
||||
*/
|
||||
getShouldTrustDevice: (userId: UserId) => Promise<boolean | null>;
|
||||
setShouldTrustDevice: (userId: UserId, value: boolean) => Promise<void>;
|
||||
abstract getShouldTrustDevice(userId: UserId): Promise<boolean | null>;
|
||||
abstract setShouldTrustDevice(userId: UserId, value: boolean): Promise<void>;
|
||||
|
||||
trustDeviceIfRequired: (userId: UserId) => Promise<void>;
|
||||
abstract trustDeviceIfRequired(userId: UserId): Promise<void>;
|
||||
|
||||
trustDevice: (userId: UserId) => Promise<DeviceResponse>;
|
||||
abstract trustDevice(userId: UserId): Promise<DeviceResponse>;
|
||||
|
||||
/** Retrieves the device key if it exists from state or secure storage if supported for the active user. */
|
||||
getDeviceKey: (userId: UserId) => Promise<DeviceKey | null>;
|
||||
decryptUserKeyWithDeviceKey: (
|
||||
abstract getDeviceKey(userId: UserId): Promise<DeviceKey | null>;
|
||||
abstract decryptUserKeyWithDeviceKey(
|
||||
userId: UserId,
|
||||
encryptedDevicePrivateKey: EncString,
|
||||
encryptedUserKey: EncString,
|
||||
deviceKey: DeviceKey,
|
||||
) => Promise<UserKey | null>;
|
||||
rotateDevicesTrust: (
|
||||
): Promise<UserKey | null>;
|
||||
abstract rotateDevicesTrust(
|
||||
userId: UserId,
|
||||
newUserKey: UserKey,
|
||||
masterPasswordHash: string,
|
||||
) => Promise<void>;
|
||||
): Promise<void>;
|
||||
/**
|
||||
* Notifies the server that the device has a device key, but didn't receive any associated decryption keys.
|
||||
* Note: For debugging purposes only.
|
||||
*/
|
||||
recordDeviceTrustLoss: () => Promise<void>;
|
||||
getRotatedData: (
|
||||
abstract recordDeviceTrustLoss(): Promise<void>;
|
||||
abstract getRotatedData(
|
||||
oldUserKey: UserKey,
|
||||
newUserKey: UserKey,
|
||||
userId: UserId,
|
||||
) => Promise<OtherDeviceKeysUpdateRequest[]>;
|
||||
): Promise<OtherDeviceKeysUpdateRequest[]>;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { Observable } from "rxjs";
|
||||
|
||||
import { UserId } from "../../../types/guid";
|
||||
@@ -13,11 +11,11 @@ export abstract class VaultTimeoutSettingsService {
|
||||
* @param vaultTimeoutAction The vault timeout action
|
||||
* @param userId The user id to set the data for.
|
||||
*/
|
||||
setVaultTimeoutOptions: (
|
||||
abstract setVaultTimeoutOptions(
|
||||
userId: UserId,
|
||||
vaultTimeout: VaultTimeout,
|
||||
vaultTimeoutAction: VaultTimeoutAction,
|
||||
) => Promise<void>;
|
||||
): Promise<void>;
|
||||
|
||||
/**
|
||||
* Get the available vault timeout actions for the current user
|
||||
@@ -25,13 +23,13 @@ export abstract class VaultTimeoutSettingsService {
|
||||
* **NOTE:** This observable is not yet connected to the state service, so it will not update when the state changes
|
||||
* @param userId The user id to check. If not provided, the current user is used
|
||||
*/
|
||||
availableVaultTimeoutActions$: (userId?: string) => Observable<VaultTimeoutAction[]>;
|
||||
abstract availableVaultTimeoutActions$(userId?: string): Observable<VaultTimeoutAction[]>;
|
||||
|
||||
/**
|
||||
* Evaluates the user's available vault timeout actions and returns a boolean representing
|
||||
* if the user can lock or not
|
||||
*/
|
||||
canLock: (userId: string) => Promise<boolean>;
|
||||
abstract canLock(userId: string): Promise<boolean>;
|
||||
|
||||
/**
|
||||
* Gets the vault timeout action for the given user id. The returned value is
|
||||
@@ -41,7 +39,7 @@ export abstract class VaultTimeoutSettingsService {
|
||||
* A new action will be emitted if the current state changes or if the user's policy changes and the new policy affects the action.
|
||||
* @param userId - the user id to get the vault timeout action for
|
||||
*/
|
||||
getVaultTimeoutActionByUserId$: (userId: string) => Observable<VaultTimeoutAction>;
|
||||
abstract getVaultTimeoutActionByUserId$(userId: string): Observable<VaultTimeoutAction>;
|
||||
|
||||
/**
|
||||
* Get the vault timeout for the given user id. The returned value is calculated based on the current state
|
||||
@@ -50,14 +48,14 @@ export abstract class VaultTimeoutSettingsService {
|
||||
* A new timeout will be emitted if the current state changes or if the user's policy changes and the new policy affects the timeout.
|
||||
* @param userId The user id to get the vault timeout for
|
||||
*/
|
||||
getVaultTimeoutByUserId$: (userId: string) => Observable<VaultTimeout>;
|
||||
abstract getVaultTimeoutByUserId$(userId: string): Observable<VaultTimeout>;
|
||||
|
||||
/**
|
||||
* Has the user enabled unlock with Biometric.
|
||||
* @param userId The user id to check. If not provided, the current user is used
|
||||
* @returns boolean true if biometric lock is set
|
||||
*/
|
||||
isBiometricLockSet: (userId?: string) => Promise<boolean>;
|
||||
abstract isBiometricLockSet(userId?: string): Promise<boolean>;
|
||||
|
||||
clear: (userId: UserId) => Promise<void>;
|
||||
abstract clear(userId: UserId): Promise<void>;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
export abstract class VaultTimeoutService {
|
||||
checkVaultTimeout: () => Promise<void>;
|
||||
lock: (userId?: string) => Promise<void>;
|
||||
logOut: (userId?: string) => Promise<void>;
|
||||
abstract checkVaultTimeout(): Promise<void>;
|
||||
abstract lock(userId?: string): Promise<void>;
|
||||
abstract logOut(userId?: string): Promise<void>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user