I ended up creating it while developing the functionality I needed. If anyone needs it, feel free to use it.