# @deuriib/dgii-ecf 中文文档

规范地址：https://npmcn.com/package/%40deuriib/dgii-ecf/

版本：0\.6\.1
npm 元数据更新时间：2026-11-10T13:36:10.934Z
中文译文更新时间：2026-11-12T12:57:41.119Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：1.5 MB，22 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：6 个
- 首次发布：2026-11-02T02:22:19.024Z
- 最新版本发布：2026-11-10T13:36:10.400Z
- 近 30 天下载量：2444（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：14（近 12 个月 14 个）

## 中文简介

DGII电子CF为多米尼加共和国开具SDK电子发票——认证、签名(XMLDSig/C14N)并传送电子税务文件。 Bun -first, 土生土长取来,结果式.

## 安装

```sh
npm install @deuriib/dgii-ecf
```

也可以使用：`pnpm add @deuriib/dgii-ecf`、`yarn add @deuriib/dgii-ecf`、`bun add @deuriib/dgii-ecf`

## README

# 翻译:

> DGII电子CF为多米尼加共和国开具SDK电子发票.

Bun- first, 土生土长 `fetch`,严格类型脚本,以及 **结果模式** (永远不) - 没有隐藏的例外。 签名 XMLDSig 文档(包括 C14N + RSA-SHA256) 用再试、断路器、超时和 一相能报.

## 安装

```bash
bun add @deuriib/dgii-ecf
# or
npm install @deuriib/dgii-ecf
```

> 仅限服务器侧. 绝不在浏览器中使用——它处理私钥.

## 快开始

```ts
import { ECF, Environment, P12Reader, Signature } from '@deuriib/dgii-ecf';

// 1. Read the certificate (.p12)
const reader = new P12Reader(process.env.CERT_PASSWORD ?? '');
const credentials = reader.getKeyFromFile('/secure/identity.p12');
if (credentials.isErr()) throw credentials.error;

// 2. Authenticate against DGII
const ecf = new ECF(credentials.value, Environment.Cert);
const auth = await ecf.authenticate();
if (auth.isErr()) throw auth.error;

// 3. Sign and submit
const signature = new Signature(
  credentials.value.key!,
  credentials.value.cert!,
);
const signed = signature.signXml(xml);
if (signed.isErr()) throw signed.error;

const response = await ecf.sendElectronicDocument(
  signed.value,
  '101672919E3100000001.xml',
);
response.match(
  (invoice) => console.log('trackId', invoice.trackId),
  (error) => console.error('DGII error', error.message),
);
```

## 结果模式

每个错误操作返回 a `Result`数字 :

```ts
const result = await ecf.statusTrackId('some-track-id');
if (result.isOk()) {
  console.log(result.value.estado);
} else {
  console.error(result.error.code, result.error.message);
}
```

## 复原力和免疫力

-   瞬间故障(网络、超时、408/429/5xx) 由连续故障的断路器保护.
-   `sendElectronicDocument` 编号 : `sendSummary` 键入 `RNC + eNCF + SHA-256(signed XML)`; 提供持久性 `IdempotencyStore` 生产(Redis/Postgres):

```ts
const ecf = new ECF(credentials, Environment.Prod, {
  idempotencyStore: myRedisStore, // { get, set, delete }
});
```

## 模块

`environment`, (中文(简体) ), `types`, (中文(简体) ), `errors`, (中文(简体) ), `result`, (中文(简体) ), `resilience`, (中文(简体) ), `http`, (中文(简体) ), `certificate`, (中文(简体) ), `signing`, (中文(简体) ), `transformer`, (中文(简体) ), `reception`, (中文(简体) ), `reconciliation`, (中文(简体) ), `validation`, (中文(简体) ), `utils`, (中文(简体) ), `client`。 。 。 .

## 许可证

麻省理工学院 2026 Deuri Vasquez

## 常见问题

### @deuriib/dgii-ecf 是什么？

DGII电子CF为多米尼加共和国开具SDK电子发票——认证、签名\(XMLDSig/C14N\)并传送电子税务文件。 Bun -first, 土生土长取来,结果式\.

### 如何安装 @deuriib/dgii-ecf？

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

### @deuriib/dgii-ecf 支持 TypeScript 吗？

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

### @deuriib/dgii-ecf 支持 ESM 还是 CommonJS？

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

### @deuriib/dgii-ecf 需要什么版本的 Node\.js？

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

### @deuriib/dgii-ecf 可以商用吗？

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

### @deuriib/dgii-ecf 的下载量有多少？

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

### @deuriib/dgii-ecf 还在维护吗？

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

