{"_id":"node-red-contrib-lsh-logic","_rev":"55-9ac7824befff6b4bc468df33666f35e5","name":"node-red-contrib-lsh-logic","dist-tags":{"latest":"3.1.13"},"versions":{"1.0.1":{"name":"node-red-contrib-lsh-logic","version":"1.0.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"44d9b40f5781cc1d545415f6f2aa54aadf4e6c8e","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.1.tgz","fileCount":28,"integrity":"sha512-RxRvaGndgQJqjm9UkNWn3QXT8tZrhW8oqdwGhvwB69mYq2gZm666pu1Zz8CIt73csFr7wwHVMgnjy2gee1IXzg==","signatures":[{"sig":"MEUCIQDb5t4YSEW+PzRjwZjowL/LWOKFyvcwueo1QTGxN7325gIgYd7sPShYxWN9VaMIagAhxBtnQNGi/r5RwpgnfQTC1eQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150414},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0be10bcdd7fb59fc3141a7ac3a6407e993ebdfc9","scripts":{"test":"jest","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"}},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.4.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.1_1752223831558_0.28121939874359647","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"node-red-contrib-lsh-logic","version":"1.0.2","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"0813cfcbdb8825a32a5e9fd59f8c73e0e2f2efb1","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.2.tgz","fileCount":28,"integrity":"sha512-XIUdiJLf/gCcY7CBj20Nl60sEN5mbB3pVAkc2UQIA08KgIR59wwnuv4ubKwHKupXv53a47bggZwUj0M69Jnq8Q==","signatures":[{"sig":"MEUCID9V4VLKKHnZa8vhGFassbwA1ijdp/MQmLYjyxKq04xuAiEA7Olc5pX5koi0pFBCGML5rAA1uhv2jYtpvEqOIj5PY9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150440},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"aec2ad6522828638ab3f872a60fb492f48cc5c35","scripts":{"test":"jest","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=3.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.2_1752228038770_0.07208873606228416","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"node-red-contrib-lsh-logic","version":"1.0.3","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.3","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"6c7b3aad09eeb5ea11c1930803cd06760cdabf1d","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.3.tgz","fileCount":29,"integrity":"sha512-QDjZ41uQNUl4G5kRMnrTYSeGKv6HpHPHR6aN0uHdAiWZlKifKGg5U364yCCBEWGs6IiKdG360E0fg5Wl2IUtHw==","signatures":[{"sig":"MEQCIAkigpsO61z3RW82VgHaF+y/jvhqsEcSQkUG0Ai7mnj2AiBZYz5packOor9xqAJDYYyJku5zgFgafuZBpc9MpwPB+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153932},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f1b25c87f073c7fa3dd70b62677c092c5da5ca6d","scripts":{"test":"jest","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=3.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.3_1752228222999_0.4088087246564407","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"node-red-contrib-lsh-logic","version":"1.0.4","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.4","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"5ee2bce04886b0eec2d60c85c709dc9ef97f7042","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.4.tgz","fileCount":29,"integrity":"sha512-/uIHW4gOW19jHcukWM24pMvrZTbRl4u4PhydWtzel1pwKMKjDs+JTeMCwRrTdvMmQgb/xSVKSWNlVKPGABLSjg==","signatures":[{"sig":"MEQCICuA+c7WFUNEkyLdc8zpEpbIjKgWeFXa9/W4IjfH/7kgAiAboRl2JKnQRgzNV7scRNdKGgST4d/NGcNqwQowpi7rdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153932},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"615963dfa92eb2025674a288529b2eea97b0b28d","scripts":{"test":"jest","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.4_1752228596580_0.7825771048812802","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"node-red-contrib-lsh-logic","version":"1.0.5","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.5","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"9ad24381b41ac338a2518d466184048ec8d3513a","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.5.tgz","fileCount":29,"integrity":"sha512-BOv7J89NUohnYFIpLMzlyrwtXbGkzNp/ZXG1Kw2obIFnm9yf3pVUqwfB1KHoS4ENfN8uR0vJ22bvbwyMi5zLqw==","signatures":[{"sig":"MEUCIQCizJB2uYJ3M7MQYsC6l3MR/Y5ncvDFuZJSszf79Cvi8AIgcweKydnh9H8IOAXf4fvprqKCvKOpMgi/8C+1RMytkEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154169},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"35b101530ca2e049366781200dad4c189bcf2887","scripts":{"test":"jest","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.5_1752230390193_0.4718007962461839","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"node-red-contrib-lsh-logic","version":"1.0.6","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.6","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"f378ae3ffeb4039dfa5cbdd0ff8ff568b95d6d59","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.6.tgz","fileCount":29,"integrity":"sha512-uJekwFBYBEHojdEcU3ilt/HIpldtWm0gnZP4a7Mb4tIQUcSG41itkTq4fN9uysBt0zVIcJuigoT1icsiPW9LaA==","signatures":[{"sig":"MEYCIQCg7DmKcpD5BMhR1VFBN7oamu2PLkLb+IrfhIsUPyo94wIhAOfMQLDrSuTuojSFQSOsnWAIZS0o9Cg5TL6P72lvItuo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":164217},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"35b101530ca2e049366781200dad4c189bcf2887","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","typescript":"^5.8.3","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.6_1752243440686_0.5440211581777792","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"node-red-contrib-lsh-logic","version":"1.0.25","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.25","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"a6bbfc4ff2876d24fc7f414bf298819d03228b46","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.25.tgz","fileCount":29,"integrity":"sha512-NpteaXTzqDM0uGPRsMLet32FeHZPh7BgfcIczL4eHKtzi5+/rJgtDd580YeEEfoAGZKkwcGOT3PpFkYu4EB6ng==","signatures":[{"sig":"MEYCIQCRSKj5/IW1XUYucUOOarPnkGsiEJrf8kxrLQfHjzeF2wIhANls7lc7obbzVaUipPpOv0NCmK/QOsXN0BPgMCyEMIYK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190710},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"dfd1745de4b92e6115022dcfc69af2b730f01a61","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.25_1752437387848_0.5072419223524085","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"node-red-contrib-lsh-logic","version":"1.0.26","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.26","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"dcd20b177738e8b614839c98fe8b42c014df8104","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.26.tgz","fileCount":29,"integrity":"sha512-sla65yMVJdgijFPVXx9UyMtX/JOz4Kmb45qmNiwe8mTUaqvtzT54I+vRGMN7fKzFlP66W2+dp+OIZamKqBE2pw==","signatures":[{"sig":"MEUCIQDZWfcpr9X6N59bEO12yPI8XZlz7FUGwKRpL8JZe70+WwIgTFfrpNijY/T3+aEscpmE4XCL7jSjB7rISfB2sPrY/OI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191286},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2438c531e2f26a75a843e9f0a9711694f44be6b6","scripts":{"lint":"eslint .","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","format":"prettier --write \"src/**/*.ts\"","lint:fix":"eslint . --fix","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.4.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","eslint":"^9.31.0","rimraf":"^6.0.1","ts-jest":"^29.4.0","prettier":"^3.6.2","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5","typescript-eslint":"^8.36.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.5.1","@typescript-eslint/parser":"^8.36.0","@typescript-eslint/eslint-plugin":"^8.36.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.26_1752482203539_0.2232988189949019","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"node-red-contrib-lsh-logic","version":"1.0.27","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.0.27","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"10ab140545def05affeef898efd090d0971da3cd","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.0.27.tgz","fileCount":29,"integrity":"sha512-u8yqDIdubBaUWau7mxM/hiCYWiZZHAkNR+ZW5Xs4rTIhsVYy9SyyhtcMxgRFMT/lLcvrVqm9WxD5xmBQJeRKTw==","signatures":[{"sig":"MEUCIE2IUvI6iHxZHtXqRzZuCaavxqlsdLq+ftaPfGx/HrToAiEAzM+VLOocOwWoRK/QvZEIjjrskAdjzd2tQB5QHlEEhuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190962},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f25fb4d424ff243df8f508ebb0e64b3c92e74d65","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^4.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^20.19.4","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.0.27_1752510617812_0.918364763373976","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"node-red-contrib-lsh-logic","version":"1.1.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.1.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"7792347b3d7678be4d287d7c7aae619a4f71f853","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.1.1.tgz","fileCount":35,"integrity":"sha512-ovmtz4uHvpufk9iRwJr77N2Hp8R+RvW9kSkFWxAOGf7b/W/JW7Mh10pPg8JoicnQLJSi4OHJhVI+r/wdGKKf8w==","signatures":[{"sig":"MEQCIGpCekzUTZcJS2aMPP6yMpEBXy3PliBuzDbUaZMBgkNDAiAwACURLsaTxV3JySfSGW6+tQR6SUrvaa9z5HfbtNNMqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219992},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c76e9c28b0ec1a309c2ac98c0e7d615125f63048","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.2","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"ajv":"^8.17.1","chokidar":"^5.0.0","@msgpack/msgpack":"^3.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.0.4","rimraf":"^6.0.1","ts-jest":"^29.4.0","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.0.3","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.1.1_1766182484717_0.9062614280261361","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"node-red-contrib-lsh-logic","version":"1.2.0","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"8b9c2cbef72e364e01222f26d34fe23d2e78e5c7","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.0.tgz","fileCount":35,"integrity":"sha512-LswADxGZRW/uATjnnUoNJGnHOS8bXJVfjwsQAaPPbvpbYkJMUnrQ1fcG6BGIz+H3LFMEcIhJkezEz+utJSkYsQ==","signatures":[{"sig":"MEUCIBQ7Giijy3p7zayCVv3DhRr1otFWVmCFkvmR34fMm4axAiEAtHAzg5SQ4GbwJMZH1FpKFYP9SatkuaAlGM5VH/MDsic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223944},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bf48763e24849f20709ad4933e06e53d5d0c7dc2","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.4","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","chokidar":"^5.0.0","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","rimraf":"^6.1.2","ts-jest":"^29.4.6","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.0.10","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.0_1769474545467_0.4485641689926487","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"node-red-contrib-lsh-logic","version":"1.2.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"007fd320d6a93d6be19e1b2ada57102960a081a8","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.1.tgz","fileCount":35,"integrity":"sha512-gWxKL0VwSLx7ks4pdcLM6YabAueCvtyn3dxfPU3V4K4ECBKSlWvDIp8js7DV91h7cgpbsmtWqYJf72naZFUAuQ==","signatures":[{"sig":"MEUCIQD1NXVZ90ETY0o7JNsbsP9wOBtYQqDC1VclV7pEbQsVKQIgA7WFhZOz7Rw8Q/NB6nCw26zEIX0VvyZesPU1oNV0+DI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223944},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"de1e92757e109d092f29dc3403f1c574f4df316e","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"labodj","email":"jacopolabardi@gmail.com"},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"10.9.4","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.17.1","chokidar":"^5.0.0","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","rimraf":"^6.1.2","ts-jest":"^29.4.6","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.0.10","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.1_1769475774528_0.3129299040367701","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"node-red-contrib-lsh-logic","version":"1.2.2","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"3e43296c1da2cc9832c3f9313f3026a01766e0e4","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.2.tgz","fileCount":35,"integrity":"sha512-JTBL41HnTjj1U+BBjGDqWox8M/JFO/tv28VVh31X+7g1Nuku6feMxUCYyXWDaJb1CbQM5r5FGwaxEfIOG15J4w==","signatures":[{"sig":"MEUCIQCBoOcdZhw+P49P3al8ZTS4s200AMG4ac4ucpu8uLqoqAIgQReNz2yoqJ0wxrk5MiusudtXYhIiyRmV+pVoL285Kas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223951},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0 <=22.x"},"gitHead":"b811763d3ff126365b37732c386aec73ca7b8b3a","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","chokidar":"^5.0.0","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","rimraf":"^6.1.3","ts-jest":"^29.4.6","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.3.3","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.2_1772617791301_0.08339569141891001","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"node-red-contrib-lsh-logic","version":"1.2.3","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.3","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"8ff44e88c97a4482e1275ba27855a7c36c1d0515","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.3.tgz","fileCount":35,"integrity":"sha512-RX68QTUS9qLb+FwYlJL4ibttsv+txiDWhQOLfxlJfhCuGi+qQsKuHcbsb1EsuvTN0PgMxyz/Pzyb6MIYzFDZyA==","signatures":[{"sig":"MEUCIQCu7a43pdIImAtcLsEGRkGsTYpJ7/oLfG+MOFMjyw3k7gIgLzIkh4kkJpyg3+VkOoHuV87ZWMZWCAFFTu1ZgCDBL64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223951},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0 <=22.x"},"gitHead":"b909554425e8b167ae49b95f529a2425e73d4992","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","chokidar":"^5.0.0","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","rimraf":"^6.1.3","ts-jest":"^29.4.6","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.3.3","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.3_1772618074856_0.25753420345491174","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"node-red-contrib-lsh-logic","version":"1.2.4","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.4","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"f418b31ef0819213e364375d6e3d6159bf1fbda8","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.4.tgz","fileCount":35,"integrity":"sha512-QGligqi8uPKF3wBiUtRYz1uWLS5R2GcVHp69Oj+LkIq+u2M3Sq1MzFW/DTIrtoEXCXMqTJxfwnNwxR18busJmA==","signatures":[{"sig":"MEYCIQD3evaStPrzLToRRjuc06k16viyj3AF0qynYZL3t0lnEAIhAOe4rrWt1IwGcUGoh4uUUxK62qrbPxBlpBjZzuDIDQaI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":223944},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3dfbb7f657899981ff368cfc24e7fd5c1c279814","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"rimraf ./dist","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ajv":"^8.18.0","chokidar":"^5.0.0","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.2.0","rimraf":"^6.1.3","ts-jest":"^29.4.6","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.3.3","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.4_1772618768557_0.9419216675851951","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"node-red-contrib-lsh-logic","version":"1.2.7","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.7","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"b69d0f971c2fed9786c927a915c942319a1c82d4","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.7.tgz","fileCount":46,"integrity":"sha512-Nur2SyRsM1pjXCVQn7ph0ihMyUHJOPFYp6LREriQdWVWx+2A9p0BY9gj63pjo/ravULxqYIMI/Ia+JOLaF4Wew==","signatures":[{"sig":"MEYCIQDX9HmAKr9zN+h008C3viCzKAs9Y0zS5spr/rlFh8VPhQIhALP638OHljUl+wr6wQ/4rvMz1anDW4CfmHZZSaSqkwoO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":285191},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"28afd1bd5b9ee37630fd42732ab6fd2ee141f05a","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.7_1775767278221_0.6527315709858028","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"node-red-contrib-lsh-logic","version":"1.2.8","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.2.8","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"6b31ba96817ca928da13b68e0f23694f0b6cf040","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.2.8.tgz","fileCount":46,"integrity":"sha512-8Vytl56DQgSzSr39ad6rBKwJ/x6UfOjEpSneXSXqhLGkiLPTvo8HqWYq53WOZnE8aMX8aJqe40X33RO75l4cZw==","signatures":[{"sig":"MEQCIAKuMRg6RMGD7rt0rY5Kiky4iwPNBbMCJ8fRpx+iuy9NAiBJoVvgQ/xxFHWU95bvbBRBdkIMKtBf1wGIchu/zn+/Mg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326504},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b8472f50278bcec019c67dd4c3763c9e901260c5","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.2.8_1775769068214_0.4823471917254585","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"node-red-contrib-lsh-logic","version":"1.3.0","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.3.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"876e7d15c9bd52741ed55149ea62bd7a25a30f19","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.3.0.tgz","fileCount":46,"integrity":"sha512-qFaryfTVc9QjUMLxdkewJUEZQPsR0n8NmBJTHvx8CIG90wpsUtgJJMaqQeF83pCFpNImETKq432SKzYe1fTZvw==","signatures":[{"sig":"MEUCIQCqYIXx2+MkmztgC2Xb5+jWwoNN1YfXn7S+eJBbFIWJqwIgXs24x5icic2ZDvzs7xazHMIsacr6/dHhCKEEQ6eje5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326504},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2d8ccdc37693a4daff230126fe471c000ac106dd","scripts":{"test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","ts-jest":"^29.4.9","copyfiles":"^2.4.1","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.3.0_1775769896404_0.8010786695313734","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"node-red-contrib-lsh-logic","version":"1.4.0","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.4.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"b57120ff4bca71ba3f2e4bb7e17e348b654122f5","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.4.0.tgz","fileCount":40,"integrity":"sha512-dju/lTWXeRJ25FsDMp10TA4zyzRkRnobWLefljt5z03wfnQIjm1dN0tx7+vVMggF0r1cLtCLjXH2O4PxU20rPw==","signatures":[{"sig":"MEYCIQDi++32/n1xHJ9EKLSnAt/AdwWMIFZWdf9dzPGTR3JZjgIhANv3U4wKmTeJwkY86vQ8ZV6Bejy6dzqwerppyadMLSRk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":324767},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"628127a0f167275663d791d746c0824859be3c43","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^5.88.1","eslint":"^9.39.4","globals":"^17.4.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^9.39.4","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.4.0_1775897272099_0.202151006785402","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"node-red-contrib-lsh-logic","version":"1.4.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.4.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"5d420b545a0575ea2384397b18651f9537ba7776","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.4.1.tgz","fileCount":40,"integrity":"sha512-lRF67//K2bGj6x12rLentXlegpRIW9zqvVh79iZbZqFEggNG4gDJUuSxBM3SqNJOovnK1BsACx7xqwVm0lf4vQ==","signatures":[{"sig":"MEUCIQDJGhLwgHrSOgAUX9KVWN6RtQ8K6LuLp8RvRqAQ1peviAIgAh1fKkVrqfwImjhUwqzDzmMzDPlcdv+/2VphbF5Eius=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330517},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8ceea9b4c23e3c7e1b74d3c2e112f0546bfea13f","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:58ab0324-8a18-474f-8e08-940209b1b16d"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^5.88.1","eslint":"^9.39.4","globals":"^17.4.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^9.39.4","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.4.1_1776094841356_0.4852165461834541","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"node-red-contrib-lsh-logic","version":"1.4.2","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.4.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"108fb9eec7bda1ac5cc91725feea09d3e27a4576","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.4.2.tgz","fileCount":40,"integrity":"sha512-gJ+Vhbp9o07wuaeCU5iACliPhiUH95gWpe11i+FNca5VNIjWhcwNxQrd5mbQXlGCGsc6w6YySXYS8ynG+v8heg==","signatures":[{"sig":"MEUCIDg/4vSNCC5LfdU5RccrenbRnDOePSWOJFaRRWD15hU8AiEA/mWv2fklvQwAEmqd5Q2/bdR6QqwS/5GGbdjDjGrVLio=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":330987},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7afb184419733145f535395861234e64e3bdbbf5","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^5.88.1","eslint":"^9.39.4","globals":"^17.4.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^9.39.4","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.4.2_1776100674747_0.8243470164651105","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"node-red-contrib-lsh-logic","version":"1.4.4","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.4.4","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"6ea769a57f9fcc0bf791f4a76f2d8de093649ed4","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.4.4.tgz","fileCount":40,"integrity":"sha512-flBeykZiHdetpRWffJspWyZxrNa3+zIDxDBDxKKMgxGJ65s+QWv6qC6tKpNCuYh70F6lslirctOzFyZWsGm4Kw==","signatures":[{"sig":"MEUCIQC9Y635CCB2xhEtyYE4Ti+uQTCwxjtyQ+/yb5W91GefSQIgUNW2bK7z77j7f5YE/7GLLuZPZqWJ1+Sc30xmMzRXyP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335131},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9cf661f4fa166f3d01f7a19d833b145b0da4f0bb","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^5.88.1","eslint":"^9.39.4","globals":"^17.4.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^9.39.4","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.4.4_1776107418449_0.18773702692683503","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"node-red-contrib-lsh-logic","version":"1.4.6","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.4.6","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"7fb1b509a327da132fc88189b5d70ac548ea83b6","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.4.6.tgz","fileCount":40,"integrity":"sha512-y+1+6ZWE47w1fJ+r5y1ngpgcMkmj1ixgkz8sTcqA2nHyNZBX5lQiXQnazLrQipaC3hNp29LW5cFvfa8+EacA9Q==","signatures":[{"sig":"MEUCIEktnas8dyS72CVEsysJ8ubozebPnN8H1GlUx7IWDt/OAiEAiXH2pbsNnwpCRt+n4K+7m3TlEg3fpPvKFMJmVdu9Ro4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":336567},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3b96c9ecdfa947814619ba18509e9ff7763cc2f9","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^5.88.1","eslint":"^9.39.4","globals":"^17.4.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^9.39.4","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.5.2","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.4.6_1776108633407_0.7303618873984945","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"node-red-contrib-lsh-logic","version":"1.5.0","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.5.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"e6d235b803953cbc4d81ef8febd7f7277d9c5fec","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.5.0.tgz","fileCount":43,"integrity":"sha512-4fqElFDd1o3uSZUYRPmo/dadt4tzyZfPuheGdxQMXp8VouCLkfRSZmnOCaYfG+IIURX7XdrJ8Wu1PqLcnQeH6w==","signatures":[{"sig":"MEQCIFJ/BBIesv9SY5Pl1Y13TCYjWOIi4ZmJcscNoCC1W/AdAiAdkdD8HBmApSmpJEbfPKYeQGohQxgVUXPOgveOPbyllg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":350354},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a511d91b4b8b6c26b304d3f93f8d0ef0e0f1dc7a","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node to manage advanced automation logic for an LSH (Labo Smart Home) style system.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.4.1","eslint":"^10.2.0","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.5.0_1776197430955_0.7422851940379862","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"node-red-contrib-lsh-logic","version":"1.5.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.5.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"ff6c341934bd7d20d79c99ae39dba5b1b5d90baf","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.5.1.tgz","fileCount":43,"integrity":"sha512-doXIUVNuK2oCr0B8v0cE1WefWQYeA/bcJQkJzmNvXpjXfSySti/b3qupUvz1mzThIw5Uq4qa/8K7F6ochnoLEQ==","signatures":[{"sig":"MEUCIBo0z5iF1qJN++lLaMWnLBxaAQ6Tph7rAhe4FNKD3nepAiEA8nXnmN2f2L6Jxy6tQ0sPr/wpOfXtwfmQRi+q+tRt39s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":351370},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4362d381b14c4f71bd275c7edcaef9c01a3a49dd","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write .","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check .","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.4.1","eslint":"^10.2.0","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.2","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.5.1_1776319447316_0.6916593191053813","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"node-red-contrib-lsh-logic","version":"1.5.2","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.5.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"fa2fe4c6e5073c4fb41e48fd6aa1524c378af5c4","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.5.2.tgz","fileCount":43,"integrity":"sha512-VgazhddlenuUojdaUSMSj3K762057+rMqQ+O3ZXw12q/fGDggA4a3MSCG/hc3IMLbv1VjBhfZIUfaPbWQW82iQ==","signatures":[{"sig":"MEQCIF1xoqXZKlz+QW8MQkcqpBEKQV/NSPRbmxwoD3Ci1L6TAiA5nSFG8MaXt9Y6FWWs3n3UKomR77z3Xa6GhIaxAH64tA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":367962},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"076ea99005b2fa906871a6fe53cbb1b8e4b822a1","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.4.1","eslint":"^10.2.0","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.2","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.5.2_1776370405133_0.716944170890482","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"node-red-contrib-lsh-logic","version":"1.6.0","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.6.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"60a18210f634a0f3fbce9580b4d7a099b6bb3a60","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.6.0.tgz","fileCount":43,"integrity":"sha512-sTECRakixoWsh+wdJn7yREjNnYF8C2VKYAhqD/GnTfarFHc6lhOegWaC3McvrT9/y3Iq3k1hMwuMNqxPlqMldw==","signatures":[{"sig":"MEUCIQD78gwRoyS1Q1rOKWhz/MHIsgqeID6kjMf2EkTRRzDN7QIgBTPxIC/c4J1CMtL/yS9Y72eyb9sxysH1z+vDr6PQzwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":378313},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0e3bf32c3c0811a15ada660a6a852e76204ce8dc","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.4.1","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.6.0_1776527726800_0.056832956249709854","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"node-red-contrib-lsh-logic","version":"1.6.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.6.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"e9a66a550ffadd36567b2961ab7fc9b99459cd36","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.6.1.tgz","fileCount":46,"integrity":"sha512-Co2ZG0Co8l8wO7mrQs2YQ12SQo1OfHp9yxxxemBdyjk/F3Lw7Mi+nkrhGZb4dTTE7uJp7v8/cI3ftITxZny7Yw==","signatures":[{"sig":"MEYCIQDmKS7K5HXFx7upWtPVrq2vrWG4MM4gxQPz0I5q9jOmJAIhANuPevANjJH8dBFCygPf2IF6/NCEyJTQyeecE15M/pMK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":395362},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"64d21860c8fdb3f42c5064fbc0df1d6461fbcb68","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.5.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.6.1_1776702051881_0.8631438466857324","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"node-red-contrib-lsh-logic","version":"1.6.2","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.6.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"11a756ea07f26a6611d04bbb9ad0ce461e74620c","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.6.2.tgz","fileCount":46,"integrity":"sha512-l0SuJGlkj7NFJZDE7msl+9xzvtMo+GN7YOcFW+ft2UOiSJK3tb0JIYjgAeUu+Btg/cCiUY6vavwWKilmUqQYgg==","signatures":[{"sig":"MEUCIQCIy5zy7DuGy7EerFCypn7B6/2eeSPUD1Ba47LJ5sp/WQIgBr9YltkKGWWMABiM62/ZC3J9Y6Hu45p+MIhfjWw/HIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":396107},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e22ad62c957ee083525885a5f8c57f786a70372b","scripts":{"knip":"knip --production --strict","lint":"eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"jest --no-cache --detectOpenHandles","build":"npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run clean && tsc && npm run copy-assets","typecheck":"tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.5.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.58.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.6.2_1776719888435_0.22743324051933267","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"node-red-contrib-lsh-logic","version":"1.6.3","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.6.3","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"14ac49be4472fbae24d5bdcadc198f059c45f7c2","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.6.3.tgz","fileCount":49,"integrity":"sha512-TFGxEa4clMra2lq9pWD1xtN6I3LZOW3dM8sHewY3OSMMb0gIFARIYKzFJN+K5WMhxf32Jm10LpgzX7n7EaXdAA==","signatures":[{"sig":"MEQCICyVJGWMlke6sADfEt1mMwWU66H0s2j+0RMcMJhaJXmlAiAHqjhra3KTW0L891aJ8h8QCC2Av55c4xwRKdV/EHkHvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":425667},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"114ac463478522842fbe28798589dc638c9552a0","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run build","sync:version:check":"node scripts/sync-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.12.1","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.6.1","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.0","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.6.3_1776859504565_0.09965886744768615","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"node-red-contrib-lsh-logic","version":"1.6.4","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.6.4","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"01204ad145ef61c5c154c0defc7b17e857eb3716","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.6.4.tgz","fileCount":68,"integrity":"sha512-zCjTyY+SWfV3i3BpgfoVLqm9VFR5NiraTWVPBvJGxahQdNT1/wGbJcswdzDg/JclKgmGJSNeAjcRuQDI6oIcuA==","signatures":[{"sig":"MEUCIQDjbZpl2RPzFMWTxp1hVuyTy6Xi81MMmR6jNOMrVHYxXQIgPQj53hg9L0/yuKVsm88Y3N80kTiMFOjFMYalLnVbhQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":547262},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"acd0ef1f6e7f4386a4f1946907ab47edb4135ed6","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run build","sync:version:check":"node scripts/sync-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:08905a7b-50d3-42b6-b29e-5ed0e1d309a2"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.18.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.6.1","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.0","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.6.4_1776960467011_0.6607355016731926","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"node-red-contrib-lsh-logic","version":"1.7.0","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.7.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"e9e496a8cde961f528770aad057e09a53d11d0c1","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.7.0.tgz","fileCount":68,"integrity":"sha512-NYjZLszyEZ+5nJRoif9e08jIB4Imb5iUQhA/8C4+zjhhNXwkaNcAFQTIr138r6WUPrjIwjUr/L1zIR2Jn25NbQ==","signatures":[{"sig":"MEUCIAZdnc1kXDeB3UKW0Vl2D1+mVEzcNjOy2k30Ddb13P5LAiEAwVO1AKp3UFebWGiHP89Lkdbhfb6st+AV/i9KIgmoR3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":564335},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0cbb0bd72b48e088844785bcff6b5bac70bfc7c7","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run build","sync:version:check":"node scripts/sync-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.20.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.0","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.7.0_1777307176805_0.1660090208558922","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"node-red-contrib-lsh-logic","version":"1.7.1","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.7.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"0930ac3a306fd9dc4427fb7ff7f8284d617ff0c1","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.7.1.tgz","fileCount":69,"integrity":"sha512-Wqo+9zasie7gfbRXCv0+n8ZO2gOlYn5K5klAZ+gOsLKsSewLXybOzb3V/x9J6YIJWaDzt665SKCNdvZDm/JIzw==","signatures":[{"sig":"MEYCIQCHNf6pt8Siw16M+CU45HhTKubrnkJLCQHQhYAVHCaVzAIhAJSL5l79i83tTpaZbglRnaSdV+QaD7QtkiToqp43OMkP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":575510},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"978df0bab0422ff0214fa166271176e6fb678015","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run build","sync:version:check":"node scripts/sync-version.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.20.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.0","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.7.1_1777323889494_0.4277959104397402","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"node-red-contrib-lsh-logic","version":"1.7.2","keywords":["node-red","lsh","home-automation","typescript","mqtt","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@1.7.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"8689e4b39a9b2f4b1053cd8baf55714b2d129d27","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-1.7.2.tgz","fileCount":69,"integrity":"sha512-vqAt0f0vr+LX0QevokzyIgLmw9x4c/IM/2u1yubRbmocfUERp0h1lwitrzmu1zOsaTWpplPIOd7B3rCKEGzEoQ==","signatures":[{"sig":"MEUCIGWZ6AXfN4PhaeNHylP+cSOlQ1PEJE3p/OZ1c76cND3sAiEA2LVww7oQW2OQ34eJ2VkGqBon/uxR2vCmfCEEKrMbckk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@1.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":576085},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"06bc90deca00ce92f6e62cc134e5a5d20e2aefa7","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run build && npm run validate:package-doc-links","sync:version:check":"node scripts/sync-version.mjs --check","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.20.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_1.7.2_1777371961391_0.13783024753141415","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"node-red-contrib-lsh-logic","version":"2.0.0","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@2.0.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"1cbf19ecca384cb2db17c6bc2f306ba9423810d2","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-2.0.0.tgz","fileCount":66,"integrity":"sha512-EqSe/e2ISAstzdrp16N817n3gTPgEewT7fnv7rbtzpb4FDnMXBuMz0DDoFfw6ASbcp8Yuu4V5LEyWGhPXIZYQA==","signatures":[{"sig":"MEYCIQCxB5RBLiB+5BtN04d+PseT9OAL38ypX1Jxv2Gz6C5cCgIhAMbeJcrY5uziqwWlNMad8063mpgl+nSJ0ePdxeJ99DkQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":482955},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"21532662d4e78477ea3a46bfa563ef882fbe11a4","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ajv":"^8.20.0","chokidar":"^4.0.3","@msgpack/msgpack":"^3.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_2.0.0_1777482233728_0.01722098920209003","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"node-red-contrib-lsh-logic","version":"3.0.0","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.0.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"9b5976bcb743586c0b2beb61b75435e85ac6c248","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.0.0.tgz","fileCount":33,"integrity":"sha512-6JlBzX8COj99GB2HFglWQOiPOZvlCo/Bpty/O6Db+yYv6S5E7pLubStsJud+SK82WapSXL4Qp7L0AKPY4sRKiA==","signatures":[{"sig":"MEUCIB9UvxUNhq4sXmtw664QHCfpipSxdGutXfVvkzY9Eo1aAiEAxvOP+ZIHgMFYdpyuBYvXoUK2DLHomQDbOineT42kFS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199303},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5f2594578984198e2126d144e9bc5895cb949332","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.0.0_1777538726356_0.6420338217984005","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"node-red-contrib-lsh-logic","version":"3.0.1","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.0.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"5ea7d1b4f8e05ae7bf861a88c17fa325fcb17b91","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.0.1.tgz","fileCount":33,"integrity":"sha512-GBTSIflwKjxRz05JGyJubfRy9mN/4Dl3sJObUUBQV+Kt1/lB21TpOjtuzJxv01sROU+BgtLPFBxH41ojFFLq/w==","signatures":[{"sig":"MEYCIQDLBANhZmfIGIY3weTl2Phw48gbCgNO5BZV3xaTDskwVgIhAKqDkktC8zVPWdtJ7LUXsO4dixMA0+KTzgJ0W39JEPqG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":199437},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"658bc48d771512a37ffa024cc2fc9e4b75b750de","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.0.1_1777555901567_0.4183573857024314","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"node-red-contrib-lsh-logic","version":"3.0.2","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.0.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"ccb1afc26533b0e245d7d9a6cbba80ca384f65f2","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.0.2.tgz","fileCount":35,"integrity":"sha512-5Rs9/2/w9fkDfxxp8X4WM61OsqRPQm0VF4OHLx4QaiAtNdJr1FWeobAEl5jsf0CVA+VrCHRBv1tx5QaWehVpCQ==","signatures":[{"sig":"MEYCIQDD8yVK30+tv9tMzlLFPR4EnsvrrWsaqW4e0E+CcSQdmwIhAPPbptMvGNco1zvvjLsZrLxNNIuh7dC49AAHOuju2eTM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200926},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a0c9b756125ea178a8097646ec2730e6239f4284","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A single, powerful node for advanced automation logic on devices implementing the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.7.0","eslint":"^10.2.1","globals":"^17.5.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.0.2_1777636547055_0.5747480996656076","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"node-red-contrib-lsh-logic","version":"3.0.3","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.0.3","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"25f1bce8fef26af02708aeb43a72a8676e68f366","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.0.3.tgz","fileCount":35,"integrity":"sha512-j39pf8trVmM/wPIcrW1XPVwCnwTCvYEck0Xr+2aJeSEXq/9YNlvRoh7SWo/9Rp+pVrXQWlUDzZon/MHQGeVzbQ==","signatures":[{"sig":"MEQCIC4dSLFeshusq/6JFKb4FRn7Tal4jPYKfT98SPG6oZ6AAiAxfZgTjYggkfNKXVffIOEmC2uv5LqTafifY3r/7S8Ymg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":201094},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"31d1c84761489bf3866a5285c7897668d1273d9d","scripts":{"knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.0.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.11.0","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.0.3_1777836340770_0.634724149557438","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"node-red-contrib-lsh-logic","version":"3.1.0","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.0","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"7ad78a8d0757065b6313dd899a7369bf975f5bad","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.0.tgz","fileCount":37,"integrity":"sha512-WTHg+gLGU+IAGe6mlc9Q2Fmjfq29dwkzlZvvc9V2H2+/0EU7wB5gtVjkekBpNgGDmydu6oC7VHo1AFDsvdryGg==","signatures":[{"sig":"MEQCICeavTuDQ4MWe4HQde9a0/FwZ+nSvE25De3JXakoMG5+AiB3b4vziS7EqMdi0rtOz8jTcfpkBY6STOKLCQFCu7NNrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":234917},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"098b798f5332e41ce21c0bd2d2699a167d1b5ab2","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.3.0","knip":"^6.11.0","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.1","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.0_1778186914283_0.6877282656800683","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"node-red-contrib-lsh-logic","version":"3.1.1","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.1","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"f9a7060cccee4581eff3f504493d4d381d67d74d","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.1.tgz","fileCount":37,"integrity":"sha512-VXSb3aVauRMzW/RE/wmz4bOO+J6tAxGtpkVI7Zbvbj45XU8cjtloeC9xUrkQXDbRdfSaWNVU3P8MCh3b6558tg==","signatures":[{"sig":"MEQCICbYrxJX60XO/mOUw0Hb/vDn5aTexPIq/+QASotYy8IFAiAyuu3pZj1N4xRcuIf+CM4Je448V0F5FKE23PlwgwGHsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":235799},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"011d0d665fa2c231bca75591d840d6c4873632a6","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.0","knip":"^6.12.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.1","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.1_1778192772944_0.7203074325887802","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"node-red-contrib-lsh-logic","version":"3.1.2","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.2","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"7b90fd080e9a5adf85bcb812461bb80660c56076","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.2.tgz","fileCount":37,"integrity":"sha512-Dmd2NJvO7I8rEUQSJRRRqUyvhYnc+XKmnDQ5eM1GjTAUaJ1DnyxFi2GMwjuQ3aom7dR2e0jjHY1J/qDBHDqUcA==","signatures":[{"sig":"MEYCIQCUXTfpF4uKpp9DsXpiPo/WkSPRSHuFlTrsiXmo7yV+agIhAL7Mq/oZHs+ti8wzP1WaoReQzV17ffv7/tt+xng5VZdb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":235807},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e0089a7145039a1a7be5f351d98f86808b143269","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.0","knip":"^6.12.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.1","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.2_1778193579199_0.5545943510839395","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"node-red-contrib-lsh-logic","version":"3.1.3","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.3","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"32cc6593acabbf6b165ec26a2e877250c644c4e9","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.3.tgz","fileCount":37,"integrity":"sha512-idSeF6jobgb5DFbdwdn8hjuIEXO3MzAv2rTMuMK/TxsS8G32AT/C2HjGhQNpBqshWYoafmUWEZsF7kQ3Ehl3Zw==","signatures":[{"sig":"MEYCIQDK6pEu8fCRYGrgcW561ufZE8AwRZUow/e+Lr30WJW/zgIhALu53zASPUZuUBN2dDjzG/+rv7lgJm4hK9BzryE8s6hx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":236425},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ffc1a411b97f628279b378045bfd5c59ee174d2c","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.0","knip":"^6.12.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.1","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.3_1778233992347_0.5506286191816072","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"node-red-contrib-lsh-logic","version":"3.1.4","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.4","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"328f667dbecb628c8a07176a87e72383d7eda92e","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.4.tgz","fileCount":37,"integrity":"sha512-ZjahJA7B5tyUegVqbV5GnOlQjU6QAK4GBMv6/OrRrz4PuRNgYwWkIwHzw4v0BXp6IrrdxypAlrw0ydCYbb/lvQ==","signatures":[{"sig":"MEQCIGzweuG2MiGhj21r4/O2VS40TZIINd82r3PKuqEtB4P0AiAV5ISoEUZ4T906Lpg5r6p2bogZ2Z/3EXr+DVfboLTjVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":237690},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b8783fb5372f1afba95080ef14bf2c4f6dfb8498","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.0","knip":"^6.12.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.6.1","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.2","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.4_1778234728778_0.49051225119928543","host":"s3://npm-registry-packages-npm-production"}},"3.1.5":{"name":"node-red-contrib-lsh-logic","version":"3.1.5","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.5","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"ae3ce4dc871de47f566df181b4d405cf863b0247","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.5.tgz","fileCount":28,"integrity":"sha512-/JxcEol6sAChscM0yJ8OT/fDFA9mWoDzEiyt2oem18ot3eKB43QiKsQsrDF2YgajWaOnIdMg9lBI/ZGwhqNPqg==","signatures":[{"sig":"MEUCIGTgm10/Gfap/NWUAVO8h6OViacjuZk7TXELKgT7xo9VAiEAp0/qZ99Y1ASxTqAg0s8KlZq8UvtHtoS6548IIjduBzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":183993},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ff7e6256bddd9fae40e447eb182357a5c31b5b35","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.13.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.7.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.5_1778601799135_0.5281107046464508","host":"s3://npm-registry-packages-npm-production"}},"3.1.6":{"name":"node-red-contrib-lsh-logic","version":"3.1.6","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.6","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"bcb6afc07947f5298a04a0ef0cc0c0369ae81e4e","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.6.tgz","fileCount":28,"integrity":"sha512-ta3uRYZVRrJhHweJoQA8NzQtS1Kjisl8wpaU8P2QwSHwk0/3u/jLPRzLvBWewIpI/TofXX+sPjLVSEnt1UicSQ==","signatures":[{"sig":"MEUCIQDKu/qcFpG3raavwvRye958MWtOC4FzJgCGoGCeT+41lAIgQ5IG41XJaH4/QJoaCOyMcXDyBgthjHNp1G50a4ENlto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184748},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"41b4da98ac0ffcf5329c1f2242bec4904d9bc276","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.13.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.7.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.6_1778628192028_0.3103764492603962","host":"s3://npm-registry-packages-npm-production"}},"3.1.7":{"name":"node-red-contrib-lsh-logic","version":"3.1.7","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.7","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"7632af333ed21d8c2f581a69b72a243ecc7d9f4b","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.7.tgz","fileCount":32,"integrity":"sha512-+TW/aMYlcukoYcQ5nENwxC9s47aiNiuwghcd8xCwHb/wAEJkCcBFmSgHID8unb2Jq8EovGiVe3FD4DeU8pEYsA==","signatures":[{"sig":"MEQCIHCjTIJMyBKVRTWMBJIvPVqImzMdafTfuxW9El2m8PUKAiBv7+KoiklUr7DSiTVU0Ph9npHGJvlsFYU3fqW1ovjGNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":220111},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"18b161c356ba67208f5a40556db24d57a4c063df","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.13.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.7.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.7_1778717300964_0.4185086865718377","host":"s3://npm-registry-packages-npm-production"}},"3.1.8":{"name":"node-red-contrib-lsh-logic","version":"3.1.8","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.8","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"4a19d7896f74557540a008a95ed4a086b180ae8c","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.8.tgz","fileCount":39,"integrity":"sha512-MaL3a4N4Na7/eXYAF4ZnjEftxDRvWSAqH3EhOTSwbd0JJqU1DIYEXCuKIVbygq5NWe3g2qPy3hD5cR5/Bi1o2Q==","signatures":[{"sig":"MEYCIQDg1sKltQwpgMy/bAcOQ+VkuwtZFaM/0+fGvDjqFFuL8gIhAJQCmVTvkmEJEOXkN8UMkbelpUtC5zPx2cJgn3t8yAWT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277243},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b206232cc7fdf514af3f4221302a9cedd76272e7","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js","lsh-external-state":"dist/lsh-external-state.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.13.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.7.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.8_1778720123219_0.41984182414453297","host":"s3://npm-registry-packages-npm-production"}},"3.1.9":{"name":"node-red-contrib-lsh-logic","version":"3.1.9","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.9","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"95d6172065ead5ea4c8761b2b98758fe300d20fa","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.9.tgz","fileCount":45,"integrity":"sha512-MXlrkiuGCbKzqH35MlhyU/sdZCJi8k+Z4rKDpnpDI4NBXSITu3DpwlAYDq/aERpyeROfpSplapOcWGJmp43TUQ==","signatures":[{"sig":"MEYCIQDfeB81NtAbY4rQfg0AszHEXTK4ibsH56oEsQ+7VdEvBAIhAIJtsl9FcuGo90gstX+cutC/TazQ5Ho6bmKKf7hc4srn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374814},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"862ae1e6b5c58da65a6afd01e18bf086b17a0742","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js","lsh-external-state":"dist/lsh-external-state.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.13.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.7.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.9_1778749083941_0.25569310304349435","host":"s3://npm-registry-packages-npm-production"}},"3.1.10":{"name":"node-red-contrib-lsh-logic","version":"3.1.10","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.10","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"ab3625399e1bb91c85962f45d6684c8fe546ae50","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.10.tgz","fileCount":45,"integrity":"sha512-p09ZkRNTZcAoFSHdE7EWbM431U0g4QQSKWgXU/jvgU7cs3yLqTZz1Vb9MNtS1lmuchoRThx+1uCyU/+VFmMzmA==","signatures":[{"sig":"MEUCIHU/fQkHJQeT1tFm2I0PSwu12AGCHADayTaDBPeo2f00AiEAqdYYBj8xif2ynZlaUlTJh2H581/R8qwMLt0K7pfECDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":382831},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"53c861f5ecef9669aaef98cf74f2150383bd11da","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js","lsh-external-state":"dist/lsh-external-state.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.11.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.13.1","eslint":"^10.3.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.7.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.10_1778750537406_0.7344446924700307","host":"s3://npm-registry-packages-npm-production"}},"3.1.11":{"name":"node-red-contrib-lsh-logic","version":"3.1.11","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.11","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"92a9fce8866135c93e68af25146291156542431b","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.11.tgz","fileCount":45,"integrity":"sha512-+3Abyym5YtW0mOewdY5pIAWvinbiO7Yki6MroKpm5pOEpNuCa4rBdUXp9Q9IGaBp74OFX57g13Z0XGICqDAZcA==","signatures":[{"sig":"MEYCIQDrtovngXrvcdFNcvODJE0Ti0OsBUWSDlmVohSra8EDgwIhAOxUQfUrQJfmIJQYB42KyZwnj6Uwo4shSTGfLkTaqB+Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383081},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2eae3af143cd8a463e9796edfc8733b7ce608756","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js","lsh-external-state":"dist/lsh-external-state.js"},"version":">=4.0.0"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.12.1","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"labo-smart-home-coordinator":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.14.1","eslint":"^10.4.0","globals":"^17.6.0","ts-jest":"^29.4.9","prettier":"^3.8.3","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^25.8.0","@types/node-red":"^1.3.5","typescript-eslint":"^8.59.3","eslint-plugin-jest":"^29.15.2","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.11_1779020200068_0.9139567209684105","host":"s3://npm-registry-packages-npm-production"}},"3.1.12":{"name":"node-red-contrib-lsh-logic","version":"3.1.12","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","_id":"node-red-contrib-lsh-logic@3.1.12","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"dist":{"shasum":"93ccee6271a699d4709155b3077927abae9335df","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.12.tgz","fileCount":45,"integrity":"sha512-+L+ud4fZujrmdzqFveR3rHbNezzEFfsyuYbB1Cj8Z2h0wPQ0YHtX5If9IDi7TUQmpYlJq5uQs7/pac0wzQn/4A==","signatures":[{"sig":"MEQCIDT6fq0ktdJZ4RHwcUI3BX0DHE6ZA3BoP516e/rTKwUqAiBOo/qIGgloetI4G1hh/B3V5BQJTsKFCweAvKKn9ocrKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383128},"main":"dist/lsh-logic.js","types":"./dist/lsh-logic.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b1bd909aa520f56dfcd22980ddbe8e4dde43007b","scripts":{"fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","watch":"tsc -w","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","lint:md":"node scripts/lint-markdown.mjs","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","audit:prod":"npm audit --omit=dev","test:watch":"jest --watch","copy-assets":"copyfiles -u 1 src/**/*.html dist/","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","sync:version":"node scripts/sync-version.mjs --write","prepublishOnly":"npm run check","verify:package":"node scripts/verify-package.mjs","sync:version:check":"node scripts/sync-version.mjs --check","verify:package-contents":"node scripts/verify-package-contents.mjs","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js","lsh-external-state":"dist/lsh-external-state.js"},"version":">=4.0.0"},"overrides":{"jsonata":"^2.2.2"},"repository":{"url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git","type":"git"},"_npmVersion":"11.16.0","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"labo-smart-home-coordinator":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","knip":"^6.27.0","eslint":"^10.7.0","globals":"^17.7.0","ts-jest":"^29.4.11","prettier":"^3.9.5","copyfiles":"^2.4.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/jest":"^30.0.0","@types/node":"^26.1.1","@types/node-red":"^1.3.5","typescript-eslint":"^8.64.0","eslint-plugin-jest":"^29.15.4","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-lsh-logic_3.1.12_1784231712849_0.5890952802630975","host":"s3://npm-registry-packages-npm-production"}},"3.1.13":{"name":"node-red-contrib-lsh-logic","version":"3.1.13","description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","main":"dist/lsh-logic.js","scripts":{"clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","sync:version":"node scripts/sync-version.mjs --write","sync:version:check":"node scripts/sync-version.mjs --check","copy-assets":"copyfiles -u 1 src/**/*.html dist/","dev:build":"npm run sync:version:check && npm run clean && tsc && npm run copy-assets","build":"npm run sync:version:check && npm run clean && tsc -p tsconfig.prod.json && npm run copy-assets","validate:package-doc-links":"node scripts/validate-package-doc-links.mjs","typecheck":"npm run sync:version:check && tsc -p tsconfig.typecheck.json","lint":"npm run sync:version:check && eslint src --max-warnings=0 --cache --cache-location ./.cache/eslint","lint:fix":"npm run sync:version:check && eslint src --fix --cache --cache-location ./.cache/eslint","lint:md":"node scripts/lint-markdown.mjs","format":"prettier --write \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","format:check":"prettier --check \"src/**/*.{ts,html,json}\" \"scripts/**/*.mjs\" \"examples/**/*.json\" \"docs/**/*.md\" README.md DOCS.md LIFECYCLE.md CITATION.cff package.json jest.config.js eslint.config.mjs knip.json tsconfig*.json .prettierrc.json \".github/**/*.{yml,yaml}\"","fix":"npm run format && npm run lint:fix","knip":"knip --production --strict","audit:prod":"npm audit --omit=dev","verify:package":"node scripts/verify-package.mjs","verify:package-contents":"node scripts/verify-package-contents.mjs","check":"npm run sync:version:check && npm run typecheck && npm run lint && npm run lint:md && npm run format:check && npm run knip && npm run build && npm run validate:package-doc-links && npm run verify:package-contents && npm run verify:package && npm run test:cov && npm run audit:prod","watch":"tsc -w","prepublishOnly":"npm run check","test":"npm run sync:version:check && jest --no-cache --detectOpenHandles","test:cov":"npm run sync:version:check && jest --coverage --no-cache --detectOpenHandles","test:watch":"jest --watch"},"keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git"},"bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","node-red":{"nodes":{"lsh-logic":"dist/lsh-logic.js","lsh-actuator-sync":"dist/lsh-actuator-sync.js","lsh-external-state":"dist/lsh-external-state.js"},"version":">=4.0.0"},"engines":{"node":">=18.0.0"},"dependencies":{"labo-smart-home-coordinator":"^1.2.1"},"devDependencies":{"@eslint/js":"^10.0.1","@types/jest":"^30.0.0","@types/node":"^26.2.0","@types/node-red":"^1.3.5","copyfiles":"^2.4.1","eslint":"^10.8.1","eslint-config-prettier":"^10.1.8","eslint-plugin-jest":"^29.16.1","globals":"^17.11.0","jest":"^30.4.2","knip":"^6.32.2","prettier":"^3.9.6","ts-jest":"^29.4.12","typescript":"^6.0.3","typescript-eslint":"^8.67.0"},"overrides":{"jsonata":"^2.2.2"},"gitHead":"f19b254d5680041f621fade54e795e4fd6111eef","types":"./dist/lsh-logic.d.ts","_id":"node-red-contrib-lsh-logic@3.1.13","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-5kj1PcuKhGQ8VIO0Rl16e0PcKQedA2eomgVzTwoI3scqgDBfm6Ue3pwE3YzXS8z3bt2tSdO+PEPg+4BJsSdFmg==","shasum":"654f96ffae578893b00f418b3b9df9fe98fc4dd2","tarball":"https://registry.npmjs.org/node-red-contrib-lsh-logic/-/node-red-contrib-lsh-logic-3.1.13.tgz","fileCount":45,"unpackedSize":385579,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/node-red-contrib-lsh-logic@3.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDBf5EiKCYcIVaWSc5LYMRNsdDs7HDJFzeWHcQySJ9QHwIhAP7xWixBb6UtRquPg/WvjgQpwYapywAJrBIR4fUjBI9Y"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0d10c6ce-ddd4-46b2-890e-74ad8aea6a45"}},"directories":{},"maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-red-contrib-lsh-logic_3.1.13_1787245167516_0.10756520751943777"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-11T08:50:31.558Z","modified":"2026-08-20T16:59:27.961Z","1.0.0":"2025-07-10T00:49:31.541Z","1.0.1":"2025-07-11T08:50:31.767Z","1.0.2":"2025-07-11T10:00:38.929Z","1.0.3":"2025-07-11T10:03:43.212Z","1.0.4":"2025-07-11T10:09:56.790Z","1.0.5":"2025-07-11T10:39:50.376Z","1.0.6":"2025-07-11T14:17:20.891Z","1.0.25":"2025-07-13T20:09:48.028Z","1.0.26":"2025-07-14T08:36:43.755Z","1.0.27":"2025-07-14T16:30:18.005Z","1.1.1":"2025-12-19T22:14:44.872Z","1.2.0":"2026-01-27T00:42:25.627Z","1.2.1":"2026-01-27T01:02:54.680Z","1.2.2":"2026-03-04T09:49:51.444Z","1.2.3":"2026-03-04T09:54:34.998Z","1.2.4":"2026-03-04T10:06:08.719Z","1.2.7":"2026-04-09T20:41:18.385Z","1.2.8":"2026-04-09T21:11:08.443Z","1.3.0":"2026-04-09T21:24:56.547Z","1.4.0":"2026-04-11T08:47:52.320Z","1.4.1":"2026-04-13T15:40:41.562Z","1.4.2":"2026-04-13T17:17:54.888Z","1.4.4":"2026-04-13T19:10:18.609Z","1.4.6":"2026-04-13T19:30:33.582Z","1.5.0":"2026-04-14T20:10:31.177Z","1.5.1":"2026-04-16T06:04:07.468Z","1.5.2":"2026-04-16T20:13:25.281Z","1.6.0":"2026-04-18T15:55:27.021Z","1.6.1":"2026-04-20T16:20:52.039Z","1.6.2":"2026-04-20T21:18:08.583Z","1.6.3":"2026-04-22T12:05:04.706Z","1.6.4":"2026-04-23T16:07:47.182Z","1.7.0":"2026-04-27T16:26:16.988Z","1.7.1":"2026-04-27T21:04:49.738Z","1.7.2":"2026-04-28T10:26:01.548Z","2.0.0":"2026-04-29T17:03:53.914Z","3.0.0":"2026-04-30T08:45:26.566Z","3.0.1":"2026-04-30T13:31:41.710Z","3.0.2":"2026-05-01T11:55:47.218Z","3.0.3":"2026-05-03T19:25:40.917Z","3.1.0":"2026-05-07T20:48:34.505Z","3.1.1":"2026-05-07T22:26:13.106Z","3.1.2":"2026-05-07T22:39:39.404Z","3.1.3":"2026-05-08T09:53:12.497Z","3.1.4":"2026-05-08T10:05:28.991Z","3.1.5":"2026-05-12T16:03:19.307Z","3.1.6":"2026-05-12T23:23:12.170Z","3.1.7":"2026-05-14T00:08:21.176Z","3.1.8":"2026-05-14T00:55:23.361Z","3.1.9":"2026-05-14T08:58:04.124Z","3.1.10":"2026-05-14T09:22:17.598Z","3.1.11":"2026-05-17T12:16:40.274Z","3.1.12":"2026-07-16T19:55:13.030Z","3.1.13":"2026-08-20T16:59:27.668Z"},"bugs":{"url":"https://github.com/labodj/node-red-contrib-lsh-logic/issues"},"author":{"name":"Jacopo Labardi","email":"2527836+labodj@users.noreply.github.com"},"license":"Apache-2.0","homepage":"https://github.com/labodj/node-red-contrib-lsh-logic#readme","keywords":["node-red","node-red-node","lsh","lsh-protocol","home-automation","smart-home-automation","typescript","mqtt","mqtt-automation","homie","smart-home"],"repository":{"type":"git","url":"git+https://github.com/labodj/node-red-contrib-lsh-logic.git"},"description":"A Node-RED node for coordinating devices that implement the public LSH MQTT/protocol contract.","maintainers":[{"name":"labodj","email":"jacopolabardi@gmail.com"}],"readme":"# Node-RED Contrib LSH Logic\n\n[![npm](https://img.shields.io/npm/v/node-red-contrib-lsh-logic.svg)](https://www.npmjs.com/package/node-red-contrib-lsh-logic)\n[![Node-RED Library](https://img.shields.io/badge/Node--RED-Library-8f0000.svg)](https://flows.nodered.org/node/node-red-contrib-lsh-logic)\n[![npm downloads](https://img.shields.io/npm/dm/node-red-contrib-lsh-logic.svg)](https://www.npmjs.com/package/node-red-contrib-lsh-logic)\n[![CI](https://github.com/labodj/node-red-contrib-lsh-logic/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/labodj/node-red-contrib-lsh-logic/actions/workflows/ci.yaml)\n[![Node.js](https://img.shields.io/node/v/node-red-contrib-lsh-logic.svg)](https://www.npmjs.com/package/node-red-contrib-lsh-logic)\n[![Latest Release](https://img.shields.io/github/v/release/labodj/node-red-contrib-lsh-logic?display_name=tag&sort=semver)](https://github.com/labodj/node-red-contrib-lsh-logic/releases/latest)\n[![License](https://img.shields.io/github/license/labodj/node-red-contrib-lsh-logic.svg)](https://github.com/labodj/node-red-contrib-lsh-logic/blob/main/LICENSE)\n\n[![works with MQTT Homie](https://homieiot.github.io/img/works-with-homie.svg \"works with MQTT Homie\")](https://homieiot.github.io/)\n\n`node-red-contrib-lsh-logic` is the Node-RED node that runs the LSH\ncoordination logic inside a flow. It listens to the public LSH MQTT contract,\nkeeps a live registry of configured devices, coordinates distributed long-click\nactions, publishes commands, and emits alerts when a bridge or controller needs\nattention.\n\nThe package also includes two small helper nodes:\n\n- `lsh-external-state` stores non-LSH actor state in the context shape that the\n  coordinator reads for smart toggles;\n- `lsh-actuator-sync` mirrors a downstream smart device state back to the LSH\n  actuator that powers it.\n\nThe original LSH installation uses Controllino controllers and ESP32 bridges,\nbut the useful boundary is the protocol: if a device stack publishes the same\nLSH and Homie topics, this node can orchestrate it from Node-RED.\n\n![LSH Logic Node](https://raw.githubusercontent.com/labodj/node-red-contrib-lsh-logic/main/images/lsh-logic-node.png)\n\n## When to Use It\n\nUse this node when Node-RED should own the orchestration layer for\nLSH-compatible devices:\n\n- track configured devices, actuator state, and Homie lifecycle;\n- react to long-click and super-long-click events;\n- send commands back to LSH devices;\n- route generic intents to flows that target Zigbee, Tasmota, Home Assistant, or\n  custom systems;\n- keep external actor state available for smart-toggle decisions;\n- synchronize downstream smart bulbs or modules back to the upstream LSH relay\n  when an external app changes their state;\n- keep startup, watchdog, and recovery behavior predictable after restarts.\n\nThe node is focused on LSH messages; its input expects the LSH protocol. Keep\nother devices in normal Node-RED flows, and handle LSH-generated intents through\nthe **Other Actor Commands** output.\n\n## Install\n\nInstall it from the Node-RED Palette Manager, or from your Node-RED user\ndirectory:\n\n```bash\nnpm install node-red-contrib-lsh-logic\n```\n\nNode.js 18 or newer is required.\n\n## Basic Wiring\n\nThe usual flow is small:\n\n1. Wire `mqtt in` into `lsh-logic`.\n2. Wire output 1 to `mqtt out` for LSH commands.\n3. Wire output 2 to your non-LSH actor flow.\n4. Wire output 3 to notifications or a debug node.\n5. Wire output 4 back to the same `mqtt in` node for dynamic subscriptions.\n6. Use output 5 while developing or diagnosing a flow.\n\n![LSH Logic Flow](https://raw.githubusercontent.com/labodj/node-red-contrib-lsh-logic/main/images/logic-flow.png)\n\nDynamic subscriptions are the recommended setup. Leave the `mqtt in` topic empty\nand let `lsh-logic` keep the topic list aligned with the devices in the inline\nSystem Config.\n\nExample import:\n[examples/lsh-logic.json](https://github.com/labodj/node-red-contrib-lsh-logic/blob/main/examples/lsh-logic.json)\n\n## Configure the Node\n\nMost installations touch two places:\n\n- the Node-RED editor fields for MQTT paths, payload protocol, timing, and\n  optional context exports;\n- the inline **System Config** JSON, which lists LSH devices and long-click\n  actions.\n\nThe editor validates that JSON against the LSH System Config shape, offers\nLSH-specific JSON completions/snippets, previews the exact MQTT topic set, and\ncan import the generated `lsh-stack-config/v1` export from `lsh-core`.\n\nMultiple `lsh-logic` nodes can run in the same Node-RED runtime when each one\nowns a distinct LSH stack, MQTT topic space, or isolated test flow. Keep their\ncontext export keys separate when helpers read exported state or config: use\n`flow` for self-contained flows, `global` when helper flows must share the same\ncoordinator exports, and `none` when no flow needs that optional export.\n\nStart with a small config and add actions one at a time:\n\n```json\n{\n  \"devices\": [\n    {\n      \"name\": \"c1\",\n      \"longClickButtons\": [\n        {\n          \"id\": 1,\n          \"actors\": [\n            {\n              \"name\": \"j1\",\n              \"allActuators\": true,\n              \"actuators\": []\n            }\n          ],\n          \"otherActors\": [\"zigbee_table_lamp\"]\n        }\n      ]\n    },\n    {\n      \"name\": \"j1\"\n    }\n  ]\n}\n```\n\nThat means: when device `c1` reports a long click on button `1`, toggle all\nactuators on device `j1` and also emit an intent for `zigbee_table_lamp`.\n\n## Outputs\n\n| Output | Name                 | Typical destination                                         |\n| ------ | -------------------- | ----------------------------------------------------------- |\n| 1      | LSH Commands         | `mqtt out`, for commands to LSH devices and bridge service. |\n| 2      | Other Actor Commands | User flows that translate generic intents to other systems. |\n| 3      | Alerts               | Notifications, logs, metrics, or a debug node.              |\n| 4      | Configuration        | The same upstream `mqtt in` node for dynamic subscriptions. |\n| 5      | Debug                | Original inbound messages after successful processing.      |\n\nThe second output is deliberately protocol-neutral. The node emits the intended\nstate; your surrounding flow decides how a Zigbee light, Tasmota plug, Home\nAssistant service, or local script should receive it.\n\n## External State Helper\n\nUse `lsh-external-state` when a non-LSH actor appears in `otherActors` and the\ncoordinator must know its current boolean state before choosing a smart-toggle\ndirection. The helper accepts MQTT or flow messages from ESPHome, Zigbee2MQTT,\nShelly, Home Assistant, or custom integrations, normalizes the configured state\nproperty to a boolean, and stores it as:\n\n```text\n<otherDevicesPrefix>.<actorName>.state\n```\n\nRetained MQTT state is accepted by default because this helper only stores\nobserved state; it does not command devices. Point **External State Store** at\nthe same context selected by the `lsh-logic` node in **Read External Actor\nState**. The prefix can come from the exported `lsh_config.otherDevicesPrefix`,\nwhich avoids mismatches when the main node uses a custom prefix.\n\nMultiple `lsh-external-state` nodes can run in the same Node-RED instance. They\ndo not conflict when each instance stores a different actor, or when separated\nflows intentionally use different context stores or prefixes.\n\nExample import:\n[examples/lsh-external-state.json](https://github.com/labodj/node-red-contrib-lsh-logic/blob/main/examples/lsh-external-state.json)\n\n![External State Flow](https://raw.githubusercontent.com/labodj/node-red-contrib-lsh-logic/main/images/external-state-flow.png)\n\n## Actuator Sync Helper\n\nUse `lsh-actuator-sync` when a smart device is powered through an LSH actuator\nbut can also be controlled from another app or system. The helper consumes those\nexternal state updates, reads the selected `lsh-logic` context exports, and\nemits a Homie `state/set` command only when the upstream LSH actuator needs to\nbe aligned.\n\nThe flow remains explicit: collect the external device state, use a Change node\nor Function node to add `msg.deviceId` and `msg.actuatorId`, then wire the helper\noutput to the same MQTT output used for LSH commands. If you run more than one\n`lsh-logic` node, give each one unique state/config export keys and point each\nhelper instance at the matching keys.\n\nMultiple `lsh-actuator-sync` nodes can run side by side. The normal pattern is\none helper policy per downstream device, or per group of devices that share the\nsame retained-message, direction, cooldown and state-parsing rules.\n\nExample import:\n[examples/lsh-actuator-sync.json](https://github.com/labodj/node-red-contrib-lsh-logic/blob/main/examples/lsh-actuator-sync.json)\n\n![Actuator Sync Flow](https://raw.githubusercontent.com/labodj/node-red-contrib-lsh-logic/main/images/actuator-sync-flow.png)\n\n## Runtime Behavior\n\nThe node is intentionally conservative. It reuses retained `conf` and `state`\nsnapshots, but it does not treat retained lifecycle traffic as proof that a\ndevice is alive right now. Distributed clicks are confirmed only when target\nstate is authoritative, and recovery probes are rate-limited so an unreachable\ndevice does not flood the broker.\n\nThe Node-RED status text stays compact: it reports coordinator state plus device\nregistry, bridge and controller reachability counts.\n\nJSON payloads are the default. MsgPack is available when your firmware supports\nit and the upstream `mqtt in` node preserves LSH payloads as Buffers.\n\n## Documentation\n\nThe full documentation map lives in\n[DOCS.md](https://github.com/labodj/node-red-contrib-lsh-logic/blob/main/DOCS.md).\nStart there when you want configuration details, optional Homie discovery\nguidance, dynamic subscription behavior, or the lifecycle contract.\n\nIf you are new to the wider LSH stack, the project-level starting points are:\n\n- [LSH reference stack](https://github.com/labodj/labo-smart-home/blob/main/REFERENCE_STACK.md)\n- [Getting started](https://github.com/labodj/labo-smart-home/blob/main/GETTING_STARTED.md)\n- [Glossary](https://github.com/labodj/labo-smart-home/blob/main/GLOSSARY.md)\n- [Troubleshooting](https://github.com/labodj/labo-smart-home/blob/main/TROUBLESHOOTING.md)\n\n## Maintainer Notes\n\nThe published package supports Node.js 18 or newer. The local quality gate runs\ntype checking, linting, Markdown checks, formatting checks, package validation,\ncoverage, and a production dependency audit:\n\n```bash\nnpm ci\nnpm run check\n```\n\n## License\n\nApache-2.0. See\n[LICENSE](https://github.com/labodj/node-red-contrib-lsh-logic/blob/main/LICENSE).\n","readmeFilename":"README.md"}