Typescript MVVM framework for use in HTML5 applications