forked from jsnbuchanan/crowd-funder-for-time-pwa
refactor: improve type safety in endorser server and common interfaces
- Add proper type definitions for AxiosErrorResponse with detailed error structure - Make KeyMeta fields required where needed (publicKeyHex, mnemonic, derivationPath) - Add QuantitativeValue type for consistent handling of numeric values - Fix type assertions and compatibility between GenericVerifiableCredential and its extensions - Improve error handling with proper type guards and assertions - Update VerifiableCredentialClaim interface with required fields - Add proper type assertions for claim objects in claimSummary and claimSpecialDescription - Fix BLANK_GENERIC_SERVER_RECORD to include required @context field Note: Some type issues with KeyMeta properties remain to be investigated, as TypeScript is not recognizing the updated interface changes.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
// similar to VerifiableCredentialSubject... maybe rename this
|
||||
export interface GenericVerifiableCredential {
|
||||
"@context"?: string;
|
||||
"@context": string | string[];
|
||||
"@type": string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
@@ -34,3 +34,144 @@ export interface ErrorResult extends ResultWithType {
|
||||
type: "error";
|
||||
error: InternalError;
|
||||
}
|
||||
|
||||
export interface KeyMeta {
|
||||
did: string;
|
||||
name?: string;
|
||||
publicKeyHex: string;
|
||||
mnemonic: string;
|
||||
derivationPath: string;
|
||||
registered?: boolean;
|
||||
profileImageUrl?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface QuantitativeValue extends GenericVerifiableCredential {
|
||||
'@type': 'QuantitativeValue';
|
||||
'@context': string | string[];
|
||||
amountOfThisGood: number;
|
||||
unitCode: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface AxiosErrorResponse {
|
||||
message?: string;
|
||||
response?: {
|
||||
data?: {
|
||||
error?: {
|
||||
message?: string;
|
||||
};
|
||||
[key: string]: unknown;
|
||||
};
|
||||
status?: number;
|
||||
config?: unknown;
|
||||
};
|
||||
config?: unknown;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface UserInfo {
|
||||
did: string;
|
||||
name: string;
|
||||
publicEncKey: string;
|
||||
registered: boolean;
|
||||
profileImageUrl?: string;
|
||||
nextPublicEncKeyHash?: string;
|
||||
}
|
||||
|
||||
export interface CreateAndSubmitClaimResult {
|
||||
success: boolean;
|
||||
error?: string;
|
||||
handleId?: string;
|
||||
}
|
||||
|
||||
export interface PlanSummaryRecord {
|
||||
handleId: string;
|
||||
issuer: string;
|
||||
claim: GenericVerifiableCredential;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface Agent {
|
||||
identifier?: string;
|
||||
did?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface ClaimObject {
|
||||
'@type': string;
|
||||
'@context'?: string | string[];
|
||||
fulfills?: Array<{
|
||||
'@type': string;
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
}>;
|
||||
object?: GenericVerifiableCredential;
|
||||
agent?: Agent;
|
||||
participant?: {
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface VerifiableCredentialClaim {
|
||||
'@context': string | string[];
|
||||
'@type': string;
|
||||
type: string[];
|
||||
credentialSubject: ClaimObject;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface GiveVerifiableCredential extends GenericVerifiableCredential {
|
||||
'@type': 'GiveAction';
|
||||
'@context': string | string[];
|
||||
object?: GenericVerifiableCredential;
|
||||
agent?: Agent;
|
||||
participant?: {
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
fulfills?: Array<{
|
||||
'@type': string;
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
}>;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface OfferVerifiableCredential extends GenericVerifiableCredential {
|
||||
'@type': 'OfferAction';
|
||||
'@context': string | string[];
|
||||
object?: GenericVerifiableCredential;
|
||||
agent?: Agent;
|
||||
participant?: {
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
itemOffered?: {
|
||||
description?: string;
|
||||
isPartOf?: {
|
||||
'@type': string;
|
||||
identifier: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
[key: string]: unknown;
|
||||
};
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface RegisterVerifiableCredential extends GenericVerifiableCredential {
|
||||
'@type': 'RegisterAction';
|
||||
'@context': string | string[];
|
||||
agent: {
|
||||
identifier: string;
|
||||
};
|
||||
object: string;
|
||||
participant?: {
|
||||
identifier: string;
|
||||
};
|
||||
identifier?: string;
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user