# vjmap Node.js SDK（单文件）

`vjmap.js` 是一个单文件 Node SDK。**零外部依赖**，只用 Node ≥ 18 的内置 `fetch / FormData / Blob / crypto`。

## 安装

```bash
# 方式 A：直接复制
cp sdk/nodejs/vjmap.js your-project/

# 方式 B：作为本地包引用
cd sdk/nodejs && npm link
# 在你的项目里：npm link vjmap-sdk
```

## 快速用法

```javascript
const { Vjmap, VjmapError, MapOpenWay } = require('./vjmap');

const svc = new Vjmap('http://127.0.0.1:27660/api/v1', '<jwt-token>');

(async () => {
  console.log(await svc.heart());
  console.log(await svc.version());
  console.log(await svc.runStatus());
})();
```

## 核心导出

| 名称 | 用途 |
|------|------|
| `Vjmap` | 客户端主类 |
| `VjmapError` | 统一异常，含 `status` / `url` / `body` |
| `MapOpenWay` | `.Memory` / `.GeomRender` |
| `computeSecretKey(pwd)` | 明文密码 → 16 位 secretKey |
| `fileMd5(pathOrBufferOrStream)` | 流式 MD5 |
| `md5Hex(input)` | 工具：一次性 MD5 |


## 错误处理

```javascript
try {
  await svc.metadata('not_exist', 'v1');
} catch (e) {
  if (e instanceof VjmapError) {
    console.error(e.status, e.url, e.body);
  }
}
```
