{"_id":"@alleyio/cheatbeads","_rev":"3-102225017327661ec0fd4bb689a02456","name":"@alleyio/cheatbeads","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@alleyio/cheatbeads","version":"1.0.0","type":"module","description":"Encoded communications for internally vibrating accessories while playing chess","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/josho/cheatbeads.git"},"author":{"name":"Josh Alley","email":"josh@alley.io"},"license":"ISC","bugs":{"url":"https://github.com/josho/cheatbeads/issues"},"homepage":"https://github.com/josho/cheatbeads#readme","gitHead":"9adb852cb74e1d61f3d09029382073114eb63564","_id":"@alleyio/cheatbeads@1.0.0","_nodeVersion":"17.0.1","_npmVersion":"8.12.1","dist":{"integrity":"sha512-UZOTug+1wKDbHEtKfmOtfsdDQMW/IZwUf0lIM22/IbmylEWA21gQ6Ec/eLkZQkN8fAzoyy8PRYlVebXz0le8aw==","shasum":"f53e048124873aac8d46a5ac52a72a578b3bb5fe","tarball":"https://registry.npmjs.org/@alleyio/cheatbeads/-/cheatbeads-1.0.0.tgz","fileCount":11,"unpackedSize":10810,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOF2MgCeVlAX31Y68a2ZQfRMFQ/sKrJrxhJWajcOgqDQIhANoUBdnUR9cQVK/7GnYuBLPgs6u6MnmuktrAnEFkk76n"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJpQVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKVBAAgOo6KD0xX3/6GMny4Dz1RH9ehvo53+kXCulYpmlF+d2h846c\r\nLQceRwF5vbs9vvhxdq50i66uvozndcjF64Y/rBttkgBfmKKkn2Hgjrvx1FnK\r\nJg/ycFPUYQ2bv1HiyVagYsf5zgkC7J3+rEMY17RPuMIU6Ijl1Nz5T3Q7dKQf\r\n2xXTVVayhHfxWAIYOvnR83MG0WTXgXPQykKUQUq3v0PT0njTy2Oyg4IbHkS/\r\n8bYRad3mi6hzqL8NKrOBrss1YlXMrpvqqHvwXnva2IFjFGtAyniF/KUsiTMN\r\njkW9bx2WAPGx1xEwGOR2Tts1XhFLWaHK/CG9McUKK+WL9zxBmo1RI6kf4ql9\r\niROsctYAkKvI8kBG9otJdgrG+FmFIoSoCxf+H7Lfzcn+CdKwfn7ZNGjYrOBu\r\n8YV4ivt7wls7uoS7WyPfDwFXUmYh1Ucvs9ibdHokg0XbCQfMJgTERlfio5BP\r\nFXBQ91MHQbHjD2CAEN+qgQ1iZjiUkoJxWNecpct/uZlwq31rvhjY8ykkKEtq\r\nh9pbZ+kNiWgzvlV1zXgEx99S7qgf8LlQqv8wWdU9DQGCWIWTc/RgoNlJC63D\r\nMzaVBrR16zJsMdnT4NkzuWUwthjt3q0mdM9ydmLtlnYDrpJv2MTl/vzpJpDB\r\n7/1eF85NSCslJyYLP+0pG98OKg9FTjoPrjw=\r\n=kllF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alleyio","email":"josh@alley.io"},"directories":{},"maintainers":[{"name":"alleyio","email":"josh@alley.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheatbeads_1.0.0_1663472661606_0.41196949316550757"},"_hasShrinkwrap":false},"1.0.1":{"name":"@alleyio/cheatbeads","version":"1.0.1","type":"module","description":"Encoded communications for internally vibrating accessories while playing chess","keywords":["morse","vibration","chess","notation"],"main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/josho/cheatbeads.git"},"author":{"name":"Josh Alley","email":"josh@alley.io"},"license":"ISC","bugs":{"url":"https://github.com/josho/cheatbeads/issues"},"homepage":"https://github.com/josho/cheatbeads#readme","gitHead":"7efffa8f35866801b5d047f6f19b4f06f8e5a774","_id":"@alleyio/cheatbeads@1.0.1","_nodeVersion":"17.0.1","_npmVersion":"8.12.1","dist":{"integrity":"sha512-q+DWhbzQLy325VR0IW1RkSSxxvd8PQyi+Wc421KBQje3xvmEivmwNJUjne3qo8L4VokESMzg7knhAXWSXP2eqA==","shasum":"e0427a2a765a0f88ba2b3d5a339350a9390ecda8","tarball":"https://registry.npmjs.org/@alleyio/cheatbeads/-/cheatbeads-1.0.1.tgz","fileCount":11,"unpackedSize":10869,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeszpXaAzu/lK4+xYa4BT5tp63pZJBQseqRdZG3puC/wIgCSN6XiX6D/ZJ/QDAzx4byPpwYoZXIDD+J+F0gXmlUbc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJpS+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomEw//YOxn2suKhpG8Dl+FafFIXiMYf0EQ/k3xS/7WMIw1ZDQVvDNZ\r\nXHrwj/hlpdtiT6F3sVBfWpNTuYtzkSTyDrvRvmrPH/GbcTxLIrnYFHCg2qlf\r\nCWFHH649y1FN2g2tmmDPwb33U/K1EPkz1cRLhaXpe7HYOTHXTOCKNxZ7fxl3\r\nQgMqAJi1/LMDUKbmCZiVKh6lLUg18xHuNwTR4+NUz1A7yDAeJdgety+Anq6r\r\n+ggt2aVizx6Mg1evgHo1MUUf0dlOejS5Eo3nqzGmRIbR4aQCRc48X2/cM1fT\r\n7fgVBZQuBTKAAeMI5h+YWcWO4NOXm4Yr3hTwR5mZA6utsyPRJi5bPq7Pcptj\r\nq5Y6z2h/XU8s+Wu+lGRcIUjpvnoQbURpiAREwhiKnH2v+1oB2eS1EMceguVn\r\nCarj6YBFSHm0uoHkx9nOQYUe4TNYnJYnGiNSwYWdoBTiI7D1DoeY46SPAQA9\r\nMu8dI8sRGy/hcqnXlf92AcCF6PvulDEUj+hp8PTdM8xvSO5HsaFnYLJTtNQr\r\nPuPYe5FhmP2PmWVSZ8kGJpuv3xeq4vToAeUBc+ABf4InzPhX/ud3tnDKcpeA\r\nUnhh1frjfq2pLFFRS28ZLZ4Sa8T46wGN38X1TpY/X1kN6+tNL6aGmkwqneCX\r\no+lS8zXaSXYYJ6Y/WPLCEhSvxzThWQSgM+w=\r\n=+3gr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alleyio","email":"josh@alley.io"},"directories":{},"maintainers":[{"name":"alleyio","email":"josh@alley.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheatbeads_1.0.1_1663472830355_0.10632777841937391"},"_hasShrinkwrap":false},"1.0.2":{"name":"@alleyio/cheatbeads","version":"1.0.2","type":"module","description":"Encoded communications for internally vibrating accessories while playing chess","keywords":["morse","vibration","chess","notation"],"main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/josho/cheatbeads.git"},"author":{"name":"Josh Alley","email":"josh@alley.io"},"license":"ISC","bugs":{"url":"https://github.com/josho/cheatbeads/issues"},"homepage":"https://github.com/josho/cheatbeads#readme","gitHead":"abb5a2791a8da4d6620eed2ccca6c3b5ab044056","_id":"@alleyio/cheatbeads@1.0.2","_nodeVersion":"17.0.1","_npmVersion":"8.12.1","dist":{"integrity":"sha512-+jkPyw61+wwSI1LiFQ72e4PDjIdpzCnCJxvBcePAGcn4WVGl7fEuogPngICP1RB+f9KnnszoH0HsO6nHwWiZtQ==","shasum":"9f3317d7a9da6b2d18832bf0085d609164690871","tarball":"https://registry.npmjs.org/@alleyio/cheatbeads/-/cheatbeads-1.0.2.tgz","fileCount":11,"unpackedSize":10871,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3Xux5lHO2z3/WZxDXQGnt/e0RvucOdTIxJ5pv8GkskwIhAM6nTt6iUgYI0aEvAJp9hjnabKSgmUaFb2jv22kfViWd"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjJpU5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPMQ//Sk8ZxookUd/jxctb5f2N9E94w+ttdhAxKFDCTrRenauACSBY\r\nZsYKkIJV7+Dca29VsrRQ/gKSNyyjuiUrn67dtox18XI6PJBvvnhygIuCmCHZ\r\nBe2xkPOJp2y2SHuOSP6lrC6Dxe+DfxHqwXOlb5nuuk6w1e9443yllh/WBLOs\r\n+VH8kmn3/Ps7XkeZ9wpAy2lLf6yBPLGeIPaiXPbfhWqfWLIFw7QgirJL8Hd3\r\nlaTte5IjRlObm5fMVuFmZ1AjHnnI9l9cJ3Hrdu9fyZ1Kkyo0Xiw+4J7oDY8r\r\n+kBOy4fgog4P9LdLaUkZYnD54yTbw88IMxKnFUNF4caoE7uSWDARIEKuO5dF\r\nuibZd9jFfFeICGIy30Y4qtfJAE5PUY6eEIKYRO06l4VepE5CRaPQmyVxdic3\r\n2DZu9jd8qD6+sfEFoMM4QlGZjmVoL9Z1SAWRdDAib65Bet4c06UWhwcDZm6x\r\nHFA8mjVWto/xRbmIrTyZhwiWcNsVyoZxw7RiyInx4x9eNZfnycyI6uBCbvsf\r\nHUPXF0Th5Q2sR4eiO8vP6lnaMGUKWquk35A+aO7CGivMQxcH2778aNlRBis/\r\n20soTrJXXv3uy6kBMFwVgRjaOD5rbLp5yHS6xkLP2wB0h9hP5r5oSFfJ662L\r\nvoMgcmobBuYAwb4dGMcemx8DdJ7Oy5n5r5w=\r\n=6zC0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alleyio","email":"josh@alley.io"},"directories":{},"maintainers":[{"name":"alleyio","email":"josh@alley.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheatbeads_1.0.2_1663472953739_0.4664330891202981"},"_hasShrinkwrap":false},"1.0.3":{"name":"@alleyio/cheatbeads","version":"1.0.3","type":"module","description":"Encoded communications for internally vibrating accessories while playing chess","keywords":["morse","vibration","chess","notation"],"main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/josho/cheatbeads.git"},"author":{"name":"Josh Alley","email":"josh@alley.io"},"license":"ISC","bugs":{"url":"https://github.com/josho/cheatbeads/issues"},"homepage":"https://github.com/josho/cheatbeads#readme","gitHead":"4bc487a5205757101b014e0f5a9c369977225ce8","_id":"@alleyio/cheatbeads@1.0.3","_nodeVersion":"17.0.1","_npmVersion":"8.12.1","dist":{"integrity":"sha512-mFBe5BSvWYNz5hzyAFjnufaqG/IosMJ/5yk7rX/GlARxsJvbEH3PxNh1Gh9YECazxTe0mUkYiVN+uQSYFcGJ3w==","shasum":"3e9b69f23111e7b18ecceba4dd76444ec1568748","tarball":"https://registry.npmjs.org/@alleyio/cheatbeads/-/cheatbeads-1.0.3.tgz","fileCount":11,"unpackedSize":10896,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDd4oJF6YN+nBc7m21sw60g/cC8RZfrVO6L5xuJNHxBdgIgDSJD7BK0YcU6GdkNlMq+G5jw3vkAbUadHzFDdeEoF4w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNPKKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr16A//QgaYXdK93wzr5p+Q41PcrLVxymV8xfU3Hw9W824PRridAUIN\r\nhJ02HCCa24W7Ev1ZFTiXF2wpzhPFp2oyXyqH5aGBzjAl7yNRlQmQkbRujhR6\r\neNl97XgQ8Pzb++o8SmLPN4m8IzAExw26h/jKDgXAGpcAmsLBa5UbrVTcg0bL\r\nv/Z7YXOkqhJPkV+j1XozokeMIBDOxpGGXBMTdSNB87hOHNGW27mg1KXJt6LL\r\nmJH1nyLSCsbN7o9aLroy9+Q8YftJtt5IlQLZ4Op14SFa2V7m1Tj+WUjmti0g\r\nOQAfX87LRydL77OYNhVxzuxDoKbcECFLHPWx654D82uDRcH/6i1VfNaaxVby\r\nVLQ1MY0C/pBRJtOJB1yISM1OXElM94Mj1qbgwqnrwCu20y6nRKCualmDR0nA\r\nZz0SUhXaHOfdcIKhgQdD9PVLumvluBcoxeKBtTRcOyveQzcmrPzAE4cXcUVs\r\nj2TLKE/1BeicCQ9mmLLqjktQJmhpaPVzcPqewa7qXXsNjEclMsbYH5RxSBmo\r\nDY1Ox3B0E0x72zNet1cdXvvHf1VwQ/OZmxyS50C2RN4eahQT6eoEb4xWxW6r\r\nsKfBuHQjeRDhYRCvK7yUhRZd6oiqCPY6wcG3pc+wZgFn/8bs8xBclk8vFIZ/\r\n+W8/tfsBLSpnlKUuh1DWc/Y/lCcvy4pgaCg=\r\n=Sdrr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alleyio","email":"josh@alley.io"},"directories":{},"maintainers":[{"name":"alleyio","email":"josh@alley.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cheatbeads_1.0.3_1664414346429_0.26081151873314057"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-18T03:44:21.548Z","1.0.0":"2022-09-18T03:44:21.748Z","modified":"2022-09-29T01:19:06.635Z","1.0.1":"2022-09-18T03:47:10.485Z","1.0.2":"2022-09-18T03:49:13.915Z","1.0.3":"2022-09-29T01:19:06.572Z"},"maintainers":[{"name":"alleyio","email":"josh@alley.io"}],"description":"Encoded communications for internally vibrating accessories while playing chess","homepage":"https://github.com/josho/cheatbeads#readme","repository":{"type":"git","url":"git+https://github.com/josho/cheatbeads.git"},"author":{"name":"Josh Alley","email":"josh@alley.io"},"bugs":{"url":"https://github.com/josho/cheatbeads/issues"},"license":"ISC","readme":"# Cheatbeads\n\nCheatbeads is a framework for taking a string of text, transcoding it into a kind of binary expression, then relaying that to an emitter for handling.\n\nOne use case is to convert chess notation into morse code, then emit it wirelessly to some device smuggled onto a person, allowing them to silently receive the message (eg, through vibrations) without arousing suspicion.\n\nIt comes bundled with a Morse code transcoder and a simple console emitter, and knows standard chess notation. It will turn the UTF8 chess pieces into their ASCII equivalents by way of aliasing, allowing for better compatibility with most notation exports.\n\n\n## How to use\n\n`npm -i -D @alleyio/cheatbeads`\n\nIt's ES6, so download, fork, or whatever, and then:\n\n```\nimport Cheatbeads from './cheatbeads.js';\n\nimport Hoarse from './transcoders/hoarse.js';\nimport Console from './transcoders/console.js';\n\nconst stimulation = new Cheatbeads({\n    transcoder: new Hoarse(),\n    emitter: new Console(),\n});\n\nstimulation.parse('♔b6#').emit(); // king to b6, checkmate\n\n```\n\n\n## More complex transcoders\n\nMorse was chosen as a simple example of transcoding due to its binary state expression of `.` and `-`. If connected to a physical device, we can understand this as `off` or `on`, or perhaps a short & long vibration, respectively.\n\nThe result is still a very long series of Morse code characters, and then translated to something physical like a vibration, this becomes a time-expensive process. However, Morse could be adapted to work with 3 or more state expressions, giving more data density in a shorter amount of time.\n\nImagine 3 devices that accept a `off` or `on` state. If the devices were located such that the wearer could discern which device was vibrating, you could have a huge number of unique sequences. That seems impractical to memorize that many combinations, so to keep it simple, there's a demo transcoder called \"Hoarse.\"\n\n## Hoarse\n\nHoarse is a structured way to communicate chess notation through three, independently vibrating devices. The goal is to be easily understood without learning too many combinations of vibrations. For the purposes of simplicity, we'll refer to the devices as A, B, C; with the vibration duration denoted by the familiar Morse, or `.` and `-`.\n\n- Piece names (and in one collision example, `b` or the bishop) are denoted by a `.` vibration from the B device. `B.`\n- Board rows (numbered) are denoted by a `-` vibration from the A device. `A-`\n- Board columns (lettered) are denoted by a `.` vibration from the A device `A.`\n- Capture is `C-C-`\n- Check is `A.A-B.B-C.C-A.A-B.B-C.C-A.A-B.B-C.C-A.A-B.B-C.C-`\n\nThis project contains a sample emitter for a three device setup, compatible with Hoarse.\n\n\n## In close\n\nTranscoders can utilize the physical placement of physical devices to creat common patterns of vibrations that are both easier to recognize, and create unique sensations that aid in memory building.\n","readmeFilename":"README.md","keywords":["morse","vibration","chess","notation"]}