feature(*): added TypeScript support