Final commit with JS source, moving to TypeScript