@tracepass/dpp-schemas 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,12 +6,12 @@
6
6
 
7
7
  # EU Digital Product Passport — Field Specifications
8
8
 
9
- **Machine-readable field specs for 12 product categories, with every field traced to the article of EU law that mandates it.**
9
+ **Machine-readable field specs for 13 product categories, with every field traced to the article of EU law that mandates it.**
10
10
 
11
11
  [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](./LICENSE)
12
12
  [![npm](https://img.shields.io/npm/v/@tracepass/dpp-schemas.svg)](https://www.npmjs.com/package/@tracepass/dpp-schemas)
13
- [![Fields](https://img.shields.io/badge/fields-937-informational)](#whats-in-here)
14
- [![Categories](https://img.shields.io/badge/categories-12-informational)](#whats-in-here)
13
+ [![Fields](https://img.shields.io/badge/fields-1004-informational)](#whats-in-here)
14
+ [![Categories](https://img.shields.io/badge/categories-13-informational)](#whats-in-here)
15
15
  [![Dependencies](https://img.shields.io/badge/dependencies-none-success)](#no-build-step)
16
16
  [![Schema](https://img.shields.io/badge/JSON%20Schema-2020--12-orange)](./schema.json)
17
17
 
@@ -39,28 +39,31 @@ this repository contains.
39
39
 
40
40
  ## What's in here
41
41
 
42
- Twelve JSON files, one per product category. **937 fields in total. 302 are required by an instrument in force;
43
- 198 are anticipated under a rule that has not yet been adopted.**
42
+ Thirteen JSON files, one per product category. **1,004 fields in total. 190 are required by
43
+ an instrument in force; 214 are anticipated under a rule that has not yet been adopted.**
44
44
 
45
45
  | Category | Fields | Required | Instrument |
46
46
  |---|---:|---:|---|
47
47
  | `battery` | 119 | 54 | Regulation (EU) 2023/1542 |
48
- | `chemicals` | 96 | 28 | ESPR (EU) 2024/1781 |
49
- | `construction` | 49 | 43 | CPR (EU) 2024/3110 |
50
- | `electronics` | 167 | 20 | ESPR (EU) 2024/1781 |
51
- | `fmcg` | 42 | 11 | ESPR (EU) 2024/1781 |
52
- | `furniture` | 79 | 27 | ESPR (EU) 2024/1781 |
53
- | `jewelry` | 52 | 12 | ESPR (EU) 2024/1781 |
48
+ | `construction` | 49 | 4 | CPR (EU) 2024/3110 |
49
+ | `detergents` | 87 | 28 | Regulation (EU) 2026/405 |
50
+ | `electronics` | 167 | 4 | ESPR (EU) 2024/1781 |
51
+ | `fmcg` | 42 | 9 | ESPR (EU) 2024/1781 |
52
+ | `furniture` | 79 | 4 | ESPR (EU) 2024/1781 |
53
+ | `jewelry` | 53 | 3 | ESPR (EU) 2024/1781 |
54
54
  | `packaging` | 66 | 9 | PPWR (EU) 2025/40 |
55
+ | `paints-coatings` | 75 | 25 | Directive 2004/42/EC |
55
56
  | `steel` | 84 | 29 | ESPR (EU) 2024/1781 |
56
- | `textile` | 60 | 12 | ESPR (EU) 2024/1781 |
57
- | `toys` | 28 | 14 | ESPR (EU) 2024/1781 |
58
- | `tyres` | 95 | 43 | ESPR (EU) 2024/1781 |
59
-
60
- Battery is the only category whose obligation is already in force Regulation (EU)
61
- 2023/1542 Art. 77 applies from 18 February 2027, rather than awaiting a delegated
62
- act. That is why its `required` count is the highest of the twelve. It is not the
63
- case that every battery field is required: the template also carries fields that are
57
+ | `textile` | 60 | 5 | ESPR (EU) 2024/1781 |
58
+ | `toys` | 28 | 14 | Regulation (EU) 2025/2509 |
59
+ | `tyres` | 95 | 2 | ESPR (EU) 2024/1781 |
60
+
61
+ Battery carries the most required fields because Regulation (EU) 2023/1542 Art. 77 sets a
62
+ real statutory date 18 February 2027 rather than awaiting a delegated act. The other
63
+ categories with dated obligations are `detergents`, `toys` and `paints-coatings`; the
64
+ remaining nine await an ESPR delegated act and so carry mostly `anticipated` fields.
65
+
66
+ It is not the case that every battery field is required: the template also carries fields that are
64
67
  `anticipated` (pending the carbon-footprint and due-diligence implementing acts) and
65
68
  fields that apply only to some battery sub-categories via `validation.requiredBy`.
66
69
 
@@ -115,11 +118,13 @@ in from 2027, so `packaging` carries `2027`, not `2026-08-12`.
115
118
  Read both dates with their precision marker. `datePrecision` / `mandatoryDatePrecision`
116
119
  are `"day"` or `"year"`; absent means `"day"`:
117
120
 
118
- - **`"day"`** — a real statutory date. Battery is `2027-02-18`, set by ESPR Article 77.
121
+ - **`"day"`** — a real statutory date. Battery is `2027-02-18`, set by Regulation (EU)
122
+ 2023/1542 Article 77.
119
123
  - **`"year"`** — only the year is known, because the governing delegated or implementing
120
124
  act is not yet adopted. The day and month are filler. **Do not render these as a
121
- deadline.** Eleven of the twelve categories are currently `"year"`; only battery is
122
- `"day"`.
125
+ deadline.** Nine of the thirteen categories are currently `"year"`. The four with a real
126
+ statutory date are `battery` (2027-02-18), `detergents` (2029-09-23), `toys`
127
+ (2030-08-01), and `paints-coatings` (2010-01-01, an instrument long in force).
123
128
 
124
129
  ```python
125
130
  r = template["regulation"]
@@ -186,7 +191,7 @@ npm install @tracepass/dpp-schemas
186
191
  ## Validating the specs themselves
187
192
 
188
193
  [`schema.json`](./schema.json) is a JSON Schema (Draft 2020-12) describing the template
189
- format. All 12 templates validate against it — which is how the format stays honest.
194
+ format. All 13 templates validate against it — which is how the format stays honest.
190
195
 
191
196
  ```bash
192
197
  pip install jsonschema
package/instruments.json CHANGED
@@ -126,7 +126,7 @@
126
126
  "createsDpp": true,
127
127
  "note": "In force 1 Jan 2026 for the notified-body articles (28-44, 49-55); the Regulation applies from 1 Aug 2030. The toy DPP REPLACES the EU declaration of conformity under Directive 2009/48/EC. This — not ESPR — is the source of the toy passport. The Directive remains the operative product-requirement instrument until then and creates no passport.",
128
128
  "dppMandatoryFrom": "2030-08-01",
129
- "dppProvision": "Art. 20 (DPP) — applies with the Regulation from 1 Aug 2030"
129
+ "dppProvision": "Art. 19 (DPP) — applies with the Regulation from 1 Aug 2030"
130
130
  },
131
131
  "32011R1007": {
132
132
  "kind": "legislation",
@@ -225,13 +225,6 @@
225
225
  "eli": "http://data.europa.eu/eli/reg/2018/848/oj",
226
226
  "createsDpp": false
227
227
  },
228
- "32009R0661": {
229
- "kind": "legislation",
230
- "shortName": "General Safety Regulation (vehicles)",
231
- "title": "Regulation (EC) 661/2009 concerning type-approval requirements for the general safety of motor vehicles",
232
- "eli": "http://data.europa.eu/eli/reg/2009/661/oj",
233
- "createsDpp": false
234
- },
235
228
  "32004R0648": {
236
229
  "kind": "legislation",
237
230
  "shortName": "Detergents Regulation (2004)",
@@ -285,6 +278,34 @@
285
278
  "eli": "http://data.europa.eu/eli/reg/1987/2658/oj",
286
279
  "createsDpp": false,
287
280
  "note": "Annex I is the CN/TARIC commodity-code list. Both ESPR Art. 8(a) and Detergents Annex VI Part A(f) require the commodity code by reference to it. Not a passport instrument."
281
+ },
282
+ "32019R2144": {
283
+ "kind": "legislation",
284
+ "shortName": "General Safety Regulation (vehicles)",
285
+ "title": "Regulation (EU) 2019/2144 on type-approval requirements for the general safety of motor vehicles",
286
+ "eli": "http://data.europa.eu/eli/reg/2019/2144/oj",
287
+ "createsDpp": false
288
+ },
289
+ "32017R1369": {
290
+ "kind": "legislation",
291
+ "shortName": "Energy Labelling Regulation",
292
+ "title": "Regulation (EU) 2017/1369 setting a framework for energy labelling",
293
+ "eli": "http://data.europa.eu/eli/reg/2017/1369/oj",
294
+ "createsDpp": false
295
+ },
296
+ "32024R1252": {
297
+ "kind": "legislation",
298
+ "shortName": "Critical Raw Materials Act",
299
+ "title": "Regulation (EU) 2024/1252 establishing a framework for ensuring a secure and sustainable supply of critical raw materials",
300
+ "eli": "http://data.europa.eu/eli/reg/2024/1252/oj",
301
+ "createsDpp": false
302
+ },
303
+ "32014L0045": {
304
+ "kind": "legislation",
305
+ "shortName": "Roadworthiness Testing Directive",
306
+ "title": "Directive 2014/45/EU on periodic roadworthiness tests for motor vehicles and their trailers",
307
+ "eli": "http://data.europa.eu/eli/dir/2014/45/oj",
308
+ "createsDpp": false
288
309
  }
289
310
  },
290
311
  "nonLegislative": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracepass/dpp-schemas",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories, 1004 fields, each traced to the article of EU law that mandates it. Pure JSON, no dependencies.",
5
5
  "keywords": [
6
6
  "digital-product-passport",