feat: add commonjs support