1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 00:03:56 +00:00

[PM-5468] Ensure prototypes available on memory stored objects (#7399)

* Hide account switcher in addEdit generator

* Handle AddEditCipher deserialization

* Opaque types are not serializable

* Better handle jsonification of login uris

* Ensure we don't overwrite original with clone

* Ensure cipherView prototype is always restored if it exists
This commit is contained in:
Matt Gibson
2024-01-02 10:46:45 -05:00
committed by GitHub
parent 90b794c74d
commit a682f2a0ef
9 changed files with 51 additions and 17 deletions

View File

@@ -1,6 +1,5 @@
import { Jsonify } from "type-fest";
import { Utils } from "../../../platform/misc/utils";
import { DeepJsonify } from "../../../types/deep-jsonify";
import { LoginLinkedId as LinkedId, UriMatchType } from "../../enums";
import { linkedFieldOption } from "../../linked-field-option.decorator";
import { Login } from "../domain/login";
@@ -81,10 +80,10 @@ export class LoginView extends ItemView {
return this.uris.some((uri) => uri.matchesUri(targetUri, equivalentDomains, defaultUriMatch));
}
static fromJSON(obj: Partial<Jsonify<LoginView>>): LoginView {
static fromJSON(obj: Partial<DeepJsonify<LoginView>>): LoginView {
const passwordRevisionDate =
obj.passwordRevisionDate == null ? null : new Date(obj.passwordRevisionDate);
const uris = obj.uris.map((uri: any) => LoginUriView.fromJSON(uri));
const uris = obj.uris.map((uri) => LoginUriView.fromJSON(uri));
const fido2Credentials = obj.fido2Credentials?.map((key) => Fido2CredentialView.fromJSON(key));
return Object.assign(new LoginView(), obj, {