/// import type { ExecutionArgs } from 'graphql'; import type { autoDisposeSymbol, hiveClientSymbol } from '../client.js'; import type { AgentOptions } from './agent.js'; import type { SchemaReporter } from './reporting.js'; export interface HiveClient { [hiveClientSymbol]: true; [autoDisposeSymbol]: boolean | NodeJS.Signals[]; info(): Promise; reportSchema: SchemaReporter['report']; /** Collect usage for Query and Mutation operations */ collectUsage(): CollectUsageCallback; /** Collect usage for Subscription operations */ collectSubscriptionUsage(args: { args: ExecutionArgs; }): void; createInstrumentedExecute(executeImpl: any): any; createInstrumentedSubscribe(executeImpl: any): any; dispose(): Promise; } export type AsyncIterableIteratorOrValue = AsyncIterableIterator | T; export type AsyncIterableOrValue = AsyncIterable | T; export type AbortAction = { action: 'abort'; reason: string; logging: boolean; }; export type CollectUsageCallback = (args: ExecutionArgs, result: GraphQLErrorsResult | AbortAction) => void; export interface ClientInfo { name: string; version: string; } export interface Logger { info(msg: string): void; error(error: any, ...data: any[]): void; } export interface HiveUsagePluginOptions { /** * Custom endpoint to collect schema usage * * @deprecated use `options.selfHosted.usageEndpoint` instead * * Points to Hive by default */ endpoint?: string; /** * Extract client info from GraphQL Context */ clientInfo?(context: any): null | undefined | ClientInfo; /** * Hive uses LRU cache to store info about operations. * This option represents the maximum size of the cache. * * Default: 1000 */ max?: number; /** * Hive uses LRU cache to store info about operations. * This option represents the time-to-live of every cached operation. * * Default: no ttl */ ttl?: number; /** * A list of operations (by name or regular expression) that should be excluded from reporting. */ exclude?: Array; /** * Sample rate to determine sampling. * 0.0 = 0% chance of being sent * 1.0 = 100% chance of being sent. * * Default: 1.0 */ sampleRate?: number; /** * Compute sample rate dynamically. * * If `sampler` is defined, `sampleRate` is ignored. * * @returns A sample rate between 0 and 1. * 0.0 = 0% chance of being sent * 1.0 = 100% chance of being sent. * true = 100% * false = 0% */ sampler?: (context: SamplingContext) => number | boolean; /** * (Experimental) Enables collecting Input fields usage based on the variables passed to the operation. * * Default: false */ processVariables?: boolean; } export interface SamplingContext extends Pick { operationName: string; } export interface HiveReportingPluginOptions { /** * Custom endpoint to collect schema reports * * @deprecated use `options.selfHosted.usageEndpoint` instead * * Points to Hive by default */ endpoint?: string; /** * Author of current version of the schema */ author: string; /** * Commit SHA hash (or any identifier) related to the schema version */ commit: string; /** * URL to the service (use only for distributed schemas) */ serviceUrl?: string; /** * Name of the service (use only for distributed schemas) */ serviceName?: string; } export interface HiveSelfHostingOptions { /** * Point to your own instance of GraphQL Hive API * * Used by schema reporting and token info. */ graphqlEndpoint: string; /** * Address of your own GraphQL Hive application * * Used by token info to generate a link to the organization, project and target. */ applicationUrl: string; /** * Point to your own instance of GraphQL Hive Usage API * * Used by usage reporting */ usageEndpoint?: string; } type OptionalWhenFalse = T | (Omit & { [P in KCond]: false; } & { [P in KExcluded]?: T[KExcluded]; }); export type HivePluginOptions = OptionalWhenFalse<{ /** * Enable/Disable Hive * * Default: true */ enabled?: boolean; /** * Debugging mode * * Default: false */ debug?: boolean; /** * Access Token */ token: string; /** * Use when self-hosting GraphQL Hive */ selfHosting?: HiveSelfHostingOptions; agent?: Omit; /** * Collects schema usage based on operations * * Disabled by default */ usage?: HiveUsagePluginOptions | boolean; /** * Schema reporting * * Disabled by default */ reporting?: HiveReportingPluginOptions | false; /** * Automatically dispose the client when the process is terminated * * Apollo: Enabled by default * Yoga / Envelop: Enabled by default for SIGINT and SIGTERM signals */ autoDispose?: boolean | NodeJS.Signals[]; }, 'enabled', 'token'>; export type Maybe = null | undefined | T; export interface GraphQLErrorsResult { errors?: ReadonlyArray<{ message: string; path?: Maybe>; }>; } export interface SupergraphSDLFetcherOptions { endpoint: string; key: string; } export interface SchemaFetcherOptions { endpoint: string; key: string; } export interface ServicesFetcherOptions { endpoint: string; key: string; } export {}; //# sourceMappingURL=types.d.ts.map