# @tracepass/dpp-validate 中文文档

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

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

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

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

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

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

## 中文简介

根据类别字段规范评估欧盟数字产品护照-根据法规引用的调查结果进行三层合规裁决。纯函数，没有第三方运行时依赖。

## 安装

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

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

## README

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

# @tracepass / dpp-validate

**根据类别字段规范评估欧盟数字产品护照。纯功能，无第三方运行时依赖，46个测试。**

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

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

* * *

给定护照及其产品类别的模板， `evaluateCompliance` 返回一个 三层判决，每一层都引用了欧盟法律条文。它 不读取数据库，不打开套接字，也不咨询时钟。

```bash
npm install @tracepass/dpp-validate @tracepass/dpp-schemas
```

```ts
import { evaluateCompliance } from "@tracepass/dpp-validate";

const result = evaluateCompliance(passport, batteryTemplate, "battery");

result.verdict;               // "compliant" | "compliant_with_warnings" | "incomplete"
result.critical;              // findings that block
result.warnings;              // findings that don't
result.conditionalCoverage;   // "evaluated" | "static-only"
result.checkedRules;          // ["static:required-fields", ..., "BAT-1", "CC-1"]
```

## 三层

**静态** -必需的领域是存在并批准的，必需的经济操作是 标识后，值匹配它们的数据类型、枚举、模式和边界。

**有条件的** -只有在一定条件下才能履行的义务。电池的碳足迹 字段仅适用于可充电电池；ce标志一致性触发时，a 记录合格状态。这些规则适用于五个类别：电池、建筑、 电子产品、钢铁和玩具——每个类别都有一条横切规则。

有些义务从日期开始。电池护照从2027年2月18日起强制执行 (Regulation (EU) 2023/1542 Art. 77(1))，所以缺少护照标识符是一个警告 在那一天之前和关键的一天。引擎从可选的第四个字符读取日期 参数，默认为现在；在给定的一天内通过一个来评估：

```ts
evaluateCompliance(passport, batteryTemplate, "battery", new Date("2027-02-18"));
```

**报道** -引擎报告它是否计算了条件。另一方面 六大类 `conditionalCoverage` 是 `"static-only"`所以沉默永远不会被误认为是沉默 合规性声明。

## 它不会通过它无法检查的东西

当决定条件的字段不存在时，结果为 `unverifiable_conditional` 警告命名什么不能确定-从来没有一个安静 通过:

```jsonc
{
  "type": "unverifiable_conditional",
  "ruleId": "BAT-1",
  "target": "batteryCategory",
  "article": "Art. 77(1)",
  "why": "Battery category isn't set, so battery-passport scope couldn't be evaluated.",
  "fix": "Set batteryCategory. Portable and SLI batteries are out of scope; LMT, EV and industrial >2 kWh require a battery passport."
}
```

同样的原理支配着电池的适用性门：一个未知的分类器显示 依赖字段和警告。错误分类的电池绝不能无声地丢失 法律规定。

## 不是法律建议

一、 `compliant` 判决意味着 _这个护照符合这里编码的规则_ ——不 _这 产品可以投放市场_。授权法案仍在陆续出台。验证对 [EUR-Lex](https://eur-lex.europa.eu/).

## 电池标识要求（BAT-1）

电池护照必须携带唯一的产品标识符。电池法规第77(3)条 要求ISO/IEC 15459，直到授权法案用EN 18219取代它。GS1数字链路 URI满足这一要求，因为GS1是ISO/IEC 15459发布机构。的BAT-1 修复发现中的文本解释了这一点：

```jsonc
{
  "fix": "Provide identifier — an ISO/IEC 15459 unique identifier, e.g. a GS1 Digital Link URI
          (Battery Regulation Art. 77(3) requires ISO/IEC 15459 until a delegated act replaces
          it with EN 18219)."
}
```

这里编码的规则的纯语言背景：

-   [持有数据不是合规](https://www.tracepass.eu/regulatory/holding-data-is-not-compliance) -民进党的职责实际上是在哪里履行的，以及为什么判决范围比市场安置范围窄。
-   [第77条电池护照-法规（EU） 2023/1542](https://www.tracepass.eu/regulatory/battery-articles/article-77) -文章背后的电池检查和适用性大门。

## 许可证

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

## 常见问题

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

根据类别字段规范评估欧盟数字产品护照-根据法规引用的调查结果进行三层合规裁决。纯函数，没有第三方运行时依赖。

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

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

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

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

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

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

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

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

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

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

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

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

