{"_id":"signalkutilities","_rev":"27-f485f7d2802afb1ec04fb1c96d1a9285","name":"signalkutilities","dist-tags":{"next":"2.0.0","latest":"3.1.6"},"versions":{"1.0.0":{"name":"signalkutilities","version":"1.0.0","author":"","license":"ISC","_id":"signalkutilities@1.0.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"dist":{"shasum":"f4b98f3c1b31c51e03ebc67e037a6fdfa1e83ba6","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.0.0.tgz","fileCount":7,"integrity":"sha512-2wYay7kQ5PzgEUJTcypt8v0DQb6W1Tx08b+pEuL5BBfKn7gI9SSjgOfnjrOjiInWQq/VHJ9kVrAz+lX51qcUBg==","signatures":[{"sig":"MEYCIQDivSDhb9BhjxgkDbmYteV0ht6YCd61T1gt/3keerPCzgIhALabAq8b5CP9X0DGQVnPa1U8lx546E/GUR7whRCrUdG9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17600},"main":"index.js","gitHead":"06717b450d17d3e7ea95a9c73c563754dcc7fb72","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"_npmVersion":"9.6.7","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"18.17.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.0.0_1740001567951_0.024466483341561318","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"signalkutilities","version":"1.3.0","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.3.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"1d8fedc9e814620c3b56ce86dbe7f366eb0eda78","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.3.0.tgz","fileCount":8,"integrity":"sha512-J+vfT9VPYUxE3VCohEu3GV8oGa1yuHSg6wYcu/uK8oN4+N+A+AkGnoK8fqrgogoNnNVx3IKkSsf5H8BgAfDR3w==","signatures":[{"sig":"MEQCICV3T/sDuMglib3JCkOPsyvjFN9cZ3JX8bCcGVVy78E1AiActR1XRnlqGPWVXddR8WEmee2FarAIq3EVz/KVU0DEag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18004},"main":"index.js","gitHead":"49f38780eff0540f82e131793f387f5139a86c5f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.3.0_1756297659194_0.2371551151153708","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"signalkutilities","version":"1.3.1","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.3.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"cbbdc936c36831a007c1ceb0f44cac1d12de6a32","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.3.1.tgz","fileCount":8,"integrity":"sha512-oCFuSle9tGLMAryn1Sm79nqywYR5vFbfgHGu+ozwMWAtvGglGOjMVAXCNSVeQIpIcvNvPCfzCgGWT9VumFbPIg==","signatures":[{"sig":"MEUCIEnYqSofsVD+6z42k8+zkkPvnwal092sgY/bAdA2+EVNAiEAwjkoAccKEI9PY1bAWw5H93JLwrPpcsZAun9HiaFVrFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23947},"main":"index.js","gitHead":"0667347f2019c4f27a04f7b0dcb7dda456bca5a0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.3.1_1756591115759_0.52301406782438","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"signalkutilities","version":"1.4.0","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.4.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"6ed1f34809b292bee107b5113841ce89bb6c0eed","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.4.0.tgz","fileCount":8,"integrity":"sha512-NX1XJs9NbzIDb8Icr1Z7Ff1AnaYViJYO0sYUotOYDJgO1xqyGykws41KP78hbkKy8++I38Af3AiaWgaUF3V06g==","signatures":[{"sig":"MEYCIQDCBQxcRcGbG/UhgPHjiqvYf3euJcXOG2OpkFpmShKoRAIhAI1VefsVPUO+zrDBh4bdYzS0A/5voosRx9xs4p8HDVGk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23947},"main":"index.js","gitHead":"d0396767d26f160e5b8f949a3279931cec0ff1e1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.4.0_1756592647520_0.965068614685799","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"signalkutilities","version":"1.4.1","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.4.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"934fa0e11810c7388b838debe209cdddca022828","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.4.1.tgz","fileCount":10,"integrity":"sha512-/ELrnRVTMzkTdCM8ziPTFUSvX+Ylmov+vq87Xgd5FM963hup8w+W1ZPWtGjXxquzOHtjhM8eemNd3cCEd8RqzA==","signatures":[{"sig":"MEYCIQD3yMz9AFJ3xv9iDpjbVWWh7l85gQY0TQ5fO2fGIoQ/RQIhAP36iE7iMYQSOoicEzvGTvxvgnWqr/utfxHZvtz+eib/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27841},"main":"index.js","gitHead":"3945fa8df1cdb0ea532d63d103ddf34f4b7c13a8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.4.1_1756933012165_0.49681599256383824","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"signalkutilities","version":"1.5.0","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.5.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"e5920746c9347ed5fdc42a913655ed09f002b3cb","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.5.0.tgz","fileCount":11,"integrity":"sha512-+jQnqNt9AwIXgtrxhbjgs3mXK8d8/2N4GmHocCywv/+/iYKgEGH2/SwI99Wfxi3cjhrdXE9Kr5HmjaiqS9sKfw==","signatures":[{"sig":"MEUCIF/Ee6hUP6MeIp7Ux/fq3Reu3mneXPgANBKp2KAu2o7ZAiEAxG56xFNz+E2RJUBrg3iA6PpjwyztxYGQlHtqLirP+sE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49180},"main":"index.js","gitHead":"d9954db10e6afa4967f7332a9fe7dbee07a702d4","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.5.0_1759781275058_0.007713219562921925","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"signalkutilities","version":"1.5.1","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.5.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"2f9f9af912bb4ab4c1553d1cd2403011b91f9818","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.5.1.tgz","fileCount":11,"integrity":"sha512-2GXhnHseQs7tFgO5FxSvTk8j9cr+e3yXrcSDn+gp7IyVygCg/WyY04hLLUyQtXSlOz0MvCEAGQuXQRhqeSQn5w==","signatures":[{"sig":"MEQCIGT6AE5xLk3ogDibMabavQCH8IKCcPYyVc1k63DSnhExAiBnoDmzyimWMO+xxS30MIrANo6JMybywHMyuOOnUpDFmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49776},"main":"index.js","gitHead":"68ecae325d2a9b0b3594204bb145fa90faab152b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.5.1_1759787198258_0.5182530477029552","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"signalkutilities","version":"1.5.2","keywords":["signalk","utilities","plugin"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.5.2","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"0becbb90e7dcd71b5fa3924858ea388b8a0856c6","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.5.2.tgz","fileCount":13,"integrity":"sha512-z2JBq1khrjYuYFP3sHqLhITjCZApjObnVJ1cRyqHUhf1mQfnsJHpqtE24RTFZXnECKeI5ZZhgkP7+YdbtUdViw==","signatures":[{"sig":"MEYCIQC/1nvKlwcImc1EYc2UKwSXTsLdDN7bk5i11kHTqjSbqgIhALapOkTpSMYsjLNQf8Z63szTC64Im2pM5OExFcbCsOal","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96164},"main":"index.js","gitHead":"fccdbc6c17473080b1b4f450c994d5be62922f90","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"utilities for signalK plugins","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.5.2_1762339852433_0.3847124843380776","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"signalkutilities","version":"1.8.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.8.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"58e52c462dc134deba34cb611e92ca9b5cfc9758","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.8.0.tgz","fileCount":10,"integrity":"sha512-DSIZ4PO+KY0G9u/HoQWnSgWzRIEGKqC9ibFd8nfRpK7IqKS4enjt9hxMjNMpScPWSwLmll0oFaCqNDPcxHJDKw==","signatures":[{"sig":"MEUCIEHQX8h7DGZntgq2z4fRUTLcb6SczxrfAWj5SHciZJRkAiEAhsReepYxECpgVQlXtScXoEOWRCCiW6s9Q9T5J47RW/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87920},"main":"index.js","engines":{"node":">=18"},"gitHead":"17e7938522a29b83d26b6c35f34206d4e0197c33","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.8.0_1773413346019_0.5017226293608377","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"signalkutilities","version":"1.9.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.9.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"a604999da0ceade8f3290a4f73aebb9568aa6718","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.9.0.tgz","fileCount":10,"integrity":"sha512-ZTFvygw7QOufbL7TBahA0r32a+NCCmpCgwPcnfgWfD4XbcTSq87GYkaXyDPIlZd2fpW/ajKZMkmd+FOb02LoLw==","signatures":[{"sig":"MEYCIQCHdF7cVal7EgSCNSjPCcEQGQ7K2zdQCX6w0ma2VIuZfwIhAICFN+IjfFSokm6X30cX6XzfAniKwX5Z8XU2zmE+wp9r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88408},"main":"index.js","engines":{"node":">=18"},"gitHead":"be398e39c4ced54a635d4eb1e8c69a0bb10009d7","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.9.0_1774093979370_0.8600038110402959","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"signalkutilities","version":"1.9.1","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.9.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"5e028917fbff8cf5c9524abbbea0e610a64757fe","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.9.1.tgz","fileCount":10,"integrity":"sha512-VZqaXKe/6RuhcBQsae6iFFg1rIT6cVNuk2bqrgDIORjKUl6xznemXWbO5bvtnIpoj3EVugw49JI+Ktts+FxntA==","signatures":[{"sig":"MEYCIQDIiZ+sNYb7ZfZdZWANL6OAw4vv/ddACqHVpHiP6UPmWwIhAO5dOo68khRPNXKStOGkY5W96i/U2l7QHXnQ7u0TR/M6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89303},"main":"index.js","engines":{"node":">=18"},"gitHead":"5f2b752cf4a3af074f03c553ac12edbf173ff59d","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.9.1_1774290652312_0.26486732825434256","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"signalkutilities","version":"1.11.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.11.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"75a2f2ac36115691ac24e2bbc3b7659be0bf9a0f","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.11.0.tgz","fileCount":10,"integrity":"sha512-VZCJ7kqnxwzjtyewcl1AeiW5f/zMLIukOthuVDLnpKZn1gQGh+8oi3yXx0ZVdOPMAXjkhKpPv2IhNpqzZMn54g==","signatures":[{"sig":"MEQCIGGn/zpu9vO3ktm7V8mX5E8dKSVjAOFhQdD51rpY97q4AiBTxbzRre/mu760/lcuYN0VxmVdSGbXKJM+ggBuDkwB3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92661},"main":"index.js","engines":{"node":">=18"},"gitHead":"4f6741d5e8f66c141187c1511e96346fdafb6215","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.11.0_1774566219859_0.5972166166239166","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"signalkutilities","version":"1.12.1","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.12.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"5c80c268978da9fd3871c0ec205a26c5ebdbe5ed","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.12.1.tgz","fileCount":10,"integrity":"sha512-KkudoYJbKHZOImyoswWzcG6hK3RzDKVNhk2idvZemlpw134bhsIBpYSb/lRvK+F0y0JGeLUA9bmi3cpoW2Sk6A==","signatures":[{"sig":"MEYCIQClnQAZ4y5RjSf25h2GvW5eeKtAH1Jns6Gvr3IXgTQfxgIhAMoBNGR1LS31FtP+AUHUi/uaCPyiodxz6tpmUDoqSREL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98131},"main":"index.js","engines":{"node":">=18"},"gitHead":"478dedb81008013c9cc31baa3b93c81d08c721a4","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.12.1_1778709806333_0.3819680219355388","host":"s3://npm-registry-packages-npm-production"}},"1.12.2":{"name":"signalkutilities","version":"1.12.2","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.12.2","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"f96c1769adb413fca5ee4a9a54db83fceb3274d1","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.12.2.tgz","fileCount":10,"integrity":"sha512-isRvOeRP5RrvZjSJTep+WE/3Tx0Z4wEjTviXcE3suVdKLDZTJg565tj3+u+csQgnOypM6VR2LD82MtXomWKc2Q==","signatures":[{"sig":"MEUCIQDL9rKqTwoI1UStH2AimKc8+3Yk1Y/UYGZhPuv320MzuAIgVLvlfttCv656kO7wt13uRgHetR7eTybHem0qMmHMyUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98359},"main":"index.js","engines":{"node":">=18"},"gitHead":"24e4e93b7869a2bffc3682412393530f150901d4","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.12.2_1779094818075_0.0008245961202899554","host":"s3://npm-registry-packages-npm-production"}},"1.12.3":{"name":"signalkutilities","version":"1.12.3","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@1.12.3","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"c37c7ee135f28f008d956da1e96ddef810f8403f","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-1.12.3.tgz","fileCount":11,"integrity":"sha512-ZG0NuhfeUwt1PJEOEj34EFVy3eFk4obU0cstB/Jhm3vwdsId4P2fFo26U3FsFiHsszFQEW2cRjdiaSrUIhsQfw==","signatures":[{"sig":"MEUCIHiHM9ajWcPyeZm+Nw6YygT7M25yh0n0lQiMH+TNGN1MAiEA7H7svVTT2AGE9XfcQIsny4kTHAHcwEGtfgP3NhoJeY8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100549},"main":"index.js","engines":{"node":">=18"},"gitHead":"f634aa1a21f7de43629a814a7bb48267d0686586","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_1.12.3_1779311094130_0.883927357547954","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"signalkutilities","version":"2.0.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@2.0.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"a81d342e6bc3377d409bfb3fff9092c9b54915a2","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-2.0.0.tgz","fileCount":11,"integrity":"sha512-EDBI44NYjgIU94m/XNS7qTlGd1ih6E9xw0GQ3dTRBulxPP3skeYLSfVp/LnO8fF+xsenGYm6KosxxVHviQQAuA==","signatures":[{"sig":"MEUCIQDtdDiI+IN6A0El9glU7x0Fw5UDXmZI1vmplX0iKXQl/AIgMZ9KlN4/7lbJgBBLew3bNedAfKnj6gsjUCX2bQDEIV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95779},"main":"index.js","engines":{"node":">=18"},"gitHead":"bb20853c519a6411497d559c6df9f96ba4b8e798","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/signalkutilities_2.0.0_1780870328791_0.9519042179217607","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"signalkutilities","version":"2.0.1","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@2.0.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"acc2385d090830cf8afba9c3dd8ff47e31ede46e","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-2.0.1.tgz","fileCount":11,"integrity":"sha512-mO5ky+w0A0Jcd9RUpezaBLNfFSFQZIAiQIppaRYdpXcCB/yWTIXEkQVPlcmnzF2x4+cIXvlTRIsmL65i3wu74w==","signatures":[{"sig":"MEYCIQCUrTK1LH26vgppgjbTxLHIiOMgfmNp9oamb5TGJMo87gIhALymTCw6WDvGyTftyny/xFNjljzlrnLPkn8G7RLtLner","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99082},"main":"index.js","engines":{"node":">=18"},"gitHead":"7a385b076a0347ebc1443e6b67d71b280197ea85","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js && node src/tests/smoothers.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_2.0.1_1781650421626_0.827212255912162","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"signalkutilities","version":"2.1.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@2.1.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"22423aa80de941f3dc8fcb2b6db907a7b8138de9","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-2.1.0.tgz","fileCount":11,"integrity":"sha512-Xgr434GNML0Bx4rCiVa8V8VisGjCr9TZKzTEkDdcYNQHnw4UNlBuGbcUgzwEqpMPTi6eHP5scxuJVmdu6h9rrg==","signatures":[{"sig":"MEUCIB+Bhq+NXuZoGoVPL/0CGTCw4Nlmo/elRqPQPwzUt8z1AiEA6/yiygjv3/LqWBmHIIWDYrDYV+kMOFfxmzi+nkpOgek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101007},"main":"index.js","engines":{"node":">=18"},"gitHead":"e61716da3aebbfffa9db4b2577abe148d95aec4a","scripts":{"test":"node src/tests/Table2D.js && node src/tests/PolarTable.js && node src/tests/smoothers.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_2.1.0_1783698603246_0.4720031501637283","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"signalkutilities","version":"3.0.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.0.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"455741646559f7af978b6b9674108f3b40865c7c","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.0.0.tgz","fileCount":10,"integrity":"sha512-UcHqR0Yw/JmtwmTYjRmwYvm5ouW2uCOtRLrv1zOWDj4fXyVyzKaJ8j9O9Qmj4LoKLd77X0fGV7X/w/wdb4CjPA==","signatures":[{"sig":"MEQCIDT35z8cl+MD2GDvBTXLpqaqq4DjYe9iMXNUm1UQwc52AiAfuz88ac0OCbLt3NrdI7cpslCcFaFz3PajHHFj0HHoiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75265},"main":"index.js","engines":{"node":">=18"},"gitHead":"a0218a5390de0cccde58ccd0556fffabfe7153d3","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.2","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.0.0_1784575719580_0.7976309525427632","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"signalkutilities","version":"3.0.1","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.0.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"d1e398b7de66eb7d8ff5c5aa7e2d00fda2bda83b","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.0.1.tgz","fileCount":10,"integrity":"sha512-HarbFtOeR2uLf/e6c96DXSPnkWPVjOwJp0x0SHOhtM8aHuxGjjqHilBOA1i1tXD+TawiUoHdMqnAec0E9Kb6lQ==","signatures":[{"sig":"MEYCIQDQumepA0JooFO1AT8V4j9lY6BVaf8hlIksIoSQeaO47QIhAPt2Yi5f6t9YUyR14fQHr5svZ7sRIunhzONnk+/5sBDy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72922},"main":"index.js","engines":{"node":">=18"},"gitHead":"4cd917790c72ad80908c7e7d9d3cf7b224686fa5","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.0.1_1784841052732_0.6393432538453538","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"signalkutilities","version":"3.1.0","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.1.0","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"d685f1acf11973912078eeb602b36219ed6db6a7","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.0.tgz","fileCount":10,"integrity":"sha512-XOxQOVPnCaZwMFltrG2pC0hslYLOrUUZ8iDBSqaYpumqm660NMeuj/kZKWD7tsuN0kjsvv1eFj1Ip/d3ZFugeQ==","signatures":[{"sig":"MEQCIHWZxEx33t2dTI+p34FMrnIRsF/F1ZHGOYx+kDquGR8/AiAraIu226pJ4addgXJJoyZQEEcmGSUfCQ1mTL0MBv8noQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":79941},"main":"index.js","engines":{"node":">=18"},"gitHead":"d414b8cce6158142f1b68381419f01018cd0905d","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.1.0_1785866798912_0.02355851734481207","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"signalkutilities","version":"3.1.1","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.1.1","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"4b564fe9eb411f40bc30d393dfa07c610c5ee310","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.1.tgz","fileCount":10,"integrity":"sha512-WxqzipaDvl9TuBtwp6e4zAy7xMEo8Mr6kEi4FiDHZeBG6hE2WelZIz25KAhxa6LuL/cGbdVLf2sRB1Zk0YxSCw==","signatures":[{"sig":"MEQCIC9ERLPd4/yDVNigrVcE+Ksl9G8RAdeKd+n5gANnKwKRAiB1+vXv6Et5WaCIaR+gj570uqoUDS5i9KxOK+ng4ZhrFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80342},"main":"index.js","engines":{"node":">=18"},"gitHead":"4b5564afb02f37da64d741f20b5ce2f1730bc0d9","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.1.1_1788474688934_0.46232800288561204","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"signalkutilities","version":"3.1.2","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.1.2","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"ac6655e5000feff774c80c498939b583073e71ab","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.2.tgz","fileCount":10,"integrity":"sha512-b59a2rFGVLSHa710eXBz3uyJ28Jdd6I5/56d3tUG1H/n/unzwURnvp1IqiONna+sLSaQA5Nypimxqid3Zny07g==","signatures":[{"sig":"MEUCIHEKt53hshRYggJ0xTYSeBHH0XS+ZXd9WFmJc+24q2LzAiEA/fay6UVik0QOBHYrPQ1nlT1Lspn/QBMxWScOpWQJzIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":81098},"main":"index.js","engines":{"node":">=18"},"gitHead":"7847eeca1e4110ce8aa7f58dfedb93dd05308343","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.1.2_1788540043096_0.9681658372785489","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"signalkutilities","version":"3.1.3","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.1.3","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"15952ac0ff928c792fd6caf46a72d69b327feed7","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.3.tgz","fileCount":10,"integrity":"sha512-bwIYwgeKQqkqT9cKtn1JN+HP2jp7tNCFmQ9bNGoiVNBhL9NJJi/+EZ38gPyGDX2fW2CLqAJ+exu1L00Qax04uw==","signatures":[{"sig":"MEUCIQDB6PIs9cAWNnLHWs6pAK9Z95udMuQU7AebS4K2kUq/nAIgUW7oZSsQpv57UCxF8GVXPbbFvVOkURe0uTrb8GZgBVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83217},"main":"index.js","engines":{"node":">=18"},"gitHead":"fec9bff8cfdf6477725d9c14e6c6746d1855a1c2","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.1.3_1788908801010_0.5919652354144871","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"signalkutilities","version":"3.1.4","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.1.4","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"e60a9106a9e859e1a39fce86fa978ce64e099156","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.4.tgz","fileCount":10,"integrity":"sha512-MP9DdAMEd5+m1O5Oqcv+AVmT2wPLoh26euNYuSwI4+MAvfSVX1lVWKwPrx9Rk6oBhbNXVNcAwrRQlHWfsgezDQ==","signatures":[{"sig":"MEQCIHMX6ZNxnXN8fXMjjas/E9+rLC4+VAvLE+Ll8hPM8wKNAiA7yFPU6JbK9azhGRKjpp2u2wqhp2RBGtqzJvoM83hn9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":84786},"main":"index.js","engines":{"node":">=18"},"gitHead":"8005253ca42376e1ab8733e92ecef07f32308d33","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.1.4_1789584992457_0.49021788042789716","host":"s3://npm-registry-packages-npm-production"}},"3.1.5":{"name":"signalkutilities","version":"3.1.5","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","_id":"signalkutilities@3.1.5","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"homepage":"https://github.com/Asw1n/signalkutilities#readme","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"a80ab83acdd61f8c96da12c9c35902dbe9645927","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.5.tgz","fileCount":10,"integrity":"sha512-kyq88u0KnAqaoSjgoT7oiYoVWxBK2UC/fjTDlNQmrjcBWcJDbG0fHaj8I+gNL9aWchnkzOcCZfmOJPyajm0e6Q==","signatures":[{"sig":"MEYCIQDYqcsFi0fHhdGam1NcNvU43e6M+oQgZfglco0AmHSOtwIhAPzaBnzScLes3H8A2qWljILc4PI4KXzK7LRa5X2UACHp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDYfZLUEGW7QuAFLbQ80wfknmszg22WNrHjku+3Qv8gMwIgGnxmwmv3wZXPV2UJ4JeT0Byk1q15q+3ZHKOjd0grBl4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85192},"main":"index.js","engines":{"node":">=18"},"gitHead":"4697d05ba7d1e06e30e15a61740677aa82c3915d","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/signalkutilities_3.1.5_1789673207806_0.5046667287826232","host":"s3://npm-registry-packages-npm-production"}},"3.1.6":{"_id":"signalkutilities@3.1.6","bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"dist":{"shasum":"9affb10fd9ced4b04911cecbceac61dc77d4b71d","tarball":"https://registry.npmjs.org/signalkutilities/-/signalkutilities-3.1.6.tgz","fileCount":10,"integrity":"sha512-3HNgL2Dx+fhNbP0/eZDSZiAEYfL3iTbcikC46bbr23xyBlBOrz2hZLUuxBa4IXrxhZjQyZ8C4/z3IJ3BPZ2QWA==","signatures":[{"sig":"MEYCIQDFlzzCTUw2ehGn9bWy38CGReWvvMb3gfgnDhqpjq/sdQIhALmIIjx1t6rCtty3w48QR4oJkmD/yHNCLcJQUxLG8xhF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA74T/sM+jP0Z8GfsDE0Z3MLR3nzku5sUJr2qPJ5V/nKAiEAgqMGOcH+z1kk6FwUGT0ChlleVyXH8QkTu2HhN3q/SIs="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalkutilities@3.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":85568},"main":"index.js","name":"signalkutilities","author":{"name":"aswin.bouwmeester@gmail.com"},"engines":{"node":">=18"},"gitHead":"4428146aa8f57707aeebe244844f6a554e15444f","license":"ISC","scripts":{"test":"node src/tests/Table2D.js && node src/tests/smoothers.js && node src/tests/events.js"},"version":"3.1.6","_npmUser":{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"},"homepage":"https://github.com/Asw1n/signalkutilities#readme","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"_npmVersion":"10.9.8","description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","directories":{},"maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signalkutilities_3.1.6_1790112965096_0.5033463003829168"}}},"time":{"created":"2025-02-19T21:46:07.950Z","modified":"2026-09-22T21:36:05.564Z","1.0.0":"2025-02-19T21:46:08.158Z","1.3.0":"2025-08-27T12:27:39.408Z","1.3.1":"2025-08-30T21:58:35.956Z","1.4.0":"2025-08-30T22:24:07.703Z","1.4.1":"2025-09-03T20:56:52.352Z","1.5.0":"2025-10-06T20:07:55.277Z","1.5.1":"2025-10-06T21:46:38.454Z","1.5.2":"2025-11-05T10:50:52.635Z","1.8.0":"2026-03-13T14:49:06.161Z","1.9.0":"2026-03-21T11:52:59.539Z","1.9.1":"2026-03-23T18:30:52.447Z","1.11.0":"2026-03-26T23:03:40.017Z","1.12.1":"2026-05-13T22:03:26.597Z","1.12.2":"2026-05-18T09:00:18.233Z","1.12.3":"2026-05-20T21:04:54.271Z","2.0.0":"2026-06-07T22:12:09.002Z","2.0.1":"2026-06-16T22:53:41.780Z","2.1.0":"2026-07-10T15:50:03.406Z","3.0.0":"2026-07-20T19:28:39.714Z","3.0.1":"2026-07-23T21:10:52.907Z","3.1.0":"2026-08-04T18:06:39.092Z","3.1.1":"2026-09-03T22:31:29.073Z","3.1.2":"2026-09-04T16:40:43.276Z","3.1.3":"2026-09-08T23:06:41.124Z","3.1.4":"2026-09-16T18:56:32.610Z","3.1.5":"2026-09-17T19:26:47.887Z","3.1.6":"2026-09-22T21:36:05.187Z"},"bugs":{"url":"https://github.com/Asw1n/signalkutilities/issues"},"author":{"name":"aswin.bouwmeester@gmail.com"},"license":"ISC","homepage":"https://github.com/Asw1n/signalkutilities#readme","keywords":["signalk","signalk-plugin","utilities","polar","smoothing","kalman","exponential-smoother","navigation"],"repository":{"url":"git+https://github.com/Asw1n/signalkutilities.git","type":"git"},"description":"Utilities for Signal K plugin development: message handling, polar vector maths, statistical smoothing, and web reporting","maintainers":[{"name":"aswinb","email":"aswin.bouwmeester@gmail.com"}],"readme":"# signalkutilities\n\nUtilities for Signal K plugin development. Covers subscription and value tracking for individual paths, polar vector maths (add, rotate, scale), statistical smoothing with three smoother types, correct wraparound-safe angle smoothing, and a web-facing Reporter that aggregates state across all tracked objects.\n\nThe current API also includes explicit lifecycle events (`onDelta`, `onIdle`, `onStale`) and static `clear()` helpers so plugins can manage idle/stale subscriptions and publish `null` values cleanly when outputs are disabled or the plugin stops.\n\n## Installation\n\n```\nnpm install signalkutilities\n```\n\nRequires Node.js ≥ 18.\n\n---\n\n## ID convention\n\nEvery tracked object carries a camelCase `id`. Smoothers derive their id automatically by appending `.smoothed`. Polar sub-handlers use `.magnitude` and `.angle` suffixes internally, but these are not normally exposed directly.\n\n```\n\"apparentWind\"            ← Polar id\n\"apparentWind.magnitude\"  ← internal handler id\n\"apparentWind.angle\"      ← internal handler id\n\"apparentWind.smoothed\"   ← PolarSmoother id\n\"heading\"                 ← SmoothedAngle id\n\"heading.smoothed\"        ← SmoothedAngle smoother id (PolarSmoother base)\n```\n\n---\n\n## meta / state / report() pattern\n\nEvery class exposes three standard accessors:\n\n| Accessor | When to use | Contents |\n|---|---|---|\n| `meta` | Read once on startup | Static info: `id`, `path`, `displayName`, `displayUnits`, smoother type, etc. |\n| `state` | Poll at any frequency | Dynamic info: `id`, `stale`, `frequency` |\n| `report()` | Snapshot for logging/API | Combined: id, current value(s), variance, path, `state` |\n\n`Reporter` aggregates these across all objects and returns results keyed by `id`.\n\n---\n\n## MessageHandler\n\nSubscribes to a single Signal K path and tracks the latest value.\n\n```js\nconst { MessageHandler } = require('signalkutilities');\n\nconst handler = new MessageHandler(app, pluginId, 'boatSpeed');\nhandler.configure('navigation.speedOverGround');\nhandler.idlePeriod = 10000;\nhandler.stalePeriod = 15000;\nhandler.onDelta = () => {};\nhandler.subscribe();\n\n// later\nhandler.value;       // latest numeric value\nhandler.stale;       // true after stalePeriod elapses without a fresh delta\nhandler.frequency;   // Hz\nhandler.meta;        // { id, path, displayName, displayUnits, ... }\nhandler.state;       // { id, isStale, frequency, ... }\nhandler.report();    // { id, value, path, state }\n\nhandler.terminate(); // unsubscribe\n```\n\n---\n\n## MessageSmoother\n\nWraps a `MessageHandler` and applies statistical smoothing to scalar values.\n\n```js\nconst { MessageHandler, MessageSmoother, ExponentialSmoother } = require('signalkutilities');\n\nconst handler = new MessageHandler(app, pluginId, 'boatSpeed');\nhandler.configure('navigation.speedOverGround');\nconst smoother = new MessageSmoother(handler, ExponentialSmoother, { timeConstant: 2 });\nsmoother.onDelta = () => {};\nsmoother.subscribe();\n\nsmoother.value;          // smoothed value\nsmoother.standardError;  // sqrt of variance\nsmoother.handler;        // underlying MessageHandler\nsmoother.meta;           // includes smoother type and options\nsmoother.state;          // { id, isStale, frequency, ... }\nsmoother.report();       // { id, value, variance, path, state }\n```\n\nOr use the factory:\n\n```js\nconst { createSmoothedHandler } = require('signalkutilities');\n\nconst smoother = createSmoothedHandler({\n  id: 'boatSpeed',\n  path: 'navigation.speedOverGround',\n  app, pluginId,\n  subscribe: true,\n  SmootherClass: ExponentialSmoother,\n  smootherOptions: { timeConstant: 2 },\n  onDelta: () => {}\n});\n```\n\n---\n\n## Polar + PolarSmoother\n\nCombines two SK paths into a cartesian vector (x, y). Supports add, subtract, rotate, scale. Smoothing is applied in cartesian space so magnitude and angle are both smoothed correctly.\n\n```js\nconst { createSmoothedPolar } = require('signalkutilities');\n\nconst wind = createSmoothedPolar({\n  id: 'apparentWind',\n  pathMagnitude: 'environment.wind.speedApparent',\n  pathAngle: 'environment.wind.angleApparent',\n  app, pluginId,\n  angleRange: '-piToPi',\n  SmootherClass: ExponentialSmoother,\n  smootherOptions: { timeConstant: 3 },\n  meta: { displayName: 'Apparent Wind' }\n});\n\n// PolarSmoother values\nwind.magnitude;   // smoothed speed\nwind.angle;       // smoothed angle (radians)\nwind.trace;       // xVariance + yVariance\n\nwind.meta;        // { id, angleRange, magnitude: {...}, angle: {...}, smoother: {...} }\nwind.state;       // { id, isStale, magnitude: {...}, angle: {...}, ... }\nwind.report();    // { id, pathMagnitude, pathAngle, x, y, magnitude, angle, trace, state }\n\n// Static send — writes smoothed values back to SK\nPolarSmoother.send(app, pluginId, [wind]);\n```\n\nEvent configuration is part of the subscription contract. Configure `path`, subscribe options,\n`onDelta`, `onIdle`, `onStale`, `idlePeriod`, and `stalePeriod` before `subscribe()`.\nTo change any of those while the plugin is running, do an explicit `unsubscribe()`, apply the\nchange, then `subscribe()` again.\n\nBy default, `idlePeriod` is 60 seconds and `stalePeriod` is 4 seconds.\n\nFor unsmoothed use:\n\n```js\nconst { Polar } = require('signalkutilities');\n\nconst polar = new Polar(app, pluginId, 'apparentWind');\npolar.configureMagnitude('environment.wind.speedApparent');\npolar.configureAngle('environment.wind.angleApparent');\npolar.subscribe();\n// polar.add(), polar.rotate(), polar.scale(), etc.\n```\n\n---\n\n## SmoothedAngle\n\nWraps a single angular SK path and applies vector-based smoothing that correctly handles wraparound (heading crossing 0/2π, etc.). Mirrors the `MessageSmoother` interface.\n\n```js\nconst { SmoothedAngle } = require('signalkutilities');\n\nconst heading = new SmoothedAngle(app, pluginId, 'heading', 'navigation.headingTrue', {\n  angleRange: '0to2pi',\n  SmootherClass: ExponentialSmoother,\n  smootherOptions: { timeConstant: 2 },\n  meta: { displayName: 'True Heading' }\n});\n\nheading.value;          // smoothed angle (radians)\nheading.standardError;  // angular uncertainty (radians)\nheading.frequency;      // Hz\nheading.path;           // 'navigation.headingTrue'\n\nheading.meta;    // { id, path, displayUnits, angleRange, smoother: {...}, ... }\nheading.state;   // { id, isStale, frequency, ... }\nheading.report(); // { id, value, variance, path, state }\n```\n\n---\n\n## Smoothers\n\nThree smoother classes are available. All implement the same interface: `add(value, variance?)`, `estimate`, `variance`, `reset()`. Options are updated via the `options` property setter (`smoother.options = opts`).\n\n| Class | Options | Use case |\n|---|---|---|\n| `ExponentialSmoother` | `timeConstant` (seconds) | General purpose, low lag |\n| `MovingAverageSmoother` | `timeSpan` (seconds) | Simple rolling average |\n| `KalmanSmoother` | `processVariance`, `measurementVariance`, `steadyState` | Optimal when noise is known |\n\n```js\nconst { ExponentialSmoother, KalmanSmoother, MovingAverageSmoother } = require('signalkutilities');\n```\n\n---\n\n## Reporter\n\nAggregates `meta`, `state`, and `report()` across collections of objects and returns results keyed by `id`. Designed for Express/webapp endpoints.\n\n```js\nconst { Reporter } = require('signalkutilities');\n\nconst reporter = new Reporter();\nreporter.addDelta(boatSpeed);        // MessageHandler or MessageSmoother\nreporter.addPolar(apparentWind);     // Polar or PolarSmoother or SmoothedAngle\nreporter.addTable(customTable);      // any object exposing id/meta/state/report\n\n// In your webapp GET handler:\nres.json(reporter.state());   // { deltas: { boatSpeed: {...}, ... }, polars: { ... } }\nres.json(reporter.meta());    // same structure, static fields\nres.json(reporter.report());  // combined snapshot\n```\n\n---\n\n## Table2D / SI\n\n- **`Table2D`** — generic 2-D interpolation table.\n- **`SI`** — unit conversion helpers.\n","readmeFilename":"README.md"}