zwave-js 14.3.3 → 14.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/build/cjs/lib/_version.d.ts +1 -1
  2. package/build/cjs/lib/_version.js +1 -1
  3. package/build/cjs/lib/_version.js.map +1 -1
  4. package/build/cjs/lib/controller/Controller.js +66 -60
  5. package/build/cjs/lib/controller/Controller.js.map +1 -1
  6. package/build/cjs/lib/controller/ControllerStatistics.js +4 -0
  7. package/build/cjs/lib/controller/ControllerStatistics.js.map +1 -1
  8. package/build/cjs/lib/controller/FirmwareUpdateService.js +8 -0
  9. package/build/cjs/lib/controller/FirmwareUpdateService.js.map +1 -1
  10. package/build/cjs/lib/controller/MockControllerBehaviors.js +3 -0
  11. package/build/cjs/lib/controller/MockControllerBehaviors.js.map +1 -1
  12. package/build/cjs/lib/controller/NVMIO.js +7 -0
  13. package/build/cjs/lib/controller/NVMIO.js.map +1 -1
  14. package/build/cjs/lib/controller/NodeInformationFrame.js +2 -0
  15. package/build/cjs/lib/controller/NodeInformationFrame.js.map +1 -1
  16. package/build/cjs/lib/controller/ZWaveSDKVersions.js +3 -0
  17. package/build/cjs/lib/controller/ZWaveSDKVersions.js.map +1 -1
  18. package/build/cjs/lib/controller/utils.js +4 -0
  19. package/build/cjs/lib/controller/utils.js.map +1 -1
  20. package/build/cjs/lib/driver/Bootloader.js +4 -0
  21. package/build/cjs/lib/driver/Bootloader.js.map +1 -1
  22. package/build/cjs/lib/driver/Driver.js +63 -56
  23. package/build/cjs/lib/driver/Driver.js.map +1 -1
  24. package/build/cjs/lib/driver/DriverMock.js +6 -3
  25. package/build/cjs/lib/driver/DriverMock.js.map +1 -1
  26. package/build/cjs/lib/driver/MessageGenerators.js +26 -18
  27. package/build/cjs/lib/driver/MessageGenerators.js.map +1 -1
  28. package/build/cjs/lib/driver/NetworkCache.js +43 -23
  29. package/build/cjs/lib/driver/NetworkCache.js.map +1 -1
  30. package/build/cjs/lib/driver/Queue.js +6 -2
  31. package/build/cjs/lib/driver/Queue.js.map +1 -1
  32. package/build/cjs/lib/driver/SerialAPICommandMachine.js +45 -40
  33. package/build/cjs/lib/driver/SerialAPICommandMachine.js.map +1 -1
  34. package/build/cjs/lib/driver/StateMachineShared.js +5 -0
  35. package/build/cjs/lib/driver/StateMachineShared.js.map +1 -1
  36. package/build/cjs/lib/driver/Statistics.js +4 -0
  37. package/build/cjs/lib/driver/Statistics.js.map +1 -1
  38. package/build/cjs/lib/driver/Task.js +9 -2
  39. package/build/cjs/lib/driver/Task.js.map +1 -1
  40. package/build/cjs/lib/driver/Transaction.js +8 -4
  41. package/build/cjs/lib/driver/Transaction.js.map +1 -1
  42. package/build/cjs/lib/driver/TransportServiceMachine.js +9 -7
  43. package/build/cjs/lib/driver/TransportServiceMachine.js.map +1 -1
  44. package/build/cjs/lib/driver/UpdateConfig.js +8 -4
  45. package/build/cjs/lib/driver/UpdateConfig.js.map +1 -1
  46. package/build/cjs/lib/driver/UserAgent.js +4 -0
  47. package/build/cjs/lib/driver/UserAgent.js.map +1 -1
  48. package/build/cjs/lib/driver/mDNSDiscovery.js +2 -0
  49. package/build/cjs/lib/driver/mDNSDiscovery.js.map +1 -1
  50. package/build/cjs/lib/log/Driver.js +6 -2
  51. package/build/cjs/lib/log/Driver.js.map +1 -1
  52. package/build/cjs/lib/log/Zniffer.js +6 -2
  53. package/build/cjs/lib/log/Zniffer.js.map +1 -1
  54. package/build/cjs/lib/node/DeviceClass.js +4 -0
  55. package/build/cjs/lib/node/DeviceClass.js.map +1 -1
  56. package/build/cjs/lib/node/Endpoint.js +9 -5
  57. package/build/cjs/lib/node/Endpoint.js.map +1 -1
  58. package/build/cjs/lib/node/HealthCheck.js +6 -0
  59. package/build/cjs/lib/node/HealthCheck.js.map +1 -1
  60. package/build/cjs/lib/node/MockNodeBehaviors.js +2 -0
  61. package/build/cjs/lib/node/MockNodeBehaviors.js.map +1 -1
  62. package/build/cjs/lib/node/MultiCCAPIWrapper.js +10 -8
  63. package/build/cjs/lib/node/MultiCCAPIWrapper.js.map +1 -1
  64. package/build/cjs/lib/node/Node.js +51 -46
  65. package/build/cjs/lib/node/Node.js.map +1 -1
  66. package/build/cjs/lib/node/NodeReadyMachine.js +3 -1
  67. package/build/cjs/lib/node/NodeReadyMachine.js.map +1 -1
  68. package/build/cjs/lib/node/NodeStatistics.js +5 -0
  69. package/build/cjs/lib/node/NodeStatistics.js.map +1 -1
  70. package/build/cjs/lib/node/NodeStatusMachine.js +5 -2
  71. package/build/cjs/lib/node/NodeStatusMachine.js.map +1 -1
  72. package/build/cjs/lib/node/VirtualEndpoint.js +8 -4
  73. package/build/cjs/lib/node/VirtualEndpoint.js.map +1 -1
  74. package/build/cjs/lib/node/VirtualNode.js +7 -2
  75. package/build/cjs/lib/node/VirtualNode.js.map +1 -1
  76. package/build/cjs/lib/node/mixins/00_Base.js +4 -0
  77. package/build/cjs/lib/node/mixins/00_Base.js.map +1 -1
  78. package/build/cjs/lib/node/mixins/01_NetworkRole.js +4 -0
  79. package/build/cjs/lib/node/mixins/01_NetworkRole.js.map +1 -1
  80. package/build/cjs/lib/node/mixins/05_Security.js +7 -3
  81. package/build/cjs/lib/node/mixins/05_Security.js.map +1 -1
  82. package/build/cjs/lib/node/mixins/10_Events.js +4 -0
  83. package/build/cjs/lib/node/mixins/10_Events.js.map +1 -1
  84. package/build/cjs/lib/node/mixins/20_Status.js +4 -0
  85. package/build/cjs/lib/node/mixins/20_Status.js.map +1 -1
  86. package/build/cjs/lib/node/mixins/30_Wakeup.js +4 -0
  87. package/build/cjs/lib/node/mixins/30_Wakeup.js.map +1 -1
  88. package/build/cjs/lib/node/mixins/40_Values.js +4 -0
  89. package/build/cjs/lib/node/mixins/40_Values.js.map +1 -1
  90. package/build/cjs/lib/node/mixins/50_Endpoints.js +4 -0
  91. package/build/cjs/lib/node/mixins/50_Endpoints.js.map +1 -1
  92. package/build/cjs/lib/node/mixins/60_ScheduledPoll.js +4 -0
  93. package/build/cjs/lib/node/mixins/60_ScheduledPoll.js.map +1 -1
  94. package/build/cjs/lib/node/mixins/70_FirmwareUpdate.js +8 -3
  95. package/build/cjs/lib/node/mixins/70_FirmwareUpdate.js.map +1 -1
  96. package/build/cjs/lib/node/mixins/index.js +4 -0
  97. package/build/cjs/lib/node/mixins/index.js.map +1 -1
  98. package/build/cjs/lib/node/mockCCBehaviors/ColorSwitch.js +2 -1
  99. package/build/cjs/lib/node/mockCCBehaviors/ColorSwitch.js.map +1 -1
  100. package/build/cjs/lib/node/mockCCBehaviors/Configuration.js +2 -1
  101. package/build/cjs/lib/node/mockCCBehaviors/Configuration.js.map +1 -1
  102. package/build/cjs/lib/node/mockCCBehaviors/ScheduleEntryLock.js +2 -1
  103. package/build/cjs/lib/node/mockCCBehaviors/ScheduleEntryLock.js.map +1 -1
  104. package/build/cjs/lib/node/mockCCBehaviors/ThermostatSetpoint.js +3 -2
  105. package/build/cjs/lib/node/mockCCBehaviors/ThermostatSetpoint.js.map +1 -1
  106. package/build/cjs/lib/node/mockCCBehaviors/UserCode.js +3 -2
  107. package/build/cjs/lib/node/mockCCBehaviors/UserCode.js.map +1 -1
  108. package/build/cjs/lib/node/utils.js +22 -2
  109. package/build/cjs/lib/node/utils.js.map +1 -1
  110. package/build/cjs/lib/telemetry/deviceConfig.js +2 -0
  111. package/build/cjs/lib/telemetry/deviceConfig.js.map +1 -1
  112. package/build/cjs/lib/telemetry/statistics.js +3 -0
  113. package/build/cjs/lib/telemetry/statistics.js.map +1 -1
  114. package/build/cjs/lib/zniffer/MPDU.js +57 -0
  115. package/build/cjs/lib/zniffer/MPDU.js.map +1 -1
  116. package/build/cjs/lib/zniffer/Zniffer.js +10 -3
  117. package/build/cjs/lib/zniffer/Zniffer.js.map +1 -1
  118. package/build/cjs/mockServer.js +14 -0
  119. package/build/cjs/mockServer.js.map +1 -1
  120. package/build/esm/lib/_version.d.ts +1 -1
  121. package/build/esm/lib/_version.js +1 -1
  122. package/package.json +12 -12
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/node/mockCCBehaviors/UserCode.ts"],
4
4
  "sourcesContent": ["import { KeypadMode, UserIDStatus } from \"@zwave-js/cc\";\nimport {\n\tUserCodeCCAdminCodeGet,\n\tUserCodeCCAdminCodeReport,\n\tUserCodeCCAdminCodeSet,\n\tUserCodeCCCapabilitiesGet,\n\tUserCodeCCCapabilitiesReport,\n\tUserCodeCCGet,\n\tUserCodeCCKeypadModeGet,\n\tUserCodeCCKeypadModeReport,\n\tUserCodeCCKeypadModeSet,\n\tUserCodeCCReport,\n\tUserCodeCCSet,\n\tUserCodeCCUserCodeChecksumGet,\n\tUserCodeCCUserCodeChecksumReport,\n\tUserCodeCCUsersNumberGet,\n\tUserCodeCCUsersNumberReport,\n} from \"@zwave-js/cc/UserCodeCC\";\nimport { CRC16_CCITT, CommandClasses } from \"@zwave-js/core/safe\";\nimport { Bytes } from \"@zwave-js/shared\";\nimport {\n\ttype MockNodeBehavior,\n\ttype UserCodeCCCapabilities,\n} from \"@zwave-js/testing\";\n\nexport const defaultCapabilities: UserCodeCCCapabilities = {\n\tnumUsers: 1,\n\tsupportedASCIIChars: \"0123456789\",\n\tsupportsAdminCode: true,\n\tsupportsAdminCodeDeactivation: true,\n\tsupportsUserCodeChecksum: true,\n\tsupportedKeypadModes: [KeypadMode.Normal],\n\tsupportedUserIDStatuses: [\n\t\tUserIDStatus.Available,\n\t\tUserIDStatus.Enabled,\n\t\tUserIDStatus.Disabled,\n\t],\n};\n\nconst STATE_KEY_PREFIX = \"UserCode_\";\nconst StateKeys = {\n\tuserCode: (userId: number) => `${STATE_KEY_PREFIX}userCode_${userId}`,\n\tuserIdStatus: (userId: number) =>\n\t\t`${STATE_KEY_PREFIX}userIdStatus_${userId}`,\n\tadminCode: `${STATE_KEY_PREFIX}adminCode`,\n\tkeypadMode: `${STATE_KEY_PREFIX}keypadMode`,\n} as const;\n\nconst respondToUsersNumberGet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCUsersNumberGet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tconst cc = new UserCodeCCUsersNumberReport({\n\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\tsupportedUsers: capabilities.numUsers ?? 1,\n\t\t\t});\n\t\t\treturn { action: \"sendCC\", cc };\n\t\t}\n\t},\n};\n\nconst respondToUserGet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCGet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tconst userId = receivedCC.userId;\n\t\t\tlet cc: UserCodeCCReport;\n\t\t\tif (capabilities.numUsers >= userId) {\n\t\t\t\tcc = new UserCodeCCReport({\n\t\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\t\tuserId,\n\t\t\t\t\tuserIdStatus: (self.state.get(\n\t\t\t\t\t\tStateKeys.userIdStatus(userId),\n\t\t\t\t\t) ?? UserIDStatus.Available) as UserIDStatus,\n\t\t\t\t\tuserCode: self.state.get(\n\t\t\t\t\t\tStateKeys.userCode(userId),\n\t\t\t\t\t) as string,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcc = new UserCodeCCReport({\n\t\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\t\tuserId,\n\t\t\t\t\tuserIdStatus: UserIDStatus.StatusNotAvailable,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn { action: \"sendCC\", cc };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeSet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCSet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tconst userId = receivedCC.userId;\n\t\t\tconst userIdStatus = receivedCC.userIdStatus;\n\t\t\tif (capabilities.numUsers >= userId) {\n\t\t\t\tself.state.set(StateKeys.userIdStatus(userId), userIdStatus);\n\n\t\t\t\tconst code = userIdStatus !== UserIDStatus.Available\n\t\t\t\t\t\t&& userIdStatus !== UserIDStatus.StatusNotAvailable\n\t\t\t\t\t? receivedCC.userCode\n\t\t\t\t\t: undefined;\n\n\t\t\t\tself.state.set(StateKeys.userCode(userId), code);\n\t\t\t\treturn { action: \"ok\" };\n\t\t\t}\n\t\t\treturn { action: \"fail\" };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeCapabilitiesGet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCCapabilitiesGet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tconst cc = new UserCodeCCCapabilitiesReport({\n\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\tsupportsAdminCode: capabilities.supportsAdminCode!,\n\t\t\t\tsupportsAdminCodeDeactivation: capabilities\n\t\t\t\t\t.supportsAdminCodeDeactivation!,\n\t\t\t\tsupportsUserCodeChecksum: capabilities\n\t\t\t\t\t.supportsUserCodeChecksum!,\n\t\t\t\tsupportsMultipleUserCodeReport: false,\n\t\t\t\tsupportsMultipleUserCodeSet: false,\n\t\t\t\tsupportedUserIDStatuses: capabilities.supportedUserIDStatuses!,\n\t\t\t\tsupportedKeypadModes: capabilities.supportedKeypadModes!,\n\t\t\t\tsupportedASCIIChars: capabilities.supportedASCIIChars!,\n\t\t\t});\n\t\t\treturn { action: \"sendCC\", cc };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeKeypadModeGet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCKeypadModeGet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tconst cc = new UserCodeCCKeypadModeReport({\n\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\tkeypadMode: (self.state.get(StateKeys.keypadMode)\n\t\t\t\t\t?? capabilities.supportedKeypadModes?.[0]\n\t\t\t\t\t?? KeypadMode.Normal) as KeypadMode,\n\t\t\t});\n\t\t\treturn { action: \"sendCC\", cc };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeKeypadModeSet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCKeypadModeSet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tif (\n\t\t\t\tcapabilities.supportedKeypadModes?.includes(\n\t\t\t\t\treceivedCC.keypadMode,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tself.state.set(StateKeys.keypadMode, receivedCC.keypadMode);\n\t\t\t\treturn { action: \"ok\" };\n\t\t\t}\n\t\t\treturn { action: \"fail\" };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeAdminCodeSet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCAdminCodeSet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tconst adminCode = receivedCC.adminCode;\n\t\t\tif (capabilities.supportsAdminCode) {\n\t\t\t\tif (\n\t\t\t\t\tadminCode.length > 0\n\t\t\t\t\t|| capabilities.supportsAdminCodeDeactivation\n\t\t\t\t) {\n\t\t\t\t\tself.state.set(\n\t\t\t\t\t\tStateKeys.adminCode,\n\t\t\t\t\t\treceivedCC.adminCode,\n\t\t\t\t\t);\n\t\t\t\t\treturn { action: \"ok\" };\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn { action: \"fail\" };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeAdminCodeGet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCAdminCodeGet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tlet adminCode: string | undefined;\n\t\t\tif (capabilities.supportsAdminCode) {\n\t\t\t\tadminCode = self.state.get(StateKeys.adminCode) as string;\n\t\t\t}\n\n\t\t\tconst cc = new UserCodeCCAdminCodeReport({\n\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\tadminCode: adminCode ?? \"\",\n\t\t\t});\n\t\t\treturn { action: \"sendCC\", cc };\n\t\t}\n\t},\n};\n\nconst respondToUserCodeUserCodeChecksumGet: MockNodeBehavior = {\n\thandleCC(controller, self, receivedCC) {\n\t\tif (receivedCC instanceof UserCodeCCUserCodeChecksumGet) {\n\t\t\tconst capabilities = {\n\t\t\t\t...defaultCapabilities,\n\t\t\t\t...self.getCCCapabilities(\n\t\t\t\t\tCommandClasses[\"User Code\"],\n\t\t\t\t\treceivedCC.endpointIndex,\n\t\t\t\t),\n\t\t\t};\n\t\t\tif (capabilities.supportsUserCodeChecksum) {\n\t\t\t\tlet data = new Bytes();\n\t\t\t\tfor (let i = 1; i <= capabilities.numUsers; i++) {\n\t\t\t\t\tconst status = self.state.get(\n\t\t\t\t\t\tStateKeys.userIdStatus(i),\n\t\t\t\t\t) as UserIDStatus;\n\t\t\t\t\tlet code = (self.state.get(StateKeys.userCode(i)) ?? \"\") as\n\t\t\t\t\t\t| string\n\t\t\t\t\t\t| Bytes;\n\t\t\t\t\tif (\n\t\t\t\t\t\tstatus === undefined\n\t\t\t\t\t\t|| status === UserIDStatus.Available\n\t\t\t\t\t\t|| code.length === 0\n\t\t\t\t\t) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tconst tmp = new Bytes(3 + code.length);\n\t\t\t\t\ttmp.writeUInt16BE(i, 0);\n\t\t\t\t\ttmp[2] = status;\n\t\t\t\t\tif (typeof code === \"string\") {\n\t\t\t\t\t\tcode = Bytes.from(code, \"ascii\");\n\t\t\t\t\t}\n\t\t\t\t\ttmp.set(code, 3);\n\t\t\t\t\tdata = Bytes.concat([data, tmp]);\n\t\t\t\t}\n\n\t\t\t\tconst checksum = data.length > 0 ? CRC16_CCITT(data) : 0x0000;\n\n\t\t\t\tconst cc = new UserCodeCCUserCodeChecksumReport({\n\t\t\t\t\tnodeId: controller.ownNodeId,\n\t\t\t\t\tuserCodeChecksum: checksum,\n\t\t\t\t});\n\t\t\t\treturn { action: \"sendCC\", cc };\n\t\t\t}\n\t\t\treturn { action: \"stop\" };\n\t\t}\n\t},\n};\n\nexport const UserCodeCCBehaviors = [\n\trespondToUsersNumberGet,\n\trespondToUserGet,\n\trespondToUserCodeSet,\n\trespondToUserCodeCapabilitiesGet,\n\trespondToUserCodeKeypadModeGet,\n\trespondToUserCodeKeypadModeSet,\n\trespondToUserCodeAdminCodeGet,\n\trespondToUserCodeAdminCodeSet,\n\trespondToUserCodeUserCodeChecksumGet,\n];\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -43,30 +44,39 @@ var import_core = require("@zwave-js/core");
43
44
  function getValue(ctx, nodeId, valueId) {
44
45
  return ctx.getValueDB(nodeId).getValue(valueId);
45
46
  }
47
+ __name(getValue, "getValue");
46
48
  function setValue(ctx, nodeId, valueId, value, options) {
47
49
  return ctx.getValueDB(nodeId).setValue(valueId, value, options);
48
50
  }
51
+ __name(setValue, "setValue");
49
52
  function endpointCountIsDynamic(ctx, nodeId) {
50
53
  return getValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.endpointCountIsDynamic.id);
51
54
  }
