@matterbridge/core 3.5.3 → 3.5.4-dev-20260211-c4f9359

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 (294) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.d.ts +0 -24
  3. package/dist/cli.js +1 -97
  4. package/dist/cliEmitter.d.ts +0 -36
  5. package/dist/cliEmitter.js +0 -37
  6. package/dist/cliHistory.d.ts +0 -42
  7. package/dist/cliHistory.js +0 -38
  8. package/dist/clusters/export.d.ts +0 -1
  9. package/dist/clusters/export.js +0 -2
  10. package/dist/deviceManager.d.ts +0 -108
  11. package/dist/deviceManager.js +1 -114
  12. package/dist/devices/airConditioner.d.ts +0 -75
  13. package/dist/devices/airConditioner.js +0 -57
  14. package/dist/devices/basicVideoPlayer.d.ts +0 -58
  15. package/dist/devices/basicVideoPlayer.js +1 -56
  16. package/dist/devices/batteryStorage.d.ts +0 -43
  17. package/dist/devices/batteryStorage.js +1 -48
  18. package/dist/devices/castingVideoPlayer.d.ts +0 -63
  19. package/dist/devices/castingVideoPlayer.js +2 -65
  20. package/dist/devices/cooktop.d.ts +0 -55
  21. package/dist/devices/cooktop.js +0 -56
  22. package/dist/devices/dishwasher.d.ts +0 -55
  23. package/dist/devices/dishwasher.js +0 -57
  24. package/dist/devices/evse.d.ts +0 -57
  25. package/dist/devices/evse.js +10 -74
  26. package/dist/devices/export.d.ts +0 -1
  27. package/dist/devices/export.js +0 -5
  28. package/dist/devices/extractorHood.d.ts +0 -41
  29. package/dist/devices/extractorHood.js +0 -43
  30. package/dist/devices/heatPump.d.ts +0 -43
  31. package/dist/devices/heatPump.js +2 -50
  32. package/dist/devices/laundryDryer.d.ts +0 -58
  33. package/dist/devices/laundryDryer.js +3 -62
  34. package/dist/devices/laundryWasher.d.ts +0 -64
  35. package/dist/devices/laundryWasher.js +4 -70
  36. package/dist/devices/microwaveOven.d.ts +1 -77
  37. package/dist/devices/microwaveOven.js +5 -88
  38. package/dist/devices/oven.d.ts +0 -82
  39. package/dist/devices/oven.js +0 -85
  40. package/dist/devices/refrigerator.d.ts +0 -100
  41. package/dist/devices/refrigerator.js +0 -102
  42. package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
  43. package/dist/devices/roboticVacuumCleaner.js +9 -100
  44. package/dist/devices/solarPower.d.ts +0 -36
  45. package/dist/devices/solarPower.js +0 -38
  46. package/dist/devices/speaker.d.ts +0 -79
  47. package/dist/devices/speaker.js +0 -84
  48. package/dist/devices/temperatureControl.d.ts +0 -21
  49. package/dist/devices/temperatureControl.js +3 -24
  50. package/dist/devices/waterHeater.d.ts +0 -74
  51. package/dist/devices/waterHeater.js +2 -82
  52. package/dist/dgram/export.d.ts +0 -1
  53. package/dist/dgram/export.js +0 -1
  54. package/dist/export.d.ts +0 -23
  55. package/dist/export.js +0 -28
  56. package/dist/frontend.d.ts +0 -187
  57. package/dist/frontend.js +38 -539
  58. package/dist/helpers.d.ts +0 -43
  59. package/dist/helpers.js +0 -86
  60. package/dist/jestutils/export.d.ts +0 -1
  61. package/dist/jestutils/export.js +0 -1
  62. package/dist/jestutils/jestHelpers.d.ts +0 -259
  63. package/dist/jestutils/jestHelpers.js +14 -395
  64. package/dist/matter/behaviors.d.ts +0 -1
  65. package/dist/matter/behaviors.js +0 -2
  66. package/dist/matter/clusters.d.ts +0 -1
  67. package/dist/matter/clusters.js +0 -2
  68. package/dist/matter/devices.d.ts +0 -1
  69. package/dist/matter/devices.js +0 -2
  70. package/dist/matter/endpoints.d.ts +0 -1
  71. package/dist/matter/endpoints.js +0 -2
  72. package/dist/matter/export.d.ts +0 -1
  73. package/dist/matter/export.js +0 -2
  74. package/dist/matter/types.d.ts +0 -1
  75. package/dist/matter/types.js +0 -2
  76. package/dist/matterNode.d.ts +0 -258
  77. package/dist/matterNode.js +8 -356
  78. package/dist/matterbridge.d.ts +0 -389
  79. package/dist/matterbridge.js +48 -878
  80. package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
  81. package/dist/matterbridgeAccessoryPlatform.js +0 -50
  82. package/dist/matterbridgeBehaviors.d.ts +0 -24
  83. package/dist/matterbridgeBehaviors.js +5 -65
  84. package/dist/matterbridgeDeviceTypes.d.ts +0 -649
  85. package/dist/matterbridgeDeviceTypes.js +6 -673
  86. package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
  87. package/dist/matterbridgeDynamicPlatform.js +0 -50
  88. package/dist/matterbridgeEndpoint.d.ts +0 -1369
  89. package/dist/matterbridgeEndpoint.js +56 -1514
  90. package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
  91. package/dist/matterbridgeEndpointHelpers.js +20 -483
  92. package/dist/matterbridgeEndpointTypes.d.ts +0 -70
  93. package/dist/matterbridgeEndpointTypes.js +0 -25
  94. package/dist/matterbridgePlatform.d.ts +0 -434
  95. package/dist/matterbridgePlatform.js +1 -473
  96. package/dist/mb_coap.d.ts +0 -23
  97. package/dist/mb_coap.js +3 -41
  98. package/dist/mb_health.d.ts +0 -67
  99. package/dist/mb_health.js +0 -70
  100. package/dist/mb_mdns.d.ts +0 -23
  101. package/dist/mb_mdns.js +36 -94
  102. package/dist/pluginManager.d.ts +0 -307
  103. package/dist/pluginManager.js +6 -346
  104. package/dist/spawn.d.ts +0 -32
  105. package/dist/spawn.js +1 -71
  106. package/dist/utils/export.d.ts +0 -1
  107. package/dist/utils/export.js +0 -1
  108. package/package.json +27 -6
  109. package/dist/cli.d.ts.map +0 -1
  110. package/dist/cli.js.map +0 -1
  111. package/dist/cliEmitter.d.ts.map +0 -1
  112. package/dist/cliEmitter.js.map +0 -1
  113. package/dist/cliHistory.d.ts.map +0 -1
  114. package/dist/cliHistory.js.map +0 -1
  115. package/dist/clusters/export.d.ts.map +0 -1
  116. package/dist/clusters/export.js.map +0 -1
  117. package/dist/crypto/attestationDecoder.d.ts +0 -180
  118. package/dist/crypto/attestationDecoder.d.ts.map +0 -1
  119. package/dist/crypto/attestationDecoder.js +0 -176
  120. package/dist/crypto/attestationDecoder.js.map +0 -1
  121. package/dist/crypto/declarationDecoder.d.ts +0 -72
  122. package/dist/crypto/declarationDecoder.d.ts.map +0 -1
  123. package/dist/crypto/declarationDecoder.js +0 -241
  124. package/dist/crypto/declarationDecoder.js.map +0 -1
  125. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts +0 -9
  126. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts.map +0 -1
  127. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js +0 -120
  128. package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js.map +0 -1
  129. package/dist/crypto/read-extensions.d.ts +0 -2
  130. package/dist/crypto/read-extensions.d.ts.map +0 -1
  131. package/dist/crypto/read-extensions.js +0 -81
  132. package/dist/crypto/read-extensions.js.map +0 -1
  133. package/dist/crypto/testData.d.ts +0 -31
  134. package/dist/crypto/testData.d.ts.map +0 -1
  135. package/dist/crypto/testData.js +0 -131
  136. package/dist/crypto/testData.js.map +0 -1
  137. package/dist/crypto/walk-der.d.ts +0 -2
  138. package/dist/crypto/walk-der.d.ts.map +0 -1
  139. package/dist/crypto/walk-der.js +0 -165
  140. package/dist/crypto/walk-der.js.map +0 -1
  141. package/dist/deviceManager.d.ts.map +0 -1
  142. package/dist/deviceManager.js.map +0 -1
  143. package/dist/devices/airConditioner.d.ts.map +0 -1
  144. package/dist/devices/airConditioner.js.map +0 -1
  145. package/dist/devices/basicVideoPlayer.d.ts.map +0 -1
  146. package/dist/devices/basicVideoPlayer.js.map +0 -1
  147. package/dist/devices/batteryStorage.d.ts.map +0 -1
  148. package/dist/devices/batteryStorage.js.map +0 -1
  149. package/dist/devices/castingVideoPlayer.d.ts.map +0 -1
  150. package/dist/devices/castingVideoPlayer.js.map +0 -1
  151. package/dist/devices/cooktop.d.ts.map +0 -1
  152. package/dist/devices/cooktop.js.map +0 -1
  153. package/dist/devices/dishwasher.d.ts.map +0 -1
  154. package/dist/devices/dishwasher.js.map +0 -1
  155. package/dist/devices/evse.d.ts.map +0 -1
  156. package/dist/devices/evse.js.map +0 -1
  157. package/dist/devices/export.d.ts.map +0 -1
  158. package/dist/devices/export.js.map +0 -1
  159. package/dist/devices/extractorHood.d.ts.map +0 -1
  160. package/dist/devices/extractorHood.js.map +0 -1
  161. package/dist/devices/heatPump.d.ts.map +0 -1
  162. package/dist/devices/heatPump.js.map +0 -1
  163. package/dist/devices/laundryDryer.d.ts.map +0 -1
  164. package/dist/devices/laundryDryer.js.map +0 -1
  165. package/dist/devices/laundryWasher.d.ts.map +0 -1
  166. package/dist/devices/laundryWasher.js.map +0 -1
  167. package/dist/devices/microwaveOven.d.ts.map +0 -1
  168. package/dist/devices/microwaveOven.js.map +0 -1
  169. package/dist/devices/oven.d.ts.map +0 -1
  170. package/dist/devices/oven.js.map +0 -1
  171. package/dist/devices/refrigerator.d.ts.map +0 -1
  172. package/dist/devices/refrigerator.js.map +0 -1
  173. package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
  174. package/dist/devices/roboticVacuumCleaner.js.map +0 -1
  175. package/dist/devices/solarPower.d.ts.map +0 -1
  176. package/dist/devices/solarPower.js.map +0 -1
  177. package/dist/devices/speaker.d.ts.map +0 -1
  178. package/dist/devices/speaker.js.map +0 -1
  179. package/dist/devices/temperatureControl.d.ts.map +0 -1
  180. package/dist/devices/temperatureControl.js.map +0 -1
  181. package/dist/devices/waterHeater.d.ts.map +0 -1
  182. package/dist/devices/waterHeater.js.map +0 -1
  183. package/dist/dgram/export.d.ts.map +0 -1
  184. package/dist/dgram/export.js.map +0 -1
  185. package/dist/export.d.ts.map +0 -1
  186. package/dist/export.js.map +0 -1
  187. package/dist/frontend.d.ts.map +0 -1
  188. package/dist/frontend.js.map +0 -1
  189. package/dist/helpers.d.ts.map +0 -1
  190. package/dist/helpers.js.map +0 -1
  191. package/dist/jestutils/export.d.ts.map +0 -1
  192. package/dist/jestutils/export.js.map +0 -1
  193. package/dist/jestutils/jestHelpers.d.ts.map +0 -1
  194. package/dist/jestutils/jestHelpers.js.map +0 -1
  195. package/dist/matter/behaviors.d.ts.map +0 -1
  196. package/dist/matter/behaviors.js.map +0 -1
  197. package/dist/matter/clusters.d.ts.map +0 -1
  198. package/dist/matter/clusters.js.map +0 -1
  199. package/dist/matter/devices.d.ts.map +0 -1
  200. package/dist/matter/devices.js.map +0 -1
  201. package/dist/matter/endpoints.d.ts.map +0 -1
  202. package/dist/matter/endpoints.js.map +0 -1
  203. package/dist/matter/export.d.ts.map +0 -1
  204. package/dist/matter/export.js.map +0 -1
  205. package/dist/matter/types.d.ts.map +0 -1
  206. package/dist/matter/types.js.map +0 -1
  207. package/dist/matterNode.d.ts.map +0 -1
  208. package/dist/matterNode.js.map +0 -1
  209. package/dist/matterbridge.d.ts.map +0 -1
  210. package/dist/matterbridge.js.map +0 -1
  211. package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
  212. package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
  213. package/dist/matterbridgeBehaviors.d.ts.map +0 -1
  214. package/dist/matterbridgeBehaviors.js.map +0 -1
  215. package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
  216. package/dist/matterbridgeDeviceTypes.js.map +0 -1
  217. package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
  218. package/dist/matterbridgeDynamicPlatform.js.map +0 -1
  219. package/dist/matterbridgeEndpoint.d.ts.map +0 -1
  220. package/dist/matterbridgeEndpoint.js.map +0 -1
  221. package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
  222. package/dist/matterbridgeEndpointHelpers.js.map +0 -1
  223. package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
  224. package/dist/matterbridgeEndpointTypes.js.map +0 -1
  225. package/dist/matterbridgePlatform.d.ts.map +0 -1
  226. package/dist/matterbridgePlatform.js.map +0 -1
  227. package/dist/mb_coap.d.ts.map +0 -1
  228. package/dist/mb_coap.js.map +0 -1
  229. package/dist/mb_health.d.ts.map +0 -1
  230. package/dist/mb_health.js.map +0 -1
  231. package/dist/mb_mdns.d.ts.map +0 -1
  232. package/dist/mb_mdns.js.map +0 -1
  233. package/dist/pluginManager.d.ts.map +0 -1
  234. package/dist/pluginManager.js.map +0 -1
  235. package/dist/spawn.d.ts.map +0 -1
  236. package/dist/spawn.js.map +0 -1
  237. package/dist/utils/export.d.ts.map +0 -1
  238. package/dist/utils/export.js.map +0 -1
  239. package/dist/workers/brand.d.ts +0 -25
  240. package/dist/workers/brand.d.ts.map +0 -1
  241. package/dist/workers/brand.extend.d.ts +0 -10
  242. package/dist/workers/brand.extend.d.ts.map +0 -1
  243. package/dist/workers/brand.extend.js +0 -15
  244. package/dist/workers/brand.extend.js.map +0 -1
  245. package/dist/workers/brand.invalid.d.ts +0 -9
  246. package/dist/workers/brand.invalid.d.ts.map +0 -1
  247. package/dist/workers/brand.invalid.js +0 -19
  248. package/dist/workers/brand.invalid.js.map +0 -1
  249. package/dist/workers/brand.js +0 -67
  250. package/dist/workers/brand.js.map +0 -1
  251. package/dist/workers/clusterTypes.d.ts +0 -47
  252. package/dist/workers/clusterTypes.d.ts.map +0 -1
  253. package/dist/workers/clusterTypes.js +0 -57
  254. package/dist/workers/clusterTypes.js.map +0 -1
  255. package/dist/workers/frontendWorker.d.ts +0 -2
  256. package/dist/workers/frontendWorker.d.ts.map +0 -1
  257. package/dist/workers/frontendWorker.js +0 -90
  258. package/dist/workers/frontendWorker.js.map +0 -1
  259. package/dist/workers/helloWorld.d.ts +0 -2
  260. package/dist/workers/helloWorld.d.ts.map +0 -1
  261. package/dist/workers/helloWorld.js +0 -135
  262. package/dist/workers/helloWorld.js.map +0 -1
  263. package/dist/workers/matterWorker.d.ts +0 -2
  264. package/dist/workers/matterWorker.d.ts.map +0 -1
  265. package/dist/workers/matterWorker.js +0 -104
  266. package/dist/workers/matterWorker.js.map +0 -1
  267. package/dist/workers/matterbridgeWorker.d.ts +0 -2
  268. package/dist/workers/matterbridgeWorker.d.ts.map +0 -1
  269. package/dist/workers/matterbridgeWorker.js +0 -75
  270. package/dist/workers/matterbridgeWorker.js.map +0 -1
  271. package/dist/workers/messageLab.d.ts +0 -134
  272. package/dist/workers/messageLab.d.ts.map +0 -1
  273. package/dist/workers/messageLab.js +0 -129
  274. package/dist/workers/messageLab.js.map +0 -1
  275. package/dist/workers/testWorker.d.ts +0 -2
  276. package/dist/workers/testWorker.d.ts.map +0 -1
  277. package/dist/workers/testWorker.js +0 -45
  278. package/dist/workers/testWorker.js.map +0 -1
  279. package/dist/workers/usage.d.ts +0 -19
  280. package/dist/workers/usage.d.ts.map +0 -1
  281. package/dist/workers/usage.js +0 -140
  282. package/dist/workers/usage.js.map +0 -1
  283. package/dist/workers/workerManager.d.ts +0 -115
  284. package/dist/workers/workerManager.d.ts.map +0 -1
  285. package/dist/workers/workerManager.js +0 -464
  286. package/dist/workers/workerManager.js.map +0 -1
  287. package/dist/workers/workerServer.d.ts +0 -126
  288. package/dist/workers/workerServer.d.ts.map +0 -1
  289. package/dist/workers/workerServer.js +0 -340
  290. package/dist/workers/workerServer.js.map +0 -1
  291. package/dist/workers/workerTypes.d.ts +0 -23
  292. package/dist/workers/workerTypes.d.ts.map +0 -1
  293. package/dist/workers/workerTypes.js +0 -3
  294. package/dist/workers/workerTypes.js.map +0 -1
