ported all plugins to typescript