@reveldigital/mcp-graphql-proxy 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/bin/cli.d.ts +6 -0
  2. package/dist/bin/cli.d.ts.map +1 -0
  3. package/dist/bin/cli.js +7 -0
  4. package/dist/bin/cli.js.map +1 -0
  5. package/dist/core/cache.d.ts +61 -0
  6. package/dist/core/cache.d.ts.map +1 -0
  7. package/dist/core/cache.js +147 -0
  8. package/dist/core/cache.js.map +1 -0
  9. package/dist/core/graphql-client.d.ts +48 -0
  10. package/dist/core/graphql-client.d.ts.map +1 -0
  11. package/dist/core/graphql-client.js +210 -0
  12. package/dist/core/graphql-client.js.map +1 -0
  13. package/dist/core/query-builder.d.ts +90 -0
  14. package/dist/core/query-builder.d.ts.map +1 -0
  15. package/dist/core/query-builder.js +259 -0
  16. package/dist/core/query-builder.js.map +1 -0
  17. package/dist/core/response-optimizer.d.ts +59 -0
  18. package/dist/core/response-optimizer.d.ts.map +1 -0
  19. package/dist/core/response-optimizer.js +197 -0
  20. package/dist/core/response-optimizer.js.map +1 -0
  21. package/dist/index.d.ts +16 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +377 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/types/auth.d.ts +146 -0
  26. package/dist/types/auth.d.ts.map +1 -0
  27. package/dist/types/auth.js +22 -0
  28. package/dist/types/auth.js.map +1 -0
  29. package/dist/types/cache.d.ts +162 -0
  30. package/dist/types/cache.d.ts.map +1 -0
  31. package/dist/types/cache.js +34 -0
  32. package/dist/types/cache.js.map +1 -0
  33. package/dist/types/config.d.ts +108 -0
  34. package/dist/types/config.d.ts.map +1 -0
  35. package/dist/types/config.js +37 -0
  36. package/dist/types/config.js.map +1 -0
  37. package/dist/types/graphql-proxy.d.ts +243 -0
  38. package/dist/types/graphql-proxy.d.ts.map +1 -0
  39. package/dist/types/graphql-proxy.js +142 -0
  40. package/dist/types/graphql-proxy.js.map +1 -0
  41. package/dist/types/index.d.ts +15 -0
  42. package/dist/types/index.d.ts.map +1 -0
  43. package/dist/types/index.js +16 -0
  44. package/dist/types/index.js.map +1 -0
  45. package/dist/types/logging.d.ts +223 -0
  46. package/dist/types/logging.d.ts.map +1 -0
  47. package/dist/types/logging.js +67 -0
  48. package/dist/types/logging.js.map +1 -0
  49. package/dist/types/mcp.d.ts +160 -0
  50. package/dist/types/mcp.d.ts.map +1 -0
  51. package/dist/types/mcp.js +126 -0
  52. package/dist/types/mcp.js.map +1 -0
  53. package/dist/types/metrics.d.ts +237 -0
  54. package/dist/types/metrics.d.ts.map +1 -0
  55. package/dist/types/metrics.js +26 -0
  56. package/dist/types/metrics.js.map +1 -0
  57. package/dist/types/rate-limit.d.ts +144 -0
  58. package/dist/types/rate-limit.d.ts.map +1 -0
  59. package/dist/types/rate-limit.js +43 -0
  60. package/dist/types/rate-limit.js.map +1 -0
  61. package/dist/types/tenant.d.ts +176 -0
  62. package/dist/types/tenant.d.ts.map +1 -0
  63. package/dist/types/tenant.js +63 -0
  64. package/dist/types/tenant.js.map +1 -0
  65. package/dist/types/transformation.d.ts +198 -0
  66. package/dist/types/transformation.d.ts.map +1 -0
  67. package/dist/types/transformation.js +51 -0
  68. package/dist/types/transformation.js.map +1 -0
  69. package/package.json +77 -0
  70. package/src/types/schema.graphql +2712 -0
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Caching Types
3
+ *
4
+ * Cache configuration, entries, and statistics interfaces.
5
+ */
6
+ /**
7
+ * Cache configuration
8
+ */
9
+ export interface CacheConfig {
10
+ /** Enable caching */
11
+ enabled: boolean;
12
+ /** Cache storage backend */
13
+ storage: CacheStorageType;
14
+ /** Default TTL in seconds */
15
+ defaultTtlSeconds: number;
16
+ /** Maximum cache size in MB */
17
+ maxSizeMb: number;
18
+ /** Maximum number of entries */
19
+ maxEntries?: number;
20
+ /** Per-operation TTL overrides */
21
+ operationTtl: OperationTtlConfig;
22
+ /** Cache key strategy */
23
+ keyStrategy: CacheKeyStrategy;
24
+ /** Operations to cache (whitelist) */
25
+ cacheableOperations: string[];
26
+ /** Operations to never cache (blacklist) */
27
+ excludedOperations: string[];
28
+ /** Redis options if storage is 'redis' */
29
+ redisOptions?: RedisCacheOptions;
30
+ /** SQLite options if storage is 'sqlite' */
31
+ sqliteOptions?: SqliteCacheOptions;
32
+ }
33
+ /**
34
+ * Cache storage backend types
35
+ */
36
+ export type CacheStorageType = 'memory' | 'redis' | 'sqlite';
37
+ /**
38
+ * Per-operation TTL configuration
39
+ */
40
+ export interface OperationTtlConfig {
41
+ /** TTL for resource list operations */
42
+ 'resources/list'?: number;
43
+ /** TTL for resource read operations */
44
+ 'resources/read'?: number;
45
+ /** TTL for tool list operations */
46
+ 'tools/list'?: number;
47
+ /** TTL for prompt list operations */
48
+ 'prompts/list'?: number;
49
+ /** Custom operation TTLs */
50
+ [operation: string]: number | undefined;
51
+ }
52
+ /**
53
+ * Cache key generation strategies
54
+ */
55
+ export type CacheKeyStrategy = 'full-request' | 'method-params' | 'custom';
56
+ /**
57
+ * Redis cache storage options
58
+ */
59
+ export interface RedisCacheOptions {
60
+ /** Redis host */
61
+ host: string;
62
+ /** Redis port */
63
+ port: number;
64
+ /** Redis password */
65
+ password?: string;
66
+ /** Redis database number */
67
+ db?: number;
68
+ /** Key prefix for cache data */
69
+ keyPrefix?: string;
70
+ /** Connection timeout in milliseconds */
71
+ connectTimeout?: number;
72
+ }
73
+ /**
74
+ * SQLite cache storage options
75
+ */
76
+ export interface SqliteCacheOptions {
77
+ /** Path to SQLite database file */
78
+ path: string;
79
+ /** WAL mode enabled */
80
+ walMode?: boolean;
81
+ }
82
+ /**
83
+ * Cache entry structure
84
+ */
85
+ export interface CacheEntry<T = unknown> {
86
+ /** Cache key */
87
+ key: string;
88
+ /** Cached value */
89
+ value: T;
90
+ /** Creation timestamp */
91
+ createdAt: Date;
92
+ /** Expiration timestamp */
93
+ expiresAt: Date;
94
+ /** Hit count for analytics */
95
+ hitCount: number;
96
+ /** Last access timestamp */
97
+ lastAccessedAt: Date;
98
+ /** Size in bytes */
99
+ sizeBytes: number;
100
+ /** Tags for cache invalidation */
101
+ tags: string[];
102
+ /** Tenant ID if multi-tenant */
103
+ tenantId?: string;
104
+ /** MCP method associated */
105
+ method?: string;
106
+ }
107
+ /**
108
+ * Cache statistics
109
+ */
110
+ export interface CacheStats {
111
+ /** Total cache hits */
112
+ hits: number;
113
+ /** Total cache misses */
114
+ misses: number;
115
+ /** Hit rate percentage (0-100) */
116
+ hitRate: number;
117
+ /** Current entry count */
118
+ entryCount: number;
119
+ /** Current size in bytes */
120
+ sizeBytes: number;
121
+ /** Maximum size in bytes */
122
+ maxSizeBytes: number;
123
+ /** Eviction count */
124
+ evictions: number;
125
+ /** Oldest entry timestamp */
126
+ oldestEntry?: Date;
127
+ /** Newest entry timestamp */
128
+ newestEntry?: Date;
129
+ }
130
+ /**
131
+ * Cache operation result
132
+ */
133
+ export interface CacheResult<T = unknown> {
134
+ /** Was the value found in cache? */
135
+ hit: boolean;
136
+ /** Cached value if hit */
137
+ value?: T;
138
+ /** Cache entry metadata if hit */
139
+ entry?: CacheEntry<T>;
140
+ /** Time to retrieve in milliseconds */
141
+ retrievalTimeMs: number;
142
+ }
143
+ /**
144
+ * Cache invalidation request
145
+ */
146
+ export interface CacheInvalidationRequest {
147
+ /** Invalidation type */
148
+ type: 'key' | 'pattern' | 'tag' | 'tenant' | 'all';
149
+ /** Key for 'key' type */
150
+ key?: string;
151
+ /** Pattern for 'pattern' type (glob-style) */
152
+ pattern?: string;
153
+ /** Tags for 'tag' type */
154
+ tags?: string[];
155
+ /** Tenant ID for 'tenant' type */
156
+ tenantId?: string;
157
+ }
158
+ /**
159
+ * Default cache configuration
160
+ */
161
+ export declare const DEFAULT_CACHE_CONFIG: CacheConfig;
162
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/types/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Caching Types
3
+ *
4
+ * Cache configuration, entries, and statistics interfaces.
5
+ */
6
+ /**
7
+ * Default cache configuration
8
+ */
9
+ export const DEFAULT_CACHE_CONFIG = {
10
+ enabled: true,
11
+ storage: 'memory',
12
+ defaultTtlSeconds: 300, // 5 minutes
13
+ maxSizeMb: 100,
14
+ maxEntries: 10000,
15
+ operationTtl: {
16
+ 'tools/list': 600, // 10 minutes - tool list rarely changes
17
+ 'prompts/list': 600, // 10 minutes
18
+ 'resources/list': 300, // 5 minutes
19
+ 'resources/read': 60, // 1 minute - resource content may change
20
+ },
21
+ keyStrategy: 'method-params',
22
+ cacheableOperations: [
23
+ 'tools/list',
24
+ 'prompts/list',
25
+ 'prompts/get',
26
+ 'resources/list',
27
+ 'resources/read',
28
+ 'resources/templates/list',
29
+ ],
30
+ excludedOperations: [
31
+ 'tools/call', // Never cache tool calls - they have side effects
32
+ ],
33
+ };
34
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/types/cache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgNH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAgB;IAC/C,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,QAAQ;IACjB,iBAAiB,EAAE,GAAG,EAAE,YAAY;IACpC,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE;QACZ,YAAY,EAAE,GAAG,EAAO,wCAAwC;QAChE,cAAc,EAAE,GAAG,EAAK,aAAa;QACrC,gBAAgB,EAAE,GAAG,EAAG,YAAY;QACpC,gBAAgB,EAAE,EAAE,EAAI,yCAAyC;KAClE;IACD,WAAW,EAAE,eAAe;IAC5B,mBAAmB,EAAE;QACnB,YAAY;QACZ,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,gBAAgB;QAChB,0BAA0B;KAC3B;IACD,kBAAkB,EAAE;QAClB,YAAY,EAAE,kDAAkD;KACjE;CACF,CAAC"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Core Configuration Types
3
+ *
4
+ * Main proxy configuration interfaces defining server, upstream, and feature settings.
5
+ */
6
+ import type { AuthConfig } from './auth.js';
7
+ import type { CacheConfig } from './cache.js';
8
+ import type { RateLimitConfig } from './rate-limit.js';
9
+ import type { LoggingConfig } from './logging.js';
10
+ import type { MetricsConfig } from './metrics.js';
11
+ import type { TransformationConfig } from './transformation.js';
12
+ import type { TenantConfig } from './tenant.js';
13
+ /**
14
+ * Main proxy configuration
15
+ */
16
+ export interface ProxyConfig {
17
+ /** Proxy server identification */
18
+ server: ServerConfig;
19
+ /** Upstream MCP server configuration */
20
+ upstream: UpstreamConfig;
21
+ /** Authentication configuration */
22
+ auth: AuthConfig;
23
+ /** Caching configuration */
24
+ cache: CacheConfig;
25
+ /** Rate limiting configuration */
26
+ rateLimit: RateLimitConfig;
27
+ /** Logging configuration */
28
+ logging: LoggingConfig;
29
+ /** Metrics configuration */
30
+ metrics: MetricsConfig;
31
+ /** Request transformation rules */
32
+ transformations: TransformationConfig;
33
+ /** Multi-tenant configuration */
34
+ tenants: TenantConfig;
35
+ }
36
+ /**
37
+ * Server identification and transport configuration
38
+ */
39
+ export interface ServerConfig {
40
+ /** Proxy name for identification */
41
+ name: string;
42
+ /** Proxy version */
43
+ version: string;
44
+ /** Transport mode: 'stdio' | 'sse' | 'http' */
45
+ transport: TransportMode;
46
+ /** Port for HTTP/SSE modes */
47
+ port?: number;
48
+ /** Host binding for HTTP/SSE modes */
49
+ host?: string;
50
+ /** Request timeout in milliseconds */
51
+ requestTimeout?: number;
52
+ }
53
+ /**
54
+ * Upstream MCP server connection configuration
55
+ */
56
+ export interface UpstreamConfig {
57
+ /** Path to reveldigital-mcp-server executable */
58
+ command: string;
59
+ /** Command arguments */
60
+ args: string[];
61
+ /** Environment variables for upstream process */
62
+ env: Record<string, string>;
63
+ /** Request timeout in milliseconds */
64
+ timeout: number;
65
+ /** Retry configuration */
66
+ retry: RetryConfig;
67
+ /** Health check configuration */
68
+ healthCheck: HealthCheckConfig;
69
+ }
70
+ /**
71
+ * Retry behavior configuration with exponential backoff
72
+ */
73
+ export interface RetryConfig {
74
+ /** Maximum retry attempts */
75
+ maxAttempts: number;
76
+ /** Initial delay in milliseconds */
77
+ initialDelayMs: number;
78
+ /** Maximum delay in milliseconds */
79
+ maxDelayMs: number;
80
+ /** Delay multiplier for exponential backoff */
81
+ multiplier: number;
82
+ /** Jitter factor (0-1) for randomizing delays */
83
+ jitterFactor?: number;
84
+ }
85
+ /**
86
+ * Health check configuration for upstream monitoring
87
+ */
88
+ export interface HealthCheckConfig {
89
+ /** Enable health checks */
90
+ enabled: boolean;
91
+ /** Check interval in milliseconds */
92
+ intervalMs: number;
93
+ /** Timeout for health check */
94
+ timeoutMs: number;
95
+ /** Number of failures before marking unhealthy */
96
+ failureThreshold?: number;
97
+ /** Number of successes before marking healthy */
98
+ successThreshold?: number;
99
+ }
100
+ /**
101
+ * Supported transport modes
102
+ */
103
+ export type TransportMode = 'stdio' | 'sse' | 'http';
104
+ /**
105
+ * Default configuration values
106
+ */
107
+ export declare const DEFAULT_CONFIG: Partial<ProxyConfig>;
108
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,MAAM,EAAE,YAAY,CAAC;IAErB,wCAAwC;IACxC,QAAQ,EAAE,cAAc,CAAC;IAEzB,mCAAmC;IACnC,IAAI,EAAE,UAAU,CAAC;IAEjB,4BAA4B;IAC5B,KAAK,EAAE,WAAW,CAAC;IAEnB,kCAAkC;IAClC,SAAS,EAAE,eAAe,CAAC;IAE3B,4BAA4B;IAC5B,OAAO,EAAE,aAAa,CAAC;IAEvB,4BAA4B;IAC5B,OAAO,EAAE,aAAa,CAAC;IAEvB,mCAAmC;IACnC,eAAe,EAAE,oBAAoB,CAAC;IAEtC,iCAAiC;IACjC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,+CAA+C;IAC/C,SAAS,EAAE,aAAa,CAAC;IAEzB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,KAAK,EAAE,WAAW,CAAC;IAEnB,iCAAiC;IACjC,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IAEpB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IAEvB,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IAEnB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IAEnB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEjB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IAEnB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,WAAW,CA2B/C,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Core Configuration Types
3
+ *
4
+ * Main proxy configuration interfaces defining server, upstream, and feature settings.
5
+ */
6
+ /**
7
+ * Default configuration values
8
+ */
9
+ export const DEFAULT_CONFIG = {
10
+ server: {
11
+ name: 'reveldigital-mcp-proxy',
12
+ version: '1.0.0',
13
+ transport: 'stdio',
14
+ requestTimeout: 30000,
15
+ },
16
+ upstream: {
17
+ command: 'npx',
18
+ args: ['@reveldigital/reveldigital-mcp-server'],
19
+ env: {},
20
+ timeout: 30000,
21
+ retry: {
22
+ maxAttempts: 3,
23
+ initialDelayMs: 1000,
24
+ maxDelayMs: 10000,
25
+ multiplier: 2,
26
+ jitterFactor: 0.1,
27
+ },
28
+ healthCheck: {
29
+ enabled: true,
30
+ intervalMs: 30000,
31
+ timeoutMs: 5000,
32
+ failureThreshold: 3,
33
+ successThreshold: 1,
34
+ },
35
+ },
36
+ };
37
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqIH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAyB;IAClD,MAAM,EAAE;QACN,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,OAAO;QAClB,cAAc,EAAE,KAAK;KACtB;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,CAAC,uCAAuC,CAAC;QAC/C,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,IAAI;YACpB,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,GAAG;SAClB;QACD,WAAW,EAAE;YACX,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;SACpB;KACF;CACF,CAAC"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * GraphQL Proxy Types
3
+ *
4
+ * Simple types for the GraphQL proxy implementation.
5
+ * These are separate from the enterprise proxy types.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Simple proxy configuration for GraphQL endpoint
10
+ */
11
+ export interface GraphQLProxyConfig {
12
+ /** GraphQL endpoint URL */
13
+ endpoint: string;
14
+ /** Auth token for Authorization: Bearer header authentication */
15
+ authToken?: string;
16
+ /** Request timeout in milliseconds */
17
+ timeout: number;
18
+ /** Enable response caching */
19
+ enableCache: boolean;
20
+ /** Cache TTL in seconds */
21
+ cacheTtl: number;
22
+ /** Maximum response size for context optimization */
23
+ maxResponseSize: number;
24
+ /** Enable debug logging */
25
+ debug: boolean;
26
+ }
27
+ /**
28
+ * Default configuration values
29
+ */
30
+ export declare const defaultGraphQLProxyConfig: GraphQLProxyConfig;
31
+ /**
32
+ * GraphQL request structure
33
+ */
34
+ export interface GraphQLRequest {
35
+ query: string;
36
+ variables?: Record<string, unknown>;
37
+ operationName?: string;
38
+ }
39
+ /**
40
+ * GraphQL response structure
41
+ */
42
+ export interface GraphQLResponse<T = unknown> {
43
+ data?: T;
44
+ errors?: GraphQLError[];
45
+ }
46
+ /**
47
+ * GraphQL error structure
48
+ */
49
+ export interface GraphQLError {
50
+ message: string;
51
+ locations?: Array<{
52
+ line: number;
53
+ column: number;
54
+ }>;
55
+ path?: Array<string | number>;
56
+ extensions?: Record<string, unknown>;
57
+ }
58
+ /**
59
+ * Simple cache entry for GraphQL responses
60
+ */
61
+ export interface GraphQLCacheEntry<T = unknown> {
62
+ data: T;
63
+ timestamp: number;
64
+ ttl: number;
65
+ queryHash: string;
66
+ }
67
+ /**
68
+ * Simple cache statistics
69
+ */
70
+ export interface GraphQLCacheStats {
71
+ hits: number;
72
+ misses: number;
73
+ size: number;
74
+ entries: number;
75
+ }
76
+ /**
77
+ * MCP Tool result structure
78
+ */
79
+ export interface ToolResult {
80
+ content: Array<{
81
+ type: 'text';
82
+ text: string;
83
+ }>;
84
+ isError?: boolean;
85
+ }
86
+ /**
87
+ * Create a successful tool result
88
+ */
89
+ export declare function createToolResult(data: unknown, pretty?: boolean): ToolResult;
90
+ /**
91
+ * Create an error tool result
92
+ */
93
+ export declare function createErrorResult(error: string | Error): ToolResult;
94
+ /**
95
+ * Schema for execute_query tool arguments
96
+ */
97
+ export declare const ExecuteQuerySchema: z.ZodObject<{
98
+ query: z.ZodString;
99
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
100
+ operationName: z.ZodOptional<z.ZodString>;
101
+ useCache: z.ZodDefault<z.ZodBoolean>;
102
+ authHeader: z.ZodOptional<z.ZodString>;
103
+ }, "strip", z.ZodTypeAny, {
104
+ query: string;
105
+ useCache: boolean;
106
+ variables?: Record<string, unknown> | undefined;
107
+ operationName?: string | undefined;
108
+ authHeader?: string | undefined;
109
+ }, {
110
+ query: string;
111
+ variables?: Record<string, unknown> | undefined;
112
+ operationName?: string | undefined;
113
+ useCache?: boolean | undefined;
114
+ authHeader?: string | undefined;
115
+ }>;
116
+ /**
117
+ * Schema for build_query tool arguments
118
+ */
119
+ export declare const BuildQuerySchema: z.ZodObject<{
120
+ operation: z.ZodEnum<["device", "media", "schedule", "audienceMetrics", "playLogs"]>;
121
+ fields: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
122
+ preset: z.ZodOptional<z.ZodEnum<["basic", "detailed", "location", "metrics", "minimal"]>>;
123
+ filter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
124
+ orderBy: z.ZodOptional<z.ZodString>;
125
+ orderDirection: z.ZodOptional<z.ZodEnum<["ASC", "DESC"]>>;
126
+ limit: z.ZodOptional<z.ZodNumber>;
127
+ offset: z.ZodOptional<z.ZodNumber>;
128
+ startDate: z.ZodOptional<z.ZodString>;
129
+ endDate: z.ZodOptional<z.ZodString>;
130
+ deviceId: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ operation: "device" | "media" | "schedule" | "audienceMetrics" | "playLogs";
133
+ filter?: Record<string, unknown> | undefined;
134
+ fields?: string[] | undefined;
135
+ preset?: "basic" | "detailed" | "location" | "metrics" | "minimal" | undefined;
136
+ orderBy?: string | undefined;
137
+ orderDirection?: "ASC" | "DESC" | undefined;
138
+ limit?: number | undefined;
139
+ offset?: number | undefined;
140
+ startDate?: string | undefined;
141
+ endDate?: string | undefined;
142
+ deviceId?: string | string[] | undefined;
143
+ }, {
144
+ operation: "device" | "media" | "schedule" | "audienceMetrics" | "playLogs";
145
+ filter?: Record<string, unknown> | undefined;
146
+ fields?: string[] | undefined;
147
+ preset?: "basic" | "detailed" | "location" | "metrics" | "minimal" | undefined;
148
+ orderBy?: string | undefined;
149
+ orderDirection?: "ASC" | "DESC" | undefined;
150
+ limit?: number | undefined;
151
+ offset?: number | undefined;
152
+ startDate?: string | undefined;
153
+ endDate?: string | undefined;
154
+ deviceId?: string | string[] | undefined;
155
+ }>;
156
+ /**
157
+ * Schema for introspect_schema tool arguments
158
+ */
159
+ export declare const IntrospectSchemaSchema: z.ZodObject<{
160
+ typeName: z.ZodOptional<z.ZodString>;
161
+ includeFields: z.ZodDefault<z.ZodBoolean>;
162
+ includeDescriptions: z.ZodDefault<z.ZodBoolean>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ includeFields: boolean;
165
+ includeDescriptions: boolean;
166
+ typeName?: string | undefined;
167
+ }, {
168
+ typeName?: string | undefined;
169
+ includeFields?: boolean | undefined;
170
+ includeDescriptions?: boolean | undefined;
171
+ }>;
172
+ /**
173
+ * Schema for quick_query tool arguments
174
+ */
175
+ export declare const QuickQuerySchema: z.ZodObject<{
176
+ queryType: z.ZodEnum<["devices_status", "online_devices", "offline_devices", "recent_media", "active_schedules", "play_logs"]>;
177
+ limit: z.ZodDefault<z.ZodNumber>;
178
+ startDate: z.ZodOptional<z.ZodString>;
179
+ endDate: z.ZodOptional<z.ZodString>;
180
+ authHeader: z.ZodOptional<z.ZodString>;
181
+ }, "strip", z.ZodTypeAny, {
182
+ limit: number;
183
+ queryType: "devices_status" | "online_devices" | "offline_devices" | "recent_media" | "active_schedules" | "play_logs";
184
+ authHeader?: string | undefined;
185
+ startDate?: string | undefined;
186
+ endDate?: string | undefined;
187
+ }, {
188
+ queryType: "devices_status" | "online_devices" | "offline_devices" | "recent_media" | "active_schedules" | "play_logs";
189
+ authHeader?: string | undefined;
190
+ limit?: number | undefined;
191
+ startDate?: string | undefined;
192
+ endDate?: string | undefined;
193
+ }>;
194
+ /**
195
+ * Schema for manage_cache tool arguments
196
+ */
197
+ export declare const ManageCacheSchema: z.ZodObject<{
198
+ action: z.ZodEnum<["stats", "clear", "cleanup"]>;
199
+ }, "strip", z.ZodTypeAny, {
200
+ action: "stats" | "clear" | "cleanup";
201
+ }, {
202
+ action: "stats" | "clear" | "cleanup";
203
+ }>;
204
+ /**
205
+ * Schema for set_auth tool arguments
206
+ */
207
+ export declare const SetAuthSchema: z.ZodObject<{
208
+ apiKey: z.ZodOptional<z.ZodString>;
209
+ bearerToken: z.ZodOptional<z.ZodString>;
210
+ clear: z.ZodOptional<z.ZodBoolean>;
211
+ }, "strip", z.ZodTypeAny, {
212
+ clear?: boolean | undefined;
213
+ apiKey?: string | undefined;
214
+ bearerToken?: string | undefined;
215
+ }, {
216
+ clear?: boolean | undefined;
217
+ apiKey?: string | undefined;
218
+ bearerToken?: string | undefined;
219
+ }>;
220
+ /**
221
+ * Schema for optimize_response tool arguments
222
+ */
223
+ export declare const OptimizeResponseSchema: z.ZodObject<{
224
+ data: z.ZodUnknown;
225
+ maxSize: z.ZodOptional<z.ZodNumber>;
226
+ strategy: z.ZodOptional<z.ZodEnum<["truncate", "summarize", "paginate"]>>;
227
+ }, "strip", z.ZodTypeAny, {
228
+ data?: unknown;
229
+ maxSize?: number | undefined;
230
+ strategy?: "truncate" | "summarize" | "paginate" | undefined;
231
+ }, {
232
+ data?: unknown;
233
+ maxSize?: number | undefined;
234
+ strategy?: "truncate" | "summarize" | "paginate" | undefined;
235
+ }>;
236
+ export type ExecuteQueryArgs = z.infer<typeof ExecuteQuerySchema>;
237
+ export type BuildQueryArgs = z.infer<typeof BuildQuerySchema>;
238
+ export type IntrospectSchemaArgs = z.infer<typeof IntrospectSchemaSchema>;
239
+ export type QuickQueryArgs = z.infer<typeof QuickQuerySchema>;
240
+ export type ManageCacheArgs = z.infer<typeof ManageCacheSchema>;
241
+ export type SetAuthArgs = z.infer<typeof SetAuthSchema>;
242
+ export type OptimizeResponseArgs = z.infer<typeof OptimizeResponseSchema>;
243
+ //# sourceMappingURL=graphql-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-proxy.d.ts","sourceRoot":"","sources":["../../src/types/graphql-proxy.ts"],"names":[],"mappings":"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"}