package/dist/spawn.d.ts CHANGED
@@ -1,33 +1 @@
1
- /**
2
- * @description This file contains the spawn functions.
3
- * @file spawn.ts
4
- * @author Luca Liguori
5
- * @created 2025-02-16
6
- * @version 1.2.0
7
- * @license Apache-2.0
8
- *
9
- * Copyright 2025, 2026, 2027 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
22
- */
23
- /**
24
- * Spawns a child process with the given command and arguments.
25
- *
26
- * @param {string} command - The command to execute.
27
- * @param {string[]} args - The arguments to pass to the command (default: []).
28
- * @param {'install' | 'uninstall'} packageCommand - The optional package command being executed (e.g., 'install', 'uninstall').
29
- * @param {string} [packageName] - The optional name of the package being installed.
30
- * @returns {Promise<boolean>} A promise that resolves to true if the command executed successfully, false otherwise.
31
- */
32
1
  export declare function spawnCommand(command: string, args: string[], packageCommand?: 'install' | 'uninstall', packageName?: string): Promise<boolean>;
33
- //# sourceMappingURL=spawn.d.ts.map
package/dist/spawn.js CHANGED
@@ -1,69 +1,28 @@
1
- /**
2
- * @description This file contains the spawn functions.
3
- * @file spawn.ts
4
- * @author Luca Liguori
5
- * @created 2025-02-16
6
- * @version 1.2.0
7
- * @license Apache-2.0
8
- *
9
- * Copyright 2025, 2026, 2027 Luca Liguori.
10
- *
11
- * Licensed under the Apache License, Version 2.0 (the "License");
12
- * you may not use this file except in compliance with the License.
13
- * You may obtain a copy of the License at
14
- *
15
- * http://www.apache.org/licenses/LICENSE-2.0
16
- *
17
- * Unless required by applicable law or agreed to in writing, software
18
- * distributed under the License is distributed on an "AS IS" BASIS,
19
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
- * See the License for the specific language governing permissions and
21
- * limitations under the License.
22
- */
23
1
  import { AnsiLogger } from 'node-ansi-logger';
