@tracepass/dpp-validate

中文文档
0.19.0发布于 2026/11/03Apache-2.0TypeScriptES Module构建来源已验证

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

中文使用文档
文档目录5 节
  1. 三层
  2. 它不会通过它无法检查的东西
  3. 不是法律建议
  4. 电池标识要求(BAT-1)
  5. 许可证
TracePass

@tracepass / dpp-validate

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

License Dependencies

的一部分 tracepass-open ·由 TracePass


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

npm install @tracepass/dpp-validate @tracepass/dpp-schemas
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)),所以缺少护照标识符是一个警告 在那一天之前和关键的一天。引擎从可选的第四个字符读取日期 参数,默认为现在;在给定的一天内通过一个来评估:

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

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

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

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

{
  "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.

电池标识要求(BAT-1)

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

{
  "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)."
}

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

许可证

apache - 2.0

版本与发布记录

@tracepass/dpp-validate 共发布 28 个版本,首次发布于 2026/07/20;过去 12 个月发布了 28 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.19.0latest2026/11/03今天
0.18.42026/10/303 天前
0.18.32026/10/303 天前
0.18.22026/10/304 天前
0.18.12026/10/304 天前
0.18.02026/10/295 天前

关于 @tracepass/dpp-validate 的常见问题

@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 和提交记录判断。