@matter/general 0.14.1-alpha.0-20250607-a93593303 → 0.15.0-alpha.0-20250613-a55f991d4

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 (185) hide show
  1. package/dist/cjs/codec/DerCodec.d.ts +12 -17
  2. package/dist/cjs/codec/DerCodec.d.ts.map +1 -1
  3. package/dist/cjs/codec/DerCodec.js +90 -51
  4. package/dist/cjs/codec/DerCodec.js.map +1 -1
  5. package/dist/cjs/codec/DerTypes.js +1 -1
  6. package/dist/cjs/codec/DnsCodec.d.ts +5 -5
  7. package/dist/cjs/crypto/Crypto.d.ts +111 -62
  8. package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
  9. package/dist/cjs/crypto/Crypto.js +92 -31
  10. package/dist/cjs/crypto/Crypto.js.map +1 -1
  11. package/dist/cjs/crypto/CryptoError.d.ts +32 -0
  12. package/dist/cjs/crypto/CryptoError.d.ts.map +1 -0
  13. package/dist/cjs/crypto/CryptoError.js +44 -0
  14. package/dist/cjs/crypto/CryptoError.js.map +6 -0
  15. package/dist/cjs/crypto/Key.d.ts +2 -2
  16. package/dist/cjs/crypto/Key.d.ts.map +1 -1
  17. package/dist/cjs/crypto/Key.js +15 -16
  18. package/dist/cjs/crypto/Key.js.map +1 -1
  19. package/dist/cjs/crypto/Spake2p.js +5 -5
  20. package/dist/cjs/crypto/Spake2p.js.map +1 -1
  21. package/dist/cjs/crypto/StandardCrypto.d.ts +33 -0
  22. package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -0
  23. package/dist/cjs/crypto/StandardCrypto.js +208 -0
  24. package/dist/cjs/crypto/StandardCrypto.js.map +6 -0
  25. package/dist/cjs/crypto/aes/Aes.d.ts +21 -0
  26. package/dist/cjs/crypto/aes/Aes.d.ts.map +1 -0
  27. package/dist/cjs/crypto/aes/Aes.js +132 -0
  28. package/dist/cjs/crypto/aes/Aes.js.map +6 -0
  29. package/dist/cjs/crypto/aes/Ccm.d.ts +71 -0
  30. package/dist/cjs/crypto/aes/Ccm.d.ts.map +1 -0
  31. package/dist/cjs/crypto/aes/Ccm.js +194 -0
  32. package/dist/cjs/crypto/aes/Ccm.js.map +6 -0
  33. package/dist/cjs/crypto/aes/WordArray.d.ts +30 -0
  34. package/dist/cjs/crypto/aes/WordArray.d.ts.map +1 -0
  35. package/dist/cjs/crypto/aes/WordArray.js +91 -0
  36. package/dist/cjs/crypto/aes/WordArray.js.map +6 -0
  37. package/dist/cjs/crypto/index.d.ts +3 -0
  38. package/dist/cjs/crypto/index.d.ts.map +1 -1
  39. package/dist/cjs/crypto/index.js +3 -0
  40. package/dist/cjs/crypto/index.js.map +1 -1
  41. package/dist/cjs/crypto/nonentropic.d.ts +16 -0
  42. package/dist/cjs/crypto/nonentropic.d.ts.map +1 -0
  43. package/dist/cjs/crypto/nonentropic.js +70 -0
  44. package/dist/cjs/crypto/nonentropic.js.map +6 -0
  45. package/dist/cjs/environment/Environment.d.ts.map +1 -1
  46. package/dist/cjs/environment/Environment.js +1 -5
  47. package/dist/cjs/environment/Environment.js.map +1 -1
  48. package/dist/cjs/environment/RuntimeService.d.ts +2 -4
  49. package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
  50. package/dist/cjs/environment/RuntimeService.js +4 -4
  51. package/dist/cjs/environment/RuntimeService.js.map +1 -1
  52. package/dist/cjs/environment/VariableService.d.ts.map +1 -1
  53. package/dist/cjs/environment/VariableService.js +1 -0
  54. package/dist/cjs/environment/VariableService.js.map +1 -1
  55. package/dist/cjs/log/LogFormat.js +17 -11
  56. package/dist/cjs/log/LogFormat.js.map +1 -1
  57. package/dist/cjs/net/Network.d.ts +0 -1
  58. package/dist/cjs/net/Network.d.ts.map +1 -1
  59. package/dist/cjs/net/Network.js +0 -4
  60. package/dist/cjs/net/Network.js.map +1 -1
  61. package/dist/cjs/time/Time.d.ts.map +1 -1
  62. package/dist/cjs/time/Time.js +2 -2
  63. package/dist/cjs/time/Time.js.map +1 -1
  64. package/dist/cjs/util/Bytes.d.ts +6 -0
  65. package/dist/cjs/util/Bytes.d.ts.map +1 -1
  66. package/dist/cjs/util/Bytes.js +15 -1
  67. package/dist/cjs/util/Bytes.js.map +1 -1
  68. package/dist/cjs/util/DataWriter.d.ts +1 -1
  69. package/dist/cjs/util/DataWriter.js +2 -2
  70. package/dist/cjs/util/DataWriter.js.map +1 -1
  71. package/dist/cjs/util/DeepCopy.js +1 -1
  72. package/dist/cjs/util/DeepCopy.js.map +1 -1
  73. package/dist/cjs/util/GeneratedClass.d.ts +3 -3
  74. package/dist/cjs/util/GeneratedClass.d.ts.map +1 -1
  75. package/dist/cjs/util/GeneratedClass.js +99 -73
  76. package/dist/cjs/util/GeneratedClass.js.map +2 -2
  77. package/dist/cjs/util/Number.d.ts +0 -1
  78. package/dist/cjs/util/Number.d.ts.map +1 -1
  79. package/dist/cjs/util/Number.js +0 -4
  80. package/dist/cjs/util/Number.js.map +1 -1
  81. package/dist/esm/codec/DerCodec.d.ts +12 -17
  82. package/dist/esm/codec/DerCodec.d.ts.map +1 -1
  83. package/dist/esm/codec/DerCodec.js +90 -51
  84. package/dist/esm/codec/DerCodec.js.map +1 -1
  85. package/dist/esm/codec/DerTypes.js +2 -2
  86. package/dist/esm/codec/DnsCodec.d.ts +5 -5
  87. package/dist/esm/crypto/Crypto.d.ts +111 -62
  88. package/dist/esm/crypto/Crypto.d.ts.map +1 -1
  89. package/dist/esm/crypto/Crypto.js +93 -32
  90. package/dist/esm/crypto/Crypto.js.map +1 -1
  91. package/dist/esm/crypto/CryptoError.d.ts +32 -0
  92. package/dist/esm/crypto/CryptoError.d.ts.map +1 -0
  93. package/dist/esm/crypto/CryptoError.js +24 -0
  94. package/dist/esm/crypto/CryptoError.js.map +6 -0
  95. package/dist/esm/crypto/Key.d.ts +2 -2
  96. package/dist/esm/crypto/Key.d.ts.map +1 -1
  97. package/dist/esm/crypto/Key.js +15 -16
  98. package/dist/esm/crypto/Key.js.map +1 -1
  99. package/dist/esm/crypto/Spake2p.js +5 -5
  100. package/dist/esm/crypto/Spake2p.js.map +1 -1
  101. package/dist/esm/crypto/StandardCrypto.d.ts +33 -0
  102. package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -0
  103. package/dist/esm/crypto/StandardCrypto.js +188 -0
  104. package/dist/esm/crypto/StandardCrypto.js.map +6 -0
  105. package/dist/esm/crypto/aes/Aes.d.ts +21 -0
  106. package/dist/esm/crypto/aes/Aes.d.ts.map +1 -0
  107. package/dist/esm/crypto/aes/Aes.js +112 -0
  108. package/dist/esm/crypto/aes/Aes.js.map +6 -0
  109. package/dist/esm/crypto/aes/Ccm.d.ts +71 -0
  110. package/dist/esm/crypto/aes/Ccm.d.ts.map +1 -0
  111. package/dist/esm/crypto/aes/Ccm.js +174 -0
  112. package/dist/esm/crypto/aes/Ccm.js.map +6 -0
  113. package/dist/esm/crypto/aes/WordArray.d.ts +30 -0
  114. package/dist/esm/crypto/aes/WordArray.d.ts.map +1 -0
  115. package/dist/esm/crypto/aes/WordArray.js +71 -0
  116. package/dist/esm/crypto/aes/WordArray.js.map +6 -0
  117. package/dist/esm/crypto/index.d.ts +3 -0
  118. package/dist/esm/crypto/index.d.ts.map +1 -1
  119. package/dist/esm/crypto/index.js +3 -0
  120. package/dist/esm/crypto/index.js.map +1 -1
  121. package/dist/esm/crypto/nonentropic.d.ts +16 -0
  122. package/dist/esm/crypto/nonentropic.d.ts.map +1 -0
  123. package/dist/esm/crypto/nonentropic.js +50 -0
  124. package/dist/esm/crypto/nonentropic.js.map +6 -0
  125. package/dist/esm/environment/Environment.d.ts.map +1 -1
  126. package/dist/esm/environment/Environment.js +1 -5
  127. package/dist/esm/environment/Environment.js.map +1 -1
  128. package/dist/esm/environment/RuntimeService.d.ts +2 -4
  129. package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
  130. package/dist/esm/environment/RuntimeService.js +4 -4
  131. package/dist/esm/environment/RuntimeService.js.map +1 -1
  132. package/dist/esm/environment/VariableService.d.ts.map +1 -1
  133. package/dist/esm/environment/VariableService.js +1 -0
  134. package/dist/esm/environment/VariableService.js.map +1 -1
  135. package/dist/esm/log/LogFormat.js +17 -11
  136. package/dist/esm/log/LogFormat.js.map +1 -1
  137. package/dist/esm/net/Network.d.ts +0 -1
  138. package/dist/esm/net/Network.d.ts.map +1 -1
  139. package/dist/esm/net/Network.js +1 -5
  140. package/dist/esm/net/Network.js.map +1 -1
  141. package/dist/esm/time/Time.d.ts.map +1 -1
  142. package/dist/esm/time/Time.js +2 -2
  143. package/dist/esm/time/Time.js.map +1 -1
  144. package/dist/esm/util/Bytes.d.ts +6 -0
  145. package/dist/esm/util/Bytes.d.ts.map +1 -1
  146. package/dist/esm/util/Bytes.js +15 -1
  147. package/dist/esm/util/Bytes.js.map +1 -1
  148. package/dist/esm/util/DataWriter.d.ts +1 -1
  149. package/dist/esm/util/DataWriter.js +3 -3
  150. package/dist/esm/util/DataWriter.js.map +1 -1
  151. package/dist/esm/util/DeepCopy.js +1 -1
  152. package/dist/esm/util/DeepCopy.js.map +1 -1
  153. package/dist/esm/util/GeneratedClass.d.ts +3 -3
  154. package/dist/esm/util/GeneratedClass.d.ts.map +1 -1
  155. package/dist/esm/util/GeneratedClass.js +97 -71
  156. package/dist/esm/util/GeneratedClass.js.map +2 -2
  157. package/dist/esm/util/Number.d.ts +0 -1
  158. package/dist/esm/util/Number.d.ts.map +1 -1
  159. package/dist/esm/util/Number.js +0 -4
  160. package/dist/esm/util/Number.js.map +1 -1
  161. package/package.json +3 -3
  162. package/src/codec/DerCodec.ts +106 -52
  163. package/src/codec/DerTypes.ts +2 -2
  164. package/src/crypto/Crypto.ts +196 -76
  165. package/src/crypto/CryptoError.ts +32 -0
  166. package/src/crypto/Key.ts +17 -18
  167. package/src/crypto/Spake2p.ts +5 -5
  168. package/src/crypto/StandardCrypto.ts +252 -0
  169. package/src/crypto/aes/Aes.ts +210 -0
  170. package/src/crypto/aes/Ccm.ts +350 -0
  171. package/src/crypto/aes/README.md +4 -0
  172. package/src/crypto/aes/WordArray.ts +105 -0
  173. package/src/crypto/index.ts +3 -0
  174. package/src/crypto/nonentropic.ts +65 -0
  175. package/src/environment/Environment.ts +1 -6
  176. package/src/environment/RuntimeService.ts +5 -5
  177. package/src/environment/VariableService.ts +1 -0
  178. package/src/log/LogFormat.ts +19 -11
  179. package/src/net/Network.ts +1 -7
  180. package/src/time/Time.ts +4 -4
  181. package/src/util/Bytes.ts +19 -0
  182. package/src/util/DataWriter.ts +3 -3
  183. package/src/util/DeepCopy.ts +2 -2
  184. package/src/util/GeneratedClass.ts +161 -102
  185. package/src/util/Number.ts +0 -4
