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";
|
||||
|
||||
// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop.
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
import { EncString } from "../../../key-management/crypto/models/enc-string";
|
||||
import { EncArrayBuffer } from "../../../platform/models/domain/enc-array-buffer";
|
||||
import { SymmetricCryptoKey } from "../../../platform/models/domain/symmetric-crypto-key";
|
||||
@@ -7,11 +5,11 @@ import { Cipher } from "../../models/domain/cipher";
|
||||
import { CipherResponse } from "../../models/response/cipher.response";
|
||||
|
||||
export abstract class CipherFileUploadService {
|
||||
upload: (
|
||||
abstract upload(
|
||||
cipher: Cipher,
|
||||
encFileName: EncString,
|
||||
encData: EncArrayBuffer,
|
||||
admin: boolean,
|
||||
dataEncKey: [SymmetricCryptoKey, EncString],
|
||||
) => Promise<CipherResponse>;
|
||||
): Promise<CipherResponse>;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
// FIXME: Update this file to be type safe and remove this and next line
|
||||
// @ts-strict-ignore
|
||||
|
||||
import { UserId } from "../../../types/guid";
|
||||
import { FolderData } from "../../models/data/folder.data";
|
||||
import { Folder } from "../../models/domain/folder";
|
||||
import { FolderResponse } from "../../models/response/folder.response";
|
||||
|
||||
export class FolderApiServiceAbstraction {
|
||||
save: (folder: Folder, userId: UserId) => Promise<FolderData>;
|
||||
delete: (id: string, userId: UserId) => Promise<any>;
|
||||
get: (id: string) => Promise<FolderResponse>;
|
||||
deleteAll: (userId: UserId) => Promise<void>;
|
||||
export abstract class FolderApiServiceAbstraction {
|
||||
abstract save(folder: Folder, userId: UserId): Promise<FolderData>;
|
||||
abstract delete(id: string, userId: UserId): Promise<any>;
|
||||
abstract get(id: string): Promise<FolderResponse>;
|
||||
abstract deleteAll(userId: UserId): Promise<void>;
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
|
||||
// This import has been flagged as unallowed for this class. It may be involved in a circular dependency loop.
|
||||
@@ -15,27 +13,27 @@ import { FolderWithIdRequest } from "../../models/request/folder-with-id.request
|
||||
import { FolderView } from "../../models/view/folder.view";
|
||||
|
||||
export abstract class FolderService implements UserKeyRotationDataProvider<FolderWithIdRequest> {
|
||||
folders$: (userId: UserId) => Observable<Folder[]>;
|
||||
folderViews$: (userId: UserId) => Observable<FolderView[]>;
|
||||
abstract folders$(userId: UserId): Observable<Folder[]>;
|
||||
abstract folderViews$(userId: UserId): Observable<FolderView[]>;
|
||||
|
||||
clearDecryptedFolderState: (userId: UserId) => Promise<void>;
|
||||
encrypt: (model: FolderView, key: SymmetricCryptoKey) => Promise<Folder>;
|
||||
get: (id: string, userId: UserId) => Promise<Folder>;
|
||||
getDecrypted$: (id: string, userId: UserId) => Observable<FolderView | undefined>;
|
||||
abstract clearDecryptedFolderState(userId: UserId): Promise<void>;
|
||||
abstract encrypt(model: FolderView, key: SymmetricCryptoKey): Promise<Folder>;
|
||||
abstract get(id: string, userId: UserId): Promise<Folder>;
|
||||
abstract getDecrypted$(id: string, userId: UserId): Observable<FolderView | undefined>;
|
||||
/**
|
||||
* @deprecated Use firstValueFrom(folders$) directly instead
|
||||
* @param userId The user id
|
||||
* @returns Promise of folders array
|
||||
*/
|
||||
getAllFromState: (userId: UserId) => Promise<Folder[]>;
|
||||
abstract getAllFromState(userId: UserId): Promise<Folder[]>;
|
||||
/**
|
||||
* @deprecated Only use in CLI!
|
||||
*/
|
||||
getFromState: (id: string, userId: UserId) => Promise<Folder>;
|
||||
abstract getFromState(id: string, userId: UserId): Promise<Folder>;
|
||||
/**
|
||||
* @deprecated Only use in CLI!
|
||||
*/
|
||||
getAllDecryptedFromState: (userId: UserId) => Promise<FolderView[]>;
|
||||
abstract getAllDecryptedFromState(userId: UserId): Promise<FolderView[]>;
|
||||
/**
|
||||
* Returns user folders re-encrypted with the new user key.
|
||||
* @param originalUserKey the original user key
|
||||
@@ -44,16 +42,16 @@ export abstract class FolderService implements UserKeyRotationDataProvider<Folde
|
||||
* @throws Error if new user key is null
|
||||
* @returns a list of user folders that have been re-encrypted with the new user key
|
||||
*/
|
||||
getRotatedData: (
|
||||
abstract getRotatedData(
|
||||
originalUserKey: UserKey,
|
||||
newUserKey: UserKey,
|
||||
userId: UserId,
|
||||
) => Promise<FolderWithIdRequest[]>;
|
||||
): Promise<FolderWithIdRequest[]>;
|
||||
}
|
||||
|
||||
export abstract class InternalFolderService extends FolderService {
|
||||
upsert: (folder: FolderData | FolderData[], userId: UserId) => Promise<void>;
|
||||
replace: (folders: { [id: string]: FolderData }, userId: UserId) => Promise<void>;
|
||||
clear: (userId: UserId) => Promise<void>;
|
||||
delete: (id: string | string[], userId: UserId) => Promise<any>;
|
||||
abstract upsert(folder: FolderData | FolderData[], userId: UserId): Promise<void>;
|
||||
abstract replace(folders: { [id: string]: FolderData }, userId: UserId): Promise<void>;
|
||||
abstract clear(userId: UserId): Promise<void>;
|
||||
abstract delete(id: string | string[], userId: UserId): Promise<any>;
|
||||
}
|
||||
|
||||
@@ -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 { SendView } from "../../tools/send/models/view/send.view";
|
||||
@@ -8,25 +6,25 @@ import { CipherView } from "../models/view/cipher.view";
|
||||
import { CipherViewLike } from "../utils/cipher-view-like-utils";
|
||||
|
||||
export abstract class SearchService {
|
||||
indexedEntityId$: (userId: UserId) => Observable<IndexedEntityId | null>;
|
||||
abstract indexedEntityId$(userId: UserId): Observable<IndexedEntityId | null>;
|
||||
|
||||
clearIndex: (userId: UserId) => Promise<void>;
|
||||
isSearchable: (userId: UserId, query: string) => Promise<boolean>;
|
||||
indexCiphers: (
|
||||
abstract clearIndex(userId: UserId): Promise<void>;
|
||||
abstract isSearchable(userId: UserId, query: string): Promise<boolean>;
|
||||
abstract indexCiphers(
|
||||
userId: UserId,
|
||||
ciphersToIndex: CipherView[],
|
||||
indexedEntityGuid?: string,
|
||||
) => Promise<void>;
|
||||
searchCiphers: <C extends CipherViewLike>(
|
||||
): Promise<void>;
|
||||
abstract searchCiphers<C extends CipherViewLike>(
|
||||
userId: UserId,
|
||||
query: string,
|
||||
filter?: ((cipher: C) => boolean) | ((cipher: C) => boolean)[],
|
||||
ciphers?: C[],
|
||||
) => Promise<C[]>;
|
||||
searchCiphersBasic: <C extends CipherViewLike>(
|
||||
): Promise<C[]>;
|
||||
abstract searchCiphersBasic<C extends CipherViewLike>(
|
||||
ciphers: C[],
|
||||
query: string,
|
||||
deleted?: boolean,
|
||||
) => C[];
|
||||
searchSends: (sends: SendView[], query: string) => SendView[];
|
||||
): C[];
|
||||
abstract searchSends(sends: SendView[], query: string): SendView[];
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
/**
|
||||
* Service for managing vault settings.
|
||||
@@ -9,42 +7,40 @@ export abstract class VaultSettingsService {
|
||||
* An observable monitoring the state of the enable passkeys setting.
|
||||
* The observable updates when the setting changes.
|
||||
*/
|
||||
enablePasskeys$: Observable<boolean>;
|
||||
abstract enablePasskeys$: Observable<boolean>;
|
||||
/**
|
||||
* An observable monitoring the state of the show cards on the current tab.
|
||||
*/
|
||||
showCardsCurrentTab$: Observable<boolean>;
|
||||
abstract showCardsCurrentTab$: Observable<boolean>;
|
||||
/**
|
||||
* An observable monitoring the state of the show identities on the current tab.
|
||||
*/
|
||||
showIdentitiesCurrentTab$: Observable<boolean>;
|
||||
/**
|
||||
abstract showIdentitiesCurrentTab$: Observable<boolean>;
|
||||
/**
|
||||
* An observable monitoring the state of the click items on the Vault view
|
||||
* for Autofill suggestions.
|
||||
*/
|
||||
clickItemsToAutofillVaultView$: Observable<boolean>;
|
||||
/**
|
||||
abstract clickItemsToAutofillVaultView$: Observable<boolean>;
|
||||
|
||||
/**
|
||||
* Saves the enable passkeys setting to disk.
|
||||
* @param value The new value for the passkeys setting.
|
||||
*/
|
||||
setEnablePasskeys: (value: boolean) => Promise<void>;
|
||||
abstract setEnablePasskeys(value: boolean): Promise<void>;
|
||||
/**
|
||||
* Saves the show cards on tab page setting to disk.
|
||||
* @param value The new value for the show cards on tab page setting.
|
||||
*/
|
||||
setShowCardsCurrentTab: (value: boolean) => Promise<void>;
|
||||
abstract setShowCardsCurrentTab(value: boolean): Promise<void>;
|
||||
/**
|
||||
* Saves the show identities on tab page setting to disk.
|
||||
* @param value The new value for the show identities on tab page setting.
|
||||
*/
|
||||
setShowIdentitiesCurrentTab: (value: boolean) => Promise<void>;
|
||||
abstract setShowIdentitiesCurrentTab(value: boolean): Promise<void>;
|
||||
/**
|
||||
* Saves the click items on vault View for Autofill suggestions to disk.
|
||||
* @param value The new value for the click items on vault View for
|
||||
* Autofill suggestions setting.
|
||||
*/
|
||||
setClickItemsToAutofillVaultView: (value: boolean) => Promise<void>;
|
||||
abstract setClickItemsToAutofillVaultView(value: boolean): Promise<void>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user