anon-identity
Version:
Decentralized identity framework with DIDs, Verifiable Credentials, and privacy-preserving selective disclosure
71 lines • 2.61 kB
TypeScript
import { VerifiablePresentation } from '../types';
import { VerificationResult } from './service-provider';
import { VerificationError, VerificationErrorCode } from './verification-errors';
export interface BatchVerificationResult {
presentationIndex: number;
presentationId?: string;
result: VerificationResult;
processingTime: number;
}
export interface BatchRevocationResult {
credentialId: string;
isRevoked: boolean;
error?: VerificationError;
processingTime: number;
}
export interface BatchOperationOptions {
maxConcurrency?: number;
timeout?: number;
continueOnError?: boolean;
}
export declare class BatchOperations {
private options;
private defaultOptions;
constructor(options?: BatchOperationOptions);
/**
* Verify multiple presentations in parallel with controlled concurrency
*/
batchVerifyPresentations(presentations: VerifiablePresentation[], verifyFunction: (presentation: VerifiablePresentation) => Promise<VerificationResult>): Promise<BatchVerificationResult[]>;
/**
* Check multiple credential revocations in parallel
*/
batchCheckRevocations(credentialIds: string[], checkFunction: (credentialId: string) => Promise<boolean>): Promise<Map<string, BatchRevocationResult>>;
/**
* Batch verify presentations with revocation checks
*/
batchVerifyWithRevocationCheck(presentations: VerifiablePresentation[], verifyFunction: (presentation: VerifiablePresentation) => Promise<VerificationResult>, checkRevocationFunction: (credentialId: string) => Promise<boolean>): Promise<BatchVerificationResult[]>;
/**
* Get batch operation statistics
*/
generateBatchStatistics(results: BatchVerificationResult[]): {
total: number;
valid: number;
invalid: number;
averageProcessingTime: number;
maxProcessingTime: number;
minProcessingTime: number;
errorDistribution: Record<string, number>;
};
/**
* Filter results by criteria
*/
filterResults(results: BatchVerificationResult[], criteria: {
validOnly?: boolean;
maxProcessingTime?: number;
minProcessingTime?: number;
excludeErrorCodes?: VerificationErrorCode[];
}): BatchVerificationResult[];
/**
* Utility: Add timeout to a promise
*/
private withTimeout;
/**
* Utility: Split array into chunks
*/
private chunkArray;
/**
* Extract presentation ID from presentation object
*/
private extractPresentationId;
}
//# sourceMappingURL=batch-operations.d.ts.map