@matter/types 0.15.0-alpha.0-20250620-16e218ed3 → 0.15.0-alpha.0-20250624-e8c89f458

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.
Files changed (82) hide show
  1. package/dist/cjs/dcl/attestation-certificate.d.ts +99 -0
  2. package/dist/cjs/dcl/attestation-certificate.d.ts.map +1 -0
  3. package/dist/cjs/dcl/attestation-certificate.js +22 -0
  4. package/dist/cjs/dcl/attestation-certificate.js.map +6 -0
  5. package/dist/cjs/dcl/device-attestation-revocation.d.ts +135 -0
  6. package/dist/cjs/dcl/device-attestation-revocation.d.ts.map +1 -0
  7. package/dist/cjs/dcl/device-attestation-revocation.js +33 -0
  8. package/dist/cjs/dcl/device-attestation-revocation.js.map +6 -0
  9. package/dist/cjs/dcl/device-software-compliance.d.ts +96 -0
  10. package/dist/cjs/dcl/device-software-compliance.d.ts.map +1 -0
  11. package/dist/cjs/dcl/device-software-compliance.js +36 -0
  12. package/dist/cjs/dcl/device-software-compliance.js.map +6 -0
  13. package/dist/cjs/dcl/device-software-version.d.ts +127 -0
  14. package/dist/cjs/dcl/device-software-version.d.ts.map +1 -0
  15. package/dist/cjs/dcl/device-software-version.js +22 -0
  16. package/dist/cjs/dcl/device-software-version.js.map +6 -0
  17. package/dist/cjs/dcl/device.d.ts +217 -0
  18. package/dist/cjs/dcl/device.d.ts.map +1 -0
  19. package/dist/cjs/dcl/device.js +22 -0
  20. package/dist/cjs/dcl/device.js.map +6 -0
  21. package/dist/cjs/dcl/index.d.ts +13 -0
  22. package/dist/cjs/dcl/index.d.ts.map +1 -0
  23. package/dist/cjs/dcl/index.js +30 -0
  24. package/dist/cjs/dcl/index.js.map +6 -0
  25. package/dist/cjs/dcl/operational-certificate.d.ts +79 -0
  26. package/dist/cjs/dcl/operational-certificate.d.ts.map +1 -0
  27. package/dist/cjs/dcl/operational-certificate.js +22 -0
  28. package/dist/cjs/dcl/operational-certificate.js.map +6 -0
  29. package/dist/cjs/dcl/vendor.d.ts +47 -0
  30. package/dist/cjs/dcl/vendor.d.ts.map +1 -0
  31. package/dist/cjs/dcl/vendor.js +22 -0
  32. package/dist/cjs/dcl/vendor.js.map +6 -0
  33. package/dist/cjs/index.d.ts +1 -0
  34. package/dist/cjs/index.d.ts.map +1 -1
  35. package/dist/cjs/index.js +1 -0
  36. package/dist/cjs/index.js.map +1 -1
  37. package/dist/esm/dcl/attestation-certificate.d.ts +99 -0
  38. package/dist/esm/dcl/attestation-certificate.d.ts.map +1 -0
  39. package/dist/esm/dcl/attestation-certificate.js +6 -0
  40. package/dist/esm/dcl/attestation-certificate.js.map +6 -0
  41. package/dist/esm/dcl/device-attestation-revocation.d.ts +135 -0
  42. package/dist/esm/dcl/device-attestation-revocation.d.ts.map +1 -0
  43. package/dist/esm/dcl/device-attestation-revocation.js +13 -0
  44. package/dist/esm/dcl/device-attestation-revocation.js.map +6 -0
  45. package/dist/esm/dcl/device-software-compliance.d.ts +96 -0
  46. package/dist/esm/dcl/device-software-compliance.d.ts.map +1 -0
  47. package/dist/esm/dcl/device-software-compliance.js +16 -0
  48. package/dist/esm/dcl/device-software-compliance.js.map +6 -0
  49. package/dist/esm/dcl/device-software-version.d.ts +127 -0
  50. package/dist/esm/dcl/device-software-version.d.ts.map +1 -0
  51. package/dist/esm/dcl/device-software-version.js +6 -0
  52. package/dist/esm/dcl/device-software-version.js.map +6 -0
  53. package/dist/esm/dcl/device.d.ts +217 -0
  54. package/dist/esm/dcl/device.d.ts.map +1 -0
  55. package/dist/esm/dcl/device.js +6 -0
  56. package/dist/esm/dcl/device.js.map +6 -0
  57. package/dist/esm/dcl/index.d.ts +13 -0
  58. package/dist/esm/dcl/index.d.ts.map +1 -0
  59. package/dist/esm/dcl/index.js +13 -0
  60. package/dist/esm/dcl/index.js.map +6 -0
  61. package/dist/esm/dcl/operational-certificate.d.ts +79 -0
  62. package/dist/esm/dcl/operational-certificate.d.ts.map +1 -0
  63. package/dist/esm/dcl/operational-certificate.js +6 -0
  64. package/dist/esm/dcl/operational-certificate.js.map +6 -0
  65. package/dist/esm/dcl/vendor.d.ts +47 -0
  66. package/dist/esm/dcl/vendor.d.ts.map +1 -0
  67. package/dist/esm/dcl/vendor.js +6 -0
  68. package/dist/esm/dcl/vendor.js.map +6 -0
  69. package/dist/esm/index.d.ts +1 -0
  70. package/dist/esm/index.d.ts.map +1 -1
  71. package/dist/esm/index.js +1 -0
  72. package/dist/esm/index.js.map +1 -1
  73. package/package.json +5 -5
  74. package/src/dcl/attestation-certificate.ts +114 -0
  75. package/src/dcl/device-attestation-revocation.ts +149 -0
  76. package/src/dcl/device-software-compliance.ts +108 -0
  77. package/src/dcl/device-software-version.ts +143 -0
  78. package/src/dcl/device.ts +243 -0
  79. package/src/dcl/index.ts +13 -0
  80. package/src/dcl/operational-certificate.ts +90 -0
  81. package/src/dcl/vendor.ts +53 -0
  82. package/src/index.ts +1 -0
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { VendorId } from "../datatype/VendorId.js";
7
+ export interface ApprovalOrRejectDetails {
8
+ address: string;
9
+ time: string;
10
+ info: string;
11
+ schemaVersion: number;
12
+ }
13
+ /**
14
+ * Product Attestation Authority and Intermediate Certificate Schema
15
+ * @see {@link MatterSpecification.v141.Core} § 11.23.4.
16
+ * DCL Endpoints:
17
+ * * /dcl/pki/certificates
18
+ * * /dcl/pki/certificates/{subject}
19
+ * * /dcl/pki/certificates/{subject}/{subjectKeyId}
20
+ */
21
+ export interface ProductAttestationDclSchema {
22
+ /**
23
+ * This field uniquely identifies a certificate and SHALL contain the body of a certificate that has been
24
+ * added in the DCL. It SHALL be encoded in PEM format. The certificate SHALL respect the format
25
+ * constraints provided for that certificate type.
26
+ */
27
+ pemCert: string;
28
+ /**
29
+ * The field SHALL be used to identify the serial number field in the Matter certificate structure. A
30
+ * Matter certificate follows the same limitation on admissible serial numbers as in [RFC 5280], i.e.,
31
+ * that implementations SHALL admit serial numbers up to 20 octets in length, and certificate authorities
32
+ * SHALL NOT use serial numbers longer than 20 octets in length.
33
+ */
34
+ serialNumber: string;
35
+ /**
36
+ * The field SHALL be used to identify the Certificate Authority that issues the certificate. For a PAA
37
+ * Certificate, this field is OPTIONAL because Issuer and Subject are the same.
38
+ */
39
+ issuer?: string;
40
+ /**
41
+ * The authority key identifier extension provides a means of identifying the public key corresponding
42
+ * to the private key used to sign a Matter certificate. This is OPTIONAL for PAA Certificates.
43
+ */
44
+ authorityKeyID?: string;
45
+ /**
46
+ * This field SHALL contain the PAA certificate’s Subject field, as defined in PAA in PAA Certificate.
47
+ * This is OPTIONAL for PAA Certificates. This is encoded as defined in Section 6.1, “Certificate Common
48
+ * Conventions”.
49
+ */
50
+ rootSubject?: string;
51
+ /**
52
+ * This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
53
+ * It is defined in PAA Certificate and Operational Root CA Certificates (RCAC). This is OPTIONAL
54
+ * for PAA Certificates. This is encoded as defined in Section 6.1, “Certificate Common Conventions”.
55
+ */
56
+ rootSubjectKeyID?: string;
57
+ /**
58
+ * This field SHALL signify whether the associated certificate is PAA Certificate.
59
+ */
60
+ isRoot: boolean;
61
+ /**
62
+ * This field uniquely identifies the DCL key that was used to register the certificate in DCL, pursuant
63
+ * to DCL policies.
64
+ */
65
+ owner: string;
66
+ /**
67
+ * This field SHALL contain the certificate’s Subject field. This is OPTIONAL for PAA Certificates. This
68
+ * is encoded as defined in Section 6.1, “Certificate Common Conventions”.
69
+ * Base64 encoded
70
+ * TODO Check optional or not??
71
+ */
72
+ subject?: string;
73
+ /**
74
+ * This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
75
+ * This is encoded as defined in Section 6.1.2, “Key Identifier Extension Constraints”.
76
+ */
77
+ subjectKeyID: string;
78
+ /**
79
+ * This field SHALL contain list of DCL Keys that approved the PAA Certificate admission into DCL.
80
+ * This field SHALL be set only for a PAA Certificate.
81
+ */
82
+ approvals: ApprovalOrRejectDetails;
83
+ /**
84
+ * This field SHALL contain list of DCL Keys that rejected the PAA Certificate admission into DCL. This
85
+ * field SHALL be set only for a PAA Certificate
86
+ */
87
+ rejects: ApprovalOrRejectDetails;
88
+ /**
89
+ * This field SHALL uniquely identify this Vendor Schema entry and it SHALL match the Vendor’s
90
+ * assigned Vendor ID.
91
+ */
92
+ vid: VendorId;
93
+ /**
94
+ * The SchemaVersion field value history for this schema is provided below:
95
+ * ???? TODO
96
+ */
97
+ schemaVersion: number;
98
+ }
99
+ //# sourceMappingURL=attestation-certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attestation-certificate.d.ts","sourceRoot":"","sources":["../../../src/dcl/attestation-certificate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,2BAA2B;IACxC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,EAAE,uBAAuB,CAAC;IAEnC;;;OAGG;IACH,OAAO,EAAE,uBAAuB,CAAC;IAEjC;;;OAGG;IACH,GAAG,EAAE,QAAQ,CAAC;IAEd;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var attestation_certificate_exports = {};
16
+ module.exports = __toCommonJS(attestation_certificate_exports);
17
+ /**
18
+ * @license
19
+ * Copyright 2022-2025 Matter.js Authors
20
+ * SPDX-License-Identifier: Apache-2.0
21
+ */
22
+ //# sourceMappingURL=attestation-certificate.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/attestation-certificate.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { VendorId } from "../datatype/VendorId.js";
7
+ export declare enum RevocationTypeEnum {
8
+ /**
9
+ * RFC 5280 Certificate Revocation List (CRL)
10
+ */
11
+ Crl = 1
12
+ }
13
+ /**
14
+ * Device Attestation PKI Revocation Distribution Points Schema
15
+ * @see {@link MatterSpecification.v141.Core} § 11.23.9.
16
+ * DCL endpoints:
17
+ * * /dcl/pki/revocation-points
18
+ * * /dcl/pki/revocation-points/{issuerSubjectKeyID}
19
+ * * /dcl/pki/revocation-points/{issuerSubjectKeyID}/{vid}/{label}
20
+ */
21
+ export interface DeviceAttestationPkiRevocationDclSchema {
22
+ /**
23
+ * This field SHALL indicate the VendorID associated with the PAA or PAI whose revocation information
24
+ * is provided. For a non-vendor-scoped PAA, this SHALL be the VendorID associated with the
25
+ * organization operating the PAA. For vendor-scoped PAA and for PAIs, this field SHALL contain the
26
+ * VendorID as found in the CRLSignerCertificate (see Section 6.2.2.2, “Encoding of Vendor ID and
27
+ * Product ID in subject and issuer fields” for encoding).
28
+ */
29
+ vid: VendorId;
30
+ /**
31
+ * This field is only required when a PAI is making the distribution point available. This field SHALL
32
+ * only be provided if the IsPAA field is false and if the CRLSignerCertificate field has a ProductID in
33
+ * its subject (see Section 6.2.2.2, “Encoding of Vendor ID and Product ID in subject and issuer fields”
34
+ * for encoding).
35
+ */
36
+ pid?: number;
37
+ /**
38
+ * This field SHALL be set to true if the revocation information distribution point relates to a PAA, otherwise
39
+ * it SHALL be set to false (i.e. it relates to a PAI, not a PAA)."
40
+ */
41
+ isPAA: boolean;
42
+ /**
43
+ * This field contains a label to disambiguate multiple revocation information partitions of a particular
44
+ * issuer. Uniqueness within the Device Attestation PKI Revocation Distribution Points schema
45
+ * SHALL be enforced against the tuple containing all of:
46
+ * • VendorID
47
+ * • Label
48
+ * • IssuerSubjectKeyID
49
+ * Therefore, there MAY be multiple entries for the same VendorID and IssuerSubjectKeyID in case
50
+ * partitioning is done, which are disambiguated by the Label.
51
+ * Enforcement of uniqueness constraints SHALL be done by the Distributed Compliance Ledger’s
52
+ * block transaction processing and SHALL also be done by clients making use of the information
53
+ * from this schema.
54
+ */
55
+ label: string;
56
+ /**
57
+ * This field SHALL be present and non-empty if all of the following are true:
58
+ * • Certificate in CRLSignerCertificate field is not self-signed.
59
+ * • IsPAA is false.
60
+ * • CRLSignerCertificate is not a PAI.
61
+ * When present, this field SHALL contain the issuer certificate which signed the CRLSignerCertificate,
62
+ * encoded in X.509v3 PEM format.
63
+ * Additional constraints related to the value of this field are specified in Section 11.23.9.6, “CRLSignerCertificate”.
64
+ */
65
+ crlSignerDelegator?: string;
66
+ /**
67
+ * This field SHALL contain the issuer certificate who signed the revocation information that is provided
68
+ * in the distribution point entry, encoded in X.509v3 PEM format.
69
+ * Additional constraints related to the value of this field are specified in
70
+ * @see {@link MatterSpecification.v141.Core} §11.23.9.6.
71
+ */
72
+ crlSignerCertificate: string;
73
+ /**
74
+ * This field SHALL uniquely identify the PAA or PAI for which this revocation distribution point is
75
+ * provided, via the certificate’s SubjectKeyIdentifier mandatory extension. This field is provided to
76
+ * assist queries without requiring additional certificate parsing. This field SHALL provide the subject
77
+ * key identifier as an even number of uppercase hexadecimal characters ([0-9A-F]), with no whitespace
78
+ * and no non-hexadecimal characters.
79
+ * For example, subject key ID A3:03:13:6D:54:A8:4B:E2:4C:48:87:B3:41:06:6D:C2:70:96:2F:99 (as it
80
+ * would appear in openssl x509 output, for human consumption) would be recorded as
81
+ * A303136D54A84BE24C4887B341066DC270962F99.
82
+ * When processing revocation information during the device Device Attestation Procedure, clients
83
+ * SHALL only use entries whose IssuerSubjectKeyID matches a candidate certificate’s Authority Key
84
+ * Identifier extension.
85
+ */
86
+ issuerSubjectKeyID: string;
87
+ /**
88
+ * This field SHALL indicate the URL where to obtain the information in the format indicated by the
89
+ * RevocationType field. The syntax of this field SHALL follow the syntax as specified in RFC 1738. The
90
+ * maximum length of this field is 256 ASCII characters. All URLs SHALL use either the http or https
91
+ * scheme.
92
+ * Additional details of the content by revocation type are specified in
93
+ * @see {@link MatterSpecification.v141.Core} §11.23.9.8
94
+ */
95
+ dataUrl: string;
96
+ /**
97
+ * This field, if present, SHALL indicate the total size in bytes of the file found at the DataUrl. This field
98
+ * SHALL be omitted if the RevocationType is 1, which refers to a type having built-in signatures.
99
+ */
100
+ dataFileSize?: number | bigint;
101
+ /**
102
+ * This field, if present, SHALL contain the digest of the entire contents of the associated file downloaded
103
+ * from the DataUrl field, encoded in base64 string representation. The digest SHALL have been
104
+ * computed using the algorithm specified in DataDigestType. This field SHALL be present if and only if
105
+ * the DataFileSize field is present.
106
+ */
107
+ dataDigest?: string;
108
+ /**
109
+ * This field, if present, SHALL indicate the type of digest used in the DataDigest field. This field SHALL
110
+ * be provided if and only if the DataDigest field is present.
111
+ * The value of this field SHALL be a supported numerical identifier value from the IANA Named
112
+ * Information Hash Algorithm Registry [https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg]
113
+ * established as part of RFC 6920. For example, a value of 1 would match the sha-
114
+ * 256 identifier, which maps to the SHA-256 digest algorithm per Section 6.2 of FIPS 180-4.
115
+ * The digest algorithm chosen SHALL have a minimum digest length of 256 bits, such as sha-256 (ID 1
116
+ * in the registry).
117
+ * To increase interoperability, DataDigestType, if present, SHALL be within the list of [1, 7, 8, 10, 11,
118
+ * 12].
119
+ */
120
+ dataDigestType?: number;
121
+ /**
122
+ * This field SHALL indicate the type of revocation information provided in the DataUrl field. The
123
+ * following values are defined:
124
+ * • 0: CRL (Certificate Revocation List) in PEM format.
125
+ * • 1: Signed JSON object containing a list of revoked certificates.
126
+ * • 2: Signed JSON object containing a list of revoked certificates, with additional metadata.
127
+ */
128
+ revocationType: RevocationTypeEnum;
129
+ /**
130
+ * The SchemaVersion field value history for this schema is provided below:
131
+ * * 0: Initial Release
132
+ */
133
+ schemaVersion: number;
134
+ }
135
+ //# sourceMappingURL=device-attestation-revocation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-attestation-revocation.d.ts","sourceRoot":"","sources":["../../../src/dcl/device-attestation-revocation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,oBAAY,kBAAkB;IAC1B;;OAEG;IACH,GAAG,IAAI;CACV;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uCAAuC;IACpD;;;;;;OAMG;IACH,GAAG,EAAE,QAAQ,CAAC;IAEd;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IAEf;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;;;;;;;;;;OAYG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE/B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,cAAc,EAAE,kBAAkB,CAAC;IAEnC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var device_attestation_revocation_exports = {};
20
+ __export(device_attestation_revocation_exports, {
21
+ RevocationTypeEnum: () => RevocationTypeEnum
22
+ });
23
+ module.exports = __toCommonJS(device_attestation_revocation_exports);
24
+ /**
25
+ * @license
26
+ * Copyright 2022-2025 Matter.js Authors
27
+ * SPDX-License-Identifier: Apache-2.0
28
+ */
29
+ var RevocationTypeEnum = /* @__PURE__ */ ((RevocationTypeEnum2) => {
30
+ RevocationTypeEnum2[RevocationTypeEnum2["Crl"] = 1] = "Crl";
31
+ return RevocationTypeEnum2;
32
+ })(RevocationTypeEnum || {});
33
+ //# sourceMappingURL=device-attestation-revocation.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/device-attestation-revocation.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,IAAK,qBAAL,kBAAKA,wBAAL;AAIH,EAAAA,wCAAA,SAAM,KAAN;AAJQ,SAAAA;AAAA,GAAA;",
5
+ "names": ["RevocationTypeEnum"]
6
+ }
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { VendorId } from "../datatype/VendorId.js";
7
+ export declare enum SoftwareVersionCertificationStatusEnum {
8
+ /**
9
+ * Used for development and test purposes
10
+ * (These will typically not be placed in DCL)
11
+ */
12
+ DevTest = 0,
13
+ /**
14
+ * Used for a SoftwareVersion when going into certification testing
15
+ * (These might or might not be placed in DCL, depending on CSA policy and procedures)
16
+ */
17
+ Provisional = 1,
18
+ /**
19
+ * Used for a SoftwareVersion which has been certified
20
+ */
21
+ Certified = 2,
22
+ /**
23
+ * Used for a SoftwareVersion which has been revoked
24
+ */
25
+ Revoked = 3
26
+ }
27
+ /**
28
+ * DeviceSoftwareCompliance / Compliance test result Schema
29
+ * @see {@link MatterSpecification.v141.Core} § 11.23.8.
30
+ * DCL endpoint:
31
+ * * /dcl/compliance/device-software-compliance
32
+ * * /dcl/compliance/device-software-compliance/{cDCertificateId}
33
+ *
34
+ * * /dcl/compliance/compliance-info
35
+ * * /dcl/compliance/compliance-info/{vid}/{pid}/{softwareVersion}/{certificationType}
36
+ * * /dcl/compliance/certified-models
37
+ * * /dcl/compliance/certified-models/{vid}/{pid}/{softwareVersion}/{certificationType}
38
+ *
39
+ */
40
+ export interface DeviceSoftwareComplianceDclSchema {
41
+ /**
42
+ * This field SHALL identify the vendor of the product by its Vendor ID and SHALL match the VendorID
43
+ * field in the Basic Information Cluster of a device running the software referenced by this
44
+ * DeviceModel/DeviceSoftwareVersionModel record.
45
+ */
46
+ vid: VendorId;
47
+ /**
48
+ * This field SHALL identify the Product ID of the product instance to which a certification declaration,
49
+ * and thus a DCL entry, applies. This field SHALL match the ProductID field in the Basic Information
50
+ * Cluster of a device running the software referenced by this DeviceModel/DeviceSoftwareVersionModel
51
+ * record.
52
+ */
53
+ pid: number;
54
+ /**
55
+ * SoftwareVersion SHALL identify the software version number for the device model consistent with
56
+ * the value found in Section 11.21.2.4.3, “SoftwareVersion field”. The SoftwareVersionNumber value
57
+ * SHOULD NOT be displayed to an end-user. SoftwareVersion is not editable, but it would be possible
58
+ * to create a new device model for the same VendorID/ProductID for different versions. Both SoftwareVersion
59
+ * and SoftwareVersionString SHALL be included. This field SHALL match the SoftwareVersion
60
+ * field in the Basic Information Cluster of a device running the software certified by this
61
+ * DeviceModel record.
62
+ */
63
+ softwareVersion: number;
64
+ /**
65
+ * This field SHALL match the Software Version String field in the Basic Information Cluster of a
66
+ * device running the software referenced by this DeviceModel record, including format constraints
67
+ * on that field.
68
+ */
69
+ softwareVersionString: string;
70
+ /**
71
+ * CDVersionNumber SHALL identify the CD Version Number of the Certification that applies to this
72
+ * Software Image. The CDVersionNumber maps to version_number defined in Certification Elements TLV
73
+ * structure.
74
+ */
75
+ cdVersionNumber: number;
76
+ /**
77
+ * The FirmwareInformation field, if present, SHALL match the firmware_information field in attestation-elements
78
+ * field included in the Device Attestation response when this Software Image boots on
79
+ * the device. It is an OPTIONAL field that MAY be present only for devices that meet the requirements
80
+ * listed in Section 6.3.2, “Firmware Information”.
81
+ */
82
+ softwareVersionCertificationStatus?: SoftwareVersionCertificationStatusEnum;
83
+ /**
84
+ * This field SHALL have the CSA certification’s certificate ID for the Certification that applies to this
85
+ * record. The value of this field is used in the Certification Declaration's certificate_id field (see Certification
86
+ * Elements TLV structure) for products using the VendorID, ProductID and SoftwareVersion
87
+ * in this schema entry.
88
+ */
89
+ cdCertificateId: string;
90
+ /**
91
+ * The SchemaVersion field value history for this schema is provided below:
92
+ * * 0: Initial Release
93
+ */
94
+ schemaVersion: number;
95
+ }
96
+ //# sourceMappingURL=device-software-compliance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-software-compliance.d.ts","sourceRoot":"","sources":["../../../src/dcl/device-software-compliance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,oBAAY,sCAAsC;IAC9C;;;OAGG;IACH,OAAO,IAAI;IAEX;;;OAGG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,SAAS,IAAI;IAEb;;OAEG;IACH,OAAO,IAAI;CACd;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iCAAiC;IAC9C;;;;OAIG;IACH,GAAG,EAAE,QAAQ,CAAC;IAEd;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;;OAQG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;IAE5E;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var device_software_compliance_exports = {};
20
+ __export(device_software_compliance_exports, {
21
+ SoftwareVersionCertificationStatusEnum: () => SoftwareVersionCertificationStatusEnum
22
+ });
23
+ module.exports = __toCommonJS(device_software_compliance_exports);
24
+ /**
25
+ * @license
26
+ * Copyright 2022-2025 Matter.js Authors
27
+ * SPDX-License-Identifier: Apache-2.0
28
+ */
29
+ var SoftwareVersionCertificationStatusEnum = /* @__PURE__ */ ((SoftwareVersionCertificationStatusEnum2) => {
30
+ SoftwareVersionCertificationStatusEnum2[SoftwareVersionCertificationStatusEnum2["DevTest"] = 0] = "DevTest";
31
+ SoftwareVersionCertificationStatusEnum2[SoftwareVersionCertificationStatusEnum2["Provisional"] = 1] = "Provisional";
32
+ SoftwareVersionCertificationStatusEnum2[SoftwareVersionCertificationStatusEnum2["Certified"] = 2] = "Certified";
33
+ SoftwareVersionCertificationStatusEnum2[SoftwareVersionCertificationStatusEnum2["Revoked"] = 3] = "Revoked";
34
+ return SoftwareVersionCertificationStatusEnum2;
35
+ })(SoftwareVersionCertificationStatusEnum || {});
36
+ //# sourceMappingURL=device-software-compliance.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/device-software-compliance.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,IAAK,yCAAL,kBAAKA,4CAAL;AAKH,EAAAA,gFAAA,aAAU,KAAV;AAMA,EAAAA,gFAAA,iBAAc,KAAd;AAKA,EAAAA,gFAAA,eAAY,KAAZ;AAKA,EAAAA,gFAAA,aAAU,KAAV;AArBQ,SAAAA;AAAA,GAAA;",
5
+ "names": ["SoftwareVersionCertificationStatusEnum"]
6
+ }
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { VendorId } from "../datatype/VendorId.js";
7
+ /**
8
+ * DeviceSoftwareVersionModel Schema
9
+ * @see {@link MatterSpecification.v141.Core} § 11.23.7.
10
+ * DCL endpoints:
11
+ * * check with https://on.dcl.csa-iot.org/dcl/model/versions/{vid}/{pid} to get a list of software versions, check for newer ones
12
+ * * check with https://on.dcl.csa-iot.org/dcl/model/versions/{vid}/{pid}/{softwareVersion} for these details
13
+ * see also https://github.com/home-assistant-libs/python-matter-server/blob/main/matter_server/server/ota/dcl.py#L35
14
+ */
15
+ export interface DeviceSoftwareVersionModelDclSchema {
16
+ /**
17
+ * This field SHALL identify the vendor of the product by its Vendor ID and SHALL match the VendorID
18
+ * field in the Basic Information Cluster of a device running the software referenced by this
19
+ * DeviceModel/DeviceSoftwareVersionModel record.
20
+ */
21
+ vid: VendorId;
22
+ /**
23
+ * This field SHALL identify the Product ID of the product instance to which a certification declaration,
24
+ * and thus a DCL entry, applies. This field SHALL match the ProductID field in the Basic Information
25
+ * Cluster of a device running the software referenced by this DeviceModel/DeviceSoftwareVersionModel
26
+ * record.
27
+ */
28
+ pid: number;
29
+ /**
30
+ * SoftwareVersion SHALL identify the software version number for the device model consistent with
31
+ * the value found in Section 11.21.2.4.3, “SoftwareVersion field”. The SoftwareVersionNumber value
32
+ * SHOULD NOT be displayed to an end-user. SoftwareVersion is not editable, but it would be possible
33
+ * to create a new device model for the same VendorID/ProductID for different versions. Both SoftwareVersion
34
+ * and SoftwareVersionString SHALL be included. This field SHALL match the SoftwareVersion
35
+ * field in the Basic Information Cluster of a device running the software certified by this
36
+ * DeviceModel record.
37
+ */
38
+ softwareVersion: number;
39
+ /**
40
+ * This field SHALL match the Software Version String field in the Basic Information Cluster of a
41
+ * device running the software referenced by this DeviceModel record, including format constraints
42
+ * on that field.
43
+ */
44
+ softwareVersionString: string;
45
+ /**
46
+ * CDVersionNumber SHALL identify the CD Version Number of the Certification that applies to this
47
+ * Software Image. The CDVersionNumber maps to version_number defined in Certification Elements TLV
48
+ * structure.
49
+ */
50
+ cdVersionNumber: number;
51
+ /**
52
+ * The FirmwareInformation field, if present, SHALL match the firmware_information field in attestation-elements
53
+ * field included in the Device Attestation response when this Software Image boots on
54
+ * the device. It is an OPTIONAL field that MAY be present only for devices that meet the requirements
55
+ * listed in Section 6.3.2, “Firmware Information”.
56
+ */
57
+ firmwareInformation?: string;
58
+ /**
59
+ * This field SHALL indicate whether this SoftwareVersion is valid. When creating an entry for a new
60
+ * SoftwareVersion, this typically is set to True. When the manufacturer later finds out there is some
61
+ * reason that this version should no longer be used (e.g. due to some bugs), the field SHALL be
62
+ * updated to False.
63
+ */
64
+ softwareVersionValid: boolean;
65
+ /**
66
+ * OtaUrl SHALL identify the URL where to obtain the OTA image. The OtaUrl field SHALL be populated
67
+ * unless the device manufacturer provides alternative means to update the product’s firmware.
68
+ * The specified URL SHOULD be available for the relevant lifetime of the corresponding software.
69
+ * The syntax of this field SHALL follow the syntax as specified in RFC 1738 and SHALL use the https
70
+ * scheme. The maximum length of this field is 256 ASCII characters.
71
+ */
72
+ otaUrl?: string;
73
+ /**
74
+ * OtaFileSize is the total size of the OTA software image in bytes. This field SHALL be provided if the
75
+ * OtaUrl field is populated.
76
+ */
77
+ otaFileSize?: number | bigint;
78
+ /**
79
+ * OtaChecksum SHALL contain the digest of the entire contents of the associated OTA Software
80
+ * Update Image under the OtaUrl field, encoded in base64 string representation. The digest SHALL
81
+ * have been computed using the algorithm specified in OtaChecksumType. This field SHALL be provided
82
+ * if the OtaUrl field is populated.
83
+ */
84
+ otaChecksum?: string;
85
+ /**
86
+ * OtaChecksumType SHALL identify the type of OtaChecksum. This field SHALL be provided if the
87
+ * OtaUrl field is populated.
88
+ * The value of this field SHALL be a supported numerical identifier value from the IANA Named
89
+ * Information Hash Algorithm Registry [https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg]
90
+ * established as part of RFC 6920. For example, a value of 1 would match the sha-
91
+ * 256 identifier, which maps to the SHA-256 digest algorithm per Section 6.2 of FIPS 180-4.
92
+ * The digest algorithm chosen SHALL have a minimum digest length of 256 bits, such as sha-256 (ID 1
93
+ * in the registry).
94
+ * To increase interoperability, OtaChecksumType SHALL be within the list of [1, 7, 8, 10, 11, 12].
95
+ */
96
+ otaChecksumType?: number;
97
+ /**
98
+ * MinApplicableSoftwareVersion SHALL be equal to the lowest SoftwareVersion for which this image
99
+ * can be applied. Also see Section 11.21.2.4.6, “MinApplicableSoftwareVersion field”.
100
+ */
101
+ minApplicableSoftwareVersion: number;
102
+ /**
103
+ * MaxApplicableSoftwareVersion SHALL be equal to the highest SoftwareVersion for which this
104
+ * image can be applied. Also see Section 11.21.2.4.7, “MaxApplicableSoftwareVersion field”.
105
+ */
106
+ maxApplicableSoftwareVersion: number;
107
+ /**
108
+ * ReleaseNotesUrl SHALL identify a product specific web page that contains release notes for the
109
+ * device model software. The specified URL SHOULD resolve to a maintained web page available for
110
+ * the lifetime of the corresponding software being relevant. The syntax of this field SHALL follow the
111
+ * syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum length of this field
112
+ * is 256 ASCII characters.
113
+ */
114
+ releaseNotesUrl?: string;
115
+ /**
116
+ * SpecificationVersion SHALL identify the specification version applicable to the device model. This
117
+ * field SHALL match the SpecificationVersion field in the Basic Information Cluster of a device running
118
+ * the software certified by this DeviceModel record.
119
+ */
120
+ specificationVersion?: number;
121
+ /**
122
+ * The SchemaVersion field value history for this schema is provided below:
123
+ * * 0: Initial Release
124
+ */
125
+ schemaVersion: number;
126
+ }
127
+ //# sourceMappingURL=device-software-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-software-version.d.ts","sourceRoot":"","sources":["../../../src/dcl/device-software-version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,WAAW,mCAAmC;IAChD;;;;OAIG;IACH,GAAG,EAAE,QAAQ,CAAC;IAEd;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;;;;OAQG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;;OAGG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var device_software_version_exports = {};
16
+ module.exports = __toCommonJS(device_software_version_exports);
17
+ /**
18
+ * @license
19
+ * Copyright 2022-2025 Matter.js Authors
20
+ * SPDX-License-Identifier: Apache-2.0
21
+ */
22
+ //# sourceMappingURL=device-software-version.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/device-software-version.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }