@matter/dcl-data 2026.5.1-5.1 → 2026.5.20

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
@@ -1,2 +1,75 @@
1
- # dcl-data
2
- Matter DCL data package to seed fresh installations
1
+ # dcl-data — Matter DCL data package for offline seeding
2
+
3
+ Part of the matter.js IoT Matter project. Pre-seeds commissioning-relevant data from the CSA Distributed Compliance Ledger (DCL) so matter.js-based projects work even when DCL is unreachable. The package includes:
4
+
5
+ - Product Attestation Authority (PAA) root certificates
6
+ - Certification Declaration (CD) signer certificates
7
+ - Vendor list and metadata
8
+
9
+ Besides the JSONL-style data files, the package exports async-iterable functions for each data type that can be used directly to pre-initialize `DclCertificateService` and `DclVendorInfoService` in a matter.js project.
10
+
11
+ The goal is to provide baseline data for cases where the DCL is unavailable or unreachable during device commissioning, improving the user experience for offline matter.js usage.
12
+
13
+ > **Not a replacement for live DCL access.** This package is a static snapshot. It does not include certificate revocation lists (CRLs), real-time vendor updates, or product-specific data fetched on demand. Production deployments should always combine this seed with a live `DclCertificateService` / `DclVendorInfoService` so revocations and new entries are picked up. Information about software updates for devices is also not included and only available live from the DCL.
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ npm install @matter/dcl-data
19
+ ```
20
+
21
+ Requires Node.js ≥ 18. ESM-only.
22
+
23
+ ## Usage
24
+
25
+ ```ts
26
+ import type { PaaRootEntry, CdSignerEntry, VendorEntry } from "@matter/dcl-data";
27
+ import { paaRoots, cdSigners, vendors, readManifest } from "@matter/dcl-data/node";
28
+
29
+ // production entries only (default)
30
+ const paas = paaRoots();
31
+ console.log(`PAA roots: ${paas.expectedCount}, built at ${paas.builtAt}`);
32
+ for await (const entry of paas.entries) {
33
+ // entry.subjectKeyId (lowercase hex), entry.derHex, entry.kind
34
+ }
35
+
36
+ // include test-net + GitHub dev certificates
37
+ const allCds = cdSigners({ includeTest: true });
38
+ for await (const entry of allCds.entries) { /* ... */ }
39
+
40
+ // vendor metadata (eager — small dataset)
41
+ for await (const v of vendors().entries) {
42
+ // v.vendorId, v.vendorName, v.companyLegalName, ...
43
+ }
44
+
45
+ // snapshot metadata
46
+ const manifest = readManifest();
47
+ console.log(manifest.builtAt, manifest.counts);
48
+ ```
49
+
50
+ Each function returns a `SeedSource<T>` with `builtAt` (ISO 8601 UTC), `expectedCount`, and `entries: AsyncIterable<T>`. Pass `{ includeTest: true }` to include test-net + GitHub dev certificates (default: production only).
51
+
52
+ ## Versioning
53
+
54
+ CalVer: `YYYY.M.D` (e.g. `2026.5.15`). Same-day republishes append a patch counter (`2026.5.15.1`).
55
+
56
+ Published nightly via GitHub Actions when the DCL snapshot changes. Each release is tagged (`vYYYY.M.D[.N]`) with a summary of added/removed/changed entries.
57
+
58
+ ## Data sources
59
+
60
+ - CSA DCL production: <https://on.dcl.csa-iot.org>
61
+ - CSA DCL test-net: <https://on.test-net.dcl.csa-iot.org> (test certificates only, requires `includeTest`)
62
+ - GitHub: [`project-chip/connectedhomeip`](https://github.com/project-chip/connectedhomeip) `master` — development PAA roots and CD signer certificates
63
+
64
+ The nightly build records the connectedhomeip commit SHA in `manifest.json` under `sources.github.commit`.
65
+
66
+ ## Notes and limitations
67
+
68
+ - **`VendorEntry.kind` is currently always `"production"`.** `DclVendorInfoService` only fetches from the production DCL endpoint — no test-net vendor source exists. `manifest.counts.vendorsTest` is always `0`. The field is kept for API symmetry with cert entries; reserved Matter test vendor IDs (`0xFFF1`–`0xFFF4`) appear as production entries.
69
+ - Certificate `derHex` is the raw DER bytes as lowercase hex. `subjectKeyId` is lowercase hex without colons.
70
+ - Vendor entries preserve unknown DCL fields (forward-compatible).
71
+ - The snapshot is a point-in-time view. For up-to-date data, prefer the live `DclCertificateService` / `DclVendorInfoService`; use this package only as a fallback or seed.
72
+
73
+ ## License
74
+
75
+ Apache-2.0
package/data/vendors.json CHANGED
@@ -3109,9 +3109,9 @@
3109
3109
  "vendorName": "Senscomm",
3110
3110
  "kind": "production",
3111
3111
  "companyLegalName": "Senscomm Semiconductor Co., Ltd.",
3112
- "companyPreferredName": "SCM",
3112
+ "companyPreferredName": "SCM2",
3113
3113
  "vendorLandingPageURL": "https://www.senscomm.com/",
3114
- "creator": "cosmos19vjxxvk4fz8l929zusnk07rjupssmjxmqcjgcp"
3114
+ "creator": "cosmos1nep46y6hl2uqvq4zquv86y3z6uuyl74ma76qym"
3115
3115
  },
3116
3116
  {
3117
3117
  "vendorId": 5634,
@@ -3332,6 +3332,13 @@
3332
3332
  "companyLegalName": "Airam Electric Oy Ab",
3333
3333
  "creator": "cosmos1eqmyx4c93uak4t2lcfuc7zjc5zn4dht7juygqk"
3334
3334
  },
3335
+ {
3336
+ "vendorId": 5728,
3337
+ "vendorName": "NuWatt",
3338
+ "kind": "production",
3339
+ "companyLegalName": "NuWatt, Inc.",
3340
+ "creator": "cosmos1jp0tfhj5qukdcf6guxe7cnpw9rqdz5a8en8glz"
3341
+ },
3335
3342
  {
3336
3343
  "vendorId": 5732,
3337
3344
  "vendorName": "Lowe's",
@@ -25,6 +25,11 @@ export type VendorEntry = {
25
25
  companyPreferredName?: string;
26
26
  vendorLandingPageURL?: string;
27
27
  creator?: string;
28
+ /**
29
+ * Currently always "production". DCL exposes no test-net vendor source — `DclVendorInfoService`
30
+ * fetches prod only. Field kept for API symmetry with cert entries; may classify Matter-reserved
31
+ * test vendor IDs (0xFFF1–0xFFF4) in the future.
32
+ */
28
33
  kind: "production" | "test";
29
34
  [extra: string]: unknown;
30
35
  };
@@ -48,6 +53,7 @@ export type Manifest = {
48
53
  cdSigners: number;
49
54
  cdSignersTest: number;
50
55
  vendors: number;
56
+ /** Currently always 0 — see {@link VendorEntry.kind}. */
51
57
  vendorsTest: number;
52
58
  };
53
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE;QACL,GAAG,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjD,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,CAAC;IACF,MAAM,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;CACL,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAF/B,YACa,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAC3B,KAAK,EAAE,OAAO,EAIjB;CACJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE;QACL,GAAG,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjD,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;KACzD,CAAC;IACF,MAAM,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,yDAAyD;QACzD,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;CACL,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM;IAF/B,YACa,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAC3B,KAAK,EAAE,OAAO,EAIjB;CACJ"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/types.ts"],
4
- "mappings": "AA+CO,MAAM,4BAA4B,MAAM;AAAA,EAC3C,YACa,MACA,YACT,OACF;AACE,UAAM,oBAAoB,IAAI,YAAY,UAAU,IAAI,EAAE,MAAM,CAAC;AAJxD;AACA;AAIT,SAAK,OAAO;AAAA,EAChB;AAAA,EANa;AAAA,EACA;AAMjB;",
4
+ "mappings": "AAqDO,MAAM,4BAA4B,MAAM;AAAA,EAC3C,YACa,MACA,YACT,OACF;AACE,UAAM,oBAAoB,IAAI,YAAY,UAAU,IAAI,EAAE,MAAM,CAAC;AAJxD;AACA;AAIT,SAAK,OAAO;AAAA,EAChB;AAAA,EANa;AAAA,EACA;AAMjB;",
5
5
  "names": []
6
6
  }
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "builtAt": "2026-05-15T10:30:27.318Z",
2
+ "builtAt": "2026-05-20T09:39:05.824Z",
3
3
  "schemaVersion": 1,
4
4
  "sources": {
5
5
  "dcl": {
@@ -16,7 +16,7 @@
16
16
  "paaRootsTest": 95,
17
17
  "cdSigners": 6,
18
18
  "cdSignersTest": 6,
19
- "vendors": 427,
19
+ "vendors": 428,
20
20
  "vendorsTest": 0
21
21
  }
22
22
  }
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@matter/dcl-data",
3
- "version": "2026.5.15.1",
3
+ "version": "2026.5.20",
4
4
  "type": "module",
5
5
  "description": "Daily snapshot of Matter DCL data for seeding matter.js services",
6
6
  "license": "Apache-2.0",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/matter-js/dcl-data.git"
10
+ },
7
11
  "engines": {
8
12
  "node": ">=18"
9
13
  },