From 38c56f84c2b7b4e730bdaa328fa47c51c6224c38 Mon Sep 17 00:00:00 2001 From: Kevin Kredit Date: Wed, 28 May 2025 14:55:16 -0400 Subject: [PATCH] Improve type definition for the User class (#1857) --- openpgp.d.ts | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/openpgp.d.ts b/openpgp.d.ts index 137c0dfe..4379f7f9 100644 --- a/openpgp.d.ts +++ b/openpgp.d.ts @@ -120,12 +120,28 @@ export class Subkey { public revoke(primaryKey: SecretKeyPacket, reasonForRevocation?: ReasonForRevocation, date?: Date, config?: Config): Promise; } -export interface User { - userID: UserIDPacket | null; - userAttribute: UserAttributePacket | null; - selfCertifications: SignaturePacket[]; - otherCertifications: SignaturePacket[]; - revocationSignatures: SignaturePacket[]; +export class User { + constructor(userPacket: UserIDPacket | UserAttributePacket, mainKey: Key); + public readonly userID: UserIDPacket | null; + public readonly userAttribute: UserAttributePacket | null; + public selfCertifications: SignaturePacket[]; + public otherCertifications: SignaturePacket[]; + public revocationSignatures: SignaturePacket[]; + public readonly mainKey: Key; + public toPacketList(): PacketList; + public clone(): User; + public certify(signingKeys: PrivateKey[], date?: Date, config?: Config): Promise; + public isRevoked( + certificate: SignaturePacket, + keyPacket?: PublicSubkeyPacket | SecretSubkeyPacket | PublicKeyPacket | SecretKeyPacket, + date?: Date, + config?: Config, + ): Promise; + public verifyCertificate(certificate: SignaturePacket, verificationKeys: PublicKey[], date?: Date, config?: Config): Promise; + public verifyAllCertifications(verificationKeys: PublicKey[], date?: Date, config?: Config): Promise<{ keyID: KeyID; valid: boolean | null }[]>; + public verify(date?: Date, config?: Config): Promise; + public update(sourceUser: User, date?: Date, config?: Config): Promise; + public revoke(primaryKey: SecretKeyPacket, reasonForRevocation?: ReasonForRevocation, date?: Date, config?: Config): Promise; } export interface PrimaryUser {