55
+ __name(endpointCountIsDynamic, "endpointCountIsDynamic");
52
56
  function endpointsHaveIdenticalCapabilities(ctx, nodeId) {
53
57
  return getValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.endpointsHaveIdenticalCapabilities.id);
54
58
  }
59
+ __name(endpointsHaveIdenticalCapabilities, "endpointsHaveIdenticalCapabilities");
55
60
  function getIndividualEndpointCount(ctx, nodeId) {
56
61
  return getValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.individualEndpointCount.id);
57
62
  }
63
+ __name(getIndividualEndpointCount, "getIndividualEndpointCount");
58
64
  function getAggregatedEndpointCount(ctx, nodeId) {
59
65
  return getValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.aggregatedEndpointCount.id);
60
66
  }
67
+ __name(getAggregatedEndpointCount, "getAggregatedEndpointCount");
61
68
  function getEndpointCount(ctx, nodeId) {
62
69
  return (getIndividualEndpointCount(ctx, nodeId) || 0) + (getAggregatedEndpointCount(ctx, nodeId) || 0);
63
70
  }
71
+ __name(getEndpointCount, "getEndpointCount");
64
72
  function setIndividualEndpointCount(ctx, nodeId, count) {
65
73
  setValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.individualEndpointCount.id, count);
