{"_id":"@benkrejci/on-air","_rev":"15-b8bc4955ea1b384ff9a7a26fd970348c","name":"@benkrejci/on-air","dist-tags":{"latest":"1.1.3"},"versions":{"1.0.1":{"name":"@benkrejci/on-air","version":"1.0.1","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git+ssh://git@github.com/benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","scripts":{"dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"gitHead":"7a085c9ae28bb23105b111e7de0380dd10ac18ef","description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","bugs":{"url":"https://github.com/benkrejci/on-air/issues"},"homepage":"https://github.com/benkrejci/on-air#readme","_id":"@benkrejci/on-air@1.0.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-m+LddVmzj7rZzzWTlMz8+7gf56mAp6Q0oK7CgyZm177p9tv9z0WQm8i5F3a1Fb+5DVaWV3tiPEAHvUoaNER+SQ==","shasum":"88d902e9c0d484316b85a910f55a0ccdd7e6c391","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.1.tgz","fileCount":46,"unpackedSize":1589198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfj9OXCRA9TVsSAnZWagAA1P8P/1CIQjdwkJdmKvOg9ovR\n6nwM+8rc9irLMm3dOFYqaCKGq7NcJ+cFTjaugqAxsqjpX8lvQyY44No66BSq\nYavUMo1xoBgkXh7iogtTW9PHUNbDRLspg5vWJ3sezQxbRoWYRF1heSA6sH4c\nFMQRVHZ5J74AHlHMLnHO4ymSz/qOQG58cPa5doQnyfIVGkhTYtApbh4JaG9u\ngdlu+j91toAefHrEmPUAoOwb24L7swmdYuBrzVJDvJP/PJWcl3JmFnzegXfK\nQmsRRRbPEOButESKzb962UJBQ7qOQphzi1Q5gRFYKvFxGaz5VREnevGGp18u\n7Fm/qI66Zn7NTGR8WOAqdPLLNWcwTXmldWdvUjkU1qxyThDhCQqBCHVFkf9k\ndjqrzZ2w/b8okKZKq0rume6NEu8kTVd17VR/mqokb+JwE3eLqliggH6WyMcp\nl7NXn8ft8UxoDPAsKPGg51ndHYgYtVI9faLX+3+awlWGnrE7ZbtaUjjVMeJo\nnV0tddqOAdpHhAUeGXOJCC2sfJmsup0/d2jWz38CBU7+73SKWJ7FvU5pjTzu\nLXp+0LBm8fMkqFLB1hgV/CsnhbaPkSIWTJZDZdUDqKj7qOU2S6NNbPtAnTaK\nJhYaY8V+wTEBSKPQI+yD8oNmvmYj7QOMEtTieMom5/mLiDSsCI8wty1XvI3a\nw5Qv\r\n=+hw6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3mCAWxFlGz5orrc/2npIcMwaqESVAkUhJ/QzKwLK77wIgKYACavz9bW99D8u/7eXwAJn5OqG+KYCPXbJxZLltCew="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.1_1603261334872_0.02720853362532849"},"_hasShrinkwrap":false},"1.0.2":{"name":"@benkrejci/on-air","version":"1.0.2","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","scripts":{"dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.2","dist":{"shasum":"65045cc79ccbb92e3762e0271c1dcbb656e3066a","integrity":"sha512-5bONvXDXfGq7Q6toUgJMxM0GlHUXAemSAiMjoo0RrtpOzsR5a70wFZpRoIWT1rIXn1euXoMUxOQNLtP6h/LPzQ==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.2.tgz","fileCount":60,"unpackedSize":1591020,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkNWCCRA9TVsSAnZWagAAmfEQAItn08PKAjhVBsM4Pzm9\nE+eXSRUrsZ+J2EA11zJV39ycWax4lwK8sbfx6CjT2TdV+7nwvJTFLP1tcdPy\nDvmSfXWwHKk3e2NGuV8jrGYbyiWi1u7Or7wXSXE91RfQPcSJrUghemjw2EqY\n4R2PbqchV6JnblQX/Eelqenpfj8yz202DwCwYKuWWHHIrmWtprrhu5bSZ2IA\nA1m18Y9gvXYNpZQYCTfmE45oXBwj5e2hZU/SROMPg7AbmCpN5NDet5Rpw+E+\n8K6cjaIITya/MHcuJVRKRFLtk9/fMvTUuC/B7Lh1Mgvmj9TG9UFeu9xufZyR\nBL6gwL5vzYNA3dciYexUoe7mmMOfRUNqArieeH3saWFTsuABUNLCt0HcY6DZ\nLj/t5hD2SUKpEVHboRsvY7jwKed4kSE9spUXl7ASkKvAIzWzI80Gpt0BWIyx\n3mxad90vEfSX/NzwnNuaErIfsTqDBYGR1/SHG72YrKeHQDU6oYQZKE77L8Vo\n862tS3sxuyAKliBJwoOyymAusZFC6Q4kebzRZvWtZfqVAA9PtkvnsnN0I6f+\nCa+kDtHVcAP+5v9nRu7nbJJn3g7PJsnh4N0+PyjV0MJAbuxdQkAW/qRw8fos\nbV8Gvn4qqqMRbozCkHnFh+XOUaB8JUmEy3INIzeakQAOx9yXbvf5MYVIHD+S\nQHhk\r\n=JOIC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCN9rPCtmkiLxQkkKdSWO6aloqWc/MkBbW+n9eyUby1yQIhAMbzz0OU/49qqC5DuxaB+LpcMsF57LL2V21rFbEjAyFl"}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.2_1603327362258_0.30073864981862064"},"_hasShrinkwrap":false},"1.0.3":{"name":"@benkrejci/on-air","version":"1.0.3","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air":"dist/index.js"},"scripts":{"preinstall":"bin/install","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.3","dist":{"shasum":"b6f9eaeb3aeb5d16b8bee00d92019124032c227a","integrity":"sha512-EHU7eNRZFtWQvWVqHy3YtHiRbF1c/an6pIzOYd3CW9ZPAG3uU1qq6NRM6FRECwJ75d1NeITwtFucaXNzXJ+o0A==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.3.tgz","fileCount":60,"unpackedSize":1591044,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoHbbCRA9TVsSAnZWagAAy4gP/1ZcZgwsjwif+geIZsIa\nUfFRmii5J+vKhsdtr28I/sSDtCLzO+H6WVApjVuG21+F+rWpDsLc94BrYA8I\n9gz7Px1ouyj8ikYxeyCo8jFSAS8nTiFOjIcwd43WxeSzG+JAifDqfoC8B85p\nWT2DCpF2Q8OkilagzWCdKXs3yEmZlmT0WnEOYB2JtvQojjzfUXx6THnP0PQj\nhw/ZWvSxsYG1nt9XX5zWE3vUIFCafgA5uZ04h+3TTEsZy0QcCKyEVIUwJTex\neqpt7BaY4Sry1HdEsN/Lwa492W7y8jcOfiZP9yUpT5SaAFLvIvl9YqrNjidY\nf8xkFwiyVvpgsjEvja6Xe/6Rq08u3OfHq5JnoC0Uhl5lc5iHvDLj8qlco9b3\nzO1qOV9m0p0zLzcn3Ymdg3Zhz/N93HkHEVdSB6T1ArGmIUNhaxsmYotnxRLF\nHQl7fGrRzdtLXGw/neBulSBGU8jD/GJCZNetYR30NBw4q4Ooq1Dd7yClCEBx\nFW9gJDVtmSWWgalny2m/M4Uvp/s+xSSfHIgSVCQoTBTDcZbOl+yZlN//lh98\n3Ibd2XCSHS7cyCletDnsXk8tGEvjSr30hyQmLge+GWksOqN1kX/aMBGg15nd\neYbPrr92E3IJO68pD1k35TkzuBbjuAaQBXpExUZiuh0GF8c4xxVQo8mbQpZ4\n8jKs\r\n=VS2Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHVIqCmw8JQSvModGQRyUNNdihLhhqi9aSSttMagr0ZxAiEArMd5zzuYa+EyMpn4MMWM0MjqpKqpqRjLD/7cGi1Damc="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.3_1604351707166_0.6919928013811214"},"_hasShrinkwrap":false},"1.0.4":{"name":"@benkrejci/on-air","version":"1.0.4","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air":"dist/index.js"},"scripts":{"preinstall":"bin/install","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.4","dist":{"shasum":"e9e983d084ba627d54eded709eb061e9cc24f29f","integrity":"sha512-1f+TmB551si9IIzGzq4Y+Y65nQmYOoAUvCjbehTraS6+z1vNQVWojHRlIGcPQa1m6XTcPD1YUKiHA7dvmJ6GVA==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.4.tgz","fileCount":60,"unpackedSize":1591034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoHktCRA9TVsSAnZWagAACoMP/jCZ0GR68SrkzRsIC78U\netNu5IGIS7WELHzqleNPL1Qiaw+VFLbJnol4AzSZWl6Lk4sRZZ3voPf89Yib\nNR+/o63PfQXrcv3IQOjqCgf6firIDwVnUJ+VApL8ZsiKVGYDOeOWqv267ZI6\nSFo5voFQwQB3t0jF7AILeul7sBwP6xrktiZ4JGhcGKFWJL0Lw94KbtpOUH9C\nWY3PaRnc2nj4UcQt5MrenwcXsCLpmMB/IUXnJBzfC+GfHukqdBFuj6oSIMTw\nCtzeFnhbOKhMIEFWZsfvyTprTGoAUeQzj4NW6+Rz7U+Rilg2fRlSRDiRmfg5\nZGisIE5ZwVWrSnA/A+1z4+TtzyfDHqc/UmGs0nu5ZFKQ2lnDEumoVOpS0Vl1\n/DkRj4zPiriSbFyyf05EbXbaH+Wa1BcLgBSfTyH0Hp88iGpFqhySvzYqOczG\nsgDT99KP9bp8HIba+w4mj1m2jhP/DJO4RIrGNLe1bHjxFvTTmg033nLiWo1E\nyhuz7uK2UNMFWBbVSFQyBZuUhn0W51Zsxoxqg+jLJ27UzVDu8hNWsMwpxMFq\nMMdtO0z+ehNkdsWVOC2PAuDkDznVZrbQI080/suzttiqpt4OQHSFdBDR22Wi\nLxKksALfgD97FFWopPmbOtKxFQds4CKXihdveCHZmvLBQDiyIr1RezONb6xz\nMrHF\r\n=ETwH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE1XgP5YS5BRdyLYs5zk6yrup3T+gXdWv+HA3G506diaAiBTTpIx0JA3qJKpTiPJNHZm3eAFEYlLiabVjpkEPfoZvg=="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.4_1604352301312_0.8164276928587275"},"_hasShrinkwrap":false},"1.0.5":{"name":"@benkrejci/on-air","version":"1.0.5","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install"},"scripts":{"dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.5","dist":{"shasum":"ab0b14fb5e172a4ef9675ca5b2adde983774762d","integrity":"sha512-rAsV6TAuqF111JdLNkvi3k+IeaqWDCMayF7/DJQCkpREoZJsSPQ6RxPqqk2vA9QhTJjlQnuVVGnHxEUK7RAE3Q==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.5.tgz","fileCount":60,"unpackedSize":1591064,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoIANCRA9TVsSAnZWagAAvhcP/A6oZ8IFHR9s/Kisj32/\nh0CmLc0VSUCH4sucbmsoNJMM2ybRL0Ktkbfce7ifDrWgy0+SpiIgOdvzCkpi\nF/2B8ANKfAdf3t+1zqzT55jfyDTWQNesoO0GDpT/VInj+IhswNPR5M1pIQS2\nK3ibm+CErxDcjXzYd2CzMlpW8H9SJmOqxNlh2mXI9+Dq6PKLhU2pJM6V4Tm7\nZGJ59splMxejC23zZ42NiaFmaJFsNxfSlraWenyzBBalzY7BLvtpWDtGsGaC\nHPicGMdCvRWe/25FrJfsjaAalVF5kq8Au4DDLvZTC68gm4RUCHsLUYXtcNgr\nebFXF73Z6kNZrHTElGXHBbctIY6yVxt4bgMwRmx4gx6wuXJxaayEiqzJlReW\nWJHkRmf8OvB/IoKqV/Ax8RDPNkJC8xLbWlrFoLsD351ofH4RjRJeD+5JhnNS\ntlQwo4dFuYYBC9j4aLrBujSWbsKXkXuME/aRkr5CTiQDWtc4Gh0cnQe9w4vA\n2+b7oYpbhKmm65yDlbUtMC+D29ZPg80LrMKLdbZ6RLhEXpNKnoWUxk4OrqoJ\nnH//jTOCNuH3wov6m/Rt/CP3iDsGbeBOznPX8ySJwMPNpyTFd0L8//IBf2P8\nijxoSX1CO+AGRUQZ1qZgP/j0wZfgLZvOGN8LdUUaGrCGke8LnorFKq/RF7X4\nqfCf\r\n=DV4r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjXgqzHSZ7ocgHEwaeP0Ol/oYDKP6d2KWJX1faI4OZrAiA2FGDDXSlCJr+Yez2gXXLc+1CbYLbeOboVSiyOZ5CizQ=="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.5_1604354060741_0.5648597220111906"},"_hasShrinkwrap":false},"1.0.6":{"name":"@benkrejci/on-air","version":"1.0.6","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.6","dist":{"shasum":"bb6fd12f094197a69f1b2fa68c68004901b8ba24","integrity":"sha512-3rec9TNd2QI/xrbNreW5Q+hf40j2hlmLTsXzjNzJic22PEKPtCAXKGZdWut2sxiRSZbDKT/n8IZrkVXDWvgTGg==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.6.tgz","fileCount":60,"unpackedSize":1591376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoIsCCRA9TVsSAnZWagAAUZgP+wUoVN8XxevbKLWFgNfI\nnU4flSaXv68kRYAQEZkN5NrEThI3UuscoHKW/u1d23m9P5JEQzY81mXBXjC9\nvoWm7g/WOEAqDRZWuX6i0RvaTFXfhqVdUeWaHSzUzOsv1AutxIAi4VIyDBtO\nLO05C2OR9a8T+npATBH/peLyANRkFayvZj25qtMkqgbaAwckU77YrzjeAqiD\nmp+h9QsAqj6AlYnQujrzlEq1QzWh+xP9kbVewGTph0iEmmrV0UA5jXZn7Ogz\n+4EsF/Ufppcwv+pDRkjbL4Dz4DPNHXT22x9Fmj8Bz6NXj53NSFRmTLozU9KL\nWYRW78b3e91bxY3iBQ9znTHMjWlV3hON2kLxIC8SvyQ5sh6A5HPw+X2vK1JJ\nEyMTQcEEwd2nxCgdDQGwLm28BQzWyZPKAHNGinQe5ZP0cA71TvP1uZM+3/qy\nscCtqlOWhEEQTx2/XUieGvpMnbauf+oo/FxO18VcBaCQblxNdlc6dlLpHS2+\nsLeayFjYD77ajl2C1KsOwnc1qBId277YgS0tCQMCK3poqcv18PuwUe+WlIna\n7XkwMQYu8A8zpG2ngWtIE6tL3rzVEsNSe3EZdG/zJcOKfFsrmH2OS9WCVHFl\nPHtVupy1XwPIlCubcdV8zQMoCk0yiNZzGdeoXYwT+N2Mgmxyd/JJR0uSqIO2\nIUun\r\n=bgVe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTnlriZAxd5cEyw8pcVDAw35ovFCqLNFBm4LQUSpn54QIhANMfaXofHL1ditxOo5dnJJTw2ViZ0vD1I+Hw5qhNqwqt"}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.6_1604356866400_0.34294152293628133"},"_hasShrinkwrap":false},"1.0.7":{"name":"@benkrejci/on-air","version":"1.0.7","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"Install as service using `npx on-air-install`","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.7","dist":{"shasum":"dad37b7b4bfd8e19bade50e7b01434bbc2e4161b","integrity":"sha512-+QVbxiAgbAt7/TNCGQCHTqIKBLnYz/eNNXmzIWTlV48w+yV9jXtgNchBOcUAwHar6SFiyrTq93CaBc0YKWUm5A==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.7.tgz","fileCount":60,"unpackedSize":1591343,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoI++CRA9TVsSAnZWagAA520P/1EP1nXefXtgJpCoDdp6\n/fYWEyjwqnJe4mt5+IMChFkdJNOCEte4/XnxRAodHYXhfyoDiLsG7dzaBBGd\n6MmsJ+r0vIyP6FzR+Ol0lQFKeZ2mO5QUUWTiS9nifnJDeO2mCYhFfRL7WZqL\nQU+fTNcAZQFKgFzXtjPp0ZTKnAKXLhOKeu9ZY7eZuAkqg/aMMiHcjDAld39N\n+UVBCh7ukiUa89nYJnDZylptSAaF5HPO7J2y6Kr5C25xxf6wIQBPh0dZiMfm\nPodDKEgR/Kz7mUYsaLuSI8KLM3Dnu0OwSIEmbw8nCTTgwyd0fc3r4Tdo2eUy\njFtrj6qjPDN/+nQWcsqGQVbt6p4pgwJAG2f16mW7gC4cj30QDnszQsozdOI4\nOV4af5JDc8B6Qr5XoasgO/QZj5yJKTrbhSHMPHRxqRf/SqCtaC5U4X6HO8ng\n8uYG3h3oKZCMhVK/u8IRmGK+ILvLts6RrMKYH7+HHGSmycbKR/K2u5uQhzXK\nsewgaQ1V+HaQfrCH5dE0U3aKH4orhg8Xmu5g4V1Jg5FuvGNT/ZO+OZUwb8w+\nu+PO5tDjUanI0cmNO2D6T3RMbPWBNi4KzC8DI8qPdwlzrXj9gUVWsMuWVgsB\nLyddby0WQ+XSsA/rzOtdC9q+xcP/llnDxvXv9bvPrwRC7KeL6im3hv6ekTIf\nz+hD\r\n=vG4L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSmXAD+oE1mnXteoLcDkagM6qGiLM8XZBhD+7Vd2NzeAIhAJVbzByRAdzU4M+iMloyHIHgKUABWYtaWVj0g4fsNQKR"}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.7_1604358077836_0.22645920658393304"},"_hasShrinkwrap":false},"1.0.8":{"name":"@benkrejci/on-air","version":"1.0.8","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"Install as service using \"npx on-air-install\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.8","dist":{"shasum":"357490908fa3bf014c12cfea526787b414b12b0b","integrity":"sha512-MOevBB6wDg2MvvYMnSIknmDG9qHARStKuU1bwJpizvL8QckwJBZ2lnoy2IW/8Caf/eRQVcwUwWRHhHRE+BhOMA==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.8.tgz","fileCount":60,"unpackedSize":1591345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoJE/CRA9TVsSAnZWagAApVUP/1AeDoYe+qG5AhDHt/32\nvDjK4uTbDA6wuoRHRSTi5FAdkj0cKXO4tgvrFnxKPpg6oe363DuahUuntYLI\nYRL8EybYjqj94N39rTz9DG/gU2bgRZvOyvOP9q8y0cUw9ZDYGXWdLZ05Jboh\nxKJ9FDb/0ixEn6LOLlpR8QQSuV3CP829PrqXIUwNCgaxOLwBXf+LkZYXtMqR\nbPcUZpnwzAFO7DyzU8zdMZV4zuEAvRY5nwDebOR/kah9D+2//ALs+mzhpCut\nNVA4WW1XKh0aqxGT9D4zN6mkkMLdml0ztFf/iRLTmgIGal4w/RKlWuYgxoZ8\no4sm5ccN5ik4Qc46EXMuAsznLnQks+cZ3qbIkV0VpNAPF3SS+NWeIw6sCnh/\nNn+IO53rg1aN2J8cunuckrWudU8WHxbETgLa3y6Jq/HOySu6nnDYh7D/kMFZ\nPKxvQ+JQvDj4coGf9Uir17iyOwHjjfmzVoLHUH2KmohZFSSxjTI8bd6u9Prr\nHNt50dPeL/YkvMW8JVhFSo6DmTahIrXlrFWOWpLhdGKb6Leu0WukRlHIQCKj\nzw4ykikEs5gg1EzYzpnyA2488x00YULaL+rBRGWRoMQVVrRhBlI/4lp2eSIm\nTzQ019JaIlXbGKZvk8ga4Ez5NmLdovaXUGqJgjxTjoOUAviLS6fJsdFLeUwD\nqn8n\r\n=delp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENDXfmvnUDsA0ljNz7X1kNHzjsFwU+hccS0b9nh4ZptAiEAhtuF/N5nHXTlg1BiuNyIRg01baFtS1bcrC0lLR35Q+4="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.8_1604358462929_0.7333120325773186"},"_hasShrinkwrap":false},"1.0.9":{"name":"@benkrejci/on-air","version":"1.0.9","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"Install as service using `npx on-air-install`\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.9","dist":{"shasum":"ab3108e542d76304521c5d767d0fecab4e7bf009","integrity":"sha512-BvB6tX+dG6WsgfBVaa3UBkSaNLJMwfSCfcI8Jfv4rcjQPf6n4ghop45VAKWbcFTbjZc3SxqxGuYcRW+J+vJQlg==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.9.tgz","fileCount":60,"unpackedSize":1591352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoJGVCRA9TVsSAnZWagAAkHUP/0rqY32ZUfe55/qTlC8p\nIPqNdXTqVSoZ8yJDPIw1H8y/i0HBuJurBXb+bmBz12Ap4nSFGQMIKPl5iQ/l\nsvRcWrg48k9akr8A0X8fjVJLIVoBDKAT02yP0ZVFjADyfDlLzBXZL23WIMv+\nKkk1+IytKA4Jp4iQw2p9Rsj3sPszrBpdvH6e5in2DsydnCUuN1vMOOadGfXz\n23Zye8ch5m0ivF0j8sWrA2sRaIWmR1ItJZ2fVJVfF3vbRpC6hD/evzLR2kpG\niDTZ8y2ZP1Dy1wPqKHz6/O/jkLgfyWl2rinBLJxTm/ECHYEspnfgTo5IlWZY\neUF3q5yZ9z3JAqN9HXrouSmpj9gB9bHwYQljNqvGQ3jvUfh/qbi4uwGoBv5B\numE4Xq8NMjn55+sMZhUy+i9FzmHlu4RJLo/istEOUMc7IxGLwTBJc98tA6CR\nMPC9oaNI2Ce8zcXZBEsVBReCAopnKfADp6Wg51NNMaNMQEEeCim7ZmWPE7+g\nxOXBC96+/Fzow+yrSw2LkEORI8iJ/P3l1se0c+WYXSMoxtArmwyNiIe7VEPV\nNpzsX1BtErGehIHXnab3JpWYNJ/miNO41e6MBxfZfjW5N3NGKngSUw7G7lbX\nvN7bKiwhV0H3U7l+lNRCmMeiNZGrQLEhMc4lwUeh425IW/dKKDswswuRa5hI\nhDeF\r\n=OuxI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGVC6KHyDr+up1ld8wgcUWzu7xbrhwy3/zQCr6aE/vg0AiEAksxJ1ZHTkXIis0ao590gVZlvoXzioYiEO39C0lHt6MY="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.9_1604358549308_0.3021057649811387"},"_hasShrinkwrap":false},"1.0.10":{"name":"@benkrejci/on-air","version":"1.0.10","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"Install as service using \\`npx on-air-install\\`\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.10","dist":{"shasum":"f915e6abc1604ef7f8f5b89852d3e8c98c537249","integrity":"sha512-ju8O6UG7i3rh/MpkR6JScWO6XwuNzDh536hGuIinxKX/Frg7qHE0cySU88/VdgtMIoZ94/8t8d+JvwVUs+skEw==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.10.tgz","fileCount":60,"unpackedSize":1591357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoJHNCRA9TVsSAnZWagAAmowP/1hkbd8DNukU6JGOqtOR\nIKQq8I1gIu5OGRN6mdvymG/lcAKh+HHHz3Ak+2LbNeC2OK1UucI1XnsQfOX0\neo4Twqt8jxYGWYLpAxKUN3tR8VflxICO3FVKskMhW6ZGjZDpp3gMxwWkoMYv\nhIhuJ/4O4c7p6Ea3lnlSE1jAO65/aebg5xCde2Ul1lxoMNM6JamnBro2bdwV\nt/vkDKmXIeT4Ln5NZ0lt8eqMnwumfbpZ1znwoLYfhgbiMDzyScmVQBK14BH9\nWpz76YqrJSvf8oV+HYPfjsoL+YiKIgtPD4qOvFdT8/2JSs8w0vKgR+vUBRqq\nbN8DUTBwX4QKflNpPj7aCI0OV7QIv5ZSc+A2JpHBFivjh/D+JyS3IIwkHI3q\nSfeXQHRVxLpfQXBJ30ab2BiuM0zBuzseCzLsc/QQZV+eAFe858af+gpCWOuS\n2wkIPtwT/vOVaLnDRJFxe75dxsnH0F9HRBmt6/V1Ri8OutuAEv9FCf74M+e2\nvkpYrBzaDn2xCX6rW/sITNPhoHtjoALnfBmCYd5nMuI++O3qoZ4AHc+xcfDm\nwMHuVG3LkoAB6BXOQNYW5R5LAVZpMs5tLIADlJd8G1LwEhu7HMZ5uQdQl/r8\nCnw2URKA8fT/w48I344TWOhiCR+Q/4iO6lqlRk5tteuifFglqE956EI1sSr0\n3L29\r\n=8bZ4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGa6usYHw9WvbivW0Tu8++Q/TTSp9dtXsD0/IF2/NVRmAiEAzwF4qI2JUjeHgmFDBSnwzFt3dTagYyJgTcAldOM6PsE="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.10_1604358604630_0.8142448102612279"},"_hasShrinkwrap":false},"1.0.11":{"name":"@benkrejci/on-air","version":"1.0.11","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"Install as service using \\`npx on-air-install\\`\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.0.11","dist":{"shasum":"4af67752313981122ad22c6f16918170586093fc","integrity":"sha512-Pif9yPgs4nt4IEKSBdqyBdoCQXbQRHhMFNXQv1H9gkOsukQQ4OiaxeyAxLkYrNLvMki60BmDMurwceB8KyFvKQ==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.0.11.tgz","fileCount":60,"unpackedSize":1591357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoJIYCRA9TVsSAnZWagAA7L0P/0JkD1yaBcKKsstMAnrT\niCIOoEPAqDsyyTNrgK9VcGkomVxfO52MGdLQ4d8Y7mNDWHJk+XVBMeu753cF\nrXaYHm5WxQVCdbiHPE0Z/sDxgrqMjgyx5bxtRuT50akv9RuHWV6z/PR5KJbh\nWDVQ8CViRb9SoBc22psDcLUCl6WouSfm3B0ojq65Nph8V/JwOQAAjHSpj/E3\nmHYPoW8PP9VerCdCM9OFP31qEqBvsbec/8tHIbaMT0N/LNmpUCQHL9LgCome\nCUZQzMwFlPARTzQs5xOvvGZngGGIfICjbpdjIEml7aQDaLgD1t83+yUVkU9X\nZsLGnnGT/dAVfz1b9nTESZZJT1klrUjhtkJaE/TIueTkxXdk8q8Xj4sX0ki5\nA2RnQBiGSvx5H4uz6fxTliYeoygbGMxgfSRaHVd6uUAXHxshlzpZaXclvfVq\nOCrpN7sFBnMEFTSscC47X22Uc8Sb9fayxgUnMlplVuUIsD1ZQqmMdXwDF/Bf\n7r+M3GAOYcTGbDtEVISAZP2l5nIVOXuZWSn43rQqMBLZnXOcr+6zgHqQGFwP\nT65J+oZgkTM0wlFSxLpBI4csAHKO6bgXdWf8YgkwqzlQ1lZkLNrwB4KtJOLe\np7wchh1F32fwyQPFIpgJ431uHJWDEzV5/8J9wkBKe3r79Upd1No44D3iOPUu\nBk8G\r\n=+5NG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICpO4De+UQg5JVxU7L+c8izHAJZO2QWvGrQqoJcT2Q7UAiBJZIJrGb9qsUNc7HWjlqWMaaDkhj8/sj1ylujYMbt/eA=="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.0.11_1604358679919_0.5690554094657645"},"_hasShrinkwrap":false},"1.1.0":{"name":"@benkrejci/on-air","version":"1.1.0","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"**Install as service using \\`sudo npx on-air-install\\`**\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.1.0","dist":{"shasum":"04efed420eda0b557a8187018d4004323ccbb0dd","integrity":"sha512-2U3ssaKSpQMAiL9IrbDW+ADbEzh168xiowqsNUDqXhp6rCZvZ5OeGbylyEly4lFGBgxFKCOL+u33p86Ek03/Jw==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.1.0.tgz","fileCount":60,"unpackedSize":1591276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoJK/CRA9TVsSAnZWagAA2nkQAKDMvVSkbmJc0T2GEy1P\nPKE563I8T/Zm0j8GJvnQzaUOiqU3ew3XhDPNC+qNfnMVLW2u0eFKpVxAssCm\nSGVnb+CEojxRkwj9J9sjd/DvKrsqibG43BGfcnLId7pkz39jNOhES0aeAJQ2\nuKoG9VgkqQEg8d6twaAAVNLs15/EjmW9bd0tFAUSnNhIde/n041CSLKRjrh4\nuplh6BpBBMVOloHKg0JqJb+EEA/tuoVUXiGCRWNyhsEoIX6JhoGqwolhft51\ner+sBpgdmZtN5FDZ+htA+0JEeW98Fvzi2J8tS/UGUJMatw31cF2xhlROWc8e\nQK240FKmdYl+t2bxk0gV1poT63WX/HdfC+uu1fuwc4mjA+TKnjbCP+BhDKXa\nye7suPtmqNO4eaGLyk9Nemd4zU8SetAbYUw/qN4Id3LqAicExSnifqQgho7V\n7GcGF+O9kUDr7OXw5afUwriFL24Lqv1AsjsX/4gO6p7MC1a7QPXzM5sSpMra\neTuNEAd6nh7DiL5vgsgeg+A8orenYnDrzUIHrDTt/g80TNazo5BxDMDWi4s3\ncdBiX7IsaxW1I6DxP5ngqSbiFA7ib0rcwCpTjYKMeoMW13oe/u/v/46DPBem\nbR3BikRaOOVqex2Eu9iF23jbSixFbaqUUYrHSy5FF1hdTvyFRIw7jdQ9uiJg\nXabL\r\n=yXNg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEH9yvwsdKZQ0L9r/4NoMiiZRL0oW4831GfUJxBw6zF3AiA2fe2p7R3mbGK8YTKo5Bno5VnFhglzGkRBlAyqKVAyjg=="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.1.0_1604358847016_0.2896568374132935"},"_hasShrinkwrap":false},"1.1.1":{"name":"@benkrejci/on-air","version":"1.1.1","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/index.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"**Install as service using: sudo npx on-air-install**\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/index.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/index.js"},"dependencies":{"axios":"^0.20.0","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.0","express":"^4.17.1","lodash":"^4.17.20","pigpio":"^3.2.3","typescript":"^4.0.2","typescript-json-validator":"^2.4.2","yaml":"^1.10.0"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.7","@types/lodash":"^4.14.161","@types/node":"^14.6.0","ts-node":"^9.0.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.1.1","dist":{"shasum":"42eb316a3b09bf38f3661e37a0b90c7e31a155d3","integrity":"sha512-n4PVPfqrTisn1x+GEq5t+nCS9Or4O+03vxYqvJi2MdOAXOC5I9KGIS60EFGhOmY0dZEE3uBqYjFzTpuWp9Dc/w==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.1.1.tgz","fileCount":60,"unpackedSize":1591271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoJMrCRA9TVsSAnZWagAAjdkP/3kXGYzJe7DHYVbsQFtT\nRO9g7XObki2ldOem620Kk8Sx0fUaUv82+oO3LXFsAq/NDIliz9FlW4Zd/31u\nDJawGq0vCfKgMK3IMp0Gzio8ijC44LCV3BGt819nAxK4jfUONoVeEaceHmlv\nvP70ie+4pGZCanag0vUOA6x0ep63bS6GQTdf3NzHw3Uo2JmOmBvXsKfCs9mf\nMPV/KZfSs9c8+d1YPt2IhxvH7W5aD3o6DkUORTveYS95LVeqp2YsZpkzeYyu\nYQh/cyl782ISfdqE7F7/0uWoKaDtXSsq7oebD/ziCzz+SFVN3flMBFNE78Hv\nYKLlm7IfjHjNy8/vrKpfNLDc6Q8uUkBrnqXi+/4BX1izToKe3+J6JhB8o8Yf\nkzcplwHUDJ/Wop47LgyM3q485H6qW2CXsbki7Lh6xFG8zuqdrlAeOsJ5hKn/\niJwGjoAarQl7OGf+RzBAOxnSIAkK+oEG3zO7Vddt1e3DRU+LBOXeczXtr6MY\nxOrOeKFxSxCP5JTIxk2uorul8qgRvP9otKJ5QsXLMizXBwqwZ+FdJTkiUuAU\nY2DtgLtj0BYzh30qjQydbVOZIRGIRspIhUp69HxcG0o3svJXf4PF4RoyXWFT\nV8QeVHj6Stu7uFQRpPJo8LTYlky4apatFCuTPQ2L+5f7WPS7Y4WvIUMzV1Dq\n8zF7\r\n=tkp1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOpSkW7qxGnUvGmCDOKmEndTB/X1PdrTbd0brIHu4ohAiA1URk6sV0Ci+TIO3Q6hBZ5HQ+Nb9tlab6XJXqPCRaoIA=="}]},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.1.1_1604358954961_0.9988741293877872"},"_hasShrinkwrap":false},"1.1.2":{"name":"@benkrejci/on-air","version":"1.1.2","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/run.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"**Install as service using \\`sudo npx on-air-install\\`**\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/run.ts","build":"yarn run build-config-validator && yarn run tsc","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/run.js"},"dependencies":{"axios":"^0.21.1","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.1","express":"^4.17.1","lodash":"^4.17.21","pigpio":"^3.3.1","typescript":"^4.3.5","typescript-json-validator":"^2.4.2","yaml":"^1.10.2"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.13","@types/lodash":"^4.14.172","@types/node":"^16.6.1","ts-node":"^10.2.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.1.2","dist":{"shasum":"a8ef54c011e6f9cc60941154ca4e093ae76ba066","integrity":"sha512-srGpEqtVtplj//AqbWnmiIdkSsxgKPy2Uj44Fcz27YdJiUyfU4ywnMqG4FA3IuuBmBwCVlkuJTrUX+YcNR+zFw==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.1.2.tgz","fileCount":49,"unpackedSize":1584012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFu3iCRA9TVsSAnZWagAAFmcP/3PmlQRkoKlL26hD/vPK\nHTmA4x1e0QqT0WQitnuJFiBmuA7Kc3qmaXA8ARgXv6CiQqM7IIr7nSwrB+WZ\n+ri01Dnt0nWxx5PE/yCdXFBr0BfakxGSlsG8fn+sktmcIjNLrNXNfUptsd23\nVyTykpBgn6myfXA73tB8HGVD/BA90/9HgkE6g4EnIYtlpC8C0JoUQdK5wbcx\nqHIGXPZOY6fSdwoLsoWO9iqdgGlWVHakPH9ucewgPMcF6grt+BAvKE3HfjKQ\nCk2VsvJo7sdYa0l5IpaTn+aJuBxocevzl3okPBDqokhQgYVfQFEUBotpHuPR\nCbpY6jVhDTnLrXnHy65Va5rATW305/z+nnTw4fXf7imlJsZnfFwq1+anU8Je\naE4GLortBWNa+22dBGxUpOLH57pqUmKKrU/4mi4KlBYjTu+MGcKTWGi0IgP/\n9pPS2j6ctZ/jK9Rt8+QWbMX0hK/HPQEvmITkTjfooN5U8mOGaXeRaIv/5e0G\nowXcU7TTg1dCvBmxDLf+iJ2tcESF2uuPk+7uXmrzUiOG+e3j8mDiVGesqNtK\n/4vWd4CjO2HmzYwHx40ec5kqt9ipNapoV3NZZgZdk3p25Uyn+V/DZdv5U7jN\ngVGJmrWWCRHpLTO/VQN8e4SV4A48JhrePGKgIqYZtmrp1b57pki5RYyx/n2C\nDZoo\r\n=l0Xw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYQDL69WNYMFO3eGmOctTI0cAniSVNkUgrVvuI53T88AiEA4d2/BXH4pCqR/bN21oceJ5UIP5dYUyklrPIFjgJoViE="}]},"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.1.2_1628892642265_0.5410521110383937"},"_hasShrinkwrap":false},"1.1.3":{"name":"@benkrejci/on-air","version":"1.1.3","main":"dist/index.js","types":"dist/index.d.ts","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","bin":{"on-air-box":"dist/run.js","on-air-install":"bin/install","on-air-uninstall":"bin/uninstall"},"scripts":{"postinstall":"echo \"**Install as service using \\`sudo npx on-air-install\\`**\"","dev":"nodemon --watch 'lib/**/*.ts' --exec 'ts-node' lib/run.ts","build":"yarn run build-config-validator && yarn run tsc && cp -R ./config dist/","build-config-validator":"yarn run typescript-json-validator --useNamedExport lib/config.ts RawConfig","prepare":"yarn run build","start":"node dist/run.js"},"dependencies":{"axios":"^0.21.1","bh1750_lux":"^1.0.1","bonjour":"^3.5.0","debounce":"^1.2.1","express":"^4.17.1","lodash":"^4.17.21","pigpio":"^3.3.1","typescript":"^4.3.5","typescript-json-validator":"^2.4.2","yaml":"^1.10.2"},"devDependencies":{"@types/bonjour":"https://gitpkg.now.sh/benkrejci/DefinitelyTyped/types/bonjour?bonjour","@types/debounce":"^1.2.0","@types/express":"^4.17.13","@types/lodash":"^4.14.172","@types/node":"^16.6.1","ts-node":"^10.2.0"},"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","_id":"@benkrejci/on-air@1.1.3","dist":{"shasum":"aa841cdaa2b25a5e65f4f56746eab8d561e6ae8a","integrity":"sha512-y2eqkKKabfjI7t6ynuGfa562nPjbHzSKq7N9iE+8kExCTtKC4DSLRqfU20cRloEK1G19J3ndE8HOHMzM0Y0r4w==","tarball":"https://registry.npmjs.org/@benkrejci/on-air/-/on-air-1.1.3.tgz","fileCount":52,"unpackedSize":1588026,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGaZ+CRA9TVsSAnZWagAATsMP/iArdaLRbM79viz466wV\nYkUX/jsG6rLTQufOzxzg7SxImWXn9BvYNzgKo8FVRW24PFk5sUH60QhVKseH\nO+zsknLIY/ZTO/+7KaXJt4N4EMQqHDqz9WX1SvcdeofrDNjQkCiPPCommIaj\n144I6oG1CKB2Wi/zxiGluTJ+0pyCc4OHhMFacWUPILVkIa76nA1xvyZufaq9\nv6yviWqpu9szn8KEeu9XmRi7ldzd1vkeejMqa7QBLPIHGnp1I0oBTRNo9TdL\n0qZJUeeOicUlPvEnbcoyWOZw2j6jlW2ik24Vbvq+a2WhALMtDJX2f+Cnu6Y2\nu6xDTzAfrw2MtvkyPaBFGc60a96BVl3Gt1D7PAbxhLSy3/2YCe8MfTe7EiYP\naxtVZySBpJiFPJglZNcqCWtLkIKHWnczWfZNSSIX5FxMRlnBNAo3vUnfrhRy\nxkAq+Y3R/KFRz02oACjNWoSXDmW4MqjzhRZXnMFB2WhKcgQyxJ8Vg1q29FHZ\nSP6oEmyKhp4GRH8q/2XQLrqChOjlROoaNmWVZHYlG/lzgp8vW8pcv7VM/Mng\npQ+0N+27a0m+N1st2r72cw7b/QMjAvjOyG3fn8qyxpWXRTnJ7Ekzh3uNM++X\nwmeX8NWHaslpvZW6xA4VFIE1bhTJh5Q+/QymZteWZ3df6zk9+MkDTSj+Ii9m\nFjEJ\r\n=8j8w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBXHMkNnH6DY8+iWVAzrWe9F1BOhzvPuIxFleczEu9vtAiBOy7un8KccKMl/13i3ldJMjxeS6zfsbbIen2DjTqam2w=="}]},"_npmUser":{"name":"benkrejci","email":"benkrejci@gmail.com"},"directories":{},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/on-air_1.1.3_1629070974725_0.8978595968687875"},"_hasShrinkwrap":false}},"time":{"created":"2020-10-21T06:22:14.826Z","1.0.1":"2020-10-21T06:22:15.030Z","modified":"2022-04-04T18:23:02.309Z","1.0.2":"2020-10-22T00:42:42.434Z","1.0.3":"2020-11-02T21:15:07.383Z","1.0.4":"2020-11-02T21:25:01.686Z","1.0.5":"2020-11-02T21:54:20.931Z","1.0.6":"2020-11-02T22:41:06.670Z","1.0.7":"2020-11-02T23:01:17.987Z","1.0.8":"2020-11-02T23:07:43.135Z","1.0.9":"2020-11-02T23:09:09.497Z","1.0.10":"2020-11-02T23:10:04.860Z","1.0.11":"2020-11-02T23:11:20.129Z","1.1.0":"2020-11-02T23:14:07.283Z","1.1.1":"2020-11-02T23:15:55.207Z","1.1.2":"2021-08-13T22:10:42.553Z","1.1.3":"2021-08-15T23:42:54.867Z"},"maintainers":[{"name":"benkrejci","email":"benkrejci@gmail.com"}],"description":"I built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted. This solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.","repository":{"type":"git","url":"git@github.com:benkrejci/on-air.git"},"author":{"name":"benkrejci"},"license":"MIT","readme":"# What is this?\n\nI built a pair of \"on air\" lights so that my partner and I can signal to each other when not to be interrupted.\nThis solves the problem of one of us (mostly me) barging in on the other while they are in the middle of a work call, zoom meeting etc.\n\n![Box front animated](./docs/box-front.gif)\n\nThis project ended up being a pretty good learning experience for me around circuits and specifically driving high-power LEDs.\n\n![Box interior](./docs/box-interior.jpg)\n\nEach box will discover any other boxes on the network via bonjour (zerconf, avahi) and communicate automatically with each other to reach consensus about shared \"status\".\n\nBy default, status can be \"off\", \"low\", or \"high\", or \"party\" which map to off, yellow, and red, and multicolored respectively.\nThis can, however, be configured to support different use cases and hardware configurations.\n\n# Installation\n\n### Install Node\n\nOn a recent PI (2+) nvm should work just fine:\n\n```sh\nsudo apt install -y nvm\nnvm install 12 --lts\n```\n\nOn a 1st gen Pi or Pi Zero W (which is what I ultimately used mine), you can install from unofficial builds like this:\n\n```sh\nwget https://nodejs.org/dist/latest-v10.x/node-v10.23.0-linux-armv6l.tar.xz\ntar -xvf node-v10.23.0-linux-armv6l.tar.xz\nsudo cp -R node-v10.23.0-linux-armv6l/* /usr/local/\n```\n\n### Install this package\n\n```sh\nnpm i @benkrejci/on-air # shouldn't need to install globally, so just make sure you're in a directory you like\nsudo npx on-air-install # this installs pigpio and registers the on-air-box start script as a systemd service\n```\n\n- You can then optionally alter the default config: `/etc/on-air-box.yml`\n- And start the service: `sudo systemctl start on-air-box`\n- To see logs: `sudo journalctl -u on-air-box`\n- If you have issues, to make debugging easier, stop the service and run the script directly using: `npx on-air-box`\n\n### Note\n\nThe above install script sets up a systemd service, which will work on modern versions of Raspbian (as well as most Linux distros).\nIf this doesn't work, you need to manually set up an init script so that dist/index.js runs on startup. See [bin/.installService](./bin/installService) for reference.\n\n## Configure\n\nAn example configuration can be found in [config/config.example.yml](config/config.example.yml).\nThe install script copies this file to config/config.yml so feel free to change it to suit the specific hardware configuration you are using. See [RawConfig interface](lib/config.ts#L3) for available configuration options.\n\n# Hardware\n\nThis project requires some knowledge of driving LEDs from a Raspberry PI or other digital IO. I will describe my setup here.\n\n## My build\n\nThis is best build I currently have. I use darlington transistors to switch the high power LED circuits from the 3.3v logic level out from Pi and constant current drivers for each of red and green led circuits.\n\n### Components (for 1 box)\n\n-   Raspberry Pi Zero W\n-   3W RGB LED chip [\\$3 on Adafruit](https://www.adafruit.com/product/2530)\n-   3x darlington transistors (TIP120) [10 for \\$7 on Amazon](https://www.amazon.com/gp/product/B083TQN12B)\n-   3x voltage regulator (LM317T) [25 for \\$8 on Amazon](https://www.amazon.com/gp/product/B07VNNHWF9)\n-   _Optional_ heatsink for at least the red LM317 [12 for \\$6 on Amazon](https://www.amazon.com/Insulator-Rubberized-Regulator-Transistor-20mmx15mmx11mm/dp/B07PGVZ7CJ)\n-   Resistors (1/4W)\n    -   For 3W LED regulators:\n        -   3x 1kΩ (1 for each color)\n        -   5x 20Ω (for red)\n        -   4x 15Ω (2 for each of green and blue)\n    -   (Optional) for secondary \"local status\" LED:\n        -   1x 80Ω red\n        -   1x 120Ω green\n        -   1x 50Ω blue\n-   Buck converter (for powering Pi from 9v source) [6 for \\$10 on Amazon](https://www.amazon.com/gp/product/B076H3XHXP)\n-   Switch/buttons\n    -   I ended up going with momentary push buttons [like these colorful chonks for \\$6 on Adafruit](https://www.adafruit.com/product/1009)\n    -   But originally when I only had 2 statuses, I used an ON-OFF-ON rocker switch [I like this thicc boy (2 for \\$13) but there are cheaper options](https://www.amazon.com/gp/product/B07PDQN6P8)\n-   Optional light sensor to automatically adjust brightness: [\\$4.50 on Adafruit](https://www.adafruit.com/product/4681)\n-   Optional secondary \"local status\" RGB LED: [10 for \\$7 on Amazon](https://www.amazon.com/gp/product/B0194Y6MW2)\n-   Some barrel jacks [5 for \\$8 on Amazon](https://www.amazon.com/gp/product/B07C46XMPT)\n-   7.5-9V 1A DC power supply (any higher than 9V and you'll be dumping a lot of power into the LM317s as heat) [I used this 8.5V one \\$8 on Amazon](https://www.amazon.com/gp/product/B08CH9C3K6)\n-   Some kind of enclosure, I cut up this wooden box [\\$14 on Amazon](https://www.amazon.com/gp/product/B004I9SLEG)\n\nTotal for the fully loaded out setup is ~\\$100 for 2 boxes and you'll have spare parts.\n\nYou can either print the PCB below (~\\$15 for 5 boards with shipping; arrives in about a week from China) or use some blank prototyping boards.\n\n### Circuits\n\n#### Simple circuit\n\nThis is the simplest version of the driver circuit I made which only uses red and green and doesn't have any capacitors for decoupling.\n\nSource: [easyeda.com/benkrejci/on-air-box](https://easyeda.com/benkrejci/on-air-box)\n\n![Circuit Schematic](docs/simple-schematic.svg)\n\n#### PCB circuit\n\nHere's a PCB I made which has room for 3 LEDs if desired, as well as decoupling capacitors. There are pads for up to 5 resistors for setting the red current, and 4 for each of green and blue. Choose number and values of resistors based on desired current and power dissipation (see next section). The PCB only requires 1 layer so you can get them made pretty cheaply (\\$2 for 5 on [jlcpcb.com](https://jlcpcb.com/)).\n\nSource: [easyeda.com/benkrejci/on-air-box-2](https://easyeda.com/benkrejci/on-air-box-2)\n\n![Reference Schematic](docs/pcb-reference-schematic.svg)\n\n![Circuit Schematic](docs/pcb.svg)\n\n### Resistor values and power dissipation\n\nHere's [a very detailed explanation](https://theparanoidtroll.com/2011/01/05/constant-current-sourceload-lm317/) of using a LM317 voltage regulator to build a constant current source.\n\n**TLDR; to find the value of resistor, use the equation `R = 1.25V / I` where `I` is the desired current in amps.**\n\nIn my example, I want the red LED to get 313ma so that it's close to its maximum brightness. So `1.25V / 0.313A = 4Ω` or 5x 20Ω resistors in parallel.\n\nI want the green LED to get 167ma, so `1.25V / 0.167A = 7.5Ω` or 2x 15Ω resistors in parallel. I am using almost twice as much current for the red LED because green appears much brighter to the human eye and therefore a good luminous yellow needs more red than green IMO.\n\n**To figure out the required power rating or number of resistors needed, multiply `Pr = 1.25V * I`**\n\nSo for the red circuit in my example `1.25V * 0.313A = 0.392W` is the power dissipated by my resistor, hence my choice of 5 20Ω resistors which are each rated to dissipate 1/4W of power (it is recommended to double the power rating to allow for headroom and extend the life of the components).\n\n**Finally, let's figure out the heat that will be dissipated by the LM317. To do this, we calculate the voltage drop across it and multiply it by the current `(Vin - Vled - Vref) * I = Pu` where Vin is input voltage, Vled is voltage drop across LED, and Vref is the LM317 reference voltage of 1.25V.**\n\nFor my red LED `8.5V - 2.5V - 1.25V = 4.75V`. This is more than the minimum 3V the LM317 needs to operate, but will dissipate `4.75V * 0.313A = 1.49W` of heat. If you are putting [more than 0.25W into an LM317, you need a heatsink](http://www.reuk.co.uk/wordpress/electric-circuit/lm317t-heatsinking/).\n\n**\"My status\" RGB LED**\n\nFor this smaller RGB LED I use traditional resistor current limiting since the power dissipation is so much lower.\n\nRed resistor: `3.3V - 1.7V = 1.6V / 0.02A = ~80Ω`\n\nGreen resistor: `3.3V - 2.7V = 0.6V / 0.005A = ~120Ω`\n\nBlue resistor: `3.3V - 3.0V = 0.3V / 0.006A = ~50Ω`\n\n### Notes\n\n-   You could improve the efficiency and use a higher voltage power supply by replacing the LM317-resistor pairs (top right) with switching constant current regulators [like this one for \\$13](https://www.ledsupply.com/led-drivers/buckpuck-dc-led-drivers) but these devices are relatively expensive and you really want one for each LED that you drive.\n-   You could also simplify this circuit and do away with the buck converter by just using 2 power supplies: a 5v one to power the Pi and a higher voltage LED supply.\n-   Also FYI, the reason for the higher voltage power supply even though the LEDs themselves only drop 2.5-3.6V is that an LM317 requires at a minimum of 3V voltage drop across it with an additional 1V of headroom. So you want a minimum of 7.6V and not much higher, as the higher you go, the more power gets dumped into heat by the LM317.\n-   I also looked into using FETs for switching instead of darlingtons, but I don't have any on hand that switch on properly with 3V logic level input and those can be hard to find. If you are switching more powerful LEDs, though, you will likely want to use an N-channel MOSFET, possibly with a logic level shifter [like this \\$4 one from Adafruit](https://www.adafruit.com/product/757).\n","readmeFilename":"README.md"}