# @faiber/faiber-flow 中文文档

规范地址：https://npmcn.com/package/%40faiber/faiber-flow/

版本：2\.7\.0
npm 元数据更新时间：2026-11-04T16:20:44.560Z
中文译文更新时间：2026-11-14T09:12:02.009Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40faiber/faiber-flow
原文对照：https://npmcn.com/package/%40faiber/faiber-flow/?lang=original

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

- 包体积（解压后）：105 kB，20 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-07-18T14:30:15.114Z
- 最新版本发布：2026-11-04T16:20:44.382Z
- 近 30 天下载量：3816（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 65 个）

## 中文简介

被键入的"流"定义,图表验证,事件执行,目录同步,活性触发发现,运行细节和集成元数据.

## 安装

```sh
npm install @faiber/faiber-flow
```

也可以使用：`pnpm add @faiber/faiber-flow`、`yarn add @faiber/faiber-flow`、`bun add @faiber/faiber-flow`

## README

# @faiber/faiber-流量

被键入的"流"定义,图表验证,事件执行,目录同步,活性触发发现,运行细节和集成元数据.

```bash
npm install @faiber/faiber-flow
```

```ts
import { FaiberClient, MemoryTokenProvider } from '@faiber/sdk-core';
import { FlowApi } from '@faiber/faiber-flow';

const client = new FaiberClient('flow', {
  domains: { flow: process.env.FAIBER_FLOW_URL! },
  tokenProvider: new MemoryTokenProvider(),
  axios: { withCredentials: true, timeout: 15_000 },
});
const api = new FlowApi(client);
const created = await api.flows.create({
  name: 'Checkout completed',
  trigger_key: 'event.checkout.completed',
  enabled: false,
});
const validation = await api.validate(created.data.data.id);
const registry = await api.activeTriggers({ service: 'ledger' });
const runs = await api.runs.list({ limit: 20 });
// Run detail includes flattened run fields, nullable context and ordered steps.
if (runs.data.data[0]) {
  const detail = await api.runs.show(runs.data.data[0].id);
  console.log(detail.data.data.status, detail.data.data.steps);
}
```

所有18个挂载的HTTP操作均可调用 `api.operations`,并列出出口投入、查询和答复。 方便方法包括: `flows`, (中文(简体) ), `runs`, (中文(简体) ), `validate`, (中文(简体) ), `triggers`, (中文(简体) ), `actions`, (中文(简体) ), `activeTriggers`, (中文(简体) ), `syncCatalog`, (中文(简体) ), `importFlows`, (中文(简体) ), `emitEvent` 财务报告和审定财务报表 `integration`。所有电话保留完整的 Axios 响应、状态、信头和请求ID。 成功数据被包裹为 `{status: 'success', message: 'ok', data}`列表是该信封内的数组; Flow不提供页码信封。 运行 `limit` 默认为 50 且没有应用程序夹.

流程创建用途 `name`, (中文(简体) ), `trigger_key`选项 `slug`, (中文(简体) ), `enabled` 财务报告和审定财务报表 `graph`; 启用默认错误,省略的图表创建了单一的触发节点. 一个图有 `nodes` 财务报告和审定财务报表 `edges`编辑器位置、节点数据、边缘数据、下游有效载荷和历史执行背景都是故意的JSON值,因为服务存储可扩展的JSON文件。 PUT更新是部分的;无效并省略了字段保留了已存在的值. 图形或触发改变版本的增量。 删除返回一个包含 `{deleted: true}`。 。 。 .

`importFlows` 接受流程条目、事件桥和桥群。 使用 `dry_run: true` 以验证和报告交易回滚后的拟议修改。 正常的进口通过正常的弹片增高;相同的复读报告条目不变. 导入桥启用了真实的默认, 不同于直接创建 . `version` 财务报告和审定财务报表 `source` 被接受的元数据,目前被后端忽略.

`emitEvent(eventKey, json)` 接受任何 JSON 值,包括无效。 事件密钥必须包含1–200个 ASCII 字母,数字,点,下划线或连字符,没有前导/后导/双点. 反应是 HTTP 200 与 `{accepted: true, event_id, trigger_key}`. 个人流量执行失败仍可产生可接受的反应;检查后进行。 每一次重复的事件呼吁都会产生新的事件并可以重复下游的行动. 登记册通知前的变异持续存在,因此,通知错误可随承诺的变化而发生。 复试前调和相. Catalog 同步返回计数和每次服务失败, 甚至在 HTTP 200 下; 它不返回一个 `synced` 布尔.

配置 a `TokenProvider` 用于熊鼠授权,或 `withCredentials` 用于安全的 Http 只有饼干会话。 偏好饼干或内出类比;持久浏览器存储是一种明确的安全取舍. 每个SDK呼叫都使用共享 `FaiberClient`。宣布的路由权限为 `flow:read/create/update/delete`, (中文(简体) ), `flow_run:read`, (中文(简体) ), `catalog:sync`,以及 `flow:execute`; 导入同时声明创建和更新。 事件明确显示检查 `flow:execute` 或者说 `*` 内 `AuthContext`其他操作人员没有当地许可/所有人/租户检查。 流程安装了导入的全球认证提取,外部依赖性被固定在 `291c81a67bc302d667fb807da2af3240598bee52` 在生产清单 和坚定的锁文件。 检查共享的境内流离失所者源登记许可元数据,并信任网关身份信头,并进行回溯;在网关执行身份和权限。 仅发送证书并不能建立后端授权执行.

Axios 选项、信头、适配器、拦截器、超时和 `AbortSignal` 取消被接受为最后论据。 应用程序错误使用 `{error: string}`:验证400,缺失UUID记录404,重复的sults 409,持久性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性活性 保留轴出错 `response.status` 和原始错误正文。 无效的保存图返回 HTTP 200 与 `valid: false` 财务报告和审定财务报表 `errors`。 。 。 .

```ts
const controller = new AbortController();
try {
  await api.emitEvent('checkout.completed', { total: 1200 }, { signal: controller.signal });
} catch (error) {
  // Inspect the Axios error response; check current runs before retrying execution.
}
```

使用 [@faiber/faiber-ts-sdk](https://www.npmjs.com/package/@faiber/faiber-ts-sdk) 用于一个客户端配置中的多个 Faiber 服务.

## 常见问题

### @faiber/faiber-flow 是什么？

被键入的"流"定义,图表验证,事件执行,目录同步,活性触发发现,运行细节和集成元数据\.

### 如何安装 @faiber/faiber-flow？

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

### @faiber/faiber-flow 支持 TypeScript 吗？

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

### @faiber/faiber-flow 支持 ESM 还是 CommonJS？

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

### @faiber/faiber-flow 可以商用吗？

@faiber/faiber-flow 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @faiber/faiber-flow 的下载量有多少？

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

### @faiber/faiber-flow 还在维护吗？

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

