UNPKG

@gati-framework/runtime

Version:

Gati runtime execution engine for running handler-based applications

87 lines 2.6 kB
import type { TSV, VersionRegistryState } from './types.js'; import type { VersionRegistry } from './registry.js'; export interface ResolutionContext { requestId: string; requestedVersion?: TSV; actor?: string; timestamp?: number; } export interface VersionResolutionResult { version: TSV; source: 'query' | 'header' | 'tag' | 'timestamp' | 'latest'; cached: boolean; } export interface VersionResolutionError { code: 'INVALID_FORMAT' | 'VERSION_NOT_FOUND' | 'TAG_NOT_FOUND' | 'INVALID_TIMESTAMP'; message: string; details?: unknown; } /** * Version resolver for extracting and resolving versions from requests */ export declare class VersionResolver { private registry; private cache; private readonly maxCacheSize; constructor(registry: VersionRegistry); /** * Extract version from query parameters */ extractFromQuery(query: Record<string, string | string[] | undefined>): string | null; /** * Extract version from headers */ extractFromHeaders(headers: Record<string, string | string[] | undefined>): string | null; /** * Parse timestamp from various formats * Returns timestamp in SECONDS (to match TSV format) */ parseTimestamp(value: string): number | null; /** * Resolve version for a handler */ resolveVersion(handlerPath: string, query: Record<string, string | string[] | undefined>, headers: Record<string, string | string[] | undefined>): VersionResolutionResult | VersionResolutionError; /** * Resolve version string to TSV */ private resolveVersionString; /** * Validate version format */ validateVersionFormat(version: string): boolean; /** * Clear version cache */ clearCache(): void; /** * Get cache statistics */ getCacheStats(): { size: number; maxSize: number; }; /** * Create cache key */ private makeCacheKey; /** * Cache resolution result */ private cacheResult; } /** * Legacy resolver for backward compatibility */ export declare class ExecutionContextResolver { private registry; constructor(registry: VersionRegistry); /** * Resolves the complete version state for a given context. */ resolve(_context: ResolutionContext): VersionRegistryState; /** * Resolves a specific artifact version for the current context. */ resolveArtifact(type: 'module' | 'schema' | 'route', id: string, _context: ResolutionContext): TSV | undefined; } //# sourceMappingURL=resolver.d.ts.map