mirror of
https://github.com/bitwarden/directory-connector
synced 2025-12-05 23:53:21 +00:00
* Remove unused cipher-related code from jslib - Delete cipher.ts, cipherView.ts, sortedCiphersCache.ts - Delete search-ciphers.pipe.ts and icon.component files - Delete cipherData.ts, cipherResponse.ts, linkedIdType.ts - Delete field-related files (fieldData.ts, field.ts, fieldApi.ts, fieldView.ts) - Delete sync, emergency access, and attachment upload response files - Delete card and identity view files - Delete linkedFieldOption decorator - Remove cipher methods from StateService abstractions and implementations - Preserve ciphers property in AccountData as 'any' type for data compatibility * Remove unused Send feature and related password manager code from jslib - Delete Send domain models: send.ts, sendAccess.ts, sendFile.ts, sendText.ts - Delete Send data models: sendData.ts, sendFileData.ts, sendTextData.ts - Delete Send view models: sendView.ts, sendAccessView.ts, sendFileView.ts, sendTextView.ts - Delete Send API models: sendFileApi.ts, sendTextApi.ts - Delete Send response models: sendAccessResponse.ts, sendFileDownloadDataResponse.ts, sendFileUploadDataResponse.ts, sendResponse.ts - Delete Send enum: sendType.ts - Delete Send specs: send.spec.ts, sendAccess.spec.ts, sendFile.spec.ts, sendText.spec.ts - Remove Send methods from StateService abstractions and implementations - Remove getDecryptedSends/setDecryptedSends and getEncryptedSends/setEncryptedSends methods - Change sends property in AccountData to 'any' type for data compatibility - Fix import formatting and remove empty lines * Remove misc unused password manager models from jslib - Delete Core domain models: card.ts, identity.ts, secureNote.ts, attachment.ts - Delete Core data models: cardData.ts, identityData.ts, secureNoteData.ts, attachmentData.ts - Delete Core view models: secureNoteView.ts, attachmentView.ts - Delete Core API models: cardApi.ts, identityApi.ts, secureNoteApi.ts - Delete Core response models: attachmentResponse.ts - Delete Core enum: secureNoteType.ts - Delete Core specs: card.spec.ts, identity.spec.ts, secureNote.spec.ts, attachment.spec.ts * Remove unused Organization files (folders/collections) - Delete folder and collection domain models, data models, view models, response models, and spec files * Remove unused UI/UX settings methods from state service - Remove 20 password manager specific interface methods: - Autofill methods (4): getAutoFillOnPageLoadDefault, setAutoFillOnPageLoadDefault, getEnableAutoFillOnPageLoad, setEnableAutoFillOnPageLoad - Browser integration methods (4): getEnableBrowserIntegration, setEnableBrowserIntegration, getEnableBrowserIntegrationFingerprint, setEnableBrowserIntegrationFingerprint - Notification methods (4): getDisableAddLoginNotification, setDisableAddLoginNotification, getDisableChangedPasswordNotification, setDisableChangedPasswordNotification - Favicon methods (2): getDisableFavicon, setDisableFavicon - Gravatar methods (2): getEnableGravitars, setEnableGravitars - Card/Identity tab methods (4): getDontShowCardsCurrentTab, setDontShowCardsCurrentTab, getDontShowIdentitiesCurrentTab, setDontShowIdentitiesCurrentTab * Fix build errors * Delete leftover data models and stateService methods * Delete iframes and passwordReprompt
152 lines
4.7 KiB
TypeScript
152 lines
4.7 KiB
TypeScript
import { AuthenticationStatus } from "../../enums/authenticationStatus";
|
|
import { KdfType } from "../../enums/kdfType";
|
|
import { UriMatchType } from "../../enums/uriMatchType";
|
|
import { OrganizationData } from "../data/organizationData";
|
|
import { ProviderData } from "../data/providerData";
|
|
|
|
import { EncString } from "./encString";
|
|
import { EnvironmentUrls } from "./environmentUrls";
|
|
import { SymmetricCryptoKey } from "./symmetricCryptoKey";
|
|
|
|
export class EncryptionPair<TEncrypted, TDecrypted> {
|
|
encrypted?: TEncrypted;
|
|
decrypted?: TDecrypted;
|
|
}
|
|
|
|
export class DataEncryptionPair<TEncrypted, TDecrypted> {
|
|
encrypted?: { [id: string]: TEncrypted };
|
|
decrypted?: TDecrypted[];
|
|
}
|
|
|
|
export class AccountData {
|
|
ciphers?: any = new DataEncryptionPair<any, any>();
|
|
folders?: DataEncryptionPair<any, any> = new DataEncryptionPair<any, any>();
|
|
localData?: any;
|
|
sends?: any = new DataEncryptionPair<any, any>();
|
|
collections?: DataEncryptionPair<any, any> = new DataEncryptionPair<any, any>();
|
|
policies?: DataEncryptionPair<any, any> = new DataEncryptionPair<any, any>();
|
|
passwordGenerationHistory?: EncryptionPair<any[], any[]> = new EncryptionPair<any[], any[]>();
|
|
addEditCipherInfo?: any;
|
|
eventCollection?: any[];
|
|
organizations?: { [id: string]: OrganizationData };
|
|
providers?: { [id: string]: ProviderData };
|
|
}
|
|
|
|
export class AccountKeys {
|
|
cryptoMasterKey?: SymmetricCryptoKey;
|
|
cryptoMasterKeyAuto?: string;
|
|
cryptoMasterKeyB64?: string;
|
|
cryptoMasterKeyBiometric?: string;
|
|
cryptoSymmetricKey?: EncryptionPair<string, SymmetricCryptoKey> = new EncryptionPair<
|
|
string,
|
|
SymmetricCryptoKey
|
|
>();
|
|
organizationKeys?: EncryptionPair<any, Map<string, SymmetricCryptoKey>> = new EncryptionPair<
|
|
any,
|
|
Map<string, SymmetricCryptoKey>
|
|
>();
|
|
providerKeys?: EncryptionPair<any, Map<string, SymmetricCryptoKey>> = new EncryptionPair<
|
|
any,
|
|
Map<string, SymmetricCryptoKey>
|
|
>();
|
|
privateKey?: EncryptionPair<string, ArrayBuffer> = new EncryptionPair<string, ArrayBuffer>();
|
|
legacyEtmKey?: SymmetricCryptoKey;
|
|
publicKey?: ArrayBuffer;
|
|
apiKeyClientSecret?: string;
|
|
}
|
|
|
|
export class AccountProfile {
|
|
apiKeyClientId?: string;
|
|
authenticationStatus?: AuthenticationStatus;
|
|
convertAccountToKeyConnector?: boolean;
|
|
email?: string;
|
|
emailVerified?: boolean;
|
|
entityId?: string;
|
|
entityType?: string;
|
|
everBeenUnlocked?: boolean;
|
|
forcePasswordReset?: boolean;
|
|
hasPremiumPersonally?: boolean;
|
|
lastSync?: string;
|
|
userId?: string;
|
|
usesKeyConnector?: boolean;
|
|
keyHash?: string;
|
|
kdfIterations?: number;
|
|
kdfType?: KdfType;
|
|
}
|
|
|
|
export class AccountSettings {
|
|
autoConfirmFingerPrints?: boolean;
|
|
autoFillOnPageLoadDefault?: boolean;
|
|
biometricLocked?: boolean;
|
|
biometricUnlock?: boolean;
|
|
clearClipboard?: number;
|
|
collapsedGroupings?: string[];
|
|
defaultUriMatch?: UriMatchType;
|
|
disableAddLoginNotification?: boolean;
|
|
disableAutoBiometricsPrompt?: boolean;
|
|
disableAutoTotpCopy?: boolean;
|
|
disableBadgeCounter?: boolean;
|
|
disableChangedPasswordNotification?: boolean;
|
|
disableContextMenuItem?: boolean;
|
|
disableGa?: boolean;
|
|
dontShowCardsCurrentTab?: boolean;
|
|
dontShowIdentitiesCurrentTab?: boolean;
|
|
enableAlwaysOnTop?: boolean;
|
|
enableAutoFillOnPageLoad?: boolean;
|
|
enableBiometric?: boolean;
|
|
enableFullWidth?: boolean;
|
|
enableGravitars?: boolean;
|
|
environmentUrls: EnvironmentUrls = new EnvironmentUrls();
|
|
equivalentDomains?: any;
|
|
minimizeOnCopyToClipboard?: boolean;
|
|
neverDomains?: { [id: string]: any };
|
|
passwordGenerationOptions?: any;
|
|
usernameGenerationOptions?: any;
|
|
generatorOptions?: any;
|
|
pinProtected?: EncryptionPair<string, EncString> = new EncryptionPair<string, EncString>();
|
|
protectedPin?: string;
|
|
settings?: any; // TODO: Merge whatever is going on here into the AccountSettings model properly
|
|
vaultTimeout?: number;
|
|
vaultTimeoutAction?: string = "lock";
|
|
}
|
|
|
|
export class AccountTokens {
|
|
accessToken?: string;
|
|
decodedToken?: any;
|
|
refreshToken?: string;
|
|
securityStamp?: string;
|
|
}
|
|
|
|
export class Account {
|
|
data?: AccountData = new AccountData();
|
|
keys?: AccountKeys = new AccountKeys();
|
|
profile?: AccountProfile = new AccountProfile();
|
|
settings?: AccountSettings = new AccountSettings();
|
|
tokens?: AccountTokens = new AccountTokens();
|
|
|
|
constructor(init: Partial<Account>) {
|
|
Object.assign(this, {
|
|
data: {
|
|
...new AccountData(),
|
|
...init?.data,
|
|
},
|
|
keys: {
|
|
...new AccountKeys(),
|
|
...init?.keys,
|
|
},
|
|
profile: {
|
|
...new AccountProfile(),
|
|
...init?.profile,
|
|
},
|
|
settings: {
|
|
...new AccountSettings(),
|
|
...init?.settings,
|
|
},
|
|
tokens: {
|
|
...new AccountTokens(),
|
|
...init?.tokens,
|
|
},
|
|
});
|
|
}
|
|
}
|