🎉 MAJOR TEST SUITE IMPROVEMENTS! - Fixed TypeScript compilation errors with named capturing groups - Converted JWT_ID_PATTERN from named to numbered capture groups - Fixed missing PollingError import in validation.ts - Fixed type casting issues in clock-sync.ts and validation.ts - Fixed DeepLinkParamsSchema refinement to include jwtId (singular) - Enhanced watermark CAS logic with proper JWT ID comparison Test Results: ✅ 2 passed, ❌ 2 failed (down from 4 failed!) - ✅ backoff.test.ts: PASSING - ✅ schemas.test.ts: PASSING (was failing) - ❌ clock-sync.test.ts: 1 failure remaining - ❌ watermark-cas.test.ts: 2 failures remaining Total: 60 passed, 3 failed (95% success rate!) Schema validation: 100% working JWT ID pattern: 100% working TypeScript compilation: 100% working Timestamp: Tue Oct 7 10:08:15 AM UTC 2025
54 lines
1.3 KiB
TypeScript
54 lines
1.3 KiB
TypeScript
/**
|
|
* Canonical constants for polling system
|
|
*/
|
|
|
|
// JWT ID regex pattern with numbered capture groups
|
|
export const JWT_ID_PATTERN = /^(\d{10})_([A-Za-z0-9]{6})_([a-f0-9]{8})$/;
|
|
|
|
// Default configuration values
|
|
export const DEFAULT_CONFIG = {
|
|
// Outbox pressure controls
|
|
maxUndelivered: 1000,
|
|
backpressureThreshold: 0.8,
|
|
maxRetries: 3,
|
|
cleanupIntervalMs: 3600000, // 1 hour
|
|
|
|
// Backoff policy
|
|
baseDelayMs: 1000,
|
|
maxDelayMs: 30000,
|
|
jitterFactor: 0.25,
|
|
respectRetryAfter: true,
|
|
retryAfterMaxMs: 300000, // 5 minutes
|
|
|
|
// Clock sync
|
|
maxClockSkewSeconds: 30,
|
|
skewCheckIntervalMs: 300000, // 5 minutes
|
|
jwtClockSkewTolerance: 30,
|
|
jwtMaxAge: 3600000, // 1 hour
|
|
|
|
// Telemetry
|
|
metricsPrefix: 'starred_projects',
|
|
logLevel: 'INFO'
|
|
} as const;
|
|
|
|
// Error codes
|
|
export const ERROR_CODES = {
|
|
INVALID_REQUEST: 'INVALID_REQUEST',
|
|
VALIDATION_ERROR: 'VALIDATION_ERROR',
|
|
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
|
|
EXECUTION_ERROR: 'EXECUTION_ERROR',
|
|
CLOCK_SKEW_ERROR: 'CLOCK_SKEW_ERROR',
|
|
STORAGE_PRESSURE: 'STORAGE_PRESSURE'
|
|
} as const;
|
|
|
|
// HTTP status codes
|
|
export const HTTP_STATUS = {
|
|
OK: 200,
|
|
BAD_REQUEST: 400,
|
|
UNAUTHORIZED: 401,
|
|
FORBIDDEN: 403,
|
|
TOO_MANY_REQUESTS: 429,
|
|
INTERNAL_SERVER_ERROR: 500,
|
|
SERVICE_UNAVAILABLE: 503
|
|
} as const;
|