{"_id":"@bossoq/soundtouch-api","_rev":"2-72009e465049b448e9d2e98e6115ccaf","name":"@bossoq/soundtouch-api","dist-tags":{"latest":"1.1.2"},"versions":{"1.1.0":{"name":"@bossoq/soundtouch-api","version":"1.1.0","description":"SoundTouch API using TypeScript","main":"dist/index.js","types":"dist/index.d.ts","keywords":["soundtouch"],"repository":{"type":"git","url":"git://github.com/bossoq/soundtouch-api.git"},"scripts":{"postinstall":"tsc"},"author":{"name":"bossoq"},"license":"BSD","dependencies":{"axios":"^0.26.1","bonjour":"^3.5.0","xml2js":"^0.4.23","@types/bonjour":"^3.5.10","@types/node":"^17.0.21","@types/xml2js":"^0.4.9","typescript":"^4.6.2"},"devDependencies":{},"gitHead":"621882061cd950753fa3cd366f985f6fe9562fe8","bugs":{"url":"https://github.com/bossoq/soundtouch-api/issues"},"homepage":"https://github.com/bossoq/soundtouch-api#readme","_id":"@bossoq/soundtouch-api@1.1.0","_nodeVersion":"16.6.2","_npmVersion":"8.3.0","dist":{"integrity":"sha512-7ump2tCy0JcVNnjQkk98FH5nBpbdOAbEHA2fV0sjncunp4qRB/SPti/AsPhD4mfMAHXnfChNW3h6c9K1EMGm0g==","shasum":"0dfe8e267d6c50d74de7c59038c8673791786f1e","tarball":"https://registry.npmjs.org/@bossoq/soundtouch-api/-/soundtouch-api-1.1.0.tgz","fileCount":110,"unpackedSize":138448,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKbZm5aER0s13owCUUudbyvmvLh4SXD4TvCGs8gXUT7QIgNKwMVH7fr+xLo5IA2s09CxPpWR9+Gi2798j4pV8Ht/o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWqmiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrb7A//ToDYGMPUVJ0LhoZonYUie4smGok/aJqM9vfAf/RHBL3WdhyF\r\nj5qqOzJyhq7gZeiWSmdr5/TetJhGyfhppaC7ZPA8RnvC64zwAVITeogeMnge\r\ncJnP5L1NrAA+fETCP+ZbSt2bfTn5gdreBY0zke4HYk3z566dxsQJojVEtk1w\r\nniVd8sM91fI2UuR3Gm5xYut5tlrLUTOy60+aLFEJbyfoVnrQxMXDFHw/CQWq\r\nCzzvXWLpmSXvdA+KQJSp2H5oSxAucBf9TbefeWhdxt4u5cnS8gza1YofwWSj\r\n/NOWlZEplVp/L8Pa8VUT3rXZJ/u0uHlR+2HPbR+PJekbWuUQpm0LxXDqfhXF\r\nxuPs3cocSKHmWk7TQE/l0jzUBbe4wJbVK5iBL9te1lkXI3XRm8Biuxpeoq5w\r\nZd3G1OAnirlvgZliqUZ6DNj2bR39KROkvSLFLLqNbwNy2TL03OXoAInWF6wj\r\nSe5Y/WWDAwn7wMzV40lneOJB8a0n1FUG2psPJH+z88Zv4zYmeARH/ciuwaVL\r\ndm8TMtI6upZiPl5OfMXhDr2e9ZXiyWWqj91ypnYU+/4Q+8ihQlTPnD0p+iU9\r\nfR5qpDI4Z92w6TTj/r+gdTg3ri7QPpZ3HAbM5bkTZS0W0rKYQeeZf+mc4UCI\r\nR99bgvTFo5HhIwJKTBPsxaxxVMfkEZ/gsl4=\r\n=Pmfn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bossoq","email":"kwajakajornrit@gmail.com"},"directories":{},"maintainers":[{"name":"bossoq","email":"kwajakajornrit@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/soundtouch-api_1.1.0_1650108833874_0.49373140441957064"},"_hasShrinkwrap":false},"1.1.1":{"name":"@bossoq/soundtouch-api","version":"1.1.1","description":"SoundTouch API using TypeScript","main":"dist/index.js","types":"dist/index.d.ts","keywords":["soundtouch"],"repository":{"type":"git","url":"git://github.com/bossoq/soundtouch-api.git"},"scripts":{"postinstall":"tsc"},"author":{"name":"bossoq"},"license":"BSD","dependencies":{"axios":"^0.26.1","bonjour":"^3.5.0","xml2js":"^0.4.23","@types/bonjour":"^3.5.10","@types/node":"^17.0.21","@types/xml2js":"^0.4.9","typescript":"^4.6.2"},"devDependencies":{},"gitHead":"407fac7d0121c17bb59ec2f9e6658598558347b1","bugs":{"url":"https://github.com/bossoq/soundtouch-api/issues"},"homepage":"https://github.com/bossoq/soundtouch-api#readme","_id":"@bossoq/soundtouch-api@1.1.1","_nodeVersion":"16.6.2","_npmVersion":"8.3.0","dist":{"integrity":"sha512-GbltaJ0BAL+mdg+vkcHAurtPl3sa4qtVHqJ7/lexLbKBsno8DR75Kmx5ydi2J63JOWqKxJekqLq1JCJEJGpSyA==","shasum":"21aafebc0b4851936a50e800da800c42bd71fbc3","tarball":"https://registry.npmjs.org/@bossoq/soundtouch-api/-/soundtouch-api-1.1.1.tgz","fileCount":110,"unpackedSize":138073,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2yfibFJ6QMalzJfuwvg8gIysazvzMvFJt7CmYpFpGcAIhALyLlFUBXj6EqCQuGOXwFC37aQ0SL9YAXUW+HbaQk7oP"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWqq6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqsZg//Uqb1798aYn6jotCquGaKQO3CNfF7Ckt7POo+kEv5IFAFoMNP\r\nkQUgOvfRJLp2zjG2XkojuaPDBpuSehetYCWC5JuMI1KXhJ0gxCDyBa6LwoWV\r\nQtsrppnNgK6yU8W14lKF2imgq2+anhZlDlSdP9qiFML7mHL9qkqwBj7/8aoR\r\nt9jqjraSNuyq2nBEOUqgKkhsCrIM1UsLrhrFJkgKiEi6oX9sy0HPHsNcu3o3\r\nETSWuj9X24Hs1Lh9gkJYFvYsq5uVt+FWPRFdUQw9JPW6ZiVjxuBi2Gu72CNg\r\nDM39zBWksjF4y+exzrtUjzhcbDlxIVga4/iGkJd7a1PNj9+3CuNKttqm8NzQ\r\n6UqiZ4K6+KrEXuYjvpVblAMgjJRNnhu2Ww3ITsqC2FCPLunA04V6t5RyaNaV\r\nh5tbe4dWiqma0Of4TDTA8JPhTmXqKFP4edXO2kUThGbEegzkS614W9Jo5qw4\r\nyPsr3KbE41vWg4bdHm65/R8nGKUXX5EYjBnp6mX5AXSxcJDAyPER4QNDD9z8\r\n5vt6sM7bR2zF81mEAPeva5STx0CX/zzK1KegiVUwZaf3gt6Sn3mN+O2RzN3n\r\nq8a09SQMwlV6y0v++xNJZ2LYGUlIpHSyQWS6sMzsy0j5hN6nTShNWH+bH0He\r\nOZDbJP56eNigMfLCNXeTN+r9C4n7kKqyjDs=\r\n=3odJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bossoq","email":"kwajakajornrit@gmail.com"},"directories":{},"maintainers":[{"name":"bossoq","email":"kwajakajornrit@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/soundtouch-api_1.1.1_1650109113918_0.6048247041442099"},"_hasShrinkwrap":false},"1.1.2":{"name":"@bossoq/soundtouch-api","version":"1.1.2","description":"SoundTouch API using TypeScript","main":"dist/index.js","types":"dist/index.d.ts","keywords":["soundtouch"],"repository":{"type":"git","url":"git://github.com/bossoq/soundtouch-api.git"},"author":{"name":"bossoq"},"license":"BSD","dependencies":{"axios":"^0.26.1","bonjour":"^3.5.0","xml2js":"^0.4.23","@types/bonjour":"^3.5.10","@types/node":"^17.0.21","@types/xml2js":"^0.4.9","typescript":"^4.6.2"},"devDependencies":{},"gitHead":"4cbdda1680d2b3565386f7311f34bb0d64a71c15","bugs":{"url":"https://github.com/bossoq/soundtouch-api/issues"},"homepage":"https://github.com/bossoq/soundtouch-api#readme","_id":"@bossoq/soundtouch-api@1.1.2","_nodeVersion":"16.6.2","_npmVersion":"8.3.0","dist":{"integrity":"sha512-+L1vV1Rujy7sehIAC+y5BvhL4vlXcoyGMSXv5DeGyNiS0X7a2Q+Nht9LT6wy3NPs3hmLvrJWXaZiNqQb25Cnog==","shasum":"3b7bebd665890fd5d653584ca5d47c34b8e9f0e8","tarball":"https://registry.npmjs.org/@bossoq/soundtouch-api/-/soundtouch-api-1.1.2.tgz","fileCount":110,"unpackedSize":138028,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJSKQWomSsnW4XAZVRgIrz5DiXT7ru3xOPW8M7k/y8QwIhAOHLZNIB1Xu2ChWb9DrZDn8VXHE6MCPlBfDVhLRyGhrH"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiWq6WACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqT9g/+KicfldB8WfUelSmP+RBDk5G6JrkkE19a8/xFB7KWQw2aS0Hw\r\nhaoBeOiDkAJEuDCoDKfb1QoX/7bqggPBcDoDoqCI6PA5mVDxf/qSr8LCqnB5\r\nzTXp4jkPYk0hEMoWK0Sslm1Gdml0MbrPqksSm/Y9tjFXyZYQpfYxFT+807dK\r\nvnasKNGlySIzdKw3bfuA+SRne2/9EFTJ4s3m0Vq5ET7vYy637rV5d/8dSJhW\r\nVftFR6/45pANvfchZRWiWxoEGPlpI12Gs/LbzxfAZ2hlW9G2QnwNPy6TUdrT\r\n2cx0crpeTtKGq5WQ9gsxxfGZhNV4H+81okjD89ubHItbCllqLjFpvlpk2rtw\r\nGCEYYhkSPGQDzuDpjyaERR73OjSpS+uEEZ8Mmo831hS2J8+LDxNZsyZ5I+qf\r\nrHvU4tEB7VF7krzuZlpz0RH4iYDA58Hgx58U5FrwxK/EOl1e2WJaUDpC0ZVk\r\nh48EhmYqc3NcUM/Zqxz99kGQeT04TxxnzxYxPGq5vJ88RNoKQVEFyLmgy3fQ\r\nyUWdyZH03cx11vsHE1dwKABPr9PkAJ5Ig6qK5BHkBRfNC695DrwCRWaVOIjF\r\n7OoW9R+FGytQqSXyq9efoL+xfothHzCtgSe+ZCKnNPPII0NlO8mCF7gwix+u\r\n0iHHrXu+8N80mqRLVXck7vUgkhx1qk8mLCg=\r\n=4IGr\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bossoq","email":"kwajakajornrit@gmail.com"},"directories":{},"maintainers":[{"name":"bossoq","email":"kwajakajornrit@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/soundtouch-api_1.1.2_1650110102582_0.3696377405685156"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-16T11:33:53.819Z","1.1.0":"2022-04-16T11:33:54.032Z","modified":"2022-04-16T11:55:02.844Z","1.1.1":"2022-04-16T11:38:34.114Z","1.1.2":"2022-04-16T11:55:02.770Z"},"maintainers":[{"name":"bossoq","email":"kwajakajornrit@gmail.com"}],"description":"SoundTouch API using TypeScript","homepage":"https://github.com/bossoq/soundtouch-api#readme","keywords":["soundtouch"],"repository":{"type":"git","url":"git://github.com/bossoq/soundtouch-api.git"},"author":{"name":"bossoq"},"bugs":{"url":"https://github.com/bossoq/soundtouch-api/issues"},"license":"BSD","readme":"# soundtouch-api\n\n[![npm version](https://badge.fury.io/js/soundtouch-api.svg)](https://badge.fury.io/js/soundtouch-api)\n\nsoundtouch-api is a Node.js library that implements the Bose\n[SoundTouch API](https://developer.bose.com/guides/bose-soundtouch-api/bose-soundtouch-api-reference).\n\n## Installation\n`npm install --save soundtouch-api`\n\n## Usage\n\nPress the power button for each device in your local network\n\n```typescript\nasync function powerAllDevices(): Promise<boolean> {\n    const apis: API[] = await APIDiscovery.search(); // find all devices in the local network\n    const res = await Promise.all(apis.map((api) => api.pressKey(KeyValue.power)));\n    return res.indexOf(false) === -1;\n}\n// Execute the task\npowerAllDevices()\n    .then(console.log)\n    .catch(console.error)\n```\n\nGet the selected source of the device name's `My SoundTouch Speaker`\n\n```typescript\nasync function getSelectedSource(): Promise<string | undefined> {\n    const api: API | undefined = await APIDiscovery.find('My SoundTouch Speaker');\n    if(!api) {\n        return undefined;\n    }\n    const nowPlaying: NowPlaying | undefined = await api.getNowPlaying();\n    if(!nowPlaying) {\n        return undefined;\n    }\n    return nowPlaying.source;\n}\n// Execute the task\ngetSelectedSource()\n    .then(console.log)\n    .catch(console.error)\n```\n\nChange the volume of a specific device IP on your local network\n\n```typescript\nasync function updateVolume(): Promise<number | undefined> {\n    const api = new API('192.168.0.20');\n    const success = await api.setVolume(28);\n    if(!success) {\n        return undefined;\n    }\n    const volume: Volume | undefined = await api.getVolume();\n    if(!volume) {\n        return undefined;\n    }\n    return volume.actual;\n}\n// Execute the task\nupdateVolume()\n    .then(console.log)\n    .catch(console.error)\n```\n\nMore actions are available on the [API](src/api.ts) object.\n\n","readmeFilename":"README.md"}