# @aj-archipelago/merval 中文文档

规范地址：https://npmcn.com/package/%40aj-archipelago/merval/

版本：1\.0\.7
npm 元数据更新时间：2025-11-17T02:07:28.195Z
中文译文更新时间：2026-11-06T00:49:11.046Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aj-archipelago/merval
原文对照：https://npmcn.com/package/%40aj-archipelago/merval/?lang=original
项目主页：https://github.com/aj-archipelago/merval#readme
源码仓库：https://github.com/aj-archipelago/merval

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：399 kB，59 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：0 个
- 首次发布：2025-10-16T00:05:20.760Z
- 最新版本发布：2025-11-17T02:07:27.901Z
- 近 30 天下载量：7817（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 4 个）

## 中文简介

世界首个零依赖性美人鱼图验证器. 即时语法验证,不使用CLI调用或重依赖.

## 安装

```sh
npm install @aj-archipelago/merval
```

也可以使用：`pnpm add @aj-archipelago/merval`、`yarn add @aj-archipelago/merval`、`bun add @aj-archipelago/merval`

## README

# \* 默瓦尔

世界上第一个 **零依赖性** 美人鱼图验证器。 即时语法验证,不使用CLI调用或重依赖.

## 为什么是Merval?

厌倦安装 `@mermaid-js/mermaid-cli` 及其400+依赖性(Puppeter, Chromium等)只是为了验证一个简单的图表? **马华** 以零依赖性提供即时美人鱼语法验证.

-   ⚡ **即时**: 没有 CLI 呼叫, 没有外部进程
-   🪶 **无依赖**: 纯 JavaScript, 无 Puppeteer, 无铬
-   🎯 **100%兼容**:针对美人鱼CLI v11.12.0进行测试
-   🚀 **闪电快**: 直接解析, 不进行高端渲染
-   🛡️ **类型安全**: 以 TypeScript 为强固验证而建

## 支持的图表类型

-   [x] 流程图(图/流程图)
-   [x] 序列图
-   [x] 类图
-   [x] 状态图
-   [x] 实体关系图
-   [x] 用户行程
-   [x] 甘特图
-   [x] 派图
-   [x] 图形
-   [x] 思维图
-   [x] 时间线
-   [x] xychart-beta (栏/行图)
-   [x] 块-β(块图)

## \* 安装

```bash
# Using npm
npm install @aj-archipelago/merval

# Using yarn  
yarn add @aj-archipelago/merval

# Using pnpm
pnpm add @aj-archipelago/merval
```

## QQ 快速启动

```javascript
import { validateMermaid } from '@aj-archipelago/merval';

// Instant validation - no CLI, no dependencies!
const result = validateMermaid(`
graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process A]
    B -->|No| D[Process B]
    C --> E[End]
    D --> E[End]
`);

console.log(result.isValid); // true/false
console.log(result.diagramType); // 'flowchart'
console.log(result.errors); // [] or array of error objects
```

## 美人鱼版本相容性

此校验符是针对 **美人鱼 CLI v11.12.0** 确保100%的兼容性。 它被验证的版本的库音轨可以警告潜在的相容性问题.

### 版本信息

```javascript
import { getMermaidVersionInfo, isMermaidVersionSupported } from '@aj-archipelago/merval';

// Get version compatibility info
const versionInfo = getMermaidVersionInfo();
console.log(versionInfo);
// {
//   validatedAgainst: "11.12.0",
//   lastValidated: "2024-10-15", 
//   cliVersion: "@mermaid-js/mermaid-cli@11.12.0"
// }

// Check if a specific version is supported
console.log(isMermaidVersionSupported("11.12.0")); // true
console.log(isMermaidVersionSupported("12.0.0"));   // false
```

### 版本- 软件验证

```javascript
import { validateMermaid } from '@aj-archipelago/merval';

// Basic validation (no version check)
const result = validateMermaid(mermaidCode);

// Validate with version compatibility check
const result = validateMermaid(mermaidCode, "12.0.0");
if (!result.isValid && result.errors.some(e => e.code === 'VERSION_MISMATCH')) {
  console.log('Warning: This validator was not tested against Mermaid 12.0.0');
}
```

