{"_id":"dsc-itv2-client","_rev":"46-3f43142b1915f845973fb20faeb1d916","name":"dsc-itv2-client","dist-tags":{"latest":"2.1.0"},"versions":{"1.0.7":{"name":"dsc-itv2-client","version":"1.0.7","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.7","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"18e22f7f1753c7c9488713703d16f0e8729798df","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.7.tgz","fileCount":14,"integrity":"sha512-P0vVZ7L8sIHjYNtA2qmhusk4u/1ctEdrXmoZRTc9zrecPbRDF5OMbzky1QdvTCLrz+ha+gfRx/OEyyk31JSYtg==","signatures":[{"sig":"MEYCIQC6EyA7ZUdFa5DYIVy1JJbC94q+M2ynWRBfzKKdfaY/RAIhAKZgGYxGxMNuI7H9Fcv7mqrNJH4/NbN8FOt3rWXRjRx2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154889},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"176ee6cb59372d7a2541fb72222771aafe340745","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.7_1766077777570_0.8466673641764058","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"dsc-itv2-client","version":"1.0.8","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.8","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"2416aba7a2843a57565ef4338ab57d035e707754","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.8.tgz","fileCount":14,"integrity":"sha512-yH8fP6+oLOawOxCE0lEr6Q4LlIWePR4usrQqAZGpGoQ5fMJ+z2EQ0Igf/M5JpsaG4dYENKTkvUn/pAd6CFcpUg==","signatures":[{"sig":"MEUCIQC9WsvCAelcp2RzRW/Ec7gbDXx+kqGkwb84sWXBmzFd7gIgQp3QFLlvWKYw9tVp1NOC4N9pHhStHdveMKwV1OMMkCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157898},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"8f192ca2c0dd5c9a19fa9f638a18f24f6138eac5","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.8_1766081938916_0.7608929802774991","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"dsc-itv2-client","version":"1.0.9","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.9","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"2eb27977c695440bb2af035d6f1cb95e86f4ad08","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.9.tgz","fileCount":14,"integrity":"sha512-/3A9kTofU0e3FcY641ZgG3t3phXA84HxQ37hDAve2iRt2j3Et7OtYHQwEZS09asKMi2pA5MfZODlAb6Gjhm4VQ==","signatures":[{"sig":"MEUCICtI4or8XFe6DhoDvpqjG1tTNlRaWo+co/ABhPThoMROAiEAlyMdKVZAb/8tDgMlyE8Z8GNQZHrt7zJKxwV8BBBoOfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157904},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"3a72c49e34bac497bdc774ad5dad93f6dbed8b32","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.9_1766082320773_0.7696642515638206","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"dsc-itv2-client","version":"1.0.10","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.10","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"c42d15829051b5187a3d41ac6fa6a1edb2ee5ddc","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.10.tgz","fileCount":14,"integrity":"sha512-cibsMjPkV08BV/iF1RohTbPc0Lnp3+UZC/tnkKv0Tiz4i7sMKSvr/XJ+72sQVrGfR1h4+RkP7nJxov811VEiBA==","signatures":[{"sig":"MEYCIQDjGUihXUBHYT//eE6cJygbeUzVRLlx9nX/3EOjrOzebwIhAOsTuJyE4TjoGgji9hABGseUwMorH3a0BDH0MQpyWZyO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157891},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"3183fd64309fda8c14ce83bd361e18cd78c4d153","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.10_1766082383774_0.8938408704635121","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"dsc-itv2-client","version":"1.0.11","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.11","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"ea85fea084698bed7ebb1e413092da68e955ee6e","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.11.tgz","fileCount":14,"integrity":"sha512-KEQdkUlz8+Co3Wqlq+aDfJs8NRxcLysLQr3G0uF7SI7ADgDO7eMuRkuayKL/Wsb+xbrWGgWlgsboAty/pKrYDA==","signatures":[{"sig":"MEQCICZ9qSWbkyjMa0+rvPsZeeoYSk4RGkDxcmBKSHkPNtatAiAG9ae4qWxxXEi46DMPpwHy+8H67qC80XUrvQgx1IyX0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158627},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"4adcb372268d74f6702d89ec8d4bd8beef60cbae","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.11_1766084268153_0.5053575956382399","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"dsc-itv2-client","version":"1.0.12","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.12","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"729c49e56642f5d9ed48ff5f08dd11261096b5c2","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.12.tgz","fileCount":14,"integrity":"sha512-cRU6DKgAzSokqy9XQ+VWMuMvZoJyhQVBFQ6c4QTmn2T09Landm0UycfD92jrjgb/KSG/KDqYEeWfdYfG9Ts1+g==","signatures":[{"sig":"MEQCIC9mTPvCtZhax+ZPg+auBNae6r4WtksuGk5Sj9V1igPSAiBrIqAKGMBUcUjpC09HU8iKfAfXLaWTLIHYhnmXlpifrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158635},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"af489a837fe6208537f79abda9b13df81ddc3b1e","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.12_1766094463707_0.32864066659951474","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"dsc-itv2-client","version":"1.0.13","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.13","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"2b689e7bf28c6c47b7b0df6a7025da6ac239db42","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.13.tgz","fileCount":14,"integrity":"sha512-IZpFCbR40LH30KVMmy39y0ndolYg1mepPis5R27xxdYCo+vyxMivW3Q0ARPNQPgt6aS2afa/AfJIlQdPkGjngg==","signatures":[{"sig":"MEUCIGWoXUUHg+J53PFmEhfnSa1eZ5s+3wVC5VvD5Cbe1mipAiEAuYf22U51YU806YDAkqgvnCdlrFXCHDKLpb4hb3zu810=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159725},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"af489a837fe6208537f79abda9b13df81ddc3b1e","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.13_1766095322274_0.026128266317407833","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"dsc-itv2-client","version":"1.0.16","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.16","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"4fdeaba0c8bccc432e3cab1efe35d5261f79f3d9","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.16.tgz","fileCount":14,"integrity":"sha512-DN2Xh+Xu4wPirAbO60VhRPTudy2Ttv+hXuCsBtsoyuemVkqHS3mWxdmn/DUrKct4Xn/FrVWblJMQRLLIKYHKNg==","signatures":[{"sig":"MEUCIQCE6QII/E/mfqhOqlEhIvegZsHOu4PDRFR0RWM4IgHgZQIgLnuFSBIKXrMJb18Tjef1Fvnmode7+nHAriCHYz3SKfQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160664},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"6290d2d49e446519b5a60f6cc65f7b695b8366d5","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.16_1766096018180_0.0943657743865185","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"dsc-itv2-client","version":"1.0.17","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.17","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"8c889e76dd239e76820bee693bc3639ed9c2137a","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.17.tgz","fileCount":14,"integrity":"sha512-Hf5RspN2cFEyl91wJ7FyHm3EaC8PqiZxIoH4iD2IeFvy3/LWvznW5M+8zQssbWKmW949SnZaVMsMuEA6CQ5A7Q==","signatures":[{"sig":"MEUCIAPoVD+lpSnJHFXGQzRNkY8KWeROMcLAzOtSOiGmGeFSAiEAnIxXFWP3cqBYsbUfU6qESe65E7v2RfeOWuxIL7E2vJY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161244},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"8a86dedac1185c98c9dcf96f6afc0dcc2b187443","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.17_1766096306786_0.5467753901360892","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"dsc-itv2-client","version":"1.0.18","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.18","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"2c4108077f7741118c425429dd54ba24a11d6474","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.18.tgz","fileCount":14,"integrity":"sha512-SIenF3ADl5Zz90vpXI0NNma064q2an+k8q249bA6lTZ5jeOMlbQafAW4fQyAxfeFqHzHIaUNKWZS+wkRaWJcIA==","signatures":[{"sig":"MEQCIBkX81mddN/OIae8dvLhQIyFJB030cqCGqRy7piQnJDiAiAq3AXOa/HYxkXOYJBwTueEgDCPGQVXPWkxpPJ+ly3gOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160932},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"76fbd45ab9f7454dd3bb84261adf633333086366","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.18_1766096558294_0.7360362837417043","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"dsc-itv2-client","version":"1.0.19","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.19","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"0858614dae99989e63658577987081d70691a990","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.19.tgz","fileCount":14,"integrity":"sha512-T8TQVerMLFXZ7wIiaD3Zob2DEgSTKR/9hmZ5VK20JUVCioN0kZLWC/vbTZPZYwBEqGJvEmrnTXGD9X7A2RBLVg==","signatures":[{"sig":"MEYCIQDew+cvBngQeJTGsVSmErWHQR/mjb3ZhaMh98Sj350+iQIhANLUJvBbolsyJhz9eSdLYg2TX6xF69OI5CIE21uK5qu6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162780},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"e9682d9e9e7fa1a02535afdd91f061b2f1f334bd","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.19_1769640882799_0.5752779520131901","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"dsc-itv2-client","version":"1.0.20","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.20","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"ce05b92530b89f693e4178dfb1b6a25a750b3996","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.20.tgz","fileCount":14,"integrity":"sha512-lWJL996K2lBmY8SRlpzLZMQz7dLXYZj9tUvg09/VxXmNrsLe0sVB8Ob7/U+DIkhobVqAbCYFxlETYslRhWPXuw==","signatures":[{"sig":"MEQCIA7VqqpVnayHcXFL7ZBiXdhihAu/yQkQ4Q50vRzJ/KAMAiBa0ENhY/flMzVc9899zf7GkJsKC7k0CodFB9tXxnZuRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163853},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"a914691a1063273f2366794cd1ddfb85c00b824d","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.20_1769642053264_0.7417053163290988","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"dsc-itv2-client","version":"1.0.21","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.21","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"eb06f9cdb097cff63d3852e50f2e91e4f616ff9e","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.21.tgz","fileCount":14,"integrity":"sha512-sA28VXKOnN4n1+CC+esB6WH+DcbqSeRB1S9F8hQ21Qy6MvW/ebAwTPpFegTUMnW+1Rr6yyQuN1ik0Em8owI9MA==","signatures":[{"sig":"MEUCIQDejAE1+5rIgeKXQHjYNngN0t1DkTvg0KJy8eXSq+sr2QIgNfqvVbPSyyCsVktqVTJh7ZOzZP/3u9yTrvYNHWtiT5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164388},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"f97b46fce3e702b0b466dd30bb4fbf54de28e251","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.21_1769642968981_0.6830427158524157","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"dsc-itv2-client","version":"1.0.22","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.22","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"88fd0fb4ce7467ad57f6e05eea2127c613e1b220","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.22.tgz","fileCount":14,"integrity":"sha512-0pl8bOTg4F7rAfmpKHOako60ENLlfYDcAesbTiEiXr6W4Y9pvQUj2ZnZtfhijZ8ZlkzQ1QQx0GjZYOzFiV6+hQ==","signatures":[{"sig":"MEUCIQCx5r1GWDCCe82Vpz8fSLaADhFuyHAnN9E2Z8IMSRsuqgIgB8eyUNMG21N6KM3xhezpHZ5fhmEkUnZ6zFid3dkv1gA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167082},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"b231983216dec87111bd6e143b0c994780e41c14","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.22_1769645213219_0.13456119271415723","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"dsc-itv2-client","version":"1.0.23","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.23","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"a6b9150018ac91a6988d2f0f091dd311e2204c6d","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.23.tgz","fileCount":14,"integrity":"sha512-fT1q6CCKbmDj9P53VnpH+Zw2XUXnlsgptS4+vTXqRqTGiUIoT2p5KJXm9CY7Bn3vDASY5YQKng4OYkifkPaoCA==","signatures":[{"sig":"MEQCIFBhjiaAP1jT2SGndEPAyTOp7TNsR/Dh5YnE4dLYg2bkAiAWFsqEGRaOYvmWjnu+B/Ee+ZEsOtRhgHekiz7Vb3+9gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171233},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"2b8193adc7b321ba25700fd4678a3cea11e05ea4","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.23_1769645976633_0.9995400871752149","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"dsc-itv2-client","version":"1.0.24","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.24","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"769b86ffbe8875f6b1eb2574d7f01d5be558afdd","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.24.tgz","fileCount":14,"integrity":"sha512-ZoUsGwkGSlgjOYF+8ydTiedAR5tQR5epf1f+l2R+wde96NpDVy44U9JuEEgTGLNcj+FjOXwAyf0N0LWtzUVfIw==","signatures":[{"sig":"MEYCIQDFB+vEYyq17E6DNZ7pobHpkhUUeMqiheee7msjOU/UOAIhAPqj7dFQPoAffshsfbJOf1Rwq6l5g1oQe8il5Lbnar69","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176376},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"506fd33eb9ab50a16f1b32f3078544f896f2054e","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.24_1769655501990_0.5090569955465636","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"dsc-itv2-client","version":"1.0.25","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.25","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"fd9eda69934067fe2a0f7490dae741ef367a0cf0","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.25.tgz","fileCount":14,"integrity":"sha512-HQWyYSCwxRKTPqZzaIv4wCYRAr5SSDsbXzso8U7SupgJD0eAc4PiVvo5NvREnSusMiqZOqoP5MQZnfzkheQfsA==","signatures":[{"sig":"MEUCIF4imSXfi3cL0HcddeMD46HaX7Sn56UHKjLv/GxRy5SXAiEA4ADh2MyXM/qMvQZ8ALcozp4UdxdLMqHxdPYMjXfvnl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177096},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"c65f8e2efab21ae7ba8cd2fbfe9f1b23861b2a77","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.25_1771289056003_0.24516894227634434","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"dsc-itv2-client","version":"1.0.26","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.26","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"b4e92b0d8103def5cc6e76f28e64db19603a829e","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.26.tgz","fileCount":14,"integrity":"sha512-65ICQZAX3debuK4IpMMNfc7VGfbVYKgvU9Ff9eKORdVORshUcZptRI0GXnvmvxs34ijdGtCoPr2ObAXeXs+84g==","signatures":[{"sig":"MEUCIDW2PNf1JZiVXs1AGC4DBGGHmpgBWSTV6Pp46e670NMoAiEAlwRAnqETMA5F1tqneFNO7x0oYXd71J933jFUzaZnESI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178177},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"e12167fe03ca17ae7442c2813cbfd45faa23c8a2","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.26_1771304268770_0.9995125434473031","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"dsc-itv2-client","version":"1.0.27","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.27","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"f33e8a6c5e4a2dd7543b494b09f297e19d1550f6","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.27.tgz","fileCount":14,"integrity":"sha512-paN5wek3WMGsCUqdeb2G8AnuxU7ygkIfyFpMfim4NpBXiEGRvuwokvMblQw8ZVOm1vsljADW8XHwuws9CLHrKg==","signatures":[{"sig":"MEUCIC5DYKVQt4Y+ws+4ysFztdGGz28g0LH7DheuRbAxwVhXAiEAn4FdUSGw7gQyh0HNAoN3OA0xG8pg89Ecu3dP17Pn0xE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180748},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"e1b862fbacf94ec9521ecdc238325922636553d5","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.27_1771305386963_0.3781373830797621","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"dsc-itv2-client","version":"1.0.28","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.28","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"e2f74f6f8bcedc42b9e39291e9082bb858166990","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.28.tgz","fileCount":14,"integrity":"sha512-E7N8yQlpUkJOE0jwcZ6iMHBJSHq/e1eDwmUqSTxHtTcHbQvV/Xt5WYGnwhqFOYvR3fafffKefXhPHsROgXfBuQ==","signatures":[{"sig":"MEUCIQDI8jnJWzGmz6PouUWBDTzoDShcoYdJTO/IxmSB1tvycQIgXgPOXnclNncJQunFLVAqjmR3q2KoesOpl74sIYVYYuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180946},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"ee47b21eb450ae4a051c5618abe67da72f3c8a8b","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.28_1771306111982_0.8658118526440202","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"dsc-itv2-client","version":"1.0.29","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.29","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"571f4b014e540c2a577970579de4c31aafd20318","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.29.tgz","fileCount":14,"integrity":"sha512-xNpbY1VZXOWdvVxiCHf1qLrvEpM1zx4PEPxyVWYuwZWSKp7xrdFaQPl+GFjmkPdwKogHVKNhBWU8BAhxVqF/aA==","signatures":[{"sig":"MEYCIQDqOHUpZ0cQqlFIFa/E4A8Cq1y4fXSELiKriRJjMb+Y6QIhAIij3e0l3XwMsRvVbTmzwWc0oyjpKl48U/P5rewOOVKU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181140},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"84a95d809af3f6ab3e0833d22c45d72e08c5c930","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.21.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.29_1771306950161_0.06865659045676686","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"dsc-itv2-client","version":"1.0.30","keywords":["dsc","neo","itv2","alarm","security","tl280r","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@1.0.30","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"bccd408e18ea8fd618b3f8977a7d218f588c0425","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-1.0.30.tgz","fileCount":14,"integrity":"sha512-iWgltUh5aQVjxcc5+jKDGQ8jUWlMoOARZpINrwW5Y8vSbIxhfXi7OWdtcKOx0spG/Ms5jmO0f15+qJTYaFVd0Q==","signatures":[{"sig":"MEYCIQCn2MnFHH3ehp54SAonbzOPrQnLtqMgMNqb43I+PZ0yVAIhALEjwKkWiFZcc8t8ellATQTBZ3Y3ltKA5HR5HGojdvhr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180123},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"19900ff14b117e139a4f150f39b7479115e7a5fa","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280R Communicator - Monitor and control DSC alarm panels","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_1.0.30_1773290197470_0.18077854666786064","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"dsc-itv2-client","version":"2.0.0","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.0","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"25e051ecb9ba313e23db97d71250fd18e6385fae","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.0.tgz","fileCount":14,"integrity":"sha512-41gIHxBAN/udMi2dA3zhHmGvVA82uDUdMyU8DFWPJtb0+O6keV5WajtV4nv8vYyjaz/xoT0AD3ikpatvDcOgkg==","signatures":[{"sig":"MEUCIQCUbZca76g3tvxx/GUjxjqNQkEsFzZCK8YddMo81fEyagIgB/5Gg0AT71PcmvbcA4qO0FHweWBUu6SAq+uUy8Qp3dg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169940},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"dc9ee022e91e808bd583cf21ccf38b84743d96cf","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.0_1773735576811_0.9233670770515208","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"dsc-itv2-client","version":"2.0.1","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.1","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"61c37f8ce948f1babefc5f89a808650d64d1e66b","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.1.tgz","fileCount":14,"integrity":"sha512-PLmMvVWC7KzKOSMUT27ZsOS8Dm09yJ+yPXpCDe8vgN6pf0lQ2TFwHQbwtN5ETHc17TnrcQwrH9gArx/6qEMd+Q==","signatures":[{"sig":"MEQCICz5Q+Pz+whJrmh/EDY0DmUg5+9ScmTRpMFGQVVKoT95AiBcqStGG0XaQhU8UnZnl1e0gVOCzFWjv51VfA83Mzm5cA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171518},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"be8a4b7b10d44afffc2ed3a355bc05b21e697083","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.1_1773736342513_0.058392287076576066","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"dsc-itv2-client","version":"2.0.3","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.3","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"9774b0edae0ea16357e57236c50323b8c401c8a0","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.3.tgz","fileCount":14,"integrity":"sha512-l21n6iYWWyqtkO/gFjceYtRqKlWR/EoxoXQxx7KY1lYxxkZsXBb2cNv+JxMpFzs3g1MsRGua9u5icPykJCKP0A==","signatures":[{"sig":"MEYCIQCgwdYH8zxN9AcmFW1hpNXgz1z9yDrOTx49EcBCpUl3qgIhANWgJyxCpLPstSkj2uf0acLLJ6FBo1o5Kt21k98ddsl2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178662},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"641cca942a4b510dbefd6513cd4f2112900357cf","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.3_1773766240122_0.6947174000264615","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"dsc-itv2-client","version":"2.0.4","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.4","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"5bb99da5fe20d8fe1a937098c87a5f76225b4fed","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.4.tgz","fileCount":14,"integrity":"sha512-pPAWgqHzD570z9ArFbXoC5/tQuYCT45iBofWQtTumArwTN7M3fBfSts7Nl8hU1/GOOIGbLE3A0oSVfm4t26F6Q==","signatures":[{"sig":"MEUCIBvbmo0ZrE3ysGe9LQIEnPhWKx/lpYHPA0kMPH06jY1WAiEAxq1uASqe8GQg14XIr15qZwL1rTYWeDLq5DCvA0McBxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185432},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"e273ebbd80fafee6bc32467528a0469957bccfc6","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.4_1773774612697_0.5814541641786597","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"dsc-itv2-client","version":"2.0.5","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.5","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"15a55d9be88642f7312bfbf608d7e178455e7e21","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.5.tgz","fileCount":14,"integrity":"sha512-h8JV+t4i6PwtRoc35blATN32fDl3OgW83WzBotgIgtepXW2wDZPhq3aPTkEMwRrmM3brdt/XMvMkAAxuUU9dvw==","signatures":[{"sig":"MEYCIQC5tYSBWKQ7yFbPhNePE2y9OEGy2eNDWYs3JAVWNI4JwQIhAO2GIdx0ptpNeuXyijNZfBAvus5Rb0k1lqClMX26DMde","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185657},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"0142c0b6487e0d23e4f08ecddd6091c30fd5a326","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.5_1773776038566_0.3960119210825881","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"dsc-itv2-client","version":"2.0.6","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.6","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"344df61f5093bd8327872d59717be2fb85d32799","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.6.tgz","fileCount":14,"integrity":"sha512-vNpEJrQ2olWQ+z3opXEtuUMxyrMC8fTR1oi9x3VJU9Hh73+BD5WC5TdobPI0S1fDAfoQsPi4s+mAj46MNjPDCg==","signatures":[{"sig":"MEQCIFT5fYU5fLG82VxRCSFRz4gkR81rbotNg71nRmO/rih2AiBDAJr2YQ1sJ2c1t0rqHA3lHXb0ZVh2RVaI7lxLOlZvjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186781},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"081f4f7d4f29b81db4264a024bae4836e6c4277a","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.6_1773799612841_0.2042424879745237","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"dsc-itv2-client","version":"2.0.7","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.7","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"e66bac6ed39e534de6ea363fdc8781e3423a2078","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.7.tgz","fileCount":14,"integrity":"sha512-nt7k1wQfpbC/t/s10hARtYbAAhQcaBEiPDyLtiSC+7ERNhAauGZ4sqxiTW3TPqvMYftHaSOdpkslMoz4RlZIfQ==","signatures":[{"sig":"MEUCIAS7SnJAnakmLLX7m3RehuWEo/+A87yZK2a3Yu65uCERAiEAzJg94aHqe4VuDUSlsJTbWOKT4g6dxI0L35iMp6w3SJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189959},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"3df433994ac2bbdb6059c99b4bf989875e03279b","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.7_1773804104685_0.6276030983272771","host":"s3://npm-registry-packages-npm-production"}},"2.0.9":{"name":"dsc-itv2-client","version":"2.0.9","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.9","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"605bc5cd263400f9ef1d40e5ae66be67353976a5","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.9.tgz","fileCount":14,"integrity":"sha512-W1uPw+VOO1p/T5IrfMtBqqT5OTct+DX64prk/W1+kUGy6UNhxqbgEIUB/BD1Blo1WBUjiCFIetamp/e0ILuQAA==","signatures":[{"sig":"MEUCIQDVhskghDhCYWMYhb/hKfmjKykJrDdKCJHx1j6mg4XuawIgd8XApxPna6OnFSCs/godg7JNbR7+J3Pd/1ANuvYdnKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192859},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"360b87e8c618a07aad5f7c99bf38e534354de3d2","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.9_1773853554017_0.011445939248433401","host":"s3://npm-registry-packages-npm-production"}},"2.0.10":{"name":"dsc-itv2-client","version":"2.0.10","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"author":{"name":"fajitacat"},"license":"MIT","_id":"dsc-itv2-client@2.0.10","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"dist":{"shasum":"17eb4021df4070c60978b6a89fdb15353a91b46a","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.0.10.tgz","fileCount":14,"integrity":"sha512-kns8bPJmJZ5c+E325ojX9PCSmXWX6+35+mp47XeuGFVp9qd2JGNEYqqM+5GWSdubczF0B7HpX9jIO+8IJbPrFQ==","signatures":[{"sig":"MEQCIDWzpUzhP2ftTUADBDKc66tNOA0MNyV3BwL5j+6CVeX8AiB7ssm4czcVO0iUm3oqjjODrNoO2RlYYpa50lrmRGrgbw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192955},"main":"src/index.js","type":"module","engines":{"node":">=14.0.0"},"exports":{".":"./src/index.js"},"gitHead":"5a71bb50f1a67c53951e9734ba936d1af934a71f","scripts":{"example:cli":"node src/examples/interactive-cli.js","example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js"},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"_npmVersion":"10.9.4","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","directories":{},"_nodeVersion":"22.22.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/dsc-itv2-client_2.0.10_1773863251337_0.390933677623849","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"dsc-itv2-client","author":{"name":"fajitacat"},"version":"2.1.0","description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","main":"src/index.js","type":"module","exports":{".":"./src/index.js"},"scripts":{"example:basic":"node src/examples/basic-monitoring.js","example:control":"node src/examples/arm-disarm-example.js","example:cli":"node src/examples/interactive-cli.js"},"keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"license":"MIT","engines":{"node":">=14.0.0"},"dependencies":{},"_id":"dsc-itv2-client@2.1.0","gitHead":"b428c0be83e87b1e9f042010484da6d2ea5a06af","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-lAUbPXUIN250RgYLPQnLMS3F48B6BeuctaKxWj09Zgf9YJjU1FYK2CGtW4lJ7PQ2aXPskS3a3u1asv46UrjWBA==","shasum":"96bc4363dfa708d56344e279fa7bc6aa15df8a0f","tarball":"https://registry.npmjs.org/dsc-itv2-client/-/dsc-itv2-client-2.1.0.tgz","fileCount":14,"unpackedSize":234886,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDDTeeYD61dglRHL9zz1Yqb5ABsYabvfT3VrOnUp6l5CgIgbo9A/qoPgSHVcfGAEYIOJeIxB0WBcR4CmWKTWaWtUPA="}]},"_npmUser":{"name":"fajitacat","email":"nathan@freezable.com"},"directories":{},"maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsc-itv2-client_2.1.0_1786061778712_0.9013994517793724"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-18T16:12:16.814Z","modified":"2026-08-07T00:16:19.007Z","1.0.0":"2025-12-18T16:12:16.984Z","1.0.1":"2025-12-18T16:16:32.992Z","1.0.2":"2025-12-18T16:18:28.591Z","1.0.3":"2025-12-18T16:19:36.610Z","1.0.4":"2025-12-18T16:24:52.592Z","1.0.5":"2025-12-18T16:30:50.878Z","1.0.6":"2025-12-18T16:43:56.812Z","1.0.7":"2025-12-18T17:09:37.722Z","1.0.8":"2025-12-18T18:18:59.078Z","1.0.9":"2025-12-18T18:25:20.960Z","1.0.10":"2025-12-18T18:26:23.911Z","1.0.11":"2025-12-18T18:57:48.312Z","1.0.12":"2025-12-18T21:47:43.874Z","1.0.13":"2025-12-18T22:02:02.426Z","1.0.16":"2025-12-18T22:13:38.343Z","1.0.17":"2025-12-18T22:18:26.914Z","1.0.18":"2025-12-18T22:22:38.441Z","1.0.19":"2026-01-28T22:54:42.945Z","1.0.20":"2026-01-28T23:14:13.426Z","1.0.21":"2026-01-28T23:29:29.129Z","1.0.22":"2026-01-29T00:06:53.414Z","1.0.23":"2026-01-29T00:19:36.779Z","1.0.24":"2026-01-29T02:58:22.125Z","1.0.25":"2026-02-17T00:44:16.151Z","1.0.26":"2026-02-17T04:57:48.926Z","1.0.27":"2026-02-17T05:16:27.109Z","1.0.28":"2026-02-17T05:28:32.133Z","1.0.29":"2026-02-17T05:42:30.328Z","1.0.30":"2026-03-12T04:36:37.630Z","2.0.0":"2026-03-17T08:19:36.989Z","2.0.1":"2026-03-17T08:32:22.658Z","2.0.3":"2026-03-17T16:50:40.261Z","2.0.4":"2026-03-17T19:10:12.838Z","2.0.5":"2026-03-17T19:33:58.751Z","2.0.6":"2026-03-18T02:06:53.030Z","2.0.7":"2026-03-18T03:21:44.838Z","2.0.9":"2026-03-18T17:05:54.183Z","2.0.10":"2026-03-18T19:47:31.491Z","2.1.0":"2026-08-07T00:16:18.844Z"},"author":{"name":"fajitacat"},"license":"MIT","keywords":["dsc","neo","itv2","alarm","security","tl280","tl280e","event-emitter","monitoring","home-automation","alarm-panel","dsc-alarm"],"description":"Reverse engineered DSC ITV2 Protocol Client Library for TL280/TL280E - Monitor and control DSC Neo alarm panels with real-time zone/partition status, arming, and trouble detail","maintainers":[{"name":"fajitacat","email":"nathan@freezable.com"}],"readme":"# DSC ITV2 Client Library\n\nReverse engineered, completely unofficial Node.js library for communicating with DSC alarm panels (Neo series) using the ITV2 protocol over TL280/TL280E communicators. Zero external dependencies - uses only Node.js built-ins.\n\nNot affiliated with DSC, Johnson Controls, or Tyco in any way. Use at your own risk.\n\n## Features\n\n- **Real-Time Zone Monitoring** - Open/close, tamper, alarm, bypass events via push notifications\n- **Partition Control** - Arm stay/away/night, disarm with real-time confirmation\n- **Async Status Querying** - Query zone status, partition status, system capabilities on demand\n- **Trouble Detail Parsing** - Human-readable trouble notifications from official SDK enums\n- **Encrypted Communication** - AES-128-ECB with automatic Type 1/Type 2 key exchange\n- **Event-Driven Architecture** - Subscribe to events with EventEmitter\n- **Automatic Session Setup** - Capabilities query, initial status pull, heartbeat keepalive\n\n## Quick Start\n\n### Installation\n\n```bash\nnpm install dsc-itv2-client\n```\n\n### Basic Usage\n\n```javascript\nimport { ITV2Client } from 'dsc-itv2-client';\n\nconst client = new ITV2Client({\n  integrationId: '250228754543',  // Section [851][422]\n  accessCode: '28754543',         // Section [851][423]\n  masterCode: '5555',             // User code for arm/disarm\n  port: 3072,                     // TCP port (panel connects to us)\n});\n\nclient.on('session:established', () => console.log('Connected!'));\nclient.on('zone:open', (zone) => console.log(`Zone ${zone} opened`));\nclient.on('zone:closed', (zone) => console.log(`Zone ${zone} closed`));\nclient.on('partition:arming', ({ partition, modeName }) => {\n  console.log(`Partition ${partition}: ${modeName}`);\n});\n\n// Status is automatically queried on connect\nclient.on('status:ready', async ({ zones, partition }) => {\n  console.log(`${zones.length} zones loaded`);\n\n  // Query on demand anytime\n  const current = await client.queryZoneStatus();\n  const part = await client.queryPartitionStatus(1);\n});\n\nawait client.start();\n```\n\n### Arm/Disarm\n\n```javascript\nclient.armStay(1, '5555');   // Arm partition 1 in stay mode\nclient.armAway(1, '5555');   // Arm partition 1 in away mode\nclient.armNight(1, '5555');  // Arm partition 1 in night mode\nclient.disarm(1, '5555');    // Disarm partition 1\n```\n\n### Examples\n\n```bash\nnpm run example:basic      # Zone monitoring\nnpm run example:control    # Arm/disarm demo\nnpm run example:cli        # Interactive CLI with querying\n```\n\n## API Reference\n\n### Constructor\n\n```javascript\nconst client = new ITV2Client(options);\n```\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `integrationId` | string | required | 12-digit panel integration ID (section [851][422]) |\n| `accessCode` | string | required | 8-digit code (section [851][423]) or 32-hex (section [851][700]) |\n| `masterCode` | string | `'5555'` | User code for arm/disarm operations |\n| `port` | number | `3072` | TCP port to listen on (panel connects to us) |\n| `logLevel` | string | `'minimal'` | `'silent'`, `'minimal'`, or `'verbose'` |\n| `encryptionType` | number | `null` | `null` = auto-detect, `1` = Type 1, `2` = Type 2 |\n\n### Methods\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `start()` | `Promise` | Start TCP server, wait for panel connection |\n| `stop()` | `Promise` | Send END_SESSION, close connection |\n| `armStay(partition, code)` | void | Arm partition in stay mode |\n| `armAway(partition, code)` | void | Arm partition in away mode |\n| `armNight(partition, code)` | void | Arm partition in night mode |\n| `armNoEntryDelay(partition, code)` | void | Arm with no entry delay |\n| `disarm(partition, code)` | void | Disarm partition |\n| `queryCapabilities()` | `Promise<object>` | Query system capabilities (max zones, partitions) |\n| `queryZoneStatus()` | `Promise<Array>` | Query all zone statuses |\n| `queryPartitionStatus(n)` | `Promise<object>` | Query partition status |\n| `queryTroubleStatus()` | `Promise<Array>` | Query system troubles |\n| `getZones()` | `Array` | Get cached zone states |\n| `getPartitions()` | `Array` | Get cached partition states |\n\n#### User Management\n\nAll user-management methods enter the panel's **Access Code Programming** mode,\nauthenticated with the panel **master code** (user 1's code — pass it as the\n`code` argument or set the `masterCode` option). The panel has a single\nprogramming-mode slot, so calls are serialized automatically.\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `getUsers(start?, count?, code?)` | `Promise<Array>` | Read the full user roster: label, code, attributes, partitions, code type |\n| `getUserLabels(start?, end?)` | `Promise<object>` | Read user labels (no programming mode needed) |\n| `enableUser(user, newCode, code?)` | `Promise<object>` | Enable a user by assigning a 4/6/8-digit access code |\n| `disableUser(user, code?)` | `Promise<object>` | Disable a user (writes the all-'A' sentinel code) |\n| `setUserCode(user, newCode, code?)` | `Promise<object>` | Set a user's access code |\n| `setUserLabel(user, label, code?)` | `Promise<object>` | Set a user's label (max 14 chars) |\n| `setUserAttributes(user, attrs, code?)` | `Promise<object>` | Set attribute flags (supervisor, duress, bypass, remote, bell squawk, one-time) |\n| `setUserPartitions(user, [parts], code?)` | `Promise<object>` | Set which partitions the user's code works on |\n\nUser object returned by `getUsers()`:\n```javascript\n{\n  user: 2, isMaster: false, label: 'Alice',\n  enabled: true, disabled: false,\n  code: '1234', codeLength: 4, hasProximityTag: false,\n  partitions: [1, 2],\n  attributes: { supervisor: false, duressCode: false, canBypassZone: true,\n                remoteAccess: true, bellSquawk: false, oneTimeUse: false, raw: 12 }\n}\n```\n\nNotes:\n- **User 1 is the master.** The panel owns its attributes and partition\n  assignments; writes to them are rejected, and it cannot be disabled.\n- **Enable/disable crossings reset the slot.** When a slot crosses the\n  enabled/disabled boundary the panel resets that user's attributes and\n  partition assignments to defaults — re-apply them afterward if needed.\n- A disabled slot holds the all-'A' sentinel code (`AAAA` / `AAAAAA` /\n  `AAAAAAAA`) matching the panel's configured code length.\n\n### Events\n\n#### Session\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `listening` | `{ address, port }` | TCP server started |\n| `session:connecting` | - | Panel initiated connection |\n| `session:established` | `{ encryptionType, sendKey, recvKey }` | Encrypted session active |\n| `session:ready` | - | Initial notification burst complete |\n| `status:ready` | `{ zones, partition, capabilities }` | Initial status pull done |\n| `session:closed` | - | Session ended |\n\n#### Zone\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `zone:open` | `zoneNumber` | Zone opened |\n| `zone:closed` | `zoneNumber` | Zone closed |\n| `zone:status` | `zoneNumber, statusObject` | Full zone status update |\n\nZone status object:\n```javascript\n{ open, tamper, fault, lowBattery, delinquency, alarm, alarmInMemory, bypassed, rawStatus }\n```\n\n#### Partition\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `partition:arming` | `{ partition, armMode, modeName, method }` | Arming state changed |\n| `partition:ready` | `{ partition, isReady }` | Partition ready state |\n| `partition:trouble` | `{ partition, troubleFlags }` | Partition trouble |\n\n#### User Management\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `user:updated` | `{ parameter, accessCode, attributes, partitionAssignment, label, count, start, end }` | Panel reported user slots changed (e.g. edited at a keypad) |\n| `programming:leadInOut` | `{ partition, leadIn, access, mode }` | Panel entered/left programming mode |\n| `label:text` | `{ collection, start, end, labels }` | Label text response (zones/partitions/users) |\n\n#### Trouble\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `trouble:detail` | `Array<TroubleRecord>` | Detailed trouble notification |\n\nTrouble record:\n```javascript\n{ deviceType, deviceTypeName, deviceNumber, troubleType, troubleTypeName, troubleState, troubleStateName }\n```\n\n#### Error\n\n| Event | Payload | Description |\n|-------|---------|-------------|\n| `error` | `Error` | General error |\n| `command:error` | `{ failedCommand, nackCode, message }` | Panel NACK response |\n\n## Panel Configuration\n\n### TL280/TL280E Setup\n\nReference: [Johnson Controls TL280 Configuration Guide](https://docs.johnsoncontrols.com/dsc/api/khub/documents/TBs~T4HbUlFAb5fFkKsJGQ/content)\n\n#### 1. Enable Alternate Communicator\n\n**Section 382** - Enable option 5 (Alternate Communicator). Use star key to toggle. Hash back once.\n\n**Section 300** - Receiver 1: set to Alternate Com Receiver 1. Hash back once.\n\n**Section 380** - Ensure comms are enabled (should be on by default). Hash once.\n\n**Section 310** - Enter a 4-digit system account code. Scroll right and enter the same matching code in the partition account code. Hash back once.\n\n#### 2. Configure Communicator (Section 851)\n\n**Network Settings:**\n- For static IP: enter sections 001, 002, 003, 007, and 008\n- For DHCP: skip to section 005\n\n**851 > 005** - Enable option 3 (option 6 should already be enabled). Hash once.\n\n**851 > 010** - Enable video verification (good practice even if not using it).\n\n**851 > 100** - Turn on option 2.\n\n**851 > 104** - Verify it reads 0BF5.\n\n#### 3. Integration Settings\n\n**851 > 425** - Enable options 3 and 5.\n\n**851 > 426** - Turn on option 3 (required for real-time notifications).\n\n**851 > 428** - Enter your server IP address (the machine running this library).\n\n**851 > 422** - Read the 12-digit Integration ID (two groups of 6 digits, written in blocks of 3). Scroll 6 times right for the second group. This is your `integrationId`.\n\n**851 > 423** - Read the 8-digit Access Code. This is your `accessCode`.\n\n**851 > 101** - Enter a unique identifier.\n\n#### 4. Reboot Communicator\n\n**851 > 999** - Enter 55 to reboot the communicator. Hash out 3 times. A trouble condition on the keypad is normal during reboot.\n\n### Network Requirements\n\n- **TCP port 3072** must be reachable from the panel to your server\n- Panel and server must be on the same network (or routable)\n- Static IP recommended for the server\n- The panel initiates the TCP connection to your server (outbound from panel)\n\n### Finding Your Credentials\n\nIf the panel is already configured, enter installer programming (*8 + installer code) and read:\n- **Section [851][422]** — Integration ID (12 digits)\n- **Section [851][423]** — Access Code (8 digits, Type 1)\n- **Section [851][700]** — Integration Access Code (32 hex, Type 2)\n\n## Configuration\n\nUse environment variables:\n\n```bash\nINTEGRATION_ID=250228754543 \\\nACCESS_CODE=28754543 \\\nMASTER_CODE=5555 \\\nPORT=3072 \\\nLOG_LEVEL=minimal \\\nnpm run example:cli\n```\n\n## Troubleshooting\n\n### Panel won't connect\n\n- Verify server IP is set correctly in section [851][428]\n- Ensure TCP port 3072 is open in firewall\n- Check panel and server are on the same network\n- Reboot communicator: section [851][999], enter 55\n\n### Session won't establish\n\n- Verify `integrationId` matches section [851][422]\n- Verify `accessCode` matches section [851][423]\n- Enable `logLevel: 'verbose'` for full protocol details\n\n### Zone queries fail\n\n- System capabilities must be queried first (automatic on connect)\n- Zone count must match panel's actual zone count (automatic when using `queryZoneStatus()`)\n\n### Arm/disarm not working\n\n- Verify `masterCode` is a valid user code on the panel\n- Check partition number is correct (usually 1)\n- Panel sends confirmation via `partition:arming` event\n\n## Tested On\n\n- DSC Neo Panel (HS2032/HS2064/HS2128)\n- TL280/TL280E Communicator\n- Type 1 encryption (most common)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}