# @crvouga/mockingbird-service-lifefile 中文文档

规范地址：https://npmcn.com/package/%40crvouga/mockingbird-service-lifefile/

版本：0\.4\.0
npm 元数据更新时间：2026-11-11T02:20:04.919Z
中文译文更新时间：2026-11-11T10:29:33.842Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40crvouga/mockingbird-service-lifefile
原文对照：https://npmcn.com/package/%40crvouga/mockingbird-service-lifefile/?lang=original
项目主页：https://github.com/crvouga/mockingbird/tree/main/packages/service/lifefile#readme
源码仓库：https://github.com/crvouga/mockingbird

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

- 包体积（解压后）：4.3 MB，18 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-10-21T17:03:29.496Z
- 最新版本发布：2026-11-11T02:20:04.613Z
- 近 30 天下载量：2225（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

Best-guess LifeFile药店订单网关和 Basic-auth Data Push模拟器.

## 安装

```sh
npm install @crvouga/mockingbird-service-lifefile
```

也可以使用：`pnpm add @crvouga/mockingbird-service-lifefile`、`yarn add @crvouga/mockingbird-service-lifefile`、`bun add @crvouga/mockingbird-service-lifefile`

## README

# @crvouga/ mockingbird-service-life文件 页面存档备份,存于互联网档案馆