### 更新美人鱼版本兼容性

当更新此验证符以使用新的美人鱼版本时, 请使用所提供的脚本 :

```bash
# Update to a new Mermaid version
npm run update-version 12.0.0 2024-11-01

# Or manually run the script
node scripts/update-version.js 12.0.0 2024-11-01
```

此脚本将 :

1.  更新 `package.json` 带有新版本信息
2.  更新 `src/version.ts` 新版本常数
3.  构建工程
4.  运行所有测试
5.  为完全兼容性测试提供下一步

## API 密码

```javascript
import { validateMermaid, isValidMermaid, getDiagramType } from '@aj-archipelago/merval';

// Basic validation
const result = validateMermaid(`
graph TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process A]
    B -->|No| D[Process B]
    C --> E[End]
    D --> E[End]
`);

console.log(result.isValid); // true/false
console.log(result.diagramType); // 'flowchart'
console.log(result.errors); // [] or array of error objects

// Simple boolean validation
const isValid = isValidMermaid(mermaidCode); // true/false

// Get diagram type only
const diagramType = getDiagramType(mermaidCode); // 'flowchart', 'sequence', etc.

// Validation with version compatibility check
const result = validateMermaid(mermaidCode, "12.0.0");
if (!result.isValid && result.errors.some(e => e.code === 'VERSION_MISMATCH')) {
  console.log('Version compatibility warning');
}
```

## 错误格式

```javascript
{
  isValid: false,
  diagramType: 'flowchart',
  errors: [
    {
      line: 2,
      column: 15,
      message: "Missing arrow between nodes",
      code: "MISSING_ARROW",
      suggestion: "Add '-->' to connect nodes"
    }
  ]
}
```

## 为什么是Merval?

### 传统美人鱼鉴定问题

```bash
# Traditional approach - heavy dependencies
npm install @mermaid-js/mermaid-cli
# Installs 400+ packages including:
# - puppeteer (Chromium browser)
# - canvas, cairo, pango, etc.
# - Native dependencies requiring compilation
```

### Merval解决方案

```bash
# Merval - zero dependencies
npm install merval
# Installs only merval - that's it!
```

**马华** 给予你与美人鱼CLI相同的验证精度,但:

-   **零依赖关系** - 没有Puppeteer,没有铬,没有本土汇编
-   **即时验证** - 没有CLI进程产卵,没有文件 I/ 欧
-   **同样准确** - 100%符合人鱼CLI v11.12.0
-   **类型脚本支持** - 完全类型的安全出盒子

## 执行战略

1.  **语法分析**: 将投入输入有意义的组件
2.  **语法分析**: 构建 AST 并验证结构
3.  **语义验证**: 检查关系和参考文献
4.  **图解规则**: 每种类型都有独特的验证

## 建筑

```
src/
├── lexer.js          # Tokenize input
├── parser.js         # Parse tokens into AST
├── validators/
│   ├── flowchart.js  # Flowchart-specific validation
│   ├── sequence.js   # Sequence diagram validation
│   ├── xychart.js    # xychart-beta validation
│   └── ...
├── ast/              # AST node definitions
└── index.js          # Main API
```

## 许可证

MIT - 与美人鱼.js MIT许可证相容

* * *

由图迷为图迷所建.

## 常见问题

### @aj-archipelago/merval 是什么？

世界首个零依赖性美人鱼图验证器\. 即时语法验证,不使用CLI调用或重依赖\.

### 如何安装 @aj-archipelago/merval？

在项目目录运行 npm install @aj-archipelago/merval，或使用 pnpm add / yarn add / bun add。

### @aj-archipelago/merval 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aj-archipelago/merval 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aj-archipelago/merval 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aj-archipelago/merval 可以商用吗？

@aj-archipelago/merval 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @aj-archipelago/merval 的下载量有多少？

根据 npm 官方下载统计，@aj-archipelago/merval 在 2026/10/05 – 2026/11/03 这 30 天内被下载 7,817 次，日均约 261 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aj-archipelago/merval 还在维护吗？

最新版本 1\.0\.7 发布于 2025/11/17（11 个月前）；至今共发布 7 个版本，其中过去 12 个月发布了 4 个；首次发布于 2025/10/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

