* initial implementation
* next iteration
* clean up
* cleanup
* fix test
* cleanup
* rename services, refactor, fix test logic
* fix DI
* update comment
* update comment
* resolve merge conflict
* register dependencies out of jslib, more cleanup
* fix failing test in build
* fix type error
* try fixing test error
* remove async from test setup
* attempt to fix test
* fix text
* fix test
* add ts-expect-error comment
* cleanup
---------
Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>