> 本地模拟器。 真正的API合同. 部分 [嘲笑鸟](https://github.com/crvouga/mockingbird)。 。 。 .

工作在建 LifeFile药房订单网关 用于合成融合测试. 这是一个 **最好猜,不是甲骨文验证**它模拟了订单提交、一意孤行、可配置的航运 拒绝,取消和基础-自动数据推出而不与药店联系.

## 安装

```sh
bun add -d @crvouga/mockingbird-service-lifefile
```

## 使用量

在本地服务器上标注您的应用程序的 LifeFile 基础 URL 。 保存真正的药房证书 和病人的检测结果.

```ts
import { createServer } from "@crvouga/mockingbird-service-lifefile/server"

const server = await createServer()
try {
  const response = await fetch(`${server.url}/order`, {
    method: "POST",
    headers: {
      authorization: `Basic ${btoa("test:test")}`,
      "content-type": "application/json",
      "X-Vendor-ID": "1",
      "X-Location-ID": "1",
      "X-API-Network-ID": "1",
    },
    body: JSON.stringify({
      message: { id: 1 },
      order: { general: { referenceId: "synthetic-order" }, shipping: { state: "AZ" } },
    }),
  })
  if (!response.ok) throw new Error(`Order refused: ${response.status}`)
  const result = await response.json()
  if (result.type !== "success" || !result.data?.orderId) {
    throw new Error(result.message ?? "Order rejected")
  }
  console.log(result.data.orderId)
} finally {
  await server.close()
}
```

## 证据和选定的合同

公众 [启示药整合实例](https://github.com/RevelationPharma/lifefile-example) 为lifeFile 命令 API 提供主集成源: 基本认证, 三 整数 `X-*` 信头,命令创建,状态更新和一个数据Push接收器. 这是药店的 整合实例,并非完整的供应商规格。 报告消费者的客户和 响应计划 `{type, message, data}` 信封内, `data.orderId`数字 `message.id`, (中文(简体) ), `order.general.referenceId` 财务报告和审定财务报表 `order.shipping.state` 字段.

没有发现供应商现场回应。 同上,拒绝状态/信封细节,重复 取消处理、航运限制和推进时间是决定性的模拟者选择. 他们是 **最好的猜测,不是甲骨文验证**航运限制是配置的固定装置; 默认拒绝列表是空的,没有主张全球供应商运输政策.

`POST /order` 返回命令编号 `data.orderId`; 重复一个 `message.id` 重新使用其标识. 认证和信头/机构验证失败不会产生命令 。 模拟器存储 命令元数据,而不是病人、处方者或处方机构.

`PUT /order/{id}/status` 需要明确配置 `cancelStatus`。没有它,模拟器 返回一个不支持的明显错误(HTTP 501),没有状态变化。 这是模拟器 限制,不是观察到的生命文件错误。 用它, 配置状态是取消 定点合同; 未知订单和其他要求的状态在确定性上失败.

## 故意不模拟

实际处方处理、药房的完成、临床鉴定、付款、库存、, 特定账户的航运政策、生产证书和供应商综合计划. 报告所标注的JavaScript SDK没有官方的;接受使用取取取的消费者. 不要用这个模拟器来证明真正的药店接受或取消了订单.

## 设置和测试控制

`createRuntime({settings, webhooks})` 财务报告和审定财务报表 `createServer({settings, webhooks})` 接受:

| 设置 | 默认 | 行为 |
| --- | --- | --- |
| `accounts` | `[]` | 没有固定装置,请接受任何非空的 Basic username/password. 否则需要精确配置 `{username,password}` 双人. |
| `refusedShippingStates` | `[]` | 拒绝匹配 `order.shipping.state` 带有错误信封且未创建命令的值. |
| `cancelStatus` | `null` | 配置取消请求使用的确切状态字符串; 否则状态更新返回 501 . |
| `pushFormat` | `"consumer"` | 暂定目标 `{orderId, referenceId?, status}`· ; `"vendor"` 选择以 `orderId`, (中文(简体) ), `referenceId`, (中文(简体) ), `rxStatus`, (中文(简体) ), `rxStatusDateTime` 根据公共药房演示。 先知也没有被证实. |
| `pushBeforeResponse` | `false` | Flush Data Push在启用时完成订单响应前的发送. |

配置 `webhooks: {url, username, password, fetch?}` 为接收器。 可选 `fetch` 允许测试提供本地接收器。 生产证书是不必要的。 命令开始于 `Received`; 配置的取消过渡到 `Cancelled`自动推送和 状态过渡是模拟器固定行为。 重复命令提交重用 ID 创建另一个命令或发送第二个推动.

标准管理员前缀为 `/__admin` (与 `adminPrefix`) (中文(简体) ). 服务控制有:

| 路线 | 行为 |
| --- | --- |
| `GET /orders` | 仅限元数据命令日记. |
| `GET /settings` | 当前设置, 账户密码被省略 . |
| `PUT /settings` | 更新选定命名空间的已验证设置 . |
| `POST /orders/:id/push` | 改变状态并排队推动;身体 `{status, duplicate?, badCredentials?}`。 。 。 . |

这些路线与管理员前缀相对. 标准控制包括: `/requests`, (中文(简体) ), `/state`, (中文(简体) ), `/faults`, (中文(简体) ), `/webhooks/events` 财务报告和审定财务报表 `/webhooks/flush`。 Webhook 日记记录交付元数据 和有效载荷中只包含建模命令元数据。 请求日志不保留命令正文 .

错误预设为 `reject` (商业错误信封), `server_error` (500个), `malformed` (无效) 贾森, `duplicate_push` 财务报告和审定财务报表 `bad_push_credentials`; 标准 `timeout` 还提供。 应用 一通经 `POST /__admin/faults` 与 `{"preset":"reject"}`。对于特定参考,使用 `{"operationId":"CreateOrder","requestBody":{"order.general.referenceId":"synthetic-order"},"effect":"reject"}`。 。 。 . 同名匹配者瞄准500/malform/超时规则. 拒绝创建的过失不留下命令 或推后脚. 重复和无效的驱动控制 有意进行接收器处理 .

命名空间 : `x-mockingbird-namespace`,按标准 `/__admin/ns/<name>/` 前缀,或由 Basic 用户名在映射它之后 `PUT /__admin/credentials`。快照、重置和时光线历史使用共享运行时间.

## API 密码

包根导出 `LifeFileAPI`, (中文(简体) ), `createRuntime`, (中文(简体) ), `LIFEFILE_NAMESPACE`, (中文(简体) ), `basicUsername`, (中文(简体) ), `LIFEFILE_PRESETS`, (中文(简体) ), `document`, (中文(简体) ), `operationIds` 财务报告和审定财务报表 `supportedOperationIds`。 。 。 . `basicUsername(request)` 提取证书命名空间载体. `LifeFileAPI` 用品 `fetch`, (中文(简体) ), `reset` 财务报告和审定财务报表 `transition`· ; `createRuntime` 添加标准管理员控件和 `webhooks` 中枢.

公共类型是: `LifeFileAPIOptions`, (中文(简体) ), `PushOptions`, (中文(简体) ), `OrderRecord`, (中文(简体) ), `Settings`, (中文(简体) ), `OperationId`, (中文(简体) ), `SupportedOperationId`, (中文(简体) ), `LifeFileRuntime` 财务报告和审定财务报表 `LifeFileRuntimeOptions`。 。 。 .

这个 `./server` 进口 `createServer`, (中文(简体) ), `serveTarget` 财务报告和审定财务报表 `DEFAULT_PORT` (8819),加上类型 `LifeFileServer` 财务报告和审定财务报表 `LifeFileServerOptions`。 。 。 . `createServer` 监听本地端口 默认和返回 `{url, close, runtime, ...}`编辑 `mockingbird-lifefile serve` CLI 使用 固定默认端口. `serveTarget` 支持车队托管和共享管理员控制.

## 现场平等

`bun run parity:service -- lifefile` 报告缺少 沙盒证书的名称。 需要的密钥 为: `LIFEFILE_API_URL`, (中文(简体) ), `LIFEFILE_USERNAME`, (中文(简体) ), `LIFEFILE_PASSWORD`, (中文(简体) ), `LIFEFILE_VENDOR_ID`, (中文(简体) ), `LIFEFILE_LOCATION_ID` 财务报告和审定财务报表 `LIFEFILE_API_NETWORK_ID`,只存储在 GitHub 动作秘密中或 `.env.local`. 没有为这项执行工作提供任何资料。 每个模型操作都会影响 真正的药房队列; 等同脚本拒绝变异而不变异 `--include-unsafe` 还有一个 孤立的沙盒。 未提出现场对等要求.

## 常见问题

### @crvouga/mockingbird-service-lifefile 是什么？

Best-guess LifeFile药店订单网关和 Basic-auth Data Push模拟器\.

### 如何安装 @crvouga/mockingbird-service-lifefile？

在项目目录运行 npm install @crvouga/mockingbird-service-lifefile，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mockingbird-lifefile，可以用 npx mockingbird-lifefile 直接运行。

### @crvouga/mockingbird-service-lifefile 支持 TypeScript 吗？

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

### @crvouga/mockingbird-service-lifefile 支持 ESM 还是 CommonJS？

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

### @crvouga/mockingbird-service-lifefile 可以商用吗？

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

### @crvouga/mockingbird-service-lifefile 的下载量有多少？

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

### @crvouga/mockingbird-service-lifefile 还在维护吗？

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

