@matter/types 0.15.0-alpha.0-20250620-16e218ed3 → 0.15.0-alpha.0-20250625-4a4b1be1b

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 (109) 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/cjs/protocol/definitions/general.d.ts +44 -0
  38. package/dist/cjs/protocol/definitions/general.d.ts.map +1 -0
  39. package/dist/cjs/protocol/definitions/general.js +50 -0
  40. package/dist/cjs/protocol/definitions/general.js.map +6 -0
  41. package/dist/cjs/protocol/definitions/index.d.ts +1 -0
  42. package/dist/cjs/protocol/definitions/index.d.ts.map +1 -1
  43. package/dist/cjs/protocol/definitions/index.js +1 -0
  44. package/dist/cjs/protocol/definitions/index.js.map +1 -1
  45. package/dist/cjs/protocol/definitions/secure-channel.d.ts +6 -40
  46. package/dist/cjs/protocol/definitions/secure-channel.d.ts.map +1 -1
  47. package/dist/cjs/protocol/definitions/secure-channel.js +10 -31
  48. package/dist/cjs/protocol/definitions/secure-channel.js.map +2 -2
  49. package/dist/esm/dcl/attestation-certificate.d.ts +99 -0
  50. package/dist/esm/dcl/attestation-certificate.d.ts.map +1 -0
  51. package/dist/esm/dcl/attestation-certificate.js +6 -0
  52. package/dist/esm/dcl/attestation-certificate.js.map +6 -0
  53. package/dist/esm/dcl/device-attestation-revocation.d.ts +135 -0
  54. package/dist/esm/dcl/device-attestation-revocation.d.ts.map +1 -0
  55. package/dist/esm/dcl/device-attestation-revocation.js +13 -0
  56. package/dist/esm/dcl/device-attestation-revocation.js.map +6 -0
  57. package/dist/esm/dcl/device-software-compliance.d.ts +96 -0
  58. package/dist/esm/dcl/device-software-compliance.d.ts.map +1 -0
  59. package/dist/esm/dcl/device-software-compliance.js +16 -0
  60. package/dist/esm/dcl/device-software-compliance.js.map +6 -0
  61. package/dist/esm/dcl/device-software-version.d.ts +127 -0
  62. package/dist/esm/dcl/device-software-version.d.ts.map +1 -0
  63. package/dist/esm/dcl/device-software-version.js +6 -0
  64. package/dist/esm/dcl/device-software-version.js.map +6 -0
  65. package/dist/esm/dcl/device.d.ts +217 -0
  66. package/dist/esm/dcl/device.d.ts.map +1 -0
  67. package/dist/esm/dcl/device.js +6 -0
  68. package/dist/esm/dcl/device.js.map +6 -0
  69. package/dist/esm/dcl/index.d.ts +13 -0
  70. package/dist/esm/dcl/index.d.ts.map +1 -0
  71. package/dist/esm/dcl/index.js +13 -0
  72. package/dist/esm/dcl/index.js.map +6 -0
  73. package/dist/esm/dcl/operational-certificate.d.ts +79 -0
  74. package/dist/esm/dcl/operational-certificate.d.ts.map +1 -0
  75. package/dist/esm/dcl/operational-certificate.js +6 -0
  76. package/dist/esm/dcl/operational-certificate.js.map +6 -0
  77. package/dist/esm/dcl/vendor.d.ts +47 -0
  78. package/dist/esm/dcl/vendor.d.ts.map +1 -0
  79. package/dist/esm/dcl/vendor.js +6 -0
  80. package/dist/esm/dcl/vendor.js.map +6 -0
  81. package/dist/esm/index.d.ts +1 -0
  82. package/dist/esm/index.d.ts.map +1 -1
  83. package/dist/esm/index.js +1 -0
  84. package/dist/esm/index.js.map +1 -1
  85. package/dist/esm/protocol/definitions/general.d.ts +44 -0
  86. package/dist/esm/protocol/definitions/general.d.ts.map +1 -0
  87. package/dist/esm/protocol/definitions/general.js +30 -0
  88. package/dist/esm/protocol/definitions/general.js.map +6 -0
  89. package/dist/esm/protocol/definitions/index.d.ts +1 -0
  90. package/dist/esm/protocol/definitions/index.d.ts.map +1 -1
  91. package/dist/esm/protocol/definitions/index.js +1 -0
  92. package/dist/esm/protocol/definitions/index.js.map +1 -1
  93. package/dist/esm/protocol/definitions/secure-channel.d.ts +6 -40
  94. package/dist/esm/protocol/definitions/secure-channel.d.ts.map +1 -1
  95. package/dist/esm/protocol/definitions/secure-channel.js +10 -31
  96. package/dist/esm/protocol/definitions/secure-channel.js.map +2 -2
  97. package/package.json +5 -5
  98. package/src/dcl/attestation-certificate.ts +114 -0
  99. package/src/dcl/device-attestation-revocation.ts +149 -0
  100. package/src/dcl/device-software-compliance.ts +108 -0
  101. package/src/dcl/device-software-version.ts +143 -0
  102. package/src/dcl/device.ts +243 -0
  103. package/src/dcl/index.ts +13 -0
  104. package/src/dcl/operational-certificate.ts +90 -0
  105. package/src/dcl/vendor.ts +53 -0
  106. package/src/index.ts +1 -0
  107. package/src/protocol/definitions/general.ts +61 -0
  108. package/src/protocol/definitions/index.ts +1 -0
  109. package/src/protocol/definitions/secure-channel.ts +5 -56
