@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,44 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare enum GeneralStatusCode {
7
+ /** Operation completed successfully. */
8
+ Success = 0,
9
+ /** Generic failure, additional details may be included in the protocol specific status. */
10
+ Failure = 1,
11
+ /** Operation was rejected by the system because the system is in an invalid state. */
12
+ BadPrecondition = 2,
13
+ /** A value was out of a required range */
14
+ OutOfRange = 3,
15
+ /** A request was unrecognized or malformed */
16
+ BadRequest = 4,
17
+ /** An unrecognized or unsupported request was received. */
18
+ Unsupported = 5,
19
+ /** A request was not expected at this time. */
20
+ Unexpected = 6,
21
+ /** Insufficient resources to process the given request. */
22
+ ResourceExhausted = 7,
23
+ /** Device is busy and cannot handle this request at this time. */
24
+ Busy = 8,
25
+ /** A timeout occurred. */
26
+ Timeout = 9,
27
+ /** Context-specific signal to proceed */
28
+ Continue = 10,
29
+ /** Failure, may be due to a concurrency error. */
30
+ Aborted = 11,
31
+ /** An invalid/unsupported argument was provided. */
32
+ InvalidArgument = 12,
33
+ /** Some requested entity was not found. */
34
+ NotFound = 13,
35
+ /** The sender attempted to create something that already exists. */
36
+ AlreadyExists = 14,
37
+ /** The sender does not have sufficient permissions to execute the requested operations. */
38
+ PermissionDenied = 15,
39
+ /** Unrecoverable data loss or corruption has occurred. */
40
+ DataLoss = 16,
41
+ /** Message size is larger than the recipient can handle. */
42
+ MessageTooLarge = 17
43
+ }
44
+ //# sourceMappingURL=general.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/general.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,iBAAiB;IACzB,wCAAwC;IACxC,OAAO,IAAI;IAEX,2FAA2F;IAC3F,OAAO,IAAI;IAEX,sFAAsF;IACtF,eAAe,IAAI;IAEnB,0CAA0C;IAC1C,UAAU,IAAI;IAEd,8CAA8C;IAC9C,UAAU,IAAI;IAEd,2DAA2D;IAC3D,WAAW,IAAI;IAEf,+CAA+C;IAC/C,UAAU,IAAI;IAEd,2DAA2D;IAC3D,iBAAiB,IAAI;IAErB,kEAAkE;IAClE,IAAI,IAAI;IAER,0BAA0B;IAC1B,OAAO,IAAI;IAEX,yCAAyC;IACzC,QAAQ,KAAK;IAEb,kDAAkD;IAClD,OAAO,KAAK;IAEZ,oDAAoD;IACpD,eAAe,KAAK;IAEpB,2CAA2C;IAC3C,QAAQ,KAAK;IAEb,oEAAoE;IACpE,aAAa,KAAK;IAElB,2FAA2F;IAC3F,gBAAgB,KAAK;IAErB,0DAA0D;IAC1D,QAAQ,KAAK;IAEb,4DAA4D;IAC5D,eAAe,KAAK;CACvB"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ var GeneralStatusCode = /* @__PURE__ */ ((GeneralStatusCode2) => {
7
+ GeneralStatusCode2[GeneralStatusCode2["Success"] = 0] = "Success";
8
+ GeneralStatusCode2[GeneralStatusCode2["Failure"] = 1] = "Failure";
9
+ GeneralStatusCode2[GeneralStatusCode2["BadPrecondition"] = 2] = "BadPrecondition";
10
+ GeneralStatusCode2[GeneralStatusCode2["OutOfRange"] = 3] = "OutOfRange";
11
+ GeneralStatusCode2[GeneralStatusCode2["BadRequest"] = 4] = "BadRequest";
12
+ GeneralStatusCode2[GeneralStatusCode2["Unsupported"] = 5] = "Unsupported";
13
+ GeneralStatusCode2[GeneralStatusCode2["Unexpected"] = 6] = "Unexpected";
14
+ GeneralStatusCode2[GeneralStatusCode2["ResourceExhausted"] = 7] = "ResourceExhausted";
15
+ GeneralStatusCode2[GeneralStatusCode2["Busy"] = 8] = "Busy";
16
+ GeneralStatusCode2[GeneralStatusCode2["Timeout"] = 9] = "Timeout";
17
+ GeneralStatusCode2[GeneralStatusCode2["Continue"] = 10] = "Continue";
18
+ GeneralStatusCode2[GeneralStatusCode2["Aborted"] = 11] = "Aborted";
19
+ GeneralStatusCode2[GeneralStatusCode2["InvalidArgument"] = 12] = "InvalidArgument";
20
+ GeneralStatusCode2[GeneralStatusCode2["NotFound"] = 13] = "NotFound";
21
+ GeneralStatusCode2[GeneralStatusCode2["AlreadyExists"] = 14] = "AlreadyExists";
22
+ GeneralStatusCode2[GeneralStatusCode2["PermissionDenied"] = 15] = "PermissionDenied";
23
+ GeneralStatusCode2[GeneralStatusCode2["DataLoss"] = 16] = "DataLoss";
24
+ GeneralStatusCode2[GeneralStatusCode2["MessageTooLarge"] = 17] = "MessageTooLarge";
25
+ return GeneralStatusCode2;
26
+ })(GeneralStatusCode || {});
27
+ export {
28
+ GeneralStatusCode
29
+ };
30
+ //# sourceMappingURL=general.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/protocol/definitions/general.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAK,oBAAL,kBAAKA,uBAAL;AAEH,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,qBAAkB,KAAlB;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,iBAAc,KAAd;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,uBAAoB,KAApB;AAGA,EAAAA,sCAAA,UAAO,KAAP;AAGA,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,aAAU,MAAV;AAGA,EAAAA,sCAAA,qBAAkB,MAAlB;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,sBAAmB,MAAnB;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,qBAAkB,MAAlB;AArDQ,SAAAA;AAAA,GAAA;",
5
+ "names": ["GeneralStatusCode"]
6
+ }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ export * from "./general.js";
6
7
  export * from "./interaction.js";
