@tracepass/dpp-types

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

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

中文使用文档
文档目录5 节
  1. 标识符不透明
  2. 产品和操作员标识符(EN 18219)
  3. 类型对文件建模,而不是数据库
  4. 相关
  5. 许可证
TracePass

@tracepass / dpp-types

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

License Dependencies

的一部分 tracepass-open ·由 TracePass


欧盟可持续生态设计下数字产品护照的共享类型 产品的规定, (欧盟)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.

许可证

apache - 2.0

版本与发布记录

@tracepass/dpp-types 共发布 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-types 的常见问题

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