feat: add JSHint support