Zotero currently uses a JS module done by Simon Kornblith in 2012 to validate styles. It’s built from
rnv, an early RelaxNG validator written in C, compiled to JS via
emscripten. I recently took a shot at recompiling it, and came down like Icarus.
After burning time on the compile attempt, I noticed that a lab in France now offers a tool for RelaxNG validation written in
typescript, available on
npm. The repo contains a code sample that is close to a general-purpose RNG validator for use in
node. Having this bundled as an
npm package that provides a schema-agnostic function otherwise similar to Simon’s module would be great, if anyone is game for it. Most immediately it would allow the
java dependency to be removed from tools like Citeproc Test Runner; but more generally it would also make it easier to deploy more flexible infrastructure when revisions to CSL 1.0.1 start arriving.