7
8
  export * from "./secure-channel.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ export * from "./general.js";
6
7
  export * from "./interaction.js";
7
8
  export * from "./secure-channel.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/protocol/definitions/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -46,7 +46,7 @@ export declare enum SecureMessageType {
46
46
  /** The Check-in message notifies a client that the ICD is available for communication. */
47
47
  IcdCheckInMessage = 80
48
48
  }
49
- export declare enum ProtocolStatusCode {
49
+ export declare enum SecureChannelStatusCode {
50
50
  /** Indication that the last session establishment message was successfully processed. */
51
51
  Success = 0,
52
52
  /** Failure to find a common set of shared roots. */
@@ -56,44 +56,10 @@ export declare enum ProtocolStatusCode {
56
56
  /** Indication that the sender will close the current session. See Section “CloseSession” for more details. */
57
57
  CloseSession = 3,
58
58
  /** Indication that the sender cannot currently fulfill the request. See Section “Busy” for more details. */
59
- Busy = 4
60
- }
61
- export declare enum GeneralStatusCode {
62
- /** Operation completed successfully. */
63
- Success = 0,
64
- /** Generic failure, additional details may be included in the protocol specific status. */
65
- Failure = 1,
66
- /** Operation was rejected by the system because the system is in an invalid state. */
67
- BadPrecondition = 2,
68
- /** A value was out of a required range */
69
- OutOfRange = 3,
70
- /** A request was unrecognized or malformed */
71
- BadRequest = 4,
72
- /** An unrecognized or unsupported request was received. */
73
- Unsupported = 5,
74
- /** A request was not expected at this time. */
75
- Unexpected = 6,
76
- /** Insufficient resources to process the given request. */
77
- ResourceExhausted = 7,
78
- /** Device is busy and cannot handle this request at this time. */
79
- Busy = 8,
80
- /** A timeout occurred. */
81
- Timeout = 9,
82
- /** Context-specific signal to proceed */
83
- Continue = 10,
84
- /** Failure, may be due to a concurrency error. */
85
- Aborted = 11,
86
- /** An invalid/unsupported argument was provided. */
87
- InvalidArgument = 12,
88
- /** Some requested entity was not found. */
89
- NotFound = 13,
90
- /** The sender attempted to create something that already exists. */
91
- AlreadyExists = 14,
92
- /** The sender does not have sufficient permissions to execute the requested operations. */
93
- PermissionDenied = 15,
94
- /** Unrecoverable data loss or corruption has occurred. */
95
- DataLoss = 16,
96
- /** Message size is larger than the recipient can handle. */
97
- MessageTooLarge = 17
59
+ Busy = 4,
60
+ /**
61
+ * No additional error details available.
62
+ */
63
+ GeneralError = 65535
98
64
  }
99
65
  //# sourceMappingURL=secure-channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"secure-channel.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/secure-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAS,CAAC;AAEjD,oBAAY,iBAAiB;IACzB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,aAAa,KAAO;IAEpB,gFAAgF;IAChF,iBAAiB,KAAO;IAExB,2FAA2F;IAC3F,kBAAkB,KAAO;IAEzB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,oDAAoD;IACpD,SAAS,KAAO;IAEhB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,8CAA8C;IAC9C,MAAM,KAAO;IAEb,+CAA+C;IAC/C,MAAM,KAAO;IAEb,8CAA8C;IAC9C,MAAM,KAAO;IAEb,0DAA0D;IAC1D,YAAY,KAAO;IAEnB,qHAAqH;IACrH,YAAY,KAAO;IAEnB,0FAA0F;IAC1F,iBAAiB,KAAO;CAC3B;AAED,oBAAY,kBAAkB;IAC1B,yFAAyF;IACzF,OAAO,IAAS;IAEhB,oDAAoD;IACpD,kBAAkB,IAAS;IAE3B,oDAAoD;IACpD,YAAY,IAAS;IAErB,8GAA8G;IAC9G,YAAY,IAAS;IAErB,4GAA4G;IAC5G,IAAI,IAAS;CAChB;AAED,oBAAY,iBAAiB;IACzB,wCAAwC;IACxC,OAAO,IAAI;IAEX,2FAA2F;IAC3F,OAAO,IAAI;IAEX,sFAAsF;IACtF,eAAe,IAAI;IAEnB,0CAA0C;IAC1C,UAAU,IAAI;IAEd,8CAA8C;IAC9C,UAAU,IAAI;IAEd,2DAA2D;IAC3D,WAAW,IAAI;IAEf,+CAA+C;IAC/C,UAAU,IAAI;IAEd,2DAA2D;IAC3D,iBAAiB,IAAI;IAErB,kEAAkE;IAClE,IAAI,IAAI;IAER,0BAA0B;IAC1B,OAAO,IAAI;IAEX,yCAAyC;IACzC,QAAQ,KAAK;IAEb,kDAAkD;IAClD,OAAO,KAAK;IAEZ,oDAAoD;IACpD,eAAe,KAAK;IAEpB,2CAA2C;IAC3C,QAAQ,KAAK;IAEb,oEAAoE;IACpE,aAAa,KAAK;IAElB,2FAA2F;IAC3F,gBAAgB,KAAK;IAErB,0DAA0D;IAC1D,QAAQ,KAAK;IAEb,4DAA4D;IAC5D,eAAe,KAAK;CACvB"}
1
+ {"version":3,"file":"secure-channel.d.ts","sourceRoot":"","sources":["../../../../src/protocol/definitions/secure-channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B,IAAS,CAAC;AAEjD,oBAAY,iBAAiB;IACzB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,iBAAiB,IAAO;IAExB;;;OAGG;IACH,aAAa,KAAO;IAEpB,gFAAgF;IAChF,iBAAiB,KAAO;IAExB,2FAA2F;IAC3F,kBAAkB,KAAO;IAEzB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,oDAAoD;IACpD,SAAS,KAAO;IAEhB,mDAAmD;IACnD,SAAS,KAAO;IAEhB,8CAA8C;IAC9C,MAAM,KAAO;IAEb,+CAA+C;IAC/C,MAAM,KAAO;IAEb,8CAA8C;IAC9C,MAAM,KAAO;IAEb,0DAA0D;IAC1D,YAAY,KAAO;IAEnB,qHAAqH;IACrH,YAAY,KAAO;IAEnB,0FAA0F;IAC1F,iBAAiB,KAAO;CAC3B;AAED,oBAAY,uBAAuB;IAC/B,yFAAyF;IACzF,OAAO,IAAS;IAEhB,oDAAoD;IACpD,kBAAkB,IAAS;IAE3B,oDAAoD;IACpD,YAAY,IAAS;IAErB,8GAA8G;IAC9G,YAAY,IAAS;IAErB,4GAA4G;IAC5G,IAAI,IAAS;IAEb;;OAEG;IACH,YAAY,QAAS;CACxB"}
@@ -21,39 +21,18 @@ var SecureMessageType = /* @__PURE__ */ ((SecureMessageType2) => {
21
21
  SecureMessageType2[SecureMessageType2["IcdCheckInMessage"] = 80] = "IcdCheckInMessage";
22
22
  return SecureMessageType2;
23
23
  })(SecureMessageType || {});
24
- var ProtocolStatusCode = /* @__PURE__ */ ((ProtocolStatusCode2) => {
25
- ProtocolStatusCode2[ProtocolStatusCode2["Success"] = 0] = "Success";
26
- ProtocolStatusCode2[ProtocolStatusCode2["NoSharedTrustRoots"] = 1] = "NoSharedTrustRoots";
27
- ProtocolStatusCode2[ProtocolStatusCode2["InvalidParam"] = 2] = "InvalidParam";
28
- ProtocolStatusCode2[ProtocolStatusCode2["CloseSession"] = 3] = "CloseSession";
29
- ProtocolStatusCode2[ProtocolStatusCode2["Busy"] = 4] = "Busy";
30
- return ProtocolStatusCode2;
31
- })(ProtocolStatusCode || {});
32
- var GeneralStatusCode = /* @__PURE__ */ ((GeneralStatusCode2) => {
33
- GeneralStatusCode2[GeneralStatusCode2["Success"] = 0] = "Success";
34
- GeneralStatusCode2[GeneralStatusCode2["Failure"] = 1] = "Failure";
35
- GeneralStatusCode2[GeneralStatusCode2["BadPrecondition"] = 2] = "BadPrecondition";
36
- GeneralStatusCode2[GeneralStatusCode2["OutOfRange"] = 3] = "OutOfRange";
37
- GeneralStatusCode2[GeneralStatusCode2["BadRequest"] = 4] = "BadRequest";
38
- GeneralStatusCode2[GeneralStatusCode2["Unsupported"] = 5] = "Unsupported";
39
- GeneralStatusCode2[GeneralStatusCode2["Unexpected"] = 6] = "Unexpected";
40
- GeneralStatusCode2[GeneralStatusCode2["ResourceExhausted"] = 7] = "ResourceExhausted";
41
- GeneralStatusCode2[GeneralStatusCode2["Busy"] = 8] = "Busy";
42
- GeneralStatusCode2[GeneralStatusCode2["Timeout"] = 9] = "Timeout";
43
- GeneralStatusCode2[GeneralStatusCode2["Continue"] = 10] = "Continue";
44
- GeneralStatusCode2[GeneralStatusCode2["Aborted"] = 11] = "Aborted";
45
- GeneralStatusCode2[GeneralStatusCode2["InvalidArgument"] = 12] = "InvalidArgument";
46
- GeneralStatusCode2[GeneralStatusCode2["NotFound"] = 13] = "NotFound";
47
- GeneralStatusCode2[GeneralStatusCode2["AlreadyExists"] = 14] = "AlreadyExists";
48
- GeneralStatusCode2[GeneralStatusCode2["PermissionDenied"] = 15] = "PermissionDenied";
49
- GeneralStatusCode2[GeneralStatusCode2["DataLoss"] = 16] = "DataLoss";
50
- GeneralStatusCode2[GeneralStatusCode2["MessageTooLarge"] = 17] = "MessageTooLarge";
51
- return GeneralStatusCode2;
52
- })(GeneralStatusCode || {});
24
+ var SecureChannelStatusCode = /* @__PURE__ */ ((SecureChannelStatusCode2) => {
25
+ SecureChannelStatusCode2[SecureChannelStatusCode2["Success"] = 0] = "Success";
26
+ SecureChannelStatusCode2[SecureChannelStatusCode2["NoSharedTrustRoots"] = 1] = "NoSharedTrustRoots";
27
+ SecureChannelStatusCode2[SecureChannelStatusCode2["InvalidParam"] = 2] = "InvalidParam";
28
+ SecureChannelStatusCode2[SecureChannelStatusCode2["CloseSession"] = 3] = "CloseSession";
29
+ SecureChannelStatusCode2[SecureChannelStatusCode2["Busy"] = 4] = "Busy";
30
+ SecureChannelStatusCode2[SecureChannelStatusCode2["GeneralError"] = 65535] = "GeneralError";
31
+ return SecureChannelStatusCode2;
32
+ })(SecureChannelStatusCode || {});
53
33
  export {
54
- GeneralStatusCode,
55
- ProtocolStatusCode,
56
34
  SECURE_CHANNEL_PROTOCOL_ID,
35
+ SecureChannelStatusCode,
57
36
  SecureMessageType
58
37
  };
59
38
  //# sourceMappingURL=secure-channel.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/protocol/definitions/secure-channel.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,6BAA6B;AAEnC,IAAK,oBAAL,kBAAKA,uBAAL;AAKH,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAGA,EAAAA,sCAAA,wBAAqB,MAArB;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAlDQ,SAAAA;AAAA,GAAA;AAqDL,IAAK,qBAAL,kBAAKC,wBAAL;AAEH,EAAAA,wCAAA,aAAU,KAAV;AAGA,EAAAA,wCAAA,wBAAqB,KAArB;AAGA,EAAAA,wCAAA,kBAAe,KAAf;AAGA,EAAAA,wCAAA,kBAAe,KAAf;AAGA,EAAAA,wCAAA,UAAO,KAAP;AAdQ,SAAAA;AAAA,GAAA;AAiBL,IAAK,oBAAL,kBAAKC,uBAAL;AAEH,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,qBAAkB,KAAlB;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,iBAAc,KAAd;AAGA,EAAAA,sCAAA,gBAAa,KAAb;AAGA,EAAAA,sCAAA,uBAAoB,KAApB;AAGA,EAAAA,sCAAA,UAAO,KAAP;AAGA,EAAAA,sCAAA,aAAU,KAAV;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,aAAU,MAAV;AAGA,EAAAA,sCAAA,qBAAkB,MAAlB;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,sBAAmB,MAAnB;AAGA,EAAAA,sCAAA,cAAW,MAAX;AAGA,EAAAA,sCAAA,qBAAkB,MAAlB;AArDQ,SAAAA;AAAA,GAAA;",
5
- "names": ["SecureMessageType", "ProtocolStatusCode", "GeneralStatusCode"]
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,6BAA6B;AAEnC,IAAK,oBAAL,kBAAKA,uBAAL;AAKH,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,uBAAoB,KAApB;AAMA,EAAAA,sCAAA,mBAAgB,MAAhB;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAGA,EAAAA,sCAAA,wBAAqB,MAArB;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,eAAY,MAAZ;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,YAAS,MAAT;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,kBAAe,MAAf;AAGA,EAAAA,sCAAA,uBAAoB,MAApB;AAlDQ,SAAAA;AAAA,GAAA;AAqDL,IAAK,0BAAL,kBAAKC,6BAAL;AAEH,EAAAA,kDAAA,aAAU,KAAV;AAGA,EAAAA,kDAAA,wBAAqB,KAArB;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,kBAAe,KAAf;AAGA,EAAAA,kDAAA,UAAO,KAAP;AAKA,EAAAA,kDAAA,kBAAe,SAAf;AAnBQ,SAAAA;AAAA,GAAA;",
5
+ "names": ["SecureMessageType", "SecureChannelStatusCode"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/types",
3
- "version": "0.15.0-alpha.0-20250620-16e218ed3",
3
+ "version": "0.15.0-alpha.0-20250625-4a4b1be1b",
4
4
  "description": "Definitions for Matter application",
5
5
  "keywords": [
6
6
  "iot",
@@ -33,12 +33,12 @@
33
33
  "embed-examples": "embedme **/README.md"
34
34
  },
35
35
  "dependencies": {
36
- "@matter/general": "0.15.0-alpha.0-20250620-16e218ed3",
37
- "@matter/model": "0.15.0-alpha.0-20250620-16e218ed3"
36
+ "@matter/general": "0.15.0-alpha.0-20250625-4a4b1be1b",
37
+ "@matter/model": "0.15.0-alpha.0-20250625-4a4b1be1b"
38
38
  },
39
39
  "devDependencies": {
40
- "@matter/tools": "0.15.0-alpha.0-20250620-16e218ed3",
41
- "@matter/testing": "0.15.0-alpha.0-20250620-16e218ed3"
40
+ "@matter/tools": "0.15.0-alpha.0-20250625-4a4b1be1b",
41
+ "@matter/testing": "0.15.0-alpha.0-20250625-4a4b1be1b"
42
42
  },
43
43
  "files": [
44
44
  "dist/**/*",
@@ -0,0 +1,114 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { VendorId } from "../datatype/VendorId.js";
8
+
9
+ export interface ApprovalOrRejectDetails {
10
+ address: string;
11
+ time: string; // but number content
12
+ info: string;
13
+ schemaVersion: number; // No info
14
+ }
15
+
16
+ /**
17
+ * Product Attestation Authority and Intermediate Certificate Schema
18
+ * @see {@link MatterSpecification.v141.Core} § 11.23.4.
19
+ * DCL Endpoints:
20
+ * * /dcl/pki/certificates
21
+ * * /dcl/pki/certificates/{subject}
22
+ * * /dcl/pki/certificates/{subject}/{subjectKeyId}
23
+ */
24
+ export interface ProductAttestationDclSchema {
25
+ /**
26
+ * This field uniquely identifies a certificate and SHALL contain the body of a certificate that has been
27
+ * added in the DCL. It SHALL be encoded in PEM format. The certificate SHALL respect the format
28
+ * constraints provided for that certificate type.
29
+ */
30
+ pemCert: string;
31
+
32
+ /**
33
+ * The field SHALL be used to identify the serial number field in the Matter certificate structure. A
34
+ * Matter certificate follows the same limitation on admissible serial numbers as in [RFC 5280], i.e.,
35
+ * that implementations SHALL admit serial numbers up to 20 octets in length, and certificate authorities
36
+ * SHALL NOT use serial numbers longer than 20 octets in length.
37
+ */
38
+ serialNumber: string;
39
+
40
+ /**
41
+ * The field SHALL be used to identify the Certificate Authority that issues the certificate. For a PAA
42
+ * Certificate, this field is OPTIONAL because Issuer and Subject are the same.
43
+ */
44
+ issuer?: string;
45
+
46
+ /**
47
+ * The authority key identifier extension provides a means of identifying the public key corresponding
48
+ * to the private key used to sign a Matter certificate. This is OPTIONAL for PAA Certificates.
49
+ */
50
+ authorityKeyID?: string;
51
+
52
+ /**
53
+ * This field SHALL contain the PAA certificate’s Subject field, as defined in PAA in PAA Certificate.
54
+ * This is OPTIONAL for PAA Certificates. This is encoded as defined in Section 6.1, “Certificate Common
55
+ * Conventions”.
56
+ */
57
+ rootSubject?: string;
58
+
59
+ /**
60
+ * This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
61
+ * It is defined in PAA Certificate and Operational Root CA Certificates (RCAC). This is OPTIONAL
62
+ * for PAA Certificates. This is encoded as defined in Section 6.1, “Certificate Common Conventions”.
63
+ */
64
+ rootSubjectKeyID?: string;
65
+
66
+ /**
67
+ * This field SHALL signify whether the associated certificate is PAA Certificate.
68
+ */
69
+ isRoot: boolean;
70
+
71
+ /**
72
+ * This field uniquely identifies the DCL key that was used to register the certificate in DCL, pursuant
73
+ * to DCL policies.
74
+ */
75
+ owner: string;
76
+
77
+ /**
78
+ * This field SHALL contain the certificate’s Subject field. This is OPTIONAL for PAA Certificates. This
79
+ * is encoded as defined in Section 6.1, “Certificate Common Conventions”.
80
+ * Base64 encoded
81
+ * TODO Check optional or not??
82
+ */
83
+ subject?: string;
84
+
85
+ /**
86
+ * This field SHALL uniquely identify the PAA certificate’s Subject Key Identifier mandatory extension.
87
+ * This is encoded as defined in Section 6.1.2, “Key Identifier Extension Constraints”.
88
+ */
89
+ subjectKeyID: string;
90
+
91
+ /**
92
+ * This field SHALL contain list of DCL Keys that approved the PAA Certificate admission into DCL.
93
+ * This field SHALL be set only for a PAA Certificate.
94
+ */
95
+ approvals: ApprovalOrRejectDetails; // Spec: grantApprovals and other format
96
+
97
+ /**
98
+ * This field SHALL contain list of DCL Keys that rejected the PAA Certificate admission into DCL. This
99
+ * field SHALL be set only for a PAA Certificate
100
+ */
101
+ rejects: ApprovalOrRejectDetails; // Spec: grantRejects and other format
102
+
103
+ /**
104
+ * This field SHALL uniquely identify this Vendor Schema entry and it SHALL match the Vendor’s
105
+ * assigned Vendor ID.
106
+ */
107
+ vid: VendorId;
108
+
109
+ /**
110
+ * The SchemaVersion field value history for this schema is provided below:
111
+ * ???? TODO
112
+ */
113
+ schemaVersion: number;
114
+ }
@@ -0,0 +1,149 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { VendorId } from "../datatype/VendorId.js";
8
+
9
+ export enum RevocationTypeEnum {
10
+ /**
11
+ * RFC 5280 Certificate Revocation List (CRL)
12
+ */
13
+ Crl = 1,
14
+ }
15
+
16
+ /**
17
+ * Device Attestation PKI Revocation Distribution Points Schema
18
+ * @see {@link MatterSpecification.v141.Core} § 11.23.9.
19
+ * DCL endpoints:
20
+ * * /dcl/pki/revocation-points
21
+ * * /dcl/pki/revocation-points/{issuerSubjectKeyID}
22
+ * * /dcl/pki/revocation-points/{issuerSubjectKeyID}/{vid}/{label}
23
+ */
24
+ export interface DeviceAttestationPkiRevocationDclSchema {
25
+ /**
26
+ * This field SHALL indicate the VendorID associated with the PAA or PAI whose revocation information
27
+ * is provided. For a non-vendor-scoped PAA, this SHALL be the VendorID associated with the
28
+ * organization operating the PAA. For vendor-scoped PAA and for PAIs, this field SHALL contain the
29
+ * VendorID as found in the CRLSignerCertificate (see Section 6.2.2.2, “Encoding of Vendor ID and
30
+ * Product ID in subject and issuer fields” for encoding).
31
+ */
32
+ vid: VendorId; // Spec: vendorId
33
+
34
+ /**
35
+ * This field is only required when a PAI is making the distribution point available. This field SHALL
36
+ * only be provided if the IsPAA field is false and if the CRLSignerCertificate field has a ProductID in
37
+ * its subject (see Section 6.2.2.2, “Encoding of Vendor ID and Product ID in subject and issuer fields”
38
+ * for encoding).
39
+ */
40
+ pid?: number; // Spec: productId
41
+
42
+ /**
43
+ * This field SHALL be set to true if the revocation information distribution point relates to a PAA, otherwise
44
+ * it SHALL be set to false (i.e. it relates to a PAI, not a PAA)."
45
+ */
46
+ isPAA: boolean;
47
+
48
+ /**
49
+ * This field contains a label to disambiguate multiple revocation information partitions of a particular
50
+ * issuer. Uniqueness within the Device Attestation PKI Revocation Distribution Points schema
51
+ * SHALL be enforced against the tuple containing all of:
52
+ * • VendorID
53
+ * • Label
54
+ * • IssuerSubjectKeyID
55
+ * Therefore, there MAY be multiple entries for the same VendorID and IssuerSubjectKeyID in case
56
+ * partitioning is done, which are disambiguated by the Label.
57
+ * Enforcement of uniqueness constraints SHALL be done by the Distributed Compliance Ledger’s
58
+ * block transaction processing and SHALL also be done by clients making use of the information
59
+ * from this schema.
60
+ */
61
+ label: string;
62
+
63
+ /**
64
+ * This field SHALL be present and non-empty if all of the following are true:
65
+ * • Certificate in CRLSignerCertificate field is not self-signed.
66
+ * • IsPAA is false.
67
+ * • CRLSignerCertificate is not a PAI.
68
+ * When present, this field SHALL contain the issuer certificate which signed the CRLSignerCertificate,
69
+ * encoded in X.509v3 PEM format.
70
+ * Additional constraints related to the value of this field are specified in Section 11.23.9.6, “CRLSignerCertificate”.
71
+ */
72
+ crlSignerDelegator?: string;
73
+
74
+ /**
75
+ * This field SHALL contain the issuer certificate who signed the revocation information that is provided
76
+ * in the distribution point entry, encoded in X.509v3 PEM format.
77
+ * Additional constraints related to the value of this field are specified in
78
+ * @see {@link MatterSpecification.v141.Core} §11.23.9.6.
79
+ */
80
+ crlSignerCertificate: string;
81
+
82
+ /**
83
+ * This field SHALL uniquely identify the PAA or PAI for which this revocation distribution point is
84
+ * provided, via the certificate’s SubjectKeyIdentifier mandatory extension. This field is provided to
85
+ * assist queries without requiring additional certificate parsing. This field SHALL provide the subject
86
+ * key identifier as an even number of uppercase hexadecimal characters ([0-9A-F]), with no whitespace
87
+ * and no non-hexadecimal characters.
88
+ * 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
89
+ * would appear in openssl x509 output, for human consumption) would be recorded as
90
+ * A303136D54A84BE24C4887B341066DC270962F99.
91
+ * When processing revocation information during the device Device Attestation Procedure, clients
92
+ * SHALL only use entries whose IssuerSubjectKeyID matches a candidate certificate’s Authority Key
93
+ * Identifier extension.
94
+ */
95
+ issuerSubjectKeyID: string;
96
+
97
+ /**
98
+ * This field SHALL indicate the URL where to obtain the information in the format indicated by the
99
+ * RevocationType field. The syntax of this field SHALL follow the syntax as specified in RFC 1738. The
100
+ * maximum length of this field is 256 ASCII characters. All URLs SHALL use either the http or https
101
+ * scheme.
102
+ * Additional details of the content by revocation type are specified in
103
+ * @see {@link MatterSpecification.v141.Core} §11.23.9.8
104
+ */
105
+ dataUrl: string;
106
+
107
+ /**
108
+ * This field, if present, SHALL indicate the total size in bytes of the file found at the DataUrl. This field
109
+ * SHALL be omitted if the RevocationType is 1, which refers to a type having built-in signatures.
110
+ */
111
+ dataFileSize?: number | bigint; // TODO
112
+
113
+ /**
114
+ * This field, if present, SHALL contain the digest of the entire contents of the associated file downloaded
115
+ * from the DataUrl field, encoded in base64 string representation. The digest SHALL have been
116
+ * computed using the algorithm specified in DataDigestType. This field SHALL be present if and only if
117
+ * the DataFileSize field is present.
118
+ */
119
+ dataDigest?: string;
120
+
121
+ /**
122
+ * This field, if present, SHALL indicate the type of digest used in the DataDigest field. This field SHALL
123
+ * be provided if and only if the DataDigest field is present.
124
+ * The value of this field SHALL be a supported numerical identifier value from the IANA Named
125
+ * Information Hash Algorithm Registry [https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg]
126
+ * established as part of RFC 6920. For example, a value of 1 would match the sha-
127
+ * 256 identifier, which maps to the SHA-256 digest algorithm per Section 6.2 of FIPS 180-4.
128
+ * The digest algorithm chosen SHALL have a minimum digest length of 256 bits, such as sha-256 (ID 1
129
+ * in the registry).
130
+ * To increase interoperability, DataDigestType, if present, SHALL be within the list of [1, 7, 8, 10, 11,
131
+ * 12].
132
+ */
133
+ dataDigestType?: number; // TODO: Define enum for digest types
134
+
135
+ /**
136
+ * This field SHALL indicate the type of revocation information provided in the DataUrl field. The
137
+ * following values are defined:
138
+ * • 0: CRL (Certificate Revocation List) in PEM format.
139
+ * • 1: Signed JSON object containing a list of revoked certificates.
140
+ * • 2: Signed JSON object containing a list of revoked certificates, with additional metadata.
141
+ */
142
+ revocationType: RevocationTypeEnum;
143
+
144
+ /**
145
+ * The SchemaVersion field value history for this schema is provided below:
146
+ * * 0: Initial Release
147
+ */
148
+ schemaVersion: number;
149
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { VendorId } from "../datatype/VendorId.js";
8
+
9
+ export enum SoftwareVersionCertificationStatusEnum {
10
+ /**
11
+ * Used for development and test purposes
12
+ * (These will typically not be placed in DCL)
13
+ */
14
+ DevTest = 0,
15
+
16
+ /**
17
+ * Used for a SoftwareVersion when going into certification testing
18
+ * (These might or might not be placed in DCL, depending on CSA policy and procedures)
19
+ */
20
+ Provisional = 1,
21
+
22
+ /**
23
+ * Used for a SoftwareVersion which has been certified
24
+ */
25
+ Certified = 2,
26
+
27
+ /**
28
+ * Used for a SoftwareVersion which has been revoked
29
+ */
30
+ Revoked = 3,
31
+ }
32
+
33
+ /**
34
+ * DeviceSoftwareCompliance / Compliance test result Schema
35
+ * @see {@link MatterSpecification.v141.Core} § 11.23.8.
36
+ * DCL endpoint:
37
+ * * /dcl/compliance/device-software-compliance
38
+ * * /dcl/compliance/device-software-compliance/{cDCertificateId}
39
+ *
40
+ * * /dcl/compliance/compliance-info
41
+ * * /dcl/compliance/compliance-info/{vid}/{pid}/{softwareVersion}/{certificationType}
42
+ * * /dcl/compliance/certified-models
43
+ * * /dcl/compliance/certified-models/{vid}/{pid}/{softwareVersion}/{certificationType}
44
+ *
45
+ */
46
+ export interface DeviceSoftwareComplianceDclSchema {
47
+ /**
48
+ * This field SHALL identify the vendor of the product by its Vendor ID and SHALL match the VendorID
49
+ * field in the Basic Information Cluster of a device running the software referenced by this
50
+ * DeviceModel/DeviceSoftwareVersionModel record.
51
+ */
52
+ vid: VendorId; // Spec: VendorId
53
+
54
+ /**
55
+ * This field SHALL identify the Product ID of the product instance to which a certification declaration,
56
+ * and thus a DCL entry, applies. This field SHALL match the ProductID field in the Basic Information
57
+ * Cluster of a device running the software referenced by this DeviceModel/DeviceSoftwareVersionModel
58
+ * record.
59
+ */
60
+ pid: number; // Spec: ProductId
61
+
62
+ /**
63
+ * SoftwareVersion SHALL identify the software version number for the device model consistent with
64
+ * the value found in Section 11.21.2.4.3, “SoftwareVersion field”. The SoftwareVersionNumber value
65
+ * SHOULD NOT be displayed to an end-user. SoftwareVersion is not editable, but it would be possible
66
+ * to create a new device model for the same VendorID/ProductID for different versions. Both SoftwareVersion
67
+ * and SoftwareVersionString SHALL be included. This field SHALL match the SoftwareVersion
68
+ * field in the Basic Information Cluster of a device running the software certified by this
69
+ * DeviceModel record.
70
+ */
71
+ softwareVersion: number;
72
+
73
+ /**
74
+ * This field SHALL match the Software Version String field in the Basic Information Cluster of a
75
+ * device running the software referenced by this DeviceModel record, including format constraints
76
+ * on that field.
77
+ */
78
+ softwareVersionString: string;
79
+
80
+ /**
81
+ * CDVersionNumber SHALL identify the CD Version Number of the Certification that applies to this
82
+ * Software Image. The CDVersionNumber maps to version_number defined in Certification Elements TLV
83
+ * structure.
84
+ */
85
+ cdVersionNumber: number;
86
+
87
+ /**
88
+ * The FirmwareInformation field, if present, SHALL match the firmware_information field in attestation-elements
89
+ * field included in the Device Attestation response when this Software Image boots on
90
+ * the device. It is an OPTIONAL field that MAY be present only for devices that meet the requirements
91
+ * listed in Section 6.3.2, “Firmware Information”.
92
+ */
93
+ softwareVersionCertificationStatus?: SoftwareVersionCertificationStatusEnum;
94
+
95
+ /**
96
+ * This field SHALL have the CSA certification’s certificate ID for the Certification that applies to this
97
+ * record. The value of this field is used in the Certification Declaration's certificate_id field (see Certification
98
+ * Elements TLV structure) for products using the VendorID, ProductID and SoftwareVersion
99
+ * in this schema entry.
100
+ */
101
+ cdCertificateId: string;
102
+
103
+ /**
104
+ * The SchemaVersion field value history for this schema is provided below:
105
+ * * 0: Initial Release
106
+ */
107
+ schemaVersion: number;
108
+ }