@tracepass/dpp-schemas 1.8.0 → 1.9.0
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 +10 -6
- package/index.json +8 -8
- package/package.json +2 -2
- package/schema.json +31 -0
- package/templates/detergents.json +1398 -2758
- package/templates/paints-coatings.json +128 -537
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
[](./LICENSE)
|
|
12
12
|
[](https://www.npmjs.com/package/@tracepass/dpp-schemas)
|
|
13
|
-
[](#whats-in-here)
|
|
14
14
|
[](#whats-in-here)
|
|
15
15
|
[](#no-build-step)
|
|
16
16
|
[](./schema.json)
|
|
@@ -39,20 +39,20 @@ this repository contains.
|
|
|
39
39
|
|
|
40
40
|
## What's in here
|
|
41
41
|
|
|
42
|
-
Thirteen JSON files, one per product category. **
|
|
43
|
-
an instrument in force;
|
|
42
|
+
Thirteen JSON files, one per product category. **972 fields in total. 131 are required by
|
|
43
|
+
an instrument in force; 221 are anticipated under a rule that has not yet been adopted.**
|
|
44
44
|
|
|
45
45
|
| Category | Fields | Required | Instrument |
|
|
46
46
|
|---|---:|---:|---|
|
|
47
47
|
| `battery` | 120 | 50 | Regulation (EU) 2023/1542 |
|
|
48
48
|
| `construction` | 49 | 4 | CPR (EU) 2024/3110 |
|
|
49
|
-
| `detergents` |
|
|
49
|
+
| `detergents` | 75 | 12 | Regulation (EU) 2026/405 |
|
|
50
50
|
| `electronics` | 160 | 4 | ESPR (EU) 2024/1781 |
|
|
51
51
|
| `fmcg` | 42 | 9 | ESPR (EU) 2024/1781 |
|
|
52
52
|
| `furniture` | 79 | 4 | ESPR (EU) 2024/1781 |
|
|
53
53
|
| `jewelry` | 53 | 3 | ESPR (EU) 2024/1781 |
|
|
54
54
|
| `packaging` | 64 | 8 | PPWR (EU) 2025/40 |
|
|
55
|
-
| `paints-coatings` |
|
|
55
|
+
| `paints-coatings` | 65 | 0 | Directive 2004/42/EC |
|
|
56
56
|
| `steel` | 84 | 16 | ESPR (EU) 2024/1781 |
|
|
57
57
|
| `textile` | 60 | 5 | ESPR (EU) 2024/1781 |
|
|
58
58
|
| `toys` | 28 | 14 | Regulation (EU) 2025/2509 |
|
|
@@ -191,7 +191,11 @@ else:
|
|
|
191
191
|
|
|
192
192
|
**`regulationRef`** is the reason this data is worth having. Every field says which
|
|
193
193
|
article and annex mandates it, so a compliance report can cite its source rather than
|
|
194
|
-
assert it.
|
|
194
|
+
assert it. A required field's `regulationRef.verification` quotes the operative sentence
|
|
195
|
+
from the act, says where it sits, and states any condition the law attaches (for
|
|
196
|
+
example, the Detergents Regulation's substance list does not bind industrial products).
|
|
197
|
+
Required fields not yet verified against the primary text are listed in
|
|
198
|
+
`audit/unverified-required.json`, which only shrinks.
|
|
195
199
|
|
|
196
200
|
**`label`** is provided in the 24 official EU languages, because ESPR Article 8 requires
|
|
197
201
|
the passport to be available in the language of the member state where the product is
|
package/index.json
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
},
|
|
8
8
|
"totals": {
|
|
9
9
|
"categories": 13,
|
|
10
|
-
"fields":
|
|
11
|
-
"requiredFields":
|
|
12
|
-
"anticipatedFields":
|
|
10
|
+
"fields": 972,
|
|
11
|
+
"requiredFields": 131,
|
|
12
|
+
"anticipatedFields": 221
|
|
13
13
|
},
|
|
14
14
|
"categories": [
|
|
15
15
|
{
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
"label": "Detergents & Surfactants",
|
|
52
52
|
"file": "templates/detergents.json",
|
|
53
53
|
"version": 1,
|
|
54
|
-
"fieldCount":
|
|
55
|
-
"requiredFieldCount":
|
|
56
|
-
"anticipatedFieldCount":
|
|
54
|
+
"fieldCount": 75,
|
|
55
|
+
"requiredFieldCount": 12,
|
|
56
|
+
"anticipatedFieldCount": 10,
|
|
57
57
|
"regulation": {
|
|
58
58
|
"name": "Detergents Regulation",
|
|
59
59
|
"number": "(EU) 2026/405",
|
|
@@ -157,8 +157,8 @@
|
|
|
157
157
|
"label": "Paints & Coatings",
|
|
158
158
|
"file": "templates/paints-coatings.json",
|
|
159
159
|
"version": 1,
|
|
160
|
-
"fieldCount":
|
|
161
|
-
"requiredFieldCount":
|
|
160
|
+
"fieldCount": 65,
|
|
161
|
+
"requiredFieldCount": 0,
|
|
162
162
|
"anticipatedFieldCount": 12,
|
|
163
163
|
"regulation": {
|
|
164
164
|
"name": "Decopaint Directive",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tracepass/dpp-schemas",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories,
|
|
3
|
+
"version": "1.9.0",
|
|
4
|
+
"description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories, 972 fields, each traced to the article of EU law that mandates it. Pure JSON, no dependencies.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"digital-product-passport",
|
|
7
7
|
"dpp",
|
package/schema.json
CHANGED
|
@@ -534,6 +534,37 @@
|
|
|
534
534
|
},
|
|
535
535
|
"uniqueItems": true,
|
|
536
536
|
"description": "Keys into `standards.json` for the technical standards this field relates to (test method, declaration format, identifier scheme). Relating to a standard never makes a field required — only `kind: legislation` can — and naming one is not a claim of conformity."
|
|
537
|
+
},
|
|
538
|
+
"verification": {
|
|
539
|
+
"type": [
|
|
540
|
+
"object",
|
|
541
|
+
"null"
|
|
542
|
+
],
|
|
543
|
+
"description": "Evidence that the citation was checked against the act's primary text: the operative sentence and where it sits. Required on every `validation.required` field (npm run check:audit enforces it, with a shrinking baseline for fields not yet verified). It records what a reader confirmed, so it is only ever added by reading the act, never generated.",
|
|
544
|
+
"additionalProperties": false,
|
|
545
|
+
"required": [
|
|
546
|
+
"quote",
|
|
547
|
+
"at"
|
|
548
|
+
],
|
|
549
|
+
"properties": {
|
|
550
|
+
"quote": {
|
|
551
|
+
"type": "string",
|
|
552
|
+
"minLength": 20,
|
|
553
|
+
"description": "The operative sentence, verbatim from the Official Journal text (ellipses allowed), that imposes the duty this field discharges."
|
|
554
|
+
},
|
|
555
|
+
"at": {
|
|
556
|
+
"type": "string",
|
|
557
|
+
"minLength": 3,
|
|
558
|
+
"description": "Where the quote sits, e.g. \"32026R0405 Annex VI Part A(h)\"."
|
|
559
|
+
},
|
|
560
|
+
"condition": {
|
|
561
|
+
"type": [
|
|
562
|
+
"string",
|
|
563
|
+
"null"
|
|
564
|
+
],
|
|
565
|
+
"description": "The condition the law attaches, when the duty does not bind every product of the category (e.g. \"consumer detergents only; industrial and institutional products use the SDS\"). Null when it binds all."
|
|
566
|
+
}
|
|
567
|
+
}
|
|
537
568
|
}
|
|
538
569
|
}
|
|
539
570
|
},
|