mirror of
https://github.com/bitwarden/browser
synced 2026-02-07 04:03:29 +00:00
* remove derived state, add cache in service. Fix ts strict errors
* cleanup
* promote vNextCollectionService
* wip
* replace callers in web WIP
* refactor tests for web
* update callers to use vNextCollectionServcie methods in CLI
* WIP make decryptMany public again, fix callers, imports
* wip cli
* wip desktop
* update callers in browser, fix tests
* remove in service cache
* cleanup
* fix test
* clean up
* address cr feedback
* remove duplicate userId
* clean up
* remove unused import
* fix vault-settings-import-nudge.service
* fix caching issue
* clean up
* refactor decryption, cleanup, update callers
* clean up
* Use in-memory statedefinition
* Ac/pm 12048 v next collection service pairing (#15239)
* Draft from pairing with Gibson
* Add todos
* Add comment
* wip
* refactor upsert
---------
Co-authored-by: Brandon <btreston@bitwarden.com>
* clean up
* fix state definitions
* fix linter error
* cleanup
* add test, fix shareReplay
* fix item-more-options component
* fix desktop build
* refactor state to account for null as an initial value, remove caching
* add proper cache, add unit test, update callers
* clean up
* fix routing when deleting collections
* cleanup
* use combineLatest
* fix ts-strict errors, fix error handling
* refactor Collection and CollectionView properties for ts-strict
* Revert "refactor Collection and CollectionView properties for ts-strict"
This reverts commit a5c63aab76.
---------
Co-authored-by: Thomas Rittson <trittson@bitwarden.com>
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
import { EncString } from "@bitwarden/common/key-management/crypto/models/enc-string";
|
|
import Domain, { EncryptableKeys } from "@bitwarden/common/platform/models/domain/domain-base";
|
|
import { OrgKey } from "@bitwarden/common/types/key";
|
|
|
|
import { CollectionData } from "./collection.data";
|
|
import { CollectionView } from "./collection.view";
|
|
|
|
export const CollectionTypes = {
|
|
SharedCollection: 0,
|
|
DefaultUserCollection: 1,
|
|
} as const;
|
|
|
|
export type CollectionType = (typeof CollectionTypes)[keyof typeof CollectionTypes];
|
|
|
|
export class Collection extends Domain {
|
|
id: string | undefined;
|
|
organizationId: string | undefined;
|
|
name: EncString | undefined;
|
|
externalId: string | undefined;
|
|
readOnly: boolean = false;
|
|
hidePasswords: boolean = false;
|
|
manage: boolean = false;
|
|
type: CollectionType = CollectionTypes.SharedCollection;
|
|
|
|
constructor(obj?: CollectionData | null) {
|
|
super();
|
|
if (obj == null) {
|
|
return;
|
|
}
|
|
|
|
this.buildDomainModel(
|
|
this,
|
|
obj,
|
|
{
|
|
id: null,
|
|
organizationId: null,
|
|
name: null,
|
|
externalId: null,
|
|
readOnly: null,
|
|
hidePasswords: null,
|
|
manage: null,
|
|
type: null,
|
|
},
|
|
["id", "organizationId", "readOnly", "hidePasswords", "manage", "type"],
|
|
);
|
|
}
|
|
|
|
decrypt(orgKey: OrgKey): Promise<CollectionView> {
|
|
return this.decryptObj<Collection, CollectionView>(
|
|
this,
|
|
new CollectionView(this),
|
|
["name"] as EncryptableKeys<Collection, CollectionView>[],
|
|
this.organizationId ?? null,
|
|
orgKey,
|
|
);
|
|
}
|
|
}
|