欧盟可持续生态设计下数字产品护照的共享类型
产品的规定, (欧盟)2024/1781:类别 Template (其字段规格)
填好的 Passport经济运营者 Party,以及可追溯性事件。
npm install --save-dev @tracepass/dpp-types
import type { Template, Passport, TemplateField } from "@tracepass/dpp-types";
标识符不透明
Id 是一个 string。这些包裹里都无法解析,所以护照来自
任何数据库或JSON文件都可以正常工作。存储引擎不同意什么
id是;护照逻辑不需要关心。
产品和操作员标识符(EN 18219)
Passport.identifier 带有 ProductIdentifier -对五国的歧视工会
EN 18219为数字产品护照定义的方案:
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.
类型对文件建模,而不是数据库
Template 描述发布的模板JSON文件的形状。它故意没有
_id,没有 createdAt,其 regulation.effectiveDate 是一个 ISO日期字符串,不是。
Date -因为这就是文件中的内容。 JSON.parse(readFileSync(...))
没有强制类型转换的类型检查。
可选值包括 T | null,不能省略。没有单位的田野 unit: null;一个
约束不适用carry max: null. 治疗 null 作为 没有约束 ——然后
注意不要强迫它 0.
相关
@tracepass/dpp-validate-对这些类型的遵从性裁决@tracepass/dpp-identifiers-根据EN 18219验证/解析标识符tracepass-dpp-schemas-现场规格本身