{"_id":"windsor-bot","_rev":"30-953d19a9a315ca9ec3b6244f1aabea3f","name":"windsor-bot","dist-tags":{"latest":"0.2.14"},"versions":{"0.1.0":{"name":"windsor-bot","version":"0.1.0","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.0","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"ed245043cda717d085b9b8769c1804943ef3c4aa","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.0.tgz","fileCount":226,"integrity":"sha512-sPielL/WKmXr39k4uecWr9fvW9m0CniqPrxkXqdpqBnaKMmIO7PE0P+NT49rENv4k0eWSfUz/wfCJ/ZFi2hJAg==","signatures":[{"sig":"MEUCIGXiEhcHrmaZH5RX6cv1itAfgVTc/+WElHBm5CLrQ4QFAiEAwgQdc4pmz2GuuwQu5SVUb5MGh6jlwFoNYdyyB6bA/Cg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363752},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"47bf301b8af24f7a31e729dada4d16b7d6223e17","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc","prepare":"tsc"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.0_1785826524750_0.49989978530154455","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"windsor-bot","version":"0.1.1","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.1","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"d6d9a1b80a51d16fcae72c419993483b8edf8046","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.1.tgz","fileCount":228,"integrity":"sha512-MJFKRdC8DlHp2yAKs3twcFQaBM+qUeU5AswDtL58NXccAdg1RiDNSXcJ59otEDtQCjSLEgbwgOWtgpjSBJZMow==","signatures":[{"sig":"MEUCIEz8R3bB0H+M4W0vXEKp89mJ/TvvSvnC7+mv2vyqHx7dAiEA3eCu0L024RnSleITvSKDssRGaWyR2WtgShIea+5dOz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630583},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"869d8c4fa44d228dc37e4fe44794230d0965253b","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.1_1785826940790_0.6504538790440113","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"windsor-bot","version":"0.1.2","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.2","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"5612360201a2cefa47f017ec33bbf433cc0517cd","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.2.tgz","fileCount":228,"integrity":"sha512-9ZQXc8GAVq/2B1W+1YCkVF3e//FXWnj0m12y706vcWzUh2S7V7oZAMxE8zfMOk1h+0Iy9OpJHCzhw1MMCfoKQw==","signatures":[{"sig":"MEUCIQDXjzuXIZAIg9h2PCVZnmmcWaXamIJM198IOGIh3UEvlgIgP0FZw+atOQO5hmX3BFPlm38jOzjMvyxdLJzqCOSWQws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":630833},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"5c202cd23721f28b7dd46c9a627d695500273d33","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.2_1785827306303_0.9729543102599139","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"windsor-bot","version":"0.1.3","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.3","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"99380f3f206923f198404287b347cc40fb89b572","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.3.tgz","fileCount":202,"integrity":"sha512-hU40JoMSsar9oqpFWOzADB4luM9DobUtJw83MbqZmkikKzYjb43/6uPDYm6XlQ93CiG6rgFSuIt3M/lr/zulHg==","signatures":[{"sig":"MEUCIQCGNorlYiXuU2bLyEeVw1e/ma5FdazhLgmS3ROrYW5bgAIgV8ecf+QRB6X9HMB/7sn+1h/uu1TusGSmedB4wVuBETA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487747},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"08e88dce218100696c0116f951e900fb6c14868b","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.3_1785827440309_0.10578633572616658","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"windsor-bot","version":"0.1.4","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.4","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"a7b2e1acec771de783d73684d4a07254b3d612df","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.4.tgz","fileCount":202,"integrity":"sha512-T/1eFCFaY8rT6EKCyZ6LaBVSyvb6OwVK7zd/m9WQXEuVa+4RK1OhBffmACPEqESjYK+lu8t8+EIzg6t3/PW4Hw==","signatures":[{"sig":"MEQCIDYILMIgzz4J+TatOZv5Kq/qifK0uCbSHFssnaagn1OfAiBdGnaP7QZa+S1z6R0Wp1bcrd7zcmdUhl1BmGJupT+dWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487745},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"828810f1353cd829ad8c02c9ea59f97e1de9a6c4","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.4_1785827464613_0.14739190036930383","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"windsor-bot","version":"0.1.5","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.5","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"cab8bd09b948b1d5fa094d7607186259b47c44e1","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.5.tgz","fileCount":202,"integrity":"sha512-ox/KJLuurikhpGD/J1K67mSqpwSIB4DAd8gxEZvOm1Uh8ebXY5tLZFElh3/h+JpD4/NkrFx/hKD4VH1s5qgeBg==","signatures":[{"sig":"MEUCIFqMClf+y1dhQ/izkO/z2AdW3gkPI0OXqTHD4h0uZPqZAiEAjZPTuGeFeHHEOaGdHSb8/epSO8mbEyBG1xfjV5FK6IU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487745},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"f73ee487d91ca213746fd06afe62d43923e1badb","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.5_1785827549191_0.7547760660900302","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"windsor-bot","version":"0.1.6","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.6","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"f139f61fe55b5ffcb5941b8181871539e8ec3087","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.6.tgz","fileCount":202,"integrity":"sha512-5IQOOh2NHC/RRpmcCMJFMwUN/jXdgtjIbuLnSEhIbN0tM65hP7yjb/MzIG+woulVjS6rom+p2W6GBMzfnyz7VA==","signatures":[{"sig":"MEUCIBpxkM4wyS6ZVTfvFMXFr7lmFLgR+/VOCpFA47gfSRiqAiEAmWhfD8sWVkmwYNQyCeGoFziMK69zt76uAYNIuW24ZP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488495},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"e24459b94acd67417e6cbeedfeee52b0707e0154","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.6_1785827847242_0.9089229308245479","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"windsor-bot","version":"0.1.7","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.7","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"539dd1f08e52767d849a630cbad241e16d02a4fe","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.7.tgz","fileCount":206,"integrity":"sha512-3ZyFNQk3LvVCT4zHGFrxSdIsRwMsDSxLvE3Ui2g7RXhvUmUNKQqo5WinpHl/bdh4o8bsChBgDs5rKN/OcA8Uzg==","signatures":[{"sig":"MEQCIAGwS9nBdKYuxferWyEua8dCbY6BE7AXye/MvBsxq1tQAiB/Howq6XuKcc9CJfsNBZKjURH/UG7JyzU8wm18XWQBtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":654077},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"cb6737c998feb9f4b4680cb1e8ddacf9fd8a5c98","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.7_1785828714935_0.4300986620324816","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"windsor-bot","version":"0.1.8","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.8","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"5f5af20a8bbbef57169739ffcd68053a0fb4577e","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.8.tgz","fileCount":217,"integrity":"sha512-ZaKT33vXG5jWhjR0WQAiKScV7Q4XeH3uygZh7yj6xnmOV/UNGeelJNPtgQi2pt8d4wlVunYMgPmGtzHqwymNUg==","signatures":[{"sig":"MEUCIQC/APVH0SaRPIZW31R1QNRCRzq6EJI0fkWqzfIMLr7nFwIgGBnD730agL/LxCy4sY+ahbl3sUDzSCbK2FeiP2tVklw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780151},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"70cd8e4e08f3c794002117d7cdeabdc1f6e885d3","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","prepare":"npm run build","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.8_1785871577787_0.9711452477489548","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"windsor-bot","version":"0.1.10","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.10","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"6635be815b0643e038a635d3c2aeb9df7b6b5672","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.10.tgz","fileCount":191,"integrity":"sha512-ueC0OXv9bTjJXWjbRM7u7nkY9Hwp2SsQLx9TSm8ozywdD4EUPEoHkKabzt4mi6h5qjTa/ysN0obicZXoywpzwA==","signatures":[{"sig":"MEUCIG4IeTcjVHmWmph71OHp9pCY2P1EpG6W7lXMeCfO0kkMAiEA8HpgyM8pXZ1yG8h4rb7uAl3HxD0Gwfb8gGNmnScNj+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":752891},"main":"dist/index.js","type":"module","gitHead":"c38b132003442296d379989d049c7b7a446aa296","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.10_1786144097537_0.8861195055678948","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"windsor-bot","version":"0.1.11","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.11","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"473dafde104a21040c36460d014a9c266892f307","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.11.tgz","fileCount":191,"integrity":"sha512-OhEbqJKupQ5WvOLogScFIRoGc2Hf2+hZD9mc994SYJyOoEX1I2xHwyticEy9r/W0Jke3iW5yICTJpRc7BOi9fw==","signatures":[{"sig":"MEQCIH4lALr9DlZGhSU7D2wq9A67y+7/bKXpZv20ZXT36Qx5AiBwQVnpVk9xksv3k2KrHSCkIxvrKWGmS/4cVWeBzBTNrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":753010},"main":"dist/index.js","type":"module","gitHead":"21be87aa8a9621974cba2afee4bdf4d17d96a8ce","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.11_1786144914909_0.3933056003559916","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"windsor-bot","version":"0.1.12","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.12","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"72bae11648563b145b62fdde9b0fced753850a57","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.12.tgz","fileCount":191,"integrity":"sha512-gcBnsr6+BjULuVwDO0x8DVRUvj2cD+fCIEzd8X+eRJ7xBh+XpGbtjLVuRbxmf8Ky52nRzhb44hwQoOibPXYJ6g==","signatures":[{"sig":"MEUCIQCIrG8dsHSvqjONuUYizRQ6XhOzC8Vz/5UPPUTEDLDmUQIgJiZ9nQ9qc+CAjsz7pIRY3xB+8BC4/ANqtSqdnhAl/Ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":753010},"main":"dist/index.js","type":"module","gitHead":"3087247ec248fcfe931aa4bd8b5a950d4b70527c","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.12_1786146270268_0.061838126161087414","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"windsor-bot","version":"0.1.13","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.13","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"1a0f596f61d15f0b8c54111188d449c555e9cb3a","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.13.tgz","fileCount":198,"integrity":"sha512-pD17XXcZ6DwbdBhJcVDlyJ59djjzEm0cK8lxZvVyOHoLKv+TJ5/pd1QP1FC7XUpfj3DnoWalNdB0jHF4CGMPFg==","signatures":[{"sig":"MEUCIQCBb7F5TJ3LS0Us+dlFXdBJeyd6scGm55TXOSiwH2udUAIgfwMJ7W6AWYrdaCCSjzAtTqhFtV6Mc1lyX4HnNArrjr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778066},"main":"dist/index.js","type":"module","gitHead":"8e0f6ae935b4d41c5b31227c6f5179b16a02d8d3","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.13_1786293420684_0.7176195977270621","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"windsor-bot","version":"0.1.14","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.14","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"3065fd12c31125522d7cb86e1dbbd109e7d0bbd1","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.14.tgz","fileCount":198,"integrity":"sha512-feG3vnPfYVKD+RXob7GIWJmv2iI5N0bKxpLCBu8DbGQbqkXWG7+YWmuFwPkiMfwzpgNS5fdaQnVIBlQYr/swgg==","signatures":[{"sig":"MEUCIDPY5acVMW58cOtctsO76jt53run/KpL1GOhOv8vd+JxAiEA9nCsdXz+7gpNOwzdJ70FATi7uJ3ggpg8TzNF6P9tkRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778445},"main":"dist/index.js","type":"module","gitHead":"26587e9fae38bb6db966885f7a3536eb9fa491ef","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.14_1786294496660_0.17217966395610396","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"windsor-bot","version":"0.1.15","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.15","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"dadf0868518431f10446fe5465a5f5c5a1aaf55b","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.15.tgz","fileCount":198,"integrity":"sha512-cxJ25MWj7IukLk3kG8iIPf3S27ZuPwoW1AbHrZ98oL8BHtMI+6QWIuGgMy07DngWPvSDlSOWt2lcCzCV0/5l9g==","signatures":[{"sig":"MEYCIQDsS1DRcwR6HPc9KU1qCinuHCr8xakvrtXtqRhNKP/lOAIhAMTX2AeqU0pRYrzqROHYf+7PTRYgt6W83+PyeAZPnZXP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778740},"main":"dist/index.js","type":"module","gitHead":"b4367cfebcb25ca529f6df4806f40caa1a271763","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.15_1786294657646_0.3183417189526827","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"windsor-bot","version":"0.1.16","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.16","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"e3684aa8ee58d32ff25edae1a9ebab6e3c833335","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.16.tgz","fileCount":198,"integrity":"sha512-s4XLJQatVJENPkvoQnPM1C70MiI06d7I8T1IYji+98MzSg7MuniNkR48eU0YKMT38ypkzbO8tjN8JF+mGiOxJQ==","signatures":[{"sig":"MEYCIQDaQ1jIHqR9D52BlVuUFFLsQFGdT+JApWi8Pm7GYNOSAQIhAJR4AR2TDT+X4RdGtFHnfGS9drhC0CBo83Zg89zIgXoV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778880},"main":"dist/index.js","type":"module","gitHead":"a67ff6d8ce222db12b4d9388413a2a058cfcc644","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.16_1786295021165_0.835461812793288","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"windsor-bot","version":"0.1.17","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.1.17","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"3ff923bafb7be5260ac04f87b12b4b6912893ee2","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.1.17.tgz","fileCount":198,"integrity":"sha512-sJA96Uvr8YIWjpqRB65iKyLlJsjKLKsiZMQysXjGGP6Kt3KzOZfau8MB2aeLQoIXYkjkJYOxNVO2Pqp+/Lu9SQ==","signatures":[{"sig":"MEUCIGCpWpwbUECfKv8z3ZxSWhdosG5y00zI29xKtlzhAdndAiEAt9+Y50UBHavAN/bJkcjhiF1uIyLUpUaX2BfuIh0ydQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779358},"main":"dist/index.js","type":"module","gitHead":"a554fb5956ef103117b36d3d7a720ada8a734274","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.4.3","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.1.17_1786295118124_0.941543527521751","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"windsor-bot","version":"0.2.0","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.0","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"044d532e21b53618591930543e5f58032136e2ed","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.0.tgz","fileCount":198,"integrity":"sha512-HirLd5Jna0jjGMEx09l76IWZGIXcSbztHIvaqZDOuahQQ4Rm3siX+MLKn+T/BIXk4KGuXj4kTYrrwOjRLZJTFQ==","signatures":[{"sig":"MEQCIBOzGlXKhUk1zjP0+YPe6EXHSgB5qvT8CUkfBFCnik5wAiAepHErmracGf4pEnsQ0WGEWc24XLP111Obly1VZvK1FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":769885},"main":"dist/index.js","type":"module","gitHead":"bae39a63bf02286e63b1a23faefddfe140173a76","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.0_1786594269036_0.5949207033277131","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"windsor-bot","version":"0.2.1","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.1","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"50713288b6d9a2bc4a39ecbc52409cd2732ca1ac","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.1.tgz","fileCount":198,"integrity":"sha512-MICbW3NqPraErtE1pgORiW69YsotDVkVvDGrx6Gz3roxbSRFWmPrqHmk4V4NRjriEClxPEDGyoiCHELlQnmvVg==","signatures":[{"sig":"MEQCIAs5gGnX83xbXFNrvourVjDOgG+zop+L2EHIYdSrqsuAAiBtWJ66UAecYSPCptWnU02EQxp8/ZNBptIXAOidxmYijw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770313},"main":"dist/index.js","type":"module","gitHead":"3ea357b16a2f96cb808345a4d94bcfc79719eeaf","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.1_1786594595140_0.10070015778980923","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"windsor-bot","version":"0.2.2","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.2","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"6ff7110b700ad7cab34856ee460fef2de43236d3","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.2.tgz","fileCount":198,"integrity":"sha512-euAe9AHFWKtmTVjwSd6H3i9pAFn5s9Xakyou0Bv68CCMn4MccO66DZzAugmZcwXzLVw70Ij+d0/uKhPOF4CY7w==","signatures":[{"sig":"MEYCIQD6VHT4r5lyfFspam9Eu0CgbsalzFSLVzldYjd8KgPcTQIhANdZHY70tSD8Evd+Vrk7w+B7KMguiN730QTOhqNBQbYL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":770467},"main":"dist/index.js","type":"module","gitHead":"dddd0d814c708326fd0fd44f5ba2e32947a414f2","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"11.6.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"24.12.0","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.2_1787718736843_0.3514659746766975","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"windsor-bot","version":"0.2.5","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.5","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"956945e4f2fab07861dc44d400277299250301e6","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.5.tgz","fileCount":198,"integrity":"sha512-4lDu0wYSwX/jxEJOBX+Bto1PyeNoR4U7Ub27a8sKsbNFQW4u3AQaSZnX9qZTaJlCXX/kDYz+y8I5NQynVcNdfA==","signatures":[{"sig":"MEYCIQCqql15HpKli2WygZWLBOFQSx655SOFwCGXBvxywYNJPAIhANOkp1p4caZlOq2Lfdl8TpU0Rrwzi/9VEsts3Lwayf53","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":771670},"main":"dist/index.js","type":"module","gitHead":"e884b8837dbdbe5ec9a740c0af93c0989ed505a8","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.5_1787880960509_0.18603287337752805","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"windsor-bot","version":"0.2.6","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.6","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"750866dda56028dd9fc5833d89a255f2f8ddb9b6","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.6.tgz","fileCount":198,"integrity":"sha512-YTZoy3O8X0/9YHDeZnW/o/SwPl2Wur0mK9BPzf23maq2DTE8NsTVxJ0xXGuKBVsV8E4804FgAHFSfSgSZ3Q4gQ==","signatures":[{"sig":"MEQCIELR6ifP+F9BfxIBqFtZMoac3utyTWWKl5G+u0m8prRfAiARhP9hWJFbxQWUv3QA0AbVylF4HW/42B561N8WH4tbhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":771210},"main":"dist/index.js","type":"module","gitHead":"a1f91fef2554a6b2b2ae1714d5c55bb9770ecdf1","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.6_1787881515610_0.5286906194218104","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"windsor-bot","version":"0.2.7","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.7","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"2200f5fab1b5fdcba18301f382a2156d5352ecbf","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.7.tgz","fileCount":198,"integrity":"sha512-XxBPefMuGLbycsuhn7TXcNZcQenH4fIFvME/zq1FsRMWt+KKyarZQyz/S7e7ILebJFBjmXgYN1EMfblR0/MXEw==","signatures":[{"sig":"MEQCIDMMUNgZMnNCyrRG/mIdXBwhCS1FD7cO6mAUyDYL8orRAiAsUdvk+3Mw6atOwqYcNMLiuKm7s/s9rx3jVTb1sM/GGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":772951},"main":"dist/index.js","type":"module","gitHead":"7c0cffc9c14ea128ed71404b2e22e4547eb61a35","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.7_1787881974765_0.9360379323099237","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"windsor-bot","version":"0.2.8","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.8","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"c0435344c4727b7b39d072f45db8b02204a7d186","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.8.tgz","fileCount":198,"integrity":"sha512-uEKHCsyxiZrwH4R91M1F+c9QW7KW6B1mocdoSp9t1n6eV4+mH0y9ddDEXt81/R/xNQrpHHx43aMZOE2a2V4BTw==","signatures":[{"sig":"MEUCIQDmOkrZ5sF/XQMp0LXAz2Os4LbTU+IkPoe4RfJoIPRCGgIgFUaLdxsnLnYtZSA+h9sLX1cTjWjO+/NdayjnRBSdQWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":773637},"main":"dist/index.js","type":"module","gitHead":"4b0a0cc4ffc2d54ff103303d6e0f8a0c99a1f2c2","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.8_1787882642136_0.4494392110348089","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"windsor-bot","version":"0.2.9","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.9","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"7cbb78f1fa4c8498d151e11be9e7d7e5b732c360","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.9.tgz","fileCount":198,"integrity":"sha512-5ihD8xICHptuPTAnTBMIfSetKGMT2ZVXc8wUHXD3FJfc9Y97ANW+gP+TlX+9l9sPn4OG8RexrWQpW5jQiT7N6Q==","signatures":[{"sig":"MEYCIQD+izXD26TDQtFfCTgqJ7qModJScx14TLTlBNLYun5XjwIhALinBBCGONHTe/jDP9bN/QSTcojlDNQNWLnbAC5UsCIX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":774586},"main":"dist/index.js","type":"module","gitHead":"4f90eaf47bb7bd08ab691131b982e18ca28b918d","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.9_1787883254163_0.6063825547006474","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"windsor-bot","version":"0.2.10","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.10","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"39331fd09e40083fd15716c54a3d4ca876042b7d","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.10.tgz","fileCount":198,"integrity":"sha512-whFBYN8xuHtnd1AbmY9PCincTD4rUKUxiMHl+JLBPfnGA8uWW6xWvp63HUnteeTHZaw/QHznRRsETO0g1wvT1g==","signatures":[{"sig":"MEQCIDgePxaFh5GvZDj1XzfDL+F7ZXfhf2TcH4PrrAvFF7HhAiAN9Z8C0GivO+ibzU6jftLhx123PpgfXJ6idoWqmZd0VQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":774625},"main":"dist/index.js","type":"module","gitHead":"8c2c4f31b9cc66a72b34954dc4ab5bd506126320","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.10_1787883949035_0.8057295931733912","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"windsor-bot","version":"0.2.11","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.11","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"df23aa3554f71013860544584b548956d636cff3","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.11.tgz","fileCount":198,"integrity":"sha512-uMGdeo3giTI3VAlwkiu5CuwU29Ql3HDC+OtwNBwi3Hp2JJjqPLCjhWz2ERd05guhPhXEqLleJsGYGjFIyMiOSw==","signatures":[{"sig":"MEUCIQD75djnsTPUy5SDI8H6TLfntdeBhJIIwYaOoNisLAxDWAIgX8KK/a/eRZm0Bo3mbWI5lX24So11RXiFhikADFktnVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":775275},"main":"dist/index.js","type":"module","gitHead":"18dfcf27b0c49f7d450a3fca3077b3eff7c1e2b5","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.11_1787884127355_0.2964651544507939","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"windsor-bot","version":"0.2.12","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.12","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"ad13feb81480a18da82b5b665ccd40ea958a37c6","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.12.tgz","fileCount":198,"integrity":"sha512-t8Xp57ntFyiaouhFjuF3J1QppsVpRFPHDz8WCf3O0cQqJuhli47oPniq7XPY10mYIpsP4qLDkdq6jOFPpaAvmw==","signatures":[{"sig":"MEUCIQCq8e2h+qK33z8LtSeWfjpy0K3SZP+jXeMfrLChXu0CrQIgL+MK4ZAZ+aELEMvh0KBgu6BHOHOa5rzAZFZyFpLpUAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":775341},"main":"dist/index.js","type":"module","gitHead":"31f9e3a58a6a2485a559b1fe35d0bc18ecc33583","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.12_1787884812867_0.8487922959615954","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"windsor-bot","version":"0.2.13","keywords":[],"author":"","license":"Apache-2.0","_id":"windsor-bot@0.2.13","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"bin":{"windsor-bot":"dist/index.js"},"dist":{"shasum":"35bdc3913582318164751a24e393cbfdbb592307","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.13.tgz","fileCount":198,"integrity":"sha512-LF32hWflvEzUkgqkHfR8gr03n52ky/fM3kZVRPS2gCvIJagQE4czmnxND5VjaMZclGsUEPJnM4of3t13ChhAzQ==","signatures":[{"sig":"MEYCIQCp1RgpuVydeWFMRUPHzV8eEkCv/Q65TuZxTlptCupJrQIhAO1vaxORCJMzHc0DRcVnIfvaivSmJdkciRIZoShIqaBy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":775583},"main":"dist/index.js","type":"module","gitHead":"15c7a9f7b2952c22aabda94765484c10ca6443cd","scripts":{"dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","prepare":"npm run build","gen-image":"node scripts/generate-image.mjs","generate-wordsearches":"node scripts/generate-wordsearches.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"repository":{"url":"git+https://github.com/SeaRyanC/windsor-bot.git","type":"git"},"_npmVersion":"12.0.2","description":"Self-hosted Discord bot automation for household list and todo printing","directories":{},"_nodeVersion":"22.23.2","dependencies":{"jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","esbuild":"^0.28.1","discord.js":"^14.27.0","serialport":"^13.0.0","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","escpos-buffer":"^4.1.0","@resvg/resvg-js":"^2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^26.1.2"},"_npmOperationalInternal":{"tmp":"tmp/windsor-bot_0.2.13_1787888233192_0.15245846351420056","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"windsor-bot","version":"0.2.14","description":"Self-hosted Discord bot automation for household list and todo printing","type":"module","main":"dist/index.js","scripts":{"prepare":"npm run build","build":"tsc && node scripts/build-web.mjs","clean":"node scripts/clean.mjs","deploy":"git push origin 'refs/tags/v*:refs/tags/v*'","dev":"node src/index.ts","test":"node --test src/tests/*.test.ts","generate-wordsearches":"node scripts/generate-wordsearches.mjs","gen-image":"node scripts/generate-image.mjs"},"bin":{"windsor-bot":"dist/index.js"},"repository":{"type":"git","url":"git+https://github.com/SeaRyanC/windsor-bot.git"},"keywords":[],"author":"","license":"Apache-2.0","bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"homepage":"https://github.com/SeaRyanC/windsor-bot#readme","devDependencies":{"@types/node":"^26.1.2","typescript":"^7.0.2"},"dependencies":{"@resvg/resvg-js":"^2.6.2","@types/pdfkit":"^0.17.6","@types/qrcode":"^1.5.6","discord.js":"^14.27.0","esbuild":"^0.28.1","escpos-buffer":"^4.1.0","jimp":"^1.6.1","openai":"^7.3.0","pdfkit":"^0.19.1","preact":"^10.29.7","qrcode":"^1.5.4","serialport":"^13.0.0"},"gitHead":"622f736b4aa6e89cf48a646e612f34b3fb139ff6","_id":"windsor-bot@0.2.14","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-gpiswJg1NDD0Yzvv/wCWcKjGMr+z9PNpegrckEhS7XMfGjxiL1rlpf3F+cIUiVGCrR318ybAWiDZYGJh9s2G5A==","shasum":"1fc73a470bc8259474a8d12d0d84a4cfa7f88288","tarball":"https://registry.npmjs.org/windsor-bot/-/windsor-bot-0.2.14.tgz","fileCount":198,"unpackedSize":775204,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/windsor-bot@0.2.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHfuQnFz68m6XfiOvIg6esI6A9/JonBNUA4zsU44EQ7XAiBa+i9GRkNigKgPO80MUrcsuMxNIeVkDQWdQBV1M3dicg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c11237e-45fc-4426-8c83-99a9c58a6f2f"}},"directories":{},"maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/windsor-bot_0.2.14_1787889774415_0.6124045466524606"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T06:55:24.678Z","modified":"2026-08-28T04:02:54.892Z","0.1.0":"2026-08-04T06:55:24.924Z","0.1.1":"2026-08-04T07:02:20.949Z","0.1.2":"2026-08-04T07:08:26.595Z","0.1.3":"2026-08-04T07:10:40.533Z","0.1.4":"2026-08-04T07:11:04.785Z","0.1.5":"2026-08-04T07:12:29.332Z","0.1.6":"2026-08-04T07:17:27.418Z","0.1.7":"2026-08-04T07:31:55.094Z","0.1.8":"2026-08-04T19:26:18.006Z","0.1.10":"2026-08-07T23:08:17.696Z","0.1.11":"2026-08-07T23:21:55.052Z","0.1.12":"2026-08-07T23:44:30.438Z","0.1.13":"2026-08-09T16:37:00.849Z","0.1.14":"2026-08-09T16:54:56.809Z","0.1.15":"2026-08-09T16:57:37.841Z","0.1.16":"2026-08-09T17:03:41.396Z","0.1.17":"2026-08-09T17:05:18.304Z","0.2.0":"2026-08-13T04:11:09.203Z","0.2.1":"2026-08-13T04:16:35.306Z","0.2.2":"2026-08-26T04:32:17.035Z","0.2.5":"2026-08-28T01:36:00.699Z","0.2.6":"2026-08-28T01:45:15.765Z","0.2.7":"2026-08-28T01:52:54.925Z","0.2.8":"2026-08-28T02:04:02.294Z","0.2.9":"2026-08-28T02:14:14.302Z","0.2.10":"2026-08-28T02:25:49.200Z","0.2.11":"2026-08-28T02:28:47.550Z","0.2.12":"2026-08-28T02:40:13.019Z","0.2.13":"2026-08-28T03:37:13.376Z","0.2.14":"2026-08-28T04:02:54.583Z"},"bugs":{"url":"https://github.com/SeaRyanC/windsor-bot/issues"},"license":"Apache-2.0","homepage":"https://github.com/SeaRyanC/windsor-bot#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/SeaRyanC/windsor-bot.git"},"description":"Self-hosted Discord bot automation for household list and todo printing","maintainers":[{"name":"searyanc","email":"the.ryan.cavanaugh+npm@gmail.com"}],"readme":"# Windsor: Your Friendly Household Helper Bot\n\nWindsor turns Discord messages into useful paper: shopping lists, reminders, QR\ncodes, puzzles, and more. It is designed to run continuously on a Raspberry Pi\nwith a USB thermal printer, but it also supports any Node.js machine with a\nserial printer, a CUPS printer, or the browser-based image feed.\n\n## What you need\n\n* A Discord server where you can install an app\n* A computer that can stay online (a Raspberry Pi is ideal!)\n* A compatible printer, connected by USB or available through CUPS\n* (Optional) An OpenAI API key enables certain features\n\n## Installation\n\nInstall the published package globally:\n\n```bash\nnpm install -g windsor-bot\n```\n\nThe global install provides the `windsor-bot` command. Windsor creates\n`windsor.config.json` in its working directory, so choose a permanent directory\nfor the bot before starting it.\n\n## Initial setup\n\n### 1. Set up Discord\n\nFollow the [Discord setup guide](docs/discord-setup.md) to create and invite\nthe bot.\n\n### 2. Set up a Raspberry Pi (headless)\n\nFollow the [Raspberry Pi setup guide](docs/pi-setup.md) to install Windsor and\nconfigure it as a boot-time service.\n\n### 3. Configure credentials\n\nOpen [http://localhost:8080](http://localhost:8080) (or port 8080 on the Pi's\nhostname/IP) from a computer on the same network. The service starts with no\nDiscord token, but the control panel is available immediately. Enter:\n\n1. The Discord bot token.\n2. Optionally, the server ID to restrict Windsor to one server. To copy\n   IDs in Discord, enable **Developer Mode**, then right-click the server and\n   choose **Copy Server ID**.\n3. Optionally enter an OpenAI API key. It is required for AI-generated icons.\n4. Set a control-panel password in the **Security** section.\n5. Save, then click **Restart Server**. This restarts the bot while leaving the\n   boot service enabled.\n\nCredentials may instead be supplied through environment variables:\n\n| Variable | Purpose |\n| --- | --- |\n| `DISCORD_TOKEN` | Discord bot token |\n| `SERVER_ID` | Optional Discord server ID |\n| `OPENAI_API_KEY` | Optional OpenAI API key |\n| `DIAGNOSTICS_PORT` | Control-panel port, default `8080` |\n| `WINDSOR_CONFIG_PATH` | Path to the configuration file |\n\nThe control panel listens on all interfaces. Set a control-panel password in\nthe **Security** section before exposing it beyond your trusted local network.\n`windsor.config.json` is gitignored because it contains secrets.\n\n## Configure printing\n\nOpen the **Print Mode** section in the control panel, select an output mode, and\nsave it. Use **Print Test Page** before configuring channels.\n\n* **ESC/P via Serial Port** sends thermal-printer commands directly to a\n  device such as `/dev/ttyUSB0` (or `COM3` on Windows).\n* **PDF via CUPS** renders a PDF and submits it with `lp`. Enter the CUPS\n  printer name, paper size (for example `Letter`, `A4`, or `80x297mm`), and\n  the display label for the paper.\n* **Image Feed** renders jobs as PNGs instead of printing them. View them at\n  `/feed`; this is useful for development and printer-independent testing.\n\n## Configure channels\n\nWindsor only monitors channels that have a behavior assigned. In **Channel\nBehaviors**, choose a Discord text channel, select a behavior, and click\n**Add**. Expand a channel row to edit its options. Use **Refresh Discord\nChannels** after creating or renaming channels.\n\n### 🖨️ Immediate Print\n\nEvery eligible message is printed immediately. This is useful for to-do items\nand quick notes. Available options:\n\n* **Header** and **Footer**: fixed text around each job\n* **Include metadata footer**: includes the author and timestamp\n* **Include AI-generated icon**: creates an icon from the message (requires an\n  OpenAI key)\n\nMessages can contain up to 800 non-URL characters. Up to five `https://` URLs\nare extracted, replaced in the text with `[link]` (or `[link 1]`, etc.), and\nprinted as QR codes after the message.\n\n### 🛒 Accumulating List\n\nMessages are collected until someone posts `print` (case-insensitive; extra\npunctuation is allowed). Windsor prints the items since the previous successful\nprint and marks the trigger with a reaction. This is useful for shopping lists.\n\nAvailable options are **Header**, **Footer**, **Include metadata footer**, and\n**Include checklist boxes**.\n\n### 🔁 Reusable List\n\nReact to a message to print it. Windsor adds the same reaction after a\nsuccessful print, giving the message two matching reactions. Removing your\nreaction also removes Windsor's matching reaction. Each message is printed at\nmost once, and existing unhandled reactions from the last 100 messages are\nprocessed when Windsor starts.\n\nIf the printer is unavailable, Windsor adds ⏳ and retries. Removing your\nreaction while the print is waiting cancels the pending print. This behavior\ndoes not add ✅ or ❌ reactions.\n\n### 💬 On-Demand\n\nOnly recognized commands are processed. Messages without a command prefix are\nignored. Commands accept either `!` or `/`; these are message prefixes, not\nregistered Discord slash commands.\n\n## On-demand commands\n\n| Command | Aliases | Description |\n| --- | --- | --- |\n| `/sudoku [kid\\|easy\\|medium\\|hard]` | — | Prints a puzzle; defaults to `easy`. |\n| `/wordsearch` | — | Prints a randomly themed, kid-appropriate word search. |\n| `/pokemon [name\\|1-151]` | `/kanto` | Prints a random Kanto Pokémon, or the named/numbered Pokémon. |\n| `/hello` | `/helloworld` | Replies with a greeting without printing. |\n\nFor example, send `!sudoku hard` or `/pokemon Pikachu` in an on-demand\nchannel.\n\nWordsearches are pre-generated offline from the theme banks in\n`scripts/wordsearch-themes`; the generator validates words against the\nROT13-encoded family-friendly denylist in\n`scripts/wordsearch-blocklist.rot13.txt`. Run `npm run generate-wordsearches`\nafter changing the banks or generator.\n\n## Control panel and local configuration\n\nThe diagnostics server provides:\n\n* Bot connection status and recent events\n* Discord credentials, server selection, and diagnostics port\n* Channel behavior mappings\n* Printer mode and test printing\n* A password for the control panel\n* Server restart and image-feed access\n\nThe panel saves settings to `windsor.config.json` in the current working\ndirectory unless `WINDSOR_CONFIG_PATH` is set. The file is JSON and can be\nbacked up, but keep it private.\n\n## Updating a production installation\n\nKeep the Discord token and OpenAI key in the protected configuration file, or\nconfigure them once through the panel. Upgrade the global package, then\nrestart the boot service:\n\n```bash\nsudo npm install --global windsor-bot\nsudo systemctl restart windsor\n```\n\nCheck the service after an update with `sudo systemctl status windsor` and view\nlogs with `journalctl -u windsor -f`.\n\n## Troubleshooting\n\n* **The bot is connected but ignores messages:** verify the channel has a\n  behavior, the bot can view/read the channel, and **Message Content Intent**\n  is enabled.\n* **The server is missing from the panel:** verify the token, installation,\n  and optional `SERVER_ID`; then use **Refresh Discord Channels**.\n* **Printing fails:** use **Print Test Page**, confirm the selected mode, check\n  the serial device permissions, or verify the CUPS name with `lpstat -p`.\n* **The control panel cannot be reached:** confirm Windsor is running, check\n  the configured port, and use the Pi's reachable hostname or IP instead of\n  `localhost`.\n* **AI features fail:** confirm `OPENAI_API_KEY` is present and restart Windsor\n  after changing it.\n* **`status=217/USER`:** the `User=` account in\n  `/etc/systemd/system/windsor.service` does not exist. Set it to the username\n  printed by `id -un`, update `WorkingDirectory` to that user's home directory,\n  reload systemd, and restart the service.\n\n## Local development\n\nThe normal installation does not require a checkout. These commands are for\ncontributors working from the source tree:\n\n```bash\nnpm run dev     # run Windsor and the diagnostics server\nnpm run build   # type-check and build the web panel\nnpm test        # run the Node test suite\nnpm run gen-image -- a friendly shopping list      # generate test.png using the local config\n```\n\nThe control-panel source is `src/web/app.tsx`. The browser app is bundled into\nthe npm package during `npm run build`.\n\n## Sources\n\n* [Discord: Building your first Discord bot](https://docs.discord.com/developers/quick-start/getting-started)\n* [Discord: OAuth2 and bot authorization](https://docs.discord.com/developers/topics/oauth2#bot-authorization-flow)\n* [Raspberry Pi: Getting started](https://www.raspberrypi.com/documentation/computers/getting-started.html)\n* [Raspberry Pi: Remote access over SSH](https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh)\n","readmeFilename":"README.md"}