@tracepass/dpp-validate 0.2.0 → 0.3.1

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
@@ -40,8 +40,8 @@ identified, values match their datatype, enum, pattern, and bounds.
40
40
 
41
41
  **Conditional** — obligations that only fire under a condition. Battery carbon-footprint
42
42
  fields apply only to rechargeable batteries; REACH Article 33 disclosure triggers above
43
- 0.1% w/w of an SVHC. Three categories carry these rules — battery, chemicals,
44
- construction — plus one cross-cutting rule for every category.
43
+ 0.1% w/w of an SVHC. Four categories carry these rules — battery, detergents,
44
+ paints-coatings, construction — plus one cross-cutting rule for every category.
45
45
 
46
46
  **Coverage** — the engine reports whether it evaluated conditionals at all. For the other
47
47
  nine categories `conditionalCoverage` is `"static-only"`, so silence is never mistaken for
package/dist/rules.d.ts CHANGED
@@ -2,10 +2,11 @@
2
2
  * Per-category CONDITIONAL compliance rules.
3
3
  *
4
4
  * These encode the conditional obligations that are binding and in force.
5
- * Three categories carry them — battery, chemicals, construction — plus one
6
- * cross-cutting rule (CC-1) that applies to every category. The remaining
7
- * categories have no rule entry here, so the engine reports them
8
- * `static-only`: their template's required fields are the whole obligation.
5
+ * Four categories carry them — battery, detergents, paints-coatings,
6
+ * construction — plus one cross-cutting rule (CC-1) that applies to every
7
+ * category. The remaining categories have no rule entry here, so the engine
8
+ * reports them `static-only`: their template's required fields are the whole
9
+ * obligation.
9
10
  *
10
11
  * Rules live in TypeScript rather than a JSON DSL in the templates.
11
12
  * Regulatory logic stays in code, reviewed in pull requests, and is
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAapD,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAAC;CAClE;AAwVD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAI/D,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,EAAE,eAAe,EAAU,CAAC"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAapD,kFAAkF;AAClF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,EAAE,CAAC;CAClE;AAwVD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAQ/D,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,EAAE,eAAe,EAAU,CAAC"}
package/dist/rules.js CHANGED
@@ -2,10 +2,11 @@
2
2
  * Per-category CONDITIONAL compliance rules.
3
3
  *
4
4
  * These encode the conditional obligations that are binding and in force.
5
- * Three categories carry them — battery, chemicals, construction — plus one
6
- * cross-cutting rule (CC-1) that applies to every category. The remaining
7
- * categories have no rule entry here, so the engine reports them
8
- * `static-only`: their template's required fields are the whole obligation.
5
+ * Four categories carry them — battery, detergents, paints-coatings,
6
+ * construction — plus one cross-cutting rule (CC-1) that applies to every
7
+ * category. The remaining categories have no rule entry here, so the engine
8
+ * reports them `static-only`: their template's required fields are the whole
9
+ * obligation.
9
10
  *
10
11
  * Rules live in TypeScript rather than a JSON DSL in the templates.
11
12
  * Regulatory logic stays in code, reviewed in pull requests, and is
@@ -368,7 +369,11 @@ const CON1 = {
368
369
  */
369
370
  export const CONDITIONAL_RULES = {
370
371
  battery: [BAT1, BAT_APP, BAT_VAL],
371
- chemicals: [CHEM1],
372
+ // CHEM-1 is REACH Art. 33, which binds by substance content, not by product
373
+ // category. `chemicals` was split into these two successors; both carry
374
+ // `svhcSubstances` and `svhcSubstanceName`, so both engage the rule.
375
+ detergents: [CHEM1],
376
+ "paints-coatings": [CHEM1],
372
377
  construction: [CON1],
373
378
  };
374
379
  /** The cross-cutting rule the engine runs for every category. */
package/dist/rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -10,9 +10,9 @@
10
10
  * 2. CONDITIONAL — per-category rules that only fire under a condition
11
11
  * (e.g. battery passport required IF category is EV/LMT/
12
12
  * industrial>2kWh; EU operator required IF manufacturer
13
- * non-EU). Three categories carry binding conditionals —
14
- * battery, chemicals, construction — plus one cross-cutting
15
- * rule that applies to every category.
13
+ * non-EU). Four categories carry binding conditionals —
14
+ * battery, detergents, paints-coatings, construction — plus
15
+ * one cross-cutting rule that applies to every category.
16
16
  * 3. COVERAGE — the engine self-reports whether conditionals were
17
17
  * evaluated or the category is static-only, so an agent
