- Add @timesafari/polling-contracts package with comprehensive type definitions - Implement GenericPollingRequest, PollingResult, and PollingScheduleConfig interfaces - Add Zod schemas for StarredProjectsRequest/Response and DeepLinkParams validation - Include calculateBackoffDelay utility with unified retry policy (exponential, linear, fixed) - Add OutboxPressureManager for storage pressure controls and back-pressure signals - Implement TelemetryManager with cardinality budgets and PII redaction - Add ClockSyncManager for JWT timestamp validation and skew tolerance - Include comprehensive unit tests with Jest snapshots and race condition testing - Add JWT_ID_PATTERN regex for canonical JWT ID format validation - Support idempotency with X-Idempotency-Key enforcement - Implement watermark CAS (Compare-and-Swap) for race condition prevention This establishes the foundation for the new generic polling system where host apps define request/response schemas and the plugin provides robust polling logic.
30 lines
734 B
JSON
30 lines
734 B
JSON
{
|
|
"name": "@timesafari/polling-contracts",
|
|
"version": "1.0.0",
|
|
"description": "TypeScript contracts and Zod schemas for TimeSafari polling system",
|
|
"main": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"test": "jest",
|
|
"test:snapshots": "jest --updateSnapshot",
|
|
"lint": "eslint src --ext .ts",
|
|
"lint-fix": "eslint src --ext .ts --fix"
|
|
},
|
|
"dependencies": {
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@types/jest": "^29.5.5",
|
|
"@typescript-eslint/eslint-plugin": "^5.57.0",
|
|
"@typescript-eslint/parser": "^5.57.0",
|
|
"eslint": "^8.37.0",
|
|
"jest": "^29.7.0",
|
|
"ts-jest": "^29.1.0",
|
|
"typescript": "^5.2.2"
|
|
},
|
|
"files": [
|
|
"dist/**/*"
|
|
]
|
|
}
|