an opinionated micro javascript ioc container that uses promises and autodiscovery