66
74
  }
75
+ __name(setIndividualEndpointCount, "setIndividualEndpointCount");
67
76
  function setAggregatedEndpointCount(ctx, nodeId, count) {
68
77
  setValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.aggregatedEndpointCount.id, count);
69
78
  }
79
+ __name(setAggregatedEndpointCount, "setAggregatedEndpointCount");
70
80
  function getEndpointIndizes(ctx, nodeId) {
71
81
  let ret = getValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.endpointIndizes.id);
72
82
  if (!ret) {
@@ -77,9 +87,11 @@ function getEndpointIndizes(ctx, nodeId) {
77
87
  }
78
88
  return ret;
79
89
  }
90
+ __name(getEndpointIndizes, "getEndpointIndizes");
80
91
  function setEndpointIndizes(ctx, nodeId, indizes) {
81
92
  setValue(ctx, nodeId, import_MultiChannelCC.MultiChannelCCValues.endpointIndizes.id, indizes);
82
93
  }
94
+ __name(setEndpointIndizes, "setEndpointIndizes");
83
95
  function isMultiChannelInterviewComplete(ctx, nodeId) {
84
96
  return !!getValue(ctx, nodeId, {
85
97
  commandClass: import_core.CommandClasses["Multi Channel"],
@@ -87,6 +99,7 @@ function isMultiChannelInterviewComplete(ctx, nodeId) {
87
99
  property: "interviewComplete"
88
100
  });
89
101
  }
102
+ __name(isMultiChannelInterviewComplete, "isMultiChannelInterviewComplete");
90
103
  function setMultiChannelInterviewComplete(ctx, nodeId, complete) {
91
104
  setValue(ctx, nodeId, {
92
105
  commandClass: import_core.CommandClasses["Multi Channel"],
@@ -94,6 +107,7 @@ function setMultiChannelInterviewComplete(ctx, nodeId, complete) {
94
107
  property: "interviewComplete"
95
108
  }, complete);
96
109
  }
110
+ __name(setMultiChannelInterviewComplete, "setMultiChannelInterviewComplete");
97
111
  function getAllEndpoints(ctx, node) {
98
112
  const ret = [node];
99
113
  if (isMultiChannelInterviewComplete(ctx, node.nodeId)) {
@@ -105,6 +119,7 @@ function getAllEndpoints(ctx, node) {
105
119
  }
106
120
  return ret;
107
121
  }
122
+ __name(getAllEndpoints, "getAllEndpoints");
108
123
  function shouldHideRootApplicationCCValues(ctx, nodeId) {
109
124
  const compatConfig = ctx.getDeviceConfig?.(nodeId)?.compat;
110
125
  if (compatConfig?.preserveRootApplicationCCValueIDs)
@@ -118,6 +133,7 @@ function shouldHideRootApplicationCCValues(ctx, nodeId) {
118
133
  }
119
134
  return true;
120
135
  }
136
+ __name(shouldHideRootApplicationCCValues, "shouldHideRootApplicationCCValues");
121
137
  function translateValueID(ctx, endpoint, valueId) {
122
138
  const commandClassName = (0, import_core.getCCName)(valueId.commandClass);
123
139
  const ret = {
@@ -135,8 +151,9 @@ function translateValueID(ctx, endpoint, valueId) {
135
151
  }
136
152
  return ret;
137
153
  }
154
+ __name(translateValueID, "translateValueID");
138
155
  function filterRootApplicationCCValueIDs(allValueIds) {
139
- const shouldHideRootValueID = (valueId, allValueIds2) => {
156
+ const shouldHideRootValueID = /* @__PURE__ */ __name((valueId, allValueIds2) => {
140
157
  if (!!valueId.endpoint)
141
158
  return false;
142
159
  if (!import_core.applicationCCs.includes(valueId.commandClass))
@@ -146,12 +163,14 @@ function filterRootApplicationCCValueIDs(allValueIds) {
146
163
  other.commandClass === valueId.commandClass && !!other.endpoint && other.property === valueId.property && other.propertyKey === valueId.propertyKey
147
164
  ));
148
165
  return valueExistsOnAnotherEndpoint;
149
- };
166
+ }, "shouldHideRootValueID");
150
167
  return allValueIds.filter((vid) => !shouldHideRootValueID(vid, allValueIds));
151
168
  }
169
+ __name(filterRootApplicationCCValueIDs, "filterRootApplicationCCValueIDs");
152
170
  function getDefinedValueIDs(ctx, node) {
153
171
  return getDefinedValueIDsInternal(ctx, node, false);
154
172
  }
173
+ __name(getDefinedValueIDs, "getDefinedValueIDs");
155
174
  function getDefinedValueIDsInternal(ctx, node, includeInternal = false) {
156
175
  if (node.id === ctx.ownNodeId)
157
176
  return [];
@@ -177,6 +196,7 @@ function getDefinedValueIDsInternal(ctx, node, includeInternal = false) {
177
196
  }
178
197
  return ret.map((id) => translateValueID(ctx, node, id));
179
198
  }
199
+ __name(getDefinedValueIDsInternal, "getDefinedValueIDsInternal");
180
200
  // Annotate the CommonJS export names for ESM import in node:
181
201
  0 && (module.exports = {
182
202
  endpointCountIsDynamic,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/node/utils.ts"],
4
4
  "sourcesContent": ["import { CommandClass } from \"@zwave-js/cc\";\nimport { MultiChannelCCValues } from \"@zwave-js/cc/MultiChannelCC\";\nimport {\n\tCommandClasses,\n\ttype ControlsCC,\n\ttype EndpointId,\n\ttype GetEndpoint,\n\ttype MaybeNotKnown,\n\ttype NodeId,\n\ttype SetValueOptions,\n\ttype SupportsCC,\n\ttype TranslatedValueID,\n\ttype ValueID,\n\tZWaveError,\n\tZWaveErrorCodes,\n\tallCCs,\n\tapplicationCCs,\n\tgetCCName,\n} from \"@zwave-js/core\";\nimport type {\n\tGetDeviceConfig,\n\tGetNode,\n\tGetSupportedCCVersion,\n\tGetValueDB,\n\tHostIDs,\n} from \"@zwave-js/host\";\n\nfunction getValue<T>(\n\tctx: GetValueDB,\n\tnodeId: number,\n\tvalueId: ValueID,\n): T | undefined {\n\treturn ctx.getValueDB(nodeId).getValue(valueId);\n}\n\nfunction setValue(\n\tctx: GetValueDB,\n\tnodeId: number,\n\tvalueId: ValueID,\n\tvalue: unknown,\n\toptions?: SetValueOptions,\n): void {\n\treturn ctx.getValueDB(nodeId).setValue(valueId, value, options);\n}\n\nexport function endpointCountIsDynamic(\n\tctx: GetValueDB,\n\tnodeId: number,\n): MaybeNotKnown<boolean> {\n\treturn getValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.endpointCountIsDynamic.id,\n\t);\n}\n\nexport function endpointsHaveIdenticalCapabilities(\n\tctx: GetValueDB,\n\tnodeId: number,\n): MaybeNotKnown<boolean> {\n\treturn getValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.endpointsHaveIdenticalCapabilities.id,\n\t);\n}\n\nexport function getIndividualEndpointCount(\n\tctx: GetValueDB,\n\tnodeId: number,\n): MaybeNotKnown<number> {\n\treturn getValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.individualEndpointCount.id,\n\t);\n}\n\nexport function getAggregatedEndpointCount(\n\tctx: GetValueDB,\n\tnodeId: number,\n): MaybeNotKnown<number> {\n\treturn getValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.aggregatedEndpointCount.id,\n\t);\n}\n\nexport function getEndpointCount(\n\tctx: GetValueDB,\n\tnodeId: number,\n): number {\n\treturn (\n\t\t(getIndividualEndpointCount(ctx, nodeId) || 0)\n\t\t+ (getAggregatedEndpointCount(ctx, nodeId) || 0)\n\t);\n}\n\nexport function setIndividualEndpointCount(\n\tctx: GetValueDB,\n\tnodeId: number,\n\tcount: number,\n): void {\n\tsetValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.individualEndpointCount.id,\n\t\tcount,\n\t);\n}\n\nexport function setAggregatedEndpointCount(\n\tctx: GetValueDB,\n\tnodeId: number,\n\tcount: number,\n): void {\n\tsetValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.aggregatedEndpointCount.id,\n\t\tcount,\n\t);\n}\n\nexport function getEndpointIndizes(\n\tctx: GetValueDB,\n\tnodeId: number,\n): number[] {\n\tlet ret = getValue<number[]>(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.endpointIndizes.id,\n\t);\n\tif (!ret) {\n\t\t// Endpoint indizes not stored, assume sequential endpoints\n\t\tret = [];\n\t\tfor (let i = 1; i <= getEndpointCount(ctx, nodeId); i++) {\n\t\t\tret.push(i);\n\t\t}\n\t}\n\treturn ret;\n}\n\nexport function setEndpointIndizes(\n\tctx: GetValueDB,\n\tnodeId: number,\n\tindizes: number[],\n): void {\n\tsetValue(\n\t\tctx,\n\t\tnodeId,\n\t\tMultiChannelCCValues.endpointIndizes.id,\n\t\tindizes,\n\t);\n}\n\nexport function isMultiChannelInterviewComplete(\n\tctx: GetValueDB,\n\tnodeId: number,\n): boolean {\n\treturn !!getValue(ctx, nodeId, {\n\t\tcommandClass: CommandClasses[\"Multi Channel\"],\n\t\tendpoint: 0,\n\t\tproperty: \"interviewComplete\",\n\t});\n}\n\nexport function setMultiChannelInterviewComplete(\n\tctx: GetValueDB,\n\tnodeId: number,\n\tcomplete: boolean,\n): void {\n\tsetValue(\n\t\tctx,\n\t\tnodeId,\n\t\t{\n\t\t\tcommandClass: CommandClasses[\"Multi Channel\"],\n\t\t\tendpoint: 0,\n\t\t\tproperty: \"interviewComplete\",\n\t\t},\n\t\tcomplete,\n\t);\n}\n\nexport function getAllEndpoints<T extends EndpointId>(\n\tctx: GetValueDB,\n\tnode: T & GetEndpoint<EndpointId & T>,\n): T[] {\n\tconst ret: T[] = [node];\n\t// Check if the Multi Channel CC interview for this node is completed,\n\t// because we don't have all the endpoint information before that\n\tif (isMultiChannelInterviewComplete(ctx, node.nodeId)) {\n\t\tfor (const i of getEndpointIndizes(ctx, node.nodeId)) {\n\t\t\tconst endpoint = node.getEndpoint(i);\n\t\t\tif (endpoint) ret.push(endpoint);\n\t\t}\n\t}\n\treturn ret;\n}\n\n/** Determines whether the root application CC values should be hidden in favor of endpoint values */\nexport function shouldHideRootApplicationCCValues(\n\tctx: GetValueDB & GetDeviceConfig,\n\tnodeId: number,\n): boolean {\n\t// This is not the case when the root values should explicitly be preserved\n\tconst compatConfig = ctx.getDeviceConfig?.(nodeId)?.compat;\n\tif (compatConfig?.preserveRootApplicationCCValueIDs) return false;\n\n\t// This is not the case when there are no endpoints\n\tconst endpointIndizes = getEndpointIndizes(ctx, nodeId);\n\tif (endpointIndizes.length === 0) return false;\n\n\t// This is not the case when only individual endpoints should be preserved in addition to the root\n\tconst preserveEndpoints = compatConfig?.preserveEndpoints;\n\tif (\n\t\tpreserveEndpoints != undefined\n\t\t&& preserveEndpoints !== \"*\"\n\t\t&& preserveEndpoints.length !== endpointIndizes.length\n\t) {\n\t\treturn false;\n\t}\n\n\t// Otherwise they should be hidden\n\treturn true;\n}\n\n/**\n * Enhances a value id so it can be consumed better by applications\n */\nexport function translateValueID<T extends ValueID>(\n\tctx: GetValueDB,\n\tendpoint: EndpointId,\n\tvalueId: T,\n): T & TranslatedValueID {\n\t// Try to retrieve the speaking CC name\n\tconst commandClassName = getCCName(valueId.commandClass);\n\tconst ret: T & TranslatedValueID = {\n\t\tcommandClassName,\n\t\t...valueId,\n\t};\n\tconst ccInstance = CommandClass.createInstanceUnchecked(\n\t\tendpoint,\n\t\tvalueId.commandClass,\n\t);\n\tif (!ccInstance) {\n\t\tthrow new ZWaveError(\n\t\t\t`Cannot translate a value ID for the non-implemented CC ${\n\t\t\t\tgetCCName(\n\t\t\t\t\tvalueId.commandClass,\n\t\t\t\t)\n\t\t\t}`,\n\t\t\tZWaveErrorCodes.CC_NotImplemented,\n\t\t);\n\t}\n\n\t// Retrieve the speaking property name\n\tret.propertyName = ccInstance.translateProperty(\n\t\tctx,\n\t\tvalueId.property,\n\t\tvalueId.propertyKey,\n\t);\n\t// Try to retrieve the speaking property key\n\tif (valueId.propertyKey != undefined) {\n\t\tconst propertyKey = ccInstance.translatePropertyKey(\n\t\t\tctx,\n\t\t\tvalueId.property,\n\t\t\tvalueId.propertyKey,\n\t\t);\n\t\tret.propertyKeyName = propertyKey;\n\t}\n\treturn ret;\n}\n\n/**\n * Removes all Value IDs from an array that belong to a root endpoint and have a corresponding\n * Value ID on a non-root endpoint\n */\nexport function filterRootApplicationCCValueIDs<T extends ValueID>(\n\tallValueIds: T[],\n): T[] {\n\tconst shouldHideRootValueID = (\n\t\tvalueId: ValueID,\n\t\tallValueIds: ValueID[],\n\t): boolean => {\n\t\t// Non-root endpoint values don't need to be filtered\n\t\tif (!!valueId.endpoint) return false;\n\t\t// Non-application CCs don't need to be filtered\n\t\tif (!applicationCCs.includes(valueId.commandClass)) return false;\n\t\t// Filter out root values if an identical value ID exists for another endpoint\n\t\tconst valueExistsOnAnotherEndpoint = allValueIds.some(\n\t\t\t(other) =>\n\t\t\t\t// same CC\n\t\t\t\tother.commandClass === valueId.commandClass\n\t\t\t\t// non-root endpoint\n\t\t\t\t&& !!other.endpoint\n\t\t\t\t// same property and key\n\t\t\t\t&& other.property === valueId.property\n\t\t\t\t&& other.propertyKey === valueId.propertyKey,\n\t\t);\n\t\treturn valueExistsOnAnotherEndpoint;\n\t};\n\n\treturn allValueIds.filter(\n\t\t(vid) => !shouldHideRootValueID(vid, allValueIds),\n\t);\n}\n\n/** Returns a list of all value names that are defined on all endpoints of this node */\nexport function getDefinedValueIDs(\n\tctx:\n\t\t& HostIDs\n\t\t& GetValueDB\n\t\t& GetDeviceConfig\n\t\t& GetSupportedCCVersion\n\t\t& GetNode<\n\t\t\tNodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>\n\t\t>,\n\tnode:\n\t\t& NodeId\n\t\t& SupportsCC\n\t\t& ControlsCC\n\t\t& GetEndpoint<EndpointId & SupportsCC & ControlsCC>,\n): TranslatedValueID[] {\n\treturn getDefinedValueIDsInternal(ctx, node, false);\n}\n\n/**\n * @internal\n * Returns a list of all value names that are defined on all endpoints of this node\n */\nexport function getDefinedValueIDsInternal(\n\tctx:\n\t\t& HostIDs\n\t\t& GetValueDB\n\t\t& GetDeviceConfig\n\t\t& GetSupportedCCVersion\n\t\t& GetNode<\n\t\t\tNodeId & GetEndpoint<EndpointId & SupportsCC & ControlsCC>\n\t\t>,\n\tnode:\n\t\t& NodeId\n\t\t& SupportsCC\n\t\t& ControlsCC\n\t\t& GetEndpoint<EndpointId & SupportsCC & ControlsCC>,\n\tincludeInternal: boolean = false,\n): TranslatedValueID[] {\n\t// The controller has no values. Even if some ended up in the cache somehow, do not return any.\n\tif (node.id === ctx.ownNodeId) return [];\n\n\tlet ret: ValueID[] = [];\n\tconst allowControlled: CommandClasses[] = [\n\t\tCommandClasses[\"Scene Activation\"],\n\t];\n\tfor (\n\t\tconst endpoint of getAllEndpoints<EndpointId & SupportsCC & ControlsCC>(\n\t\t\tctx,\n\t\t\tnode,\n\t\t)\n\t) {\n\t\tfor (const cc of allCCs) {\n\t\t\tif (\n\t\t\t\t// Create values only for supported CCs\n\t\t\t\tendpoint.supportsCC(cc)\n\t\t\t\t// ...and some controlled CCs\n\t\t\t\t|| (endpoint.controlsCC(cc) && allowControlled.includes(cc))\n\t\t\t\t// ...and possibly Basic CC, which has some extra checks to know\n\t\t\t\t// whether values should be exposed\n\t\t\t\t|| cc === CommandClasses.Basic\n\t\t\t) {\n\t\t\t\tconst ccInstance = CommandClass.createInstanceUnchecked(\n\t\t\t\t\tendpoint,\n\t\t\t\t\tcc,\n\t\t\t\t);\n\t\t\t\tif (ccInstance) {\n\t\t\t\t\tret.push(\n\t\t\t\t\t\t...ccInstance.getDefinedValueIDs(\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\tincludeInternal,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Application command classes of the Root Device capabilities that are also advertised by at\n\t// least one End Point SHOULD be filtered out by controlling nodes before presenting the functionalities\n\t// via service discovery mechanisms like mDNS or to users in a GUI.\n\n\t// We do this when there are endpoints that were explicitly preserved\n\tif (shouldHideRootApplicationCCValues(ctx, node.id)) {\n\t\tret = filterRootApplicationCCValueIDs(ret);\n\t}\n\n\t// Translate the remaining value IDs before exposing them to applications\n\treturn ret.map((id) => translateValueID(ctx, node, id));\n}\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;AAAA,gBAA6B;AAC7B,4BAAqC;AACrC,kBAgBO;AASP,SAAS,SACR,KACA,QACA,SAAgB;AAEhB,SAAO,IAAI,WAAW,MAAM,EAAE,SAAS,OAAO;AAC/C;AANS;AAQT,SAAS,SACR,KACA,QACA,SACA,OACA,SAAyB;AAEzB,SAAO,IAAI,WAAW,MAAM,EAAE,SAAS,SAAS,OAAO,OAAO;AAC/D;AARS;AAUH,SAAU,uBACf,KACA,QAAc;AAEd,SAAO,SACN,KACA,QACA,2CAAqB,uBAAuB,EAAE;AAEhD;AATgB;AAWV,SAAU,mCACf,KACA,QAAc;AAEd,SAAO,SACN,KACA,QACA,2CAAqB,mCAAmC,EAAE;AAE5D;AATgB;AAWV,SAAU,2BACf,KACA,QAAc;AAEd,SAAO,SACN,KACA,QACA,2CAAqB,wBAAwB,EAAE;AAEjD;AATgB;AAWV,SAAU,2BACf,KACA,QAAc;AAEd,SAAO,SACN,KACA,QACA,2CAAqB,wBAAwB,EAAE;AAEjD;AATgB;AAWV,SAAU,iBACf,KACA,QAAc;AAEd,UACE,2BAA2B,KAAK,MAAM,KAAK,MACzC,2BAA2B,KAAK,MAAM,KAAK;AAEhD;AARgB;AAUV,SAAU,2BACf,KACA,QACA,OAAa;AAEb,WACC,KACA,QACA,2CAAqB,wBAAwB,IAC7C,KAAK;AAEP;AAXgB;AAaV,SAAU,2BACf,KACA,QACA,OAAa;AAEb,WACC,KACA,QACA,2CAAqB,wBAAwB,IAC7C,KAAK;AAEP;AAXgB;AAaV,SAAU,mBACf,KACA,QAAc;AAEd,MAAI,MAAM,SACT,KACA,QACA,2CAAqB,gBAAgB,EAAE;AAExC,MAAI,CAAC,KAAK;AAET,UAAM,CAAA;AACN,aAAS,IAAI,GAAG,KAAK,iBAAiB,KAAK,MAAM,GAAG,KAAK;AACxD,UAAI,KAAK,CAAC;IACX;EACD;AACA,SAAO;AACR;AAjBgB;AAmBV,SAAU,mBACf,KACA,QACA,SAAiB;AAEjB,WACC,KACA,QACA,2CAAqB,gBAAgB,IACrC,OAAO;AAET;AAXgB;AAaV,SAAU,gCACf,KACA,QAAc;AAEd,SAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;IAC9B,cAAc,2BAAe,eAAe;IAC5C,UAAU;IACV,UAAU;GACV;AACF;AATgB;AAWV,SAAU,iCACf,KACA,QACA,UAAiB;AAEjB,WACC,KACA,QACA;IACC,cAAc,2BAAe,eAAe;IAC5C,UAAU;IACV,UAAU;KAEX,QAAQ;AAEV;AAfgB;AAiBV,SAAU,gBACf,KACA,MAAqC;AAErC,QAAM,MAAW,CAAC,IAAI;AAGtB,MAAI,gCAAgC,KAAK,KAAK,MAAM,GAAG;AACtD,eAAW,KAAK,mBAAmB,KAAK,KAAK,MAAM,GAAG;AACrD,YAAM,WAAW,KAAK,YAAY,CAAC;AACnC,UAAI;AAAU,YAAI,KAAK,QAAQ;IAChC;EACD;AACA,SAAO;AACR;AAdgB;AAiBV,SAAU,kCACf,KACA,QAAc;AAGd,QAAM,eAAe,IAAI,kBAAkB,MAAM,GAAG;AACpD,MAAI,cAAc;AAAmC,WAAO;AAG5D,QAAM,kBAAkB,mBAAmB,KAAK,MAAM;AACtD,MAAI,gBAAgB,WAAW;AAAG,WAAO;AAGzC,QAAM,oBAAoB,cAAc;AACxC,MACC,qBAAqB,UAClB,sBAAsB,OACtB,kBAAkB,WAAW,gBAAgB,QAC/C;AACD,WAAO;EACR;AAGA,SAAO;AACR;AAxBgB;AA6BV,SAAU,iBACf,KACA,UACA,SAAU;AAGV,QAAM,uBAAmB,uBAAU,QAAQ,YAAY;AACvD,QAAM,MAA6B;IAClC;IACA,GAAG;;AAEJ,QAAM,aAAa,uBAAa,wBAC/B,UACA,QAAQ,YAAY;AAErB,MAAI,CAAC,YAAY;AAChB,UAAM,IAAI,uBACT,8DACC,uBACC,QAAQ,YAAY,CAEtB,IACA,4BAAgB,iBAAiB;EAEnC;AAGA,MAAI,eAAe,WAAW,kBAC7B,KACA,QAAQ,UACR,QAAQ,WAAW;AAGpB,MAAI,QAAQ,eAAe,QAAW;AACrC,UAAM,cAAc,WAAW,qBAC9B,KACA,QAAQ,UACR,QAAQ,WAAW;AAEpB,QAAI,kBAAkB;EACvB;AACA,SAAO;AACR;AA1CgB;AAgDV,SAAU,gCACf,aAAgB;AAEhB,QAAM,wBAAwB,wBAC7B,SACAA,iBACY;AAEZ,QAAI,CAAC,CAAC,QAAQ;AAAU,aAAO;AAE/B,QAAI,CAAC,2BAAe,SAAS,QAAQ,YAAY;AAAG,aAAO;AAE3D,UAAM,+BAA+BA,aAAY,KAChD,CAAC;;MAEA,MAAM,iBAAiB,QAAQ,gBAE5B,CAAC,CAAC,MAAM,YAER,MAAM,aAAa,QAAQ,YAC3B,MAAM,gBAAgB,QAAQ;KAAW;AAE9C,WAAO;EACR,GApB8B;AAsB9B,SAAO,YAAY,OAClB,CAAC,QAAQ,CAAC,sBAAsB,KAAK,WAAW,CAAC;AAEnD;AA5BgB;AA+BV,SAAU,mBACf,KAQA,MAIoD;AAEpD,SAAO,2BAA2B,KAAK,MAAM,KAAK;AACnD;AAhBgB;AAsBV,SAAU,2BACf,KAQA,MAKA,kBAA2B,OAAK;AAGhC,MAAI,KAAK,OAAO,IAAI;AAAW,WAAO,CAAA;AAEtC,MAAI,MAAiB,CAAA;AACrB,QAAM,kBAAoC;IACzC,2BAAe,kBAAkB;;AAElC,aACO,YAAY,gBACjB,KACA,IAAI,GAEJ;AACD,eAAW,MAAM,oBAAQ;AACxB;;QAEC,SAAS,WAAW,EAAE,KAElB,SAAS,WAAW,EAAE,KAAK,gBAAgB,SAAS,EAAE,KAGvD,OAAO,2BAAe;QACxB;AACD,cAAM,aAAa,uBAAa,wBAC/B,UACA,EAAE;AAEH,YAAI,YAAY;AACf,cAAI,KACH,GAAG,WAAW,mBACb,KACA,eAAe,CACf;QAEH;MACD;IACD;EACD;AAOA,MAAI,kCAAkC,KAAK,KAAK,EAAE,GAAG;AACpD,UAAM,gCAAgC,GAAG;EAC1C;AAGA,SAAO,IAAI,IAAI,CAAC,OAAO,iBAAiB,KAAK,MAAM,EAAE,CAAC;AACvD;AAlEgB;",
6
6
  "names": ["allValueIds"]
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -23,6 +24,7 @@ __export(deviceConfig_exports, {
23
24
  module.exports = __toCommonJS(deviceConfig_exports);
24
25
  async function reportMissingDeviceConfig(_ctx, _node) {
25
26
  }
27
+ __name(reportMissingDeviceConfig, "reportMissingDeviceConfig");
26
28
  // Annotate the CommonJS export names for ESM import in node:
27
29
  0 && (module.exports = {
28
30
  reportMissingDeviceConfig
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/telemetry/deviceConfig.ts"],
4
4
  "sourcesContent": ["// import got from \"@esm2cjs/got\";\n// import { AssociationGroupInfoCC, ConfigurationCC } from \"@zwave-js/cc\";\n// import { CommandClasses } from \"@zwave-js/core\";\n// import { formatId } from \"@zwave-js/shared\";\n// import { isObject } from \"alcalzone-shared/typeguards\";\nimport type { ZWaveNode } from \"../node/Node.js\";\n\n// const missingDeviceConfigCache = new Set<string>();\n\nexport async function reportMissingDeviceConfig(\n\t_ctx: any,\n\t_node: ZWaveNode & {\n\t\tmanufacturerId: number;\n\t\tproductType: number;\n\t\tproductId: number;\n\t\tfirmwareVersion: string;\n\t},\n): Promise<void> {\n\t// TODO: Actually do something\n\t// We removed Sentry as it wasn't really useful\n\n\t// const configFingerprint = `${formatId(node.manufacturerId)}:${\n\t// \tformatId(\n\t// \t\tnode.productType,\n\t// \t)\n\t// }:${formatId(node.productId)}:${node.firmwareVersion}`;\n\n\t// // We used to get a LOT of false positives, so we should check with our device\n\t// // database whether this config file is actually unknown\n\n\t// // If we tried to report this file earlier, we can skip the report\n\t// if (missingDeviceConfigCache.has(configFingerprint)) return;\n\t// // Otherwise ask our device DB if it exists\n\t// const { got } = await import(\"got\");\n\t// try {\n\t// \tconst data = await got\n\t// \t\t.get(\n\t// \t\t\t`https://devices.zwave-js.io/public_api/getdeviceinfo/${configFingerprint.replace(\n\t// \t\t\t\t/:/g,\n\t// \t\t\t\t\"/\",\n\t// \t\t\t)}`,\n\t// \t\t)\n\t// \t\t.json();\n\n\t// \tif (\n\t// \t\tisObject(data)\n\t// \t\t&& typeof data.deviceFound === \"boolean\"\n\t// \t\t&& data.deviceFound\n\t// \t) {\n\t// \t\t// This is a false positive - remember it\n\t// \t\tmissingDeviceConfigCache.add(configFingerprint);\n\t// \t\treturn;\n\t// \t}\n\t// } catch (e) {\n\t// \t// didn't work, try again next time\n\t// \treturn;\n\t// }\n\n\t// const message = `Missing device config: ${configFingerprint}`;\n\n\t// const deviceInfo: Record<string, any> = {\n\t// \tsupportsConfigCCV3:\n\t// \t\tnode.getCCVersion(CommandClasses.Configuration) >= 3,\n\t// \tsupportsAGI: node.supportsCC(\n\t// \t\tCommandClasses[\"Association Group Information\"],\n\t// \t),\n\t// \tsupportsZWavePlus: node.supportsCC(CommandClasses[\"Z-Wave Plus Info\"]),\n\t// };\n\t// try {\n\t// \tif (deviceInfo.supportsConfigCCV3) {\n\t// \t\t// Try to collect all info about config params we can get\n\t// \t\tconst instance = node.createCCInstanceUnsafe(ConfigurationCC)!;\n\t// \t\tdeviceInfo.parameters = instance.getQueriedParamInfos(applHost);\n\t// \t}\n\t// \tif (deviceInfo.supportsAGI) {\n\t// \t\t// Try to collect all info about association groups we can get\n\t// \t\tconst associationGroupCount = AssociationGroupInfoCC[\n\t// \t\t\t\"getAssociationGroupCountCached\"\n\t// \t\t](applHost, node);\n\t// \t\tconst names: string[] = [];\n\t// \t\tfor (let group = 1; group <= associationGroupCount; group++) {\n\t// \t\t\tnames.push(\n\t// \t\t\t\tAssociationGroupInfoCC.getGroupNameCached(\n\t// \t\t\t\t\tapplHost,\n\t// \t\t\t\t\tnode,\n\t// \t\t\t\t\tgroup,\n\t// \t\t\t\t) ?? \"\",\n\t// \t\t\t);\n\t// \t\t}\n\t// \t\tdeviceInfo.associationGroups = names;\n\t// \t}\n\t// \tif (deviceInfo.supportsZWavePlus) {\n\t// \t\tdeviceInfo.zWavePlusVersion = node.zwavePlusVersion;\n\t// \t}\n\t// } catch {\n\t// \t// Don't fail on the last meters :)\n\t// }\n\n\t// // TODO: Actually report somewhere\n\n\t// // Remember that we reported the config\n\t// missingDeviceConfigCache.add(configFingerprint);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAOA;;;;;AAEA,eAAsB,0BACrB,MACA,OAKC;AAsFF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAOA;;;;;AAEA,eAAsB,0BACrB,MACA,OAKC;AAsFF;AA7FsB;",
6
6
  "names": []
7
7
  }
@@ -5,6 +5,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
9
  var __export = (target, all) => {
9
10
  for (var name in all)
10
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -52,6 +53,7 @@ async function compileStatistics(driver, appInfo) {
52
53
  }))
53
54
  };
54
55
  }
56
+ __name(compileStatistics, "compileStatistics");
55
57
  async function sendStatistics(statistics) {
56
58
  const { got } = await import("got");
57
59
  try {
@@ -74,6 +76,7 @@ async function sendStatistics(statistics) {
74
76
  return false;
75
77
  }
76
78
  }
79
+ __name(sendStatistics, "sendStatistics");
77
80
  // Annotate the CommonJS export names for ESM import in node:
78
81
  0 && (module.exports = {
79
82
  compileStatistics,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/lib/telemetry/statistics.ts"],
4
4
  "sourcesContent": ["import { digest } from \"@zwave-js/core\";\nimport { Bytes, formatId } from \"@zwave-js/shared\";\nimport { isObject } from \"alcalzone-shared/typeguards\";\nimport type { Driver } from \"../driver/Driver.js\";\n\nconst apiToken = \"ef58278d935ccb26307800279458484d\";\nconst statisticsUrl = `https://stats.zwave-js.io/statistics`;\n\nexport interface AppInfo {\n\tdriverVersion: string;\n\tapplicationName: string;\n\tapplicationVersion: string;\n\tnodeVersion: string;\n\tos: NodeJS.Platform;\n\tarch: string;\n}\n\nexport async function compileStatistics(\n\tdriver: Driver,\n\tappInfo: AppInfo,\n): Promise<Record<string, any>> {\n\t// Salt and hash the homeId, so it cannot easily be tracked\n\t// It is no state secret, but since we're collecting it, make sure it is anonymous\n\tconst salt = await driver.getUUID();\n\tconst hashInput = Bytes.from(driver.controller.homeId!.toString(16) + salt);\n\tconst hash = Bytes.view(await digest(\"sha-256\", hashInput)).toString(\"hex\");\n\n\treturn {\n\t\tid: hash,\n\t\t...appInfo,\n\t\tdevices: [...driver.controller.nodes.values()].map((node) => ({\n\t\t\tmanufacturerId: node.manufacturerId != undefined\n\t\t\t\t? formatId(node.manufacturerId)\n\t\t\t\t: \"\",\n\t\t\tproductType: node.productType != undefined\n\t\t\t\t? formatId(node.productType)\n\t\t\t\t: \"\",\n\t\t\tproductId: node.productId != undefined\n\t\t\t\t? formatId(node.productId)\n\t\t\t\t: \"\",\n\t\t\tfirmwareVersion: node.firmwareVersion ?? \"\",\n\t\t})),\n\t};\n}\n\n/**\n * Sends the statistics to the statistics backend. Returns:\n * - `true` when sending succeeded\n * - The number of seconds to wait before trying again when hitting the rate limiter\n * - `false` for any other errors\n */\nexport async function sendStatistics(\n\tstatistics: Record<string, any>,\n): Promise<boolean | number> {\n\tconst { got } = await import(\"got\");\n\n\ttry {\n\t\tconst data = await got\n\t\t\t.post(statisticsUrl, {\n\t\t\t\tjson: { data: [statistics] },\n\t\t\t\theaders: { \"x-api-token\": apiToken },\n\t\t\t})\n\t\t\t.json();\n\t\tif (isObject(data) && typeof data.success === \"boolean\") {\n\t\t\treturn data.success;\n\t\t}\n\t\treturn false;\n\t} catch (e: any) {\n\t\tif (isObject(e.response) && e.response.status === 429) {\n\t\t\t// We've hit the rate limiter. Figure out when we may try again.\n\t\t\tif (\n\t\t\t\tisObject(e.response.headers)\n\t\t\t\t&& \"retry-after\" in e.response.headers\n\t\t\t) {\n\t\t\t\tconst retryAfter = parseInt(e.response.headers[\"retry-after\"]);\n\t\t\t\tif (Number.isInteger(retryAfter)) return retryAfter;\n\t\t\t}\n\t\t}\n\t\t// didn't work, try again later\n\t\treturn false;\n\t}\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAAA,kBAAuB;AACvB,oBAAgC;AAChC,wBAAyB;AAGzB,MAAM,WAAW;AACjB,MAAM,gBAAgB;AAWtB,eAAsB,kBACrB,QACA,SAAgB;AAIhB,QAAM,OAAO,MAAM,OAAO,QAAO;AACjC,QAAM,YAAY,oBAAM,KAAK,OAAO,WAAW,OAAQ,SAAS,EAAE,IAAI,IAAI;AAC1E,QAAM,OAAO,oBAAM,KAAK,UAAM,oBAAO,WAAW,SAAS,CAAC,EAAE,SAAS,KAAK;AAE1E,SAAO;IACN,IAAI;IACJ,GAAG;IACH,SAAS,CAAC,GAAG,OAAO,WAAW,MAAM,OAAM,CAAE,EAAE,IAAI,CAAC,UAAU;MAC7D,gBAAgB,KAAK,kBAAkB,aACpC,wBAAS,KAAK,cAAc,IAC5B;MACH,aAAa,KAAK,eAAe,aAC9B,wBAAS,KAAK,WAAW,IACzB;MACH,WAAW,KAAK,aAAa,aAC1B,wBAAS,KAAK,SAAS,IACvB;MACH,iBAAiB,KAAK,mBAAmB;MACxC;;AAEJ;AAQA,eAAsB,eACrB,YAA+B;AAE/B,QAAM,EAAE,IAAG,IAAK,MAAM,OAAO,KAAK;AAElC,MAAI;AACH,UAAM,OAAO,MAAM,IACjB,KAAK,eAAe;MACpB,MAAM,EAAE,MAAM,CAAC,UAAU,EAAC;MAC1B,SAAS,EAAE,eAAe,SAAQ;KAClC,EACA,KAAI;AACN,YAAI,4BAAS,IAAI,KAAK,OAAO,KAAK,YAAY,WAAW;AACxD,aAAO,KAAK;IACb;AACA,WAAO;EACR,SAAS,GAAQ;AAChB,YAAI,4BAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,WAAW,KAAK;AAEtD,cACC,4BAAS,EAAE,SAAS,OAAO,KACxB,iBAAiB,EAAE,SAAS,SAC9B;AACD,cAAM,aAAa,SAAS,EAAE,SAAS,QAAQ,aAAa,CAAC;AAC7D,YAAI,OAAO,UAAU,UAAU;AAAG,iBAAO;MAC1C;IACD;AAEA,WAAO;EACR;AACD;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAAA,kBAAuB;AACvB,oBAAgC;AAChC,wBAAyB;AAGzB,MAAM,WAAW;AACjB,MAAM,gBAAgB;AAWtB,eAAsB,kBACrB,QACA,SAAgB;AAIhB,QAAM,OAAO,MAAM,OAAO,QAAO;AACjC,QAAM,YAAY,oBAAM,KAAK,OAAO,WAAW,OAAQ,SAAS,EAAE,IAAI,IAAI;AAC1E,QAAM,OAAO,oBAAM,KAAK,UAAM,oBAAO,WAAW,SAAS,CAAC,EAAE,SAAS,KAAK;AAE1E,SAAO;IACN,IAAI;IACJ,GAAG;IACH,SAAS,CAAC,GAAG,OAAO,WAAW,MAAM,OAAM,CAAE,EAAE,IAAI,CAAC,UAAU;MAC7D,gBAAgB,KAAK,kBAAkB,aACpC,wBAAS,KAAK,cAAc,IAC5B;MACH,aAAa,KAAK,eAAe,aAC9B,wBAAS,KAAK,WAAW,IACzB;MACH,WAAW,KAAK,aAAa,aAC1B,wBAAS,KAAK,SAAS,IACvB;MACH,iBAAiB,KAAK,mBAAmB;MACxC;;AAEJ;AA1BsB;AAkCtB,eAAsB,eACrB,YAA+B;AAE/B,QAAM,EAAE,IAAG,IAAK,MAAM,OAAO,KAAK;AAElC,MAAI;AACH,UAAM,OAAO,MAAM,IACjB,KAAK,eAAe;MACpB,MAAM,EAAE,MAAM,CAAC,UAAU,EAAC;MAC1B,SAAS,EAAE,eAAe,SAAQ;KAClC,EACA,KAAI;AACN,YAAI,4BAAS,IAAI,KAAK,OAAO,KAAK,YAAY,WAAW;AACxD,aAAO,KAAK;IACb;AACA,WAAO;EACR,SAAS,GAAQ;AAChB,YAAI,4BAAS,EAAE,QAAQ,KAAK,EAAE,SAAS,WAAW,KAAK;AAEtD,cACC,4BAAS,EAAE,SAAS,OAAO,KACxB,iBAAiB,EAAE,SAAS,SAC9B;AACD,cAAM,aAAa,SAAS,EAAE,SAAS,QAAQ,aAAa,CAAC;AAC7D,YAAI,OAAO,UAAU,UAAU;AAAG,iBAAO;MAC1C;IACD;AAEA,WAAO;EACR;AACD;AA9BsB;",
6
6
  "names": []
7
7
  }
@@ -3,6 +3,7 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
7
  var __export = (target, all) => {
7
8
  for (var name in all)
8
9
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -60,6 +61,7 @@ function getChannelConfiguration(region) {
60
61
  return "1/2";
61
62
  }
62
63
  }
64
+ __name(getChannelConfiguration, "getChannelConfiguration");
63
65
  function longRangeBeamPowerToDBm(power) {
64
66
  return [
65
67
  -6,
@@ -80,9 +82,11 @@ function longRangeBeamPowerToDBm(power) {
80
82
  30
81
83
  ][power];
82
84
  }
85
+ __name(longRangeBeamPowerToDBm, "longRangeBeamPowerToDBm");
83
86
  function formatNodeId(nodeId) {
84
87
  return nodeId.toString().padStart(3, "0");
85
88
  }
89
+ __name(formatNodeId, "formatNodeId");
86
90
  function formatRoute(source, repeaters, destination, direction, currentHop, failedHop) {
87
91
  return [
88
92
  direction === "outbound" ? formatNodeId(source) : formatNodeId(destination),
@@ -99,6 +103,7 @@ function formatRoute(source, repeaters, destination, direction, currentHop, fail
99
103
  return (direction === "outbound" ? " \u203A " : " \u2039 ") + id;
100
104
  }).join("");
101
105
  }
106
+ __name(formatRoute, "formatRoute");
102
107
  function parseMPDU(frame) {
103
108
  switch (frame.channel) {
104
109
  case 0:
@@ -111,7 +116,11 @@ function parseMPDU(frame) {
111
116
  import_core.validatePayload.fail(`Unsupported channel ${frame.channel}. MPDU payload: ${(0, import_shared.buffer2hex)(frame.payload)}`);
112
117
  }
113
118
  }
119
+ __name(parseMPDU, "parseMPDU");
114
120
  class LongRangeMPDU {
121
+ static {
122
+ __name(this, "LongRangeMPDU");
123
+ }
115
124
  constructor(options) {
116
125
  const data = options.data;
117
126
  this.frameInfo = options.frameInfo;
@@ -200,6 +209,9 @@ class LongRangeMPDU {
200
209
  }
201
210
  }
202
211
  class SinglecastLongRangeMPDU extends LongRangeMPDU {
212
+ static {
213
+ __name(this, "SinglecastLongRangeMPDU");
214
+ }
203
215
  toLogEntry() {
204
216
  const { tags, message: original } = super.toLogEntry();
205
217
  const message = {
@@ -213,6 +225,9 @@ class SinglecastLongRangeMPDU extends LongRangeMPDU {
213
225
  }
214
226
  }
215
227
  class AckLongRangeMPDU extends LongRangeMPDU {
228
+ static {
229
+ __name(this, "AckLongRangeMPDU");
230
+ }
216
231
  constructor(options) {
217
232
  super(options);
218
233
  this.incomingRSSI = (0, import_serialapi.parseRSSI)(this.payload, 0);
@@ -235,6 +250,9 @@ class AckLongRangeMPDU extends LongRangeMPDU {
235
250
  }
236
251
  }
237
252
  class ZWaveMPDU {
253
+ static {
254
+ __name(this, "ZWaveMPDU");
255
+ }
238
256
  constructor(options) {
239
257
  const data = options.data;
240
258
  this.frameInfo = options.frameInfo;
@@ -321,6 +339,9 @@ class ZWaveMPDU {
321
339
  }
322
340
  }
323
341
  class SinglecastZWaveMPDU extends ZWaveMPDU {
342
+ static {
343
+ __name(this, "SinglecastZWaveMPDU");
344
+ }
324
345
  constructor(options) {
325
346
  super(options);
326
347
  this.destinationNodeId = this.destinationBuffer[0];
@@ -348,6 +369,9 @@ class SinglecastZWaveMPDU extends ZWaveMPDU {
348
369
  }
349
370
  }
350
371
  class AckZWaveMPDU extends ZWaveMPDU {
372
+ static {
373
+ __name(this, "AckZWaveMPDU");
374
+ }
351
375
  constructor(options) {
352
376
  super(options);
353
377
  this.destinationNodeId = this.destinationBuffer[0];
@@ -371,6 +395,9 @@ class AckZWaveMPDU extends ZWaveMPDU {
371
395
  }
372
396
  }
373
397
  class RoutedZWaveMPDU extends ZWaveMPDU {
398
+ static {
399
+ __name(this, "RoutedZWaveMPDU");
400
+ }
374
401
  constructor(options) {
375
402
  super(options);
376
403
  const channelConfig = getChannelConfiguration(this.frameInfo.region);
@@ -437,6 +464,9 @@ class RoutedZWaveMPDU extends ZWaveMPDU {
437
464
  }
438
465
  }
439
466
  class MulticastZWaveMPDU extends ZWaveMPDU {
467
+ static {
468
+ __name(this, "MulticastZWaveMPDU");
469
+ }
440
470
  constructor(options) {
441
471
  super(options);
442
472
  const control = this.destinationBuffer[0];
@@ -459,6 +489,9 @@ class MulticastZWaveMPDU extends ZWaveMPDU {
459
489
  }
460
490
  }
461
491
  class ExplorerZWaveMPDU extends ZWaveMPDU {
492
+ static {
493
+ __name(this, "ExplorerZWaveMPDU");
494
+ }
462
495
  constructor(options) {
463
496
  super(options);
464
497
  this.version = this.payload[0] >>> 5;
@@ -490,6 +523,9 @@ class ExplorerZWaveMPDU extends ZWaveMPDU {
490
523
  repeaters;
491
524
  }
492
525
  class NormalExplorerZWaveMPDU extends ExplorerZWaveMPDU {
526
+ static {
527
+ __name(this, "NormalExplorerZWaveMPDU");
528
+ }
493
529
  constructor(options) {
494
530
  super(options);
495
531
  }
@@ -516,6 +552,9 @@ class NormalExplorerZWaveMPDU extends ExplorerZWaveMPDU {
516
552
  }
517
553
  }
518
554
  class InclusionRequestExplorerZWaveMPDU extends ExplorerZWaveMPDU {
555
+ static {
556
+ __name(this, "InclusionRequestExplorerZWaveMPDU");
557
+ }
519
558
  constructor(options) {
520
559
  super(options);
521
560
  this.networkHomeId = this.payload.readUInt32BE(0);
@@ -546,6 +585,9 @@ class InclusionRequestExplorerZWaveMPDU extends ExplorerZWaveMPDU {
546
585
  }
547
586
  }
548
587
  class SearchResultExplorerZWaveMPDU extends ExplorerZWaveMPDU {
588
+ static {
589
+ __name(this, "SearchResultExplorerZWaveMPDU");
590
+ }
549
591
  constructor(options) {
550
592
  super(options);
551
593
  this.searchingNodeId = this.payload[0];
@@ -615,7 +657,11 @@ function parseBeamFrame(frame) {
615
657
  );
616
658
  }
617
659
  }
660
+ __name(parseBeamFrame, "parseBeamFrame");
618
661
  class ZWaveBeamStart {
662
+ static {
663
+ __name(this, "ZWaveBeamStart");
664
+ }
619
665
  constructor(options) {
620
666
  const data = options.data;
621
667
  this.frameInfo = options.frameInfo;
@@ -658,6 +704,9 @@ class ZWaveBeamStart {
658
704
  }
659
705
  }
660
706
  class LongRangeBeamStart {
707
+ static {
708
+ __name(this, "LongRangeBeamStart");
709
+ }
661
710
  constructor(options) {
662
711
  const data = options.data;
663
712
  this.frameInfo = options.frameInfo;
@@ -702,6 +751,9 @@ class LongRangeBeamStart {
702
751
  }
703
752
  }
704
753
  class BeamStop {
754
+ static {
755
+ __name(this, "BeamStop");
756
+ }
705
757
  constructor(options) {
706
758
  this.frameInfo = options.frameInfo;
707
759
  }
@@ -727,6 +779,7 @@ function mpduToFrame(mpdu, payloadCC) {
727
779
  }
728
780
  throw new import_core.ZWaveError(`mpduToFrame not supported for ${mpdu.constructor.name}`, import_core.ZWaveErrorCodes.Argument_Invalid);
729
781
  }
782
+ __name(mpduToFrame, "mpduToFrame");
730
783
  function mpduToZWaveFrame(mpdu, payloadCC) {
731
784
  const retBase = {
732
785
  protocol: import_core.Protocols.ZWave,
@@ -822,6 +875,7 @@ function mpduToZWaveFrame(mpdu, payloadCC) {
822
875
  }
823
876
  throw new import_core.ZWaveError(`mpduToZWaveFrame not supported for ${mpdu.constructor.name}`, import_core.ZWaveErrorCodes.Argument_Invalid);
824
877
  }
878
+ __name(mpduToZWaveFrame, "mpduToZWaveFrame");
825
879
  function mpduToLongRangeFrame(mpdu, payloadCC) {
826
880
  const retBase = {
827
881
  protocol: import_core.Protocols.ZWaveLongRange,
@@ -866,6 +920,7 @@ function mpduToLongRangeFrame(mpdu, payloadCC) {
866
920
  }
867
921
  throw new import_core.ZWaveError(`mpduToLongRangeFrame not supported for ${mpdu.constructor.name}`, import_core.ZWaveErrorCodes.Argument_Invalid);
868
922
  }
923
+ __name(mpduToLongRangeFrame, "mpduToLongRangeFrame");
869
924
  function beamToFrame(beam) {
870
925
  const retBase = {
871
926
  channel: beam.frameInfo.channel,
@@ -908,6 +963,7 @@ function beamToFrame(beam) {
908
963
  }
909
964
  }
910
965
  }
966
+ __name(beamToFrame, "beamToFrame");
911
967
  function znifferDataMessageToCorruptedFrame(msg, rssi) {
912
968
  if (msg.checksumOK) {
913
969
  throw new import_core.ZWaveError(`znifferDataMessageToCorruptedFrame expects the checksum to be incorrect`, import_core.ZWaveErrorCodes.Argument_Invalid);
@@ -921,6 +977,7 @@ function znifferDataMessageToCorruptedFrame(msg, rssi) {
921
977
  payload: msg.payload
922
978
  };
923
979
  }
980
+ __name(znifferDataMessageToCorruptedFrame, "znifferDataMessageToCorruptedFrame");
924
981
  // Annotate the CommonJS export names for ESM import in node:
925
982
  0 && (module.exports = {
926
983
  AckLongRangeMPDU,