UNPKG

@vqp/core

Version:

Core VQP protocol implementation - adapter-agnostic

81 lines 2.7 kB
/** * Query Builder - Fluent interface for building VQP queries */ import { VQPQuery, ResponseModeType } from './types.js'; export declare class QueryBuilder { private query; constructor(); /** * Set the requester DID */ requester(did: string): QueryBuilder; /** * Set the target DID (optional for broadcast queries) */ target(did: string): QueryBuilder; /** * Set response mode for the query */ responseMode(mode: ResponseModeType, config?: any): QueryBuilder; /** * Set strict response mode (default) - only returns boolean result */ strict(): QueryBuilder; /** * Set consensual response mode - returns actual value if consent is granted */ consensual(justification?: string, consentRequired?: boolean): QueryBuilder; /** * Set reciprocal response mode - requires mutual verification */ reciprocal(requesterProof: any, requiredClaims: string[]): QueryBuilder; /** * Set obfuscated response mode - returns obfuscated actual value */ obfuscated(method: 'range' | 'noise' | 'rounding', options?: any): QueryBuilder; /** * Set the vocabulary URI */ vocabulary(vocabUri: string): QueryBuilder; /** * Set the query expression */ expression(expr: object): QueryBuilder; /** * Set a custom query ID */ id(queryId: string): QueryBuilder; /** * Set a custom timestamp */ timestamp(timestamp: string): QueryBuilder; /** * Set the query language (defaults to jsonlogic@1.0.0) */ language(lang: 'jsonlogic@1.0.0'): QueryBuilder; /** * Build the complete VQP query */ build(): VQPQuery; /** * Create a query with a simple field comparison */ static compare(requester: string, vocabulary: string, field: string, operator: '>=' | '<=' | '==' | '!=' | '>' | '<', value: any, target?: string): VQPQuery; /** * Create a query with an 'and' condition */ static and(requester: string, vocabulary: string, conditions: object[], target?: string): VQPQuery; /** * Create a query with an 'or' condition */ static or(requester: string, vocabulary: string, conditions: object[], target?: string): VQPQuery; /** * Create a query with an 'in' condition (array membership) */ static in(requester: string, vocabulary: string, value: any, arrayField: string, target?: string): VQPQuery; /** * Create a query from raw JSONLogic expression */ static fromExpression(requester: string, vocabulary: string, expression: object, target?: string): VQPQuery; } //# sourceMappingURL=query-builder.d.ts.map