@gati-framework/runtime
Version:
Gati runtime execution engine for running handler-based applications
87 lines • 2.6 kB
TypeScript
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