matterbridge 3.4.7-dev-20260112-bd9e311 → 3.4.7
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.
- package/CHANGELOG.md +4 -0
- package/README-MACOS-PLIST.md +2 -4
- package/dist/broadcastServer.d.ts +115 -0
- package/dist/broadcastServer.d.ts.map +1 -0
- package/dist/broadcastServer.js +117 -0
- package/dist/broadcastServer.js.map +1 -0
- package/dist/broadcastServerTypes.d.ts +43 -0
- package/dist/broadcastServerTypes.d.ts.map +1 -0
- package/dist/broadcastServerTypes.js +24 -0
- package/dist/broadcastServerTypes.js.map +1 -0
- package/dist/cli.d.ts +24 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +97 -1
- package/dist/cli.js.map +1 -0
- package/dist/cliEmitter.d.ts +36 -0
- package/dist/cliEmitter.d.ts.map +1 -0
- package/dist/cliEmitter.js +37 -0
- package/dist/cliEmitter.js.map +1 -0
- package/dist/cliHistory.d.ts +42 -0
- package/dist/cliHistory.d.ts.map +1 -0
- package/dist/cliHistory.js +38 -0
- package/dist/cliHistory.js.map +1 -0
- package/dist/clusters/export.d.ts +1 -0
- package/dist/clusters/export.d.ts.map +1 -0
- package/dist/clusters/export.js +2 -0
- package/dist/clusters/export.js.map +1 -0
- package/dist/deviceManager.d.ts +108 -0
- package/dist/deviceManager.d.ts.map +1 -0
- package/dist/deviceManager.js +113 -1
- package/dist/deviceManager.js.map +1 -0
- package/dist/devices/airConditioner.d.ts +75 -0
- package/dist/devices/airConditioner.d.ts.map +1 -0
- package/dist/devices/airConditioner.js +57 -0
- package/dist/devices/airConditioner.js.map +1 -0
- package/dist/devices/batteryStorage.d.ts +43 -0
- package/dist/devices/batteryStorage.d.ts.map +1 -0
- package/dist/devices/batteryStorage.js +48 -1
- package/dist/devices/batteryStorage.js.map +1 -0
- package/dist/devices/cooktop.d.ts +55 -0
- package/dist/devices/cooktop.d.ts.map +1 -0
- package/dist/devices/cooktop.js +56 -0
- package/dist/devices/cooktop.js.map +1 -0
- package/dist/devices/dishwasher.d.ts +55 -0
- package/dist/devices/dishwasher.d.ts.map +1 -0
- package/dist/devices/dishwasher.js +57 -0
- package/dist/devices/dishwasher.js.map +1 -0
- package/dist/devices/evse.d.ts +57 -0
- package/dist/devices/evse.d.ts.map +1 -0
- package/dist/devices/evse.js +74 -10
- package/dist/devices/evse.js.map +1 -0
- package/dist/devices/export.d.ts +1 -0
- package/dist/devices/export.d.ts.map +1 -0
- package/dist/devices/export.js +5 -0
- package/dist/devices/export.js.map +1 -0
- package/dist/devices/extractorHood.d.ts +41 -0
- package/dist/devices/extractorHood.d.ts.map +1 -0
- package/dist/devices/extractorHood.js +43 -0
- package/dist/devices/extractorHood.js.map +1 -0
- package/dist/devices/heatPump.d.ts +43 -0
- package/dist/devices/heatPump.d.ts.map +1 -0
- package/dist/devices/heatPump.js +50 -2
- package/dist/devices/heatPump.js.map +1 -0
- package/dist/devices/laundryDryer.d.ts +58 -0
- package/dist/devices/laundryDryer.d.ts.map +1 -0
- package/dist/devices/laundryDryer.js +62 -3
- package/dist/devices/laundryDryer.js.map +1 -0
- package/dist/devices/laundryWasher.d.ts +64 -0
- package/dist/devices/laundryWasher.d.ts.map +1 -0
- package/dist/devices/laundryWasher.js +70 -4
- package/dist/devices/laundryWasher.js.map +1 -0
- package/dist/devices/microwaveOven.d.ts +77 -1
- package/dist/devices/microwaveOven.d.ts.map +1 -0
- package/dist/devices/microwaveOven.js +88 -5
- package/dist/devices/microwaveOven.js.map +1 -0
- package/dist/devices/oven.d.ts +82 -0
- package/dist/devices/oven.d.ts.map +1 -0
- package/dist/devices/oven.js +85 -0
- package/dist/devices/oven.js.map +1 -0
- package/dist/devices/refrigerator.d.ts +100 -0
- package/dist/devices/refrigerator.d.ts.map +1 -0
- package/dist/devices/refrigerator.js +102 -0
- package/dist/devices/refrigerator.js.map +1 -0
- package/dist/devices/roboticVacuumCleaner.d.ts +83 -0
- package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
- package/dist/devices/roboticVacuumCleaner.js +100 -9
- package/dist/devices/roboticVacuumCleaner.js.map +1 -0
- package/dist/devices/solarPower.d.ts +36 -0
- package/dist/devices/solarPower.d.ts.map +1 -0
- package/dist/devices/solarPower.js +38 -0
- package/dist/devices/solarPower.js.map +1 -0
- package/dist/devices/speaker.d.ts +79 -0
- package/dist/devices/speaker.d.ts.map +1 -0
- package/dist/devices/speaker.js +84 -0
- package/dist/devices/speaker.js.map +1 -0
- package/dist/devices/temperatureControl.d.ts +21 -0
- package/dist/devices/temperatureControl.d.ts.map +1 -0
- package/dist/devices/temperatureControl.js +24 -3
- package/dist/devices/temperatureControl.js.map +1 -0
- package/dist/devices/waterHeater.d.ts +74 -0
- package/dist/devices/waterHeater.d.ts.map +1 -0
- package/dist/devices/waterHeater.js +82 -2
- package/dist/devices/waterHeater.js.map +1 -0
- package/dist/dgram/coap.d.ts +171 -0
- package/dist/dgram/coap.d.ts.map +1 -0
- package/dist/dgram/coap.js +126 -13
- package/dist/dgram/coap.js.map +1 -0
- package/dist/dgram/dgram.d.ts +99 -0
- package/dist/dgram/dgram.d.ts.map +1 -0
- package/dist/dgram/dgram.js +114 -2
- package/dist/dgram/dgram.js.map +1 -0
- package/dist/dgram/mb_coap.d.ts +23 -0
- package/dist/dgram/mb_coap.d.ts.map +1 -0
- package/dist/dgram/mb_coap.js +41 -3
- package/dist/dgram/mb_coap.js.map +1 -0
- package/dist/dgram/mb_mdns.d.ts +23 -0
- package/dist/dgram/mb_mdns.d.ts.map +1 -0
- package/dist/dgram/mb_mdns.js +80 -24
- package/dist/dgram/mb_mdns.js.map +1 -0
- package/dist/dgram/mdns.d.ts +187 -4
- package/dist/dgram/mdns.d.ts.map +1 -0
- package/dist/dgram/mdns.js +371 -139
- package/dist/dgram/mdns.js.map +1 -0
- package/dist/dgram/multicast.d.ts +49 -0
- package/dist/dgram/multicast.d.ts.map +1 -0
- package/dist/dgram/multicast.js +62 -1
- package/dist/dgram/multicast.js.map +1 -0
- package/dist/dgram/unicast.d.ts +53 -0
- package/dist/dgram/unicast.d.ts.map +1 -0
- package/dist/dgram/unicast.js +60 -0
- package/dist/dgram/unicast.js.map +1 -0
- package/dist/frontend.d.ts +187 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +485 -38
- package/dist/frontend.js.map +1 -0
- package/dist/frontendTypes.d.ts +57 -0
- package/dist/frontendTypes.d.ts.map +1 -0
- package/dist/frontendTypes.js +45 -0
- package/dist/frontendTypes.js.map +1 -0
- package/dist/helpers.d.ts +43 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +53 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/jestutils/export.d.ts +1 -0
- package/dist/jestutils/export.d.ts.map +1 -0
- package/dist/jestutils/export.js +1 -0
- package/dist/jestutils/export.js.map +1 -0
- package/dist/jestutils/jestHelpers.d.ts +255 -0
- package/dist/jestutils/jestHelpers.d.ts.map +1 -0
- package/dist/jestutils/jestHelpers.js +371 -14
- package/dist/jestutils/jestHelpers.js.map +1 -0
- package/dist/logger/export.d.ts +1 -0
- package/dist/logger/export.d.ts.map +1 -0
- package/dist/logger/export.js +1 -0
- package/dist/logger/export.js.map +1 -0
- package/dist/matter/behaviors.d.ts +1 -0
- package/dist/matter/behaviors.d.ts.map +1 -0
- package/dist/matter/behaviors.js +2 -0
- package/dist/matter/behaviors.js.map +1 -0
- package/dist/matter/clusters.d.ts +1 -0
- package/dist/matter/clusters.d.ts.map +1 -0
- package/dist/matter/clusters.js +2 -0
- package/dist/matter/clusters.js.map +1 -0
- package/dist/matter/devices.d.ts +1 -0
- package/dist/matter/devices.d.ts.map +1 -0
- package/dist/matter/devices.js +2 -0
- package/dist/matter/devices.js.map +1 -0
- package/dist/matter/endpoints.d.ts +1 -0
- package/dist/matter/endpoints.d.ts.map +1 -0
- package/dist/matter/endpoints.js +2 -0
- package/dist/matter/endpoints.js.map +1 -0
- package/dist/matter/export.d.ts +1 -0
- package/dist/matter/export.d.ts.map +1 -0
- package/dist/matter/export.js +3 -0
- package/dist/matter/export.js.map +1 -0
- package/dist/matter/types.d.ts +1 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +3 -0
- package/dist/matter/types.js.map +1 -0
- package/dist/matterNode.d.ts +258 -0
- package/dist/matterNode.d.ts.map +1 -0
- package/dist/matterNode.js +369 -8
- package/dist/matterNode.js.map +1 -0
- package/dist/matterbridge.d.ts +353 -0
- package/dist/matterbridge.d.ts.map +1 -0
- package/dist/matterbridge.js +824 -46
- package/dist/matterbridge.js.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts +36 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.js +38 -0
- package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
- package/dist/matterbridgeBehaviors.d.ts +24 -0
- package/dist/matterbridgeBehaviors.d.ts.map +1 -0
- package/dist/matterbridgeBehaviors.js +68 -5
- package/dist/matterbridgeBehaviors.js.map +1 -0
- package/dist/matterbridgeDeviceTypes.d.ts +603 -0
- package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
- package/dist/matterbridgeDeviceTypes.js +635 -14
- package/dist/matterbridgeDeviceTypes.js.map +1 -0
- package/dist/matterbridgeDynamicPlatform.d.ts +36 -0
- package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
- package/dist/matterbridgeDynamicPlatform.js +38 -0
- package/dist/matterbridgeDynamicPlatform.js.map +1 -0
- package/dist/matterbridgeEndpoint.d.ts +1332 -0
- package/dist/matterbridgeEndpoint.d.ts.map +1 -0
- package/dist/matterbridgeEndpoint.js +1457 -53
- package/dist/matterbridgeEndpoint.js.map +1 -0
- package/dist/matterbridgeEndpointHelpers.d.ts +425 -0
- package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
- package/dist/matterbridgeEndpointHelpers.js +483 -20
- package/dist/matterbridgeEndpointHelpers.js.map +1 -0
- package/dist/matterbridgeEndpointTypes.d.ts +70 -0
- package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
- package/dist/matterbridgeEndpointTypes.js +25 -0
- package/dist/matterbridgeEndpointTypes.js.map +1 -0
- package/dist/matterbridgePlatform.d.ts +425 -0
- package/dist/matterbridgePlatform.d.ts.map +1 -0
- package/dist/matterbridgePlatform.js +451 -1
- package/dist/matterbridgePlatform.js.map +1 -0
- package/dist/matterbridgeTypes.d.ts +46 -0
- package/dist/matterbridgeTypes.d.ts.map +1 -0
- package/dist/matterbridgeTypes.js +26 -0
- package/dist/matterbridgeTypes.js.map +1 -0
- package/dist/pluginManager.d.ts +305 -0
- package/dist/pluginManager.d.ts.map +1 -0
- package/dist/pluginManager.js +341 -5
- package/dist/pluginManager.js.map +1 -0
- package/dist/shelly.d.ts +157 -0
- package/dist/shelly.d.ts.map +1 -0
- package/dist/shelly.js +178 -7
- package/dist/shelly.js.map +1 -0
- package/dist/storage/export.d.ts +1 -0
- package/dist/storage/export.d.ts.map +1 -0
- package/dist/storage/export.js +1 -0
- package/dist/storage/export.js.map +1 -0
- package/dist/update.d.ts +75 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +93 -1
- package/dist/update.js.map +1 -0
- package/dist/utils/colorUtils.d.ts +77 -0
- package/dist/utils/colorUtils.d.ts.map +1 -0
- package/dist/utils/colorUtils.js +97 -2
- package/dist/utils/colorUtils.js.map +1 -0
- package/dist/utils/commandLine.d.ts +60 -0
- package/dist/utils/commandLine.d.ts.map +1 -0
- package/dist/utils/commandLine.js +60 -0
- package/dist/utils/commandLine.js.map +1 -0
- package/dist/utils/copyDirectory.d.ts +33 -0
- package/dist/utils/copyDirectory.d.ts.map +1 -0
- package/dist/utils/copyDirectory.js +37 -0
- package/dist/utils/copyDirectory.js.map +1 -0
- package/dist/utils/createDirectory.d.ts +32 -0
- package/dist/utils/createDirectory.d.ts.map +1 -0
- package/dist/utils/createDirectory.js +33 -0
- package/dist/utils/createDirectory.js.map +1 -0
- package/dist/utils/createZip.d.ts +38 -0
- package/dist/utils/createZip.d.ts.map +1 -0
- package/dist/utils/createZip.js +47 -2
- package/dist/utils/createZip.js.map +1 -0
- package/dist/utils/deepCopy.d.ts +31 -0
- package/dist/utils/deepCopy.d.ts.map +1 -0
- package/dist/utils/deepCopy.js +39 -0
- package/dist/utils/deepCopy.js.map +1 -0
- package/dist/utils/deepEqual.d.ts +53 -0
- package/dist/utils/deepEqual.d.ts.map +1 -0
- package/dist/utils/deepEqual.js +72 -1
- package/dist/utils/deepEqual.js.map +1 -0
- package/dist/utils/error.d.ts +42 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +42 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/export.d.ts +1 -0
- package/dist/utils/export.d.ts.map +1 -0
- package/dist/utils/export.js +1 -0
- package/dist/utils/export.js.map +1 -0
- package/dist/utils/format.d.ts +49 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +49 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/hex.d.ts +85 -0
- package/dist/utils/hex.d.ts.map +1 -0
- package/dist/utils/hex.js +124 -0
- package/dist/utils/hex.js.map +1 -0
- package/dist/utils/inspector.d.ts +63 -0
- package/dist/utils/inspector.d.ts.map +1 -0
- package/dist/utils/inspector.js +69 -1
- package/dist/utils/inspector.js.map +1 -0
- package/dist/utils/isValid.d.ts +93 -0
- package/dist/utils/isValid.d.ts.map +1 -0
- package/dist/utils/isValid.js +93 -0
- package/dist/utils/isValid.js.map +1 -0
- package/dist/utils/network.d.ts +116 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +126 -5
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/spawn.d.ts +32 -0
- package/dist/utils/spawn.d.ts.map +1 -0
- package/dist/utils/spawn.js +71 -1
- package/dist/utils/spawn.js.map +1 -0
- package/dist/utils/tracker.d.ts +56 -0
- package/dist/utils/tracker.d.ts.map +1 -0
- package/dist/utils/tracker.js +64 -1
- package/dist/utils/tracker.js.map +1 -0
- package/dist/utils/wait.d.ts +51 -0
- package/dist/utils/wait.d.ts.map +1 -0
- package/dist/utils/wait.js +60 -8
- package/dist/utils/wait.js.map +1 -0
- package/dist/workerGlobalPrefix.d.ts +24 -0
- package/dist/workerGlobalPrefix.d.ts.map +1 -0
- package/dist/workerGlobalPrefix.js +37 -5
- package/dist/workerGlobalPrefix.js.map +1 -0
- package/dist/workerTypes.d.ts +25 -0
- package/dist/workerTypes.d.ts.map +1 -0
- package/dist/workerTypes.js +24 -0
- package/dist/workerTypes.js.map +1 -0
- package/dist/workers.d.ts +61 -0
- package/dist/workers.d.ts.map +1 -0
- package/dist/workers.js +68 -4
- package/dist/workers.js.map +1 -0
- package/npm-shrinkwrap.json +115 -115
- package/package.json +2 -1
- package/packages/dgram/dist/coap.d.ts +171 -0
- package/packages/dgram/dist/coap.d.ts.map +1 -0
- package/packages/dgram/dist/coap.js +126 -13
- package/packages/dgram/dist/coap.js.map +1 -0
- package/packages/dgram/dist/dgram.d.ts +99 -0
- package/packages/dgram/dist/dgram.d.ts.map +1 -0
- package/packages/dgram/dist/dgram.js +115 -3
- package/packages/dgram/dist/dgram.js.map +1 -0
- package/packages/dgram/dist/export.d.ts +1 -0
- package/packages/dgram/dist/export.d.ts.map +1 -0
- package/packages/dgram/dist/export.js +1 -0
- package/packages/dgram/dist/export.js.map +1 -0
- package/packages/dgram/dist/mdns.d.ts +187 -4
- package/packages/dgram/dist/mdns.d.ts.map +1 -0
- package/packages/dgram/dist/mdns.js +371 -139
- package/packages/dgram/dist/mdns.js.map +1 -0
- package/packages/dgram/dist/multicast.d.ts +49 -0
- package/packages/dgram/dist/multicast.d.ts.map +1 -0
- package/packages/dgram/dist/multicast.js +62 -1
- package/packages/dgram/dist/multicast.js.map +1 -0
- package/packages/dgram/dist/unicast.d.ts +53 -0
- package/packages/dgram/dist/unicast.d.ts.map +1 -0
- package/packages/dgram/dist/unicast.js +60 -0
- package/packages/dgram/dist/unicast.js.map +1 -0
- package/packages/jest-utils/dist/export.d.ts +1 -0
- package/packages/jest-utils/dist/export.d.ts.map +1 -0
- package/packages/jest-utils/dist/export.js +1 -0
- package/packages/jest-utils/dist/export.js.map +1 -0
- package/packages/jest-utils/dist/jestHelpers.d.ts +56 -0
- package/packages/jest-utils/dist/jestHelpers.d.ts.map +1 -0
- package/packages/jest-utils/dist/jestHelpers.js +62 -1
- package/packages/jest-utils/dist/jestHelpers.js.map +1 -0
- package/packages/utils/dist/colorUtils.d.ts +77 -0
- package/packages/utils/dist/colorUtils.d.ts.map +1 -0
- package/packages/utils/dist/colorUtils.js +97 -2
- package/packages/utils/dist/colorUtils.js.map +1 -0
- package/packages/utils/dist/commandLine.d.ts +60 -0
- package/packages/utils/dist/commandLine.d.ts.map +1 -0
- package/packages/utils/dist/commandLine.js +60 -0
- package/packages/utils/dist/commandLine.js.map +1 -0
- package/packages/utils/dist/copyDirectory.d.ts +33 -0
- package/packages/utils/dist/copyDirectory.d.ts.map +1 -0
- package/packages/utils/dist/copyDirectory.js +37 -0
- package/packages/utils/dist/copyDirectory.js.map +1 -0
- package/packages/utils/dist/createDirectory.d.ts +32 -0
- package/packages/utils/dist/createDirectory.d.ts.map +1 -0
- package/packages/utils/dist/createDirectory.js +33 -0
- package/packages/utils/dist/createDirectory.js.map +1 -0
- package/packages/utils/dist/createZip.d.ts +38 -0
- package/packages/utils/dist/createZip.d.ts.map +1 -0
- package/packages/utils/dist/createZip.js +47 -2
- package/packages/utils/dist/createZip.js.map +1 -0
- package/packages/utils/dist/deepCopy.d.ts +31 -0
- package/packages/utils/dist/deepCopy.d.ts.map +1 -0
- package/packages/utils/dist/deepCopy.js +39 -0
- package/packages/utils/dist/deepCopy.js.map +1 -0
- package/packages/utils/dist/deepEqual.d.ts +53 -0
- package/packages/utils/dist/deepEqual.d.ts.map +1 -0
- package/packages/utils/dist/deepEqual.js +73 -1
- package/packages/utils/dist/deepEqual.js.map +1 -0
- package/packages/utils/dist/error.d.ts +42 -0
- package/packages/utils/dist/error.d.ts.map +1 -0
- package/packages/utils/dist/error.js +42 -0
- package/packages/utils/dist/error.js.map +1 -0
- package/packages/utils/dist/export.d.ts +1 -0
- package/packages/utils/dist/export.d.ts.map +1 -0
- package/packages/utils/dist/export.js +1 -0
- package/packages/utils/dist/export.js.map +1 -0
- package/packages/utils/dist/format.d.ts +49 -0
- package/packages/utils/dist/format.d.ts.map +1 -0
- package/packages/utils/dist/format.js +49 -0
- package/packages/utils/dist/format.js.map +1 -0
- package/packages/utils/dist/githubVersion.d.ts +32 -0
- package/packages/utils/dist/githubVersion.d.ts.map +1 -0
- package/packages/utils/dist/githubVersion.js +34 -1
- package/packages/utils/dist/githubVersion.js.map +1 -0
- package/packages/utils/dist/hex.d.ts +85 -0
- package/packages/utils/dist/hex.d.ts.map +1 -0
- package/packages/utils/dist/hex.js +124 -0
- package/packages/utils/dist/hex.js.map +1 -0
- package/packages/utils/dist/inspector.d.ts +63 -0
- package/packages/utils/dist/inspector.d.ts.map +1 -0
- package/packages/utils/dist/inspector.js +69 -1
- package/packages/utils/dist/inspector.js.map +1 -0
- package/packages/utils/dist/isValid.d.ts +93 -0
- package/packages/utils/dist/isValid.d.ts.map +1 -0
- package/packages/utils/dist/isValid.js +93 -0
- package/packages/utils/dist/isValid.js.map +1 -0
- package/packages/utils/dist/network.d.ts +93 -0
- package/packages/utils/dist/network.d.ts.map +1 -0
- package/packages/utils/dist/network.js +99 -3
- package/packages/utils/dist/network.js.map +1 -0
- package/packages/utils/dist/npmRoot.d.ts +28 -0
- package/packages/utils/dist/npmRoot.d.ts.map +1 -0
- package/packages/utils/dist/npmRoot.js +28 -0
- package/packages/utils/dist/npmRoot.js.map +1 -0
- package/packages/utils/dist/npmVersion.d.ts +32 -0
- package/packages/utils/dist/npmVersion.d.ts.map +1 -0
- package/packages/utils/dist/npmVersion.js +34 -1
- package/packages/utils/dist/npmVersion.js.map +1 -0
- package/packages/utils/dist/tracker.d.ts +56 -0
- package/packages/utils/dist/tracker.d.ts.map +1 -0
- package/packages/utils/dist/tracker.js +64 -1
- package/packages/utils/dist/tracker.js.map +1 -0
- package/packages/utils/dist/wait.d.ts +51 -0
- package/packages/utils/dist/wait.d.ts.map +1 -0
- package/packages/utils/dist/wait.js +60 -8
- package/packages/utils/dist/wait.js.map +1 -0
- package/packages/vitest-utils/dist/export.d.ts +1 -0
- package/packages/vitest-utils/dist/export.d.ts.map +1 -0
- package/packages/vitest-utils/dist/export.js +1 -0
- package/packages/vitest-utils/dist/export.js.map +1 -0
- package/packages/vitest-utils/dist/vitestHelpers.d.ts +37 -0
- package/packages/vitest-utils/dist/vitestHelpers.d.ts.map +1 -0
- package/packages/vitest-utils/dist/vitestHelpers.js +43 -1
- package/packages/vitest-utils/dist/vitestHelpers.js.map +1 -0
- package/bmc-button.svg +0 -22
- package/packages/dgram/bmc-button.svg +0 -22
- package/packages/dgram/matterbridge.svg +0 -50
- package/packages/jest-utils/bmc-button.svg +0 -22
- package/packages/jest-utils/matterbridge.svg +0 -50
- package/packages/utils/bmc-button.svg +0 -22
- package/packages/utils/matterbridge.svg +0 -50
- package/packages/vitest-utils/bmc-button.svg +0 -22
- package/packages/vitest-utils/matterbridge.svg +0 -50
|
@@ -1,8 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description This file contains the class Dgram.
|
|
3
|
+
* @file dgram.ts
|
|
4
|
+
* @author Luca Liguori
|
|
5
|
+
* @created 2025-03-22
|
|
6
|
+
* @version 1.0.3
|
|
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
|
+
// Node.js imports
|
|
1
24
|
import dgram from 'node:dgram';
|
|
2
25
|
import EventEmitter from 'node:events';
|
|
3
26
|
import os from 'node:os';
|
|
27
|
+
// AnsiLogger imports
|
|
4
28
|
import { AnsiLogger, BLUE, db, idn, nf, rs } from 'node-ansi-logger';
|
|
5
29
|
import { hasParameter } from '@matterbridge/utils';
|
|
30
|
+
/**
|
|
31
|
+
* This class implements a dgram socket.
|
|
32
|
+
*/
|
|
6
33
|
export class Dgram extends EventEmitter {
|
|
7
34
|
verbose = hasParameter('v') || hasParameter('verbose');
|
|
8
35
|
debug = hasParameter('d') || hasParameter('debug') || hasParameter('v') || hasParameter('verbose');
|
|
@@ -15,12 +42,21 @@ export class Dgram extends EventEmitter {
|
|
|
15
42
|
interfaceAddress;
|
|
16
43
|
interfaceNetmask;
|
|
17
44
|
excludedInterfaceNamePattern = /(tailscale|wireguard|wintun|openvpn|\bwg\d*\b|\btun\d*\b|\btap\d*\b|\butun\d*\b|zerotier|hamachi|hyper-?v|v\s*ethernet|wsl|default switch|vmware|vmnet|vbox|virtualbox|virbr|docker|podman|\bveth\b|\bbr-\b|cni|kube|flannel|calico|teredo|isatap)/i;
|
|
45
|
+
/**
|
|
46
|
+
* Creates an instance of Dgram.
|
|
47
|
+
*
|
|
48
|
+
* @param {string} name - The name of the socket.
|
|
49
|
+
* @param {'udp4' | 'udp6'} socketType - The type of the socket (IPv4 or IPv6).
|
|
50
|
+
* @param {boolean | undefined} reuseAddr - Whether to allow address reuse. Defaults to true.
|
|
51
|
+
* @param {string} [interfaceName] - The name of the network interface to bind to.
|
|
52
|
+
* @param {string} [interfaceAddress] - The address of the network interface to bind to.
|
|
53
|
+
*/
|
|
18
54
|
constructor(name, socketType, reuseAddr = true, interfaceName, interfaceAddress) {
|
|
19
55
|
super();
|
|
20
56
|
this.log = new AnsiLogger({
|
|
21
57
|
logName: name,
|
|
22
|
-
logTimestampFormat: 4
|
|
23
|
-
logLevel: this.debug ? "debug" : this.silent ? "notice" : "info"
|
|
58
|
+
logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */,
|
|
59
|
+
logLevel: this.debug ? "debug" /* LogLevel.DEBUG */ : this.silent ? "notice" /* LogLevel.NOTICE */ : "info" /* LogLevel.INFO */,
|
|
24
60
|
});
|
|
25
61
|
this.socket = dgram.createSocket({ type: socketType, reuseAddr });
|
|
26
62
|
this.socketType = socketType;
|
|
@@ -56,6 +92,13 @@ export class Dgram extends EventEmitter {
|
|
|
56
92
|
this.onListening(address);
|
|
57
93
|
});
|
|
58
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Sends a message to the specified server.
|
|
97
|
+
*
|
|
98
|
+
* @param {Buffer} msg - The message buffer to send.
|
|
99
|
+
* @param {string} serverAddress - The IPv4 address of the destination server.
|
|
100
|
+
* @param {number} serverPort - The port of the destination server.
|
|
101
|
+
*/
|
|
59
102
|
send(msg, serverAddress, serverPort) {
|
|
60
103
|
this.socket.send(msg, 0, msg.length, serverPort, serverAddress, (error) => {
|
|
61
104
|
if (error) {
|
|
@@ -93,20 +136,32 @@ export class Dgram extends EventEmitter {
|
|
|
93
136
|
this.log.info(`Socket ready on ${BLUE}${address.family}${nf} ${BLUE}${address.address}${nf}:${BLUE}${address.port}${nf}`);
|
|
94
137
|
this.emit('ready', address);
|
|
95
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Retrieves the IPv4 address of the specified network interface or the first external IPv4 interface if no interface is specified.
|
|
141
|
+
* Throws an error if no suitable interface or address is found.
|
|
142
|
+
*
|
|
143
|
+
* @param {string} networkInterface - The name of the network interface to retrieve the IPv4 address from. If not specified, the first external IPv4 interface will be used.
|
|
144
|
+
* @returns {string | undefined} The IPv4 address of the specified network interface or the first external IPv4 interface.
|
|
145
|
+
* @throws {Error} if no suitable interface or address is found.
|
|
146
|
+
*/
|
|
96
147
|
getIpv4InterfaceAddress(networkInterface) {
|
|
148
|
+
// Normalize the interface name: treat an empty string as undefined.
|
|
97
149
|
if (networkInterface === '')
|
|
98
150
|
networkInterface = undefined;
|
|
99
151
|
const interfaces = os.networkInterfaces();
|
|
152
|
+
// If a specific interface is provided but not found, warn and fall back.
|
|
100
153
|
if (networkInterface && !interfaces[networkInterface]) {
|
|
101
154
|
this.log.warn(`Interface "${networkInterface}" not found. Using first external IPv4 interface.`);
|
|
102
155
|
networkInterface = undefined;
|
|
103
156
|
}
|
|
157
|
+
// If no interface was specified or the provided one doesn't exist, find the first external IPv4 interface.
|
|
104
158
|
if (!networkInterface) {
|
|
105
159
|
for (const [interfaceName, interfaceDetails] of Object.entries(interfaces)) {
|
|
106
160
|
if (!networkInterface && this.excludedInterfaceNamePattern.test(interfaceName))
|
|
107
161
|
continue;
|
|
108
162
|
if (!interfaceDetails)
|
|
109
163
|
continue;
|
|
164
|
+
// Check if at least one external IPv4 address exists on this interface.
|
|
110
165
|
for (const detail of interfaceDetails) {
|
|
111
166
|
if (detail.family === 'IPv4' && !detail.internal) {
|
|
112
167
|
networkInterface = interfaceName;
|
|
@@ -120,6 +175,7 @@ export class Dgram extends EventEmitter {
|
|
|
120
175
|
if (!networkInterface) {
|
|
121
176
|
throw new Error(`Didn't find an external IPv4 network interface`);
|
|
122
177
|
}
|
|
178
|
+
// Select the first external IPv4 address from the interface.
|
|
123
179
|
const addresses = interfaces[networkInterface];
|
|
124
180
|
const ipv4Address = addresses?.find((addr) => addr.family === 'IPv4' && !addr.internal);
|
|
125
181
|
if (!ipv4Address) {
|
|
@@ -127,14 +183,25 @@ export class Dgram extends EventEmitter {
|
|
|
127
183
|
}
|
|
128
184
|
return ipv4Address.address;
|
|
129
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Retrieves the IPv6 address of the specified network interface or the first external IPv6 interface if no interface is specified.
|
|
188
|
+
* Throws an error if no suitable interface or address is found.
|
|
189
|
+
*
|
|
190
|
+
* @param {string} [networkInterface] - The name of the network interface to retrieve the IPv6 address from. If not specified, the first external IPv6 interface will be used.
|
|
191
|
+
* @returns {string | undefined} The IPv6 address of the specified network interface or the first external IPv6 interface.
|
|
192
|
+
* @throws {Error} If no suitable interface or address is found.
|
|
193
|
+
*/
|
|
130
194
|
getIpv6InterfaceAddress(networkInterface) {
|
|
195
|
+
// Normalize the interface name: treat an empty string as undefined.
|
|
131
196
|
if (networkInterface === '')
|
|
132
197
|
networkInterface = undefined;
|
|
133
198
|
const interfaces = os.networkInterfaces();
|
|
199
|
+
// If a specific interface is provided, verify it exists. Otherwise, warn and use the first external IPv6 interface.
|
|
134
200
|
if (networkInterface && !interfaces[networkInterface]) {
|
|
135
201
|
this.log.warn(`Interface "${networkInterface}" not found. Using first external IPv6 interface.`);
|
|
136
202
|
networkInterface = undefined;
|
|
137
203
|
}
|
|
204
|
+
// If no network interface was specified, search for the first external IPv6 interface.
|
|
138
205
|
if (!networkInterface) {
|
|
139
206
|
for (const [interfaceName, interfaceDetails] of Object.entries(interfaces)) {
|
|
140
207
|
if (!networkInterface && this.excludedInterfaceNamePattern.test(interfaceName))
|
|
@@ -155,18 +222,21 @@ export class Dgram extends EventEmitter {
|
|
|
155
222
|
throw new Error(`Didn't find an external IPv6 network interface`);
|
|
156
223
|
}
|
|
157
224
|
const addresses = interfaces[networkInterface];
|
|
225
|
+
// Try to find a link-local address and use scopeid
|
|
158
226
|
const linkLocalAddress = addresses?.find((addr) => addr.family === 'IPv6' && !addr.internal && addr.address.startsWith('fe80'));
|
|
159
227
|
if (linkLocalAddress) {
|
|
160
228
|
this.log.debug('Found IPv6 link-local address');
|
|
161
229
|
return linkLocalAddress.scopeid ? `${linkLocalAddress.address}%${process.platform !== 'win32' ? networkInterface : linkLocalAddress.scopeid}` : linkLocalAddress.address;
|
|
162
230
|
}
|
|
163
231
|
this.log.debug('No IPv6 link-local address found');
|
|
232
|
+
// Try to find a unique local address
|
|
164
233
|
const ulaAddress = addresses?.find((addr) => addr.family === 'IPv6' && !addr.internal && addr.address.startsWith('fd') && addr.netmask === 'ffff:ffff:ffff:ffff::');
|
|
165
234
|
if (ulaAddress) {
|
|
166
235
|
this.log.debug('Found IPv6 Unique Local Addresses (ULA) unicast address');
|
|
167
236
|
return ulaAddress.address;
|
|
168
237
|
}
|
|
169
238
|
this.log.debug('No IPv6 Unique Local Addresses (ULA) unicast address found');
|
|
239
|
+
// Try to find a unique local address
|
|
170
240
|
const uniqueLocalAddress = addresses?.find((addr) => addr.family === 'IPv6' && !addr.internal && addr.address.startsWith('fd'));
|
|
171
241
|
if (uniqueLocalAddress) {
|
|
172
242
|
this.log.debug('Found IPv6 Unique Local Addresses (ULA) address');
|
|
@@ -175,6 +245,11 @@ export class Dgram extends EventEmitter {
|
|
|
175
245
|
this.log.debug('No IPv6 Unique Local Addresses (ULA) address found');
|
|
176
246
|
throw new Error(`Interface ${networkInterface} does not have a suitable external IPv6 address`);
|
|
177
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Retrieves the names of all available network interfaces.
|
|
250
|
+
*
|
|
251
|
+
* @returns {string[]} An array of network interface names.
|
|
252
|
+
*/
|
|
178
253
|
getInterfacesNames() {
|
|
179
254
|
const interfaces = os.networkInterfaces();
|
|
180
255
|
const interfaceNames = [];
|
|
@@ -185,6 +260,12 @@ export class Dgram extends EventEmitter {
|
|
|
185
260
|
}
|
|
186
261
|
return interfaceNames;
|
|
187
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Retrieves the scope ID of the first found IPv6 address on the specified network interface or on any interface if none is specified.
|
|
265
|
+
*
|
|
266
|
+
* @param {string} [interfaceName] - The name of the network interface. If not provided, the first found IPv6 address will be used.
|
|
267
|
+
* @returns {string} The scope ID of the first found IPv6 address or an empty string.
|
|
268
|
+
*/
|
|
188
269
|
getIpv6ScopeId(interfaceName) {
|
|
189
270
|
const interfaces = os.networkInterfaces();
|
|
190
271
|
for (const name in interfaces) {
|
|
@@ -196,17 +277,24 @@ export class Dgram extends EventEmitter {
|
|
|
196
277
|
if (iface) {
|
|
197
278
|
const ipv6Address = iface.find((addr) => addr.family === 'IPv6' && !addr.internal && addr.scopeid);
|
|
198
279
|
if (ipv6Address) {
|
|
199
|
-
return process.platform === 'win32' ? '%' + String(ipv6Address.scopeid) : '%' + name;
|
|
280
|
+
return process.platform === 'win32' ? '%' + String(ipv6Address.scopeid) : '%' + name; // Use the scope ID for Windows, or the interface name for non-Windows platforms
|
|
200
281
|
}
|
|
201
282
|
}
|
|
202
283
|
}
|
|
203
284
|
return '';
|
|
204
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Retrieves the interface name from the scope id of an IPv6 address.
|
|
288
|
+
*
|
|
289
|
+
* @param {number} scopeId - The scope id of the IPv6 address.
|
|
290
|
+
* @returns {string | undefined} The interface name or undefined if not found.
|
|
291
|
+
*/
|
|
205
292
|
getInterfaceNameFromScopeId(scopeId) {
|
|
206
293
|
const nets = os.networkInterfaces();
|
|
207
294
|
for (const ifaceName in nets) {
|
|
208
295
|
const addresses = nets[ifaceName] || [];
|
|
209
296
|
for (const addr of addresses) {
|
|
297
|
+
// Check for IPv6 addresses with a matching scope id.
|
|
210
298
|
if (addr.family === 'IPv6' && addr.scopeid === scopeId) {
|
|
211
299
|
return ifaceName;
|
|
212
300
|
}
|
|
@@ -214,8 +302,16 @@ export class Dgram extends EventEmitter {
|
|
|
214
302
|
}
|
|
215
303
|
return undefined;
|
|
216
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Retrieves the netmask of the specified interface address.
|
|
307
|
+
*
|
|
308
|
+
* @param {string} interfaceAddress - The interface address for which to retrieve the netmask.
|
|
309
|
+
* @returns {string | undefined} The netmask of the specified interface address or undefined if not found.
|
|
310
|
+
*/
|
|
217
311
|
getNetmask(interfaceAddress) {
|
|
312
|
+
// Remove zone index if present (e.g. for IPv6 "fe80::1%eth0")
|
|
218
313
|
const noZoneAddress = interfaceAddress.includes('%') ? interfaceAddress.split('%')[0] : interfaceAddress;
|
|
314
|
+
// Iterate over all interfaces.
|
|
219
315
|
const nets = os.networkInterfaces();
|
|
220
316
|
for (const ifaceName in nets) {
|
|
221
317
|
const ifaceAddresses = nets[ifaceName];
|
|
@@ -229,6 +325,13 @@ export class Dgram extends EventEmitter {
|
|
|
229
325
|
}
|
|
230
326
|
return undefined;
|
|
231
327
|
}
|
|
328
|
+
/**
|
|
329
|
+
* Computes the broadcast address given an IPv4 address and netmask.
|
|
330
|
+
*
|
|
331
|
+
* @param {string | undefined} [ipAddress] - The IPv4 address e.g. "192.168.1.20"
|
|
332
|
+
* @param {string | undefined} [netmask] - The IPv4 netmask e.g. "255.255.255.0"
|
|
333
|
+
* @returns {string | undefined} The computed broadcast address, e.g. "192.168.1.255"
|
|
334
|
+
*/
|
|
232
335
|
getIpv4BroadcastAddress(ipAddress, netmask) {
|
|
233
336
|
if (!ipAddress || !netmask) {
|
|
234
337
|
return undefined;
|
|
@@ -238,9 +341,17 @@ export class Dgram extends EventEmitter {
|
|
|
238
341
|
const broadcastParts = ipParts.map((octet, i) => (octet & maskParts[i]) | (255 - maskParts[i]));
|
|
239
342
|
return broadcastParts.join('.');
|
|
240
343
|
}
|
|
344
|
+
/**
|
|
345
|
+
* Returns the broadcast IPv6 address.
|
|
346
|
+
*
|
|
347
|
+
* @returns {string} The broadcast IPv6 address, e.g. "ff02::1"
|
|
348
|
+
*/
|
|
241
349
|
getIpv6BroadcastAddress() {
|
|
242
350
|
return 'ff02::1';
|
|
243
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Logs all available network interfaces and their details.
|
|
354
|
+
*/
|
|
244
355
|
listNetworkInterfaces() {
|
|
245
356
|
const interfaces = os.networkInterfaces();
|
|
246
357
|
for (const [name, addresses] of Object.entries(interfaces)) {
|
|
@@ -253,3 +364,4 @@ export class Dgram extends EventEmitter {
|
|
|
253
364
|
}
|
|
254
365
|
}
|
|
255
366
|
}
|
|
367
|
+
//# sourceMappingURL=dgram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dgram.js","sourceRoot":"","sources":["../src/dgram.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description This file contains the class Mdns.
|
|
3
|
+
* @file mdns.ts
|
|
4
|
+
* @author Luca Liguori
|
|
5
|
+
* @created 2025-03-22
|
|
6
|
+
* @version 1.0.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
|
+
*/
|
|
1
23
|
import dgram from 'node:dgram';
|
|
2
24
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
3
25
|
import { Multicast } from './multicast.js';
|
|
@@ -94,13 +116,13 @@ export declare const enum DnsRecordType {
|
|
|
94
116
|
DLV = 32769
|
|
95
117
|
}
|
|
96
118
|
export declare const enum DnsClass {
|
|
97
|
-
IN = 1
|
|
98
|
-
CH = 3
|
|
99
|
-
HS = 4
|
|
119
|
+
IN = 1,// Internet
|
|
120
|
+
CH = 3,// Chaos
|
|
121
|
+
HS = 4,// Hesiod
|
|
100
122
|
ANY = 255
|
|
101
123
|
}
|
|
102
124
|
export declare const enum DnsClassFlag {
|
|
103
|
-
FLUSH = 32768
|
|
125
|
+
FLUSH = 32768,// For answers (resource records)
|
|
104
126
|
QU = 32768
|
|
105
127
|
}
|
|
106
128
|
export interface MdnsMessage {
|
|
@@ -134,8 +156,26 @@ interface MdnsRecord {
|
|
|
134
156
|
ttl: number;
|
|
135
157
|
data: string;
|
|
136
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Checks if a given message is an mDNS message.
|
|
161
|
+
*
|
|
162
|
+
* @param {Buffer} message - The message buffer to check.
|
|
163
|
+
* @returns {boolean} True if the message is an mDNS message, false otherwise.
|
|
164
|
+
*/
|
|
137
165
|
export declare function isMdns(message: Buffer): boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Checks if a given mDNS message is a query.
|
|
168
|
+
*
|
|
169
|
+
* @param {Buffer} message - The mDNS message buffer to check.
|
|
170
|
+
* @returns {boolean} True if the message is a query, false otherwise.
|
|
171
|
+
*/
|
|
138
172
|
export declare function isMdnsQuery(message: Buffer): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Checks if a given mDNS message is a query.
|
|
175
|
+
*
|
|
176
|
+
* @param {Buffer} message - The mDNS message buffer to check.
|
|
177
|
+
* @returns {boolean} True if the message is a query, false otherwise.
|
|
178
|
+
*/
|
|
139
179
|
export declare function isMdnsResponse(message: Buffer): boolean;
|
|
140
180
|
export declare class Mdns extends Multicast {
|
|
141
181
|
deviceQueries: Map<string, {
|
|
@@ -148,30 +188,143 @@ export declare class Mdns extends Multicast {
|
|
|
148
188
|
dataPTR?: string;
|
|
149
189
|
}>;
|
|
150
190
|
filters: string[];
|
|
191
|
+
/**
|
|
192
|
+
* Creates an instance of the Mdns class.
|
|
193
|
+
*
|
|
194
|
+
* @param {string} name - The internal name of the mDNS server for the logs.
|
|
195
|
+
* @param {string} multicastAddress - The multicast address for mDNS (i.e. 224.0.0.251 for udp4 or ff02::fb for udp6).
|
|
196
|
+
* @param {number} multicastPort - The port for mDNS (i.e. 5353).
|
|
197
|
+
* @param {('udp4' | 'udp6')} socketType - The type of socket to create (either 'udp4' or 'udp6').
|
|
198
|
+
* @param {boolean} [reuseAddr] - Whether to reuse the address. Defaults to true.
|
|
199
|
+
* @param {string} [interfaceName] - The optional name of the network interface to use.
|
|
200
|
+
* @param {string} [interfaceAddress] - The optional IP address of the network interface to use.
|
|
201
|
+
* @param {string} [outgoingInterfaceAddress] - The address of the outgoing network interface.
|
|
202
|
+
*/
|
|
151
203
|
constructor(name: string, multicastAddress: string, multicastPort: number, socketType: 'udp4' | 'udp6', reuseAddr?: boolean | undefined, interfaceName?: string, interfaceAddress?: string, outgoingInterfaceAddress?: string);
|
|
152
204
|
onQuery(rinfo: dgram.RemoteInfo, _query: MdnsMessage): void;
|
|
153
205
|
onResponse(rinfo: dgram.RemoteInfo, _response: MdnsMessage): void;
|
|
154
206
|
onMessage(msg: Buffer, rinfo: dgram.RemoteInfo): void;
|
|
207
|
+
/**
|
|
208
|
+
* Decodes an mDNS message, including the header, question section, answer section,
|
|
209
|
+
* authority section, and additional section.
|
|
210
|
+
*
|
|
211
|
+
* @param {Buffer} msg - The raw mDNS message buffer.
|
|
212
|
+
* @returns {MdnsMessage} An object representing the decoded mDNS message.
|
|
213
|
+
* @throws {Error} if the message is too short.
|
|
214
|
+
*/
|
|
155
215
|
decodeMdnsMessage(msg: Buffer): MdnsMessage;
|
|
216
|
+
/**
|
|
217
|
+
* Decodes a DNS name from a buffer, handling compression.
|
|
218
|
+
*
|
|
219
|
+
* @param {Buffer} msg - The full mDNS message buffer.
|
|
220
|
+
* @param {number} offset - The offset at which the DNS name starts.
|
|
221
|
+
* @returns {{ name: string; newOffset: number }} An object with the decoded name and the new offset.
|
|
222
|
+
* @throws {Error} if the offset exceeds the buffer length or too many iterations are performed.
|
|
223
|
+
*/
|
|
156
224
|
decodeDnsName(msg: Buffer, offset: number): {
|
|
157
225
|
name: string;
|
|
158
226
|
newOffset: number;
|
|
159
227
|
};
|
|
228
|
+
/**
|
|
229
|
+
* Encodes a domain name into the DNS label format.
|
|
230
|
+
*
|
|
231
|
+
* For example, "example.local" becomes:
|
|
232
|
+
* [7] "example" [5] "local" [0]
|
|
233
|
+
*
|
|
234
|
+
* @param {string} name - The domain name to encode.
|
|
235
|
+
* @returns {Buffer} The encoded domain name as a Buffer.
|
|
236
|
+
*/
|
|
160
237
|
encodeDnsName(name: string): Buffer;
|
|
238
|
+
/**
|
|
239
|
+
* Encodes TXT record RDATA.
|
|
240
|
+
*
|
|
241
|
+
* In DNS/mDNS, TXT RDATA is a sequence of one or more <character-string>,
|
|
242
|
+
* each encoded as: [length byte][UTF-8 bytes].
|
|
243
|
+
*
|
|
244
|
+
* @param {string[]} txt - Array of TXT entries, e.g. ["key=value", "path=/"].
|
|
245
|
+
* @returns {Buffer} Encoded TXT RDATA.
|
|
246
|
+
* @throws {Error} If any entry exceeds 255 bytes.
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* const txtRdata = mdns.encodeTxtRdata(['txtvers=1', 'path=/']);
|
|
250
|
+
* mdns.sendResponse([
|
|
251
|
+
* { name: 'example._http._tcp.local', rtype: DnsRecordType.TXT, rclass: DnsClass.IN | DnsClassFlag.FLUSH, ttl: 120, rdata: txtRdata },
|
|
252
|
+
* ]);
|
|
253
|
+
*/
|
|
161
254
|
encodeTxtRdata(txt: string[]): Buffer;
|
|
255
|
+
/**
|
|
256
|
+
* Encodes SRV record RDATA.
|
|
257
|
+
*
|
|
258
|
+
* SRV RDATA layout (RFC 2782):
|
|
259
|
+
* - priority (2 bytes)
|
|
260
|
+
* - weight (2 bytes)
|
|
261
|
+
* - port (2 bytes)
|
|
262
|
+
* - target (DNS name)
|
|
263
|
+
*
|
|
264
|
+
* @param {number} priority - SRV priority.
|
|
265
|
+
* @param {number} weight - SRV weight.
|
|
266
|
+
* @param {number} port - Service port.
|
|
267
|
+
* @param {string} target - Target hostname (e.g. "matterbridge.local").
|
|
268
|
+
* @returns {Buffer} Encoded SRV RDATA.
|
|
269
|
+
*/
|
|
162
270
|
encodeSrvRdata(priority: number, weight: number, port: number, target: string): Buffer;
|
|
271
|
+
/**
|
|
272
|
+
* Encodes an IPv4 address for an A record RDATA (4 bytes).
|
|
273
|
+
*
|
|
274
|
+
* @param {string} ipv4 - IPv4 address, e.g. "192.168.1.10".
|
|
275
|
+
* @returns {Buffer} 4-byte buffer.
|
|
276
|
+
* @throws {Error} If the address is not a valid dotted-quad.
|
|
277
|
+
*/
|
|
163
278
|
encodeA(ipv4: string): Buffer;
|
|
279
|
+
/**
|
|
280
|
+
* Encodes an IPv6 address for an AAAA record RDATA (16 bytes).
|
|
281
|
+
*
|
|
282
|
+
* Supports the "::" zero-compression form and ignores an optional scope id
|
|
283
|
+
* suffix (e.g. "fe80::1%12" or "fe80::1%eth0").
|
|
284
|
+
*
|
|
285
|
+
* @param {string} ipv6WithOptionalScope - IPv6 address (optionally with scope id).
|
|
286
|
+
* @returns {Buffer} 16-byte buffer.
|
|
287
|
+
* @throws {Error} If the address is not a valid IPv6 literal.
|
|
288
|
+
*/
|
|
164
289
|
encodeAAAA(ipv6WithOptionalScope: string): Buffer;
|
|
290
|
+
/**
|
|
291
|
+
* Decodes a DNS resource record.
|
|
292
|
+
*
|
|
293
|
+
* @param {Buffer} msg - The full mDNS message buffer.
|
|
294
|
+
* @param {number} offset - The offset at which the resource record starts.
|
|
295
|
+
* @returns {{ record: MdnsRecord; newOffset: number }} An object containing the decoded record and the new offset.
|
|
296
|
+
*/
|
|
165
297
|
decodeResourceRecord(msg: Buffer, offset: number): {
|
|
166
298
|
record: MdnsRecord;
|
|
167
299
|
newOffset: number;
|
|
168
300
|
};
|
|
301
|
+
/**
|
|
302
|
+
* Sends a DNS query with multiple questions.
|
|
303
|
+
*
|
|
304
|
+
* @param {Array<{ name: string; type: number; class: number; unicastResponse?: boolean }>} questions - Array of questions
|
|
305
|
+
* to include in the query.
|
|
306
|
+
* @returns {Buffer<ArrayBuffer>} The constructed query buffer.
|
|
307
|
+
*
|
|
308
|
+
* @remarks
|
|
309
|
+
* Each question should have a name (e.g., "_http._tcp.local"), type (e.g., DnsRecordType.PTR), class (e.g., DnsClass.IN),
|
|
310
|
+
* and an optional unicastResponse flag (this will add the DnsClassFlag.QU flag to the query).
|
|
311
|
+
*/
|
|
169
312
|
sendQuery(questions: {
|
|
170
313
|
name: string;
|
|
171
314
|
type: number;
|
|
172
315
|
class: number;
|
|
173
316
|
unicastResponse?: boolean;
|
|
174
317
|
}[]): Buffer<ArrayBuffer>;
|
|
318
|
+
/**
|
|
319
|
+
* Constructs an mDNS response packet and sends it to the multicast address and port.
|
|
320
|
+
*
|
|
321
|
+
* @param {Array<{ name: string; rtype: number; rclass: number; ttl: number; rdata: Buffer }>} answers - Array of answer records.
|
|
322
|
+
* @returns {Buffer<ArrayBuffer>} The constructed response buffer.
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* const ptrRdata = mdnsIpv4.encodeDnsName('matterbridge._http._tcp.local');
|
|
326
|
+
* mdnsIpv4.sendResponse([{ name: '_http._tcp.local', rtype: DnsRecordType.PTR, rclass: DnsClass.IN, ttl: 120, rdata: ptrRdata }]);
|
|
327
|
+
*/
|
|
175
328
|
sendResponse(answers: {
|
|
176
329
|
name: string;
|
|
177
330
|
rtype: number;
|
|
@@ -179,10 +332,40 @@ export declare class Mdns extends Multicast {
|
|
|
179
332
|
ttl: number;
|
|
180
333
|
rdata: Buffer;
|
|
181
334
|
}[]): Buffer<ArrayBuffer>;
|
|
335
|
+
/**
|
|
336
|
+
* Converts a DNS record type numeric value to its string representation.
|
|
337
|
+
*
|
|
338
|
+
* @param {number} type - The numeric DNS record type.
|
|
339
|
+
* @returns {string} The string representation of the record type.
|
|
340
|
+
*/
|
|
182
341
|
dnsTypeToString(type: number): string;
|
|
342
|
+
/**
|
|
343
|
+
* Converts a DNS response class numeric value to its string representation.
|
|
344
|
+
*
|
|
345
|
+
* @param {number} cls - The numeric DNS class.
|
|
346
|
+
* @returns {string} The string representation of the DNS class.
|
|
347
|
+
*/
|
|
183
348
|
dnsResponseClassToString(cls: number): string;
|
|
349
|
+
/**
|
|
350
|
+
* Converts a DNS question class to a human-readable string.
|
|
351
|
+
* Adds support for mDNS QU (unicast-response) bit.
|
|
352
|
+
*
|
|
353
|
+
* @param {number} cls - The numeric question class.
|
|
354
|
+
* @returns {string} The string representation, e.g. "IN|QU"
|
|
355
|
+
*/
|
|
184
356
|
dnsQuestionClassToString(cls: number): string;
|
|
357
|
+
/**
|
|
358
|
+
* Logs the decoded mDNS message header.
|
|
359
|
+
*
|
|
360
|
+
* @param {MdnsMessage} msg - The mDNS message header object.
|
|
361
|
+
* @param {AnsiLogger} [log] - The logger to use (defaults to this.log).
|
|
362
|
+
* @param {string} [text] - Optional additional text to include in the log.
|
|
363
|
+
*/
|
|
185
364
|
logMdnsMessage(msg: MdnsMessage, log?: AnsiLogger, text?: string): void;
|
|
365
|
+
/**
|
|
366
|
+
* Logs the discovered devices from the mDNS queries and responses.
|
|
367
|
+
*/
|
|
186
368
|
logDevices(): void;
|
|
187
369
|
}
|
|
188
370
|
export {};
|
|
371
|
+
//# sourceMappingURL=mdns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdns.d.ts","sourceRoot":"","sources":["../src/mdns.ts"],"names":[],"mappings":"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"}
|