# @tracepass/dpp-types 中文文档

规范地址：https://npmcn.com/package/%40tracepass/dpp-types/

版本：0\.19\.0
npm 元数据更新时间：2026-11-02T16:40:00.400Z
中文译文更新时间：2026-11-02T17:28:15.909Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：49.5 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-07-19T18:44:33.761Z
- 最新版本发布：2026-11-02T16:40:00.044Z
- 已发布版本数：28（近 12 个月 28 个）

## 中文简介

欧盟数字产品护照（ESPR）的TypeScript类型——模板、护照、当事人和可追溯性事件。只有类型，零运行时，零依赖。

## 安装

```sh
npm install @tracepass/dpp-types
```

也可以使用：`pnpm add @tracepass/dpp-types`、`yarn add @tracepass/dpp-types`、`bun add @tracepass/dpp-types`

## README

[![TracePass](https://www.tracepass.eu/tracepass-logo.svg)](https://www.tracepass.eu/)

# @tracepass / dpp-types

**欧盟数字产品护照的TypeScript类型。仅类型-编译为零。**

[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://npmcn.com/package/LICENSE) [![Dependencies](https://img.shields.io/badge/runtime%20dependencies-0-success)](https://npmcn.com/package/%40tracepass/dpp-types/#)

的一部分 [**tracepass-open**](https://github.com/malinoto/tracepass-open) ·由 [TracePass](https://www.tracepass.eu/)

* * *

欧盟可持续生态设计下数字产品护照的共享类型 产品的规定, **(欧盟)2024/1781**：类别 `Template` （其字段规格） 填好的 `Passport`经济运营者 `Party`，以及可追溯性事件。

```bash
npm install --save-dev @tracepass/dpp-types
```

```ts
import type { Template, Passport, TemplateField } from "@tracepass/dpp-types";
```

## 标识符不透明

`Id` 是一个 `string`。这些包裹里都无法解析，所以护照来自 任何数据库或JSON文件都可以正常工作。存储引擎不同意什么 id是;护照逻辑不需要关心。

## 产品和操作员标识符（EN 18219）

`Passport.identifier` 带有 `ProductIdentifier` -对五国的歧视工会 EN 18219为数字产品护照定义的方案：

```ts
import type { ProductIdentifier, OperatorIdentifier, FacilityIdentifier } from "@tracepass/dpp-types";

// GS1 Digital Link (scheme 1)
const gs1: ProductIdentifier = { scheme: "gs1", gtin: "05449000000996", serialNumber: "SN-001" };

// ISO/IEC 15459 — any issuing agency (scheme 1)
const iso: ProductIdentifier = { scheme: "iso15459", issuingAgencyCode: "MH", primaryId: "BAT-001", raw: "MHBAT-001" };

// IEC 61406 digital nameplate URL (scheme 2)
const iec: ProductIdentifier = { scheme: "iec61406", uri: "https://id.example.com/asset/42" };

// W3C Decentralised Identifier (scheme 3)
const did: ProductIdentifier = { scheme: "did", method: "web", did: "did:web:example.com" };

// DOI (scheme 5)
const doi: ProductIdentifier = { scheme: "doi", doi: "10.1234/my-passport", granularity: "model" };
```

`Party.operatorIdentifier` 携带一个 `OperatorIdentifier` - ISO 6523 （LEI, GLN via） icd 0088， DUNS)、独立GLN（方案“GLN”）、DID或DOI。 `Party.facilityIdentifier` 带有 `FacilityIdentifier` 使用相同的四种方案（6-9）加上可选的GLN 子位置的扩展组件。两者都是可选的；遗留 `gln` 和 `legacyOperatorId` 字段保留是为了向后兼容。

遗留 `Passport.gs1` 现场还在，但是 **`@deprecated`** ——使用 `identifier: { scheme: "gs1", ... }` 代替。

验证在进行中 [`@tracepass/dpp-identifiers`](https://npmcn.com/package/%40tracepass/dpp-identifiers).

## 类型对文件建模，而不是数据库

`Template` 描述发布的模板JSON文件的形状。它故意没有 `_id`,没有 `createdAt`，其 `regulation.effectiveDate` 是一个 **ISO日期字符串**，不是。 `Date` -因为这就是文件中的内容。 `JSON.parse(readFileSync(...))` 没有强制类型转换的类型检查。

可选值包括 `T | null`，不能省略。没有单位的田野 `unit: null`;一个 约束不适用carry `max: null`． 治疗 `null` 作为 _没有约束_ ——然后 注意不要强迫它 `0`.

## 相关

-   [`@tracepass/dpp-validate`](https://npmcn.com/package/%40tracepass/dpp-validate) -对这些类型的遵从性裁决
-   [`@tracepass/dpp-identifiers`](https://npmcn.com/package/%40tracepass/dpp-identifiers) -根据EN 18219验证/解析标识符
-   [`tracepass-dpp-schemas`](https://github.com/malinoto/tracepass-dpp-schemas) -现场规格本身

## 许可证

[apache - 2.0](https://npmcn.com/package/LICENSE)

## 常见问题

### @tracepass/dpp-types 是什么？

欧盟数字产品护照（ESPR）的TypeScript类型——模板、护照、当事人和可追溯性事件。只有类型，零运行时，零依赖。

### 如何安装 @tracepass/dpp-types？

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

### @tracepass/dpp-types 支持 TypeScript 吗？

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

### @tracepass/dpp-types 支持 ESM 还是 CommonJS？

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

### @tracepass/dpp-types 需要什么版本的 Node\.js？

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

### @tracepass/dpp-types 可以商用吗？

@tracepass/dpp-types 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @tracepass/dpp-types 还在维护吗？

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

