diff --git a/.changeset/tired-cycles-tease.md b/.changeset/tired-cycles-tease.md new file mode 100644 index 0000000..8863eeb --- /dev/null +++ b/.changeset/tired-cycles-tease.md @@ -0,0 +1,5 @@ +--- +"@agentcommercekit/vc": patch +--- + +Define explicit W3CCredential type to resolve TS compiler issues with inferred return types diff --git a/packages/vc/src/types.ts b/packages/vc/src/types.ts index bddef5d..5f8d857 100644 --- a/packages/vc/src/types.ts +++ b/packages/vc/src/types.ts @@ -1,8 +1,28 @@ -import type { - JwtCredentialPayload, - Verifiable, - W3CCredential -} from "did-jwt-vc" +/* eslint-disable @typescript-eslint/no-explicit-any */ +import type { JwtCredentialPayload, Verifiable } from "did-jwt-vc" + +type Extensible = T & Record + +export interface CredentialStatus { + id: string + type: string +} + +type W3CCredential = { + "@context": string[] + id?: string + type: string[] + issuer: Extensible<{ id: string }> + issuanceDate: string + expirationDate?: string + credentialSubject: Extensible<{ + id?: string + }> + credentialStatus?: CredentialStatus + + evidence?: any + termsOfUse?: any +} export type CredentialSubject = W3CCredential["credentialSubject"] export type { JwtCredentialPayload, Verifiable, W3CCredential } diff --git a/packages/vc/src/verification/verify-parsed-credential.ts b/packages/vc/src/verification/verify-parsed-credential.ts index 8e37781..933c327 100644 --- a/packages/vc/src/verification/verify-parsed-credential.ts +++ b/packages/vc/src/verification/verify-parsed-credential.ts @@ -32,6 +32,7 @@ function isVerifiable( ): credential is Verifiable { return ( "proof" in credential && + credential.proof !== null && typeof credential.proof === "object" && "type" in credential.proof )