18
18
  * NEVER reads silence as "compliant".
package/dist/types.js CHANGED
@@ -10,9 +10,9 @@
10
10
  * 2. CONDITIONAL — per-category rules that only fire under a condition
11
11
  * (e.g. battery passport required IF category is EV/LMT/
12
12
  * industrial>2kWh; EU operator required IF manufacturer
13
- * non-EU). Three categories carry binding conditionals —
14
- * battery, chemicals, construction — plus one cross-cutting
15
- * rule that applies to every category.
13
+ * non-EU). Four categories carry binding conditionals —
14
+ * battery, detergents, paints-coatings, construction — plus
15
+ * one cross-cutting rule that applies to every category.
16
16
  * 3. COVERAGE — the engine self-reports whether conditionals were
17
17
  * evaluated or the category is static-only, so an agent
18
18
  * NEVER reads silence as "compliant".
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * v1 design calls (per Malin's confirmation):
19
19
  * - Chemicals "downstream user" (REACH-specific role) → folded into
20
- * `distributor` for now; revisit when a chemicals customer pulls.
20
+ * `distributor` for now; revisit when a detergents or paints customer pulls.
21
21
  * - Tyre "retreader" → ignored for v1; retreaded tyres treated as a
22
22
  * separate passport whose `manufacturer` is the retreader.
23
23
  *
@@ -27,12 +27,12 @@
27
27
  */
28
28
  import type { PartyRole } from "@tracepass/dpp-types";
29
29
  /**
30
- * The 12 categories the platform models. Mirrors the filenames in
30
+ * The 13 categories the platform models. Mirrors the filenames in
31
31
  * `templates/*.json`. We re-declare the union here rather than import
32
32
  * a CategoryKey from elsewhere so this module stays the canonical
33
- * place a future contributor looks when adding a 13th category.
33
+ * place a future contributor looks when adding a 14th category.
34
34
  */
35
- export type CategoryKey = "battery" | "chemicals" | "construction" | "electronics" | "fmcg" | "furniture" | "jewelry" | "packaging" | "steel" | "textile" | "toys" | "tyres";
35
+ export type CategoryKey = "battery" | "detergents" | "paints-coatings" | "construction" | "electronics" | "fmcg" | "furniture" | "jewelry" | "packaging" | "steel" | "textile" | "toys" | "tyres";
36
36
  export interface CategoryPartyRoles {
37
37
  /** Roles that MUST be set before the passport is considered complete.
38
38
  * The publish flow warns (not blocks) when these are missing — a
@@ -51,7 +51,7 @@ export interface CategoryPartyRoles {
51
51
  export declare const CATEGORY_PARTY_ROLES: Record<CategoryKey, CategoryPartyRoles>;
52
52
  /**
53
53
  * Get the required + optional role lists for a category. Returns
54
- * `null` when the category isn't one of the 12 modeled categories,
54
+ * `null` when the category isn't one of the 13 modeled categories,
55
55
  * so callers can early-return rather than crash on legacy / unknown
56
56
  * category strings.
57
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"required-roles.d.ts","sourceRoot":"","sources":["../../src/vendor/required-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,WAAW,GACX,cAAc,GACd,aAAa,GACb,MAAM,GACN,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,kBAAkB;IACjC;;;uDAGmD;IACnD,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IAC/B;sEACkE;IAClE,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,kBAAkB,CA2F/D,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,kBAAkB,GAAG,IAAI,CAE3B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAGzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAI1E"}
1
+ {"version":3,"file":"required-roles.d.ts","sourceRoot":"","sources":["../../src/vendor/required-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,aAAa,GACb,MAAM,GACN,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,GACT,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,kBAAkB;IACjC;;;uDAGmD;IACnD,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IAC/B;sEACkE;IAClE,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAoG/D,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,GACf,kBAAkB,GAAG,IAAI,CAE3B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAGzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,SAAS,EAAE,CAI1E"}
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * v1 design calls (per Malin's confirmation):
19
19
  * - Chemicals "downstream user" (REACH-specific role) → folded into
20
- * `distributor` for now; revisit when a chemicals customer pulls.
20
+ * `distributor` for now; revisit when a detergents or paints customer pulls.
21
21
  * - Tyre "retreader" → ignored for v1; retreaded tyres treated as a
22
22
  * separate passport whose `manufacturer` is the retreader.
23
23
  *
@@ -81,8 +81,16 @@ export const CATEGORY_PARTY_ROLES = {
81
81
  },
82
82
  // REACH places obligations on manufacturer + importer + downstream
83
83
  // user. v1 maps "downstream user" to `distributor` per design call;
84
- // revisit when a chemicals customer pulls.
85
- chemicals: {
84
+ // revisit when a detergents or paints customer pulls.
85
+ detergents: {
86
+ required: ["manufacturer"],
87
+ optional: ["importer", "distributor", "authorisedRepresentative"],
88
+ },
89
+ // Same REACH shape as detergents — both are chemical mixtures. Split from
90
+ // the former combined `chemicals` entry when the category was divided;
91
+ // Reg (EU) 2026/405 gives detergents a passport, paints have none, but the
92
+ // economic-operator duties under REACH are identical.
93
+ "paints-coatings": {
86
94
  required: ["manufacturer"],
87
95
  optional: ["importer", "distributor", "authorisedRepresentative"],
88
96
  },
@@ -113,7 +121,7 @@ export const CATEGORY_PARTY_ROLES = {
113
121
  };
114
122
  /**
115
123
  * Get the required + optional role lists for a category. Returns
116
- * `null` when the category isn't one of the 12 modeled categories,
124
+ * `null` when the category isn't one of the 13 modeled categories,
117
125
  * so callers can early-return rather than crash on legacy / unknown
118
126
  * category strings.
119
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"required-roles.js","sourceRoot":"","sources":["../../src/vendor/required-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAmCH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4C;IAC3E,gEAAgE;IAChE,gEAAgE;IAChE,0CAA0C;IAC1C,OAAO,EAAE;QACP,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,EAAE,2BAA2B,CAAC;QACnE,QAAQ,EAAE,CAAC,UAAU,EAAE,0BAA0B,EAAE,aAAa,CAAC;KAClE;IAED,8DAA8D;IAC9D,0DAA0D;IAC1D,+DAA+D;IAC/D,iEAAiE;IACjE,8DAA8D;IAC9D,oDAAoD;IACpD,WAAW,EAAE;QACX,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,0BAA0B,EAAE,aAAa,EAAE,UAAU,CAAC;KAC9E;IAED,iEAAiE;IACjE,gEAAgE;IAChE,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;QACtC,QAAQ,EAAE,CAAC,0BAA0B,EAAE,aAAa,CAAC;KACtD;IAED,6DAA6D;IAC7D,qEAAqE;IACrE,IAAI,EAAE;QACJ,QAAQ,EAAE,CAAC,cAAc,EAAE,2BAA2B,CAAC;QACvD,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC;KAClD;IAED,8DAA8D;IAC9D,0BAA0B;IAC1B,SAAS,EAAE;QACT,QAAQ,EAAE,CAAC,cAAc,EAAE,2BAA2B,CAAC;QACvD,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC;KAClD;IAED,+DAA+D;IAC/D,gEAAgE;IAChE,uCAAuC;IACvC,OAAO,EAAE;QACP,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,2BAA2B,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC;KAC/E;IAED,mEAAmE;IACnE,qEAAqE;IACrE,SAAS,EAAE;QACT,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACtC;IAED,mEAAmE;IACnE,oEAAoE;IACpE,2CAA2C;IAC3C,SAAS,EAAE;QACT,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,0BAA0B,CAAC;KAClE;IAED,wDAAwD;IACxD,gCAAgC;IAChC,YAAY,EAAE;QACZ,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,0BAA0B,CAAC;KAClE;IAED,6DAA6D;IAC7D,gEAAgE;IAChE,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACtC;IAED,6DAA6D;IAC7D,0DAA0D;IAC1D,KAAK,EAAE;QACL,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACtC;IAED,gEAAgE;IAChE,gDAAgD;IAChD,OAAO,EAAE;QACP,QAAQ,EAAE,CAAC,cAAc,CAAC;QAC1B,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACtC;CACO,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAgB;IAEhB,OAAO,oBAAoB,CAAC,QAAuB,CAAC,IAAI,IAAI,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,IAAe;IAC9D,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"required-roles.js","sourceRoot":"","sources":["../../src/vendor/required-roles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tracepass/dpp-validate",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Evaluate an EU Digital Product Passport against its category field-spec — a three-tier compliance verdict with regulation-cited findings. Pure functions, no third-party runtime dependencies.",
5
5
  "keywords": [
6
6
  "digital-product-passport",
@@ -45,7 +45,7 @@
45
45
  "clean": "rm -rf dist"
46
46
  },
47
47
  "dependencies": {
48
- "@tracepass/dpp-types": "^0.2.0"
48
+ "@tracepass/dpp-types": "^0.3.1"
49
49
  },
50
50
  "devDependencies": {
51
51
  "typescript": "^5.6.3"