{"_id":"node-red-contrib-alice-self-hosting","_rev":"27-5b65d1f37cdaf56e458af55f9a645b5b","name":"node-red-contrib-alice-self-hosting","dist-tags":{"latest":"0.2.7"},"versions":{"0.0.1":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.1","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.1","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"0651ba4c18de5a9feb8001c8bb4e56a2a02aea2e","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.1.tgz","fileCount":72,"integrity":"sha512-RfIKzRZ1MJ8QFAGYYCw+/L7QxDyVxUbNUoWdFPO2HX0TuFYs7NIQOXYPy2oT41FespDfowpMcOWlN6ffB0x4sQ==","signatures":[{"sig":"MEQCIEeDFhrFQZCqFTbv5vaJX/VYRcuhggUab8Z3DIIFo1t0AiB13cdZBM71PJfCnYuxr6Vh5nbO+9lB9BGRqm2zkjZA4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":345200},"engines":{"node":">=16"},"gitHead":"726329068228f110075f039e302cf043f74efb32","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.2","nano-cache":"1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.1_1702829576733_0.49722667469179305","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.2","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.2","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"c5377474173660d947dbfee71d3e678dfcff5eef","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.2.tgz","fileCount":72,"integrity":"sha512-90XO6weOq/jF5dCZeX9sOYcw9tvDy7dZ1l+Y7LBVCUp9UGn99kvHAHTSeYytFsKlJZiLf/sQFLtXlEXL47jYhQ==","signatures":[{"sig":"MEUCIQDYKVYSz1paf7ha/g3Se/WOERlcig/wpLOKfv3VJ/RMxgIgGbvkLBJwyvQ6VtkzN0v5DL535C3g+oJo74VsJaFKTgo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":345712},"engines":{"node":">=16"},"gitHead":"7dddc634d0711ce324812b94ce5abea52f9b5022","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.2","nano-cache":"1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.2_1702835728168_0.5036442372625709","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.3","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.3","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"e5cddf730bb61add66555be6cc7e374a2fcef135","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.3.tgz","fileCount":72,"integrity":"sha512-ww0hu/nIHPwqZsbERhHxpg96RXIQozt2zFM++a+yZlIbQrvTQo4e9xo/mPICaYO0/0E21p+0ahpPqy0V1hHw4Q==","signatures":[{"sig":"MEUCIHcPXBpJDAx842MRWEkszXQTEOv5amn3K8De1BXIB8gBAiEA6bT4F/bZfJ3NhvQ8pZYSnGgOpgvdzZxY4kphbRdFSDg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":348657},"engines":{"node":">=16"},"gitHead":"164c03d8c09263b14891985f0421a0b4c533b8cc","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.2","nano-cache":"1.1.2","axios-retry":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.3_1702840234191_0.38383735532420804","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.4","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.4","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"63047aa8484848c5e6e2821c11329d42bc5d0dd7","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.4.tgz","fileCount":72,"integrity":"sha512-ZuTjj2rPZajwuuzOlbYsN60usaPrxjIERmOMrDlEA//8GElKSKJC6ZEl3Br9Ws7y2G2XRY4CYR+J0VLCJgeIZg==","signatures":[{"sig":"MEYCIQCqW17U555K78glK+zyczOqePkXEuTs6AsBTQ493lE9/AIhAKEOhFOk/P07z1BLeumnCDn2fgRdqj3/AlyTX1kvDjEF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":351839},"engines":{"node":">=16"},"gitHead":"dff286f4b024cc1ee37eab07a29ed1b50a457d83","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","nano-cache":"1.1.2","axios-retry":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.4_1702901322733_0.8315483409350968","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.5","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.5","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"21ce005de1ed0631c18da4348c5da464f9647a23","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.5.tgz","fileCount":72,"integrity":"sha512-L8zn9GEGa6MSAqtPV9Mkvgf03/UkTUv+Age2f4lrVLQGCWA/cBHLeHASYjrOVLJcyV79Su36Gv4V2r5TCJg7Dw==","signatures":[{"sig":"MEYCIQDiLY2+an3Z6jvNJOQZTJzWsxE+lwvlts0E+nuydD858wIhALCy1R7gA8MooZRXaR+A/mlcg9YTzNlqOG10jqOeut03","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":351658},"engines":{"node":">=16"},"gitHead":"cb4f502f2065b4bfc77c216cd9c07485b3fef696","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","nano-cache":"1.1.2","axios-retry":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.5_1702919626787_0.128506138697156","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.6","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.6","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"d4c0c57f57837d5cf0c77d960dfcbec705d3db03","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.6.tgz","fileCount":72,"integrity":"sha512-TQqOzGa5vWGA0sWj/RXLCgP+NbJD70ckCxDqaguDyVPN29KH/i3imJYqNavaqgQHUVEvKi5eePZOUBcuAW8R7A==","signatures":[{"sig":"MEQCIEXTztHEsMhZ2v5XenaaUQYzH29musukjh2aeQyod2H9AiAaIkeIT8Vwc5y2bUVx002vF95+ryonh1+w+KSKvPnRpQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":353851},"engines":{"node":">=16"},"gitHead":"c92f9970195a76952560d56a037f1f52c2820234","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.6_1702993757302_0.4114367142195201","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.7","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.7","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"65f7bbfc75fc47c78edd2af6e343100f711857e1","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.7.tgz","fileCount":72,"integrity":"sha512-Rp4BUWqOfp3+04Khwq/B8eDddPJBpUiIJWMWoGuy9RzB8L37NQ99W7wRhImAJmTRDsm/qyfnoCHRQF88Ehd1Cw==","signatures":[{"sig":"MEUCIFsYhyDNeg5+UgVKSpzfYm/AUf5wG7Hnp1DxZDQlTn2LAiEA3BRpne3lAvTIg1y+0DlQkoVoTmvx24DTxd1aUQ7m6dM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":353897},"engines":{"node":">=16"},"gitHead":"d9b0810b58d1dce1d96d8ed9d3eb401fac1de56e","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.7_1702995829931_0.2309417089494883","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.8","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.8","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"1096debd18cb924757c571b80846511cb0ec051a","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.8.tgz","fileCount":72,"integrity":"sha512-39Fi8O1xcUw9JGQqxsM47OaZr6cTO9W+DAF5G5PDYy5YhA4xVd7wqWlzriolG+bc6F6zP/AkXX90KLCed5YaRA==","signatures":[{"sig":"MEYCIQCFmZ8TeHGWXVsgYNjpeLgqdBELEumTYdxCPwpJLk0w9QIhAO8+Hl+nP+fDuyMY1s7Y8bDlK6FePvpSN23iNVWaAey7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":354811},"engines":{"node":">=16"},"gitHead":"ccc834c1b6a2e984ff6e43ad27dc36abe459dc4f","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.8_1702998023096_0.11791634124156936","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"node-red-contrib-alice-self-hosting","version":"0.0.9","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.0.9","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"fbff5008cd407906180a86edc62cedf5a139c64e","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.0.9.tgz","fileCount":74,"integrity":"sha512-2Kva34qgM0antLh4JFx2eJ+UO3oGgHUXZ+Rb1cHVxCAgxkuKnmJRJAfbgDQe6k1tonCvh87iDccuHjglH+nDkg==","signatures":[{"sig":"MEUCIDaoqDBFXvVYZdexD6+FUB14AjKAiL3LR6QOW//+fVnvAiEAve/3JTzf9QsuxKE6yXleB2H2kDgBxwaTglWcYqlo27o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":418523},"engines":{"node":">=16"},"gitHead":"f101d275704526bbe91b0774efbe4baa63743aa9","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.0.9_1703160017899_0.23742384849223241","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.0","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.0","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"6d6d6b8011146b36f7cc47cdd2471ded9a126df9","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.0.tgz","fileCount":83,"integrity":"sha512-6uTRx+YIo79d69FG1jVmdJ0TWApgSc5GHwnCbai1DW1GgLbvaBI6ZnnHr0tVPvaP5JWKDEudT0xe8FLDMimKeQ==","signatures":[{"sig":"MEQCIB8uwQTsR+GmfuOcvGiyR7yhhwf9adWdjGy9hGTEOpBeAiB+O6AaTyEenlq48O6F7XfHV/pYJYSQbScZInccXgDX/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":483238},"engines":{"node":">=16"},"gitHead":"26e1ffa23d3df2b4a29d0f74775434ab657915d8","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.0_1703680429483_0.9375433141597438","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.1","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.1","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"297b6ecba3d59c8986e83a2e15675be4d2382b6c","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.1.tgz","fileCount":83,"integrity":"sha512-fNBU6nLpA02VaKCBRNB1VOETT2xypxNgXqMSKFtKl71GGFtUW+HhPf07KKxrPybDl8EAuY/JpTYcBMnHU9pwMg==","signatures":[{"sig":"MEQCICs3/vJsQ4lR59anXTiq55gMZs9/R8kMrRHrAfLeEkwyAiBDzEFauZiUGAGxRe10TVVYPJv1trFIj7wVlUnfsXCfeQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":483235},"engines":{"node":">=16"},"gitHead":"ee1b74b73a5454a1278495dbc4cabfbf869f2f49","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.1_1704012008801_0.056332024251990465","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.2","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.2","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"855ad09b3a02b0b2951d6755ffad584fb1338837","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.2.tgz","fileCount":83,"integrity":"sha512-VYA2FyL5xXD4u+/ThhuKzvA0dwyfSz17Ju5ez44bKgoiDQlOu9aBz92LBr+22cwxBFSM8Te6p+SikTTDE6PBKg==","signatures":[{"sig":"MEUCIE4AlfKp1NUZiKhuv9kNq+XbwgcD+IjafYkoybM/yOIUAiEA23IQUxpArvmxmKfYKhlDQvxcBOLKJkON8bHx7a8nuvY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":485356},"engines":{"node":">=16"},"gitHead":"aa3c257f0dfa151360adaf3aa8bfe0b341bfd743","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.2","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.2_1704090292215_0.06605958155902192","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.3","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.3","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"215ce6ea15f6c592cc736b66c5a738345572726a","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.3.tgz","fileCount":83,"integrity":"sha512-NNtj5GBnzKsr//96qU8se93XFrSfFnEdb5qzTp5qCSDJYI6LvRYq523L2S+SuB/1tud6kMkaT9+1WWrZu38qKA==","signatures":[{"sig":"MEUCIQDMPcIjqGBPHtjOAwvlQTUhyQDWgZQFF8T8QePMX6ejZAIgHNOvKTMQrA2/lOVmJfWc4IQiUMV0RDOEjEB7xWl/Y/4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":488241},"engines":{"node":">=16"},"gitHead":"c317bb5585f22d9ecdfcaebed441999101c9b3f8","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.3","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.3_1704579881121_0.07901218020363499","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.4","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.4","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"2bd25b04583f7a235063c50b1debd995b4066610","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.4.tgz","fileCount":83,"integrity":"sha512-ic7AZamfMN3qd6RdVFKnrjG2sAIW42wVi3YYY3x6Y+I0WOAYvhy8lCs5rLVhMVAsEIDi0hBHiuylg7MEuXAteQ==","signatures":[{"sig":"MEUCIQDN5QdItb8HoOnOhYmAHS/Bd4IjAoKMAST6TVmLq4TJ1wIgZCtkOhVqa+1vW4kGeuvvNnuOvW4BoG1UeRUBCHhF7G4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":485983},"engines":{"node":">=16"},"gitHead":"46da2978b5a77e19ceae634134879f8ab1f96ec3","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.5","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.4_1705243062801_0.03075253080073237","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.5","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.5","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"57ecc004e420da8cfab29f9abf881a6db4cc5857","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.5.tgz","fileCount":83,"integrity":"sha512-mEoCaStCMXZH8bLuSsC+y7uN4D7u6mJoTCPYsGIamLyr0HIyrN9NjCQoYrq8j7vyA1wQJj4CMTjdMagy+V6j1Q==","signatures":[{"sig":"MEQCIBbczXKqMvAmV9Dr6aZMvNY0CXb0JuvoI3vnopT4OEnvAiAsjyoaNDxlZO2CALeCbkJrU1rISFsB6OnSBDH4wIpjFg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489672},"engines":{"node":">=16"},"gitHead":"eae93815496e61f0f8c93e67ec2172b82912dea5","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.18.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.7.0","dependencies":{"axios":"1.6.7","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.5_1706707608747_0.7739577986893831","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.6","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.6","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"e3d56848c416c7e63b1fb1ef49182a5d2452940b","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.6.tgz","fileCount":83,"integrity":"sha512-8M6v3gwjUatb7j7efdc9dGSoe58ww9mSlTKHzJRHBD3Dbeumc217cj9dBI9PpvlIwYpj1OBb8b4axE4+GTWN0w==","signatures":[{"sig":"MEUCIQDdtlz8Ck3CqVQ0XK7Lie6+WEQ1ATi+7v+ODG7IvDtyFwIgISVwrgpWvFtPMGDVAxeUrVR7AFB8hLoLBv9pkglLIi4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":489925},"engines":{"node":">=16"},"gitHead":"3053fc196c6010f9302bf491449e21d6b1a5d2a1","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.7","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.0.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.1","@typescript-eslint/eslint-plugin":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.6_1709970147211_0.35156781817801797","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.7","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.7","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"064166537432f9d05553bf949737d184832ccc08","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.7.tgz","fileCount":83,"integrity":"sha512-bBwRzDvRjfeoZU7MSEL/6Rg1VJR7d5QhWdbX5yaVHoug/Nmm12XzxA2+bHiRvnx+7ENMb2fSUVzHxae4XQmO4Q==","signatures":[{"sig":"MEQCIAYpWEEYnCdZbXNXrclt4VT2Vmo9dUf9uiFQyoJWHQMZAiALEjir66VnFfDacaMbJJiX2NjG/Ow6D9+/XFCVWbYNcA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490826},"engines":{"node":">=16"},"gitHead":"0853a602b0507c2c2e6d6379219fd04acf54612c","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.8","express":"4.18.2","nano-cache":"1.1.2","axios-retry":"4.1.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.1","@typescript-eslint/eslint-plugin":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.7_1711483559793_0.7433540463381918","host":"s3://npm-registry-packages"}},"0.1.8":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.8","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.8","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"aa3def0c8630bebf925c337bda444e1efb6eaea2","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.8.tgz","fileCount":83,"integrity":"sha512-YixOryx39Vyzm5uiGaGC2BGOZ9zFTR/2RLoEdQ+Vf5FcCg91upwixrxX7Mkbh/lXAWD9xtPUJPQMIkyYV2OgMQ==","signatures":[{"sig":"MEUCIQCoJp+5iWjFFCNiQwaqnVcSoO+0q9CbFN/PRBYsATLeDAIgTzXq3+NT09smpAFqHwd16MgSgXAYoQyksMXMv0ELNSM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490826},"engines":{"node":">=16"},"gitHead":"9f08a64fc9fff55ff0ad979835067f2d574a3bf8","scripts":{"build":"tsc","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","eslint":"eslint \"src/**/*.ts\"","prettier":"prettier --write \"**/*.{js,ts}\"","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.12.0","dependencies":{"axios":"1.6.8","express":"4.19.2","nano-cache":"1.1.2","axios-retry":"4.1.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.1","@typescript-eslint/eslint-plugin":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.8_1711694761407_0.9572808729150248","host":"s3://npm-registry-packages"}},"0.1.9":{"name":"node-red-contrib-alice-self-hosting","version":"0.1.9","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.1.9","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"c325331359442da27c7294b6062772b845d0293f","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.1.9.tgz","fileCount":83,"integrity":"sha512-HDtFzw1In3ZB+PxmcVUWcbt8TaXd2aiu1rKfHn+36vb3xbp/+t4smfxDJe6t6haNvy/VloGcn9VV6j1GTdATgg==","signatures":[{"sig":"MEYCIQDXBaqhmAfD8WgC1qxQ57eippVp5+g2YfWVBkKNoDLcZwIhAIyMKhkHi98w2fFCZHt78sM4UyeHxp9acyfIT6r8FLmS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":490796},"engines":{"node":">=16"},"gitHead":"6992aa40912b3771116255731391473ca2e034f1","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"9.5.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.15.0","dependencies":{"axios":"1.6.8","express":"4.19.2","nano-cache":"1.1.2","axios-retry":"4.1.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.31.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.0.1","@typescript-eslint/eslint-plugin":"^7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.1.9_1712513594837_0.043514586361887986","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.0","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.0","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"f79afbc1ef2a908f9f4de899d9b0210d5031ebee","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.0.tgz","fileCount":83,"integrity":"sha512-/r2vydn7QAfrFvjUtUxOFpHk6LURdQ9ufRuwtu2Wbl95cqIbQAYHbcpHnzUKReCEgKRTWPLt9IfVP3geuiod3Q==","signatures":[{"sig":"MEQCIE3sShQrtfnefamRc/fP1P4fvJj5HJfFXMJtUUI/6n9rAiBLUwQr4n1cl5VZk39zLd4PwyWNzhBzlY5a5HoAK15Jkg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":493629},"engines":{"node":">=16"},"gitHead":"fe61ae4db5bc55b0444d449788a07846eae4dba5","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.7.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"1.7.2","express":"4.19.2","nano-cache":"1.1.2","axios-retry":"4.3.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.10.0","@typescript-eslint/eslint-plugin":"^7.10.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.0_1716823711484_0.16372712244000853","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.1","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.1","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"e9c9a646882fb60e4d6fa920e5595642d0d1b989","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.1.tgz","fileCount":83,"integrity":"sha512-9d9Xpho+VbG3QoUql414/OQsLkN6Yc3maTAQaKamyn4o1kn26vjU8fle/ZLUpbfq8ThuI92I5FqxSJNule2R8w==","signatures":[{"sig":"MEUCIBZ2lFlaTkdOZjevUvK68iwsKLorv1F74Fz/QcEIrS2HAiEA0ZKGIuhJBMVBjb9Yqpcd4mMcfr+HAxbCaP84Ssvqhtc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":493771},"engines":{"node":">=16"},"gitHead":"0961f615f076d968c6b233fad6121b755d46ac33","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.7.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"1.7.2","express":"4.19.2","nano-cache":"1.1.2","axios-retry":"4.3.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^20.1.0","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^7.10.0","@typescript-eslint/eslint-plugin":"^7.10.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.1_1717334540938_0.6472122377239067","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.2","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.2","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"bde7b348e2f95942c5402fcee23656b01f618ddb","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.2.tgz","fileCount":83,"integrity":"sha512-spcoww0ZaJPNb8cxbZPYjXuVibgrihPVgq05lQjaXIHQ4Jz9A2hSALDtdZFuDp9V9bsrO5L0W1fmAOqHAMXL2g==","signatures":[{"sig":"MEUCIQDrDgLwdR6xFUeBHjZ8lNEydeqVrGTDFaYb65AZ2nCCdwIgRIYSex0UQ6MwItmjZuJwUskmcmTdyo4rhLBIiwk3zOg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":493970},"engines":{"node":">=16"},"gitHead":"ce4a9a6c376b4f74208d510d7626c6a4397604e7","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.7.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"1.7.4","express":"4.19.2","nano-cache":"1.1.2","axios-retry":"4.5.0","body-parser":"1.20.2","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^22.4.1","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^8.2.0","@typescript-eslint/eslint-plugin":"^8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.2_1724182788122_0.3388513252063108","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.3","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.3","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"d233c14db733985c984e1816c8c4d89c39688e57","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.3.tgz","fileCount":83,"integrity":"sha512-3gwbzksYRMRn054DT9ddNhwJUYwwDhIIy6bkJ3B8Oh8YTMxwlEst5gWVr9zzALz+arIluVUrV5/lIXRX70A2SA==","signatures":[{"sig":"MEQCID5uRqFDUVxYNOQIT+2bBcdRZcGTtWnHM5/ytakUafhQAiAcmD4aDUf9nVM8yxvI+PxtVhzZTPtTz/rOU9D2KdPUwQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":493316},"engines":{"node":">=16"},"gitHead":"ad014fded8ab5751f9b80864b2f54a1a3313e4d0","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.7.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"1.7.7","express":"4.21.1","nano-cache":"1.1.2","axios-retry":"4.5.0","body-parser":"1.20.3","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.12.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^22.4.1","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^8.2.0","@typescript-eslint/eslint-plugin":"^8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.3_1729016404464_0.07967312618560651","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.4","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.4","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"119f924012b066b3ae8a54f9d8aa6818c3b27dc6","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.4.tgz","fileCount":57,"integrity":"sha512-tK0shA5YsZZ/TyfDQ+JWvRVoAx2P5Wq5asYcAZ5S526+82xUE8aI+GZzgh++ruEiWrvXewlN1rL+1oBM9dFdjg==","signatures":[{"sig":"MEUCIHpTX47/CQ/KJUB+PrWZlKZ5b9npZyrPQkJc5rt5R153AiEAmtIulEHjmiKEmC3ifE8o1jjq+zaM1KK6M/xi5+y3bw4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":235381},"engines":{"node":">=16"},"gitHead":"888b8f93a83ef4a592083dc00e6a512dd7df9851","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf tsconfig.tsbuildinfo build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.7.0","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"18.20.3","dependencies":{"axios":"1.7.9","express":"4.21.2","nano-cache":"1.1.2","axios-retry":"4.5.0","body-parser":"1.20.3","morgan-body":"2.6.9"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.17.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^22.4.1","@types/node-red":"^1.2.1","@types/nano-cache":"^1.1.4","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^8.2.0","@typescript-eslint/eslint-plugin":"^8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.4_1736397441497_0.0390646668757455","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.5","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.5","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"faf439f963029d9a7a83d77805699da4087b7b64","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.5.tgz","fileCount":57,"integrity":"sha512-GT7md/BHp+gm/URGfdYt4qWzDMCxFshIGTuXkbGi3kcUIuTtT8NysRdet0uTyJo8IcDMo8CMxs8c9ygA+UgT8g==","signatures":[{"sig":"MEUCIGPo8s+hWqhARK5Q0yIkxH75mAGbumwHKXYs97qypEqmAiEAt+3VILDiovVOIjjz8Axv05150kWka21gsjI5CA5QaG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238903},"engines":{"node":">=16"},"gitHead":"942f5d0b701a4cf372043e233463052e7cdfe91b","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf tsconfig.tsbuildinfo build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.9.2","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axios":"1.8.4","express":"4.21.2","lru-cache":"^11.1.0","axios-retry":"4.5.0","body-parser":"2.2.0","morgan-body":"2.6.9","@nrchkb/logger":"^3.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.23.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^22.4.1","@types/node-red":"^1.2.1","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^10.0.1","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^8.2.0","@typescript-eslint/eslint-plugin":"^8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.5_1743624377526_0.7047048991336164","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.6","keywords":["node-red","yandex","alice","iot","self","hosting"],"author":{"name":"D"},"license":"MIT","_id":"node-red-contrib-alice-self-hosting@0.2.6","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"dist":{"shasum":"78aa5321dd6ac173c9bee3f839c6b03c76066838","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.6.tgz","fileCount":57,"integrity":"sha512-uJciX9lu9whRZH856rokmGv1AR9XueIdLbSLUDRhQRQ3e20FSlT50F+EBN+w0DziuI08xcoSjccW18NFKZFTGg==","signatures":[{"sig":"MEUCIQCePwIGs8q1KTBItgb/75HsaB/Xz+Q32igr7PTLfZ6+lQIgLiK3UuFlTUOf0E2eQLhWX37UMB8uar9+QjR328JrGyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238745},"engines":{"node":">=16"},"gitHead":"b504533ddddec650bb199a77c2530adf7b263a4f","scripts":{"lint":"eslint \"src/**/*.ts\"","build":"npx tsc --build","clean":"rm -rf tsconfig.tsbuildinfo build/**/*.js build/**/*.js.map build/**/*.d.ts","lint:fix":"npm run lint -- --fix","build:clean":"npm run clean && npm run build"},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"node-red":{"nodes":{"mode":"build/nodes/mode.js","color":"build/nodes/color.js","event":"build/nodes/event.js","onoff":"build/nodes/onoff.js","range":"build/nodes/range.js","video":"build/nodes/video.js","device":"build/nodes/device.js","sensor":"build/nodes/sensor.js","toggle":"build/nodes/toggle.js","service":"build/nodes/service.js"},"version":">=2.2.0"},"repository":{"url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git","type":"git"},"_npmVersion":"10.9.2","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","directories":{},"_nodeVersion":"22.14.0","dependencies":{"axios":"1.8.4","express":"4.21.2","lru-cache":"^11.1.0","axios-retry":"4.5.0","body-parser":"2.2.0","morgan-body":"2.6.9","@nrchkb/logger":"^3.1.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.23.0","prettier":"^3.0.0","typescript":"^5.0.2","@types/node":"^22.4.1","@types/node-red":"^1.2.1","eslint-plugin-node":"^11.1.0","eslint-config-prettier":"^10.0.1","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^8.2.0","@typescript-eslint/eslint-plugin":"^8.1.0"},"_npmOperationalInternal":{"tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.6_1743625451497_0.13384386030460393","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"node-red-contrib-alice-self-hosting","version":"0.2.7","description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","license":"MIT","repository":{"type":"git","url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git"},"bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"author":{"name":"D"},"scripts":{"build":"npx tsc --build","build:clean":"npm run clean && npm run build","clean":"rm -rf tsconfig.tsbuildinfo build/**/*.js build/**/*.js.map build/**/*.d.ts","lint":"eslint \"src/**/*.ts\"","lint:fix":"npm run lint -- --fix"},"node-red":{"version":">=4.0.0","nodes":{"service":"build/nodes/service.js","device":"build/nodes/device.js","onoff":"build/nodes/onoff.js","toggle":"build/nodes/toggle.js","range":"build/nodes/range.js","color":"build/nodes/color.js","mode":"build/nodes/mode.js","sensor":"build/nodes/sensor.js","event":"build/nodes/event.js","video":"build/nodes/video.js"}},"dependencies":{"@nrchkb/logger":"^3.1.1","axios":"1.20.0","axios-retry":"4.5.0","body-parser":"2.3.0","express":"4.21.2","lru-cache":"^11.1.0","morgan-body":"2.6.9"},"devDependencies":{"@types/node":"26.1.0","@types/node-red":"^1.3.5","@typescript-eslint/eslint-plugin":"7.18.0","@typescript-eslint/parser":"7.18.0","eslint":"8.56.0","eslint-config-prettier":"9.1.2","eslint-plugin-prettier":"5.5.6","eslint-plugin-node":"^11.1.0","prettier":"^3.0.0","typescript":"5.9.3"},"engines":{"node":">=18.5"},"keywords":["node-red","yandex","alice","iot","self","hosting"],"_id":"node-red-contrib-alice-self-hosting@0.2.7","gitHead":"a18e7a9d778e4523070b750e0ec8b4fd17cf0adb","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-6jGkTmJdl9PlJP9ennca81vHDuZgC2CD9swHEpVA+fbs15dOUp5HQ0kRMCR/Q8JsGAhKMXoq+A26Qo/W5rt2wg==","shasum":"fca9e1713f9f568ea3e174971007a47f5820b45b","tarball":"https://registry.npmjs.org/node-red-contrib-alice-self-hosting/-/node-red-contrib-alice-self-hosting-0.2.7.tgz","fileCount":57,"unpackedSize":239156,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCXuL0aChl0zmuQC1ULoOikCT/nwGtJTxynX3badKRmugIhAIlsNoO6iUEY8jPjsg74lgn98o9SLCDjvAYQ71B/D/Wl"}]},"_npmUser":{"name":"2colors","email":"dmitry@yashin.su"},"directories":{},"maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-red-contrib-alice-self-hosting_0.2.7_1788088061010_0.4939517620959937"},"_hasShrinkwrap":false}},"time":{"created":"2023-12-17T16:12:56.732Z","modified":"2026-08-30T11:07:41.280Z","0.0.1":"2023-12-17T16:12:57.000Z","0.0.2":"2023-12-17T17:55:28.490Z","0.0.3":"2023-12-17T19:10:34.459Z","0.0.4":"2023-12-18T12:08:43.063Z","0.0.5":"2023-12-18T17:13:47.115Z","0.0.6":"2023-12-19T13:49:17.536Z","0.0.7":"2023-12-19T14:23:50.247Z","0.0.8":"2023-12-19T15:00:23.343Z","0.0.9":"2023-12-21T12:00:18.159Z","0.1.0":"2023-12-27T12:33:49.736Z","0.1.1":"2023-12-31T08:40:08.998Z","0.1.2":"2024-01-01T06:24:52.454Z","0.1.3":"2024-01-06T22:24:41.348Z","0.1.4":"2024-01-14T14:37:43.004Z","0.1.5":"2024-01-31T13:26:48.974Z","0.1.6":"2024-03-09T07:42:27.427Z","0.1.7":"2024-03-26T20:06:00.141Z","0.1.8":"2024-03-29T06:46:01.637Z","0.1.9":"2024-04-07T18:13:15.060Z","0.2.0":"2024-05-27T15:28:31.698Z","0.2.1":"2024-06-02T13:22:21.086Z","0.2.2":"2024-08-20T19:39:48.379Z","0.2.3":"2024-10-15T18:20:04.720Z","0.2.4":"2025-01-09T04:37:21.686Z","0.2.5":"2025-04-02T20:06:17.749Z","0.2.6":"2025-04-02T20:24:11.749Z","0.2.7":"2026-08-30T11:07:41.138Z"},"bugs":{"url":"https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues"},"author":{"name":"D"},"license":"MIT","homepage":"https://github.com/twocolors/node-red-contrib-alice-self-hosting","keywords":["node-red","yandex","alice","iot","self","hosting"],"repository":{"type":"git","url":"git+https://github.com/twocolors/node-red-contrib-alice-self-hosting.git"},"description":"Node-RED nodes to Yandex Alice devices in Self-Hosting","maintainers":[{"name":"2colors","email":"dmitry@yashin.su"}],"readme":"# node-red-contrib-alice-self-hosting\n\n[![platform](https://img.shields.io/badge/platform-Node--RED-red?logo=nodered)](https://flows.nodered.org/node/node-red-contrib-alice-self-hosting)\n[![Min Node Version](https://img.shields.io/node/v/node-red-contrib-alice-self-hosting.svg)](https://nodejs.org/en/)\n[![GitHub version](https://img.shields.io/github/package-json/v/twocolors/node-red-contrib-alice-self-hosting?logo=npm)](https://www.npmjs.com/package/node-red-contrib-alice-self-hosting)\n[![GitHub stars](https://img.shields.io/github/stars/twocolors/node-red-contrib-alice-self-hosting)](https://github.com/twocolors/node-red-contrib-alice-self-hosting/stargazers)\n[![Package Quality](https://packagequality.com/shield/node-red-contrib-alice-self-hosting.svg)](https://packagequality.com/#?package=node-red-contrib-alice-self-hosting)\n\n[![issues](https://img.shields.io/github/issues/twocolors/node-red-contrib-alice-self-hosting?logo=github)](https://github.com/twocolors/node-red-contrib-alice-self-hosting/issues)\n![GitHub last commit](https://img.shields.io/github/last-commit/twocolors/node-red-contrib-alice-self-hosting)\n![NPM Total Downloads](https://img.shields.io/npm/dt/node-red-contrib-alice-self-hosting.svg)\n![NPM Downloads per month](https://img.shields.io/npm/dm/node-red-contrib-alice-self-hosting)\n![Repo size](https://img.shields.io/github/repo-size/twocolors/node-red-contrib-alice-self-hosting)\n\n## 💡💬\nОбсудить и общаться в душной обстановке можно тут [https://t.me/alice_in_red_wonderland](https://t.me/alice_in_red_wonderland)\n\n## Предупреждение\n\n**!!! ВНИМАНИЕ !!!**\n\nПроект в ранней альфа-стадии! Возможны существенные изменения функционала при выходе новых версий, которые всё сломают. Внимательно читайте описания к новым версиям!\n\n**Требуется помощь в написании документации.**\n\nПроект представляет набор нод (узлов) Node-RED для работы с Алисой от Яндекса без сторонних сервисов, напрямую с домашнего сервера. С требованиями можно ознакомиться [здесь](#требования).\n\n<img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/node-demo.png\">\n\n## Благодарности\n\nЭто большой copy-paste из двух замечательный проектов [node-red-contrib-alice](https://github.com/efa2000/node-red-contrib-alice) и [yandex2mqtt](https://github.com/lasthead0/yandex2mqtt).\n\nСпасибо им за идею и реализацию.\n\n## Принцип работы\n\nКроме нод для работы с Алисой, релизованных в других замечательных проектах, node-red-contrib-alice-self-hosting средствами самого Node-RED создает веб-сервер для авторизации и обработки команд.\n\nВ итоге для работы не требуется ничего кроме самого Node-RED и работоспособность не зависит ни от каких сторонных сервисов — только Яндекса и домашнего сервера, что также весьма положительно влияет на скорость работы.\n\n# Безопасность\n\n> The 'S' in IoT stands for Security\n\nНода **должна** быть спрятана за правильно настроенными сервисами типа nginx, traefik, caddy, ngrok, localtunnel, cloudflare и т.п., в противном случае любой может **получить полный доступ** к Node-RED. В случае, если доступ снаружи предоставлен ко всему Node-RED, необходимо добавить [авторизацию](https://nodered.org/docs/user-guide/runtime/securing-node-red#usernamepassword-based-authentication).\n\nСуществуют ноды для [ngrok](https://flows.nodered.org/node/node-red-contrib-ngrok) (версия на 21.12.2023 нода банит аккаунт, ждем решения (подробнее тут [issues/30](https://github.com/sammachin/node-red-contrib-ngrok/issues/30)) и [localtunnel](https://flows.nodered.org/node/node-red-contrib-localtunnel), которые позволяют получить доступ к установке Node-RED из интернета без проброса портов на роутере и установки дополнительного ПО. Самое простое решение — ngrok, так как помимо прочего даже в бесплатной версии позволяет автоматизировать получение TLS сертификата.\n\n# Требования\n\nДля работы требуется несколько обязательных условий:\n\n## Белый IP-адрес\n\nЕсли ваш роутер говорит что провайдер дал адрес из [этого диапазона](https://ru.wikipedia.org/wiki/Частный_IP-адрес) — он не белый.\n\nЯндекс требует постоянного доступа к машине с Node-RED из внешнего интернета и сделать с этим ничего нельзя.\n\n## Постоянный IP-адрес или собственный домен\n\nДомен может быть бесплатным и любым, например от [Duck DNS](https://www.duckdns.org) или любых других сервисов.\n\nЯндекс требует указать URL для ноды и если указать свой динамический IP, то после каждого переподключения к провайдеру потребуется заново настраивать навык Алисы.\n\n## Валидный TLS сертификат\n\nКоторый настроен для использования с Node-RED или обратным прокси-сервером. Бесплатный всегда можно получить у [LetsEncrypt](https://letsencrypt.org). Яндекс не позволяет использовать самоподписанные сертификаты.\n\n## Открытый порт и маршрут\n\nПри домашнем использовании необходимо на роутере открыть порт и создать маршрут до сервера с Node-RED (Эта манипуляция известна как *проброс порта*).\n\nБез этого Яндекс никак не сможет получить доступ к Node-RED.\n\n## Альтернативы\n\nСуществует несколько сервисов которые позволяют опубликовать в интернете локальное веб-приложение, но такие решения имеют существенные недостатки в увеличении времени отклика Алисы из-за того, что данные передаются через сторонний сервер (минимум плюс 30-200 мсек), а также возникает зависимость от стабильности работы выбранного сервиса.\n\n* [Ngrok](https://ngrok.com/) - самый популярный, это хорошее в своей простоте решение, так как снимает **все** вышеуказанные требования к белому IP-адресу, домену, настройке роутера и TLS-сертификата, существенно увеличивает безопасность.\n* [KeenDNS](https://help.keenetic.com/hc/ru/articles/360000400919-Сервис-доменных-имен-KeenDNS) - если у вас есть роутер Keenetic, но нет статического IP адреса, то сервис KeenDNS поможет вам получить удаленный доступ к вашему устройству. С его помощью вы можете легко включить поддержку DDNS прямо на вашем роутере. KeenDNS бесплатный и обеспечивает защищенное SSL соединение. Даже если ваш IP адрес не входит в «белый список», вы все равно сможете настроить KeenDNS без проблем. [Пример удаленного доступа к веб-приложениям домашней сети через KeenDNS](https://help.keenetic.com/hc/ru/articles/360000563719-Пример-удаленного-доступа-к-веб-приложениям-домашней-сети-через-KeenDNS)\n\n# Установка\n\n## Установка ноды\n\nОбычная установка из палитры Node-RED. После установки перезапуск **обязателен**, как и после любого обновления.\n\n<img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/node-install.png\">\n\n## Настройка доступа для Яндекса\n\nЭто самое сложное в настройке и индивидуально для каждого пользователя.\n\nКонцепция такова:\n\n- домен `mydomain.ru` резолвит адрес домашнего роутера\n\n- роутер настроен на т.н. пробрасывание порта (TCP) до машины с установленным Node-RED\n\n    - настоятельнейше рекомендуется использовать обратный прокси-сервер (самый простой — Nginx Proxy Manager), при этом открыть доступ не к всему Node-RED, а только до определенного пути в нём — **WebHook URL** (см. ниже)\n\n    - если используется авторизация (белые списки и т.п.), она должна быть отключена до **WebHook URL**, этот адрес **и те, что глубже него** должны быть полностью открыты. Например `https://mydomain.ru/0123abcdef/webhook` и все что дальше — `https://mydomain.ru/0123abcdef/webhook/anything/absulutely/completely/any/url`. Всё что выше: `https://mydomain.ru/0123abcdef/` или `https://mydomain.ru/` должно быть закрыто, это прямой доступ к админке Node-RED для любого пользователя интернета\n\n- Node-RED создает **WebHook URL**, через который и происходит общение с Алисой\n\n- возможно использование ngrock, localtunnel или аналогичного сервиса. Стоит отметить что указанный способ *позволит избежать обязательного требования белого IP-адреса*.\n\n## Использование туннеля (сторонние сервисы)\n\n### ngrok\n\nСпециально для node-red-contrib-alice-self-hosting создан [ngrok flow для Node-RED](https://github.com/twocolors/node-red-contrib-alice-self-hosting/blob/master/examples/ngrock-flow.json). Не требует внешней установки пакетов и достаточно стабильно работает.\n\n<img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/ngrok-flow.png\">\n\nТребует регистрации бесплатного аккаунта в сервисе [ngrok](https://dashboard.ngrok.com/), создания [постоянного домена](https://dashboard.ngrok.com/cloud-edge/domains) и [токена](https://dashboard.ngrok.com/get-started/your-authtoken). Так как в бесплатной версии доступны только один домен и один токен, рекомендуется зарегистрировать новый аккаунт ngrok для этой ноды.\n\nВся настройка сводится к указанию данных в ноде (кубике) `ngrok`: необходимо заполнить `authtoken`, `addr` и `domain`\n\n```\n\n// token from ngrok https://dashboard.ngrok.com/get-started/your-authtoken\nconst authtoken = \"YOUR_TOKEN_HERE\";\n// server and port ('localhost:1880' or '1880')\nconst addr = \"1880\";\n// static domain https://dashboard.ngrok.com/cloud-edge/domains\nconst domain = \"YOUR_NGROK_DOMAIN_HERE.ngrok-free.app\";\n\n```\n\nПосле этого сделать deploy и отправить \"Start tunnel\". **Внимание! Сразу после этого любой может получить доступ к Node-RED**, поэтому стоит озаботиться [настройкой авторизации](https://nodered.org/docs/user-guide/runtime/securing-node-red#usernamepassword-based-authentication) заранее.\n\nНеобходимый для Яндекса **Endpoint URL** будет выглядеть как `https://YOUR_NGROK_DOMAIN_HERE.ngrok-free.app/abcd000000/webhook` (комбинация из домена ngrok и **WebHook URL** из настроек ноды). Так как выше мы указали порт Node-RED (1880), указывать его в **Endpoint URL** не требуется, ngrok пробрасывает его из 1880 в 443.\n\n## Примеры настройки reverse proxy\n\nПримеры настройки обратного прокси-сервера. Адрес сервера Node-RED `192.168.0.2`, порт `1880`, домен `alice.mydomain.ru` указывает на внешний IP-адрес (роутера), на роутере проброшен порт 443 (https) до сервера с traefik (во всех примерах он установлен на том же сервере `192.168.0.2`).\n\nПодразумевается, что уже получен TLS сертификат для домена от letsencrypt или аналогичного сервиса (в примере используется wildcard сертификат для всех поддоменов `*.example.ru`, в реальных условиях и при использовании [DDNS](https://ru.wikipedia.org/wiki/Динамический_DNS) можно использовать любой домен, например `ursecretdomain.duckdns.org`). Почти все современные обратные прокси-серверы позволяют существенно упростить этот процесс и автоматически продлевать бесплатные сертификаты.\n\n### Traefik\n\nВ этом примере соблюдены требования безопасности — доступен только Webhook URL, Node-RED закрыт от доступа снаружи.\n\n<details>\n  <summary>Настройка для Traefik в файле конфигурации</summary>\n\n```\nhttp:\n  routers:\n    nodered-alice:\n      entrypoints:\n        - websecure\n      rule: Host(`alice.mydomain.ru`) && PathPrefix(`/0123abcdef/webhook`)\n      service: nodered-alice\n      tls: true\n\nservices:\n    nodered-alice:\n      loadBalancer:\n        servers:\n        - url: \"http://192.168.0.2:1880\"\n```\n\n</details>\n\n<details>\n  <summary>Настройка для Traefik через labels в docker compose</summary>\n\n```\nlabels:\n      - \"traefik.enable=true\"\n      - \"traefik.http.routers.nodered-alice.rule=Host(`alice.mydomain.ru`) && PathPrefix(`/0123abcdef/webhook`)\"\n      - \"traefik.http.routers.nodered-alice.entrypoints=websecure\"\n      - \"traefik.http.routers.nodered-alice.tls.certResolver=letsencrypt\"\n      - \"traefik.http.services.nodered-alice.loadbalancer.server.port=1880\"\n```\n\n</details>\n\n### Nginx proxy manager\n\n[Nginx proxy manager](https://nginxproxymanager.com) — самый простой и дружелюбный из всех обратных прокси и не требует работы в консоли, все настройки осуществляются через веб-интерфейс.\n\n<details>\n  <summary>Пример настройки</summary>\n\n<img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/npm-new-proxy.png\" width=40% align=top> <img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/npm-ssl.png\" width=40% align=top>\n\nВнимание! Эти настройки **не ограничивают доступ к Node-RED**! Любой пользователь может получить полный доступ к панели управления по адресу `https://alice.mydomain.ru`.\n\n</details>\n\n\n### Caddy\n\n**TBD**\n\n## Получение WebHook URL\n\nПосле перезапуска перетаскиваем любую ноду на сетку и в свойствах нового узла (Credentials) запоминаем адрес (**WebHook URL**) из примечания (вида `http://192.168.0.2:1880/0123abcdef/webhook`). Это тот самый адрес который должен быть доступен из интернета для Яндекса.\n\nДля большей гибкости и в случае отсутствия reverse proxy **настоятельно рекомендуется** изменить порт на отличный от стандартного порта Node-RED (1880). Часть URL вида `0123abcdef` генерируется случайно для каждого пользователя, её тоже можно изменить если в одной инсталяции Node-RED используется несколько аккаунтов Яндекса (например несколько \"домов\").\n\nРеализация OAuth использует сервис [Яндекс](https://oauth.yandex.ru) подробнее на [Хабре](https://habr.com/ru/amp/publications/710366/)\n\n## Создание OAuth\n\n- [Здесь](https://oauth.yandex.ru) создаем новое приложение.\n\n    - *Для каких платформ нужно приложение* — Веб-сервисы\n\n    - *Доступ к данным* — что угодно, можно оставить только \"Доступ к портрету пользователя\"\n\n    - *Redirect URI* — `https://social.yandex.net/broker/redirect`\n\n    - *Почта для связи* — почта для связи\n\n- Сохраняем **ClientID** и **Client secret**\n\n<img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/oauth.png\">\n\n\n- Создаем **Приватный** диалог на [Яндекс](https://dialogs.yandex.ru)\n\n    - *Тип диалога* — Умный дом\n\n    - *Название* — любое\n\n    - *Backend* — *Endpoint URL* — адрес из ноды (**WebHook URL**)\n\n    - *Тип доступа* — Приватный\n\n    - Остальные поля со звездочкой — на свой вкус\n\n    - В разделе *Связка аккаунтов*\n\n        - *Идентификатор приложения* — ранее полученный **ClientID**\n\n        - *Секрет приложения* — ранее полученный **Client secret**\n\n        - *URL авторизации* — `https://oauth.yandex.ru/authorize`\n\n        - *URL для получения токена* — `https://oauth.yandex.ru/token`\n\n        - *URL для обновления токена* — `https://oauth.yandex.ru/token`\n\n<img src=\"https://github.com/twocolors/node-red-contrib-alice-self-hosting/raw/master/readme/dialogs.png\">\n\n## Настройки ноды\n\n**TBD**\n\n# Настройка сети\n\nСервер с Node-RED или с reverse proxy должны быть доступны из интернета.\n\n**TBD**\n\n## OpenWRT\n\n**TBD**\n\n## Keenetic\n\nНастройки — Сетевые правила — Переадресация — Правила переадресации портов — Добавить правило\n\nВыход: *Выбрать из списка устройств сервер с Node-RED или reverse proxy*\n\nОткрыть порт: *Порт, к которому будет открыт доступ извне, рекомендуется использовать случайный из диапазона 40000-50000, но можно использовать и стандартный 443 (https)*\n\nПорт назначения: *Порт Node-RED (1880) или порт, который слушает reverse proxy*\n\n## TP-Link\n\n**TBD**\n\n# Использование\n\n## Создание устройства\n\n**TBD**\n\n<details>\n  <summary>Примеры</summary>\n\n## Примеры\n\n### on_off\n\n### toggle\n\n### range\n\n### color\n\n### mode\n\n### sensor\n\n</details>\n","readmeFilename":"README.md"}