{"_id":"hoekens-anchor-alarm","_rev":"33-9c17789ba18dbbbfa3d374892c773eee","name":"hoekens-anchor-alarm","dist-tags":{"latest":"2.13.1"},"versions":{"1.0.1":{"name":"hoekens-anchor-alarm","version":"1.0.1","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.0.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"d341201e486c60ec2050bbdfe84ac9d580101aa8","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.0.1.tgz","fileCount":38,"integrity":"sha512-vDmTcknk1KPc84U9LfgUieM8RnIyq0/IHyBvlOseiUzOa7oIds0RWERMa5025VyijWcDHmS43JuB9dIj2WgjPQ==","signatures":[{"sig":"MEYCIQC7TcWpWX0eonYfD8yJRzisZZmabWSKzX3Rmgu+y9FrYAIhAOprY4ZJTIEVvFSKNXXzzM24LtDK0+z+fE286Q3GFyI0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3366133},"main":"index.js","gitHead":"180f3487d06202b262245f8729c858de4d9ef4ff","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Fork of signalk-anchoralarm-plugin with upgraded UI, historical tracks, and lazy mode engine state awareness.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"@signalk/github-create-release":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.0.1_1728964016877_0.23371001887628617","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"hoekens-anchor-alarm","version":"1.1.0","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.1.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"51c1290d49baf039438f2605383d1408a5786258","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.1.0.tgz","fileCount":39,"integrity":"sha512-DMcYV88U/VWaB4RCiuXUdkQ57o9riMkYj41bXbOp7NpQSLtdZ/pDbj+ETFqIbDu4a4Qpzp/3+Rh6Oalsaioh7w==","signatures":[{"sig":"MEUCIQD/u6wMaGImcSEfaY2LIV/gn68SgmqUG8CdgC2oAgJoPAIgXhwD10u5HATZQn2QbVZUks9wBbFgrZRpdfLV32rBP3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3373658},"main":"index.js","gitHead":"9edfc250edeedd50d4a1c880edef54d364a91f81","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Fork of signalk-anchoralarm-plugin with upgraded UI, historical tracks, and lazy mode.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.1.0_1729090591595_0.3999296634387679","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"hoekens-anchor-alarm","version":"1.1.1","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.1.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"f0cdeb3a6ee1a425fabd95881c7b90fbd69c9af0","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.1.1.tgz","fileCount":38,"integrity":"sha512-rBiV35cMDSbZzpOFbq8wJqIndAONKfqOupfWFKis2GH5y8pIlXIUrS8tI1jbYfdOxR/kq73mATtSYQuhTj24VA==","signatures":[{"sig":"MEUCIQCqSNmkMU9BiT7jjPEM58y1h7vZCI/ivz1u90an0MYstwIgMDHGNqs9FG4m6qaUkMi8u6ouMfgtxovFz8rdJ+RjYQE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3948122},"main":"index.js","gitHead":"da333842c9c42aaadc3b9cd59e7de76c74d5da59","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Fork of signalk-anchoralarm-plugin with upgraded UI, historical tracks, and lazy mode.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.1.1_1729265613643_0.10531619332800002","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"hoekens-anchor-alarm","version":"1.2.0","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.2.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"181ff4b55a50f052faa30923364bf8af981aed38","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.2.0.tgz","fileCount":38,"integrity":"sha512-WJVa0rdNNYTbY+ioBHA+COibh0zfY7OHrD4SmFGC1c5TKCI0jhT2kEDc8lu/M5ULUnxVdc1SjDtzPuR1/3Z0og==","signatures":[{"sig":"MEYCIQCwd9339PjYybkR3jCsELf2D4/ZzYdG1RlxuWx5PeBEggIhANEyF+fA6IfBX2dsas60LAkqLsImwYf31g2KU2SVC4Zg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3949442},"main":"index.js","gitHead":"7014ad9db1f7c73ee9e6919448655e1f8286ffb9","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Fork of signalk-anchoralarm-plugin with upgraded UI, etch-a-sketch tracks, and engine override.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.2.0_1753925156044_0.9367693324711548","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"hoekens-anchor-alarm","version":"1.3.0","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.3.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"c1dcc6baa226bc5ed4042146c05d7403f4816838","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.3.0.tgz","fileCount":83,"integrity":"sha512-SC9hR0wSnzGCDw7uvzGxt3pNUHzg7fo46oAJxNmCrxppoftpI7ucr76wmuMTQ0zISgHHwjjvCDaTTR1fQLBQSw==","signatures":[{"sig":"MEYCIQCmqEXhDS7yd+1v8SC4K6vlxRFGRQaFqC1QlGP0AaWVyAIhAK9irqsE4TJH+WEJVxWVTqU9/1zJalOOnFMdpiCg/ucd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5931836},"main":"index.js","gitHead":"43a682e1d3bcafde7cac02f06fbfc6a9872689b9","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Fork of signalk-anchoralarm-plugin with upgraded UI, etch-a-sketch tracks, and engine override.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.3.0_1754117026967_0.08035649235474795","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"hoekens-anchor-alarm","version":"1.3.1","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.3.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"5ac595782cc469444ebaec0b2a00609a444eab06","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.3.1.tgz","fileCount":83,"integrity":"sha512-lkJ3fegKe1h6XQp9CEH+UnMBdgvW38OgFjxAwbZIQS3OIKtJP6r9p8Vov4RaBna9suUyrPK89czoyVtfglWZjQ==","signatures":[{"sig":"MEUCIHn71oo+UQvjlMp9/XtUC0noD3gLLGZGghu0jb9p47p7AiEAgkTw9uAT2H+EEoAe2KvfBMAjJqluZfAQR0OoworbjEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5933033},"main":"index.js","gitHead":"d8f6d516e2d47c9b43930b516e4e64ba08939352","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Web app based anchor alarm with scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.3.1_1754209924722_0.5643109832000737","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"hoekens-anchor-alarm","version":"1.3.2","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.3.2","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"44e3da533a869418d3643cf71df046d77238eaa3","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.3.2.tgz","fileCount":83,"integrity":"sha512-z7HettHHNIcf4z8x/ZrZIiEMpf7pPhRfIsvcICLa9L2pBdzUpg6u0SiWikqQ6715Hr2oyJmK+ve12XIL0KZl7g==","signatures":[{"sig":"MEUCIQCn5gCV6yCGbJjpz6wk57m5M/ZKueUubfl0DNvzj0zCFQIgGCyHzXWY76EvuC5CyomKSLyLXaU/tmirh2YygMt2tho=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5933776},"main":"index.js","gitHead":"1bb06e9b9744dc01a6316af755dd89851068dc37","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.4","description":"Web app based anchor alarm with scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"_nodeVersion":"20.9.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.3.2_1754332156575_0.227951954854287","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"hoekens-anchor-alarm","version":"1.3.3","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"ISC","_id":"hoekens-anchor-alarm@1.3.3","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"c216dba8d8f1dc8e257317f6ca22033833854114","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-1.3.3.tgz","fileCount":83,"integrity":"sha512-C4CRQEH1fnp7oX3yamIEU4AcHl8TAlj7F56fngZPZwhhJ/6beTop6PSMr6/R0hadeYNallZGqWxr/BtqeqEyRQ==","signatures":[{"sig":"MEQCIFY9zr2nH+VVj0ZyaX5GLsQE74a1qNrJbNYhgT4kcBcUAiAnqF5EwPosBPlAiM1ZyKa5y7g+F8INiWEzxNIGlogU1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5934114},"main":"index.js","gitHead":"180951b389d122ad784f53da1cd8d867346e7bf0","scripts":{"test":"$NODE $npm_package_main","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.2.0","description":"Web app based anchor alarm with scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"_nodeVersion":"21.1.0","dependencies":{"geolib":"^3.3.3","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_1.3.3_1777574715555_0.9325357440784465","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"hoekens-anchor-alarm","version":"2.0.0","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.0.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"751b2a38a007860a1f5b821aaaf54189a6352752","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.0.0.tgz","fileCount":99,"integrity":"sha512-FZ7VZFWOoay3A7H5OEQ1ojjWpOEi/6gxztljMuh9VxXQxnyOui0RN2syTpW+KoI1VZS8bFMDeFwDhfYuLBqkpQ==","signatures":[{"sig":"MEUCIQDJ4BZR/4Iy5yA4yscnMjnilJqj25L1TvH0SsIsvzahUQIgL8wLWZdCv7ZSRBReRGkDLM/mQFmkvzesvCvp+uCkQrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5885339},"main":"index.js","gitHead":"8df37bf6a5a2f41faf104c7fc1a798ff0efa79c8","scripts":{"lint":"eslint .","test":"$NODE $npm_package_main","format":"prettier --write .","prepare":"husky","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish","format:check":"prettier --check ."},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"10.8.2","description":"Web app based anchor alarm with scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{js,json,css,html}":"prettier --write"},"_nodeVersion":"20.19.5","dependencies":{"@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.0.0_1779006690283_0.15387825710643055","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"hoekens-anchor-alarm","version":"2.1.0","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.1.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"2e3468a8b16dbe969be38134655cf130cdfcada9","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.1.0.tgz","fileCount":192,"integrity":"sha512-QkifAW5lX0IwSXTsZQhkd8NhOpvwqrwhBFtDZuZz5FIpCPVB7B5jhEplQ581K83ouKhh9wMee8Z019xFvZndLA==","signatures":[{"sig":"MEQCIBo4pLanbgOJKDCGLS+Teq2WF1own/S7sQ1bmnZQv1D9AiBmSrqHNzdmelHEOHC+MNvSZeveRoBCHZ95DF5vMkTgZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14456834},"main":"src/index.js","engines":{"node":">=20.19"},"gitHead":"92b74010a41209f1aed9d6b42975ccad1f155ad5","scripts":{"lint":"eslint .","test":"echo \"no tests — Signal K plugin CI validates lifecycle and schema\" && exit 0","format":"eslint --fix . && prettier --write .","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish","build:ui":"vite build","lint:fix":"eslint --fix .","postinstall":"node -e \"try{if(!process.env.CI&&require('fs').existsSync('.git'))require('husky')()}catch(e){}\"","format:check":"eslint . && prettier --check .","prepublishOnly":"npm run build:ui"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.12.1","description":"Web app based anchor alarm with scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.15.0","dependencies":{"mathjs":"^15.2.0","simplify-js":"^1.2.4","@signalk/client":"^2.4.0","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.1.0_1779345063745_0.9909394104413438","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"hoekens-anchor-alarm","version":"2.1.1","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.1.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"fa0b5fb1c2a1995b87ff48f0bf2667a7ffc0b0c4","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.1.1.tgz","fileCount":192,"integrity":"sha512-F5Yl1ZGZuJ8pgRhkn1N6W1D0Hgg/9ttcIE7RYXTZjt74SRfRBYaedLLBd25BMtjm67cqLYwRVGSvqHJijr2RYg==","signatures":[{"sig":"MEUCIQDcfr/RijETqzqY52q4DF6ObWQdVdskBbER8i0pBr01MgIgGj4yqA/Yyv+PlKjvaRa+kOI0w2LRKLzitFOXe2e6sYE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14459589},"main":"src/index.js","engines":{"node":">=20.19"},"gitHead":"4348e607a2f67eec0a84dc4178c105da6eb57852","scripts":{"lint":"eslint .","test":"echo \"no tests — Signal K plugin CI validates lifecycle and schema\" && exit 0","format":"eslint --fix . && prettier --write .","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish","build:ui":"vite build","lint:fix":"eslint --fix .","postinstall":"node -e \"try{if(!process.env.CI&&require('fs').existsSync('.git'))require('husky')()}catch(e){}\"","format:check":"eslint . && prettier --check .","prepublishOnly":"npm run build:ui"},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.12.1","description":"Web app based anchor alarm with scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.15.0","dependencies":{"mathjs":"^15.2.0","simplify-js":"^1.2.4","@signalk/client":"^2.4.0","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.1.1_1779560901316_0.763823083971741","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"hoekens-anchor-alarm","version":"2.2.0","keywords":["signalk-node-server-plugin","signalk-webapp"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.2.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"cc906d4bcd0857b1972cfeefee36b174779bc397","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.2.0.tgz","fileCount":93,"integrity":"sha512-XUlMRxqMlYcX7JmrFSs92UThj6w5ks97CoNrB8BrQTRJVKFS0sdGY7oLPmDfs8bWQQyXsoiS8kdo54L79/umBQ==","signatures":[{"sig":"MEQCIFOu/mn4xKNQLV6vO9J+gCxFZoAtZ8PItg2/vD6jEw4UAiAOMpycbHXaGYYr0utvnYRorlGcOcsg3zFvdX/de6+5Bg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8714265},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"e0bb3628f741d550582946f64f0661ee4150fbce","scripts":{"lint":"eslint .","test":"echo \"no tests — Signal K plugin CI validates lifecycle and schema\" && exit 0","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish","build:ui":"vite build","lint:fix":"eslint --fix .","postinstall":"node -e \"try{if(!process.env.CI&&require('fs').existsSync('.git'))require('husky')()}catch(e){}\"","format:check":"eslint . && prettier --check ."},"signalk":{"appIcon":"anchoralarm.png","displayName":"Hoeken's Anchor Alarm"},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.12.1","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.15.0","dependencies":{"mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/client":"^2.4.0","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.2.0_1779769322669_0.2939359418193712","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"hoekens-anchor-alarm","version":"2.3.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.3.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"4f28202aa6dff2d8b75278c128b177dd80e78437","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.3.0.tgz","fileCount":98,"integrity":"sha512-8hLlUo9UKwHnJCaxBMdB6e+92Ow8v2MRzqUcBBLz0D3JIxMlMeKnkzmfgJgtmTF2+ZTfUmSRFt05bm4wZMhDjQ==","signatures":[{"sig":"MEUCIQCVlI1Dk80qYgWxybZL563O0ej6vRlFg/mbRouwJVsAQwIgRtK2+66+AY/pw/jF5CXh3khjYz73u52eBTA7dHr/ma0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11513893},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"2b49f08b0aa8779eb924e5f49d6e2481a9e49090","scripts":{"lint":"eslint .","test":"echo \"no tests — Signal K plugin CI validates lifecycle and schema\" && exit 0","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish","build:ui":"vite build","lint:fix":"eslint --fix .","postinstall":"node -e \"try{if(!process.env.CI&&require('fs').existsSync('.git'))require('husky')()}catch(e){}\"","format:check":"eslint . && prettier --check ."},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./screenshots/circle.png","./screenshots/sector.png","./screenshots/polygon.png","./screenshots/satellite.png","./screenshots/config.png"]},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.12.1","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.15.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/client":"^2.4.0","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.3.0_1780178632269_0.14685120486155823","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"hoekens-anchor-alarm","version":"2.3.1","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.3.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"7a91d9618ace40fcc719b020f6b23c68b46e0d52","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.3.1.tgz","fileCount":98,"integrity":"sha512-gNnyON2dG68NKPgvsoHboj0JTpSnyIeJW8GPsOuZ4ywNVLIweJ3C7fkECvKMtwOyxLcu/6YUAWry/+gQxd9MlQ==","signatures":[{"sig":"MEQCIDlebmo4MF1cWu24nXd24A7C/aABQgq85a7cKCGpWYFeAiBTS0YksZeQlwd8O1c51LdSQYQ0Yf+bI7U0PlF2h24tiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11518146},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"26c9c2471be3f1c3333a4eda5016a220c8d1beb9","scripts":{"lint":"eslint .","test":"echo \"no tests — Signal K plugin CI validates lifecycle and schema\" && exit 0","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push --tags && git push && npm publish","build:ui":"vite build","lint:fix":"eslint --fix .","postinstall":"node -e \"try{if(!process.env.CI&&require('fs').existsSync('.git'))require('husky')()}catch(e){}\"","format:check":"eslint . && prettier --check ."},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./screenshots/circle.png","./screenshots/sector.png","./screenshots/polygon.png","./screenshots/satellite.png","./screenshots/config.png"]},"_npmUser":{"name":"hoeken","email":"hoeken@gmail.com"},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.12.1","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.15.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/client":"^2.4.0","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.3.1_1780385342765_0.8933315252612533","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"hoekens-anchor-alarm","version":"2.4.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.4.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"f17db75375f367c43774aa1b4a0e57d905ba4220","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.4.0.tgz","fileCount":100,"integrity":"sha512-zcllA1LLm/v/HNPoaSWw3lU9tANqJlHyqtDws1b9bLedhj70ZEYkjzD9qt37LMrtdkqFjZaW8AXsGwaLXujEGQ==","signatures":[{"sig":"MEQCIQDnMlcm3TiEDaU0AWiKvsUAwvmCWpZ8YlNAbxxHQkE8bAIfOq/ztZjr188HruWG54tlRe1VUQ9KW8HEJu70AK6FPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18478018},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"be84da1cd049df39fb82f6b795473ec70e2d18bd","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.13.0","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.16.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.4.0_1782012062348_0.461411747700746","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"hoekens-anchor-alarm","version":"2.4.1","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.4.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"1ef3dd6291b8ad43444b41f782e69edd2802a728","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.4.1.tgz","fileCount":100,"integrity":"sha512-gKfko/lktsLFYD7DX5kMgx8YCdSN/0dsOAMCWwGResone8SfFUPQlPo9CtfS0ABxsvhDlc2a1k+96sXFvyLD6w==","signatures":[{"sig":"MEUCIQDMelrKJctGLspUndiT84xW22yVD7Y1J6Rr1NoRtOzB1QIgUVackn2xmteVVMvzru+CNBwncsPYKK571AadqQ3KxeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18478155},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"3e94b66571628f29231a3048e10947ba9e3810e6","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.13.0","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.16.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.4.1_1782012729143_0.9011624974409516","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"hoekens-anchor-alarm","version":"2.4.2","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.4.2","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"735d6d372cbf1b1ac870642331bce707b72c24f7","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.4.2.tgz","fileCount":100,"integrity":"sha512-88DDq85mKx0AcrAjR5BQbnlFRiI7rE4s7c53+uY4uJiuN1YbXY0WhV1lPOrSIQ1v6qCKylS4hUoezrp9W1cN6w==","signatures":[{"sig":"MEQCIG/jCgKAiGN7yhTCVFYrAOD+rNJcXFiHQR9ASrxDJ7VHAiAceWF9g4FxAOvMcp5fxRIhM4CA45vcs6kvloTtjNDTqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18478344},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"e28eca1e5834f32ab5083144885eeff2b44ff0b2","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.13.0","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.16.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.4.2_1782157631633_0.8179789478027677","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"hoekens-anchor-alarm","version":"2.5.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.5.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"6b80ef6afe5f4a15954c896fb95b4dcc73546612","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.5.0.tgz","fileCount":102,"integrity":"sha512-5nimlEwh7Mdx5fvP8M9iVr0M38LBOxtHRmaxVZIkeEUHpYGAtqP+nPvNXRygNgufUw3Esk/yfaf1SmB1eOBLQw==","signatures":[{"sig":"MEUCIC51cduh+kqDOn6dMD49UKtO+9JkM3DOTFMOm9CilzHSAiEArVB9rvo5lrZ4kYomDqGuYQd2VsIS21A+i1ZpQjxGXWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19016876},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"ea8c762acb7e4259961340739ee5140b586b4bef","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"npm run generate:icons && vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.13.0","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.17.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.5.0_1782774010554_0.8307852864019942","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"hoekens-anchor-alarm","version":"2.5.1","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.5.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"a986cc888396bb445b6b05fe59e725d2bb8d9fd3","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.5.1.tgz","fileCount":102,"integrity":"sha512-JxBFoZaKZfcFYUxkzUc/fqKauXIxxTqm88TRqYFXLC23IXeyzAH7M1WBrq/TNpLIZmomu/6jROJLPmud4/Y2uA==","signatures":[{"sig":"MEQCIHNqdjmpb7Wjady7Zs4ortkE7+iVQGzBxeM81LDO+HqkAiBxNyrz3iUoeXqEgfNs8xKDSe7whO9NYwyVZ8+9e6k84Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19069342},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"6518707ac2353bf47b5c78a83f3a533d18b85a52","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"npm run generate:icons && vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.5.1_1782979473336_0.3353592348167347","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"hoekens-anchor-alarm","version":"2.6.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.6.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"23c0777a25ba10f5ee12c387b5c9ea057500d8af","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.6.0.tgz","fileCount":103,"integrity":"sha512-wweTcVvGtOhaM926IxszoBqoybEuN6sa79xTJzIPVMur8VZ90PALeSdoA8k1i8Pi7ixrp+UImpmMICrbZjh9gQ==","signatures":[{"sig":"MEYCIQC641Bc1fTDYL9OoRMTGCkvi7k9R7OUJFFr52z11DE/6gIhAOzoxHjSu93oVwov/uceJQ725qFq59ngsVKUMY67kGi5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19101238},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"fb679bee738818cab70cb12aa406ac365b5f3e65","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"npm run generate:icons && vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Anchor alarm with various shapes, scope calculator, scribble tracks, engine override, and physically accurate icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.6.0_1783236513497_0.49687267553936176","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"hoekens-anchor-alarm","version":"2.6.1","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.6.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"a4fe675f1098d3b232f4e1231ba1d0080e2980b2","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.6.1.tgz","fileCount":103,"integrity":"sha512-psnmIWF3B84Qcc2w5g26taDFf/a8d2otO/7useQQk+Oe5Gyrde3T1tgqc9soFght6BvGtbrTDAwwYU6e0PBTZQ==","signatures":[{"sig":"MEUCIFUoSKKOYjcj5Eu/pBWSNklx59+4oH/s2AEtxhaO053IAiEA/yG+EwAWiGT0Z0DKhQSWxyatlzz+JlWLh4z7GrYp5p4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19103609},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"6e4f091cd092092220db38c12a454fc11c0eeac0","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"npm run generate:icons && vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.6.1_1783249419955_0.1990220926386912","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"hoekens-anchor-alarm","version":"2.7.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.7.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"1d55f9ba3649823d2747ce9c39e3acaebfd466cb","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.7.0.tgz","fileCount":106,"integrity":"sha512-BNs8glPBuyXyT0/PUf1B3IZCrE03wzXTtZeEia4z0D+i1+bHjKJoiLJw0K9GcGeH9gwIvV0OxwUOJHnAKx4Dew==","signatures":[{"sig":"MEUCIEGh5m2CCISJzZV6S0JakClbvtDOCc9M4q9HAuggS3RjAiEAzC97V7koSpKBB3jI3I2JiLuR0Bzj0IvrwATY0SHVbpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20322240},"main":"src/index.cjs","type":"module","engines":{"node":">=20.19"},"gitHead":"aa49241a0363651904d42c9c5b7e1b292efae3c5","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.7.0_1783390390896_0.6153687306125697","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"hoekens-anchor-alarm","version":"2.8.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.8.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"69769ac22af005933c5004683d0b1b62c35512d5","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.8.0.tgz","fileCount":107,"integrity":"sha512-vjxvh5H1JIu6lJJTQYllfapRmeVwhjOOzQ18DtvsBDfIJX/U1ENq8ClwVvdUdUf/GZRIhc3OG6jH3wDme8hOVw==","signatures":[{"sig":"MEUCID8UYiCcB9hF5SRonNQoj8ggI+1Vt+/ei61Q5j6JNsPeAiEAj5FUhGLXj+/OQU9j7vA552UnGI5YLllfRzdtizr25Jo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22208458},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"191b11d1e35601271ac93ed9d8fd3275b69d82ef","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.8.0_1783710012884_0.48150411769114587","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"hoekens-anchor-alarm","version":"2.9.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.9.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"366a50d66dbc6fe19bdb39b430391b231d533a57","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.9.0.tgz","fileCount":110,"integrity":"sha512-v1iX9EVxVV0MfHaz4oFZOXqarpyIGk1gUUgS7gfofcoMhR0d0NqNnoUU79LoxRYt6fXsAo3q7+SXXeJEfoWsjQ==","signatures":[{"sig":"MEYCIQDTy7DQlEsi0DQGXE5VJSNm1UqWJaJC2TaHezZ5ZJDVTAIhALptIiC4ZWjkr7VFaOJsr0g8wiGm5OZCJAhvGWj/27vc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22327414},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"2be610569f378b4a3b5c46306a926e38a5bc4a25","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.9.0_1784403693873_0.3851206904081328","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"hoekens-anchor-alarm","version":"2.10.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.10.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"70e0991692aea070aabbbaa1b3a5c0c04f8555c4","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.10.0.tgz","fileCount":111,"integrity":"sha512-dhZ5PdncdHyvRRKnxENIFYWs/m25HZgSWbKFkZZncbNJLX+INbQtXxFIIdmyazyddGkcr7eAoY0ZcL0Wrdy/IA==","signatures":[{"sig":"MEUCIQCXezXTk4Mg6fjl5bAQSRYFw8b8EIhitJBIv5IGIdgXywIgLyPf8utGiMTbOk7aMEIt9B4DPkyXesbYVFgHvgqrq48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22357538},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"ab76d022c7b34d85823d0f17669a6df92a1484a9","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.10.0_1784502195084_0.28042804686484124","host":"s3://npm-registry-packages-npm-production"}},"2.10.1":{"name":"hoekens-anchor-alarm","version":"2.10.1","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.10.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"c8bf3a2a2aa17018c56e99a347842d1544747267","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.10.1.tgz","fileCount":111,"integrity":"sha512-svhuDT5SWeFTBJS8IFpGqdME5Yqv8424w0ie+/C0rYbIz1nnA69I1SuFZqpcqBb8VzvwqtLz8d8Y8h2panqNnA==","signatures":[{"sig":"MEUCIQC86ir6jxmWszfle44XCerlEaINHzIKsXK/vOdSzQfWeQIgQvwv1WmmHYyaot3gAqq/VvbYG9DGm+k/MQR7Ir+K7Gk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22358135},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"092d7b2504c96ad9e10ec2ada7695aaf420a48c3","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.10.1_1784503792924_0.47686702274042947","host":"s3://npm-registry-packages-npm-production"}},"2.10.2":{"name":"hoekens-anchor-alarm","version":"2.10.2","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.10.2","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"59b6745aba5de0aad935e52c55aef0a738c57ef6","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.10.2.tgz","fileCount":109,"integrity":"sha512-Gw6y29LwCNYMG98BdOZQpItyNx/2GFQ4MwGMmtTuyfiPznsDcHhScoCaMu8lbEzFrWTl4yZ4etHwPs0F8Z2mOQ==","signatures":[{"sig":"MEUCIQDKbtmjjMJYZ2L1oLM0udw8gDQSeJRdz7L0QP87ovv7qgIgLdELjOXhh2EB4mMzVuEaYCFa8VwRbQzIwxQltesm/OM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21868154},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"ef3357146301e7c257205a560588663b2881fd81","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.10.2_1784671906273_0.7999442086639035","host":"s3://npm-registry-packages-npm-production"}},"2.10.3":{"name":"hoekens-anchor-alarm","version":"2.10.3","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.10.3","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"af0aae0340cfaf5d5e58a7f5522a1bbe460f7e01","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.10.3.tgz","fileCount":109,"integrity":"sha512-NVGuB9is7Phe8kCw3lHUFqid+5tUxkm1DwtMLoUV2FTjA2GX+gMdsAMXRnJhWLje7mmYZoX7CEw8sTvkNTX95A==","signatures":[{"sig":"MEUCICkyaKeLX7jVuXvK7giBeFq4kVS559FSTXdHJ7ZoKQu8AiEA+l/EE+EumDb4YKmvH900v2WE2ymBHbt59N6Uu6D9qsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21875316},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"6e6a02b5fed4200094e9e215465bc3b734419200","scripts":{"lint":"eslint .","test":"node --test","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.10.3_1784682856559_0.01676327853502091","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"hoekens-anchor-alarm","version":"2.11.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.11.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"cf8ee172fd40128cfaef17bd005f7dfc7ad1c13d","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.11.0.tgz","fileCount":109,"integrity":"sha512-L8yRJbQVvRgrmqYHtRANrZ2KNzm/AZ9YGnTuv9qB8/cONtEM2SkX0NufcTRovLWNMrgTeUQFw/0v0hiYa1pfGA==","signatures":[{"sig":"MEQCIA6w47cC72I4llsJIoexyOOnOQzfVwhA0UzgQHZZfkXcAiAWDiNqFJyMHLuIK2XN1iCRn65lvSo1WJwZoHBahiOv7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21917742},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"70b368f73ae9dcf42bc7d4f3d453da6778f00a6e","scripts":{"lint":"eslint .","test":"node --test","build":"npm run build:ui","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.11.0_1784865937340_0.6086747016412124","host":"s3://npm-registry-packages-npm-production"}},"2.11.1":{"name":"hoekens-anchor-alarm","version":"2.11.1","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.11.1","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"e581a80b6d46eed3fa1de2d2207b4758f5a7ce9f","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.11.1.tgz","fileCount":109,"integrity":"sha512-52TGnPf8lgKi0D9zPqBCYWvTrKkmM1J7AoI6yMb+WRxmhviXNMfpF9MTA9QK/sUoorV4wFUtZv1aP3fSAqGrzg==","signatures":[{"sig":"MEUCIDGZEbOixx42f/4XjP1/o1kPkwrMeEOY58tY53cMwTApAiEArtTPxJKgedp6wXKhtDYfyLCc2iNUTD7X2jpd9uzclVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21933791},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"65faa9c0496e5dc9df7df6bca3e7c795a906a5a5","scripts":{"lint":"eslint .","test":"node --test","build":"npm run build:ui","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.11.1_1785100213220_0.567948048576334","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"hoekens-anchor-alarm","version":"2.12.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.12.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"c630fd6e0abcb3e742f21b959007f675f299067b","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.12.0.tgz","fileCount":109,"integrity":"sha512-Zh5U2mNN7DqdSVuUanhv9GZBeAzgJQp4uNvBDsHIvWvCX2cC6UsgqWvjkos1iKKmCw4YtOFmxcnJzlpUhLUFYA==","signatures":[{"sig":"MEUCIQCL7IrG5q4pdT8Wvvs0jJhBF+eEVIvbAK8WyO1+gVvWMAIgX/svnJR7t+ZsY0e+Kx1iVylWSw6hJuSPXa31U8K5Tvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21943473},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"81d1ccd6ebf010d813ca91e1c7d045221caf2b36","scripts":{"lint":"eslint .","test":"node --test","build":"npm run build:ui","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.16.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.18.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.12.0_1785185932745_0.7240764184882906","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"hoekens-anchor-alarm","version":"2.13.0","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","_id":"hoekens-anchor-alarm@2.13.0","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"c439d4584b77788fe5a8ec8ba08de6e29ad3b24e","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.13.0.tgz","fileCount":187,"integrity":"sha512-uG+EZjOLRFMHJDwjRT0LxNVLleN2X5N4HltJrq3cxHiVna9f3GN29UFoIGr5elbPOrHVce+K1TppPTw1i9Cv5g==","signatures":[{"sig":"MEUCIFl5I/71nlSuVfKdSivTb7Qns2mWg/gWEWDn365VNrTNAiEAp4frO/F8bZ9KmrzTjhu7sUXmAG1ib+y4AmZcZ1gSpAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26690709},"main":"src/index.js","type":"module","engines":{"node":">=20.0.0"},"gitHead":"89a532f91a1e38c44fae1959468d8cd1ed014df3","scripts":{"lint":"eslint .","test":"node --test","build":"npm run build:ui","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f9b71561-5983-423b-b390-cdf18d209555"}},"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.17.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"_nodeVersion":"24.19.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","semver":"^7.8.5","@turf/turf":"^7.3.5","simplify-js":"^1.2.4","@signalk/tracks-plugin":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0","vite-plugin-compression2":"^2.5.3"},"_npmOperationalInternal":{"tmp":"tmp/hoekens-anchor-alarm_2.13.0_1786742293318_0.2767565344898806","host":"s3://npm-registry-packages-npm-production"}},"2.13.1":{"_id":"hoekens-anchor-alarm@2.13.1","bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"dist":{"shasum":"90e1591efc8160e81f37d4087a3bcd6c61679136","tarball":"https://registry.npmjs.org/hoekens-anchor-alarm/-/hoekens-anchor-alarm-2.13.1.tgz","fileCount":187,"integrity":"sha512-5ciaIIq/4j33Z5rdG/xc1kJdoPu6Pg7FnNUKW+8Ooog5RfxYNW0+LSxtriGU5ukQ7VboR96QaG7Lfgz+gEuPRQ==","signatures":[{"sig":"MEYCIQCpoEjUFMWF8/LqvbY74HW3HhBoxwIGsfNiqGOWiZIfdgIhANYqvxHT+EQH2HhVykb7UxHJBYg2iQSksaFR7WZRh3VR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFGTLbCMII+S/3R71WlzkodtdXujdV1U4EC9t/TQDpFeAiBHYs7ukvXL2GgwyM5igVqZcOw+H1PgMu1BNnSVmU6Prg=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/hoekens-anchor-alarm@2.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26695531},"main":"src/index.js","name":"hoekens-anchor-alarm","type":"module","author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"engines":{"node":">=20.0.0"},"gitHead":"4e8cb227ce7113bd34b669ff38e6976ab6e395bd","license":"Apache-2.0","scripts":{"lint":"eslint .","test":"node --test","build":"npm run build:ui","format":"eslint --fix . && prettier --write .","prepack":"npm run build:ui","prepare":"husky || true","release":"git tag -d v$npm_package_version; git tag v$npm_package_version && git push && git push origin v$npm_package_version","build:ui":"vite build","lint:fix":"eslint --fix .","format:check":"eslint . && prettier --check .","generate:icons":"node scripts/generate-icons.js","prepublishOnly":"npm test"},"signalk":{"appIcon":"anchoralarm.png","recommends":["signalk-tides","signalk-navico-embedder","@meri-imperiumi/signalk-autostate","@signalk/tracks-plugin","signalk-questdb"],"displayName":"Hoeken's Anchor Alarm","screenshots":["./docs/screenshots/watching.png","./docs/screenshots/circle.png","./docs/screenshots/sector.png","./docs/screenshots/polygon.png","./docs/screenshots/neighbors.png","./docs/screenshots/config.png"]},"version":"2.13.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"f9b71561-5983-423b-b390-cdf18d209555"}},"homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"_npmVersion":"11.19.0","description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","directories":{},"lint-staged":{"*.js":"eslint --fix","*.{json,css,html}":"prettier --write"},"maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"d3":"^7.9.0","mathjs":"^15.2.0","semver":"^7.8.5","@turf/turf":"^7.3.5","simplify-js":"^1.2.4"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.13","husky":"^9.1.7","sharp":"^0.35.2","eslint":"^10.4.0","esbuild":"^0.28.1","globals":"^17.6.0","prettier":"^3.8.3","@eslint/js":"^10.0.1","png-to-ico":"^3.0.1","lint-staged":"^16.4.0","vite-plugin-singlefile":"^2.3.3","@stylistic/eslint-plugin":"^5.10.0","vite-plugin-compression2":"^2.5.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hoekens-anchor-alarm_2.13.1_1791328795781_0.42457189819046537"}}},"time":{"created":"2024-10-15T03:46:56.876Z","modified":"2026-10-06T23:19:56.444Z","1.0.1":"2024-10-15T03:46:57.179Z","1.1.0":"2024-10-16T14:56:31.836Z","1.1.1":"2024-10-18T15:33:34.050Z","1.2.0":"2025-07-31T01:25:56.267Z","1.3.0":"2025-08-02T06:43:47.208Z","1.3.1":"2025-08-03T08:32:04.982Z","1.3.2":"2025-08-04T18:29:16.851Z","1.3.3":"2026-04-30T18:45:15.873Z","2.0.0":"2026-05-17T08:31:30.549Z","2.1.0":"2026-05-21T06:31:04.022Z","2.1.1":"2026-05-23T18:28:21.649Z","2.2.0":"2026-05-26T04:22:02.937Z","2.3.0":"2026-05-30T22:03:52.612Z","2.3.1":"2026-06-02T07:29:02.998Z","2.4.0":"2026-06-21T03:21:02.669Z","2.4.1":"2026-06-21T03:32:09.508Z","2.4.2":"2026-06-22T19:47:12.029Z","2.5.0":"2026-06-29T23:00:10.873Z","2.5.1":"2026-07-02T08:04:33.713Z","2.6.0":"2026-07-05T07:28:33.900Z","2.6.1":"2026-07-05T11:03:40.293Z","2.7.0":"2026-07-07T02:13:11.289Z","2.8.0":"2026-07-10T19:00:13.267Z","2.9.0":"2026-07-18T19:41:34.449Z","2.10.0":"2026-07-19T23:03:15.411Z","2.10.1":"2026-07-19T23:29:53.276Z","2.10.2":"2026-07-21T22:11:46.701Z","2.10.3":"2026-07-22T01:14:16.935Z","2.11.0":"2026-07-24T04:05:37.682Z","2.11.1":"2026-07-26T21:10:13.571Z","2.12.0":"2026-07-27T20:58:53.323Z","2.13.0":"2026-08-14T21:18:13.706Z","2.13.1":"2026-10-06T23:19:56.118Z"},"bugs":{"url":"https://github.com/hoeken/hoekens-anchor-alarm/issues"},"author":{"name":"Zach Hoeken","email":"hoeken@gmail.com"},"license":"Apache-2.0","homepage":"https://github.com/hoeken/hoekens-anchor-alarm#readme","keywords":["signalk-node-server-plugin","signalk-webapp","signalk-category-utility","signalk-category-notifications"],"repository":{"url":"git+https://github.com/hoeken/hoekens-anchor-alarm.git","type":"git"},"description":"Various shapes, scope calculator, scribble tracks, engine override, and to-scale icons.","maintainers":[{"name":"hoeken","email":"hoeken@gmail.com"}],"readme":"# hoekens-anchor-alarm\n\nA simple web UI anchor alarm for [SignalK](https://signalk.org/), built for setting from your phone, tablet or computer. Handy for setting the anchor alarm from the helm, or a quick check from bed when the wind picks up at 2am.\n\n> [!IMPORTANT]\n> **Requires Signal K server v2.31 or newer.** Major performance upgrades and features in v2.31 that are now required for this plugin to work. Plugin version 2.12.0 and earlier will continue to work in older versions of SK Server.\n\nThis started life as a fork of the venerable [signalk-anchoralarm-plugin](https://github.com/sbender9/signalk-anchoralarm-plugin) by Scott Bender, but has since grown its own personality (and a fair bit of new code). The goal is a focused web UI with my own style and a few opinionated features, like automatically cancelling the alarm when your engines fire up. If you'd rather drive everything from an external app or API, the original plugin might be a better fit for you.\n\n## Features\n\n### 👀 Watch zones that aren't just circles\n\nThe classic circle is still here (now resizable by dragging a handle on the rim), but you can also switch to a **sector** (radius plus a draggable arc, handy when your safe swing is only astern), or a free-form **polygon** with draggable vertices. Drag an edge midpoint to add a point, drag a vertex onto its neighbor to remove it. Self-intersection is prevented for you, so you can't tie your watch zone in a knot.\n\n### ⚓ Physically accurate boat icons\n\nGive it your beam, LOA, and GPS antenna position and the boat icon is drawn to your boat's _true_ size, rotating around the antenna location. At high zoom this is genuinely useful: pre-pick your spot on satellite imagery, line your bow up over the anchor icon, and drop. The alarm triggers on your GPS antenna position leaving the zone, so set your offset and it all lines up.\n\n### 📐 Scope calculator\n\nWhen the anchor's up, a panel shows what your scope would be at 3:1, 4:1, 5:1, and 7:1, based on current depth, your bow height above water, and estimated tidal rise. Install [signalk-tides](https://github.com/bkeepers/signalk-tides) for the tide data. It'll also flag rows in red if the required rode exceeds the chain you actually have aboard (set `totalAnchorChainLength` in the config).\n\n### 🔧 Engine override\n\nI always forget to switch the alarm off before motoring away, so now I don't have to. If you've got engine data in SignalK (`propulsion.*.rpm` or `propulsion.*.state`), starting your engines silences an _active_ alarm. It only kicks in when you're already outside the zone (motoring away or firing up the motor to reposition while dragging), so it just quiets the alarm you already know about. Anchor watch keeps running, and as long as you're inside the circle nothing changes.\n\n### 🛰️ Tracks & fleet\n\nHistorical tracks are color-coded (green for fresh, fading to red as they age) via the [@signalk/tracks-plugin](https://github.com/SignalK/tracks). The map shows the last 24 hours, or the whole of the current anchorage if you've been there longer. Other AIS vessels show up too, with their own tracks and accurately-typed icons. Click a vessel for a detailed popup: name, MMSI, length, beam, distance, bearing, SOG, and COG.\n\n### 🕰️ Past anchorages\n\nIf your server has a history provider plugin (e.g. [signalk-questdb](https://github.com/dirkwa/signalk-questdb)), the plugin logs every anchoring session (drop and raise times, anchor position, watch zone) and a clock button appears on the map. It opens a list of past anchorages; pick one and its full vessel track is reconstructed from the server's recorded position history and drawn on the map. Without a history provider everything behaves as before.\n\n### 📊 Heads-up panels\n\nCompact HUD panels for wind (with a wind barb on the map), depth, tide state (plus the next two tides), and anchor status. They show and hide themselves based on what data is actually available, so you're never staring at a panel full of dashes.\n\n### ⚙️ In-map settings\n\nLogged-in users can tweak the UI without leaving for the plugin config page. A gear button opens a settings dialog (panel toggles, basemap, default zone shape, fleet radius, connection type) and most changes apply live.\n\n### 🔄 TimeZero anchor sync\n\nOptionally keep your anchor watch in sync with [TimeZero](https://mytimezero.com/) (TZ Professional / TZ iBoat) instances on the same network. Drop, reshape, or raise the anchor here and it appears in TimeZero; do it in TimeZero and it flows back into Signal K. Enable **\"Sync Anchor with TimeZero (LAN)\"** in the plugin config.\n\nTimeZero pairs peers in one of two ways:\n\n- **On a Furuno NavNet (`172.31.x.x`) network** it syncs without an account — just enable the option.\n- **On an ordinary LAN** (⚠️ _experimental_) it only pairs with peers advertising the same My TIMEZERO user ID, which requires your TimeZero instances to be signed in to a My TIMEZERO account. Set **\"My TIMEZERO User ID\"** to the ID they use and they should sync here too. It is a GUID (e.g. `d5ff170c-4a28-47e0-b54f-1f98bda46c1c`), not your email address. TimeZero broadcasts it in the clear on UDP port 33000, so you can read it from a signed-in TimeZero machine's own beacon — field 5 of the semicolon-separated `TZ Sync` message:\n\n  ```\n  tcpdump -i any -A udp port 33000\n  ```\n\n  This path is derived from TimeZero's own pairing logic but has not yet been confirmed against a signed-in TimeZero, so treat it as experimental and please report what you find.\n\nBecause TimeZero's anchor watch is always a circle, only circular watch zones are synced.\n\n## Usage\n\nThis plugin is meant to be used through the web interface on a phone or computer. Point your browser at:\n\n```\nhttp://[signalk-server-ip-address]:[port-number]/hoekens-anchor-alarm/\n```\n\nThe way I use it: anchor the boat first, then once I'm settled I open the webapp and set the alarm. This is where high-resolution tracks earn their keep; you can usually see exactly where you dropped the hook. Set your radius a touch bigger than feels necessary to avoid false alarms in the night.\n\nIt's also handy to use a circle zone to _choose_ your spot first: position the zone where you want to anchor, then drive your boat icon until the bow sits right over the anchor icon, and let go. Since v1.3 the icons are physically accurate at high zoom, so you can get surprisingly precise, just make sure you've set your GPS antenna offset!\n\nIf you have engine data in SignalK, enable the engine check and the watch will end on its own when you motor off (see Engine override above).\n\n> [!NOTE]\n> You can view the app without logging in (read-only). Editing controls — dropping/raising the anchor, resizing zones — appear once you log into your SignalK server with a read/write or admin account; the boat icon uploader is admin only. Settings are open to everyone, but without a read/write login they only apply until you reload. If your server has no security configured, everything is available to everyone.\n\n## Embedding\n\nIf you want to drop the anchor alarm into another app or a dashboard (Grafana, a Node-RED dashboard, an MFD page, a custom SignalK webapp, an `<iframe>`), two query-string parameters let you trim the UI down to just the map. Add them to the webapp URL:\n\n```\nhttp://[signalk-server-ip-address]:[port-number]/hoekens-anchor-alarm/?embedded=true&showAnchorControls=false\n```\n\n| Parameter            | Values           | Default | Effect                                                                                                                                                      |\n| -------------------- | ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `embedded`           | `true` / `false` | `false` | When `true`, hides the tide, wind, scope, and info panels, along with the settings (gear) control, leaving a clean map. `false` or omitted changes nothing. |\n| `showAnchorControls` | `true` / `false` | `true`  | When `false`, hides the top anchor toolbar (shape picker, radius, drop/raise). When `true`, shows it.                                                       |\n\nThe two are independent, so mix and match to taste:\n\n- `?embedded=true` — clean map that still keeps the anchor toolbar for setting the alarm from within the host app.\n- `?embedded=true&showAnchorControls=false` — a bare map with no controls at all, for a read-only status tile.\n- `?showAnchorControls=false` — the full HUD panels but no anchor toolbar.\n\nValues are compared case-insensitively; anything other than `true` is treated as `false`. These parameters only affect what the webapp renders — the map, watch zone, boat, and fleet still update live, and none of your saved plugin settings are changed.\n\n> [!TIP]\n> These pair well with the existing `?mode=night` / `?mode=day` parameter (used by B&G/Navico MFDs), which forces the dark or light theme instead of following the device preference.\n\n## API\n\nBesides the web UI, the plugin exposes an HTTP API (drop/raise the anchor, set the watch zone, manage settings and the boat icon) and publishes anchor state on the Signal K tree (`navigation.anchor.*` and the `notifications.navigation.anchor` alarm). If you want to drive the anchor watch from another app, a dashboard, or a script, see **[docs/API.md](docs/API.md)**. The machine-readable OpenAPI spec is also browsable in the Signal K admin UI under _Documentation → OpenAPI_.\n\n## Watch Zone Shapes\n\n|                                   Circle                                   |                                   Sector                                   |                                    Polygon                                    |\n| :------------------------------------------------------------------------: | :------------------------------------------------------------------------: | :---------------------------------------------------------------------------: |\n| [![Circle zone](docs/screenshots/circle.png)](docs/screenshots/circle.png) | [![Sector zone](docs/screenshots/sector.png)](docs/screenshots/sector.png) | [![Polygon zone](docs/screenshots/polygon.png)](docs/screenshots/polygon.png) |\n\n## Recommendations\n\nThis app pairs well with some other software:\n\n- **[@signalk/tracks-plugin](https://github.com/SignalK/tracks)**: draws the historical tracks, yours and other vessels'; install it from the App Store. Version 3 keeps its own record across restarts, by default one position a minute (its _Track resolution_ setting). With a history provider installed, your own track is filled in from that provider's finer record instead, so the default is fine. Without one, a resolution of 1000 ms gives a one-second track.\n- **[signalk-questdb](https://github.com/dirkwa/signalk-questdb)** (or any v2 History API provider): enables the past-anchorages browser, and gives the tracks plugin a finer record of your own track to draw.\n- **[signalk-tides](https://github.com/bkeepers/signalk-tides)**: feeds the scope calculator and tide panel.\n- **[signalk-autostate](https://github.com/meri-imperiumi/signalk-autostate)**: just by using the anchor app, the plugin can tell the difference between moored and anchored. Great for automating things like an anchor light.\n- **Node-RED + Pushbullet**: for push notifications to your phone. Really great for when you're off the boat, and handy on the boat too.\n- **[Tailscale](https://tailscale.com/)**: makes accessing SignalK remotely dead simple. Free, and a five-minute setup.\n\n## Contributing\n\nIssues and PRs are welcome; this is an open source project and I'm happy to have company. See [DEVELOPMENT.md](DEVELOPMENT.md) for getting set up, and [CHANGELOG.md](CHANGELOG.md) for the full history of what's changed.\n\n## Attribution\n\n[Anchor icons created by Freepik - Flaticon](https://www.flaticon.com/free-icons/anchor)\n","readmeFilename":"README.md"}