- Create separate RssParser and AtomParser implementing IParser interface - Add utility functions for ID generation (djb2 hash) and date parsing - Support both RSS (RFC 822) and Atom (ISO 8601) date formats - Handle Atom elements with attributes (type="html") via #text property - Map RSS <description> to summary and <content:encoded> to content - Map Atom <summary> to summary and <content> to content - Prefer Atom link[@rel="alternate"] for article URLs - Throw descriptive errors for malformed XML and missing required fields - Add comprehensive test coverage for both parsers (32 tests total)
21 lines
395 B
JSON
21 lines
395 B
JSON
{
|
|
"name": "pulse",
|
|
"version": "0.1.0",
|
|
"description": "RSS feed aggregator",
|
|
"type": "module",
|
|
"scripts": {
|
|
"test": "vitest run",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^22.0.0",
|
|
"tsx": "^4.19.0",
|
|
"typescript": "^5.7.0",
|
|
"vitest": "^2.1.0"
|
|
},
|
|
"dependencies": {
|
|
"fast-xml-parser": "^5.7.3",
|
|
"undici": "^6.21.0"
|
|
}
|
|
}
|