# @cosyte/ncpdp 中文文档

规范地址：https://npmcn.com/package/%40cosyte/ncpdp/

版本：0\.1\.6
npm 元数据更新时间：2026-11-10T11:52:01.485Z
中文译文更新时间：2026-11-10T21:44:25.206Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40cosyte/ncpdp
原文对照：https://npmcn.com/package/%40cosyte/ncpdp/?lang=original
项目主页：https://docs.cosyte.com/ncpdp
源码仓库：https://github.com/cosyte/ncpdp

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

- 包体积（解压后）：3.1 MB，43 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：1 个
- 首次发布：2026-07-17T00:48:55.602Z
- 最新版本发布：2026-11-10T11:52:00.980Z
- 近 30 天下载量：3523（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：20（近 12 个月 20 个）

## 中文简介

NCPDP 解析器,序列器,以及Node.js和TypeScript的构建器:SCRIPT ePrepression and Telecom dromice claims, 宽大于解析, spec-clean on exmit.

## 安装

```sh
npm install @cosyte/ncpdp
```

也可以使用：`pnpm add @cosyte/ncpdp`、`yarn add @cosyte/ncpdp`、`bun add @cosyte/ncpdp`

## README

[![The Cosyte logo on its own white ground: the icon beside the word Cosyte.](https://cosyte.com/tile/cosyte-lockup-tile-on-light-1200x300.png)](https://cosyte.com/)

# @ cosyte/ ncpdp

> 在不购买标准的情况下,用一行读取销售商-quirky Telecom药店索赔或STRIPT ePrecific.

[![npm version](https://img.shields.io/npm/v/@cosyte/ncpdp.svg)](https://www.npmjs.com/package/@cosyte/ncpdp) [![CI](https://img.shields.io/github/actions/workflow/status/cosyte/ncpdp/ci.yml?branch=main&label=CI)](https://github.com/cosyte/ncpdp/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/cosyte/ncpdp/blob/main/LICENSE) [![Node](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org/)

NCPDP 解析器、序列器和节点和类型Script的构建器: SCRIPT ePresent和Telecom 药房要求,宽大 剖析, 光谱清洁 弹出.

-   [为什么会这样](https://npmcn.com/package/%40cosyte/ncpdp/#readme-why-this-exists)
-   [状态](https://npmcn.com/package/%40cosyte/ncpdp/#readme-status)
-   [安装](https://npmcn.com/package/%40cosyte/ncpdp/#readme-install)
-   [使用量](https://npmcn.com/package/%40cosyte/ncpdp/#readme-usage)
-   [API 密码](https://npmcn.com/package/%40cosyte/ncpdp/#readme-api)
-   [兼容性](https://npmcn.com/package/%40cosyte/ncpdp/#readme-compatibility)
-   [文档](https://npmcn.com/package/%40cosyte/ncpdp/#readme-documentation)
-   [支助](https://npmcn.com/package/%40cosyte/ncpdp/#readme-support)
-   [警卫](https://npmcn.com/package/%40cosyte/ncpdp/#readme-security)
-   [捐款](https://npmcn.com/package/%40cosyte/ncpdp/#readme-contributing)
-   [许可证](https://npmcn.com/package/%40cosyte/ncpdp/#readme-license)

## 为什么会这样

NCPDP是一个品牌下两个结构上无关的标准: SCRIPT,一种XML ePrepression格式, 以及电讯标准,一种控制性质药店索赔格式。 这个 两份指南的执行指南都是购买的产品,因此节点小组通常的路线是: 手卷读者对向导,有人要买:元素走过 [`fast-xml-parser`](https://github.com/NaturalIntelligence/fast-xml-parser) 斯德哥尔摩,a `String.split` 页:1 这工作直到 真正的输入到达,然后一个卖家的怪异 是一个例外 扔在中间 离相抵消是一个错误的字段,一个货币金额用 `parseFloat` 支付错误 金额。 这个软件包是另一个选择:一个宽大化的阅读器,将怪事变成位置 警告而不是失败,一个只写光谱干净输出的保守的发射器,以及 数量和金钱按字符串处理,所以二进制浮动点永远不能损坏一个值.

## 状态

**0.1线.** 公共API是定居和稳定的,足以依赖. 输出函数 其论据的形状、它们返回的模型字段和稳定的警告代码的消费者 分支上的所有内容都包含在此发布后的语义版本中; 重命名一个警告代码 是一个突破性的变化,被作为一体对待.

两种公共表面仍在移动,两者都是添加式视图而不是剖析本身:

-   **结构化的SIG视图** (单位:千美元)`medication.sig`) (中文(简体) ). 明确损失并明确标注: 自由文本 `sigText` 永远是权威的 永远不会被覆盖 结构化的组件 只有在已公布的字段标签显示其元素名称时才解码。 这个被禁用的名字列表可以 当重新检查其定位时丢失一个名称, 这将移动组件从 `coded` 改为 `absent`。 。 。 .
-   **线码标签表** (单位:千美元)`known` 在拒绝, DUR, 或理由代码。 标签船只在 所以大多数密码都作为光线密码 `known: false`当发现一件文物时,会添加标签,而且永远不会猜到.

两种电线格式上的其他一切都解决了. 软件包做和不解码是 一次,在 [合规说明](https://github.com/cosyte/ncpdp/blob/main/docs-content/conformance.md)。 。 。 .

## 安装

```bash
pnpm add @cosyte/ncpdp
```

22号或以后试验的节点js 22、24和26(`engines.node` 实值 `>=22.0.0`) (中文(简体) ). 软件包是 无害环境管理`"type": "module"`和船 共同JS建造 旁边,所以 `import` 财务报告和审定财务报表 `require` 都决心 通过相同的 `exports` 地图。 脚本类型解析 `node16` 遗产 `node10`。 。 。 .

### 依赖关系

电信方面是零依赖,只有节点标准库. STRIPT一方只拿一个 经审查的运行时间依赖, [`fast-xml-parser`](https://github.com/NaturalIntelligence/fast-xml-parser),用于名称意识 XML 解析, 配置了 XXE 安全, 实体解析被禁用 。 不再依赖运行时间 添加时没有同样的审查.

## 使用量

下文的两个例子是完整的程序。 每一个都与这个包裹相撞 下方的块 这是它印刷的,逐字记录。 每一个病人、医生、成员和产品价值 是人工合成的.

### 发送和阅读电信账单索赔

```js
import { buildTelecomRequest, serializeTelecom, parseTelecom, claim } from "@cosyte/ncpdp/telecom";

// Emit a spec-clean Telecom B1 billing claim. Every value below is synthetic.
const wire = serializeTelecom(
  buildTelecomRequest({
    header: { transactionCode: "B1", binNumber: "999999", dateOfService: "20260115" },
    segments: [
      { segmentId: "04", fields: [{ id: "C2", value: "SYNTHCARD09" }] },
      {
        segmentId: "07",
        fields: [
          { id: "D2", value: "RX0000001" },
          { id: "E1", value: "03" },
          { id: "D7", value: "99999999999" },
          { id: "E7", value: "30000" },
          { id: "D5", value: "30" },
        ],
      },
    ],
  }),
);

// Read it back. A vendor quirk becomes a positioned warning here, never a throw.
const t = parseTelecom(wire);
const c = claim(t);

console.log(t.kind, t.header.transactionCode, t.warnings.length);
console.log(c?.cardholderId, c?.prescriptionReferenceNumber);
console.log(c?.product?.id, c?.product?.qualifier);
console.log(c?.quantityDispensed?.source, c?.quantityDispensed?.impliedDecimal);
```

```text
request B1 0
SYNTHCARD09 RX0000001
99999999999 03
30000 30.000
```

注意倒数行. 所发放的数量带有一个隐含的小数点后三分位数,逐字记录则含有 源保存在缩放值旁边,该值是按字符串而不是通过浮点生成的.

### 读取 STIPT NewRx

```js
import { parseScript, newRx } from "@cosyte/ncpdp/script";

// A minimal SCRIPT NewRx. Every value below is synthetic.
const xml = `<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://www.ncpdp.org/schema/SCRIPT" version="2017071">
  <Header><MessageID>SYNTH-MSG-0001</MessageID></Header>
  <Body><NewRx>
    <Patient><HumanPatient>
      <Name><LastName>Testpatient</LastName><FirstName>Avery</FirstName></Name>
      <DateOfBirth><Date>1990-04-12</Date></DateOfBirth>
    </HumanPatient></Patient>
    <MedicationPrescribed>
      <DrugDescription>Amoxicillin 500 MG Oral Capsule</DrugDescription>
      <DrugCoded><ProductCode Qualifier="ND">99999999999</ProductCode></DrugCoded>
      <Sig><SigText>Take 1 capsule by mouth three times daily for 10 days.</SigText></Sig>
    </MedicationPrescribed>
  </NewRx></Body>
</Message>`;

const msg = parseScript(xml);
const rx = newRx(msg); // the NewRx body, or undefined for another transaction

console.log(msg.header.messageId, msg.warnings.length);
console.log(rx?.patient?.name?.lastName, rx?.patient?.dateOfBirth);
console.log(rx?.medication?.description, rx?.medication?.coded?.productCode?.system);
console.log(rx?.medication?.sig?.sigText);
```

```text
SYNTH-MSG-0001 0
Testpatient 1990-04-12
Amoxicillin 500 MG Oral Capsule NDC
Take 1 capsule by mouth three times daily for 10 days.
```

更多的任务,每一个都有自己的榜样,都包含在如何指导,从 [读取 PBM 回复](https://github.com/cosyte/ncpdp/blob/main/docs-content/read-a-pbm-response.md) 财务报告和审定财务报表 [构建和序列化信件](https://github.com/cosyte/ncpdp/blob/main/docs-content/build-and-serialize-messages.md)。 。 。 .

## API 密码

五个密码入口,加 `@cosyte/ncpdp/package.json` 用于读出清单的工具:

| 导入 | 它携带着什么 |
| --- | --- |
| `@cosyte/ncpdp` | `VERSION` 和每一次导出 `script`, (中文(简体) ), `telecom`, (中文(简体) ), `common`,以及 `profiles` |
| `@cosyte/ncpdp/script` | 师曰 `parseScript`, (中文(简体) ), `newRx`,反应脊椎`status` 编号 : `error` 编号 : `verify`),生命周期读取器(`rxRenewalResponse` 编号 : `rxChangeResponse` 编号 : `cancelRxResponse`, (中文(简体) ), `approvalOf`, (中文(简体) ), `serializeScript`, (中文(简体) ), `buildNewRx`, (中文(简体) ), `buildScriptResponse` |
| `@cosyte/ncpdp/telecom` | 电讯: `parseTelecom`, (中文(简体) ), `claim`, (中文(简体) ), `adjudication`, (中文(简体) ), `compound`, (中文(简体) ), `cobOtherPayments`, (中文(简体) ), `responseCob`, (中文(简体) ), `requestDur`, (中文(简体) ), `priorAuthorization`, (中文(简体) ), `serializeTelecom`, (中文(简体) ), `buildTelecomRequest` |
| `@cosyte/ncpdp/common` | 共享词汇 : `ndcValue`, (中文(简体) ), `decimalValue`,位置帮助器,警告和致命代码常数两个格式共享 |
| `@cosyte/ncpdp/profiles` | `defineProfile`, (中文(简体) ), `partitionWarnings`,以及内置 `profiles.surescripts` 财务报告和审定财务报表 `profiles.pbm` |

签名、返回类型和每个字段的笔记都作为 JSDoc 公开输出,所以编辑器 显示其内含。 咬人的警示,没有签名可以显示,是:

-   **拒绝总是获胜.** 处理反应是交易中的一项总功能 反应状态和拒绝代码一起。 如有拒绝,则处分如下: `"rejected"` 即使已支付状态外地索偿, 矛盾的表面 反而 未解决。 消费者从未被告知一个被拒绝的索赔已经支付。 未识别状态为 `"unknown"`从来没有支付.
-   **否认绝不是认可.** 生命周期结果只从反应中读取 选择元素。 未确认或不存在的结果如下: `"unknown"`,且反应不正确 拥有一个以上的结果首先解决拒绝问题。 在一个 `approvedWithChanges`读取 `medicationPrescribed`:这是被改变的药物,这是可以分发的药物.
-   **一个 `Error` 从来没有成功.** 一个危机 `disposition` 仅取自反应机构 类型,如果一个错误的信息包含一个以上的响应机构,则最保守 一个赢。 代码和说明是浮出水面的;没有代号表船.
-   **金钱和数量从不浮出水面.** 每笔金额都包含一个隐含的 二位小数和一个 可选小区小数点后超小数符号,数量表示小数点后三位数。 两者都是 应用字符串,将逐字记录源保留在结果旁边。 任何出乎意料的事都会发生 保留于 `isValid: false` 并且没有解释价值 而不是猜测.
-   **没有什么是默默地放弃的.** 未知的片段、未知的字段和错误的符号是 保持了逐字记录和警告。 每一个解码交易都与自己的索引相对应 区段、字节相抵和警告,以及后期交易成本的缺陷。 每个复合成分,每个效益协调 钱行,每个回报 DUR 提醒被浮出水面, 从未合并或截断; 已声明的数与 解码的计数会发出警告, 却一无所获。 报告申报的交易数,绝不 已执行.
-   **事先授权是存在,而不是裁决.** 它报告说,该部分已经提交 并呼应类型和数字。 它从未决定授权是否有效或是否得到尊重.
-   **结构化SIG有添加剂和失活性.** `sigText` 永远是真理的来源 与结构化观点相协调;如果两者意见相左,则两者都表面为正. 每个 组件被标记 `coded`, (中文(简体) ), `derived`,或 `absent`,一个缺席者 永远不会从自由 文本,而一个模糊的剂量读取 `absent` 而不是被猜测.
-   **Emit是犬形,不是字节身份.** 读取是失落的,所以放出复制的模型 内容 : `serialize(parse(serialize(x)))` 字节与 `serialize(x)` 财务报告和审定财务报表 `parse(serialize(x))` 结构上等于 `x`。构建者拒绝无效的消息 以有打字错误的方式建造,而不排放畸形的东西 值在错误中永远不会重复。 将 SCRIPT 交易序列化, 软件包不建模 丢弃而不是写带有删除正文的文档:测试 `body.kind` 首先转发 原字节.
-   **只有结构性腐败才能产生.** 空输入, 非 XML, 缺少信件根, 前 XML 遗留版本,没有设置字节,和不支持的版本印章都是输入致命错误. 其它的都是带有稳定代码和位置的警告.

### 日期和时间

每个有日期的字段 在一个解析模型上 是,并留下来 **逐字记录字符串** 到达时 电线。 在下面没有东西会改写一个 转换是 **选入**: 你找到他们的时候 想要一个日期作为部分,作为ISO-8601,或者作为一个瞬间,直到你这样做, `header.dateOfService` 财务报告和审定财务报表 `claim.dateOfBirth` 正是发送者发送的字符.

`dateValue` 将线条串解码为值; `toObject`, (中文(简体) ), `toISO`,以及 `toDate` 读取该值. 每个名字都一样 `@cosyte/*` par.

```ts
import { dateValue, toObject, toISO, toDate } from "@cosyte/ncpdp";

const dos = dateValue(t.header.dateOfService); // "20260629"

toObject(dos); // { year: 2026, month: 6, day: 29 }: month is 1 to 12, never 0 to 11
toISO(dos); // "2026-06-29": truncated to the precision stated, nothing appended
toDate(dos); // undefined: see the timezone rule below
toDate(dos, { assumeOffsetMinutes: 0 }); // 2026-06-29T00:00:00.000Z
toDate(dos, { assumeOffsetMinutes: -300 }); // 2026-06-29T05:00:00.000Z
```

**一种电线形式被解码: `CCYYMMDD`。 。 。 .** 这是本套件唯一公布的日期表 在交易页头和在出生日期(304-C4)的病人部分. 所有其他有日期或有时间的字段均按无说明形式逐字记录: 苏格兰 `<SentTime>`, (中文(简体) ), `<DateOfBirth>`,以及 `<WrittenDate>` 值,以及 Telecom 其他付款日期 (443-E8)和上个填充日期(530-FU)值. `dateValue` 答题 `undefined` 这些 而不是猜测一种表格,因为能解决问题的文件是购买的产品 此软件包不重新分配或引用,从猜测中解码的日期是一个错误的答案: 没什么好宣布的 田地本身未受破坏,仍可读取.

**一天的日历没有被拒绝,从来没有翻转.** `dateValue("20240230")` 实值 `undefined`,一个 `DateValue` 使用相同的组件构建或分散: 转换应用相同的 4/100/400 跳跃规则 解码器应用,所以两种路径都一样 同样的八位数。 这儿没什么 `"2024-02-30"`,每个 ISO-8601 读取 回到3月1日,和 `toDate` 在接下来的一个月内永远不要返回.

**`toDate` 永远猜不到一个区域.** 这里没有解码的表格带有 UTC 偏移,所以区从不 自行决定:无 `assumeOffsetMinutes` 你会得到 `undefined`,以及 **主机的 时区从不读取, UTC 也从不假设**. 提供冲抵 `0` 意思是"条约" 这个天真值作为UTC))或得到一无所获. 这种拒绝是关键:一个出生日期已经确定 在每一负震荡区,它都默默地行动.

`toObject` 只返回所报值的组件,因此 `Object.keys()` 恢复它的精度. 删除 `offsetMinutes` 离开对象 `Temporal.PlainDate.from` 和豪华的 `DateTime.fromObject` 接受现在。 这里两个库都不是依赖; 此软件包将保留 除其 XML 解析器外,零运行时间依赖.

#### 使用两个 `@cosyte` 在一个文件中解析

三个名字在套间上刻意相同 所以把两个解码器导入一个 模块表示别名或名称间隔:

```ts
import { toISO as ncpdpToISO, dateValue } from "@cosyte/ncpdp";
import { toISO as hl7ToISO, parseDtm } from "@cosyte/hl7";

ncpdpToISO(dateValue(c.dateOfBirth)); // c: the Telecom claim view
hl7ToISO(parseDtm(dtm)); // dtm: an HL7 v2 timestamp string

// or namespace them instead
import * as ncpdp from "@cosyte/ncpdp";
```

## 兼容性

**标准版本.** 每个标准的哪个版本被解码,该章在不识别的情况下被识别 已解码的公用栏目,每个栏目的通过日期,以及结束通过的日期 一次也只有一次,在 [合规说明](https://github.com/cosyte/ncpdp/blob/main/docs-content/conformance.md)他们是 故意不在这里重述 因为第二本是一份过时的.

**卖家怪异.** 贸易伙伴和伴行指南的差异通过简介处理 系统 : `defineProfile()` 加内置 `profiles.surescripts` 科学、技术和科学研究所 `profiles.pbm` 页:1 电信,通过同一个公共API 并基于真正的容忍定律 比猜测。 附上一个 `parseScript(xml, { profile })` 或者说 `parseTelecom(raw, { profile })`。简介为 **说明**数字 : 附带属性和电源警告分区,附带配置文件的输出是 字节- 和输出相同, 没有一个 。 剖面图不会改变剖面 .

**以相隔为名,取而代之.** 受管制物质的电子说明已失效 它需要缉毒署管制的签名核查和 不同的认证姿态。 解析和排放只是全信息,没有流线 模式。 STIPT 构建器释放它获得的SIG, 并且不从结构中生成 结构化的SIG解码不读取任意的自然语言方向. 大部分线码标签都是 不是船,因为没有公共文物可以建造它们。 没有第三方测试过这个包裹 对参照执行没有差别 [合规说明](https://github.com/cosyte/ncpdp/blob/main/docs-content/conformance.md) 说什么代表两个 [知识分子](https://github.com/cosyte/ncpdp/blob/main/KNOWN-LIMITATIONS.md) 是完整的非重叠信任列表.

## 文档

完整参考文献 [docs.cosyte.com/ncpdp 页面存档备份,存于互联网档案馆](https://docs.cosyte.com/ncpdp),从此构建 存储器 [`docs-content/`](https://github.com/cosyte/ncpdp/tree/main/docs-content)从这些页面开始:

-   [快速启动](https://github.com/cosyte/ncpdp/blob/main/docs-content/quickstart.md):读取 SCRIPT NewRx 和 Telecom B1 要求结束, 并看看抛出什么,什么只是警告.
-   [开个账单,读一下答案](https://github.com/cosyte/ncpdp/blob/main/docs-content/bill-a-claim-and-read-the-answer.md)数字 : 建立Telecom债权并读取已付款和被拒绝答案的教程.
-   [诊断代码](https://github.com/cosyte/ncpdp/blob/main/docs-content/diagnostic-codes.md)每一个致命的,警告,和 以读者或建筑者的行为构建代码.
-   [遵约声明](https://github.com/cosyte/ncpdp/blob/main/docs-content/conformance.md):每条线格式解码, 在收养结束时,由通过收养的公共部门和经过检验的公共部门进行收养.
-   [解决问题](https://github.com/cosyte/ncpdp/blob/main/docs-content/troubleshooting.md):当一个解剖投出时,怎么办, 字段读取未定义,或拒绝放出,以及已知的限制.
-   [已知的限制](https://github.com/cosyte/ncpdp/blob/main/KNOWN-LIMITATIONS.md):完整的"不逾越信任清单".

## 支助

虫子报告到 [问题跟踪器](https://github.com/cosyte/ncpdp/issues)由人工合成而成 仅限数据。 问题和想法 [讨论情况](https://github.com/cosyte/.github/discussions), (中文(简体) ), 它覆盖每个科西特仓库。 该组织 [支持页面](https://github.com/cosyte/.github/blob/main/SUPPORT.md) 列出两者.

需要建立国家CPDP集成,还是为您主办和运行? 看我们的 [融合服务](https://cosyte.com/integration-services)。 。 。 .

## 警卫

通过这个存储库私下报告脆弱性 [私人脆弱性报告](https://github.com/cosyte/ncpdp/security/advisories/new) 或通过电子邮件发送给 [安全性@ cosyte.com](mailto:security@cosyte.com)作为 [安全政策](https://github.com/cosyte/.github/blob/main/SECURITY.md) 描述。 从不报告 而不包含真正的病人数据.

### PHI 与安全

药房交易带有PHI, 而这个图书馆是建立在你的假设.

**伐木.** 图书馆没有记录 没有 `console` 调用库代码, 以及它自己的 诊断可以完整记录: 警告或错误消息来自一个被冻结的登记册, 由 代码,而制造一个的工厂 采取一个位置 没有别的,所以没有 一个文档可以到达的插入站点。 一个警告 `message` 与登记册的字节相同 条目 `code`并且测试表明 位置是 SCRIPT 的 XPath 和一个字节 乘以 Telecom 的双字符字段代号,其部件仅取自此库的名称 认得,从来没有从一个发送者选择的名字.

**续收.** 没有任何保留。 剖析是交给它的字节的纯函数. 有一个 没有缓存, 没有模块级别状态, 也没有历史; 返回被冻结的模型是唯一的东西 超过呼叫.

**写入磁盘 .** 无所为而取取. 库打开没有文件也没有 任何时间的套接字, 代码列表它被捆绑的快照编入包中 而不是运行时间下载.

**解析模型无法安全日志 .** 域值、药品编码、说明和识别特征 你问的就是这个 为. 保证的是 图书馆自己的结构识别器 保持界限,所以 下游包件建筑诊断不能被传送出无约束的线条字节: `segment.segmentId` 总是两个字符 或空的,但交易是, `field.id` 最多为2个,一个未建模的 SCRIPT 交易只从一个已关闭的词汇中命名.

**昂贵的应用程序仍然拥有什么.** 呼叫之外的一切:运输和 加密、认证、访问控制和审计、保留和处置、去除识别 分析前, 和它自己的伐木。 如果您登录了解析模型, 您已经登录了 PHI 。 斯德哥尔摩 装入器拒绝任何带有 `<!DOCTYPE>` 或者说 `<!ENTITY>` 声明和解决否 因此,没有外部实体或亿分百的载体,但是没有解析器可以使 未信任的文档可存储 .

## 捐款

**外拉请求.** 寄存器是公用和麻省理工学院许可的,它需要拉取请求 条件与任何其他变化相同。 该组织 [贡献指南](https://github.com/cosyte/.github/blob/main/CONTRIBUTING.md) 财务报告和审定财务报表 [行为守则](https://github.com/cosyte/.github/blob/main/CODE_OF_CONDUCT.md) 此处适用 本节补充了该寄存器的具体内容.

**在合并之前,必须澄清什么是贡献.** 一个拉动请求必须绿色满足要求 状态检查 `main`地方:

```bash
pnpm lint && pnpm typecheck && pnpm test && pnpm run check && pnpm run build
```

林特运行于 `--max-warnings=0` 每个目录的覆盖率为90%。 检查两道门 文本及代码: 任何履带文件或拉取请求标题、正文中无 em 或 en switch 或输入信件,在已公布的表面没有内部项目标识符。 改变 行为还需要一个变换器,一个重新命名稳定警告代码的变换器正在描述 一个突破性的变化.

## 许可证

MIT. 版权 (c) 2026 Cosyte LLC. 全文: [自由主义](https://github.com/cosyte/ncpdp/blob/main/LICENSE)。 。 。 .

### 商标

`@cosyte/ncpdp` 是一个独立的开源项目。 Cosyte不附属于, 得到.., 或由本储存库或其文件所命名的任何公司担保。 标记显示为 内置配置的名称,因为配置无法记录交易伙伴公约 它可以容纳而不命名它们。 见 [贸易](https://github.com/cosyte/ncpdp/blob/main/TRADEMARKS.md)。 。 。 .

## 常见问题

### @cosyte/ncpdp 是什么？

NCPDP 解析器,序列器,以及Node\.js和TypeScript的构建器:SCRIPT ePrepression and Telecom dromice claims, 宽大于解析, spec-clean on exmit\.

### 如何安装 @cosyte/ncpdp？

在项目目录运行 npm install @cosyte/ncpdp，或使用 pnpm add / yarn add / bun add。

### @cosyte/ncpdp 支持 TypeScript 吗？

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

### @cosyte/ncpdp 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @cosyte/ncpdp 需要什么版本的 Node\.js？

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

### @cosyte/ncpdp 可以商用吗？

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

### @cosyte/ncpdp 的下载量有多少？

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

### @cosyte/ncpdp 还在维护吗？

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

