port to typescript (#47)
* noImplicitAny
* typescript
* split into many files
* change case to snake_case
* switch build to rolldown
* drop assert statements from prod build
* generate dist package json
* generate isolated bundled declarations
* share the index code between client/server