{"_id":"lgtv2","_rev":"23-baf6359642b561cd60efe4e32a09c02b","name":"lgtv2","dist-tags":{"latest":"2.0.2"},"versions":{"1.0.0":{"name":"lgtv2","version":"1.0.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.0.0","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"508ad300954b08af2205edd654cd93710712abba","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.0.0.tgz","integrity":"sha512-PGe4xdEC7OrWuJwd7l3l69XEfAmsYKAh2EIBYcwZ2bOx7d7EPVVKsaCRdFNf+J6jLSvbZ+jIL+O+ZdpYzQ5hHA==","signatures":[{"sig":"MEYCIQCAV42lt27e64OlpuRXZzqWs6prddSyyVIiJnkADtuMigIhAJFfiZMzCcFuJkcuSSFBEAKkHNj5MGQqifYCOjJYTq3M","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"508ad300954b08af2205edd654cd93710712abba","gitHead":"241ab98d8a6fa4699f00fde478ff3311ab669461","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"2.11.3","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"0.12.7","dependencies":{"websocket":"^1.0.17"}},"1.0.1":{"name":"lgtv2","version":"1.0.1","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.0.1","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"2d1847267237d6de4779e4c993567c57de71713a","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.0.1.tgz","integrity":"sha512-hxL9uYtkbwRgBRaxaZN1Ioqp5ZHnDKcUr7rslFjcw30+UUthYfugK80oHxUOTSna+WSC1sjrh2xHq7i68VRPAA==","signatures":[{"sig":"MEUCIAvuFUZxZF4dOGGLTOyJ33q/qio4p/YMpALI7QeJNBNmAiEA9Nf3W4ZrDdsLGcrAeaPaP/ZlGFymx1pCMwVcrzfGg90=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"2d1847267237d6de4779e4c993567c57de71713a","gitHead":"98ad3794005b33cc96ef67116a786f08a12dcd26","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"2.11.3","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"0.12.7","dependencies":{"websocket":"^1.0.17"}},"1.0.2":{"name":"lgtv2","version":"1.0.2","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.0.2","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"f5ad8c4ff113197bd2e11c1c75f2e9a07bc75c30","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.0.2.tgz","integrity":"sha512-f3ByltFMEGK/JVDqC1wTqVcchGiV97CaZr+YiEyJTQV/M9GIyhW4j97ziZkrasbXinHxn9YbIqS2xlZ/G3jPfw==","signatures":[{"sig":"MEYCIQDvTtw9+GOSF5ZRaxc+a5c8Shb1HquwH7UKHNK3LXVDPAIhAPRK4oKSNaTO72v1TyJg0iL4eveCQv/xFH+sMqvbww9/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f5ad8c4ff113197bd2e11c1c75f2e9a07bc75c30","gitHead":"36df1c77a28d5d1b599abdf8456b7e567e8c83b7","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"2.11.3","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"0.12.7","dependencies":{"websocket":"^1.0.17"}},"1.0.3":{"name":"lgtv2","version":"1.0.3","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.0.3","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"f4c8a588efd9cadbdf57189a5a983b0369b6aa29","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.0.3.tgz","integrity":"sha512-WABDP5zkYWPnKW6pLtru5R0ZkByhfoYgztE3Zus9VdkaP2XJD0ssM8QFiL4b1OAvbQogPmjDG4ofkt68sXte3Q==","signatures":[{"sig":"MEUCIQDf5AFnjMltnkz8YneB8If501TIRj19DBvLdAAuMExnrwIgLQfGRG9POGFX2O3OVbY+arAo9vV4Dk4XXSz6JeJDp/s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f4c8a588efd9cadbdf57189a5a983b0369b6aa29","gitHead":"1dfc22655631092a9aae3107988f4b3ef4123fcb","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"2.11.3","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"0.12.7","dependencies":{"websocket":"^1.0.17"}},"1.2.0":{"name":"lgtv2","version":"1.2.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.2.0","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"url":"https://github.com/forty2/","name":"forty2"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"06ca637fb08fc334f63477fe99dc4a44caef4df0","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.2.0.tgz","integrity":"sha512-Bl1c1tei6eOVaWe6DyQ4czTL/6KYLqPTlmOKQa8pRyHIXR6bszS3wEYZioyTMnpFsEPOUKiNZdYBIpIzJntTLg==","signatures":[{"sig":"MEUCIQD5nr2bfPyx0g3zsqoBD7JRGUfnQ2H8iE11vVHk6y4TkAIgPySht53HGZG4xGm41KDFBUvVhJZD/6h9YcKPIVU/dWk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"06ca637fb08fc334f63477fe99dc4a44caef4df0","gitHead":"4fb4aeabdc0e1d205567ac8866ecb50e91970a60","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"2.14.12","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"4.3.1","dependencies":{"websocket":"^1.0.17"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2-1.2.0.tgz_1467480823261_0.7533022731076926","host":"packages-16-east.internal.npmjs.com"}},"1.3.0":{"name":"lgtv2","version":"1.3.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.3.0","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"url":"https://github.com/forty2/","name":"forty2"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"0e8dea3258fdb364e9edce3331e5b7bedc54520d","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.3.0.tgz","integrity":"sha512-3MjjP5Tdr8lpF61Bc3796xMdpZohSR1V481N/L8x0QyjEVaYZyiZ88h+F57lAdttT2PQDOr2FcXRRDEvjZ+fww==","signatures":[{"sig":"MEYCIQCc+BeOdxCDEkYwF3fn5P/ZVFoSYSQstqCfkvCcExSHBAIhAKnECPZ97IE7WClNNnEz5VFed5Rko+71sYCwO5NC3QKQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"0e8dea3258fdb364e9edce3331e5b7bedc54520d","gitHead":"7b1b740e8a5d2eabe18c3085ae36230373a158ea","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"3.10.10","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"6.9.4","dependencies":{"websocket":"^1.0.17"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2-1.3.0.tgz_1491035604340_0.7814365308731794","host":"packages-12-west.internal.npmjs.com"}},"1.4.0":{"name":"lgtv2","version":"1.4.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.4.0","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"url":"https://github.com/forty2/","name":"forty2"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"e3fae43bd21c6c4ab4ed38c4a1b55b5af0ab8398","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.4.0.tgz","integrity":"sha512-ysRXyKKbbw6sMcctsjRUhFo0+tJ4JZNd4XekyBgP97ypvj4Xtz44g80i1XHWiBND9TC2qZGIE6gmr9PmSJwHgA==","signatures":[{"sig":"MEUCIQCKevETgVqfkmuFm6dP14npyysZHyd/op/uF6dDELQQNAIgHM5QuRTnEa7yf3rBty9lWrtF+SSh77tmq0vQQ2sgDEk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"e3fae43bd21c6c4ab4ed38c4a1b55b5af0ab8398","gitHead":"629a4d03a5e8349cc8be065d6358a2eadf4a9c04","scripts":{"test":"camo-purge ; xo --space 4 --no-esnext --ignore test.js"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"3.10.10","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"6.11.0","dependencies":{"mkdirp":"^0.5.1","websocket":"^1.0.24","persist-path":"^1.0.2"},"devDependencies":{"xo":"latest","camo-purge":"latest"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2-1.4.0.tgz_1501174330965_0.38188324379734695","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"lgtv2","version":"1.4.1","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hq@ccu.io"},"license":"MIT","_id":"lgtv2@1.4.1","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"url":"https://github.com/forty2/","name":"forty2"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"f45aacf697862d2bc572faf34af8b144dec29dc3","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.4.1.tgz","integrity":"sha512-xkQlSCr4AlN4arTVBp4Jsye8TxncWuMGEtlqtYUG7sdC3Ldrwnhy3GdwpvRCksVOx3kL4auxMVeYcl7QaKFvoA==","signatures":[{"sig":"MEQCIHP32LWc1zwW1pg3W5K++7OlUlyK0t8BmggyJtB6eu6EAiBLuLDDnM//KeRj6QQzr6kCXtOUpVaFQSYAaUonKhqVPg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","_shasum":"f45aacf697862d2bc572faf34af8b144dec29dc3","gitHead":"43a962b333773c44ad232da32ad01645004f5cd7","scripts":{"test":"camo-purge ; xo --space 4 --no-esnext --ignore test.js"},"_npmUser":{"name":"hobbyquaker","email":"hq@ccu.io"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"3.10.10","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"6.11.0","dependencies":{"mkdirp":"^0.5.1","websocket":"^1.0.24","persist-path":"^1.0.2"},"devDependencies":{"xo":"latest","camo-purge":"latest"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2-1.4.1.tgz_1501177141574_0.0395448780618608","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"lgtv2","version":"1.6.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@1.6.0","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"xo":{"rules":{"unicorn/regex-shorthand":"warn"},"space":4,"esnext":false,"ignore":["test.js"]},"dist":{"shasum":"118236c149304c36ac8130e8bd3f01b49d545a8c","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.6.0.tgz","fileCount":5,"integrity":"sha512-FBxl2uFWDN5A3SebR6lu1410rlYbEdROaiEn8OAT8Qw+ObEysaJz4WZ6hbxzq4x5h5e+v/QjNgemVasguACm0w==","signatures":[{"sig":"MEUCIAu/CDI0ddF95MjYrn4859uVobKHhd87Oc2mhQZpgH5hAiEAwAhgEV9yUxW+sPCGfW5pSUxw2fLr7ew2u9bOvawn/VI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19997,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQjBzCRA9TVsSAnZWagAA5/wQAIOEZJNnBZGwHCTgvcAX\nF9YOcTSstYKbWWyqovzXykjQ8kTKZbt3y0gqD3DBJBn0L0i31APF8bH2GueX\nz6E4Tyz1KX55j8OUzShD4/Wt0MBWGoHV2uPss74n3eczfE4UGsDZqdO7d+eU\nq1115OpeI0uPFiDnfTMaO1f+g98hsMABvk167H+GuszGCLaRqZIva2xK2O0M\nSq5LK3ecAgkJhhhFB0X/AYzz91UQSUD94O8qerSBiiS0RGMg7gqhLj2Cy4ZX\nHng9z9Q+106Jc4rFpzil2B+M3VjbadA+BSxWAx2RI2WnWUHtdRtr2AvAq3ue\nd7X6L0ZbG58jWfdeSBjUJ990lgsUWtI5DHbLEoV81RF9Ap+bvcnMsuYlrPWM\ngxPB/PNe7xuAd2UBkyvUHPoCD7aB6SVjqf/hPFNJyQ4UHxKHOWMl5jBqZUKr\nQV1emQYPLPrzttw74z3V7rhASUTOoFopz4dA3dl246kP/uDNAgvaan1Ziob4\nYeScOMO1+rxox24nBp12SXSZ1taxjtZYWYXOQXJ3ZBmrNVksWh4JjY9OVlE1\nVn/K5qGAVvOzmQT1v3BfB7eqJnFN0eGpUvF6VbkvTbLwC8+lB1gxb8w/as/r\n+vdkq3UfSnZNqml/PiTfPLgC7nS1laKcBt9gHoK5oOfY2+/S+tIWe9jo1tDW\nKUEu\r\n=cani\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"1922d6aca3b92b3295a1b3ae08893b2d3f087780","scripts":{"lint":"xo","test":"camo-purge ; xo","lintfix":"xo --fix"},"_npmUser":{"name":"hobbyquaker","email":"bastiraff@googlemail.com"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"14.5.0","dependencies":{"mkdirp":"^1.0.4","websocket":"^1.0.31","persist-path":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"xo":"latest","camo-purge":"latest"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_1.6.0_1598173298716_0.14057505501646372","host":"s3://npm-registry-packages"}},"1.6.1":{"name":"lgtv2","version":"1.6.1","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@1.6.1","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"xo":{"rules":{"unicorn/regex-shorthand":"warn"},"space":4,"esnext":false,"ignore":["test.js"]},"dist":{"shasum":"8ad456a5fee133e61adfa39ae06e58a17f9260af","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.6.1.tgz","fileCount":5,"integrity":"sha512-BghCPiJqVOL+VYFYyJzml3iTiUpQ7co+6o2yzcprVBneRfQwC9hkaUXSNy4FWMXX2vwKM94GAdXT7B31vpy8pg==","signatures":[{"sig":"MEUCIQDsVLdRaR3cMgVMWsa13UDCEEr8c8AuE+IwvJSeEIIsJwIgYcMn79piN7cxMVJ+uYA/i7PDf4rZQUAkN2QKR+4WmWY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQjE5CRA9TVsSAnZWagAA1KoP/0Abxs5e1abMU80xGA5e\nVuFfu/1lWEa/0MnqVlTeZ+X7AyyfoxtPO709akIzxRJjM/Cac8jB+Xiw7h/q\nd+gyK5REe4QqYi9BdJpezWk80VF6qD5SDDjk+WLsHnwD19eAkexbJZhzQ1U5\nVZ2zJI66L6/ycyWj5JGrJCaH6mC62RJeLFU4DS/qyTP+BtVKIQpKyloL1ftE\nLtaBcFVkSAbvIOIf3NG56d8ReFrwAO1eF4XfR+I7zpQH2CFWpBREMLM/vgez\nlX0rpGPUW68N1DixgeXOobQ89bwa1c4t+8CBZB0OH7K0S9qzIWskP1y8/s4H\np35iLuTa3S0ns5R9JoJXj20tSitzADL6Ca8wRoKNM+GC5SwBt4f8GZYgZS1U\nj9kxdbdZCQSj32TLdME3N0vPMUEWT16CqeI/1qh9gR/O5Gn+SudgjOSUGjuE\n7aTjkI9TsClRZc92u14kT2ita2rlvmsFmcqAWQCdnWpwXqzYzzYgYMtMg1HH\nfO7fZJkbDVBE56x4LhSemnT9c/KanBPAgzkKlnBniUXacrPWDgfTmI7TGMIF\n084k+0XtTleWYw+ZBfRDkE4GTt+5yo7NOgrMdYgjN0XbVcV3fTVr/lbNeyP4\nBk+d1oW+79aHqDT9kR+QGhfEVSlriVRYRRommpg6i6/gh0kPduSna8TKJK7S\n0piq\r\n=ITO4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"36edbf6c75f1a94baff69d5305a8c1d2a370ddf1","scripts":{"lint":"xo","test":"camo-purge ; xo","lintfix":"xo --fix"},"_npmUser":{"name":"hobbyquaker","email":"bastiraff@googlemail.com"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"14.5.0","dependencies":{"mkdirp":"^1.0.4","websocket":"^1.0.31","persist-path":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"xo":"latest","camo-purge":"latest"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_1.6.1_1598173497363_0.007659287775097168","host":"s3://npm-registry-packages"}},"1.6.2":{"name":"lgtv2","version":"1.6.2","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@1.6.2","maintainers":[{"name":"hobbyquaker","email":"hq@ccu.io"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"xo":{"rules":{"unicorn/regex-shorthand":"warn"},"space":4,"esnext":false,"ignore":["test.js"]},"dist":{"shasum":"4ee8a92315db35952a3471650080c717ff0d1867","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.6.2.tgz","fileCount":5,"integrity":"sha512-fA0t1gkE9H3kIeOnA6ALYoVdYivHx0W1GUtjfkuFvJ23f3M2XEIDO5O6aiXY4DCsY/M30JzSv9JkAApaLqkE0w==","signatures":[{"sig":"MEUCIDk+Z+NXpXMeWnhrfJOU3RaY8Gp5rWKijU64OWfjjLGvAiEAiFDdALFJVAY2Eqgp0MRZVVAe9kMaodYjseViUIOEMk0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21043,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQjK/CRA9TVsSAnZWagAA/s4P+gLR90LxDs6478QY15FK\nauGLVT/pZ3gXzBHkz3yXd5aUJYlyoEjEq6bKFDv2DWxSxo9ZmsaHd3LhrgpO\nGnSckrezU3vxhzjO876a91kI5/Ty1XLrK8/KSuNiGtRqnSYv46MBmBJKPV9s\nl+Y/FAFZ8LbtutmsEIgNlzqAdMRp7mJqSdi72RRy0BzJojvigwv4DGODS9qm\nGLzMzq/ieUWWlnc+4M3OFfFTSmOMoLUJzTAKqgdUnro0bkhTSi9rIOwuOQ79\n9jYsMk7g6/RiygPmSJoTtKRdhyvDDOMGYU3vIoICjG7lBd/woDv17Rhr09c2\nXrJO4I/5sKg9hoizEBEBcd4q5j8cXw4CL7emu4AS8jJjxJt7fxShqmictjN2\nA54ZmUCm/OE8dOBTvFtz72DnDg3dBEBEHmrZIqSdgTfKinkAfnTFBFFwqLaH\nQd0kRCK4RZe4TGmMOre++CRXPQxIdpYZtpaP/7fD7e1WYoKy/cTx6E8WhFlN\nUnZl8pArS1aUm5Fz1q2RItt2dT9MmDAC5jEP+rRjMItqV0ay8+GQquxlO6QQ\n3q/e9U+C6fKuFvGupt6ENJzu6XkR8H1NPxDt6y79Z2R1/Wtr4hL3Wagr9fPo\nP6PQcn/o7JEgK38txhYG3zBrUI3WhNbNp6D/ndbYd0LwZw0oyRZIUZ0AgIrc\nvNSB\r\n=JMni\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"475d0c38b68db1db0c29187b9c049c88c03ae85a","scripts":{"lint":"xo","test":"camo-purge ; xo","lintfix":"xo --fix"},"_npmUser":{"name":"hobbyquaker","email":"bastiraff@googlemail.com"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"14.5.0","dependencies":{"mkdirp":"^1.0.4","websocket":"^1.0.31","persist-path":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"xo":"latest","camo-purge":"latest"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_1.6.2_1598173886773_0.2106771821911242","host":"s3://npm-registry-packages"}},"1.6.3":{"name":"lgtv2","version":"1.6.3","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@1.6.3","maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"xo":{"rules":{"unicorn/regex-shorthand":"warn"},"space":4,"esnext":false,"ignore":["test.js"]},"dist":{"shasum":"d9a903106b5a503ea656219a203dfe6062901b7b","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.6.3.tgz","fileCount":5,"integrity":"sha512-iinwKz9MzxS7H78tBycwCBV/Y8lD7hVWs8zGjEJoi4xRk05SLUU4Xct/Y1VaspfMOgDZ3c0VRF1gA8mLMorqZg==","signatures":[{"sig":"MEUCICC/QBOVrAsgnL1sdJd8o0DpUm7/+kDHhelVllpqcmdXAiEAy62Ea/6QG35k6l8CoZV1umYNSvm0R4Utd+Fe4Qxaj8Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcIxHCRA9TVsSAnZWagAA+ekP/2J/bc5EyRBaQEhoS4f/\neLY5+l6dUabjgy3+KtXpvE45BmfHO8eUcF5yuWTkPiYVTfhECkjaY8o7Txdt\nTFj11x9YWByLpjVJjBHuLyCwayo7gOcFlDXaHq8Z+mQBT4Z68SIZLdg8HdnA\nDpUIn5OBeANfVkftdC0AbdUgVO0LZf0VRjZ+ErAZmk7gaguQ9DiL7JDVWtUn\njOVdMup3AfKdflDv+TA3L6gGmT12s7VhGzdcgPzmV+WxTjC0JDw5lB/ecd8n\n+ZNs8AtH69+fzj4+S7KwXxS2qS8EqGYoQ6IbVKKpXJwMm22f1vLBQqZOEv4p\nZtRBzhz8Hz9p9WjMIiqb3Io1WzlOk/ijLfZvqq657uCwe3iGcnHPfZv2ZrsN\ny1QsqVFx4Y2LA5c4FNlRcOlvmIGFW+Ip7WYBjT4gu0Tm0XrYyJOHma6VQJh3\nj6jBqCETC8aGarA7U0GkJW1p61oic5LjoZPbs5qFvotD1/zqWyX736/zIMZ+\nTmW0p80+N0rBllXMvXuvtiyhSa0hsd9YYu4O3+0Kz6+558ftlrZe0zhs1Tzs\nPNY/KgHfkEFL0GrDry0d2hAF+OvC3IGYwTbgYBKgoTRR3qPIpxY6R/kJGp1s\nYkAp2PV98u2aYDi7AHLhqkCOkQdVjeLvDiMZ0WhbxchULmqulKwi6AeV3oua\nbzNy\r\n=vjMm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"d58f87092ab2d60b39a2d83d5729d524495cc096","scripts":{"lint":"xo","test":"camo-purge ; xo","lintfix":"xo --fix"},"_npmUser":{"name":"hobbyquaker","email":"bastiraff@googlemail.com"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"14.5.0","dependencies":{"mkdirp":"^1.0.4","websocket":"^1.0.32","persist-path":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"xo":"latest","camo-purge":"latest"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_1.6.3_1601211463148_0.5939679726090439","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"lgtv2","version":"1.8.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@1.8.0","maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"e8e5a64b9d4c8f898ec72b9feb854fb9028c041c","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.8.0.tgz","fileCount":7,"integrity":"sha512-3OIiod1I3iMYiA8lqrWBZyukUmVNnQKxSwbAKk8s/XGqzh4eiu2oJPZGB24u5EcBCqktccTPqwie3JszhXWsYg==","signatures":[{"sig":"MEUCIQD45MU2X+ydy2iBJCIseN4+dSZ5+yqnmumbYKa6XhbaLAIgfhqsIBuaKoOId/NwwGmZ1KTPqb4aL4Pkp5Zw/eTnx9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56917},"main":"index.js","types":"index.d.ts","engines":{"node":">=20"},"gitHead":"cd6cee81ee10f9df459c89f87751274a0aa5abc1","scripts":{"lint":"eslint . && prettier --check .","test":"node --test && npm run test:types","lintfix":"eslint --fix . && prettier --write .","test:types":"tsc -p types-test/tsconfig.json"},"_npmUser":{"name":"hobbyquaker","email":"bastiraff@googlemail.com"},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"11.13.0","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"24.16.0","dependencies":{"websocket":"^1.0.35"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.0.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_1.8.0_1787318360329_0.5934971340521511","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"lgtv2","version":"1.9.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@1.9.0","maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"e999c579b14706ab26a5457119b7c5a7614c803f","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-1.9.0.tgz","fileCount":7,"integrity":"sha512-SY8MiSrlwQboElzwT9j2aLBlxVFqt8xbPph3qDD6frLZvdW3feFAPqx61entXIxZI6Sdr/UVe1off2kMSv/MxA==","signatures":[{"sig":"MEUCICw1NWrxytFnnShC7+NnIiT+az51eqlOSLoawzVQM1JzAiEAw+Mvs2NOO9TyZf4PseKxZkT43icJkR1hSb2g8qkdizI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lgtv2@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60997},"main":"index.js","types":"index.d.ts","engines":{"node":">=20"},"gitHead":"9098f03a5050d7fc6b14a04f6f049873b42f0758","scripts":{"lint":"eslint . && prettier --check .","test":"node --test && npm run test:types","lintfix":"eslint --fix . && prettier --write .","test:types":"tsc -p types-test/tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ab45342-b87d-4a57-90d5-76bb16e04d52"}},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"12.0.2","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"22.23.2","dependencies":{"websocket":"^1.0.35"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.0.0","eslint":"^9.0.0","globals":"^15.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_1.9.0_1787338944154_0.6389668056803832","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"lgtv2","version":"2.0.0","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@2.0.0","maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"1e7aaae783d5a414076762399e9f1c1d1ef636a0","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-2.0.0.tgz","fileCount":7,"integrity":"sha512-3az74nCjMeX8u++wwAJhzPK/4ZilrQhhBURwP6/5b2jGIVv2Mqo9IAw1CEpGlLgDSCJAorNgDcxw1PAn+BWifw==","signatures":[{"sig":"MEUCIQDrZ1R+iIq14wj5rD9OUfcT3k6TCVjzmIFXb653clU5FAIgbUGkGKBpWzWtxcnCh5b/xJzNdfHNbtEXuwl00bYITss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lgtv2@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66436},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":"^20.19.0 || ^22.12.0 || >=24"},"exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./package.json":"./package.json"},"gitHead":"f663fda5c9b5c124029fb0736bdb533a145b9ee5","scripts":{"lint":"eslint . && prettier --check .","test":"node --test && npm run test:types","lintfix":"eslint --fix . && prettier --write .","test:types":"tsc -p types-test/tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ab45342-b87d-4a57-90d5-76bb16e04d52"}},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"12.0.2","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","globals":"^17.0.0","prettier":"^3.9.0","@types/ws":"^8.18.0","@eslint/js":"^10.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_2.0.0_1787341337853_0.3603693432937045","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"lgtv2","version":"2.0.1","keywords":["tv","smarttv","webos","remote","control"],"author":{"url":"https://github.com/hobbyquaker","name":"Sebastian Raff","email":"hobbyquaker@gmail.com"},"license":"MIT","_id":"lgtv2@2.0.1","maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"},{"name":"Christoph Andres https://github.com/Voodoo2man"}],"homepage":"https://github.com/hobbyquaker/lgtv2","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"dist":{"shasum":"cd8889958dc6dfbc6ca07aed014a570703617391","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-2.0.1.tgz","fileCount":7,"integrity":"sha512-CfOYzaAox/qU0gqUafxfpZAvr3Kl/mJFp2/d1aLqtMsnxfGHgT/vwFSc5pfxd85lh3sAaJiX2W5u6+WWZVz1Jw==","signatures":[{"sig":"MEQCIHRmrAVR+K9AIIlSXmKOsEirsvXUIcIW1lrt8Ibv1X7PAiBv5zH5fvXR9Zg8GAtQ/IFZ3eyMCyutQWVn1z4ZNme8tg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lgtv2@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":67094},"main":"index.js","type":"module","types":"index.d.ts","engines":{"node":"^20.19.0 || ^22.12.0 || >=24"},"exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./package.json":"./package.json"},"gitHead":"eef4a398e2b2c659596594234020cee9ee9045e2","scripts":{"lint":"eslint . && prettier --check .","test":"node --test && npm run test:types","lintfix":"eslint --fix . && prettier --write .","test:types":"tsc -p types-test/tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ab45342-b87d-4a57-90d5-76bb16e04d52"}},"repository":{"url":"git+https://github.com/hobbyquaker/lgtv2.git","type":"git"},"_npmVersion":"12.0.2","description":"Simple module to remote control LG WebOS smart TVs","directories":{},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","globals":"^17.0.0","prettier":"^3.9.0","@types/ws":"^8.18.0","@eslint/js":"^10.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/lgtv2_2.0.1_1788611220977_0.20025307907858192","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"lgtv2","version":"2.0.2","description":"Simple module to remote control LG WebOS smart TVs","type":"module","main":"index.js","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","default":"./index.js"},"./package.json":"./package.json"},"engines":{"node":"^20.19.0 || ^22.12.0 || >=24"},"scripts":{"test":"node --test && npm run test:types","test:types":"tsc -p types-test/tsconfig.json","lint":"eslint . && prettier --check .","lintfix":"eslint --fix . && prettier --write ."},"repository":{"type":"git","url":"git+https://github.com/hobbyquaker/lgtv2.git"},"keywords":["tv","smarttv","webos","remote","control"],"author":{"name":"Sebastian Raff","email":"hobbyquaker@gmail.com","url":"https://github.com/hobbyquaker"},"contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"},{"name":"Christoph Andres https://github.com/Voodoo2man"}],"license":"MIT","bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"homepage":"https://github.com/hobbyquaker/lgtv2","dependencies":{"ws":"^8.21.0"},"devDependencies":{"@eslint/js":"^10.0.0","@types/node":"^24.0.0","@types/ws":"^8.18.0","eslint":"^10.0.0","globals":"^17.0.0","prettier":"^3.9.0","typescript":"^5.9.0"},"gitHead":"b761e06d5c12c953e995a490f70769b1f3456680","_id":"lgtv2@2.0.2","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-LrFZ/3Yvextf+oqeN/8XeI6CS/8HnFr4Xk2vvlS1odY+9ngp+pNVZlvYFDjob3MutT+VLIm89IiS0UR/Gv3W0w==","shasum":"04f751a3d56f28371de00263b5f7b298c179f481","tarball":"https://registry.npmjs.org/lgtv2/-/lgtv2-2.0.2.tgz","fileCount":7,"unpackedSize":67185,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/lgtv2@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDoF7caWqdEo32bnzaVhutPnV56lp6hCr7sUoPJ3hi5UAiAKoIAOZLh4mZU1OadjmzmO21EOEmQAgLFYhygni58ABg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2ab45342-b87d-4a57-90d5-76bb16e04d52"}},"directories":{},"maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lgtv2_2.0.2_1788629181313_0.5233956335237635"},"_hasShrinkwrap":false}},"time":{"created":"2015-12-06T19:54:03.948Z","modified":"2026-09-05T17:26:21.826Z","1.0.0":"2015-12-06T19:54:03.948Z","1.0.1":"2015-12-11T20:39:35.936Z","1.0.2":"2015-12-11T21:30:44.578Z","1.0.3":"2015-12-13T19:04:25.449Z","1.2.0":"2016-07-02T17:33:45.248Z","1.3.0":"2017-04-01T08:33:26.453Z","1.4.0":"2017-07-27T16:52:12.141Z","1.4.1":"2017-07-27T17:39:02.495Z","1.6.0":"2020-08-23T09:01:38.883Z","1.6.1":"2020-08-23T09:04:57.559Z","1.6.2":"2020-08-23T09:11:26.977Z","1.6.3":"2020-09-27T12:57:43.342Z","1.8.0":"2026-08-21T13:19:20.483Z","1.9.0":"2026-08-21T19:02:24.303Z","2.0.0":"2026-08-21T19:42:17.988Z","2.0.1":"2026-09-05T12:27:01.128Z","2.0.2":"2026-09-05T17:26:21.481Z"},"bugs":{"url":"https://github.com/hobbyquaker/lgtv2/issues"},"author":{"name":"Sebastian Raff","email":"hobbyquaker@gmail.com","url":"https://github.com/hobbyquaker"},"license":"MIT","homepage":"https://github.com/hobbyquaker/lgtv2","keywords":["tv","smarttv","webos","remote","control"],"repository":{"type":"git","url":"git+https://github.com/hobbyquaker/lgtv2.git"},"description":"Simple module to remote control LG WebOS smart TVs","contributors":[{"name":"forty2 https://github.com/forty2"},{"name":"Marcin https://github.com/merdok"},{"name":"Erik Montnemery https://github.com/emontnemery"},{"name":"Christoph Andres https://github.com/Voodoo2man"}],"maintainers":[{"name":"hobbyquaker","email":"bastiraff@googlemail.com"}],"readme":"# LGTV2\n\n[![NPM version](https://badge.fury.io/js/lgtv2.svg)](http://badge.fury.io/js/lgtv2)\n[![npm](https://img.shields.io/npm/dt/lgtv2.svg)]()\n[![CI](https://github.com/hobbyquaker/lgtv2/actions/workflows/ci.yml/badge.svg)](https://github.com/hobbyquaker/lgtv2/actions/workflows/ci.yml)\n[![License][mit-badge]][mit-url]\n\nSimple Node.js module to remote control LG WebOS smart TVs.\n\n> this is a fork of [LGTV.js](https://github.com/msloth/lgtv.js), heavily modified and rewritten to suite my needs.\n\n## Projects using this Module\n\n- [node-red-contrib-lgtv](https://github.com/hobbyquaker/node-red-contrib-lgtv) - [Node-RED](https://nodered.org/) Nodes to control LG webOS Smart TVs.\n- [lgtv2mqtt](https://github.com/hobbyquaker/lgtv2mqtt) - Interface between LG WebOS Smart TVs and MQTT.\n- [homebridge-webos-tv](https://github.com/merdok/homebridge-webos-tv) - [Homebridge](https://github.com/nfarina/homebridge) plugin for LG WebOS TVs.\n- [ioBroker.lgtv](https://github.com/SebastianSchultz/ioBroker.lgtv) - LG WebOS SmartTV adapter for [ioBroker](http://iobroker.net/).\n\n## Installation\n\n`npm install lgtv2`\n\nRequires Node.js 20.19+, 22.12+ or 24+. The package is an ES module; `import LGTV from 'lgtv2'` and\n`const LGTV = require('lgtv2')` both work (see [Upgrading to 2.0](#upgrading-to-20)).\n\n## TV configuration\n\n- The TV must be reachable on your network. Newer TVs (firmware from 2023 on) only accept\n  **secure** websocket connections on port 3001 (`wss://<tv>:3001`); TVs from before 2018\n  only offer `ws://<tv>:3000`. Since lgtv2 1.7 you don't have to care: with just `{host}`\n  the module tries `wss://<tv>:3001` first, falls back to `ws://<tv>:3000` and remembers\n  what worked. Set `secure`/`port` or a full `url` to pin it.\n- On first connection the TV shows a connection request (\"LG Connect Apps\" / \"Mobile TV On\"\n  on older models). Accept it; the resulting client key is stored in the key file (see\n  `keyFile` below) and reused on subsequent connections.\n- To turn the TV **on** over the network you need Wake-on-LAN and the TV setting\n  _Settings → General → Mobile TV On / Turn on via Wi-Fi_ (2025+ models:\n  _Support → IP control settings → Wake on LAN_). Then `lgtv.wake()` / `LGTV.wake(mac)` turns it on.\n\n## Usage Examples\n\nSubscribe to volume and mute changes and output to console:\n\n```javascript\nimport LGTV from 'lgtv2';\n\nconst lgtv = new LGTV({host: '192.168.1.20'});\n\nlgtv.on('error', (err) => console.log(err));\nlgtv.on('prompt', () => console.log('please accept the connection request on the TV'));\n\nlgtv.on('connect', () => {\n    console.log('connected');\n\n    lgtv.subscribe('ssap://audio/getVolume', (err, res) => {\n        if (err) return console.log(err);\n        if (res.changed.includes('volume')) console.log('volume changed', res.volume);\n        if (res.changed.includes('muted')) console.log('mute changed', res.muted);\n    });\n});\n```\n\nTurn TV off (promise style):\n\n```javascript\nimport LGTV from 'lgtv2';\n\nconst lgtv = new LGTV({host: '192.168.1.20'});\nlgtv.on('error', (err) => console.log(err));\n\nlgtv.on('connect', async () => {\n    await lgtv.request('ssap://system/turnOff');\n    await lgtv.disconnect();\n});\n```\n\nOld-style TV (ws://, port 3000):\n\n```javascript\nconst lgtv = new LGTV({host: '192.168.1.20', secure: false});\n// or: new LGTV({url: 'ws://192.168.1.20:3000'})\n```\n\nMore in [examples/](examples/).\n\n## API\n\n### options\n\n- `host` - hostname or IP of the TV. Used to build the URL together with `secure` and `port`.\n- `secure` - `true` → `wss://<host>:3001`, `false` → `ws://<host>:3000`. When omitted (and no `port`/`url` is given) both are tried automatically, `wss` first; the port that worked is used for reconnects, and only if both fail an `error` (`code: 'ECONNFAILED'`) is emitted.\n- `port` - overrides the port chosen by `secure` (disables the automatic fallback).\n- `ports` - `{secure: 3001, insecure: 3000}` - the ports used for `wss`/`ws` (e.g. behind port forwarding); keeps the automatic fallback.\n- `url` - complete websocket URL (e.g. `'wss://192.168.1.20:3001'`). Takes precedence over `host`/`secure`/`port` and disables the automatic fallback.\n- `urls` (property) - the list of URLs that will be tried.\n- `rejectUnauthorized` - verify the TV's TLS certificate against public CAs. Default `false`: the TV uses a certificate issued by LG's private CA that is not verifiable against public roots.\n- `verifyCert` - additional certificate check for `wss` connections, default `false`:\n    - `'lg'` - the presented chain must contain LG's static TV certificate \"LGE TV SSG\" or its issuer \"LGE SSG Intermediate CA\" (pinned by SHA-256 fingerprint, see `LGTV.LG_ISSUER_FINGERPRINTS`). LG ships the same certificate and key on every webOS TV (2018–2025 models, all regions checked), so this tells you \"it is an LG TV\", not \"it is _my_ TV\". Protects against a rogue device answering as your TV.\n    - `'tofu'` - trust on first use: the first certificate seen is pinned in `certFile`; a different one later is rejected (`error` with `code: 'ECERT'`, delete the file to re-trust).\n    - a SHA-256 fingerprint (`'AB:CD:…'` or `'sha256/abcd…'`) or an array of them - accepted if any certificate of the chain matches.\n- `certFile` - where the `tofu` fingerprint is stored, default `<keyFile>.cert`.\n- `mac` - MAC address of the TV for `wake()`. Usually not needed: after pairing the module learns the TV's wired and Wi-Fi MACs from `connectionmanager/getinfo` and caches them in `macFile` (default `<keyFile>.mac`), so `wake()` works without configuration from the second start on. `learnMac: false` disables that; an explicit `mac` always wins.\n- `timeout` - request timeout in milliseconds, default: 15000.\n- `handshakeTimeout` - abort a connection attempt whose websocket handshake does not complete within this many milliseconds (then reconnect), default: 10000. `0` disables.\n- `reconnect` - reconnect interval in milliseconds, default: 5000. `false`/`0` disables auto-reconnect.\n- `keyFile` - path of the file the client key is stored in. Default: Linux `~/.lgtv2/keyfile-<host>`, macOS `~/Library/Preferences/lgtv2/keyfile-<host>`, Windows `%APPDATA%\\lgtv2\\keyfile-<host>`; the environment variable `LGTV2_KEY_DIR` overrides the directory (handy for Docker volumes). The directory is created when the key is first saved.\n- `saveKey` - `function (key, callback)` to override how the key is stored.\n- `clientKey` - supply the key directly (use together with a custom `saveKey`).\n- `keepalive` (`true`), `keepaliveInterval` (10000 ms), `keepaliveGracePeriod` (5000 ms) - ping the TV regularly and drop the connection when a pong does not arrive in time (a TV going to standby does not always close the socket); the normal reconnect then takes over.\n- `wsOptions` - extra options for the underlying [ws](https://github.com/websockets/ws/blob/master/doc/ws.md#new-websocketaddress-protocols-options) client, e.g. `ca`, `cert`, `headers`, `localAddress`; merged over `{rejectUnauthorized}`.\n- `wsconfig` - the 1.x option is still understood (`keepalive*` keys and `tlsOptions` are mapped), prefer the options above.\n\n### properties\n\n- `connected` - `true` while connected _and_ paired.\n- `keyFile` - resolved key file path.\n- `clientKey` - the current client key.\n\n### methods\n\n#### request(uri [, payload] [, callback])\n\nSend a request. With a callback: `callback(err, payload)`. Without a callback a promise is returned.\nError responses from the TV (`type: 'error'`, e.g. `404 no such service or method`, or\n`returnValue: false`) are delivered as an `Error` with `code: 'ESSAP'` and, if available,\n`errorCode` / `errorText`.\n\n#### subscribe(uri [, payload], callback)\n\nSubscribe to a topic. The callback is invoked for every update. Returns the subscription id.\n\nFor `ssap://audio/getVolume` the payload is normalized across firmware versions: `volume`,\n`muted` and `changed` (array with `'volume'` and/or `'muted'`) are always present.\n\n#### unsubscribe(id)\n\nStop a subscription. Returns `true` if the id was known.\n\n#### getSocket(uri [, callback])\n\nGet a specialized socket for mouse and button events. Returns a promise when no callback is given.\n\n```javascript\nconst sock = await lgtv.getSocket('ssap://com.webos.service.networkinput/getPointerInputSocket');\nsock.send('button', {name: 'HOME'});\nsock.send('click');\nsock.send('move', {dx: 10, dy: 0});\n```\n\nButton names include `LEFT RIGHT UP DOWN ENTER BACK EXIT HOME MENU INFO DASH ASTERISK CC\nPLAY PAUSE STOP REWIND FASTFORWARD RED GREEN YELLOW BLUE VOLUMEUP VOLUMEDOWN MUTE\nCHANNELUP CHANNELDOWN 0 … 9`.\n\n#### getPowerState([callback]) / subscribePowerState(callback)\n\n`com.webos.service.tvpower/power/getPowerState` mapped to `{state, raw}` with `state` one of\n`'on'` (Active), `'standby'` (Active Standby), `'screen_off'` (Screen Off), `'screen_saver'` (Screen Saver),\n`'off'` (Suspend / Power Off), `'unknown'`. While powering down the TV sends a few updates with\n`raw.processing` (e.g. `\"Request Power Off\"`) before `state` changes. A TV in deep standby does not\nanswer at all - then `connected` is `false` and only `wake()` helps (measured on a webOS 6.0 OLED:\nwebsocket closes ~4 s after `turnOff`, port 3001 ~10 s later; after `wake()` the TV is reachable\nagain within ~2 s).\n\n#### wake([mac] [, options] [, callback]) / LGTV.wake(mac [, options] [, callback])\n\nSends Wake-on-LAN magic packets (3 by default). `mac` can be a string or an array; it defaults to\nthe `mac` option, else to every MAC learned from the TV (wired and Wi-Fi - the TV only reacts on the\ninterface it uses, so both are sent). `lgtv.mac` / `lgtv.macs` show what is known; without any MAC\n`wake()` rejects with `no MAC address known`. `options`:\n`address` (default `'255.255.255.255'`, use your subnet's broadcast address if the TV does not\nreact), `port` (9), `count` (3), `interval` (100 ms). Returns a promise when no callback is given.\n\n```javascript\nawait LGTV.wake('aa:bb:cc:dd:ee:ff', {address: '192.168.1.255'});\n```\n\n#### connect([url])\n\nUsually not needed - the connection is established automatically on construction and\nre-established after `close`.\n\n#### disconnect([callback])\n\nCloses the connection to the TV and stops auto-reconnection. Returns a promise when no callback is given.\n\n### events\n\n- `connecting` (url) - trying to connect to the TV\n- `prompt` - the TV shows the pairing prompt; accept it on the TV\n- `connect` - connection established and paired\n- `error` (err) - websocket/pairing/TV errors. Subsequent equal connection errors are only emitted once (so your log isn't flooded with `EHOSTUNREACH` while the TV is off)\n- `message` (text) - every raw frame received from the TV as a string, for debugging\n- `close` ({code, reason}) - connection closed\n- `certificate` ({fingerprint, stored}) - `verifyCert: 'tofu'` pinned a certificate for the first time\n- `mac` ({wired, wifi}) - MAC addresses learned from the TV after pairing\n\n### TypeScript\n\nType declarations ship with the package (`index.d.ts`): `import LGTV from 'lgtv2'` (default export),\nplus named exports `LGTV`, `wake`, `LG_ISSUER_FINGERPRINTS`, `POWER_STATES`.\n\n## Upgrading to 2.0\n\n2.0 is a modernization release; the API is unchanged except for the points below.\n\n- **ES module.** `import LGTV from 'lgtv2'` is the native form. `const LGTV = require('lgtv2')`\n  keeps working unchanged on Node 20.19+ / 22.12+ / 24 (`require(esm)`) - no `.default`, and\n  calling it without `new` still works. Node < 20.19 is no longer supported.\n- **Transport is [ws](https://github.com/websockets/ws) instead of `websocket`.** No native\n  add-ons any more (no `bufferutil`/`utf-8-validate` build on ARM/Docker). Consequences:\n    - the `message` event now delivers the raw frame as a **string** (was the `websocket`\n      message object with `utf8Data`);\n    - the `close` event payload is `{code, reason}`;\n    - `wsconfig` is replaced by `keepalive`/`keepaliveInterval`/`keepaliveGracePeriod` and\n      `wsOptions` (passed to `ws`). A 1.x `wsconfig` (including `tlsOptions`) is still mapped, so\n      existing code keeps working; `wsconfig.dropConnectionOnKeepaliveTimeout` has no equivalent\n      (always on).\n- Connection behaviour is unchanged: `{host}` tries `wss://host:3001` first and falls back to\n  `ws://host:3000`; `verifyCert` is still opt-in; `audio/getVolume` payloads are still normalized\n  to `volume`/`muted`/`changed`.\n\n## Commands\n\nA selection of SSAP endpoints; payloads are passed as the second argument of `request`.\n\n| uri                                                      | payload / notes                                                                  |\n| -------------------------------------------------------- | -------------------------------------------------------------------------------- |\n| `ssap://api/getServiceList`                              |                                                                                  |\n| `ssap://audio/getStatus`                                 | subscribe: volume, mute, sound output                                            |\n| `ssap://audio/getVolume`                                 | subscribe: `{volume, muted, changed}` (normalized)                               |\n| `ssap://audio/setVolume`                                 | `{volume: 10}`                                                                   |\n| `ssap://audio/volumeUp` / `volumeDown`                   | needed for ARC/eARC soundbars that report `volume: -1`                           |\n| `ssap://audio/setMute`                                   | `{mute: true}`                                                                   |\n| `ssap://com.webos.service.apiadapter/audio/getSoundOutput` / `changeSoundOutput` | `{output: 'external_arc'}` — `tv_speaker`, `external_arc`, `external_optical`, `bt_soundbar`, `headphone`, `lineout` |\n| `ssap://com.webos.service.tvpower/power/getPowerState`   | subscribe: `{state: 'Active' \\| 'Active Standby' \\| 'Suspend' \\| 'Screen Off'}` |\n| `ssap://com.webos.service.tvpower/power/turnOffScreen` / `turnOnScreen` |                                                                   |\n| `ssap://system/turnOff`                                  |                                                                                  |\n| `ssap://system/getSystemInfo`                            | model name etc.                                                                  |\n| `ssap://com.webos.service.update/getCurrentSWInformation` | firmware version                                                                |\n| `ssap://com.webos.applicationManager/getForegroundAppInfo` | subscribe: `{appId}`                                                           |\n| `ssap://com.webos.applicationManager/listLaunchPoints`   | installed apps (id → title)                                                      |\n| `ssap://com.webos.applicationManager/launch`             | `{id: 'netflix'}`, `{id: 'youtube.leanback.v4', params: {contentTarget: 'https://www.youtube.com/watch?v=…'}}` |\n| `ssap://system.launcher/launch`                          | `{id: 'netflix', contentId: '…'}`                                                |\n| `ssap://system.launcher/open`                            | `{target: 'https://example.org'}` — opens the browser                            |\n| `ssap://system.launcher/close` / `getAppState`           | `{id}`; `getAppState` answers `403 access denied` on webOS 6.0                   |\n| `ssap://com.webos.media/getForegroundAppInfo`            | subscribe: play/pause state — not on every firmware (404 on webOS 6.0)           |\n| `ssap://media.controls/play` / `pause` / `stop` / `rewind` / `fastForward` |                                                                 |\n| `ssap://media.viewer/close`                              |                                                                                  |\n| `ssap://system.notifications/createToast`                | `{message: 'Hello World!'}` (optional `iconData` base64, `iconExtension`)        |\n| `ssap://system.notifications/createAlert`                | `{message, buttons: [{label, onclick, params}]}`                                 |\n| `ssap://com.webos.service.ime/insertText`                | `{text: 'abc', replace: 0}`                                                      |\n| `ssap://com.webos.service.ime/sendEnterKey` / `deleteCharacters` | `{count: 1}`                                                             |\n| `ssap://tv/getExternalInputList`                         | inputs with `id`, `label`, `connected`                                           |\n| `ssap://tv/switchInput`                                  | `{inputId: 'HDMI_2'}`                                                            |\n| `ssap://tv/getCurrentChannel`                            | subscribe; `500 Application error` while not in live TV                          |\n| `ssap://tv/getChannelList` / `getChannelProgramInfo`     | **warning**: on TVs without tuned channels (e.g. HDMI/ARC-only setups, seen on webOS 6.0) `getChannelList` makes the TV close the websocket; `getChannelProgramInfo` answers 500 |\n| `ssap://tv/openChannel`                                  | `{channelId}` or `{channelNumber: '5'}`                                          |\n| `ssap://tv/channelUp` / `channelDown`                    |                                                                                  |\n| `ssap://com.webos.service.tv.display/set3DOn` / `set3DOff` |                                                                                |\n| `ssap://webapp/closeWebApp`                              |                                                                                  |\n\nEndpoints not listed here (picture settings, energy saving, …) are not exposed through the\nSSAP permission set of this pairing manifest.\n\n## License\n\nMIT (c) [Sebastian Raff](https://github.com/hobbyquaker)\n\n[mit-badge]: https://img.shields.io/badge/License-MIT-blue.svg?style=flat\n[mit-url]: LICENSE\n","readmeFilename":"README.md","users":{"crom":true,"chbardel":true}}