24
2
  import { hasParameter } from '@matterbridge/utils';
25
3
  import { BroadcastServer } from '@matterbridge/thread';
26
- /**
27
- * Spawns a child process with the given command and arguments.
28
- *
29
- * @param {string} command - The command to execute.
30
- * @param {string[]} args - The arguments to pass to the command (default: []).
31
- * @param {'install' | 'uninstall'} packageCommand - The optional package command being executed (e.g., 'install', 'uninstall').
32
- * @param {string} [packageName] - The optional name of the package being installed.
33
- * @returns {Promise<boolean>} A promise that resolves to true if the command executed successfully, false otherwise.
34
- */
35
4
  export async function spawnCommand(command, args, packageCommand, packageName) {
36
5
  const { spawn } = await import('node:child_process');
37
- /** Broadcast server */
38
6
  const debug = hasParameter('debug') || hasParameter('verbose');
39
7
  const verbose = hasParameter('verbose');
40
- const log = new AnsiLogger({ logName: 'Spawn', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: debug ? "debug" /* LogLevel.DEBUG */ : "info" /* LogLevel.INFO */ });
8
+ const log = new AnsiLogger({ logName: 'Spawn', logTimestampFormat: 4, logLevel: debug ? "debug" : "info" });
41
9
  const server = new BroadcastServer('spawn', log);
42
10
  const sendLog = (name, message) => {
43
11
  try {
44
12
  server.request({ type: 'frontend_logmessage', src: 'spawn', dst: 'frontend', params: { level: 'spawn', time: log.now(), name, message } });
45
13
  }
46
14
  catch (err) {
47
- // istanbul ignore next cause it's a precaution
48
15
  log.debug(`Failed to send log message to frontend: ${err instanceof Error ? err.message : String(err)}`);
49
16
  }
50
17
  };
51
18
  if (verbose)
52
19
  log.debug(`Spawning command: ${command} with ${args.join(' ')} ${packageCommand} ${packageName}`);
53
- /*
54
- * npm > npm.cmd on windows
55
- * cmd.exe ['dir'] on windows
56
- */
57
20
  const cmdLine = command + ' ' + args.join(' ');
58
21
  if (process.platform === 'win32' && command === 'npm') {
59
- // Must be spawn('cmd.exe', ['/c', 'npm -g install <package>']);
60
22
  const argstring = 'npm ' + args.join(' ');
61
23
  args.splice(0, args.length, '/c', argstring);
62
24
  command = 'cmd.exe';
63
25
  }
64
- // Decide when using sudo on linux and macOS
65
- // When you need sudo: Spawn stderr: npm error Error: EACCES: permission denied
66
- // When you don't need sudo: Failed to start child process "npm install -g matterbridge-eve-door": spawn sudo ENOENT
67
26
  if (hasParameter('sudo') || (process.platform !== 'win32' && command === 'npm' && !hasParameter('docker') && !hasParameter('nosudo'))) {
68
27
  args.unshift(command);
69
28
  command = 'sudo';
@@ -119,20 +78,6 @@ export async function spawnCommand(command, args, packageCommand, packageName) {
119
78
  sendLog('Matterbridge:spawn', line);
120
79
  }
121
80
  });
