A Flexible JavasSript/TypeScript IOC Container