/** * @neuronetiq/contracts v0.18.0 - Infrastructure-Aligned Enhanced Contracts * * 🎯 INFRASTRUCTURE AUDIT INTEGRATION: All database changes since v0.17.0 included * 🔐 Enhanced Auth: Modern Supabase auth with JWKS validation * 🏗️ Jobs System: Unified async task orchestration for all teams * 📡 Real-time: WebSocket/SSE streaming endpoints * 🔗 Canonical Routes: /api/infra/* standardization with legacy compatibility * * Teams use enhanced imports: * - Auth: SupabaseJWTClaims, RoleDefinition, TokenValidation (JWKS-based) * - Portfolio: ManualInvestment (enhanced: exchange, account_type) * - Market: MarketUniverse, IngestionStatus, PrecomputedIndicators * - ML: Signal (enhanced: ta_fingerprint, bar_id confirmed in DB) * - Trading: TradingAccount (enhanced: new account types) * - Jobs: Job, CreateJobRequest (unified system) * - Routes: ROUTES.INFRA.* (canonical), ROUTES.* (legacy compatibility) */ // PRIMARY EXPORTS - v0.18.3 normalized schemas with Infrastructure alignment export * from './schemas/portfolio'; export * from './schemas/market'; export * from './schemas/ml'; export * from './schemas/trading'; export * from './routes/routes'; export * from './schemas/helpers'; export * from './schemas/auth'; export * from './schemas/jobs'; // RoutesV2 and RouteGroups exports for canonical route definitions export { RoutesV2, RouteGroups, validateRoutes } from './routes/routesV2'; // Management improvements export * from './schemas/endpoint-meta'; export * from './schemas/deprecation'; export * from './schemas/pagination'; export * from './schemas/streaming'; export * from './schemas/marketplace'; // Export metadata constants export { SCHEMA_VERSION, RELEASE_DATE, INFRASTRUCTURE_ALIGNMENT } from './schemas/index.js'; // Contract fingerprint and version for SSOT validation export { CONTRACTS_FINGERPRINT, CONTRACTS_VERSION } from './fingerprint'; // Route Registry - CON-03 Route Schema Linking & Envelope Automation export { RouteRegistry, RoutePaths, RouteDefinition, ROUTE_REGISTRY_METADATA } from './registry/RouteRegistry'; export * from './types/route-map'; // Standard envelope and utilities export { ApiEnvelope } from './envelopes/standard'; export { STANDARD_HEADERS } from './utils/headers'; // CON-04 Runtime Validation & Type Guards export * from './validators/validatePayload'; export * from './validators/validateEnvelope'; export * from './validators/guardFactory'; export * from './utils/errors'; // Enhanced response envelope helpers (Management improvement #5) export const successEnvelope = ( data: T, requestId: string, options?: { traceId?: string; latencyMs?: number; source?: string; deprecation?: Record; } ) => ({ success: true as const, data, requestId, timestamp: new Date().toISOString(), meta: { contractsVersion: CONTRACTS_VERSION, traceId: options?.traceId, latencyMs: options?.latencyMs, source: options?.source || 'infra-api', deprecation: options?.deprecation } }); export const errorEnvelope = ( code: string, message: string, requestId: string, details?: Record, options?: { traceId?: string; latencyMs?: number; source?: string; } ) => ({ success: false as const, error: { code, message, details, timestamp: new Date().toISOString() }, requestId, meta: { contractsVersion: CONTRACTS_VERSION, traceId: options?.traceId, latencyMs: options?.latencyMs, source: options?.source || 'infra-api' } }); // Contract headers for API validation // Request ID generation for API tracing export const generateRequestId = () => { return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`; }; export const emitContractHeaders = () => ({ 'X-Contracts-Version': CONTRACTS_VERSION, 'X-Contracts-Fingerprint': CONTRACTS_FINGERPRINT }); // Import CONTRACTS_VERSION and CONTRACTS_FINGERPRINT import { CONTRACTS_FINGERPRINT, CONTRACTS_VERSION } from './fingerprint';