Hi there! Currently working on my own implementation of ActivityPub models (or structures) for JavaScript and TypeScript.
Main idea - create a useful models with prepared methods like converting from JSON and vice versa, and with complex data support like MediaType, Duration, etc. You can think about it as an infrastructure for AP models, which fits to any JS-stack. And, of course, you can extend them with your own fields and types.
About 30% is done. For now I have all models from ActivityStreams and in-code documentation with links to original specification.
You can check repository here. Any help and feedback would be appreciated!