给定护照及其产品类别的模板, 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)."
}
这里编码的规则的纯语言背景:
- 持有数据不是合规 -民进党的职责实际上是在哪里履行的,以及为什么判决范围比市场安置范围窄。
- 第77条电池护照-法规(EU) 2023/1542 -文章背后的电池检查和适用性大门。