Not all the files have their own tests, but most is covered.
Dependency injection is used thrugohut the code. Rules accept conditions and also a function that will apply effects on the facts mutating them on the go.
npm install
npm test
npm run parse src/input.txt