matterbridge 3.4.7 → 3.5.0-dev-20260113-96c82db
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 +10 -0
- package/dist/broadcastServer.d.ts +0 -115
- package/dist/broadcastServer.js +0 -117
- package/dist/broadcastServerTypes.d.ts +0 -43
- package/dist/broadcastServerTypes.js +0 -24
- package/dist/cli.d.ts +0 -24
- package/dist/cli.js +1 -97
- package/dist/cliEmitter.d.ts +0 -36
- package/dist/cliEmitter.js +0 -37
- package/dist/cliHistory.d.ts +0 -42
- package/dist/cliHistory.js +0 -38
- package/dist/clusters/export.d.ts +0 -1
- package/dist/clusters/export.js +0 -2
- package/dist/deviceManager.d.ts +0 -108
- package/dist/deviceManager.js +1 -113
- package/dist/devices/airConditioner.d.ts +0 -75
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/batteryStorage.d.ts +0 -43
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/cooktop.d.ts +0 -55
- package/dist/devices/cooktop.js +0 -56
- package/dist/devices/dishwasher.d.ts +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.d.ts +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.d.ts +0 -1
- package/dist/devices/export.js +0 -5
- package/dist/devices/extractorHood.d.ts +0 -41
- package/dist/devices/extractorHood.js +0 -43
- package/dist/devices/heatPump.d.ts +0 -43
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.d.ts +0 -58
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.d.ts +0 -64
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.d.ts +1 -77
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.d.ts +0 -82
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.d.ts +0 -100
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
- package/dist/devices/roboticVacuumCleaner.js +9 -100
- package/dist/devices/solarPower.d.ts +0 -36
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/speaker.d.ts +0 -79
- package/dist/devices/speaker.js +0 -84
- package/dist/devices/temperatureControl.d.ts +0 -21
- package/dist/devices/temperatureControl.js +3 -24
- package/dist/devices/waterHeater.d.ts +0 -74
- package/dist/devices/waterHeater.js +2 -82
- package/dist/dgram/coap.d.ts +0 -171
- package/dist/dgram/coap.js +13 -126
- package/dist/dgram/dgram.d.ts +0 -99
- package/dist/dgram/dgram.js +2 -114
- package/dist/dgram/mb_coap.d.ts +0 -23
- package/dist/dgram/mb_coap.js +3 -41
- package/dist/dgram/mb_mdns.d.ts +0 -23
- package/dist/dgram/mb_mdns.js +24 -80
- package/dist/dgram/mdns.d.ts +4 -187
- package/dist/dgram/mdns.js +139 -371
- package/dist/dgram/multicast.d.ts +0 -49
- package/dist/dgram/multicast.js +1 -62
- package/dist/dgram/unicast.d.ts +0 -53
- package/dist/dgram/unicast.js +0 -60
- package/dist/frontend.d.ts +0 -187
- package/dist/frontend.js +38 -485
- package/dist/frontendTypes.d.ts +0 -57
- package/dist/frontendTypes.js +0 -45
- package/dist/helpers.d.ts +0 -43
- package/dist/helpers.js +0 -53
- package/dist/index.d.ts +0 -23
- package/dist/index.js +0 -25
- package/dist/jestutils/export.d.ts +0 -1
- package/dist/jestutils/export.js +0 -1
- package/dist/jestutils/jestHelpers.d.ts +0 -255
- package/dist/jestutils/jestHelpers.js +14 -371
- package/dist/logger/export.d.ts +0 -1
- package/dist/logger/export.js +0 -1
- package/dist/matter/behaviors.d.ts +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.d.ts +0 -1
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.d.ts +0 -1
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.d.ts +0 -1
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.d.ts +0 -1
- package/dist/matter/export.js +0 -3
- package/dist/matter/types.d.ts +0 -1
- package/dist/matter/types.js +0 -3
- package/dist/matterNode.d.ts +0 -258
- package/dist/matterNode.js +8 -369
- package/dist/matterbridge.d.ts +0 -353
- package/dist/matterbridge.js +46 -824
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -36
- package/dist/matterbridgeAccessoryPlatform.js +0 -38
- package/dist/matterbridgeBehaviors.d.ts +0 -24
- package/dist/matterbridgeBehaviors.js +5 -68
- package/dist/matterbridgeDeviceTypes.d.ts +0 -603
- package/dist/matterbridgeDeviceTypes.js +14 -635
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -36
- package/dist/matterbridgeDynamicPlatform.js +0 -38
- package/dist/matterbridgeEndpoint.d.ts +0 -1332
- package/dist/matterbridgeEndpoint.js +53 -1457
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
- package/dist/matterbridgeEndpointHelpers.js +20 -483
- package/dist/matterbridgeEndpointTypes.d.ts +0 -70
- package/dist/matterbridgeEndpointTypes.js +0 -25
- package/dist/matterbridgePlatform.d.ts +0 -425
- package/dist/matterbridgePlatform.js +1 -451
- package/dist/matterbridgeTypes.d.ts +0 -46
- package/dist/matterbridgeTypes.js +0 -26
- package/dist/pluginManager.d.ts +0 -305
- package/dist/pluginManager.js +5 -341
- package/dist/shelly.d.ts +0 -157
- package/dist/shelly.js +7 -178
- package/dist/storage/export.d.ts +0 -1
- package/dist/storage/export.js +0 -1
- package/dist/update.d.ts +0 -75
- package/dist/update.js +1 -93
- package/dist/utils/colorUtils.d.ts +0 -77
- package/dist/utils/colorUtils.js +2 -97
- package/dist/utils/commandLine.d.ts +0 -60
- package/dist/utils/commandLine.js +0 -60
- package/dist/utils/copyDirectory.d.ts +0 -33
- package/dist/utils/copyDirectory.js +0 -37
- package/dist/utils/createDirectory.d.ts +0 -32
- package/dist/utils/createDirectory.js +0 -33
- package/dist/utils/createZip.d.ts +0 -38
- package/dist/utils/createZip.js +2 -47
- package/dist/utils/deepCopy.d.ts +0 -31
- package/dist/utils/deepCopy.js +0 -39
- package/dist/utils/deepEqual.d.ts +0 -53
- package/dist/utils/deepEqual.js +1 -72
- package/dist/utils/error.d.ts +0 -42
- package/dist/utils/error.js +0 -42
- package/dist/utils/export.d.ts +0 -1
- package/dist/utils/export.js +0 -1
- package/dist/utils/format.d.ts +0 -49
- package/dist/utils/format.js +0 -49
- package/dist/utils/hex.d.ts +0 -85
- package/dist/utils/hex.js +0 -124
- package/dist/utils/inspector.d.ts +0 -63
- package/dist/utils/inspector.js +1 -69
- package/dist/utils/isValid.d.ts +0 -93
- package/dist/utils/isValid.js +0 -93
- package/dist/utils/network.d.ts +0 -116
- package/dist/utils/network.js +5 -126
- package/dist/utils/spawn.d.ts +0 -32
- package/dist/utils/spawn.js +1 -71
- package/dist/utils/tracker.d.ts +0 -56
- package/dist/utils/tracker.js +1 -64
- package/dist/utils/wait.d.ts +0 -51
- package/dist/utils/wait.js +8 -60
- package/dist/workerGlobalPrefix.d.ts +0 -24
- package/dist/workerGlobalPrefix.js +5 -37
- package/dist/workerTypes.d.ts +0 -25
- package/dist/workerTypes.js +0 -24
- package/dist/workers.d.ts +0 -61
- package/dist/workers.js +4 -68
- package/npm-shrinkwrap.json +1500 -11420
- package/package.json +1 -7
- package/dist/broadcastServer.d.ts.map +0 -1
- package/dist/broadcastServer.js.map +0 -1
- package/dist/broadcastServerTypes.d.ts.map +0 -1
- package/dist/broadcastServerTypes.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/cliHistory.d.ts.map +0 -1
- package/dist/cliHistory.js.map +0 -1
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/airConditioner.d.ts.map +0 -1
- package/dist/devices/airConditioner.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/speaker.d.ts.map +0 -1
- package/dist/devices/speaker.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- package/dist/devices/waterHeater.d.ts.map +0 -1
- package/dist/devices/waterHeater.js.map +0 -1
- package/dist/dgram/coap.d.ts.map +0 -1
- package/dist/dgram/coap.js.map +0 -1
- package/dist/dgram/dgram.d.ts.map +0 -1
- package/dist/dgram/dgram.js.map +0 -1
- package/dist/dgram/mb_coap.d.ts.map +0 -1
- package/dist/dgram/mb_coap.js.map +0 -1
- package/dist/dgram/mb_mdns.d.ts.map +0 -1
- package/dist/dgram/mb_mdns.js.map +0 -1
- package/dist/dgram/mdns.d.ts.map +0 -1
- package/dist/dgram/mdns.js.map +0 -1
- package/dist/dgram/multicast.d.ts.map +0 -1
- package/dist/dgram/multicast.js.map +0 -1
- package/dist/dgram/unicast.d.ts.map +0 -1
- package/dist/dgram/unicast.js.map +0 -1
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/frontendTypes.d.ts.map +0 -1
- package/dist/frontendTypes.js.map +0 -1
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/jestutils/export.d.ts.map +0 -1
- package/dist/jestutils/export.js.map +0 -1
- package/dist/jestutils/jestHelpers.d.ts.map +0 -1
- package/dist/jestutils/jestHelpers.js.map +0 -1
- package/dist/logger/export.d.ts.map +0 -1
- package/dist/logger/export.js.map +0 -1
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterNode.d.ts.map +0 -1
- package/dist/matterNode.js.map +0 -1
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
- package/dist/matterbridgeEndpointTypes.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts.map +0 -1
- package/dist/shelly.js.map +0 -1
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js.map +0 -1
- package/dist/utils/createDirectory.d.ts.map +0 -1
- package/dist/utils/createDirectory.js.map +0 -1
- package/dist/utils/createZip.d.ts.map +0 -1
- package/dist/utils/createZip.js.map +0 -1
- package/dist/utils/deepCopy.d.ts.map +0 -1
- package/dist/utils/deepCopy.js.map +0 -1
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/inspector.d.ts.map +0 -1
- package/dist/utils/inspector.js.map +0 -1
- package/dist/utils/isValid.d.ts.map +0 -1
- package/dist/utils/isValid.js.map +0 -1
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/spawn.d.ts.map +0 -1
- package/dist/utils/spawn.js.map +0 -1
- package/dist/utils/tracker.d.ts.map +0 -1
- package/dist/utils/tracker.js.map +0 -1
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js.map +0 -1
- package/dist/workerGlobalPrefix.d.ts.map +0 -1
- package/dist/workerGlobalPrefix.js.map +0 -1
- package/dist/workerTypes.d.ts.map +0 -1
- package/dist/workerTypes.js.map +0 -1
- package/dist/workers.d.ts.map +0 -1
- package/dist/workers.js.map +0 -1
- package/frontend/index.html +0 -15
- package/frontend/package-lock.json +0 -7553
- package/packages/dgram/LICENSE +0 -202
- package/packages/dgram/dist/coap.d.ts +0 -205
- package/packages/dgram/dist/coap.d.ts.map +0 -1
- package/packages/dgram/dist/coap.js +0 -365
- package/packages/dgram/dist/coap.js.map +0 -1
- package/packages/dgram/dist/dgram.d.ts +0 -144
- package/packages/dgram/dist/dgram.d.ts.map +0 -1
- package/packages/dgram/dist/dgram.js +0 -367
- package/packages/dgram/dist/dgram.js.map +0 -1
- package/packages/dgram/dist/export.d.ts +0 -6
- package/packages/dgram/dist/export.d.ts.map +0 -1
- package/packages/dgram/dist/export.js +0 -6
- package/packages/dgram/dist/export.js.map +0 -1
- package/packages/dgram/dist/mdns.d.ts +0 -371
- package/packages/dgram/dist/mdns.d.ts.map +0 -1
- package/packages/dgram/dist/mdns.js +0 -934
- package/packages/dgram/dist/mdns.js.map +0 -1
- package/packages/dgram/dist/multicast.d.ts +0 -67
- package/packages/dgram/dist/multicast.d.ts.map +0 -1
- package/packages/dgram/dist/multicast.js +0 -180
- package/packages/dgram/dist/multicast.js.map +0 -1
- package/packages/dgram/dist/unicast.d.ts +0 -64
- package/packages/dgram/dist/unicast.d.ts.map +0 -1
- package/packages/dgram/dist/unicast.js +0 -100
- package/packages/dgram/dist/unicast.js.map +0 -1
- package/packages/dgram/package.json +0 -110
- package/packages/jest-utils/LICENSE +0 -202
- package/packages/jest-utils/dist/export.d.ts +0 -2
- package/packages/jest-utils/dist/export.d.ts.map +0 -1
- package/packages/jest-utils/dist/export.js +0 -2
- package/packages/jest-utils/dist/export.js.map +0 -1
- package/packages/jest-utils/dist/jestHelpers.d.ts +0 -77
- package/packages/jest-utils/dist/jestHelpers.d.ts.map +0 -1
- package/packages/jest-utils/dist/jestHelpers.js +0 -138
- package/packages/jest-utils/dist/jestHelpers.js.map +0 -1
- package/packages/jest-utils/package.json +0 -109
- package/packages/utils/LICENSE +0 -202
- package/packages/utils/dist/colorUtils.d.ts +0 -101
- package/packages/utils/dist/colorUtils.d.ts.map +0 -1
- package/packages/utils/dist/colorUtils.js +0 -282
- package/packages/utils/dist/colorUtils.js.map +0 -1
- package/packages/utils/dist/commandLine.d.ts +0 -66
- package/packages/utils/dist/commandLine.d.ts.map +0 -1
- package/packages/utils/dist/commandLine.js +0 -123
- package/packages/utils/dist/commandLine.js.map +0 -1
- package/packages/utils/dist/copyDirectory.d.ts +0 -35
- package/packages/utils/dist/copyDirectory.d.ts.map +0 -1
- package/packages/utils/dist/copyDirectory.js +0 -76
- package/packages/utils/dist/copyDirectory.js.map +0 -1
- package/packages/utils/dist/createDirectory.d.ts +0 -34
- package/packages/utils/dist/createDirectory.d.ts.map +0 -1
- package/packages/utils/dist/createDirectory.js +0 -54
- package/packages/utils/dist/createDirectory.js.map +0 -1
- package/packages/utils/dist/createZip.d.ts +0 -39
- package/packages/utils/dist/createZip.d.ts.map +0 -1
- package/packages/utils/dist/createZip.js +0 -114
- package/packages/utils/dist/createZip.js.map +0 -1
- package/packages/utils/dist/deepCopy.d.ts +0 -32
- package/packages/utils/dist/deepCopy.d.ts.map +0 -1
- package/packages/utils/dist/deepCopy.js +0 -79
- package/packages/utils/dist/deepCopy.js.map +0 -1
- package/packages/utils/dist/deepEqual.d.ts +0 -54
- package/packages/utils/dist/deepEqual.d.ts.map +0 -1
- package/packages/utils/dist/deepEqual.js +0 -130
- package/packages/utils/dist/deepEqual.js.map +0 -1
- package/packages/utils/dist/error.d.ts +0 -45
- package/packages/utils/dist/error.d.ts.map +0 -1
- package/packages/utils/dist/error.js +0 -54
- package/packages/utils/dist/error.js.map +0 -1
- package/packages/utils/dist/export.d.ts +0 -16
- package/packages/utils/dist/export.d.ts.map +0 -1
- package/packages/utils/dist/export.js +0 -16
- package/packages/utils/dist/export.js.map +0 -1
- package/packages/utils/dist/format.d.ts +0 -53
- package/packages/utils/dist/format.d.ts.map +0 -1
- package/packages/utils/dist/format.js +0 -78
- package/packages/utils/dist/format.js.map +0 -1
- package/packages/utils/dist/githubVersion.d.ts +0 -43
- package/packages/utils/dist/githubVersion.d.ts.map +0 -1
- package/packages/utils/dist/githubVersion.js +0 -70
- package/packages/utils/dist/githubVersion.js.map +0 -1
- package/packages/utils/dist/hex.d.ts +0 -89
- package/packages/utils/dist/hex.d.ts.map +0 -1
- package/packages/utils/dist/hex.js +0 -242
- package/packages/utils/dist/hex.js.map +0 -1
- package/packages/utils/dist/inspector.d.ts +0 -87
- package/packages/utils/dist/inspector.d.ts.map +0 -1
- package/packages/utils/dist/inspector.js +0 -268
- package/packages/utils/dist/inspector.js.map +0 -1
- package/packages/utils/dist/isValid.d.ts +0 -103
- package/packages/utils/dist/isValid.d.ts.map +0 -1
- package/packages/utils/dist/isValid.js +0 -162
- package/packages/utils/dist/isValid.js.map +0 -1
- package/packages/utils/dist/network.d.ts +0 -105
- package/packages/utils/dist/network.d.ts.map +0 -1
- package/packages/utils/dist/network.js +0 -201
- package/packages/utils/dist/network.js.map +0 -1
- package/packages/utils/dist/npmRoot.d.ts +0 -29
- package/packages/utils/dist/npmRoot.d.ts.map +0 -1
- package/packages/utils/dist/npmRoot.js +0 -41
- package/packages/utils/dist/npmRoot.js.map +0 -1
- package/packages/utils/dist/npmVersion.d.ts +0 -33
- package/packages/utils/dist/npmVersion.d.ts.map +0 -1
- package/packages/utils/dist/npmVersion.js +0 -76
- package/packages/utils/dist/npmVersion.js.map +0 -1
- package/packages/utils/dist/tracker.d.ts +0 -108
- package/packages/utils/dist/tracker.d.ts.map +0 -1
- package/packages/utils/dist/tracker.js +0 -264
- package/packages/utils/dist/tracker.js.map +0 -1
- package/packages/utils/dist/wait.d.ts +0 -54
- package/packages/utils/dist/wait.d.ts.map +0 -1
- package/packages/utils/dist/wait.js +0 -125
- package/packages/utils/dist/wait.js.map +0 -1
- package/packages/utils/package.json +0 -110
- package/packages/vitest-utils/LICENSE +0 -202
- package/packages/vitest-utils/dist/export.d.ts +0 -2
- package/packages/vitest-utils/dist/export.d.ts.map +0 -1
- package/packages/vitest-utils/dist/export.js +0 -2
- package/packages/vitest-utils/dist/export.js.map +0 -1
- package/packages/vitest-utils/dist/vitestHelpers.d.ts +0 -58
- package/packages/vitest-utils/dist/vitestHelpers.d.ts.map +0 -1
- package/packages/vitest-utils/dist/vitestHelpers.js +0 -119
- package/packages/vitest-utils/dist/vitestHelpers.js.map +0 -1
- package/packages/vitest-utils/package.json +0 -109
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @description This file contains the class Coap.
|
|
3
|
-
* @file src/dgram/coap.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
|
-
*/
|
|
23
|
-
// AnsiLogger imports
|
|
24
|
-
import { BLUE, db, GREEN, MAGENTA, nf } from 'node-ansi-logger';
|
|
25
|
-
// Net imports
|
|
26
|
-
import { COAP_MULTICAST_IPV4_ADDRESS, COAP_MULTICAST_PORT, Multicast } from './multicast.js';
|
|
27
|
-
export const COAP_OPTION_URI_PATH = 11;
|
|
28
|
-
export const COIOT_OPTION_DEVID = 3332;
|
|
29
|
-
export const COIOT_OPTION_VALIDITY = 3412;
|
|
30
|
-
export const COIOT_OPTION_SERIAL = 3420;
|
|
31
|
-
export const COIOT_REQUEST_STATUS_ID = 56831;
|
|
32
|
-
export const COIOT_REQUEST_DESCRIPTION_ID = 56832;
|
|
33
|
-
export class Coap extends Multicast {
|
|
34
|
-
constructor(name, multicastAddress, multicastPort, socketType, reuseAddr = true, interfaceName, interfaceAddress) {
|
|
35
|
-
super(name, multicastAddress, multicastPort, socketType, reuseAddr, interfaceName, interfaceAddress);
|
|
36
|
-
}
|
|
37
|
-
onCoapMessage(message, rinfo) {
|
|
38
|
-
this.log.debug(`Coap message received from ${BLUE}${rinfo.family}${db} ${BLUE}${rinfo.address}${db}:${BLUE}${rinfo.port}${db}`);
|
|
39
|
-
}
|
|
40
|
-
onMessage(msg, rinfo) {
|
|
41
|
-
this.log.info(`Dgram multicast socket received a CoAP message from ${BLUE}${rinfo.family}${nf} ${BLUE}${rinfo.address}${nf}:${BLUE}${rinfo.port}${nf}`);
|
|
42
|
-
try {
|
|
43
|
-
const result = this.decodeCoapMessage(msg);
|
|
44
|
-
this.onCoapMessage(result, rinfo);
|
|
45
|
-
this.logCoapMessage(result);
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
this.log.error(`Error decoding CoAP message: ${error instanceof Error ? error.message : error}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Decodes a CoAP message from a Buffer.
|
|
53
|
-
*
|
|
54
|
-
* @param {Buffer} msg - The Buffer containing the raw CoAP message.
|
|
55
|
-
* @returns {CoapMessage} A parsed CoAP message object.
|
|
56
|
-
* @throws {Error} if the message is malformed.
|
|
57
|
-
*/
|
|
58
|
-
decodeCoapMessage(msg) {
|
|
59
|
-
// A valid CoAP message must have at least 4 bytes for the header.
|
|
60
|
-
if (msg.length < 4) {
|
|
61
|
-
throw new Error('Message too short to be a valid CoAP message');
|
|
62
|
-
}
|
|
63
|
-
// Parse the 4-byte fixed header.
|
|
64
|
-
const version = (msg[0] & 0xc0) >> 6; // Bits 7-6: Version
|
|
65
|
-
const type = (msg[0] & 0x30) >> 4; // Bits 5-4: Type
|
|
66
|
-
const tokenLength = msg[0] & 0x0f; // Bits 3-0: Token Length
|
|
67
|
-
const code = msg[1]; // 8-bit Code
|
|
68
|
-
const messageId = msg.readUInt16BE(2); // 16-bit Message ID
|
|
69
|
-
let offset = 4;
|
|
70
|
-
// Parse token if present.
|
|
71
|
-
let token = Buffer.alloc(0);
|
|
72
|
-
if (tokenLength > 0) {
|
|
73
|
-
if (msg.length < offset + tokenLength) {
|
|
74
|
-
throw new Error('Message too short for the token length specified');
|
|
75
|
-
}
|
|
76
|
-
token = msg.slice(offset, offset + tokenLength);
|
|
77
|
-
offset += tokenLength;
|
|
78
|
-
}
|
|
79
|
-
// Parse options.
|
|
80
|
-
const options = [];
|
|
81
|
-
let currentOptionNumber = 0;
|
|
82
|
-
while (offset < msg.length) {
|
|
83
|
-
// Payload marker: 0xFF indicates the beginning of the payload.
|
|
84
|
-
if (msg[offset] === 0xff) {
|
|
85
|
-
offset++; // Skip the marker.
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
// Read the option header byte.
|
|
89
|
-
const optionHeader = msg[offset++];
|
|
90
|
-
let delta = (optionHeader & 0xf0) >> 4; // High nibble: option delta.
|
|
91
|
-
let length = optionHeader & 0x0f; // Low nibble: option length.
|
|
92
|
-
// Extended delta handling.
|
|
93
|
-
if (delta === 13) {
|
|
94
|
-
if (offset >= msg.length) {
|
|
95
|
-
throw new Error('Invalid extended option delta');
|
|
96
|
-
}
|
|
97
|
-
delta = msg[offset++] + 13;
|
|
98
|
-
}
|
|
99
|
-
else if (delta === 14) {
|
|
100
|
-
if (offset + 1 >= msg.length) {
|
|
101
|
-
throw new Error('Invalid extended option delta');
|
|
102
|
-
}
|
|
103
|
-
delta = msg.readUInt16BE(offset) + 269;
|
|
104
|
-
offset += 2;
|
|
105
|
-
}
|
|
106
|
-
else if (delta === 15) {
|
|
107
|
-
throw new Error('Reserved option delta value encountered');
|
|
108
|
-
}
|
|
109
|
-
// Extended length handling.
|
|
110
|
-
if (length === 13) {
|
|
111
|
-
if (offset >= msg.length) {
|
|
112
|
-
throw new Error('Invalid extended option length');
|
|
113
|
-
}
|
|
114
|
-
length = msg[offset++] + 13;
|
|
115
|
-
}
|
|
116
|
-
else if (length === 14) {
|
|
117
|
-
if (offset + 1 >= msg.length) {
|
|
118
|
-
throw new Error('Invalid extended option length');
|
|
119
|
-
}
|
|
120
|
-
length = msg.readUInt16BE(offset) + 269;
|
|
121
|
-
offset += 2;
|
|
122
|
-
}
|
|
123
|
-
else if (length === 15) {
|
|
124
|
-
throw new Error('Reserved option length value encountered');
|
|
125
|
-
}
|
|
126
|
-
// Calculate the actual option number.
|
|
127
|
-
currentOptionNumber += delta;
|
|
128
|
-
// Ensure that the option's value fits in the remaining message.
|
|
129
|
-
if (offset + length > msg.length) {
|
|
130
|
-
throw new Error('Option length exceeds message length');
|
|
131
|
-
}
|
|
132
|
-
const optionValue = msg.slice(offset, offset + length);
|
|
133
|
-
offset += length;
|
|
134
|
-
options.push({
|
|
135
|
-
number: currentOptionNumber,
|
|
136
|
-
value: optionValue,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
// Parse payload if any remains.
|
|
140
|
-
const payload = offset < msg.length ? msg.slice(offset) : undefined;
|
|
141
|
-
return {
|
|
142
|
-
version,
|
|
143
|
-
type,
|
|
144
|
-
tokenLength,
|
|
145
|
-
code,
|
|
146
|
-
messageId,
|
|
147
|
-
token,
|
|
148
|
-
options,
|
|
149
|
-
payload,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Encodes a CoAP message into a Buffer.
|
|
154
|
-
*
|
|
155
|
-
* @param {CoapMessage} msg - The CoAP message to encode.
|
|
156
|
-
* @returns {Buffer} A Buffer representing the encoded CoAP message.
|
|
157
|
-
* @throws {Error} if the message is malformed.
|
|
158
|
-
*/
|
|
159
|
-
encodeCoapMessage(msg) {
|
|
160
|
-
const parts = [];
|
|
161
|
-
// Determine token length (ensure it's consistent with msg.token)
|
|
162
|
-
const token = msg.token || Buffer.alloc(0);
|
|
163
|
-
const tokenLength = token.length;
|
|
164
|
-
if (tokenLength > 8) {
|
|
165
|
-
throw new Error('Token length cannot exceed 8 bytes');
|
|
166
|
-
}
|
|
167
|
-
// Create header (4 bytes):
|
|
168
|
-
// Byte 0: Version (2 bits), Type (2 bits), Token Length (4 bits)
|
|
169
|
-
// Byte 1: Code (8 bits)
|
|
170
|
-
// Bytes 2-3: Message ID (16 bits)
|
|
171
|
-
const header = Buffer.alloc(4);
|
|
172
|
-
header[0] = ((msg.version & 0x03) << 6) | ((msg.type & 0x03) << 4) | (tokenLength & 0x0f);
|
|
173
|
-
header[1] = msg.code;
|
|
174
|
-
header.writeUInt16BE(msg.messageId, 2);
|
|
175
|
-
parts.push(header);
|
|
176
|
-
// Append token if present.
|
|
177
|
-
if (tokenLength > 0) {
|
|
178
|
-
parts.push(token);
|
|
179
|
-
}
|
|
180
|
-
// Sort options by option number in ascending order.
|
|
181
|
-
const sortedOptions = msg.options.slice().sort((a, b) => a.number - b.number);
|
|
182
|
-
let previousOptionNumber = 0;
|
|
183
|
-
// Encode each option.
|
|
184
|
-
for (const option of sortedOptions) {
|
|
185
|
-
const optionDelta = option.number - previousOptionNumber;
|
|
186
|
-
const optionValueLength = option.value.length;
|
|
187
|
-
let deltaNibble;
|
|
188
|
-
let deltaExtended = null;
|
|
189
|
-
let lengthNibble;
|
|
190
|
-
let lengthExtended = null;
|
|
191
|
-
// Determine option delta nibble and extended delta field.
|
|
192
|
-
if (optionDelta < 13) {
|
|
193
|
-
deltaNibble = optionDelta;
|
|
194
|
-
}
|
|
195
|
-
else if (optionDelta < 269) {
|
|
196
|
-
deltaNibble = 13;
|
|
197
|
-
deltaExtended = Buffer.from([optionDelta - 13]);
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
deltaNibble = 14;
|
|
201
|
-
deltaExtended = Buffer.alloc(2);
|
|
202
|
-
deltaExtended.writeUInt16BE(optionDelta - 269, 0);
|
|
203
|
-
}
|
|
204
|
-
// Determine option length nibble and extended length field.
|
|
205
|
-
if (optionValueLength < 13) {
|
|
206
|
-
lengthNibble = optionValueLength;
|
|
207
|
-
}
|
|
208
|
-
else if (optionValueLength < 269) {
|
|
209
|
-
lengthNibble = 13;
|
|
210
|
-
lengthExtended = Buffer.from([optionValueLength - 13]);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
lengthNibble = 14;
|
|
214
|
-
lengthExtended = Buffer.alloc(2);
|
|
215
|
-
lengthExtended.writeUInt16BE(optionValueLength - 269, 0);
|
|
216
|
-
}
|
|
217
|
-
// Option header byte: high nibble is delta, low nibble is length.
|
|
218
|
-
const optionHeader = Buffer.alloc(1);
|
|
219
|
-
optionHeader[0] = (deltaNibble << 4) | (lengthNibble & 0x0f);
|
|
220
|
-
parts.push(optionHeader);
|
|
221
|
-
// Append extended delta if needed.
|
|
222
|
-
if (deltaExtended) {
|
|
223
|
-
parts.push(deltaExtended);
|
|
224
|
-
}
|
|
225
|
-
// Append extended length if needed.
|
|
226
|
-
if (lengthExtended) {
|
|
227
|
-
parts.push(lengthExtended);
|
|
228
|
-
}
|
|
229
|
-
// Append the option value.
|
|
230
|
-
parts.push(option.value);
|
|
231
|
-
// Update previous option number.
|
|
232
|
-
previousOptionNumber = option.number;
|
|
233
|
-
}
|
|
234
|
-
// If a payload is present, add the payload marker (0xFF) followed by the payload.
|
|
235
|
-
if (msg.payload && msg.payload.length > 0) {
|
|
236
|
-
parts.push(Buffer.from([0xff])); // Payload marker.
|
|
237
|
-
parts.push(msg.payload);
|
|
238
|
-
}
|
|
239
|
-
return Buffer.concat(parts);
|
|
240
|
-
}
|
|
241
|
-
/**
|
|
242
|
-
* Converts a CoAP message type numeric value to its string representation.
|
|
243
|
-
*
|
|
244
|
-
* CoAP message types are:
|
|
245
|
-
* - 0: Confirmable (CON)
|
|
246
|
-
* - 1: Non-confirmable (NON)
|
|
247
|
-
* - 2: Acknowledgement (ACK)
|
|
248
|
-
* - 3: Reset (RST)
|
|
249
|
-
*
|
|
250
|
-
* @param {number} type - The numeric CoAP message type.
|
|
251
|
-
* @returns {string} The string representation of the message type.
|
|
252
|
-
*/
|
|
253
|
-
coapTypeToString(type) {
|
|
254
|
-
switch (type) {
|
|
255
|
-
case 0:
|
|
256
|
-
return 'Confirmable (CON)';
|
|
257
|
-
case 1:
|
|
258
|
-
return 'Non-confirmable (NON)';
|
|
259
|
-
case 2:
|
|
260
|
-
return 'Acknowledgement (ACK)';
|
|
261
|
-
case 3:
|
|
262
|
-
return 'Reset (RST)';
|
|
263
|
-
default:
|
|
264
|
-
return `Unknown Type (${type})`;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
/**
|
|
268
|
-
* Converts a CoAP code numeric value to its string representation.
|
|
269
|
-
*
|
|
270
|
-
* The CoAP code is split into a 3-bit class and a 5-bit detail.
|
|
271
|
-
* For example:
|
|
272
|
-
* - 0.01: GET
|
|
273
|
-
* - 0.02: POST
|
|
274
|
-
* - 0.03: PUT
|
|
275
|
-
* - 0.04: DELETE
|
|
276
|
-
* - 2.05: Content (success response)
|
|
277
|
-
* - 4.04: Not Found (client error)
|
|
278
|
-
* - 5.00: Internal Server Error (server error)
|
|
279
|
-
*
|
|
280
|
-
* @param {number} code - The numeric CoAP code.
|
|
281
|
-
* @returns {string} The string representation of the code.
|
|
282
|
-
*/
|
|
283
|
-
coapCodeToString(code) {
|
|
284
|
-
// Split the code: the upper 3 bits form the class and the lower 5 bits form the detail.
|
|
285
|
-
const cls = code >> 5;
|
|
286
|
-
const detail = code & 0x1f;
|
|
287
|
-
const codeStr = `${cls}.${detail.toString().padStart(2, '0')}`;
|
|
288
|
-
return codeStr;
|
|
289
|
-
}
|
|
290
|
-
sendRequest(messageId, options,
|
|
291
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
292
|
-
payload, token, address, port) {
|
|
293
|
-
const coapMessage = {
|
|
294
|
-
version: 1,
|
|
295
|
-
type: 1, // e.g., Confirmable
|
|
296
|
-
tokenLength: token ? Buffer.from(token).length : 0,
|
|
297
|
-
code: 1, // e.g., GET
|
|
298
|
-
messageId,
|
|
299
|
-
token: token ? Buffer.from(token) : Buffer.alloc(0),
|
|
300
|
-
options,
|
|
301
|
-
payload: payload ? Buffer.from(JSON.stringify(payload)) : undefined,
|
|
302
|
-
};
|
|
303
|
-
const encodedBuffer = this.encodeCoapMessage(coapMessage);
|
|
304
|
-
this.send(encodedBuffer, address ?? COAP_MULTICAST_IPV4_ADDRESS, port ?? COAP_MULTICAST_PORT);
|
|
305
|
-
}
|
|
306
|
-
logCoapMessage(msg) {
|
|
307
|
-
this.log.info(`Decoded CoAP message: version ${MAGENTA}${msg.version}${nf} type ${MAGENTA}${this.coapTypeToString(msg.type)}${nf} ` +
|
|
308
|
-
`code ${MAGENTA}${this.coapCodeToString(msg.code)}${nf} messageId ${MAGENTA}${msg.messageId}${nf} ` +
|
|
309
|
-
`tokenLength ${MAGENTA}${msg.tokenLength}${nf} token ${MAGENTA}${msg.tokenLength == 0 ? 'no token' : msg.token.toString('hex')}${nf} ` +
|
|
310
|
-
`options ${MAGENTA}${msg.options.length}${nf} payload ${MAGENTA}${msg.payload ? msg.payload.length + ' bytes' : undefined}${nf}`);
|
|
311
|
-
msg.options.forEach((option) => {
|
|
312
|
-
if (option.number === COAP_OPTION_URI_PATH) {
|
|
313
|
-
this.log.info(`Option: COAP_OPTION_URI_PATH => ${GREEN}${option.value}${nf}`);
|
|
314
|
-
}
|
|
315
|
-
else if (option.number === COIOT_OPTION_DEVID) {
|
|
316
|
-
/*
|
|
317
|
-
* First defined option is COIOT_OPTION_GLOBAL_DEVID. This is a global option and must be present in all CoIoT packages with request or payload.
|
|
318
|
-
* Its value is a string in format <devtype>#<devid>#<version> for example SHSEN-1#4B3F9E#1 The whole option should be less than 50 bytes.
|
|
319
|
-
*/
|
|
320
|
-
const parts = option.value.toString().split('#');
|
|
321
|
-
const deviceModel = parts[0];
|
|
322
|
-
const deviceMac = parts[1];
|
|
323
|
-
const protocolRevision = parts[2];
|
|
324
|
-
this.log.info(`Option: COIOT_OPTION_DEVID => ${option.value} => Model: ${GREEN}${deviceModel}${nf}, MAC: ${GREEN}${deviceMac}${nf}, Protocol: ${GREEN}${protocolRevision}${nf}`);
|
|
325
|
-
}
|
|
326
|
-
else if (option.number === COIOT_OPTION_SERIAL) {
|
|
327
|
-
/*
|
|
328
|
-
* This option is mandatory in status response and publishes. It is a uint16_t in network byte order which indicates a change in the status report.
|
|
329
|
-
* When a new status report is handled, all payload processing can be skipped if the serial number does not change from the last processed payload.
|
|
330
|
-
* The value 0 is reserved and should not be sent. This allows easy initialization in the receiving devices.
|
|
331
|
-
*/
|
|
332
|
-
const serial = option.value.readUInt16BE(0);
|
|
333
|
-
this.log.info(`Option: COIOT_OPTION_SERIAL => 0x${option.value.toString('hex')} => serial: ${GREEN}${serial}${nf}`);
|
|
334
|
-
}
|
|
335
|
-
else if (option.number === COIOT_OPTION_VALIDITY) {
|
|
336
|
-
/*
|
|
337
|
-
* COIOT_OPTION_STATUS_VALIDITY is a uint16_t in network byte order (big endian) that states the maximal time between this and the next status publish.
|
|
338
|
-
* This way a device can state its report interval. If a report is not received from this device after the interval has passed the device should be considered offline.
|
|
339
|
-
* The LS bit of this option controls how the value is scaled:
|
|
340
|
-
* - If the LS bit is 0, the value is number of 1/10 of seconds in the validity period, so 2 is 0.2 seconds, 10 is a second, 600 is a minute, 65534 is 109 minutes and 13 seconds.
|
|
341
|
-
* - If the LS bit is 1, the value is number of 4 seconds interval in the whole interval. So 3 is 12 seconds, 11 is 44 seconds and 65535 is more than 3 days.
|
|
342
|
-
*/
|
|
343
|
-
const validity = option.value.readUInt16BE(0);
|
|
344
|
-
let validFor = 0;
|
|
345
|
-
if ((validity & 0x1) === 0) {
|
|
346
|
-
validFor = Math.floor(validity / 10);
|
|
347
|
-
}
|
|
348
|
-
else {
|
|
349
|
-
validFor = validity * 4;
|
|
350
|
-
}
|
|
351
|
-
this.log.info(`Option: COIOT_OPTION_VALIDITY => 0x${option.value.toString('hex')} => valid for: ${GREEN}${validFor}${nf} seconds`);
|
|
352
|
-
}
|
|
353
|
-
else
|
|
354
|
-
this.log.info(`Option: ${option.number} - ${option.value
|
|
355
|
-
.toString('hex')
|
|
356
|
-
.match(/.{1,2}/g)
|
|
357
|
-
?.join(' ')}`); // Split into pairs of hex characters
|
|
358
|
-
});
|
|
359
|
-
if (msg.payload && msg.payload.length > 0)
|
|
360
|
-
this.log.info(`Payload:`, JSON.parse(msg.payload.toString()), '\n');
|
|
361
|
-
else
|
|
362
|
-
this.log.info(`No payload`, '\n');
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
//# sourceMappingURL=coap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"coap.js","sourceRoot":"","sources":["../src/coap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,144 +0,0 @@
|
|
|
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
|
-
import dgram from 'node:dgram';
|
|
24
|
-
import EventEmitter from 'node:events';
|
|
25
|
-
import { AddressInfo } from 'node:net';
|
|
26
|
-
import { AnsiLogger } from 'node-ansi-logger';
|
|
27
|
-
/**
|
|
28
|
-
* Represents the Dgram events.
|
|
29
|
-
*/
|
|
30
|
-
export interface DgramEvents {
|
|
31
|
-
error: [error: Error];
|
|
32
|
-
close: [];
|
|
33
|
-
connect: [];
|
|
34
|
-
message: [msg: Buffer, rinfo: dgram.RemoteInfo];
|
|
35
|
-
listening: [address: AddressInfo];
|
|
36
|
-
sent: [msg: Buffer, serverAddress: string, serverPort: number];
|
|
37
|
-
ready: [address: AddressInfo];
|
|
38
|
-
bound: [address: AddressInfo];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* This class implements a dgram socket.
|
|
42
|
-
*/
|
|
43
|
-
export declare class Dgram extends EventEmitter<DgramEvents> {
|
|
44
|
-
verbose: boolean;
|
|
45
|
-
debug: boolean;
|
|
46
|
-
silent: boolean;
|
|
47
|
-
log: AnsiLogger;
|
|
48
|
-
socket: dgram.Socket;
|
|
49
|
-
bound: boolean;
|
|
50
|
-
socketType: 'udp4' | 'udp6';
|
|
51
|
-
interfaceName?: string;
|
|
52
|
-
interfaceAddress?: string;
|
|
53
|
-
interfaceNetmask?: string;
|
|
54
|
-
excludedInterfaceNamePattern: RegExp;
|
|
55
|
-
/**
|
|
56
|
-
* Creates an instance of Dgram.
|
|
57
|
-
*
|
|
58
|
-
* @param {string} name - The name of the socket.
|
|
59
|
-
* @param {'udp4' | 'udp6'} socketType - The type of the socket (IPv4 or IPv6).
|
|
60
|
-
* @param {boolean | undefined} reuseAddr - Whether to allow address reuse. Defaults to true.
|
|
61
|
-
* @param {string} [interfaceName] - The name of the network interface to bind to.
|
|
62
|
-
* @param {string} [interfaceAddress] - The address of the network interface to bind to.
|
|
63
|
-
*/
|
|
64
|
-
constructor(name: string, socketType: 'udp4' | 'udp6', reuseAddr?: boolean | undefined, interfaceName?: string, interfaceAddress?: string);
|
|
65
|
-
/**
|
|
66
|
-
* Sends a message to the specified server.
|
|
67
|
-
*
|
|
68
|
-
* @param {Buffer} msg - The message buffer to send.
|
|
69
|
-
* @param {string} serverAddress - The IPv4 address of the destination server.
|
|
70
|
-
* @param {number} serverPort - The port of the destination server.
|
|
71
|
-
*/
|
|
72
|
-
send(msg: Buffer, serverAddress: string, serverPort: number): void;
|
|
73
|
-
onError(error: Error): void;
|
|
74
|
-
onClose(): void;
|
|
75
|
-
onConnect(): void;
|
|
76
|
-
onSent(msg: Buffer, serverAddress: string, serverPort: number): void;
|
|
77
|
-
onMessage(msg: Buffer, rinfo: dgram.RemoteInfo): void;
|
|
78
|
-
onListening(address: AddressInfo): void;
|
|
79
|
-
onReady(address: AddressInfo): void;
|
|
80
|
-
/**
|
|
81
|
-
* Retrieves the IPv4 address of the specified network interface or the first external IPv4 interface if no interface is specified.
|
|
82
|
-
* Throws an error if no suitable interface or address is found.
|
|
83
|
-
*
|
|
84
|
-
* @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.
|
|
85
|
-
* @returns {string | undefined} The IPv4 address of the specified network interface or the first external IPv4 interface.
|
|
86
|
-
* @throws {Error} if no suitable interface or address is found.
|
|
87
|
-
*/
|
|
88
|
-
getIpv4InterfaceAddress(networkInterface?: string): string | undefined;
|
|
89
|
-
/**
|
|
90
|
-
* Retrieves the IPv6 address of the specified network interface or the first external IPv6 interface if no interface is specified.
|
|
91
|
-
* Throws an error if no suitable interface or address is found.
|
|
92
|
-
*
|
|
93
|
-
* @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.
|
|
94
|
-
* @returns {string | undefined} The IPv6 address of the specified network interface or the first external IPv6 interface.
|
|
95
|
-
* @throws {Error} If no suitable interface or address is found.
|
|
96
|
-
*/
|
|
97
|
-
getIpv6InterfaceAddress(networkInterface?: string): string | undefined;
|
|
98
|
-
/**
|
|
99
|
-
* Retrieves the names of all available network interfaces.
|
|
100
|
-
*
|
|
101
|
-
* @returns {string[]} An array of network interface names.
|
|
102
|
-
*/
|
|
103
|
-
getInterfacesNames(): string[];
|
|
104
|
-
/**
|
|
105
|
-
* Retrieves the scope ID of the first found IPv6 address on the specified network interface or on any interface if none is specified.
|
|
106
|
-
*
|
|
107
|
-
* @param {string} [interfaceName] - The name of the network interface. If not provided, the first found IPv6 address will be used.
|
|
108
|
-
* @returns {string} The scope ID of the first found IPv6 address or an empty string.
|
|
109
|
-
*/
|
|
110
|
-
getIpv6ScopeId(interfaceName?: string): string;
|
|
111
|
-
/**
|
|
112
|
-
* Retrieves the interface name from the scope id of an IPv6 address.
|
|
113
|
-
*
|
|
114
|
-
* @param {number} scopeId - The scope id of the IPv6 address.
|
|
115
|
-
* @returns {string | undefined} The interface name or undefined if not found.
|
|
116
|
-
*/
|
|
117
|
-
getInterfaceNameFromScopeId(scopeId: number): string | undefined;
|
|
118
|
-
/**
|
|
119
|
-
* Retrieves the netmask of the specified interface address.
|
|
120
|
-
*
|
|
121
|
-
* @param {string} interfaceAddress - The interface address for which to retrieve the netmask.
|
|
122
|
-
* @returns {string | undefined} The netmask of the specified interface address or undefined if not found.
|
|
123
|
-
*/
|
|
124
|
-
getNetmask(interfaceAddress: string): string | undefined;
|
|
125
|
-
/**
|
|
126
|
-
* Computes the broadcast address given an IPv4 address and netmask.
|
|
127
|
-
*
|
|
128
|
-
* @param {string | undefined} [ipAddress] - The IPv4 address e.g. "192.168.1.20"
|
|
129
|
-
* @param {string | undefined} [netmask] - The IPv4 netmask e.g. "255.255.255.0"
|
|
130
|
-
* @returns {string | undefined} The computed broadcast address, e.g. "192.168.1.255"
|
|
131
|
-
*/
|
|
132
|
-
getIpv4BroadcastAddress(ipAddress: string | undefined, netmask: string | undefined): string | undefined;
|
|
133
|
-
/**
|
|
134
|
-
* Returns the broadcast IPv6 address.
|
|
135
|
-
*
|
|
136
|
-
* @returns {string} The broadcast IPv6 address, e.g. "ff02::1"
|
|
137
|
-
*/
|
|
138
|
-
getIpv6BroadcastAddress(): string;
|
|
139
|
-
/**
|
|
140
|
-
* Logs all available network interfaces and their details.
|
|
141
|
-
*/
|
|
142
|
-
listNetworkInterfaces(): void;
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=dgram.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dgram.d.ts","sourceRoot":"","sources":["../src/dgram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,YAAY,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC,OAAO,EAAE,UAAU,EAAoD,MAAM,kBAAkB,CAAC;AAGhG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAChD,SAAS,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/D,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9B,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,KAAM,SAAQ,YAAY,CAAC,WAAW,CAAC;IAClD,OAAO,UAAgD;IACvD,KAAK,UAA8F;IACnG,MAAM,UAA+C;IACrD,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;IACrB,KAAK,UAAS;IACd,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4BAA4B,SAC4N;IAExP;;;;;;;;OAQG;gBACS,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,GAAE,OAAO,GAAG,SAAgB,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAiD/I;;;;;;OAMG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAc3D,OAAO,CAAC,KAAK,EAAE,KAAK;IAIpB,OAAO;IAIP,SAAS;IAIT,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI7D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU;IAI9C,WAAW,CAAC,OAAO,EAAE,WAAW;IAKhC,OAAO,CAAC,OAAO,EAAE,WAAW;IAK5B;;;;;;;OAOG;IACH,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAyCtE;;;;;;;OAOG;IACH,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IA2DtE;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAW9B;;;;;OAKG;IACH,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM;IAgB9C;;;;;OAKG;IACH,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAchE;;;;;OAKG;IACH,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkBxD;;;;;;OAMG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAUvG;;;;OAIG;IACH,uBAAuB,IAAI,MAAM;IAIjC;;OAEG;IACH,qBAAqB;CAYtB"}
|