import type * as RDF from '@rdfjs/types'; import type { ComunicaDataFactory } from './ComunicaDataFactory'; import type { FunctionArgumentsCache } from './ExpressionEvaluator'; import type { IDataDestination } from './IDataDestination'; import type { IProxyHandler } from './IProxyHandler'; import type { SourceType } from './IQueryEngine'; import type { QueryExplainMode } from './IQueryOperationResult'; import type { Logger } from './Logger'; /** * Query context when a string-based query was passed. */ export type QueryStringContext = RDF.QueryStringContext & IQueryContextCommon; /** * Query context when an algebra-based query was passed. */ export type QueryAlgebraContext = RDF.QueryAlgebraContext & IQueryContextCommon; /** * Common query context interface */ export interface IQueryContextCommon { destination?: IDataDestination; initialBindings?: RDF.Bindings; fileBaseIRI?: string; log?: Logger; datetime?: Date; queryTimestampHighResolution?: DOMHighResTimeStamp; httpProxyHandler?: IProxyHandler; lenient?: boolean; parseUnsupportedVersions?: boolean; httpIncludeCredentials?: boolean; httpAuth?: string; httpTimeout?: number; httpBodyTimeout?: boolean; httpRetryCount?: number; httpRetryDelayFallback?: number; httpRetryDelayLimit?: number; httpRetryStatusCodes?: number[]; httpRetryBodyCount?: number; httpRetryBodyDelayFallback?: number; httpRetryBodyAllowUnsafe?: boolean; httpRetryBodyMaxBytes?: number; httpAbortSignal?: AbortSignal; httpCache?: boolean; fetch?: typeof fetch; recoverBrokenLinks?: boolean; readOnly?: boolean; extensionFunctions?: Record Promise>; extensionFunctionsAlwaysPushdown?: boolean; extensionFunctionCreator?: (functionNamedNode: RDF.NamedNode) => ((args: RDF.Term[]) => Promise) | undefined; functionArgumentsCache?: FunctionArgumentsCache; explain?: QueryExplainMode; unionDefaultGraph?: boolean; traverse?: boolean; invalidateCache?: boolean; dataFactory?: ComunicaDataFactory; distinctConstruct?: boolean; rdfSerializationPrefixes?: Record; sources: SourceType[]; }