@tracepass/dpp-schemas 1.12.0 → 1.13.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 CHANGED
@@ -10,7 +10,7 @@
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-987-informational)](#whats-in-here)
13
+ [![Fields](https://img.shields.io/badge/fields-989-informational)](#whats-in-here)
14
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)
@@ -39,14 +39,14 @@ this repository contains.
39
39
 
40
40
  ## What's in here
41
41
 
42
- Thirteen JSON files, one per product category. **987 fields in total. 65 are required by
42
+ Thirteen JSON files, one per product category. **989 fields in total. 65 are required by
43
43
  a law that creates a passport; 176 are anticipated under a rule that has not yet been adopted.**
44
44
  Every other legal duty (on the product, the label, a safety data sheet, a document) is
45
45
  recorded per field in `regulationRef.obligations` instead of being marked required.
46
46
 
47
47
  | Category | Fields | Required | Instrument |
48
48
  |---|---:|---:|---|
49
- | `battery` | 120 | 38 | Regulation (EU) 2023/1542 |
49
+ | `battery` | 122 | 38 | Regulation (EU) 2023/1542 |
50
50
  | `construction` | 49 | 0 | CPR (EU) 2024/3110 |
51
51
  | `detergents` | 76 | 12 | Regulation (EU) 2026/405 |
52
52
  | `electronics` | 160 | 0 | ESPR (EU) 2024/1781 |
@@ -315,6 +315,26 @@ runs it on every push:
315
315
  missing from the act it cites, duplicate fields, and one key with two units. See
316
316
  [`audit/README.md`](./audit/README.md).
317
317
 
318
+ ## Recent changes
319
+
320
+ **1.13.0** (unreleased) — battery template corrections and primary-text verification.
321
+
322
+ *Legal corrections (Battery Regulation consolidated text 02023R1542-20260813):*
323
+
324
+ - **Pre-consumer recycled-content fields relabelled.** `preConsumerRecycled{Nickel,Cobalt,Lithium}Share` labels now use the Art. 3(1)(51) official term "battery manufacturing waste" across all 24 EU languages. The field names are unchanged.
325
+ - **Recycled-content split fields made optional.** Art. 8(1) and Annex XIII 1(e) require ONE combined recycled-content figure per metal. The pre-consumer / post-consumer breakdown is voluntary; both split fields lose their `requiredBy` entries. The share becomes binding only if a future Art. 8(1) delegated act mandates the split (not yet adopted).
326
+ - **`cadmiumLeadSymbolsUrl` corrected.** Provision reference fixed from "Annex XIII (1s)" to "Annex XIII (1q)" per corrigendum 32023R1542R(13). `requiredBy` entries changed from `"required"` to `"conditional"` for all three battery categories — Art. 13(5) applies only to batteries with >0.002 % cadmium or >0.004 % lead.
327
+ - **`componentPartNumbersUrl` and `sparePartsSourcesUrl` made optional.** Annex XIII 2(b) mandates the part-number and spare-parts data (carried by the array fields), not a URI format. The URL fields are a GEFEG data-model choice, not an independent legal duty.
328
+ - **A4 description corrections.** `stateOfCertifiedEnergy` (EV-only, Art. 14 + Annex VII), `remainingCapacity`, `evolutionOfSelfDischargeRate` (LMT + stationary storage, not EV), and `initialEnergyRoundTripEfficiency` all carry corrected `regulationRef.article` and `regulationRef.description`.
329
+ - **Per-category required-field counts after corrections:** EV 53, LMT 53, industrial >2 kWh 38 (flat required-field count stays at 38).
330
+
331
+ *Primary-text verification:*
332
+
333
+ - **`verifiedAgainstPrimaryText` set on 55 battery fields** read against the consolidated Battery Regulation 02023R1542-20260813. The eight legally-corrected fields listed above are deliberately NOT marked (they required a correction, not a confirmation).
334
+ - **Audit script reports verified-share per category** — informational, not a gate.
335
+
336
+ Two new battery state-of-health fields added: `remainingPowerCapabilityAt80Soc` (EV-only, Annex XIII 4(b)) and `remainingPowerCapabilityAt20Soc` (EV-only, Annex XIII 4(b)) — see 1.12.x notes.
337
+
318
338
  ## Related
319
339
 
320
340
  - **[tracepass-open](https://github.com/malinoto/tracepass-open)** — the compliance
package/index.json CHANGED
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "totals": {
9
9
  "categories": 13,
10
- "fields": 987,
10
+ "fields": 989,
11
11
  "requiredFields": 65,
12
12
  "anticipatedFields": 176
13
13
  },
@@ -17,7 +17,7 @@
17
17
  "label": "Battery",
18
18
  "file": "templates/battery.json",
19
19
  "version": 5,
20
- "fieldCount": 120,
20
+ "fieldCount": 122,
21
21
  "requiredFieldCount": 38,
22
22
  "anticipatedFieldCount": 15,
23
23
  "regulation": {
package/instruments.json CHANGED
@@ -557,7 +557,9 @@
557
557
  "shortName": "Tyre tread depth Directive",
558
558
  "title": "Directive 89/459/EEC on the tread depth of tyres of certain categories of motor vehicles",
559
559
  "eli": "http://data.europa.eu/eli/dir/1989/459/oj",
560
- "createsDpp": false
560
+ "createsDpp": false,
561
+ "annexes": [],
562
+ "annexesVerifiedFrom": "31989L0459"
561
563
  },
562
564
  "32023R1670": {
563
565
  "kind": "legislation",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tracepass/dpp-schemas",
3
- "version": "1.12.0",
4
- "description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories, 987 fields, each traced to the article of EU law that mandates it. Pure JSON, no dependencies.",
3
+ "version": "1.13.0",
4
+ "description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 13 product categories, 989 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",