Parse CSV in JavaScript: Headers, Types, and Edge Cases Explained