122
- /*
123
- childProcess.stdout.on('close', () => {
124
- log.debug(`Spawn output (stdout): closed`);
125
- resolve(true);
126
- });
127
- childProcess.stdout.on('end', () => {
128
- log.debug(`Spawn output (stdout): ended`);
129
- resolve(true);
130
- });
131
- childProcess.stdout.on('error', () => {
132
- log.debug(`Spawn output (stdout): error`);
133
- resolve(true);
134
- });
135
- */
136
81
  }
137
82
  if (childProcess.stderr) {
138
83
  childProcess.stderr.on('data', (data) => {
@@ -143,23 +88,8 @@ export async function spawnCommand(command, args, packageCommand, packageName) {
143
88
  sendLog('Matterbridge:spawn', line);
144
89
  }
145
90
  });
146
- /*
147
- childProcess.stderr.on('close', () => {
148
- log.debug(`Spawn verbose (stderr): closed`);
149
- resolve(true);
150
- });
151
- childProcess.stderr.on('end', () => {
152
- log.debug(`Spawn verbose (stderr): ended`);
153
- resolve(true);
154
- });
155
- childProcess.stderr.on('error', () => {
156
- log.debug(`Spawn verbose (stderr): error`);
157
- resolve(true);
158
- });
159
- */
160
91
  }
