A metadata based validation library for Knockout JS