@tracepass/dpp-schemas 0.1.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.
@@ -0,0 +1,322 @@
1
+ {
2
+ "_note": "Canonical registry of the legal instruments and standards a template field may cite. `regulationRef.instrument` must be one of these keys. Every CELEX below was verified to resolve against the EU Publications Office RDF store (cdm:resource_legal_id_celex). Kinds: `legislation` binds; `standard` supports a presumption of conformity but binds nothing; `scheme` is voluntary; `national` is one member state's law; `specification` is not a reference at all.",
3
+ "instruments": {
4
+ "32023R1542": {
5
+ "kind": "legislation",
6
+ "shortName": "Battery Regulation",
7
+ "title": "Regulation (EU) 2023/1542 concerning batteries and waste batteries",
8
+ "eli": "http://data.europa.eu/eli/reg/2023/1542/oj",
9
+ "createsDpp": true,
10
+ "dppProvision": "Art. 77(1)",
11
+ "dppMandatoryFrom": "2027-02-18"
12
+ },
13
+ "32024R1781": {
14
+ "kind": "legislation",
15
+ "shortName": "ESPR",
16
+ "title": "Regulation (EU) 2024/1781 establishing a framework for the setting of ecodesign requirements",
17
+ "eli": "http://data.europa.eu/eli/reg/2024/1781/oj",
18
+ "createsDpp": "framework-only",
19
+ "note": "Imposes no data field directly. Every DPP obligation flows through a delegated act adopted under Art. 4, and none has been adopted for any product group. Art. 7(2) has sub-points (a), (b), (c) only — there is no 7(2)(d) or 7(2)(e). Annex I lists the product parameters (a)-(t), including (p) microplastic and nanoplastic release."
20
+ },
21
+ "32024R3110": {
22
+ "kind": "legislation",
23
+ "shortName": "CPR",
24
+ "title": "Regulation (EU) 2024/3110 laying down harmonised rules for the marketing of construction products",
25
+ "eli": "http://data.europa.eu/eli/reg/2024/3110/oj",
26
+ "createsDpp": "deferred",
27
+ "note": "Chapter X (Arts. 75-79) establishes a construction DPP, but the manufacturer duty at Art. 15(7) clocks to 18 months after the Art. 75(1) delegated act, which is not adopted. No operative passport obligation today. CE marking is conditional on coverage by a harmonised technical specification or an ETA."
28
+ },
29
+ "32025R0040": {
30
+ "kind": "legislation",
31
+ "shortName": "PPWR",
32
+ "title": "Regulation (EU) 2025/40 on packaging and packaging waste",
33
+ "eli": "http://data.europa.eu/eli/reg/2025/40/oj",
34
+ "createsDpp": false,
35
+ "note": "Imposes marking, labelling and a QR data carrier (Art. 12). There is no packaging passport. 'Passport' appears only as a cross-reference to ESPR's."
36
+ },
37
+ "32023R0988": {
38
+ "kind": "legislation",
39
+ "shortName": "GPSR",
40
+ "title": "Regulation (EU) 2023/988 on general product safety",
41
+ "eli": "http://data.europa.eu/eli/reg/2023/988/oj",
42
+ "createsDpp": false,
43
+ "note": "Art. 9(5) type/batch/serial or other identifying element; Art. 9(6) manufacturer name, trade mark, postal and electronic address; Art. 11 the same for an importer, conditional on one existing; Art. 16 an EU-established responsible economic operator must exist. Introduces no CE marking."
44
+ },
45
+ "32019R1020": {
46
+ "kind": "legislation",
47
+ "shortName": "Market surveillance",
48
+ "title": "Regulation (EU) 2019/1020 on market surveillance and compliance of products",
49
+ "eli": "http://data.europa.eu/eli/reg/2019/1020/oj",
50
+ "createsDpp": false,
51
+ "note": "Art. 4 applies only to the closed list of product categories in Art. 4(5) — largely CE-marked ones. It does NOT bite on textiles. For a non-listed product the EU-responsible-person duty comes from GPSR Art. 16 instead. Art. 4(1)-(2) is the basis for the cross-cutting CC-1 rule."
52
+ },
53
+ "32006R1907": {
54
+ "kind": "legislation",
55
+ "shortName": "REACH",
56
+ "title": "Regulation (EC) 1907/2006 concerning the Registration, Evaluation, Authorisation and Restriction of Chemicals",
57
+ "eli": "http://data.europa.eu/eli/reg/2006/1907/oj",
58
+ "createsDpp": false,
59
+ "note": "Art. 33(1) discloses to B2B recipients only, and requires the substance name plus safe-use information — not CAS number and concentration. Art. 33(2) to consumers is on request, free, within 45 days. Annex XVII carries the restrictions."
60
+ },
61
+ "32008R1272": {
62
+ "kind": "legislation",
63
+ "shortName": "CLP",
64
+ "title": "Regulation (EC) 1272/2008 on classification, labelling and packaging of substances and mixtures",
65
+ "eli": "http://data.europa.eu/eli/reg/2008/1272/oj",
66
+ "createsDpp": false
67
+ },
68
+ "32011L0065": {
69
+ "kind": "legislation",
70
+ "shortName": "RoHS",
71
+ "title": "Directive 2011/65/EU on the restriction of the use of certain hazardous substances in electrical and electronic equipment",
72
+ "eli": "http://data.europa.eu/eli/dir/2011/65/oj",
73
+ "createsDpp": false
74
+ },
75
+ "32012L0019": {
76
+ "kind": "legislation",
77
+ "shortName": "WEEE",
78
+ "title": "Directive 2012/19/EU on waste electrical and electronic equipment",
79
+ "eli": "http://data.europa.eu/eli/dir/2012/19/oj",
80
+ "createsDpp": false,
81
+ "note": "Art. 14 the crossed-out wheelie-bin marking; Art. 16 producer registration; Annex III the equipment categories."
82
+ },
83
+ "32020R0740": {
84
+ "kind": "legislation",
85
+ "shortName": "Tyre labelling",
86
+ "title": "Regulation (EU) 2020/740 on the labelling of tyres with respect to fuel efficiency and other parameters",
87
+ "eli": "http://data.europa.eu/eli/reg/2020/740/oj",
88
+ "createsDpp": false
89
+ },
90
+ "32023R1115": {
91
+ "kind": "legislation",
92
+ "shortName": "EUDR",
93
+ "title": "Regulation (EU) 2023/1115 on deforestation-free products",
94
+ "eli": "http://data.europa.eu/eli/reg/2023/1115/oj",
95
+ "createsDpp": false
96
+ },
97
+ "32017R0821": {
98
+ "kind": "legislation",
99
+ "shortName": "Conflict Minerals",
100
+ "title": "Regulation (EU) 2017/821 laying down supply chain due diligence obligations for importers of tin, tantalum, tungsten and gold",
101
+ "eli": "http://data.europa.eu/eli/reg/2017/821/oj",
102
+ "createsDpp": false
103
+ },
104
+ "32026R0405": {
105
+ "kind": "legislation",
106
+ "shortName": "Detergents Regulation",
107
+ "title": "Regulation (EU) 2026/405 on detergents and surfactants",
108
+ "eli": "http://data.europa.eu/eli/reg/2026/405/oj",
109
+ "createsDpp": true,
110
+ "dppMandatoryFrom": "2029-09-23",
111
+ "note": "Mandates a real DPP with a QR data carrier and a central-registry entry, replacing the EU declaration of conformity. The specific article number is not yet verified against primary text."
112
+ },
113
+ "32009L0048": {
114
+ "kind": "legislation",
115
+ "shortName": "Toy Safety Directive",
116
+ "title": "Directive 2009/48/EC on the safety of toys",
117
+ "eli": "http://data.europa.eu/eli/dir/2009/48/oj",
118
+ "createsDpp": false,
119
+ "note": "Art. 17 mandates CE marking unconditionally. Still the operative instrument."
120
+ },
121
+ "32025R2509": {
122
+ "kind": "legislation",
123
+ "shortName": "Toy Safety Regulation",
124
+ "title": "Regulation (EU) 2025/2509 on the safety of toys",
125
+ "eli": "http://data.europa.eu/eli/reg/2025/2509/oj",
126
+ "createsDpp": true,
127
+ "note": "In force 1 Jan 2026, applies ~2030. This — not ESPR — is the source of the toy passport."
128
+ },
129
+ "32011R1007": {
130
+ "kind": "legislation",
131
+ "shortName": "Textile labelling",
132
+ "title": "Regulation (EU) 1007/2011 on fibre names and related labelling of textile products",
133
+ "eli": "http://data.europa.eu/eli/reg/2011/1007/oj",
134
+ "createsDpp": false,
135
+ "note": "Arts. 9(1), 14(1), 16 require fibre names and percentages on a durable, legible, consumer-visible physical label attached to the product. Recording the data in a passport does NOT discharge the obligation. Care labelling is out of scope — it appears only in the Art. 24 review clause."
136
+ },
137
+ "32011R1169": {
138
+ "kind": "legislation",
139
+ "shortName": "Food information",
140
+ "title": "Regulation (EU) 1169/2011 on the provision of food information to consumers",
141
+ "eli": "http://data.europa.eu/eli/reg/2011/1169/oj",
142
+ "createsDpp": false
143
+ },
144
+ "32009R1223": {
145
+ "kind": "legislation",
146
+ "shortName": "Cosmetics Regulation",
147
+ "title": "Regulation (EC) 1223/2009 on cosmetic products",
148
+ "eli": "http://data.europa.eu/eli/reg/2009/1223/oj",
149
+ "createsDpp": false
150
+ },
151
+ "32008L0098": {
152
+ "kind": "legislation",
153
+ "shortName": "Waste Framework Directive",
154
+ "title": "Directive 2008/98/EC on waste",
155
+ "eli": "http://data.europa.eu/eli/dir/2008/98/oj",
156
+ "createsDpp": false,
157
+ "note": "Art. 9(1)(i) is the basis for SCIP notification to ECHA for SVHCs above 0.1% w/w."
158
+ },
159
+ "32023R2055": {
160
+ "kind": "legislation",
161
+ "shortName": "Microplastics restriction",
162
+ "title": "Regulation (EU) 2023/2055 amending REACH Annex XVII as regards synthetic polymer microparticles",
163
+ "eli": "http://data.europa.eu/eli/reg/2023/2055/oj",
164
+ "createsDpp": false,
165
+ "note": "Restricts INTENTIONALLY ADDED microplastics. Textile wash-shedding is unintentional and out of scope."
166
+ },
167
+ "32010R0066": {
168
+ "kind": "scheme",
169
+ "shortName": "EU Ecolabel",
170
+ "title": "Regulation (EC) 66/2010 on the EU Ecolabel",
171
+ "eli": "http://data.europa.eu/eli/reg/2010/66/oj",
172
+ "createsDpp": false,
173
+ "note": "Voluntary. Awarding the label is regulated; carrying it is not required of any product."
174
+ },
175
+ "32023R0956": {
176
+ "kind": "legislation",
177
+ "shortName": "CBAM",
178
+ "title": "Regulation (EU) 2023/956 establishing a carbon border adjustment mechanism",
179
+ "eli": "http://data.europa.eu/eli/reg/2023/956/oj",
180
+ "createsDpp": false,
181
+ "note": "The EU publishes no RDF vocabulary for CBAM terms. Cite the instrument; the concepts have no dereferenceable IRI."
182
+ },
183
+ "32003L0087": {
184
+ "kind": "legislation",
185
+ "shortName": "EU ETS",
186
+ "title": "Directive 2003/87/EC establishing a scheme for greenhouse gas emission allowance trading",
187
+ "eli": "http://data.europa.eu/eli/dir/2003/87/oj",
188
+ "createsDpp": false
189
+ },
190
+ "32004L0042": {
191
+ "kind": "legislation",
192
+ "shortName": "Decopaint Directive",
193
+ "title": "Directive 2004/42/EC on the limitation of emissions of volatile organic compounds due to the use of organic solvents in certain paints and varnishes",
194
+ "eli": "http://data.europa.eu/eli/dir/2004/42/oj",
195
+ "createsDpp": false
196
+ },
197
+ "32024R1257": {
198
+ "kind": "legislation",
199
+ "shortName": "Euro 7",
200
+ "title": "Regulation (EU) 2024/1257 on type-approval of motor vehicles and engines (Euro 7)",
201
+ "eli": "http://data.europa.eu/eli/reg/2024/1257/oj",
202
+ "createsDpp": false,
203
+ "note": "Tyre abrasion limits are pending a delegated act; not yet in force."
204
+ },
205
+ "32012R0528": {
206
+ "kind": "legislation",
207
+ "shortName": "Biocidal Products Regulation",
208
+ "title": "Regulation (EU) 528/2012 concerning the making available on the market and use of biocidal products",
209
+ "eli": "http://data.europa.eu/eli/reg/2012/528/oj",
210
+ "createsDpp": false
211
+ },
212
+ "32019R1021": {
213
+ "kind": "legislation",
214
+ "shortName": "POPs Regulation",
215
+ "title": "Regulation (EU) 2019/1021 on persistent organic pollutants",
216
+ "eli": "http://data.europa.eu/eli/reg/2019/1021/oj",
217
+ "createsDpp": false
218
+ },
219
+ "32018R0848": {
220
+ "kind": "legislation",
221
+ "shortName": "Organic Regulation",
222
+ "title": "Regulation (EU) 2018/848 on organic production and labelling of organic products",
223
+ "eli": "http://data.europa.eu/eli/reg/2018/848/oj",
224
+ "createsDpp": false
225
+ },
226
+ "32009R0661": {
227
+ "kind": "legislation",
228
+ "shortName": "General Safety Regulation (vehicles)",
229
+ "title": "Regulation (EC) 661/2009 concerning type-approval requirements for the general safety of motor vehicles",
230
+ "eli": "http://data.europa.eu/eli/reg/2009/661/oj",
231
+ "createsDpp": false
232
+ },
233
+ "32004R0648": {
234
+ "kind": "legislation",
235
+ "shortName": "Detergents Regulation (2004)",
236
+ "title": "Regulation (EC) 648/2004 on detergents",
237
+ "eli": "http://data.europa.eu/eli/reg/2004/648/oj",
238
+ "createsDpp": false,
239
+ "note": "Being repealed by Reg. (EU) 2026/405 from 23 Sep 2029."
240
+ },
241
+ "32023R1464": {
242
+ "kind": "legislation",
243
+ "shortName": "Formaldehyde restriction",
244
+ "title": "Regulation (EU) 2023/1464 amending REACH Annex XVII as regards formaldehyde and formaldehyde releasers",
245
+ "eli": "http://data.europa.eu/eli/reg/2023/1464/oj",
246
+ "createsDpp": false
247
+ },
248
+ "31989L0459": {
249
+ "kind": "legislation",
250
+ "shortName": "Tyre tread depth Directive",
251
+ "title": "Directive 89/459/EEC on the tread depth of tyres of certain categories of motor vehicles",
252
+ "eli": "http://data.europa.eu/eli/dir/1989/459/oj",
253
+ "createsDpp": false
254
+ },
255
+ "32023R1670": {
256
+ "kind": "legislation",
257
+ "shortName": "Smartphone Ecodesign",
258
+ "title": "Commission Regulation (EU) 2023/1670 laying down ecodesign requirements for smartphones and slate tablets",
259
+ "eli": "http://data.europa.eu/eli/reg/2023/1670/oj",
260
+ "createsDpp": false,
261
+ "note": "Under the OLD Ecodesign Directive 2009/125/EC, not ESPR. Real durability/repairability/spare-parts obligations for smartphones and tablets, but no Digital Product Passport."
262
+ }
263
+ },
264
+ "nonLegislative": {
265
+ "_note": "References that are not EU legislation. A field may cite one, but it must carry the right `kind` so nothing implies a legal obligation.",
266
+ "standard": {
267
+ "description": "Supports a presumption of conformity. Creates no obligation on its own.",
268
+ "examples": [
269
+ "EN 15804+A2",
270
+ "ISO 3758",
271
+ "ISO 12945",
272
+ "ISO 12947",
273
+ "ISO 105-C06",
274
+ "EN 71-1",
275
+ "EN 1090-1",
276
+ "ISO 2076",
277
+ "EN 13300",
278
+ "ISO 14046"
279
+ ]
280
+ },
281
+ "scheme": {
282
+ "description": "Voluntary certification or industry scheme. Not law.",
283
+ "examples": [
284
+ "OEKO-TEX",
285
+ "GOTS",
286
+ "Bluesign",
287
+ "FSC",
288
+ "PEFC",
289
+ "RJC",
290
+ "Fairmined",
291
+ "ResponsibleSteel",
292
+ "ASI",
293
+ "GPSNR",
294
+ "Kimberley Process",
295
+ "CIBJO Blue Books",
296
+ "GIA/IGI grading"
297
+ ]
298
+ },
299
+ "national": {
300
+ "description": "One member state's law. Not an EU-wide obligation.",
301
+ "examples": [
302
+ "French AGEC"
303
+ ]
304
+ },
305
+ "international": {
306
+ "description": "A convention outside EU law.",
307
+ "examples": [
308
+ "Vienna Convention 1972 (hallmarking)"
309
+ ]
310
+ },
311
+ "specification": {
312
+ "description": "Not a reference at all — a product spec, a safety-data-sheet section, or a note. These must be removed from regulationRef.",
313
+ "examples": [
314
+ "Product specification",
315
+ "Industry best practice",
316
+ "Various",
317
+ "SDS Section 9.1",
318
+ "US FMVSS 575.104"
319
+ ]
320
+ }
321
+ }
322
+ }
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@tracepass/dpp-schemas",
3
+ "version": "0.1.0",
4
+ "description": "Machine-readable field specifications for EU Digital Product Passports (ESPR) — 12 product categories, 913 fields, each traced to the article of EU law that mandates it. Pure JSON, no dependencies.",
5
+ "keywords": [
6
+ "digital-product-passport",
7
+ "dpp",
8
+ "espr",
9
+ "eu-regulation",
10
+ "battery-passport",
11
+ "circular-economy",
12
+ "compliance",
13
+ "json-schema",
14
+ "sustainability",
15
+ "ecodesign"
16
+ ],
17
+ "license": "Apache-2.0",
18
+ "author": "TracePass LTD (https://tracepass.eu)",
19
+ "homepage": "https://github.com/malinoto/tracepass-dpp-schemas#readme",
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/malinoto/tracepass-dpp-schemas.git"
23
+ },
24
+ "bugs": "https://github.com/malinoto/tracepass-dpp-schemas/issues",
25
+ "exports": {
26
+ ".": "./index.json",
27
+ "./schema.json": "./schema.json",
28
+ "./templates/*.json": "./templates/*.json"
29
+ },
30
+ "files": [
31
+ "templates",
32
+ "schema.json",
33
+ "index.json",
34
+ "instruments.json",
35
+ "units.json",
36
+ "README.md",
37
+ "LICENSE"
38
+ ],
39
+ "sideEffects": false,
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "scripts": {
44
+ "validate": "python3 -c \"import json,glob;from jsonschema import Draft202012Validator as V;v=V(json.load(open('schema.json')));[print(('ok ' if not list(v.iter_errors(json.load(open(p)))) else 'FAIL'),p) for p in sorted(glob.glob('templates/*.json'))]\""
45
+ }
46
+ }