161
92
  });
162
93
  server.close();
163
94
  return success;
164
95
  }
165
- //# sourceMappingURL=spawn.js.map
@@ -1,2 +1 @@
1
1
  export * from '@matterbridge/utils';
2
- //# sourceMappingURL=export.d.ts.map
@@ -1,2 +1 @@
1
1
  export * from '@matterbridge/utils';
2
- //# sourceMappingURL=export.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterbridge/core",
3
- "version": "3.5.3",
3
+ "version": "3.5.4-dev-20260211-c4f9359",
4
4
  "description": "Matterbridge core library",
5
5
  "author": "https://github.com/Luligu",
6
6
  "homepage": "https://matterbridge.io/",
@@ -15,7 +15,28 @@
15
15
  "publishConfig": {
16
16
  "access": "public"
17
17
  },
18
- "keywords": [],
18
+ "keywords": [
19
+ "matterbridge",
20
+ "homebridge",
21
+ "bridge",
22
+ "plugin",
23
+ "frontend",
24
+ "matter.js",
25
+ "matter-node.js",
26
+ "matter",
27
+ "matterprotocol",
28
+ "iot",
29
+ "smarthome",
30
+ "connectedthings",
31
+ "hap",
32
+ "homekit",
33
+ "siri",
34
+ "google-home",
35
+ "alexa",
36
+ "homeassistant",
37
+ "smartthings",
38
+ "ewelink"
39
+ ],
19
40
  "license": "Apache-2.0",
20
41
  "funding": {
21
42
  "type": "buymeacoffee",
@@ -105,10 +126,10 @@
105
126
  },