@@ -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,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# 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;",
5
+ "names": []
6
+ }
@@ -0,0 +1,217 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DeviceTypeId } from "../datatype/DeviceTypeId.js";
7
+ import { VendorId } from "../datatype/VendorId.js";
8
+ /**
9
+ * DeviceModel Schema
10
+ * @see {@link MatterSpecification.v141.Core} § 11.23.6.
11
+ * DCL endpoint:
12
+ * * /dcl/model/models
13
+ * * /dcl/model/models/{vid}
14
+ * * /dcl/model/models/{vid}/{pid}
15
+ */
16
+ export interface DeviceModelDclSchema {
17
+ /**
18
+ * This field SHALL identify the vendor of the product by its Vendor ID and SHALL match the VendorID
19
+ * field in the Basic Information Cluster of a device running the software referenced by this
20
+ * DeviceModel/DeviceSoftwareVersionModel record.
21
+ */
22
+ vid: VendorId;
23
+ /**
24
+ * This field SHALL identify the Product ID of the product instance to which a certification declaration,
25
+ * and thus a DCL entry, applies. This field SHALL match the ProductID field in the Basic Information
26
+ * Cluster of a device running the software referenced by this DeviceModel/DeviceSoftwareVersionModel
27
+ * record.
28
+ */
29
+ pid: number;
30
+ /**
31
+ * DeviceTypeID is the Primary Device Type identifier for the device. For example, DeviceTypeID is 10
32
+ * (0x000A), which is the device type identifier for a Door Lock.
33
+ */
34
+ deviceTypeID: DeviceTypeId;
35
+ /**
36
+ * This field SHOULD match the ProductName field in the Basic Information Cluster of a device running
37
+ * the software referenced by this DeviceModel record.
38
+ */
39
+ productName: string;
40
+ /**
41
+ * This field SHOULD match the ProductLabel field in the Basic Information Cluster of a device running
42
+ * the software referenced by this DeviceModel record.
43
+ */
44
+ productLabel: string;
45
+ /**
46
+ * This field SHALL match the PartNumber field in the Basic Information Cluster of a device running the
47
+ * software referenced by this DeviceModel record.
48
+ * Multiple products (and hence PartNumbers) can share a ProductID. For instance, there may be different
49
+ * packaging (with different PartNumbers) for different regions; also different colors of a product
50
+ * might share the ProductID but may have a different PartNumber. In such cases, the choice of a
51
+ * single PartNumber out of the available set of PartNumbers using this ProductID SHALL be used to
52
+ * populate this field.
53
+ */
54
+ partNumber: string;
55
+ /**
56
+ * This field SHALL identify the device’s available technologies for device discovery which SHALL be
57
+ * encoded as defined in Table 40, “Discovery Capabilities Bitmask”. This field SHALL match the Table
58
+ * 40, “Discovery Capabilities Bitmask” provided in the Section 5.1.3, “QR Code” (if a QR-code is provided
59
+ * on or with the product). This field SHALL be populated if the CommissioningFallbackUrl is
60
+ * populated, and SHOULD be populated for all other products.
61
+ */
62
+ discoveryCapabilitiesBitmask: number;
63
+ /**
64
+ * This field SHALL identify the device’s commissioning flow with encoding as described in Custom
65
+ * Flow.
66
+ */
67
+ commissioningCustomFlow: number;
68
+ /**
69
+ * This field SHALL identify a vendor-specific commissioning URL for the device model when the
70
+ * CommissioningCustomFlow field is set to '2', and MAY be set for other values of CommissioningCustomFlow.
71
+ * See Custom Commissioning Flow section for how this URL is used. During the lifetime of
72
+ * the product, the specified URL SHOULD resolve to a maintained web page. The syntax of this field
73
+ * SHALL follow the syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum
74
+ * length of this field is 256 ASCII characters.
75
+ */
76
+ commissioningCustomFlowUrl?: string;
77
+ /**
78
+ * This field SHALL identify a hint for the steps that MAY be used to put a device that has not yet been
79
+ * commissioned into commissioning mode. This field is a bitmap with values defined in the Pairing
80
+ * Hint Table. For example, a value of 1 (bit 0 is set) indicates that a device that has not yet been commissioned
81
+ * will enter Commissioning Mode upon a power cycle.
82
+ * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Hint field of
83
+ * Commissionable Node Discovery when they have not yet been commissioned.
84
+ */
85
+ commissioningModeInitialStepsHint: number;
86
+ /**
87
+ * This field SHALL be populated with the appropriate Pairing Instruction for those values of
88
+ * CommissioningModeInitialStepsHint, for which the Pairing Hint Table indicates a Pairing Instruction (PI)
89
+ * dependency.
90
+ * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Instruction field
91
+ * of Commissionable Node Discovery when they have not yet been commissioned.
92
+ */
93
+ commissioningModeInitialStepsInstruction?: string;
94
+ /**
95
+ * This field SHALL identify a hint for the steps that MAY be used to put a device that has already been
96
+ * commissioned into commissioning mode. This field is a bitmap with values defined in the Pairing
97
+ * Hint Table. At least bit 2 SHALL be set, to indicate that a current Administrator can be used to put a
98
+ * device that has already been commissioned into commissioning mode (see Section 5.6.3, “Enhanced
99
+ * Commissioning Method (ECM)”). Devices which implement additional mechanisms to put a device
100
+ * that has already been commissioned into commissioning mode SHALL reflect these mechanism by
101
+ * setting the corresponding bits in this field.
102
+ * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Hint field of
103
+ * Commissionable Node Discovery when they have already been commissioned.
104
+ */
105
+ commissioningModeSecondaryStepsHint: number;
106
+ /**
107
+ * This field SHALL be populated with the appropriate Pairing Instruction for those values of
108
+ * CommissioningModeSecondaryStepsHint, for which the Pairing Hint Table indicates a Pairing Instruction
109
+ * (PI) dependency.
110
+ * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Instruction field
111
+ * of Commissionable Node Discovery when they have already been commissioned.
112
+ */
113
+ commissioningModeSecondaryStepsInstruction?: string;
114
+ /**
115
+ * This field SHALL identify a vendor-specific commissioning-fallback URL for the device model,
116
+ * which can be used by a Commissioner in case commissioning fails to direct the user to a manufacturer-provided
117
+ * mechanism to provide resolution to commissioning issues. See Commissioning Fallback
118
+ * section for how this URL is used.
119
+ * During the lifetime of the product, the specified URL SHOULD resolve to a maintained web page.
120
+ * The syntax of this field SHALL follow the syntax as specified in RFC 1738 and SHALL use the https
121
+ * scheme. The maximum length of this field is 256 ASCII characters.
122
+ */
123
+ commissioningFallbackUrl?: string;
124
+ /**
125
+ * This field (when provided) SHALL identify a product-specific web page containing a user manual
126
+ * for the device model. During the lifetime of the product, the specified URL SHOULD resolve to a
127
+ * maintained web page. The syntax of this field SHALL follow the syntax as specified in RFC 1738 and
128
+ * SHALL use the https scheme. The maximum length of this field is 256 ASCII characters.
129
+ */
130
+ userManualUrl?: string;
131
+ /**
132
+ * This field (when provided) SHALL identify a product specific support web page. During the lifetime
133
+ * of the product, the specified URL SHOULD resolve to a maintained web page. The syntax of this
134
+ * field SHALL follow the syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum
135
+ * length of this field is 256 ASCII characters.
136
+ */
137
+ supportUrl?: string;
138
+ /**
139
+ * This field (when provided) SHALL identify a link to a product specific web page. This field SHALL
140
+ * match the ProductURL field in the Basic Information Cluster of a device running the software referenced
141
+ * by this DeviceModel record. During the lifetime of the product, the specified URL SHOULD resolve to a
142
+ * maintained web page. The syntax of this field SHALL follow the syntax as specified in
143
+ * RFC 1738 and SHALL use the https scheme. The maximum length of this field is 256 ASCII characters.
144
+ */
145
+ productUrl?: string;
146
+ /**
147
+ * This field (when provided) SHALL identify a link to the Localized String File of this product. This
148
+ * field SHALL NOT have a localized string identifier. During the lifetime of the product, the specified
149
+ * URL SHOULD resolve to a maintained Localized String File. The syntax of this field SHALL follow
150
+ * the syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum length of this
151
+ * field is 256 ASCII characters.
152
+ */
153
+ lsfUrl?: string;
154
+ /**
155
+ * LsfRevision is a monotonically increasing positive integer indicating the latest available version of
156
+ * Localized String File. Any client can use this field to check whether it has the latest version of the
157
+ * Localized String File cached. When the first version of the Localized String File is published, the
158
+ * value of this field SHOULD be 1. When a new revision of the Localized String File is published, this
159
+ * value SHALL monotonically increase by 1. When a client of this information finds this to be greater
160
+ * than its currently stored LSF revision number, it SHOULD download the latest version of the LSF
161
+ * from the LsfUrl, and update its local value of this field.
162
+ * This field SHALL be provided if and only if when LsfUrl is provided.
163
+ */
164
+ lsfRevision?: number;
165
+ /**
166
+ * This field SHALL identify the configuration options for the Enhanced Setup Flow. This field is a
167
+ * bitmap with values defined in Enhanced Setup Flow Options Table.
168
+ */
169
+ enhancedSetupFlowOptions?: number;
170
+ /**
171
+ * This field (when provided) SHALL identify a link to the Enhanced Setup Flow Terms and Condition
172
+ * File for this product. During the lifetime of the product, the specified URL SHOULD resolve to a
173
+ * maintained Terms and Conditions File. The syntax of this field SHALL follow the syntax as specified
174
+ * in RFC 1738. The maximum length of this field is 256 ASCII characters. All URLs SHALL use the
175
+ * https scheme. This field SHALL be present if and only if the EnhancedSetupFlowOptions field has
176
+ * bit 0 set.
177
+ */
178
+ enhancedSetupFlowTCUrl?: string;
179
+ /**
180
+ * This field (when provided) is an increasing positive integer indicating the latest available version of
181
+ * the Enhanced Setup Flow Terms and Conditions file. When a new revision of the File is published,
182
+ * this value SHALL increase (and SHOULD increase by 1). This field SHALL be present if and only if
183
+ * the EnhancedSetupFlowOptions field has bit 0 set.
184
+ */
185
+ enhancedSetupFlowTCRevision?: number;
186
+ /**
187
+ * This field (when provided) SHALL contain the digest of the entire contents of the associated file
188
+ * downloaded from the EnhancedSetupFlowTCUrl field, encoded in base64 string representation and
189
+ * SHALL be used to ensure the contents of the downloaded file are authentic. The digest SHALL have
190
+ * been computed using the SHA-256 digest algorithm. This field SHALL be present if and only if the
191
+ * EnhancedSetupFlowOptions field has bit 0 set.
192
+ */
193
+ enhancedSetupFlowTCDigest?: string;
194
+ /**
195
+ * This field (when provided) SHALL indicate the total size of the Enhanced Setup Flow Terms and
196
+ * Conditions file in bytes, and SHALL be used to ensure the downloaded file size is within the bounds
197
+ * of EnhancedSetupFlowTCFileSize. This field SHALL be provided if and only if the EnhancedSetupFlowTCUrl
198
+ * field is present.
199
+ */
200
+ enhancedSetupFlowTCFileSize?: number;
201
+ /**
202
+ * This field (when provided) SHALL identify a link to a vendor-specific URL which SHALL provide a
203
+ * manufacturer specific means to resolve any functionality limitations indicated by the
204
+ * TERMS_AND_CONDITIONS_CHANGED status code. This field SHALL be present if the EnhancedSetupFlowOptions
205
+ * field has bit 0 set. During the lifetime of the product, the specified URL SHOULD
206
+ * resolve to a maintained web page. The syntax of this field SHALL follow the syntax as specified in
207
+ * RFC 1738. The maximum length of this field is 256 ASCII characters. All URLs SHALL use the https
208
+ * scheme.
209
+ */
210
+ enhancedSetupFlowMaintenanceUrl?: string;
211
+ /**
212
+ * The SchemaVersion field value history for this schema is provided below:
213
+ * * 0: Initial Release
214
+ */
215
+ schemaVersion: number;
216
+ }
217
+ //# sourceMappingURL=device.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../../src/dcl/device.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;OAIG;IACH,GAAG,EAAE,QAAQ,CAAC;IAEd;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;OAOG;IACH,iCAAiC,EAAE,MAAM,CAAC;IAE1C;;;;;;OAMG;IACH,wCAAwC,CAAC,EAAE,MAAM,CAAC;IAElD;;;;;;;;;;OAUG;IACH,mCAAmC,EAAE,MAAM,CAAC;IAE5C;;;;;;OAMG;IACH,0CAA0C,CAAC,EAAE,MAAM,CAAC;IAEpD;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;;;;;;;OAQG;IACH,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/device.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./attestation-certificate.js";
7
+ export * from "./device-attestation-revocation.js";
8
+ export * from "./device-software-compliance.js";
9
+ export * from "./device-software-version.js";
10
+ export * from "./device.js";
11
+ export * from "./operational-certificate.js";
12
+ export * from "./vendor.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dcl/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./attestation-certificate.js";
7
+ export * from "./device-attestation-revocation.js";
8
+ export * from "./device-software-compliance.js";
9
+ export * from "./device-software-version.js";
10
+ export * from "./device.js";
11
+ export * from "./operational-certificate.js";
12
+ export * from "./vendor.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/index.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Operational Root and Intermediate Certificate Schema
8
+ * @see {@link MatterSpecification.v141.Core} § 11.23.5.
9
+ */
10
+ export interface OperationalCertificateDclSchema {
11
+ /**
12
+ * This field uniquely identifies a certificate and SHALL contain the body of a certificate that has been
13
+ * added in the DCL. It SHALL be encoded in PEM format. The certificate SHALL respect the format
14
+ * constraints provided for that certificate type.
15
+ */
16
+ pemCert: string;
17
+ /**
18
+ * The field SHALL be used to identify the serial number field in the Matter certificate structure. A
19
+ * Matter certificate follows the same limitation on admissible serial numbers as in [RFC 5280], i.e.,
20
+ * that implementations SHALL admit serial numbers up to 20 octets in length, and certificate authorities
21
+ * SHALL NOT use serial numbers longer than 20 octets in length.
22
+ */
23
+ serialNumber: string;
24
+ /**
25
+ * The field SHALL be used to identify the Certificate Authority that issues the certificate. For a
26
+ * Operational Root CA Certificates (RCAC), this field is OPTIONAL because Issuer and
27
+ * Subject are the same.
28
+ */
29
+ issuer?: string;
30
+ /**
31
+ * The authority key identifier extension provides a means of identifying the public key corresponding
32
+ * to the private key used to sign a Matter certificate. This is OPTIONAL for Operational Root CA
33
+ * Certificates (RCAC).
34
+ */
35
+ authorityKeyID?: string;
36
+ /**
37
+ * This field SHALL contain the PAA certificate’s Subject field, as defined Operational Root CA Certificates
38
+ * (RCAC). This is OPTIONAL for Operational Root CA Certificates (RCAC). This is encoded as
39
+ * defined in Section 6.1, “Certificate Common Conventions”.
40
+ */
41
+ rootSubject?: string;
42
+ /**
43
+ * This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
44
+ * It is defined in PAA Certificate and Operational Root CA Certificates (RCAC). This is OPTIONAL
45
+ * for Operational Root CA Certificates (RCAC). This is encoded as defined in Section 6.1, “Certificate
46
+ * Common Conventions”.
47
+ */
48
+ rootSubjectKeyID?: string;
49
+ /**
50
+ * This field SHALL signify whether the associated certificates is a Operational Root CA Certificate
51
+ * (RCAC).
52
+ */
53
+ isRoot: boolean;
54
+ /**
55
+ * This field uniquely identifies the DCL key that was used to register the certificate in DCL, pursuant
56
+ * to DCL policies.
57
+ */
58
+ owner: string;
59
+ /**
60
+ * This field SHALL contain the certificate’s Subject field. This is encoded as defined in Section 6.1,
61
+ * “Certificate Common Conventions”.
62
+ */
63
+ subject: string;
64
+ /**
65
+ * This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
66
+ * This is encoded as defined in Section 6.1.2, “Key Identifier Extension Constraints”.
67
+ */
68
+ subjectKeyID: string;
69
+ /**
70
+ * This field SHALL contain the Vendor ID of the vendor that issued the certificate.
71
+ */
72
+ vid: number;
73
+ /**
74
+ * The SchemaVersion field value history for this schema is provided below:
75
+ * * ???
76
+ */
77
+ schemaVersion: number;
78
+ }
79
+ //# sourceMappingURL=operational-certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operational-certificate.d.ts","sourceRoot":"","sources":["../../../src/dcl/operational-certificate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC5C;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=operational-certificate.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/operational-certificate.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -0,0 +1,47 @@
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
+ * Vendor Schema
9
+ * @see {@link MatterSpecification.v141.Core} § 11.23.3.
10
+ * DCL Endpoint: /dcl/vendorinfo/vendors or /dcl/vendorinfo/vendors/{vendorID}
11
+ */
12
+ export interface VendorDclSchema {
13
+ /**
14
+ * This field SHALL uniquely identify this Vendor Schema entry and it SHALL match the Vendor’s
15
+ * assigned Vendor ID.
16
+ */
17
+ vendorID: VendorId;
18
+ /**
19
+ * This field SHALL provide a human readable (displayable) name for the product manufacturer associated
20
+ * with this record. Maximum length is 128 characters.
21
+ */
22
+ vendorName: string;
23
+ /**
24
+ * The CompanyLegalName field SHALL specify the legal name for the product manufacturer.
25
+ * Maximum length is 256 characters.
26
+ */
27
+ companyLegalName: string;
28
+ /**
29
+ * The CompanyPreferredName field, if provided, SHALL specify the Preferred Name that MAY be
30
+ * used for display purposes instead of the CompanyLegalName. Maximum length is 256 characters.
31
+ */
32
+ companyPreferredName?: string;
33
+ /**
34
+ * The VendorLandingPageUrl field (when provided) SHALL contain a link to a maintained web page
35
+ * containing more information about the device manufacturer, such as contact information, address,
36
+ * etc. During the lifetime of the products of this manufacturer, the specified URL SHOULD resolve to a
37
+ * maintained web page. The syntax of this field SHALL follow the syntax as specified in RFC 1738 and
38
+ * SHALL use the https scheme. The maximum length of this field is 256 ASCII characters.
39
+ */
40
+ vendorLandingPageUrl?: string;
41
+ /**
42
+ * The SchemaVersion field value history for this schema is provided below:
43
+ * * 0: Initial Release
44
+ */
45
+ schemaVersion: number;
46
+ }
47
+ //# sourceMappingURL=vendor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendor.d.ts","sourceRoot":"","sources":["../../../src/dcl/vendor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B;;;OAGG;IACH,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=vendor.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/dcl/vendor.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -7,6 +7,7 @@ export * from "./cluster/index.js";
7
7
  export * from "./commissioning/index.js";
8
8
  export * from "./common/index.js";
9
9
  export * from "./datatype/index.js";
10
+ export * from "./dcl/index.js";
10
11
  export * from "./globals/index.js";
11
12
  export * from "./protocol/index.js";
12
13
  export * from "./schema/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -7,6 +7,7 @@ export * from "./cluster/index.js";
7
7
  export * from "./commissioning/index.js";
8
8
  export * from "./common/index.js";
9
9
  export * from "./datatype/index.js";
10
+ export * from "./dcl/index.js";
10
11
  export * from "./globals/index.js";
11
12
  export * from "./protocol/index.js";
12
13
  export * from "./schema/index.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }