@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 +2 -2
- package/dist/rules.d.ts +5 -4
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +10 -5
- package/dist/rules.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.js +3 -3
- package/dist/vendor/required-roles.d.ts +5 -5
- package/dist/vendor/required-roles.d.ts.map +1 -1
- package/dist/vendor/required-roles.js +12 -4
- package/dist/vendor/required-roles.js.map +1 -1
- package/package.json +2 -2
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.
|
|
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
|
-
*
|
|
6
|
-
* cross-cutting rule (CC-1) that applies to every
|
|
7
|
-
* categories have no rule entry here, so the engine
|
|
8
|
-
* `static-only`: their template's required fields are the whole
|
|
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
|
package/dist/rules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA
|
|
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
|
-
*
|
|
6
|
-
* cross-cutting rule (CC-1) that applies to every
|
|
7
|
-
* categories have no rule entry here, so the engine
|
|
8
|
-
* `static-only`: their template's required fields are the whole
|
|
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
|
-
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAG5F,yEAAyE;AACzE,SAAS,QAAQ,CAAC,QAAkB,EAAE,GAAW;IAC/C,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;AAC5E,CAAC;AAED,iEAAiE;AACjE,SAAS,OAAO,CAAC,QAAkB,EAAE,GAAW;IAC9C,OAAO,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1E,CAAC;AAQD,uEAAuE;AACvE,mEAAmE;AACnE,+DAA+D;AAC/D,uEAAuE;AACvE,qEAAqE;AACrE,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,iEAAiE;AACjE,MAAM,GAAG,GAAoB;IAC3B,EAAE,EAAE,MAAM;IACV,GAAG,CAAC,QAAQ;QACV,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;QAC3C,6DAA6D;QAC7D,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO;gBACL;oBACE,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,sBAAsB;oBAC9B,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,iGAAiG;oBACtG,GAAG,EAAE,kFAAkF;iBACxF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC,CAAC,iDAAiD;QAE7F,MAAM,SAAS,GACb,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;QAC/E,IAAI,SAAS;YAAE,OAAO,EAAE,CAAC;QAEzB,OAAO;YACL;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,mCAAmC;gBAC3C,UAAU,EAAE,gBAAgB;gBAC5B,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,mDAAmD,GAAG,CAAC,OAAO,8DAA8D;gBACjI,GAAG,EAAE,kHAAkH;aACxH;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,uEAAuE;AACvE,6EAA6E;AAC7E,wEAAwE;AACxE,uEAAuE;AACvE,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;AACtE,6EAA6E;AAC7E,oEAAoE;AACpE,yCAAyC;AACzC,MAAM,uBAAuB,GAAG,CAAC,yBAAyB,CAAU,CAAC;AAErE,MAAM,IAAI,GAAoB;IAC5B,EAAE,EAAE,OAAO;IACX,GAAG,CAAC,QAAQ;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACjD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO;gBACL;oBACE,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,iBAAiB;oBACzB,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE,OAAO;oBACf,GAAG,EAAE,6GAA6G;oBAClH,GAAG,EAAE,6HAA6H;iBACnI;aACF,CAAC;QACJ,CAAC;QACD,gFAAgF;QAChF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAElD,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,GAAG;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,OAAO;oBACf,GAAG,EAAE,gCAAgC,MAAM,CAAC,GAAG,CAAC,gEAAgE;oBAChH,GAAG,EAAE,WAAW,GAAG,iEAAiE;iBACrF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,uEAAuE;AACvE,oEAAoE;AACpE,qEAAqE;AACrE,yEAAyE;AACzE,uCAAuC;AACvC,mEAAmE;AACnE,sEAAsE;AACtE,0DAA0D;AAC1D,yEAAyE;AACzE,sEAAsE;AACtE,sDAAsD;AACtD,0EAA0E;AAC1E,yEAAyE;AACzE,8DAA8D;AAC9D,MAAM,OAAO,GAAoB;IAC/B,EAAE,EAAE,SAAS;IACb,GAAG,CAAC,QAAQ;QACV,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,aAAa,GAAG,yBAAyB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;YACvC,mEAAmE;YACnE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YAEpC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACvC,IAAI,OAAO,KAAK,gBAAgB,IAAI,MAAM,EAAE,CAAC;oBAC3C,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,gBAAgB;wBACtB,QAAQ,EAAE,SAAS;wBACnB,MAAM,EAAE,GAAG;wBACX,UAAU,EAAE,gBAAgB;wBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,GAAG,GAAG,kDAAkD,IAAI,CAAC,MAAM,EAAE;wBAC1E,GAAG,EAAE,UAAU,GAAG,yGAAyG;qBAC5H,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,EAAE,CAAC;oBAC3C,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,0BAA0B;wBAChC,QAAQ,EAAE,SAAS;wBACnB,MAAM,EAAE,GAAG;wBACX,UAAU,EAAE,gBAAgB;wBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,GAAG,GAAG,8DAA8D,IAAI,CAAC,MAAM,EAAE;wBACtF,GAAG,EAAE,+GAA+G;qBACrH,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,qEAAqE;AACrE,yEAAyE;AACzE,uEAAuE;AACvE,0EAA0E;AAC1E,2BAA2B;AAC3B,wEAAwE;AACxE,2DAA2D;AAE3D,2EAA2E;AAC3E,SAAS,QAAQ,CAAC,QAAkB,EAAE,GAAW;IAC/C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IACvC,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,6DAA6D;AAC7D,MAAM,sBAAsB,GAAG;IAC7B,uBAAuB;IACvB,wBAAwB;IACxB,uBAAuB;IACvB,qBAAqB;IACrB,eAAe;IACf,wBAAwB;CAChB,CAAC;AAEX,uEAAuE;AACvE,MAAM,0BAA0B,GAAG;IACjC,sBAAsB;IACtB,0BAA0B;IAC1B,yBAAyB;IACzB,gBAAgB;IAChB,sBAAsB;CACd,CAAC;AAEX,MAAM,OAAO,GAAoB;IAC/B,EAAE,EAAE,SAAS;IACb,GAAG,CAAC,QAAQ;QACV,MAAM,QAAQ,GAAwB,EAAE,CAAC;QAEzC,gCAAgC;QAChC,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,GAAG;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,mCAAmC;oBACtD,GAAG,EAAE,WAAW,GAAG,qCAAqC;iBACzD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,KAAK,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;YAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,gBAAgB;oBACtB,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,GAAG;oBACX,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,gDAAgD;oBACnE,GAAG,EAAE,WAAW,GAAG,yCAAyC;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,sEAAsE;QACtE,uEAAuE;QACvE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,KAAK,SAAS;gBACvB,CAAC,CAAC,CAAC,SAAS,CAAC;gBACb,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC;YAC9E,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,wBAAwB;gBAChC,UAAU,EAAE,gBAAgB;gBAC5B,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,SAAS;gBACjB,GAAG,EAAE,4HAA4H;gBACjI,GAAG,EAAE,gHAAgH;aACtH,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAC;AAEF,uEAAuE;AACvE,sEAAsE;AACtE,wEAAwE;AACxE,oEAAoE;AACpE,wEAAwE;AACxE,uEAAuE;AACvE,sEAAsE;AACtE,MAAM,KAAK,GAAoB;IAC7B,EAAE,EAAE,QAAQ;IACZ,GAAG,CAAC,QAAQ;QACV,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;gBACL;oBACE,IAAI,EAAE,0BAA0B;oBAChC,QAAQ,EAAE,SAAS;oBACnB,MAAM,EAAE,gBAAgB;oBACxB,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,QAAQ;oBAChB,GAAG,EAAE,mHAAmH;oBACxH,GAAG,EAAE,8HAA8H;iBACpI;aACF,CAAC;QACJ,CAAC;QACD,2EAA2E;QAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEjC,4EAA4E;QAC5E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,CAAC;YAC7C,OAAO;gBACL;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,mBAAmB;oBAC3B,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,YAAY;oBACrB,MAAM,EAAE,QAAQ;oBAChB,GAAG,EAAE,uHAAuH;oBAC5H,GAAG,EAAE,oGAAoG;iBAC1G;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC;AAEF,uEAAuE;AACvE,sEAAsE;AACtE,kEAAkE;AAClE,wEAAwE;AACxE,oEAAoE;AACpE,oEAAoE;AACpE,0DAA0D;AAC1D,MAAM,IAAI,GAAoB;IAC5B,EAAE,EAAE,OAAO;IACX,GAAG,CAAC,QAAQ;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,6BAA6B,CAAC,CAAC;QAC/D,uEAAuE;QACvE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QAEnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC3C,OAAO;gBACL;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,QAAQ,EAAE,UAAU;oBACpB,MAAM,EAAE,iBAAiB;oBACzB,UAAU,EAAE,gBAAgB;oBAC5B,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,OAAO;oBACf,GAAG,EAAE,iIAAiI;oBACtI,GAAG,EAAE,6FAA6F;iBACnG;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IACjC,4EAA4E;IAC5E,wEAAwE;IACxE,qEAAqE;IACrE,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,iBAAiB,EAAE,CAAC,KAAK,CAAC;IAC1B,YAAY,EAAE,CAAC,IAAI,CAAC;CACrB,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,mBAAmB,GAAsB,CAAC,GAAG,CAAC,CAAC"}
|
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).
|
|
14
|
-
* battery,
|
|
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).
|
|
14
|
-
* battery,
|
|
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
|
|
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
|
|
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
|
|
33
|
+
* place a future contributor looks when adding a 14th category.
|
|
34
34
|
*/
|
|
35
|
-
export type CategoryKey = "battery" | "
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
85
|
-
|
|
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
|
|
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;
|
|
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.
|
|
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.
|
|
48
|
+
"@tracepass/dpp-types": "^0.3.1"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"typescript": "^5.6.3"
|