@@ -53,7 +53,7 @@ const DerObject = (objectId, content = {}) => ({
53
53
  ["_objectId" /* ObjectId */]: ObjectId(objectId),
54
54
  ...content
55
55
  });
56
- const BitByteArray = (data, padding = 0) => ({
56
+ const DerBitString = (data, padding = 0) => ({
57
57
  ["_tag" /* TagId */]: 3 /* BitString */,
58
58
  ["_bytes" /* Bytes */]: data,
59
59
  ["_padding" /* BitsPadding */]: padding
@@ -73,20 +73,32 @@ const DatatypeOverride = (type, value) => ({
73
73
  const RawBytes = (bytes) => ({
74
74
  ["_bytes" /* Bytes */]: bytes
75
75
  });
76
+ const DerBigUint = (number) => {
77
+ if (!ArrayBuffer.isView(number)) {
78
+ number = new Uint8Array(number);
79
+ }
80
+ if (number[0] & 128) {
81
+ number = Bytes.concat(new Uint8Array([0]), number);
82
+ }
83
+ return {
84
+ ["_tag" /* TagId */]: 2 /* Integer */,
85
+ ["_bytes" /* Bytes */]: number
86
+ };
87
+ };
76
88
  class DerCodec {
77
89
  static encode(value) {
78
90
  if (Array.isArray(value)) {
79
- return this.encodeArray(value);
91
+ return this.#encodeArray(value);
80
92
  } else if (value instanceof Uint8Array) {
81
- return this.encodeOctetString(value);
93
+ return this.#encodeOctetString(value);
82
94
  } else if (value instanceof Date) {
83
- return this.encodeDate(value);
95
+ return this.#encodeDate(value);
84
96
  } else if (typeof value === "string") {
85
- return this.encodeString(value);
97
+ return this.#encodeString(value);
86
98
  } else if (typeof value === "number" || typeof value === "bigint") {
87
- return this.encodeInteger(value);
99
+ return this.#encodeInteger(value);
88
100
  } else if (typeof value === "boolean") {
89
- return this.encodeBoolean(value);
101
+ return this.#encodeBoolean(value);
90
102
  } else if (value === void 0) {
91
103
  return new Uint8Array(0);
92
104
  } else if (isObject(value)) {
@@ -101,81 +113,110 @@ class DerCodec {
101
113
  if (bytes === void 0 || !ArrayBuffer.isView(bytes)) {
102
114
  throw new DerError("DER bytes is not a byte array");
103
115
  }
104
- return this.encodeAsn1(
116
+ return this.#encodeAsn1(
105
117
  tagId,
106
118
  bitsPadding === void 0 ? bytes : Bytes.concat(Uint8Array.of(bitsPadding), bytes)
107
119
  );
108
120
  } else if (value["_type" /* TypeOverride */] !== void 0 && value["_raw" /* RawData */] !== void 0) {
109
121
  if (value["_type" /* TypeOverride */] === 2 /* Integer */ && value["_raw" /* RawData */] instanceof Uint8Array) {
110
- return this.encodeInteger(value["_raw" /* RawData */]);
122
+ return this.#encodeInteger(value["_raw" /* RawData */]);
111
123
  } else if (value["_type" /* TypeOverride */] === 3 /* BitString */ && typeof value["_raw" /* RawData */] === "number") {
112
- return this.encodeBitString(value["_raw" /* RawData */]);
124
+ return this.#encodeBitString(value["_raw" /* RawData */]);
113
125
  } else if (value["_type" /* TypeOverride */] === 19 /* PrintableString */ && typeof value["_raw" /* RawData */] === "string") {
114
- return this.encodePrintableString(value["_raw" /* RawData */]);
126
+ return this.#encodePrintableString(value["_raw" /* RawData */]);
115
127
  } else if (value["_type" /* TypeOverride */] === 22 /* IA5String */ && typeof value["_raw" /* RawData */] === "string") {
116
- return this.encodeIA5String(value["_raw" /* RawData */]);
128
+ return this.#encodeIA5String(value["_raw" /* RawData */]);
117
129
  } else {
118
- throw new UnexpectedDataError(`Unsupported override type ${value["_type" /* TypeOverride */]}`);
130
+ throw new DerError(`Unsupported override type ${value["_type" /* TypeOverride */]}`);
119
131
  }
120
132
  } else if (value["_bytes" /* Bytes */] !== void 0 && value["_bytes" /* Bytes */] instanceof Uint8Array && Object.keys(value).length === 1) {
121
133
  return value["_bytes" /* Bytes */];
122
134
  } else if (value["_type" /* TypeOverride */] === void 0 && value["_bytes" /* Bytes */] === void 0) {
123
- return this.encodeObject(value);
135
+ return this.#encodeObject(value);
124
136
  } else {
125
- throw new UnexpectedDataError(`Unsupported object type ${typeof value}`);
137
+ throw new DerError(`Unsupported object type ${typeof value}`);
126
138
  }
127
139
  } else {
128
- throw new UnexpectedDataError(`Unsupported type ${typeof value}`);
140
+ throw new DerError(`Unsupported type ${typeof value}`);
141
+ }
142
+ }
143
+ static decode(data) {
144
+ return this.#decodeRec(new DataReader(data));
145
+ }
146
+ /**
147
+ * Extract a large integer value to a byte array with a specific number of bytes.
148
+ */
149
+ static decodeBigUint(value, byteLength) {
150
+ if (value === void 0) {
151
+ throw new DerError("Missing number in DER object");
152
+ }
153
+ if (value["_tag" /* TagId */] !== 2 /* Integer */) {
154
+ throw new DerError(`Expected integer but DER tag is ${DerType[value["_tag" /* TagId */]]}`);
129
155
  }
156
+ const bytes = value["_bytes" /* Bytes */];
157
+ if (!ArrayBuffer.isView(bytes)) {
158
+ throw new DerError("Incorrect DER object type");
159
+ }
160
+ if (bytes.length === byteLength) {
161
+ return bytes;
162
+ }
163
+ if (bytes.length === byteLength + 1 && !bytes[0]) {
164
+ return bytes.slice(1);
165
+ }
166
+ if (bytes.length < byteLength) {
167
+ return Bytes.concat(new Uint8Array(byteLength - bytes.length), bytes);
168
+ }
169
+ throw new DerError("Encoded integer contains too many bytes");
130
170
  }
131
- static encodeDate(date) {
171
+ static #encodeDate(date) {
132
172
  if (date.getFullYear() > 2049) {
133
- return this.encodeAsn1(
173
+ return this.#encodeAsn1(
134
174
  24 /* GeneralizedTime */,
135
175
  Bytes.fromString(
136
176
  date.toISOString().replace(/[-:.T]/g, "").slice(0, 14) + "Z"
137
177
  )
138
178
  );
139
- } else
140
- return this.encodeAsn1(
179
+ } else {
180
+ return this.#encodeAsn1(
141
181
  23 /* UtcDate */,
142
182
  Bytes.fromString(
143
183
  date.toISOString().replace(/[-:.T]/g, "").slice(2, 14) + "Z"
144
184
  )
145
185
  );
186
+ }
146
187
  }
147
- static encodeBoolean(bool) {
148
- return this.encodeAsn1(1 /* Boolean */, Uint8Array.of(bool ? 255 : 0));
188
+ static #encodeBoolean(bool) {
189
+ return this.#encodeAsn1(1 /* Boolean */, Uint8Array.of(bool ? 255 : 0));
149
190
  }
150
- static encodeArray(array) {
151
- return this.encodeAsn1(17 /* Set */ | CONSTRUCTED, Bytes.concat(...array.map((element) => this.encode(element))));
191
+ static #encodeArray(array) {
192
+ return this.#encodeAsn1(17 /* Set */ | CONSTRUCTED, Bytes.concat(...array.map((element) => this.encode(element))));
152
193
  }
153
- static encodeOctetString(value) {
154
- return this.encodeAsn1(4 /* OctetString */, value);
194
+ static #encodeOctetString(value) {
195
+ return this.#encodeAsn1(4 /* OctetString */, value);
155
196
  }
156
- static encodeObject(object) {
197
+ static #encodeObject(object) {
157
198
  const attributes = new Array();
158
199
  for (const key in object) {
159
200
  attributes.push(this.encode(object[key]));
160
201
  }
161
- return this.encodeAsn1(16 /* Sequence */ | CONSTRUCTED, Bytes.concat(...attributes));
202
+ return this.#encodeAsn1(16 /* Sequence */ | CONSTRUCTED, Bytes.concat(...attributes));
162
203
  }
163
- static encodeString(value) {
164
- return this.encodeAsn1(12 /* UTF8String */, Bytes.fromString(value));
204
+ static #encodeString(value) {
205
+ return this.#encodeAsn1(12 /* UTF8String */, Bytes.fromString(value));
165
206
  }
166
- static encodePrintableString(value) {
207
+ static #encodePrintableString(value) {
167
208
  if (!/^[a-z0-9 '()+,\-./:=?]*$/i.test(value)) {
168
- throw new UnexpectedDataError(`String ${value} is not a printable string.`);
209
+ throw new DerError(`String ${value} is not a printable string.`);
169
210
  }
170
- return this.encodeAsn1(19 /* PrintableString */, Bytes.fromString(value));
211
+ return this.#encodeAsn1(19 /* PrintableString */, Bytes.fromString(value));
171
212
  }
172
- static encodeIA5String(value) {
213
+ static #encodeIA5String(value) {
173
214
  if (!/^[\x00-\x7F]*$/.test(value)) {
174
- throw new UnexpectedDataError(`String ${value} is not an IA5 string.`);
215
+ throw new DerError(`String ${value} is not an IA5 string.`);
175
216
  }
176
- return this.encodeAsn1(22 /* IA5String */, Bytes.fromString(value));
217
+ return this.#encodeAsn1(22 /* IA5String */, Bytes.fromString(value));
177
218
  }
178
- static encodeInteger(value) {
219
+ static #encodeInteger(value) {
179
220
  const isByteArray = ArrayBuffer.isView(value);
180
221
  let valueBytes;
181
222
  if (isByteArray) {
@@ -192,15 +233,15 @@ class DerCodec {
192
233
  start++;
193
234
  if (start === byteArray.length - 1) break;
194
235
  }
195
- return this.encodeAsn1(2 /* Integer */, byteArray.slice(start));
236
+ return this.#encodeAsn1(2 /* Integer */, byteArray.slice(start));
196
237
  }
197
- static encodeBitString(value) {
238
+ static #encodeBitString(value) {
198
239
  const reversedBits = value.toString(2).padStart(8, "0");
199
240
  const unusedBits = reversedBits.indexOf("1");
200
241
  const bitByteArray = Uint8Array.of(parseInt(reversedBits.split("").reverse().join(""), 2));
201
- return this.encode(BitByteArray(bitByteArray, unusedBits === -1 ? 8 : unusedBits));
242
+ return this.encode(DerBitString(bitByteArray, unusedBits === -1 ? 8 : unusedBits));
202
243
  }
203
- static encodeLengthBytes(value) {
244
+ static #encodeLengthBytes(value) {
204
245
  const byteArray = new Uint8Array(5);
205
246
  const dataView = Bytes.dataViewOf(byteArray);
206
247
  dataView.setUint32(1, value);
@@ -217,25 +258,22 @@ class DerCodec {
217
258
  }
218
259
  return byteArray.slice(start);
219
260
  }
220
- static encodeAsn1(tag, data) {
221
- return Bytes.concat(Uint8Array.of(tag), this.encodeLengthBytes(data.length), data);
222
- }
223
- static decode(data) {
224
- return this.decodeRec(new DataReader(data));
261
+ static #encodeAsn1(tag, data) {
262
+ return Bytes.concat(Uint8Array.of(tag), this.#encodeLengthBytes(data.length), data);
225
263
  }
226
- static decodeRec(reader) {
227
- const { tag, bytes } = this.decodeAsn1(reader);
264
+ static #decodeRec(reader) {
265
+ const { tag, bytes } = this.#decodeAsn1(reader);
228
266
  if (tag === 3 /* BitString */)
229
267
  return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes.slice(1), ["_padding" /* BitsPadding */]: bytes[0] };
230
268
  if ((tag & CONSTRUCTED) === 0) return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes };
231
269
  const elementsReader = new DataReader(bytes);
232
270
  const elements = [];
233
271
  while (elementsReader.remainingBytesCount > 0) {
234
- elements.push(this.decodeRec(elementsReader));
272
+ elements.push(this.#decodeRec(elementsReader));
235
273
  }
236
274
  return { ["_tag" /* TagId */]: tag, ["_bytes" /* Bytes */]: bytes, ["_elements" /* Elements */]: elements };
237
275
  }
238
- static decodeAsn1(reader) {
276
+ static #decodeAsn1(reader) {
239
277
  const tag = reader.readUInt8();
240
278
  let length = reader.readUInt8();
241
279
  if ((length & 128) !== 0) {
@@ -251,10 +289,11 @@ class DerCodec {
251
289
  }
252
290
  }
253
291
  export {
254
- BitByteArray,
255
292
  ContextTagged,
256
293
  ContextTaggedBytes,
257
294
  DatatypeOverride,
295
+ DerBigUint,
296
+ DerBitString,
258
297
  DerCodec,
259
298
  DerError,
260
299
  DerKey,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/codec/DerCodec.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["DerKey", "DerType", "DerClass"]
6
6
  }
@@ -4,10 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import {
7
- BitByteArray,
8
7
  ContextTagged,
9
8
  ContextTaggedBytes,
10
9
  DatatypeOverride,
10
+ DerBitString,
11
11
  DerCodec,
12
12
  DerError,
13
13
  DerObject,
@@ -21,7 +21,7 @@ var X962;
21
21
  algorithm: ObjectId("2A8648CE3D0201"),
22
22
  curve: ObjectId("2A8648CE3D030107")
23
23
  },
24
- bytes: BitByteArray(key)
24
+ bytes: DerBitString(key)
25
25
  });
26
26
  X9622.EcdsaWithSHA256 = DerObject("2A8648CE3D040302");
27
27
  })(X962 || (X962 = {}));
@@ -80,10 +80,10 @@ export declare class DnsCodec {
80
80
  static encode({ messageType, transactionId, queries, answers, authorities, additionalRecords, }: Partial<DnsMessagePartiallyPreEncoded>): Uint8Array;
81
81
  static encodeRecord(record: DnsRecord<any>): Uint8Array;
82
82
  private static encodeRecordValue;
83
- static encodeARecord(ip: string): Uint8Array<ArrayBufferLike>;
84
- static encodeAaaaRecord(ip: string): Uint8Array<ArrayBufferLike>;
85
- static encodeTxtRecord(entries: string[]): Uint8Array<ArrayBufferLike>;
86
- static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue): Uint8Array<ArrayBufferLike>;
87
- static encodeQName(qname: string): Uint8Array<ArrayBufferLike>;
83
+ static encodeARecord(ip: string): Uint8Array<ArrayBuffer>;
84
+ static encodeAaaaRecord(ip: string): Uint8Array<ArrayBuffer>;
85
+ static encodeTxtRecord(entries: string[]): Uint8Array<ArrayBuffer>;
86
+ static encodeSrvRecord({ priority, weight, port, target }: SrvRecordValue): Uint8Array<ArrayBuffer>;
87
+ static encodeQName(qname: string): Uint8Array<ArrayBuffer>;
88
88
  }
89
89
  //# sourceMappingURL=DnsCodec.d.ts.map
@@ -6,8 +6,7 @@
6
6
  import { MaybePromise } from "#util/Promises.js";
7
7
  import * as mod from "@noble/curves/abstract/modular";
8
8
  import * as utils from "@noble/curves/abstract/utils";
9
- import { MatterError } from "../MatterError.js";
10
- import { PrivateKey } from "./Key.js";
9
+ import { PrivateKey, PublicKey } from "./Key.js";
11
10
  export declare const ec: {
12
11
  mod(a: bigint, b: bigint): bigint;
13
12
  pow(num: bigint, power: bigint, modulo: bigint): bigint;
@@ -21,11 +20,14 @@ export declare const ec: {
21
20
  FpDiv<T>(Fp: mod.IField<T>, lhs: T, rhs: T | bigint): T;
22
21
  FpLegendre<T>(Fp: mod.IField<T>, n: T): -1 | 0 | 1;
23
22
  FpIsSquare<T>(Fp: mod.IField<T>, n: T): boolean;
24
- nLength(n: bigint, nBitLength?: number): {
25
- nBitLength: number;
26
- nByteLength: number;
27
- };
28
- Field(ORDER: bigint, bitLen?: number, isLE?: boolean, redef?: Partial<mod.IField<bigint>>): Readonly<mod.IField<bigint> & Required<Pick<mod.IField<bigint>, "isOdd">>>;
23
+ nLength(n: bigint, nBitLength?: number): mod.NLength;
24
+ Field(ORDER: bigint, bitLenOrOpts?: number | Partial<{
25
+ sqrt: (n: bigint) => bigint;
26
+ isLE: boolean;
27
+ BITS: number;
28
+ }>, isLE?: boolean, opts?: {
29
+ sqrt?: (n: bigint) => bigint;
30
+ }): Readonly<mod.IField<bigint> & Required<Pick<mod.IField<bigint>, "isOdd">>>;
29
31
  FpSqrtOdd<T>(Fp: mod.IField<T>, elm: T): T;
30
32
  FpSqrtEven<T>(Fp: mod.IField<T>, elm: T): T;
31
33
  hashToPrivateScalar(hash: string | Uint8Array, groupOrder: bigint, isLE?: boolean): bigint;
@@ -33,22 +35,16 @@ export declare const ec: {
33
35
  getMinHashLength(fieldOrder: bigint): number;
34
36
  mapHashToField(key: Uint8Array, fieldOrder: bigint, isLE?: boolean): Uint8Array;
35
37
  isNegativeLE: (num: bigint, modulo: bigint) => boolean;
36
- isBytes(a: unknown): a is Uint8Array;
37
- abytes(item: unknown): void;
38
38
  abool(title: string, value: boolean): void;
39
39
  numberToHexUnpadded(num: number | bigint): string;
40
40
  hexToNumber(hex: string): bigint;
41
- bytesToHex(bytes: Uint8Array): string;
42
- hexToBytes(hex: string): Uint8Array;
43
41
  bytesToNumberBE(bytes: Uint8Array): bigint;
44
42
  bytesToNumberLE(bytes: Uint8Array): bigint;
45
43
  numberToBytesBE(n: number | bigint, len: number): Uint8Array;
46
44
  numberToBytesLE(n: number | bigint, len: number): Uint8Array;
47
45
  numberToVarBytesBE(n: number | bigint): Uint8Array;
48
46
  ensureBytes(title: string, hex: utils.Hex, expectedLength?: number): Uint8Array;
49
- concatBytes(...arrays: Uint8Array[]): Uint8Array;
50
47
  equalBytes(a: Uint8Array, b: Uint8Array): boolean;
51
- utf8ToBytes(str: string): Uint8Array;
52
48
  inRange(n: bigint, min: bigint, max: bigint): boolean;
53
49
  aInRange(title: string, n: bigint, min: bigint, max: bigint): void;
54
50
  bitLen(n: bigint): number;
@@ -56,7 +52,18 @@ export declare const ec: {
56
52
  bitSet(n: bigint, pos: number, value: boolean): bigint;
57
53
  createHmacDrbg<T>(hashLen: number, qByteLen: number, hmacFn: (key: Uint8Array, ...messages: Uint8Array[]) => Uint8Array): (seed: Uint8Array, predicate: (v: Uint8Array) => T | undefined) => T;
58
54
  validateObject<T extends Record<string, any>>(object: T, validators: { [K in keyof T]?: "string" | "bigint" | "boolean" | "function" | "hash" | "stringOrUint8Array" | "isSafeInteger" | "array" | "field" | undefined; }, optValidators?: { [K in keyof T]?: "string" | "bigint" | "boolean" | "function" | "hash" | "stringOrUint8Array" | "isSafeInteger" | "array" | "field" | undefined; }): T;
55
+ isHash(val: utils.CHash): boolean;
56
+ _validateObject(object: Record<string, any>, fields: Record<string, string>, optFields?: Record<string, string>): void;
59
57
  memoized<T extends object, R, O extends any[]>(fn: (arg: T, ...args: O) => R): (arg: T, ...args: O) => R;
58
+ abytes: typeof utils.abytes;
59
+ anumber: typeof utils.anumber;
60
+ bytesToHex: typeof utils.bytesToHex;
61
+ bytesToUtf8: typeof utils.bytesToUtf8;
62
+ concatBytes: typeof utils.concatBytes;
63
+ hexToBytes: typeof utils.hexToBytes;
64
+ isBytes: typeof utils.isBytes;
65
+ randomBytes: typeof utils.randomBytes;
66
+ utf8ToBytes: typeof utils.utf8ToBytes;
60
67
  bitMask: (n: number) => bigint;
61
68
  notImplemented: () => never;
62
69
  p256: import("@noble/curves/_shortw_utils").CurveFnWithCreate;
@@ -69,54 +76,96 @@ export declare const CRYPTO_EC_KEY_BYTES = 32;
69
76
  export declare const CRYPTO_AUTH_TAG_LENGTH = 16;
70
77
  export declare const CRYPTO_SYMMETRIC_KEY_LENGTH = 16;
71
78
  export type CryptoDsaEncoding = "ieee-p1363" | "der";
72
- export declare class CryptoVerifyError extends MatterError {
73
- }
74
- export declare class CryptoDecryptError extends MatterError {
75
- }
76
- export declare abstract class Crypto {
77
- static get: () => Crypto;
78
- abstract encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
79
- static readonly encrypt: (key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array) => Uint8Array;
80
- abstract decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
81
- static readonly decrypt: (key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array) => Uint8Array;
82
- abstract getRandomData(length: number): Uint8Array;
83
- static readonly getRandomData: (length: number) => Uint8Array;
84
- static readonly getRandom: () => Uint8Array;
85
- static readonly getRandomUInt16: () => number;
86
- static readonly getRandomUInt32: () => number;
87
- static readonly getRandomBigUInt64: () => bigint;
88
- static readonly getRandomBigInt: (size: number, maxValue?: bigint) => bigint;
89
- abstract ecdhGeneratePublicKey(): MaybePromise<{
90
- publicKey: Uint8Array;
91
- ecdh: any;
92
- }>;
93
- static readonly ecdhGeneratePublicKey: () => MaybePromise<{
94
- publicKey: Uint8Array;
95
- ecdh: any;
96
- }>;
97
- abstract ecdhGeneratePublicKeyAndSecret(peerPublicKey: Uint8Array): MaybePromise<{
98
- publicKey: Uint8Array;
99
- sharedSecret: Uint8Array;
100
- }>;
101
- static readonly ecdhGeneratePublicKeyAndSecret: (peerPublicKey: Uint8Array) => MaybePromise<{
102
- publicKey: Uint8Array;
103
- sharedSecret: Uint8Array;
104
- }>;
105
- abstract ecdhGenerateSecret(peerPublicKey: Uint8Array, ecdh: any): MaybePromise<Uint8Array>;
106
- static readonly ecdhGenerateSecret: (peerPublicKey: Uint8Array, ecdh: any) => MaybePromise<Uint8Array<ArrayBufferLike>>;
107
- abstract hash(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array>;
108
- static readonly hash: (data: Uint8Array | Uint8Array[]) => MaybePromise<Uint8Array<ArrayBufferLike>>;
109
- abstract pbkdf2(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): MaybePromise<Uint8Array>;
110
- static readonly pbkdf2: (secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number) => MaybePromise<Uint8Array<ArrayBufferLike>>;
111
- abstract hkdf(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): MaybePromise<Uint8Array>;
112
- static readonly hkdf: (secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number) => MaybePromise<Uint8Array<ArrayBufferLike>>;
113
- abstract hmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array>;
114
- static readonly hmac: (key: Uint8Array, data: Uint8Array) => MaybePromise<Uint8Array<ArrayBufferLike>>;
115
- abstract sign(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): MaybePromise<Uint8Array>;
116
- static readonly sign: (privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding) => MaybePromise<Uint8Array<ArrayBufferLike>>;
117
- abstract verify(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): MaybePromise<void>;
118
- static readonly verify: (publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding) => MaybePromise<void>;
119
- abstract createKeyPair(): MaybePromise<PrivateKey>;
120
- static readonly createKeyPair: () => MaybePromise<PrivateKey>;
79
+ /**
80
+ * These are the cryptographic primitives required to implement the Matter protocol.
81
+ *
82
+ * We provide a platform-independent implementation that uses Web Crypto via {@link crypto.subtle} and a JS-based
83
+ * AES-CCM implementation.
84
+ *
85
+ * If your platform does not fully implement Web Crypto, or offers a native implementation of AES-CCM, you can replace
86
+ * {@link Crypto.get} to expose a different implementation.
87
+ *
88
+ * WARNING: The standard implementation is unaudited. See relevant warnings in StandardCrypto.ts.
89
+ */
90
+ export interface Crypto {
91
+ /**
92
+ * The name used in log messages.
93
+ */
94
+ implementationName: string;
95
+ /**
96
+ * Encrypt using AES-CCM with constants limited to those required by Matter.
97
+ */
98
+ encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
99
+ /**
100
+ * Decrypt using AES-CCM with constants limited to those required by Matter.
101
+ */
102
+ decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array;
103
+ /**
104
+ * Obtain random bytes from the most cryptographically-appropriate source available.
105
+ */
106
+ getRandomData(length: number): Uint8Array;
107
+ /**
108
+ * Compute the SHA-256 hash of a buffer.
109
+ */
110
+ computeSha256(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array>;
111
+ /**
112
+ * Create a key from a secret using PBKDF2.
113
+ */
114
+ createPbkdf2Key(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): MaybePromise<Uint8Array>;
115
+ /**
116
+ * Create a key from a secret using HKDF.
117
+ */
118
+ createHkdfKey(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): MaybePromise<Uint8Array>;
119
+ /**
120
+ * Create an HMAC signature.
121
+ */
122
+ signHmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array>;
123
+ /**
124
+ * Create an ECDSA signature.
125
+ */
126
+ signEcdsa(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): MaybePromise<Uint8Array>;
127
+ /**
128
+ * Authenticate an ECDSA signature.
129
+ */
130
+ verifyEcdsa(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): MaybePromise<void>;
131
+ /**
132
+ * Create a general-purpose EC key.
133
+ */
134
+ createKeyPair(): MaybePromise<PrivateKey>;
135
+ /**
136
+ * Compute the shared secret for a Diffie-Hellman exchange.
137
+ */
138
+ generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Uint8Array>;
121
139
  }
140
+ /**
141
+ * Crypto support functions.
142
+ */
143
+ export declare const Crypto: {
144
+ /**
145
+ * The default crypto implementation.
146
+ */
147
+ readonly default: Crypto;
148
+ get provider(): undefined | (() => Crypto);
149
+ /**
150
+ * Set the default crypto provider.
151
+ */
152
+ set provider(provider: () => Crypto);
153
+ readonly implementationName: string;
154
+ encrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array<ArrayBufferLike>;
155
+ decrypt(key: Uint8Array, data: Uint8Array, nonce: Uint8Array, aad?: Uint8Array): Uint8Array<ArrayBufferLike>;
156
+ getRandomData(length: number): Uint8Array<ArrayBufferLike>;
157
+ getRandom(): Uint8Array<ArrayBufferLike>;
158
+ getRandomUInt16(): number;
159
+ getRandomUInt32(): number;
160
+ getRandomBigUInt64(): bigint;
161
+ getRandomBigInt(size: number, maxValue?: bigint): bigint;
162
+ computeSha256(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array<ArrayBufferLike>>;
163
+ createPbkdf2Key(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): MaybePromise<Uint8Array<ArrayBufferLike>>;
164
+ createHkdfKey(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): MaybePromise<Uint8Array<ArrayBufferLike>>;
165
+ signHmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array<ArrayBufferLike>>;
166
+ signEcdsa(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): MaybePromise<Uint8Array<ArrayBufferLike>>;
167
+ verifyEcdsa(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): MaybePromise<void>;
168
+ createKeyPair(): MaybePromise<PrivateKey>;
169
+ generateDhSecret(key: PrivateKey, peerKey: PublicKey): MaybePromise<Uint8Array<ArrayBufferLike>>;
170
+ };
122
171
  //# sourceMappingURL=Crypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AACtD,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAKtD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjD,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;YAwJyC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;mFA3ErD,GAAI;;;;gEAkDuE,GAAI,yBAAwB,GAAI;;;;;;;;;;;;;CA3H9G,CAAC;AAEF,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AACtD,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,KAAK,CAAC;AAIrD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,MAAM;IACnB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAE5F;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAE5F;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAE1C;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEzE;;OAEG;IACH,eAAe,CACX,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5B;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEjH;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAEtE;;OAEG;IACH,SAAS,CACL,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE,EAC/B,WAAW,CAAC,EAAE,iBAAiB,GAChC,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5B;;OAEG;IACH,WAAW,CACP,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,UAAU,EACrB,WAAW,CAAC,EAAE,iBAAiB,GAChC,YAAY,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,aAAa,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC;IAE1C;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;CACnF;AAMD;;GAEG;AACH,eAAO,MAAM,MAAM;IACf;;OAEG;;oBAmBa,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC;IAI1C;;OAEG;2BACoB,MAAM,MAAM;;iBAYtB,UAAU,QAAQ,UAAU,SAAS,UAAU,QAAQ,UAAU;iBAIjE,UAAU,QAAQ,UAAU,SAAS,UAAU,QAAQ,UAAU;0BAIxD,MAAM;;;;;0BAoBN,MAAM,aAAa,MAAM;wBAW3B,UAAU,GAAG,UAAU,EAAE;4BAIrB,UAAU,QAAQ,UAAU,aAAa,MAAM,aAAa,MAAM;0BAIpE,UAAU,QAAQ,UAAU,QAAQ,UAAU,WAAW,MAAM;kBAIvE,UAAU,QAAQ,UAAU;0BAIpB,UAAU,QAAQ,UAAU,GAAG,UAAU,EAAE,gBAAgB,iBAAiB;2BAI3E,UAAU,QAAQ,UAAU,aAAa,UAAU,gBAAgB,iBAAiB;;0BAQrF,UAAU,WAAW,SAAS;CAGvD,CAAC"}