106
127
  "dependencies": {
107
128
  "@matter/main": "0.16.8",
108
- "@matterbridge/dgram": "3.5.4",
109
- "@matterbridge/thread": "3.5.4",
110
- "@matterbridge/types": "3.5.4",
111
- "@matterbridge/utils": "3.5.4",
129
+ "@matterbridge/dgram": "3.5.4-dev-20260211-c4f9359",
130
+ "@matterbridge/thread": "3.5.4-dev-20260211-c4f9359",
131
+ "@matterbridge/types": "3.5.4-dev-20260211-c4f9359",
132
+ "@matterbridge/utils": "3.5.4-dev-20260211-c4f9359",
112
133
  "archiver": "7.0.1",
113
134
  "express": "5.2.1",
114
135
  "glob": "13.0.1",
package/dist/cli.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAUH,OAAO,EAA4D,SAAS,EAAgB,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AAIlJ,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,IAAI,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;AAC9C,eAAO,MAAM,OAAO,SAAmC,CAAC;AACxD,eAAO,MAAM,SAAS,WAAqC,CAAC"}
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliEmitter.d.ts","sourceRoot":"","sources":["../src/cliEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,UAAU,SAAS;IACjB,QAAQ,EAAE,EAAE,CAAC;IACb,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC9I,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACtD,KAAK,EAAE,EAAE,CAAC;CACX;AAED,eAAO,MAAM,UAAU,yBAAgC,CAAC;AAExD,eAAO,IAAI,cAAc,QAAI,CAAC;AAC9B,eAAO,IAAI,mBAAmB,QAAI,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAExD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliEmitter.js","sourceRoot":"","sources":["../src/cliEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sCAAsC;AACtC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;AAEpI,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,YAAY,EAAa,CAAC;AAExD,MAAM,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC;AAC9B,MAAM,CAAC,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,cAAc,GAAG,GAAG,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,mBAAmB,GAAG,GAAG,CAAC;AAC5B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliHistory.d.ts","sourceRoot":"","sources":["../src/cliHistory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,MAAM,GAAG,SAAS,CAixBhG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cliHistory.js","sourceRoot":"","sources":["../src/cliHistory.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/clusters/export.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/clusters/export.ts"],"names":[],"mappings":";AAAA,oGAAoG"}
@@ -1,180 +0,0 @@
1
- /**
2
- * This file contains the Device Attestation Certificate (DAC) functions.
3
- *
4
- * @file attestationDecoder.ts
5
- * @author Luca Liguori
6
- * @created 2025-05-08
7
- * @version 1.0.0
8
- * @license Apache-2.0
9
- *
10
- * Copyright 2025, 2026, 2027 Luca Liguori.
11
- *
12
- * Licensed under the Apache License, Version 2.0 (the "License");
13
- * you may not use this file except in compliance with the License.
14
- * You may obtain a copy of the License at
15
- *
16
- * http://www.apache.org/licenses/LICENSE-2.0
17
- *
18
- * Unless required by applicable law or agreed to in writing, software
19
- * distributed under the License is distributed on an "AS IS" BASIS,
20
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- * See the License for the specific language governing permissions and
22
- * limitations under the License. *
23
- */
24
- /**
25
- 6.2.2. Device Attestation Certificate (DAC)
26
- All commissionable Matter Nodes SHALL include a Device Attestation Certificate (DAC) and corresponding
27
- private key, unique to that Device. The DAC is used in the Device Attestation process, as
28
- part of Commissioning a Commissionee into a Fabric. The DAC SHALL be a DER-encoded X.509v3-
29
- compliant certificate as defined in RFC 5280 and SHALL be issued by a Product Attestation Intermediate
30
- (PAI) that chains directly to an approved Product Attestation Authority (PAA), and therefore
31
- SHALL have a certification path length of 2.
32
- */
33
- /**
34
- * Matter R1.4 — “Certificate Common Conventions” (Table 62)
35
- * ---------------------------------------------------------
36
- * Object identifiers for the Matter–specific Relative-Distinguished-Name (RDN)
37
- * attributes that may appear in X.509 Subject / Issuer DNs as UTF8String or
38
- * PrintableString encoded scalars.
39
- */
40
- export interface MatterOidInfo {
41
- /** Dot-notation OID, e.g. "1.3.6.1.4.1.37244.4.1.1" */
42
- readonly oid: string;
43
- /** Maximum scalar length in *octets* (see Matter 1.4, §6.1.1) */
44
- readonly maxOctets: number;
45
- /** Fixed string length in the DN (hexadecimal, upper-case) */
46
- readonly dnStringLen: number;
47
- /** Allowed ASN.1 string types when encoded in DER */
48
- readonly asn1Types: readonly ('UTF8String' | 'PrintableString')[];
49
- }
50
- export declare const MatterOids: {
51
- /** 17 — matter-node-id */
52
- readonly nodeId: {
53
- readonly oid: "1.3.6.1.4.1.37244.4.1.1";
54
- readonly maxOctets: 8;
55
- readonly dnStringLen: 16;
56
- readonly asn1Types: readonly ["UTF8String"];
57
- };
58
- /** 18 — matter-firmware-signing-id */
59
- readonly firmwareSigningId: {
60
- readonly oid: "1.3.6.1.4.1.37244.4.1.2";
61
- readonly maxOctets: 8;
62
- readonly dnStringLen: 16;
63
- readonly asn1Types: readonly ["UTF8String"];
64
- };
65
- /** 19 — matter-icac-id */
66
- readonly icacId: {
67
- readonly oid: "1.3.6.1.4.1.37244.4.1.3";
68
- readonly maxOctets: 8;
69
- readonly dnStringLen: 16;
70
- readonly asn1Types: readonly ["UTF8String"];
71
- };
72
- /** 20 — matter-rcac-id */
73
- readonly rcacId: {
74
- readonly oid: "1.3.6.1.4.1.37244.4.1.4";
75
- readonly maxOctets: 8;
76
- readonly dnStringLen: 16;
77
- readonly asn1Types: readonly ["UTF8String"];
78
- };
79
- /** 21 — matter-fabric-id */
80
- readonly fabricId: {
81
- readonly oid: "1.3.6.1.4.1.37244.4.1.5";
82
- readonly maxOctets: 8;
83
- readonly dnStringLen: 16;
84
- readonly asn1Types: readonly ["UTF8String"];
85
- };
86
- /** 22 — matter-noc-cat */
87
- readonly nocCat: {
88
- readonly oid: "1.3.6.1.4.1.37244.4.1.6";
89
- readonly maxOctets: 4;
90
- readonly dnStringLen: 8;
91
- readonly asn1Types: readonly ["UTF8String"];
92
- };
93
- /** matter-oid-vid (Vendor ID) */
94
- readonly vendorId: {
95
- readonly oid: "1.3.6.1.4.1.37244.2.1";
96
- readonly maxOctets: 2;
97
- readonly dnStringLen: 4;
98
- readonly asn1Types: readonly ["UTF8String", "PrintableString"];
99
- };
100
- /** matter-oid-pid (Product ID) */
101
- readonly productId: {
102
- readonly oid: "1.3.6.1.4.1.37244.2.2";
103
- readonly maxOctets: 2;
104
- readonly dnStringLen: 4;
105
- readonly asn1Types: readonly ["UTF8String", "PrintableString"];
106
- };
107
- };
108
- export declare const oid2Key: Record<string, keyof typeof MatterOids>;
109
- /**
110
- * Return the canonical Matter key (e.g. `"nodeId"`) for an arbitrary OID string,
111
- * or `undefined` if the OID is not part of the Matter RDN set.
112
- *
113
- * @param {string} oid The OID string to look up (e.g. "1.3.6.1.4.1.37244.4.1.1")
114
- *
115
- * @returns {keyof typeof MatterOids | undefined} The corresponding Matter key, or `undefined` if not found
116
- */
117
- export declare function matterKeyFromOid(oid: string): keyof typeof MatterOids | undefined;
118
- type DistinguishedName = Record<string, string>;
119
- type Hex = string;
120
- export interface DecodedCertificate {
121
- /** Subject — e.g. { CN: "Matter Test PAA", O: "…" } */
122
- subject: DistinguishedName;
123
- /** Issuer — usually identical for a self-signed root */
124
- issuer: DistinguishedName;
125
- /** Serial number as hexadecimal (uppercase, no “0x” prefix) */
126
- serialNumber: string;
127
- /** UTC “not before” date */
128
- notBefore: Date;
129
- /** UTC “not after” date */
130
- notAfter: Date;
131
- /** Public key (SPKI) in PEM form */
132
- publicKeyPEM: string;
133
- fingerprintSHA256?: Hex;
134
- signatureAlgorithm?: string;
135
- keyUsage?: string[];
136
- basicConstraints?: {
137
- ca: boolean;
138
- pathLen?: number;
139
- };
140
- authorityKeyId?: Hex;
141
- subjectKeyId?: Hex;
142
- rawDER?: Buffer;
143
- }
144
- /**
145
- * Decode a PEM-encoded X.509 certificate and return the most useful fields.
146
- *
147
- * @param {string} pem X.509 certificate in PEM form (may contain other PEM blocks)
148
- * @param {string} [debug] Optional debug label for logging
149
- * @throws {Error} If no CERTIFICATE block is found or the input is invalid
150
- * @returns {DecodedCertificate} An object with the decoded certificate information:
151
- */
152
- export declare function decodeX509Certificate(pem: string, debug?: string): DecodedCertificate;
153
- export interface DecodedEcPrivateKey {
154
- /** PEM block exactly as supplied (useful for re-export) */
155
- pem: string;
156
- /** Curve name, e.g. 'prime256v1' (secp256r1) */
157
- curve: string;
158
- /** Private scalar *d* in hex (uppercase, no “0x”) */
159
- dHex: string;
160
- /** Public key derived from the private part, SPKI/PEM form */
161
- publicKeyPEM: string;
162
- }
163
- /**
164
- * Decode an EC private key PEM (PKCS#8 or SEC1) and expose the essentials.
165
- *
166
- * @param {string} pem The key in PEM form (may contain extra blocks)
167
- * @returns {DecodedEcPrivateKey} An object with the decoded key information:
168
- * @throws {Error} If no EC PRIVATE KEY / PRIVATE KEY block is found
169
- */
170
- export declare function decodeEcPrivateKey(pem: string): DecodedEcPrivateKey;
171
- /**
172
- * Convert a DER-encoded certificate (hex or base64) to PEM format.
173
- *
174
- * @param {string} hex DER-encoded certificate in hex or base64 form
175
- * @throws {Error} If the input is not valid DER
176
- * @returns {string} PEM-encoded certificate
177
- */
178
- export declare function derHexToPem(hex: string): string;
179
- export {};
180
- //# sourceMappingURL=attestationDecoder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attestationDecoder.d.ts","sourceRoot":"","sources":["../../src/crypto/attestationDecoder.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH;;;;;;;;GAQG;AAEH;;;;;;GAMG;AAEH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,EAAE,CAAC;CACnE;AAGD,eAAO,MAAM,UAAU;IACrB,0BAA0B;;;;;;;IAE1B,sCAAsC;;;;;;;IAEtC,0BAA0B;;;;;;;IAE1B,0BAA0B;;;;;;;IAE1B,4BAA4B;;;;;;;IAE5B,0BAA0B;;;;;;;IAE1B,iCAAiC;;;;;;;IAEjC,kCAAkC;;;;;;;CAEc,CAAC;AAMnD,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,UAAU,CAO3D,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,OAAO,UAAU,GAAG,SAAS,CAEjF;AAED,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAChD,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,wDAAwD;IACxD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,2BAA2B;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACf,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,GAAG,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAyBrF;AAED,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CA4BnE;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmB/C"}
@@ -1,176 +0,0 @@
1
- /* eslint-disable no-console */
2
- /**
3
- * This file contains the Device Attestation Certificate (DAC) functions.
4
- *
5
- * @file attestationDecoder.ts
6
- * @author Luca Liguori
7
- * @created 2025-05-08
8
- * @version 1.0.0
9
- * @license Apache-2.0
10
- *
11
- * Copyright 2025, 2026, 2027 Luca Liguori.
12
- *
13
- * Licensed under the Apache License, Version 2.0 (the "License");
14
- * you may not use this file except in compliance with the License.
15
- * You may obtain a copy of the License at
16
- *
17
- * http://www.apache.org/licenses/LICENSE-2.0
18
- *
19
- * Unless required by applicable law or agreed to in writing, software
20
- * distributed under the License is distributed on an "AS IS" BASIS,
21
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
- * See the License for the specific language governing permissions and
23
- * limitations under the License. *
24
- */
25
- import { X509Certificate, createPrivateKey, createPublicKey } from 'node:crypto';
26
- /* prettier-ignore */
27
- export const MatterOids = {
28
- /** 17 — matter-node-id */
29
- nodeId: { oid: '1.3.6.1.4.1.37244.4.1.1', maxOctets: 8, dnStringLen: 16, asn1Types: ['UTF8String'] },
30
- /** 18 — matter-firmware-signing-id */
31
- firmwareSigningId: { oid: '1.3.6.1.4.1.37244.4.1.2', maxOctets: 8, dnStringLen: 16, asn1Types: ['UTF8String'] },
32
- /** 19 — matter-icac-id */
33
- icacId: { oid: '1.3.6.1.4.1.37244.4.1.3', maxOctets: 8, dnStringLen: 16, asn1Types: ['UTF8String'] },
34
- /** 20 — matter-rcac-id */
35
- rcacId: { oid: '1.3.6.1.4.1.37244.4.1.4', maxOctets: 8, dnStringLen: 16, asn1Types: ['UTF8String'] },
36
- /** 21 — matter-fabric-id */
37
- fabricId: { oid: '1.3.6.1.4.1.37244.4.1.5', maxOctets: 8, dnStringLen: 16, asn1Types: ['UTF8String'] },
38
- /** 22 — matter-noc-cat */
39
- nocCat: { oid: '1.3.6.1.4.1.37244.4.1.6', maxOctets: 4, dnStringLen: 8, asn1Types: ['UTF8String'] },
40
- /** matter-oid-vid (Vendor ID) */
41
- vendorId: { oid: '1.3.6.1.4.1.37244.2.1', maxOctets: 2, dnStringLen: 4, asn1Types: ['UTF8String', 'PrintableString'] },
42
- /** matter-oid-pid (Product ID) */
43
- productId: { oid: '1.3.6.1.4.1.37244.2.2', maxOctets: 2, dnStringLen: 4, asn1Types: ['UTF8String', 'PrintableString'] },
44
- };
45
- /* ──────────────────────────────────────────────────────────────────────────
46
- * Quick look-up: OID → canonical Matter key (e.g. "1.3.6.1.4.1.37244.4.1.1"
47
- * ⇒ "nodeId").
48
- * ------------------------------------------------------------------------- */
49
- export const oid2Key = Object.keys(MatterOids).reduce((acc, key) => {
50
- const oid = MatterOids[key].oid;
51
- acc[oid] = key;
52
- return acc;
53
- }, {});
54
- /**
55
- * Return the canonical Matter key (e.g. `"nodeId"`) for an arbitrary OID string,
56
- * or `undefined` if the OID is not part of the Matter RDN set.
57
- *
58
- * @param {string} oid The OID string to look up (e.g. "1.3.6.1.4.1.37244.4.1.1")
59
- *
60
- * @returns {keyof typeof MatterOids | undefined} The corresponding Matter key, or `undefined` if not found
61
- */
62
- export function matterKeyFromOid(oid) {
63
- return oid2Key[oid];
64
- }
65
- /**
66
- *
67
- * Parse a Distinguished Name (DN) string into a structured object.
68
- *
69
- * @param {string} dn The DN string to parse (e.g. "CN=Test, O=Example")
70
- * @returns {DistinguishedName} An object mapping attribute names to their values
71
- */
72
- function parseDN(dn) {
73
- // split on comma **or** newline, skip empty fragments
74
- const rdns = dn.split(/\s*(?:,|\n)+\s*/).filter(Boolean);
75
- const entries = rdns.map((rdn) => {
76
- const [attr, ...rest] = rdn.split('=');
77
- return [attr.trim(), rest.join('=').trim()];
78
- });
79
- const obj = Object.fromEntries(entries);
80
- // Map Matter-specific OIDs to their canonical keys (vid, pid, …)
81
- for (const [attr, value] of entries) {
82
- const mk = matterKeyFromOid(attr);
83
- if (mk)
84
- obj[mk] = value;
85
- }
86
- return obj;
87
- }
88
- /**
89
- * Decode a PEM-encoded X.509 certificate and return the most useful fields.
90
- *
91
- * @param {string} pem X.509 certificate in PEM form (may contain other PEM blocks)
92
- * @param {string} [debug] Optional debug label for logging
93
- * @throws {Error} If no CERTIFICATE block is found or the input is invalid
94
- * @returns {DecodedCertificate} An object with the decoded certificate information:
95
- */
96
- export function decodeX509Certificate(pem, debug) {
97
- // Extract the first CERTIFICATE block we find
98
- const block = /-----BEGIN CERTIFICATE-----[^-]+-----END CERTIFICATE-----/s.exec(pem);
99
- if (!block)
100
- throw new Error('No CERTIFICATE block found in the supplied PEM data');
101
- // Let 'node:crypto' do the magic
102
- const cert = new X509Certificate(block[0]);
103
- // Re-encode the public key as PEM so we can re-use it easily
104
- const publicKeyPEM = cert.publicKey.export({
105
- type: 'spki',
106
- format: 'pem',
107
- });
108
- const decoded = {
109
- subject: parseDN(cert.subject),
110
- issuer: parseDN(cert.issuer),
111
- serialNumber: cert.serialNumber.toUpperCase(),
112
- notBefore: new Date(cert.validFrom),
113
- notAfter: new Date(cert.validTo),
114
- publicKeyPEM,
115
- // fingerprintSHA256: cert.fingerprint256.replace(/:/g, ''),
116
- };
117
- if (debug)
118
- console.log(`Decoded ${debug}:\n`, decoded);
119
- return decoded;
120
- }
121
- /**
122
- * Decode an EC private key PEM (PKCS#8 or SEC1) and expose the essentials.
123
- *
124
- * @param {string} pem The key in PEM form (may contain extra blocks)
125
- * @returns {DecodedEcPrivateKey} An object with the decoded key information:
126
- * @throws {Error} If no EC PRIVATE KEY / PRIVATE KEY block is found
127
- */
128
- export function decodeEcPrivateKey(pem) {
129
- const keyBlock = /-----BEGIN (?:EC )?PRIVATE KEY-----[^-]+-----END (?:EC )?PRIVATE KEY-----/s.exec(pem);
130
- if (!keyBlock)
131
- throw new Error('No EC PRIVATE KEY block found in the supplied PEM');
132
- // -- Private key material ---------------------------------------------------
133
- const priv = createPrivateKey(keyBlock[0]);
134
- const curve = priv.asymmetricKeyDetails.namedCurve;
135
- // Grab the raw 32-byte scalar “d” (works for P-256)
136
- const pkcs8Der = priv.export({ format: 'der', type: 'pkcs8' });
137
- const d = pkcs8Der
138
- .subarray(pkcs8Der.length - 32)
139
- .toString('hex')
140
- .toUpperCase();
141
- // -- Derive & export the matching public key --------------------------------
142
- const publicKeyPEM = createPublicKey(priv).export({
143
- format: 'pem',
144
- type: 'spki',
145
- });
146
- return {
147
- pem: keyBlock[0],
148
- curve,
149
- dHex: d,
150
- publicKeyPEM,
151
- };
152
- }
153
- /**
154
- * Convert a DER-encoded certificate (hex or base64) to PEM format.
155
- *
156
- * @param {string} hex DER-encoded certificate in hex or base64 form
157
- * @throws {Error} If the input is not valid DER
158
- * @returns {string} PEM-encoded certificate
159
- */
160
- export function derHexToPem(hex) {
161
- // 1️⃣ sanitise → drop whitespace & optional “0x”
162
- const clean = hex.replace(/[^0-9a-f]/gi, '');
163
- if (clean.length % 2 !== 0) {
164
- throw new Error('Hex string has an odd length — not valid DER');
165
- }
166
- // 2️⃣ hex → Buffer
167
- const der = Buffer.from(clean, 'hex');
168
- // 3️⃣ Buffer → Base64 → insert \n every 64 chars (RFC 7468)
169
- const b64Wrapped = der
170
- .toString('base64')
171
- .replace(/(.{64})/g, '$1\n')
172
- .replace(/\n+$/, ''); // strip trailing newline
173
- // 4️⃣ wrap with PEM armor
174
- return `-----BEGIN CERTIFICATE-----\n${b64Wrapped}\n-----END CERTIFICATE-----\n`;
175
- }
176
- //# sourceMappingURL=attestationDecoder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attestationDecoder.js","sourceRoot":"","sources":["../../src/crypto/attestationDecoder.ts"],"names":[],"mappings":"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"}