{"_id":"signalk-binnacle","_rev":"40-46b4551c750c4c5c017eb2f645dfc294","name":"signalk-binnacle","dist-tags":{"latest":"0.22.0"},"versions":{"0.1.0":{"name":"signalk-binnacle","version":"0.1.0","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.1.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"2b4aa41f50ee3779c289c806338c349669b69ae9","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.1.0.tgz","fileCount":29,"integrity":"sha512-sI6zRPBCTHNfJh6mSTGKxhZI9LgXmniWEnl2O2GA2Bh2mnwUVuNnnISbxmRryYJYLJv1XcdEeUdrugouHNhWEw==","signatures":[{"sig":"MEYCIQCEpsiwM/DVAthPDQc6GlcxvAFvfBg13SKGgvFhjVaNTQIhANvPf2j+ri+hPuclQuB2ivTei8MBE1yl/Nc1BpN4g6h4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4807381},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"970fe7a6750a66b54a989016bdc9ff500ea8151e","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-charts.png","./screenshots/04-anchorage.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"Next-generation marine chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.2","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.1.0_1780678027138_0.06582360780788599","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"signalk-binnacle","version":"0.1.1","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.1.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"2da664110d5b1a44d373d0028a30bbfb7b32995d","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.1.1.tgz","fileCount":29,"integrity":"sha512-mLzP5t6ACb4fV6EUGKeiLMlO4XaC1X9JdYDEeFa4kNQvKjud/hB7d7CQviYtk5edQ1W4e9PYp4JyHuWN9ElQAw==","signatures":[{"sig":"MEUCIQD14nM8VbKqXSPLYrMsYvM1i8UKYqaEdQ1WMj/UgbLBGgIgYzFKLwHWy0vohAQvM57NUG15Yp3mplvZrFlAPNaVJ4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4798573},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"730260451d4647879a1d4b75b6b30751ef61c3af","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-charts.png","./screenshots/04-anchorage.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.2","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.1.1_1780679536497_0.21252883158296298","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"signalk-binnacle","version":"0.1.2","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.1.2","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"965811442475ab27323b024f13eaf02b14fab804","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.1.2.tgz","fileCount":29,"integrity":"sha512-Z7SdRP17AYztgdikAz4cJBhGh822/eg0VFII4EP2SlcJHOddkhchvokFRvShkXC2NqiVTcv1ZR81DmGNpRlPvw==","signatures":[{"sig":"MEYCIQD3PBUTlREfAIVG+OETsMRTX8CDmwoRnOzBAKcVbXUqKQIhALWJ4satvtf7hUEMMtAiWPJpb0wFcamcVr4BuFcBPKOJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4798764},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"176cd0dcb547d5c63cd7c326edde1fa151e43874","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-charts.png","./screenshots/04-anchorage.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.2","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.1.2_1780683902381_0.45660847144118333","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"signalk-binnacle","version":"0.1.3","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.1.3","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"af0a8463b62386a74c404309004d2c8380295f6c","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.1.3.tgz","fileCount":29,"integrity":"sha512-QEM0Qkebe/4b6Jim6q2iO3CEi1opCh9S3D64BUvgZ8LSwuAd+hJ2Q8KTEXy6DcyUo8iGz6Ri/zMAsTZ+oeJhhA==","signatures":[{"sig":"MEQCIHRByO5Y+3xvG7DMf1EM83zr0c4dkmR5ROuzl88KwkypAiBc1z2qj96clLXGnFdkmgsb4QwhyJvYOsK+S7mQlzBmqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4809079},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"08979cb148ebbb8d69b5ec531b8d0d794415efe6","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-charts.png","./screenshots/04-anchorage.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.1.3_1780935728728_0.09246130118351958","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"signalk-binnacle","version":"0.2.0","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.2.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"98389ece284a1bab50080c09ead90dbe3b966572","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.2.0.tgz","fileCount":29,"integrity":"sha512-IWMO0zg7SZwJxGk5IaQyE7A/k91FXx9eTPJPJQH6zzd+q2sHfXzTm14xeYkdJVProZO0ZLSb3bbBjfLeNj89wQ==","signatures":[{"sig":"MEYCIQDr0zit+xN5ZMtHjxPQCzrKaktbMcZA4HR9GE/cCwLuVQIhAN9NGvnH94/4bOllDifyaveywMyb0xgfv4QBtjl21O5m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4833597},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"885df05cb3696832d348519e76d219278efd0258","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-charts.png","./screenshots/04-anchorage.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.2.0_1780961501868_0.1069208472035621","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"signalk-binnacle","version":"0.2.1","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.2.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"93e858473ba523b10504927ada37bb91fce2d4e9","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.2.1.tgz","fileCount":29,"integrity":"sha512-ss4ulKdP/PAEoDf8YHaUOo4hU/BgLhDURZO1Tudm3hwUh0ymeujsqc1npcKrMqbhwSleCQ/mkHIFX31fI46bIw==","signatures":[{"sig":"MEUCIQD9QNHP9i/Q7tLVqHcU0XHTfkkZJNg72SPE0DPsfIP6WAIgHYx9Dhe/OGktkc4u2F5Hivrni7kqmIthS4tOsXNhRwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4834872},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"606f88cdf5a87d3fc38cbd666dfa0b8dac1db4d9","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-charts.png","./screenshots/04-anchorage.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.2.1_1781009230526_0.45960538714551813","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"signalk-binnacle","version":"0.3.0","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.3.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"da8ff1a13c547de46d33ae322d64d52c0117b614","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.3.0.tgz","fileCount":29,"integrity":"sha512-Fys0mTYchvfA7zsLn88k7PdEPD5q0usUJeV8DOI0gBv31gFFVJoedeyOCaj/dEjO/5EL8Q9utnwrSklN6a0S9A==","signatures":[{"sig":"MEYCIQCBAhkywby3WiLa2r+haWTaxFoDMHKsfWG6zpz6AfUsKgIhANutfXHZ3+1B80bRkpKR1IMOLjrto02W++1k2Aq60it5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6078764},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"e1095c31e0cc2ec21402a88dfabeaa874ea9bf5c","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.3.0_1781043005221_0.919976832322269","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"signalk-binnacle","version":"0.4.0","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.4.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"30ef44ec21882589d9f14575735c209a4fadc58c","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.4.0.tgz","fileCount":29,"integrity":"sha512-/31MvEie4qzKqHOA9GNmvYQgxDO7NNFvPUHUV4T3Wud5GWyQrb6lU6r8hIMH1QPxA6cCkWz32EyqA1MunWKHyQ==","signatures":[{"sig":"MEUCIE4XBYJTRhtCwRZEsnIOAsPTq3vXGF9INxV9A0skwZ2EAiEApc3J6Er/VX5+8VF30d0/K9eeg7OdJeB4pvczLosn0NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6124497},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"8e07cf85440bbc8493dc237a33a75769f9db30f8","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.4.0_1781123390937_0.011858846056409522","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"signalk-binnacle","version":"0.5.0","keywords":["signalk-webapp","signalk-category-chart-plotters"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.5.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"5c93f60190188181dcd99453aca42de061b6e3b0","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.5.0.tgz","fileCount":29,"integrity":"sha512-NJj/KYyfvIgIU5b1/C1uU3RMFNxFZbfSeCefgGlEZlLR6FriSYz2KEb8GJI//gk7ltBQy52+Icp5IUN5P42zRA==","signatures":[{"sig":"MEQCIBJu2bpdbdCrWOrbH4VKB33DsHeob5n+6EBcWtFWB0G3AiBP8lPl290W17wIwsokvlEzhkyB40282TIiz0yMq1b17g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6141599},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"cc5de9c6bab3bbb0cd5189d2ac5745b5298f3e91","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.17.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.5.0_1781199712556_0.4050368418050512","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"signalk-binnacle","version":"0.6.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.6.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"a8c94d713c5cec62afc20d5e6426a0490496e92e","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.6.0.tgz","fileCount":33,"integrity":"sha512-cmoNeXJuvoTGCFqc1jo8gevpzdMt8lt3AvcfFqavLtyVrZPMsIrCGubE9RuyzyGMPqKotq7s3zLKIqgtPfLgtw==","signatures":[{"sig":"MEUCIQCRzZFwuMh3UJ4w7amVvgmXEvvoZ9JZUOnrXo1rPwrhFQIgcDbpJlmFVFJ8dEiILnZNdDEjq7ekhr1IagpjLEG9F8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3217164},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"e5a1bec171a23a9362d41a65e2ad3683c9bae6b6","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.18.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.6.0_1781291615955_0.18142794315205202","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"signalk-binnacle","version":"0.6.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.6.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"c68db15fab9a306ccf989e11ca7772e59f775f30","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.6.1.tgz","fileCount":33,"integrity":"sha512-uM/kKGlZMPY+2fbHw8DVwS2f6XttvuaNMDwM42lW0RPTxwvH5LbDWuStoJ1t/BUsB6haxwijggt1uyPk3Z3E6A==","signatures":[{"sig":"MEYCIQCjCW/gukO1OLtzAK1IPruJAuMCeWbqlhrp6OfzwSbCMAIhAORblfezCERqpZYUcIGryhO5jgnnpqudRkdsdx9PqUqV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3219609},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"c0df018048b2b01c33d58efb285cbf849c2c86b1","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.18.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.6.1_1781309867496_0.17828642011858942","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"signalk-binnacle","version":"0.6.2","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.6.2","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"4f5371902830f4adf1b059dfede8f75d6680cbc1","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.6.2.tgz","fileCount":33,"integrity":"sha512-mqLYhmGyiPBMAF940vXyE1frAcAYuSxy+9W+mDpitsCMtiYMPluP0kdVo+PUdLJH5+nkS+N57kXUOffDJgkPmQ==","signatures":[{"sig":"MEUCIEuewoOcjH4dYuGt7lAwV5KEbdLl1e/+XxypOLeMjkKdAiEArdooEcr3VA95UbXcvEFAxKKCmg0lWDnUOQHSrdm+1Yo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3227521},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"5931b4aed1d7aa8db13c042fb6cff50fe1ed5aa1","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.18.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.8","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.60.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.6.2_1781396678857_0.9580098804926831","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"signalk-binnacle","version":"0.7.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.7.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"11641205998e28806fc539b7d0439ab1b991687f","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.7.0.tgz","fileCount":33,"integrity":"sha512-8MeN8D6iaWloIh8BnOPgNhwsnpjJ0shf5ghja5wh1Q4M964hmGcWvMu3RE7jR6pzA8L5OGFWB3LOOB9gvg4Q5Q==","signatures":[{"sig":"MEYCIQCPz6uY7lcKoLWM8dEX07tq3R9x7EJDxB152x3M4De/6AIhAN3ZZ4IFBPrfHjSep70xRFf8Unn+i4vZ+ZYYQAlmtTlC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3261288},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"d634d798c42c944701bae1a119ecc32905389558","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.7.0_1781713903784_0.791582424396224","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"signalk-binnacle","version":"0.7.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.7.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"484b6d83f97838e5aeb9a2293591ecb3d6b19b00","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.7.1.tgz","fileCount":33,"integrity":"sha512-hGbR8DcnuwAZFVxarBPz6vQ3VyxZrOcvhwZFR03iton1OyYOUUwr7sV3A02YEwH6fSBTiYYqLnf6v+sWCjYC6w==","signatures":[{"sig":"MEYCIQCRhuvpQIE/YbZ/ru3o3m8aLsjc7j/Xdd+X5sVLfLodbgIhAOblQof44Sk5tvm6q7IJW9fHxVScoHvt6yXYzkLYKp5T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3260736},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"9001eaffabd86626008eea745b37ec035e19617b","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-routes.png","./screenshots/03-anchorage.png","./screenshots/04-profiles.png","./screenshots/05-weather.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.7.1_1781716081385_0.89149968726567","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"signalk-binnacle","version":"0.9.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.9.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"290df23fa587bce4f7ac84edbdb5c0d0bfdbf946","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.9.0.tgz","fileCount":33,"integrity":"sha512-mctuXwYvMJ2vQGUFL7BK2yPFt1FGzymc1bHexjt+Fsoy7oYIgjWuwOOPSXiXM1sxBVVcE7k0XOyK8oKURFqWxg==","signatures":[{"sig":"MEYCIQCcxM//Ir2GIzCEkw24e6u13poSyCaMvx45PEOZ2rsE5wIhALGmbOkPSMD2YoIg/HswaBHwrWZ+JNvUIALjVl8Syuzx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5622662},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"799d3b8880fbd47ef6683ef438a9146cc77ebfbf","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-symbol-manager","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.16","svelte":"^5.56.3","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.6.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.0","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.9.0_1782166939618_0.5078240232729527","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"signalk-binnacle","version":"0.10.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"cd9674ee61221deacf4992217dc5333a951989bb","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.0.tgz","fileCount":34,"integrity":"sha512-4an1LSkJ99Ni8pvfir7Kw6kT06wl7nrYMFkAw2CaK/TYLzdTOPAXXOhguQJYrP+QDIRnQlRlo0f5RGtPXSGaqQ==","signatures":[{"sig":"MEYCIQCmvDyE/nO+DO73lDpYP94XZr/JZs92pdYvW1iYbcXDlwIhAJ322sHHBOPStXaiLjwzIL1JhHS9MDWmQ3KBDi5NT33a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5656678},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"322bd107125788e6830e14934959ce12ad4e114a","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-symbol-manager","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.16.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.0_1782269027588_0.6954503825918388","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"signalk-binnacle","version":"0.10.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"ef9597c86fdaa4f8a49a2f84c59d010f4c33b9b4","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.1.tgz","fileCount":34,"integrity":"sha512-5I6VKScCUswqOinSaxx2D+vN/+MsfS1e8R2i82bal3Tr+C9L4YUCrXZPjK2ZDpSeRHmfcDkvTI3IPKJz4khw2w==","signatures":[{"sig":"MEUCIQC4/oKIZH3pdHWxuAfZ0xHErRGOcdipja/A9TN1gY/27gIgbf+7RBI5F0RdoBOMh1ptGKCjXGAOjeNzRXPUheV87UM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5659039},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"4d9f42e6156396cf6f790d02cf6da325860fecd5","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-ssl","signalk-symbol-manager","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.17.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.1_1782342541133_0.9577947626535672","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"signalk-binnacle","version":"0.10.2","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.2","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"a5ba2e93a333f2c286f4f7cf15bfd4a6f33506e4","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.2.tgz","fileCount":34,"integrity":"sha512-NdAmNSN65WV6jgbp6JrFAkutiVhAOVme7NLZe8MgDvC28fMFc0t6BJnpVV76Tg407zXMPT9DQAChPAN/LOqK6Q==","signatures":[{"sig":"MEQCIDDMfN1RnAQZCnTIJJZUrxEFxS1M/x5QrnazdckBCWvaAiBqq3ZDFx/nmP93P59/mhoF4xIUnc5/+EKTFKKGes3Qog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5669408},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"7952cf5f91e519cde57775d6b726a404c27d67e4","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.17.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.2_1782417815541_0.46915982943869716","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"signalk-binnacle","version":"0.10.3","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.3","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"70a8dff4b3c862fdd521c4deff012d50b038dc9c","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.3.tgz","fileCount":34,"integrity":"sha512-2Mlzyk/MGtDhrBjWcJFFEtkLTQkCAt5XL7SNDyOMkKMMVnz05zX0MH5Lea7ROoxL+ZZb5KpSs3sFmWuFTtsqLQ==","signatures":[{"sig":"MEQCIHtoGEcUygtYOP6ucb8AGPXFhZUKhhVqKuSG+txiJMt4AiBPVBXSqAtmrn6oxYC1iUzJJ/IaAuc3K25EDEnH0Msqgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5673179},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"bf8b47da76ea75dd832d8fe1504f692f85de47d0","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.17.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.3_1782429976049_0.7023526241711195","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"signalk-binnacle","version":"0.10.4","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.4","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"79340e30b701ed6b18906fd86f808f59eb9b0ab4","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.4.tgz","fileCount":34,"integrity":"sha512-FgENG6BWQt+LQ+ekNMgyF27H2BLMD6FmFxLGOO/H397G3i3lR3ree6IOfokuHVLhwM8bcYTyeQOQjSqR2WFobA==","signatures":[{"sig":"MEUCIQDusKYVAwFNord0hkpWHk7ynZnYCkJUct9hlYg3N4979AIgF+KC2FSmeydvT4+2kXpsB8CEc7PEYQtVtLfNYAsDuEM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5674392},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"f6eae0800e8e91261c4c30a60d1494a284a93f56","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.17.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.4_1782463277759_0.7295968246831246","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"signalk-binnacle","version":"0.10.5","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.5","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"da09aec2acb5cede8e9ab80423af6407a2b235b1","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.5.tgz","fileCount":34,"integrity":"sha512-WSf2zwDuCNiHA6czE/Rnl/RqR026qgAiPGSb+OPHKHQM2l5LlGGIQGiAr82zGC4pW4svGZbcCdxt9eC1RLEX5A==","signatures":[{"sig":"MEQCIFrv+g9JYfAHa9PvpkOS3FAqelMXec0484PF+DoR3C4AAiBw6lpdM8o/KohhX1n+sp4aisanaTbJO3AjVKPyHzSw6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5685806},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"ce67902db8e80f517ac9c221711d0aac91abc0ca","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.17.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.5_1782536651917_0.5952842809596441","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"signalk-binnacle","version":"0.10.6","keywords":["signalk-webapp","signalk-category-chart-plotters","chart-plotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.10.6","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"d76dae1bc4cf4dd27d25a448e6655b8d52376b4b","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.10.6.tgz","fileCount":34,"integrity":"sha512-bEDJtt56MqaCL76LCAcTUguK4yscuf+bCpaO/gSL+iP2bXnukycvt/gPLh/4pMbq0JDvSiFXDC5vikKu01d6Mg==","signatures":[{"sig":"MEQCIEU/LKUDllevmr6tTR3bjxPoDrc3SG5XKm45b5L1qkwmAiAVC/O6ihptF6bZFDCazVwLO3Vmv3iieFPlu4jjyuT6xA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.10.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5686964},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"72d914e72473c6cabdd05916fe85f66645808669","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.13.0","description":"WebGL chart plotter for Signal K","directories":{},"_nodeVersion":"24.17.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.20.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","@vitest/web-worker":"^4.1.9","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.10.6_1782581734954_0.07890516007046333","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"signalk-binnacle","version":"0.13.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.13.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"b5463cf24ac54402ecb503b2d34535bf645904e5","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.13.0.tgz","fileCount":34,"integrity":"sha512-PWNZP8cJu7jSsBsQasnolTyf+NIydJpxfx1SGefoU5cAGMyhDRRNikdYrl5WJ0M1DXsaqcvwpJITVDkIkPPPUQ==","signatures":[{"sig":"MEUCIQDzmpKK7nz7uQfuBKUUJ3YN6RIF+QZigLta5HWPzsfZeAIgZ58mV+V9MNOZlfw+7TnynO0mgoymyZw7BIa66n41m3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5748878},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"0381fda29f027f69950a54e1be92c05cb41f8156","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.1.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.0","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","@biomejs/biome":"^2.5.1","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","dependency-cruiser":"^17.4.3","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.13.0_1783112689420_0.08619083604174449","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"signalk-binnacle","version":"0.14.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.14.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"1ce1d6073dab62936da6276a306be28039fd38ef","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.14.0.tgz","fileCount":34,"integrity":"sha512-GV0ApIaSC8Wnnx0FjaxClkI3QqD8l+WQXP+0ApVDoGDIcDP/IMgR+6OzCKWwsEJr4FjKFdDgktof614H7+1WqQ==","signatures":[{"sig":"MEQCIDz+WjMt5um0/18s1q9QkBBMK1IrC2OvvDyO0cNVuvo6AiAGL0wBffIbiJPClTcAVDHIRke2Jito1NXdUhpqo3SDJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5794019},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"babbd86aa4a673ff56200d523dced552148a232a","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.2.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.3","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","@biomejs/biome":"^2.5.2","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","dependency-cruiser":"^18.0.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.14.0_1783393348141_0.9728013188277753","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"signalk-binnacle","version":"0.14.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.14.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"35b161c8f8f49019731eeb34fb4e63a8e888cd90","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.14.1.tgz","fileCount":34,"integrity":"sha512-VztepZNSQLNupMDWpB58Mr4PUHDhOofSr5ymZ7pFAFd///8QDS0vGeAYG2TR6pFNj/7cKYvPNCSD+pKcS8iHMQ==","signatures":[{"sig":"MEUCIQCu8/R+PQxqo5a7+/viADBNDilAcJoS0Ld1OH2wa+FUjgIgeDEn8KTDQNFqpS/fiWAa0h4KXCR6Yl5iy+5oEFTtfEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12069770},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"3c41f28997beb6e182de651eac9c92aa38e15374","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","lint:fix":"biome lint --write .","test:e2e":"playwright test","test:watch":"vitest","format:check":"biome format ."},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-points-of-interest.png","./screenshots/03-layers.png","./screenshots/04-weather.png","./screenshots/05-profiles.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^4.0.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.2.0","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.1.3","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","@biomejs/biome":"^2.5.2","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","dependency-cruiser":"^18.0.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.14.1_1783487996039_0.500355450446831","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"signalk-binnacle","version":"0.15.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.15.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"6e995bb91e9962a1f12d601b6e2b60439a484ffc","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.15.0.tgz","fileCount":76,"integrity":"sha512-4C2XoDkwAngJmT1HTYrCVLr++gWF2OhsEt/Op5QBovV/E2psSZ11RjzfrmOY5UrE8CYGT6KTlPm4HIXE8N+AZA==","signatures":[{"sig":"MEUCIBHh6NAdoR9RumnDAPF9mjJTL91zhoj2RoG5n9m5cuZ6AiEAgV/2FbZG17KKMN+IukSOWs8TLvPJgcRf/gWPI0gW5kA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7001995},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"aeca8e3a8e9374bbdbad8e7efaae08265502a4e9","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write .","test:e2e":"vite build && playwright test --project=chromium","test:watch":"vitest","format:check":"biome format .","test:e2e:cross-browser":"vite build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.3.1","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.26.0","vite":"^8.1.3","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","@biomejs/biome":"^2.5.3","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","dependency-cruiser":"^18.0.0","@axe-core/playwright":"^4.12.1","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.15.0_1784055009158_0.8614042105047011","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"signalk-binnacle","version":"0.15.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.15.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"aa16224ea504a3e6d48950f0ca54ae118ff85e90","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.15.1.tgz","fileCount":76,"integrity":"sha512-IR5T1ixPjz9IyETYg9kzhCeIrwHnlaoRhXj9NGkmMzRulEtx3yDl4Sj/Q1BKnOKWfHzggBCvV1fafFYYR0rKHw==","signatures":[{"sig":"MEYCIQC/fM7PFqVYt73lo4uesV9hr/sg7y9/caNXIICEyGs6gQIhAN+W3j7XLEcugSW3XPl6uZ1XgpeeJiF77sGq2L2NlfXF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7013124},"type":"module","engines":{"node":">=22"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"gitHead":"2b82d7a98708048ff4daffb3ccafa93cedbd682c","scripts":{"dev":"vite","lint":"biome lint .","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json","hooks":"git config core.hooksPath .githooks","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write .","test:e2e":"vite build && playwright test --project=chromium","test:watch":"vitest","format:check":"biome format .","test:e2e:cross-browser":"vite build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.3.1","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"devDependencies":{"knip":"^6.26.0","vite":"^8.1.3","svelte":"^5.56.4","vitest":"^4.1.9","typescript":"^6.0.3","svelte-check":"^4.7.0","@biomejs/biome":"^2.5.3","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@tsconfig/svelte":"^5.0.8","dependency-cruiser":"^18.0.0","@axe-core/playwright":"^4.12.1","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.15.1_1784062206490_0.14573484685503124","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"signalk-binnacle","version":"0.15.3","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.15.3","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"ba5433fad5d5af5d8a6110e1f4fcdbc07392e846","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.15.3.tgz","fileCount":75,"integrity":"sha512-6q6hWX/5EILSwDyVWUuQWmNTb3XAoBSj+CsKTnJx8jzINn9ULnh+lS2fGBXWA6zwrsVnswB0m0EDVGJmJR/bTg==","signatures":[{"sig":"MEQCIHJMvOAaifIPhe0ffXXJGxGmner5egYmONfplQo4dqjBAiAdNIz49B5bbOniVFGVzl3gaXcnRpmqh5ltSHpXWMXFCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7076909},"type":"module","_from":"file:artifacts/signalk-binnacle-0.15.3.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","spellcheck":"cspell --no-progress --show-suggestions README.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e","verify:release":"npm run verify && npm run test:e2e:cross-browser && npm run package:check && npm run audit:runtime","test:e2e:with-build":"npm run build && npm run test:e2e","test:e2e:cross-browser":"playwright test","test:e2e:cross-browser:with-build":"npm run build && npm run test:e2e:cross-browser"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.15.3.tgz","_integrity":"sha512-6q6hWX/5EILSwDyVWUuQWmNTb3XAoBSj+CsKTnJx8jzINn9ULnh+lS2fGBXWA6zwrsVnswB0m0EDVGJmJR/bTg==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":"public/assets/maplibre-gl-*.js","limit":"240 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.3.1","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"packageManager":"npm@11.16.0","devDependencies":{"knip":"6.27.0","vite":"^8.1.3","cspell":"10.0.1","eslint":"10.7.0","svelte":"^5.56.4","vitest":"4.1.10","publint":"0.3.21","size-limit":"12.1.0","typescript":"^6.0.3","@types/node":"24.13.3","svelte-check":"^4.7.0","@biomejs/biome":"2.5.4","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@size-limit/file":"12.1.0","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.0","typescript-eslint":"8.64.0","dependency-cruiser":"^18.0.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.20.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.15.3_1784176028593_0.3280265033538581","host":"s3://npm-registry-packages-npm-production"}},"0.15.4":{"name":"signalk-binnacle","version":"0.15.4","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.15.4","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"7379f20bddfd2114874ca43cf9d04f0a2d1091c1","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.15.4.tgz","fileCount":75,"integrity":"sha512-WgOje/ZGzd+nEVJN7r6FEjHgPwD/7UIDbCyFjlHoOBCqh0codxjeBVZ/z/muC5d8hP0WPywnu7Q4KoQOZUmh0Q==","signatures":[{"sig":"MEUCIQChXfo89lzE2p2aRkVhWCE+4cQK9nd1LE9SWkWTkCOrUwIgcufFFu9yZeVhox8amDBOMQVVQEObjuDPhhgmySmsAPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.15.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7082027},"type":"module","_from":"file:artifacts/signalk-binnacle-0.15.4.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","spellcheck":"cspell --no-progress --show-suggestions README.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e","verify:release":"npm run verify && npm run test:e2e:cross-browser && npm run package:check && npm run audit:runtime","test:e2e:with-build":"npm run build && npm run test:e2e","test:e2e:cross-browser":"playwright test","test:e2e:cross-browser:with-build":"npm run build && npm run test:e2e:cross-browser"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.15.4.tgz","_integrity":"sha512-WgOje/ZGzd+nEVJN7r6FEjHgPwD/7UIDbCyFjlHoOBCqh0codxjeBVZ/z/muC5d8hP0WPywnu7Q4KoQOZUmh0Q==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":"public/assets/maplibre-gl-*.js","limit":"240 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.3.1","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"packageManager":"npm@11.16.0","devDependencies":{"knip":"6.27.0","vite":"^8.1.3","cspell":"10.0.1","eslint":"10.7.0","svelte":"^5.56.4","vitest":"4.1.10","publint":"0.3.21","size-limit":"12.1.0","typescript":"^6.0.3","@types/node":"24.13.3","svelte-check":"^4.7.0","@biomejs/biome":"2.5.4","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@size-limit/file":"12.1.0","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.0","typescript-eslint":"8.64.0","dependency-cruiser":"^18.0.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.20.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.15.4_1784215041898_0.08934344120428839","host":"s3://npm-registry-packages-npm-production"}},"0.15.5":{"name":"signalk-binnacle","version":"0.15.5","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.15.5","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"7f3d1d9f09692924984a6a3f6cd1019068fbde23","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.15.5.tgz","fileCount":82,"integrity":"sha512-ckk7cp7T6uks4+8gXjvilun4Yh/80wypETS+vLCzClITzw59zDlraAFnB474ev41a2bBhGwx1snRInoVl3b0fQ==","signatures":[{"sig":"MEYCIQC8m9DpF4CDOZBBifTydKZEau9y5xpHqcquRb3/LcLnyAIhAOFiE+tk9mhAb0VPemXyyiNVvBJCEJd7sTBB+sYO2Wt+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.15.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7121874},"type":"module","_from":"file:artifacts/signalk-binnacle-0.15.5.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","spellcheck":"cspell --no-progress --show-suggestions README.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e","verify:release":"npm run verify && npm run test:e2e:cross-browser && npm run package:check && npm run audit:runtime","test:e2e:with-build":"npm run build && npm run test:e2e","test:e2e:cross-browser":"playwright test","test:e2e:cross-browser:with-build":"npm run build && npm run test:e2e:cross-browser"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.15.5.tgz","_integrity":"sha512-ckk7cp7T6uks4+8gXjvilun4Yh/80wypETS+vLCzClITzw59zDlraAFnB474ev41a2bBhGwx1snRInoVl3b0fQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":"public/assets/maplibre-gl-*.js","limit":"240 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.3.1","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"packageManager":"npm@11.16.0","devDependencies":{"knip":"6.27.0","vite":"^8.1.3","cspell":"10.0.1","eslint":"10.7.0","svelte":"^5.56.4","vitest":"4.1.10","publint":"0.3.21","size-limit":"12.1.0","typescript":"^6.0.3","@types/node":"24.13.3","svelte-check":"^4.7.0","@biomejs/biome":"2.5.4","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@size-limit/file":"12.1.0","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.0","typescript-eslint":"8.64.0","dependency-cruiser":"^18.0.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.20.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.15.5_1784241500891_0.5406337465881514","host":"s3://npm-registry-packages-npm-production"}},"0.15.6":{"name":"signalk-binnacle","version":"0.15.6","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.15.6","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"4ccc3f0593008374e2fa19b64eb4e8078e332638","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.15.6.tgz","fileCount":82,"integrity":"sha512-akcsfZRije5uGUme3JRcpUSWc3BDlxvBreFD3VdJBS4Nr4wX6DD5KsjlVwGI8sKOBlRFloBtbXAeqR3he5bULA==","signatures":[{"sig":"MEYCIQDRejkPZyJgiGRSSBaby21Wz3a6u3+BzpszozIvL4mV0wIhAM/lhcZo79wAa/5w23zXv0n9VpQVNr7fImcw3dLWxjYZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.15.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7125272},"type":"module","_from":"file:artifacts/signalk-binnacle-0.15.6.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","spellcheck":"cspell --no-progress --show-suggestions README.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e","verify:release":"npm run verify && npm run test:e2e:cross-browser && npm run package:check && npm run audit:runtime","test:e2e:with-build":"npm run build && npm run test:e2e","test:e2e:cross-browser":"playwright test","test:e2e:cross-browser:with-build":"npm run build && npm run test:e2e:cross-browser"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.15.6.tgz","_integrity":"sha512-akcsfZRije5uGUme3JRcpUSWc3BDlxvBreFD3VdJBS4Nr4wX6DD5KsjlVwGI8sKOBlRFloBtbXAeqR3he5bULA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":"public/assets/maplibre-gl-*.js","limit":"240 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.16.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.23.0","signalk-chart-sources":"^0.3.1","@fontsource-variable/inter":"^5.2.8","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.2.8"},"_hasShrinkwrap":false,"packageManager":"npm@11.16.0","devDependencies":{"knip":"6.27.0","vite":"^8.1.3","cspell":"10.0.1","eslint":"10.7.0","svelte":"^5.56.4","vitest":"4.1.10","publint":"0.3.21","size-limit":"12.1.0","typescript":"^6.0.3","@types/node":"24.13.3","svelte-check":"^4.7.0","@biomejs/biome":"2.5.4","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@size-limit/file":"12.1.0","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.0","typescript-eslint":"8.64.0","dependency-cruiser":"^18.0.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.20.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.15.6_1784307439162_0.49525884809764253","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"signalk-binnacle","version":"0.16.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.16.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"c8681bdf5eccf17b443e791a18a3e7b368e8e3db","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.16.0.tgz","fileCount":82,"integrity":"sha512-1T+4ICqRyOQPrl71EgCXCfbjQRwFnGHE2RSqwq7IDVT53CtLlmJcrP/i48lWoi6SCL52uJ/n11xergRMw/8z0w==","signatures":[{"sig":"MEUCIQCEVpqOvs1YCaaPVBEhNoGGvWYD+yn41843PKXs4gKk7AIgQS96WlIPb1th/1DfB5F0+AkjThYm7T9ARADo4tB+k4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7697366},"type":"module","_from":"file:artifacts/signalk-binnacle-0.16.0.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json && tsc -p tsconfig.node.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e","verify:release":"npm run verify && npm run test:e2e:cross-browser && npm run package:check && npm run audit:runtime","test:e2e:with-build":"npm run build && npm run test:e2e","test:e2e:cross-browser":"playwright test","test:e2e:cross-browser:with-build":"npm run build && npm run test:e2e:cross-browser"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.16.0.tgz","_integrity":"sha512-1T+4ICqRyOQPrl71EgCXCfbjQRwFnGHE2RSqwq7IDVT53CtLlmJcrP/i48lWoi6SCL52uJ/n11xergRMw/8z0w==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":"public/assets/maplibre-gl-*.js","limit":"240 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.18.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.1","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.31.0","maplibre-gl":"^5.24.0","@lucide/svelte":"^1.25.0","signalk-chart-sources":"^0.4.0","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.18.0","devDependencies":{"knip":"6.27.0","vite":"^8.1.5","cspell":"10.0.1","eslint":"10.7.0","svelte":"^5.56.6","vitest":"4.1.10","publint":"0.3.21","size-limit":"12.1.0","typescript":"^6.0.3","@types/node":"24.13.3","svelte-check":"^4.7.3","@biomejs/biome":"2.5.4","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.61.1","@size-limit/file":"12.1.0","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.1","typescript-eslint":"8.64.0","dependency-cruiser":"^18.0.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.21.0","@sveltejs/vite-plugin-svelte":"^7.1.2"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.16.0_1784450813362_0.9190059416687555","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"signalk-binnacle","version":"0.17.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.17.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"31af1485d7c37a68c69140a0af9a916bd2b86e8c","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.17.0.tgz","fileCount":82,"integrity":"sha512-ANtItZvkR0FfQmyXsBXOcKmlCOfu0rtJc9HLHdoOZOvayzb5b6Gau8IcmR+UA8RlNgEqDPYeQLQ3pjOH0Je2vA==","signatures":[{"sig":"MEUCIB9sM5eTk4MG3WdV45+8d8OWQi3/76KVjZufs3ODKv4DAiEA4v8HPGQ/Tb+6sALzO0vuG/RYH9oEof3jlaTiYiAYLNI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5310151},"type":"module","_from":"file:artifacts/signalk-binnacle-0.17.0.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"npm run build && playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:gate":"playwright test --project=chromium --project=chromium-pwa --project=webkit-smoke","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check && npm run audit:runtime","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.17.0.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-ANtItZvkR0FfQmyXsBXOcKmlCOfu0rtJc9HLHdoOZOvayzb5b6Gau8IcmR+UA8RlNgEqDPYeQLQ3pjOH0Je2vA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.18.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.32.2","maplibre-gl":"6.0.0","@lucide/svelte":"^1.27.0","signalk-chart-sources":"^0.5.0","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.18.0","devDependencies":{"knip":"6.29.0","vite":"^8.1.5","cspell":"10.0.1","eslint":"10.8.0","svelte":"^5.56.8","vitest":"4.1.10","publint":"0.3.22","size-limit":"13.0.1","typescript":"^6.0.3","@types/node":"26.1.2","svelte-check":"^4.7.4","@biomejs/biome":"2.5.5","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.0","@size-limit/file":"13.0.1","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.65.0","dependency-cruiser":"^18.1.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.22.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.17.0_1785191573535_0.33713588013067364","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"signalk-binnacle","version":"0.17.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.17.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"d253b129152060618ca42c2f0f1b214d18fbb755","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.17.1.tgz","fileCount":82,"integrity":"sha512-nSOEYxrez/fEzym6h2XC0tfV7vQbHSUM0iNuqmYZJemulzkG4ifnzGrhblWDlK4S7HT2zfB106OVwIRfUbymmw==","signatures":[{"sig":"MEQCIETqA1Ptcb+93KZDJOd85b77+jSmZXUgh3YfoYF87la4AiBe8TqYKtxXbE1hfdCa/TOZmPD5bxO1unUfWXKFPjoPPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5308921},"type":"module","_from":"file:artifacts/signalk-binnacle-0.17.1.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"npm run build && playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:gate":"playwright test --project=chromium --project=chromium-pwa --project=webkit-smoke","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check && npm run audit:runtime","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.17.1.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-nSOEYxrez/fEzym6h2XC0tfV7vQbHSUM0iNuqmYZJemulzkG4ifnzGrhblWDlK4S7HT2zfB106OVwIRfUbymmw==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"115 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.18.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.32.2","maplibre-gl":"6.0.0","@lucide/svelte":"^1.27.0","signalk-chart-sources":"^0.5.0","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.18.0","devDependencies":{"knip":"6.29.0","vite":"^8.1.5","cspell":"10.0.1","eslint":"10.8.0","svelte":"^5.56.8","vitest":"4.1.10","publint":"0.3.22","size-limit":"13.0.1","typescript":"^6.0.3","@types/node":"26.1.2","svelte-check":"^4.7.4","@biomejs/biome":"2.5.5","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.0","@size-limit/file":"13.0.1","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.65.0","dependency-cruiser":"^18.1.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.22.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.17.1_1785194346929_0.36225041228243726","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"signalk-binnacle","version":"0.18.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.18.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"72d4d02eca7a03cf3ccf5afdee68057b170be578","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.18.0.tgz","fileCount":112,"integrity":"sha512-9y01VMIeMBX32Az90Y9vgDN7gtvth36EWSsJkoy2IKrx9SkVJh3F5l/yyH4ZDlYZNUJI3Mtk/cp3XjMd0NICAA==","signatures":[{"sig":"MEUCIQDbLN/bwVidR6lN5iroZHKc1I20QE+wHs01fPXN6Dgr4QIge9mpFBUheIFd/IK3hHM65JRdwsVaD9GnGwhPYkfo4X0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5509962},"type":"module","_from":"file:artifacts/signalk-binnacle-0.18.0.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"npm run build && playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:gate":"playwright test --project=chromium --project=chromium-pwa --project=webkit-smoke","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check && npm run audit:runtime","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.18.0.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-9y01VMIeMBX32Az90Y9vgDN7gtvth36EWSsJkoy2IKrx9SkVJh3F5l/yyH4ZDlYZNUJI3Mtk/cp3XjMd0NICAA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"119 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.18.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.32.2","maplibre-gl":"6.0.0","@lucide/svelte":"^1.27.0","signalk-chart-sources":"^0.5.0","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.18.0","devDependencies":{"knip":"6.29.0","vite":"^8.1.5","cspell":"10.0.1","eslint":"10.8.0","svelte":"^5.56.8","vitest":"4.1.10","publint":"0.3.22","size-limit":"13.0.1","typescript":"^6.0.3","@types/node":"26.1.2","svelte-check":"^4.7.4","@biomejs/biome":"2.5.5","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.0","@size-limit/file":"13.0.1","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.65.0","dependency-cruiser":"^18.1.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.22.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.18.0_1785343004620_0.41191654385402643","host":"s3://npm-registry-packages-npm-production"}},"0.18.1":{"name":"signalk-binnacle","version":"0.18.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.18.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"e786633352e783f94b9e5c2d526e1d04ce79a4e5","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.18.1.tgz","fileCount":116,"integrity":"sha512-E5WXIBeK7PtJi4BVnPDKrxCiJSFd5ajnN1Q6BcFWHEgS3APPKaGxGlYhE5eLqRx5PiWZGfu8kGCZIO0W8yw8yw==","signatures":[{"sig":"MEUCIGG8mr1e8UUihWg0GWZ1Zo2ulG2BD242SxI0m64Rz2uXAiEA0j3ZFISHRmPabQtMXkVZ5K9roVkhVpiWqzYI1z7Q7Cs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5535995},"type":"module","_from":"file:artifacts/signalk-binnacle-0.18.1.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"npm run build && playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:gate":"playwright test --project=chromium --project=chromium-pwa --project=webkit-smoke","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check && npm run audit:runtime","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.18.1.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-E5WXIBeK7PtJi4BVnPDKrxCiJSFd5ajnN1Q6BcFWHEgS3APPKaGxGlYhE5eLqRx5PiWZGfu8kGCZIO0W8yw8yw==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"119 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.18.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.32.2","maplibre-gl":"6.0.0","@lucide/svelte":"^1.27.0","signalk-chart-sources":"^0.5.0","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.18.0","devDependencies":{"knip":"6.29.0","vite":"^8.1.5","cspell":"10.0.1","eslint":"10.8.0","svelte":"^5.56.8","vitest":"4.1.10","publint":"0.3.22","size-limit":"13.0.1","typescript":"^6.0.3","@types/node":"26.1.2","svelte-check":"^4.7.4","@biomejs/biome":"2.5.5","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.0","@size-limit/file":"13.0.1","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.65.0","dependency-cruiser":"^18.1.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.22.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.18.1_1785430927061_0.9663895106798435","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"signalk-binnacle","version":"0.19.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.19.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"7798d6da44b86a499ed596d99bfa84c085a68a51","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.19.0.tgz","fileCount":117,"integrity":"sha512-2ZI1+dqHZ6Vq9oYfVSTN63vz/Mx+kv1wTROwQ23MnhKIqZaDkAIrG2F9bEg6zINFWmT5IJy7Ow3UGd/rcTGYhQ==","signatures":[{"sig":"MEUCIAZ8haCTfWoIvAoPSI++rj7c+UpQgw3rb4PMo78oJSllAiEAl2Nny01pe0znE9arfKbCR/VlFZpBvOi4/m+soIp8wpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5546142},"type":"module","_from":"file:artifacts/signalk-binnacle-0.19.0.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","test:e2e":"npm run build && playwright test --project=chromium","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","audit:full":"npm audit --audit-level=high","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:gate":"playwright test --project=chromium --project=chromium-pwa --project=webkit-smoke","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check && npm run audit:runtime && npm run audit:full","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors","signalk-ssl"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.19.0.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-2ZI1+dqHZ6Vq9oYfVSTN63vz/Mx+kv1wTROwQ23MnhKIqZaDkAIrG2F9bEg6zINFWmT5IJy7Ow3UGd/rcTGYhQ==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"119 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.19.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.32.2","maplibre-gl":"6.1.0","@lucide/svelte":"^1.28.0","signalk-chart-sources":"^0.7.1","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"knip":"6.31.0","vite":"^8.2.0","cspell":"10.0.1","eslint":"10.8.0","svelte":"^5.56.8","vitest":"4.1.10","publint":"0.3.22","size-limit":"13.0.3","typescript":"^6.0.3","@types/node":"26.1.2","svelte-check":"^4.7.4","@biomejs/biome":"2.5.6","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.1","@size-limit/file":"13.0.3","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.66.0","dependency-cruiser":"^18.1.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.22.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.19.0_1785811623204_0.2893245735970842","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"signalk-binnacle","version":"0.19.1","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.19.1","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"a4928496a5951ec30ad524931ee353d0e1ed8cd9","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.19.1.tgz","fileCount":120,"integrity":"sha512-n9YICUiGV+H4AhaK11buWYAyOH5/xA+pOcFxqdhro3TtRQP1Mr25EjhulI6FPAedFgdjX+RoYbAyF7yiT7gomA==","signatures":[{"sig":"MEQCIEeRAsngEq8nfFxjJFidn1yWpRIsFYpmsF8wkEeIlp1dAiASargi9/duc6LAk6oLTp426jYaXu/1DTvS9HJhsTq3BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5600784},"type":"module","_from":"file:artifacts/signalk-binnacle-0.19.1.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","audit:full":"npm audit --audit-level=high","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:fast":"npm run build && playwright test --project=chromium","test:e2e:gate":"playwright test --project=chromium --project=chromium-pwa --project=webkit-smoke","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check && npm run audit:runtime && npm run audit:full","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors","signalk-ssl"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.19.1.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-n9YICUiGV+H4AhaK11buWYAyOH5/xA+pOcFxqdhro3TtRQP1Mr25EjhulI6FPAedFgdjX+RoYbAyF7yiT7gomA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"119 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.19.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.4.1","terra-draw":"^1.32.2","maplibre-gl":"6.1.0","@lucide/svelte":"^1.28.0","signalk-chart-sources":"^0.7.1","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"knip":"6.31.0","vite":"^8.2.0","cspell":"10.0.1","eslint":"10.8.0","svelte":"^5.56.8","vitest":"4.1.10","publint":"0.3.23","size-limit":"13.0.3","typescript":"^6.0.3","@types/node":"26.1.2","svelte-check":"^4.7.4","@biomejs/biome":"2.5.6","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.1","@size-limit/file":"13.0.3","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.66.0","dependency-cruiser":"^18.1.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.12.1","eslint-plugin-svelte":"3.22.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.2.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.19.1_1785847336678_0.5751448061539166","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"signalk-binnacle","version":"0.21.0","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa"],"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","_id":"signalk-binnacle@0.21.0","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"4e0fc340fc2a2aa88a931afc3fe1f64798754f92","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.21.0.tgz","fileCount":154,"integrity":"sha512-5DZ/viS8VkU+ctkkjgrA1GAr3PZM9MVA6OFjfQuBJuCUKImVA7upwoTJTbVQO8SXzycQPMvHEQa0mvjDm6zT0w==","signatures":[{"sig":"MEYCIQCm0zNz1YMMLkKhpUBd5Y4ajhYNQxd+iKEbdZKKainq8QIhAJqyze03Ii5RJ9QtnqrSVfQEzB5LuS2rebb6KxrBqYe4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5798617},"type":"module","_from":"file:artifacts/signalk-binnacle-0.21.0.tgz","engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"scripts":{"dev":"vite","lint":"npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo && tsgo -p tsconfig.node.json && tsgo -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && eslint . --fix --cache --cache-location .cache/eslint","lint:code":"biome lint . && eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2 \"*.md\" \".github/*.md\" \"docs/*.md\"","verify:ci":"npm run verify && playwright test && npm run package:check && npm run audit:runtime && npm run audit:full","audit:full":"npm audit --audit-level=high","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-gitignore --no-progress --show-suggestions README.md CHANGELOG.md AGENTS.md \".github/**/*.{md,yml,yaml}\" \"docs/*.md\"","test:watch":"vitest","e2e:fixture":"node scripts/signalk-fixture-server.mjs","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node scripts/check-workflows.mjs","format:check":"biome format .","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:fast":"npm run build && playwright test --project=chromium","test:e2e:gate":"playwright test --project=chromium --project=mariner --project=chromium-pwa --project=webkit-smoke --project=webkit-ui --project=mobile-webkit-ui","verify:commit":"npm run ci:biome && npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && playwright test && npm run package:check:release && npm run audit:runtime && npm run audit:full","package:check:release":"publint --pack npm --strict && node scripts/check-package.mjs --release","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors","signalk-ssl"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.21.0.tgz","overrides":{"workbox-build":{"@trickfilm400/rollup-plugin-off-main-thread":"4.0.0-pre2"}},"_integrity":"sha512-5DZ/viS8VkU+ctkkjgrA1GAr3PZM9MVA6OFjfQuBJuCUKImVA7upwoTJTbVQO8SXzycQPMvHEQa0mvjDm6zT0w==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"119 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"117 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"}],"_npmVersion":"11.19.0","description":"WebGL chartplotter for Signal K","directories":{},"_nodeVersion":"24.18.0","dependencies":{"pbf":"^5.1.2","uplot":"^1.6.32","comlink":"^4.4.2","pmtiles":"^4.5.0","terra-draw":"^1.32.3","maplibre-gl":"6.3.0","@lucide/svelte":"^1.31.0","signalk-chart-sources":"^0.7.2","@fontsource-variable/inter":"^5.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"ws":"^8.21.3","knip":"6.32.2","vite":"^8.2.1","cspell":"10.0.1","eslint":"10.8.1","svelte":"^5.56.9","vitest":"4.1.10","publint":"0.3.23","@types/ws":"^8.18.1","size-limit":"13.0.3","typescript":"^6.0.3","@types/node":"26.2.0","svelte-check":"^4.7.6","@biomejs/biome":"2.5.8","workbox-window":"^7.4.1","vite-plugin-pwa":"^1.3.0","@playwright/test":"^1.62.1","@size-limit/file":"13.0.3","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.67.0","dependency-cruiser":"^18.2.0","@vitest/coverage-v8":"4.1.10","@axe-core/playwright":"^4.13.0","eslint-plugin-svelte":"3.23.0","@typescript/native-preview":"^7.0.0-dev.20260707.2","@vitest/browser-playwright":"4.1.10","@sveltejs/vite-plugin-svelte":"^7.3.0"},"_npmOperationalInternal":{"tmp":"tmp/signalk-binnacle_0.21.0_1786632681539_0.20749342962972817","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"_id":"signalk-binnacle@0.22.0","bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"dist":{"shasum":"40debee94ae211c837e5b42f5249a74f507b7b3b","tarball":"https://registry.npmjs.org/signalk-binnacle/-/signalk-binnacle-0.22.0.tgz","fileCount":178,"integrity":"sha512-4N93X2cMUd2gbiY8VWGIOKa8Zax+rFqyT2dbXY14npX0q70gOiGqioSYYI5IDACesQoWZUvmamLD2HagObS7tA==","signatures":[{"sig":"MEYCIQDzLPYl8j36jCWKmdN5OnZj+WoqHp9NM+2fG7rVfBB/SwIhAIwrNJaYUMRt52Jd8DufD6vqekxWHCZGC1ZPjdxRfuTy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQChFClxMo+v/mR25NYqC4wkPzwF7Gqz2F2MTOWRbUJ7rwIgQvarCfWjxve0WQIurktmK6r/lxXOOgGTfEiSstv3kP4="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-binnacle@0.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6347134},"name":"signalk-binnacle","type":"module","_from":"file:artifacts/signalk-binnacle-0.22.0.tgz","author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"engines":{"node":">=22.18"},"funding":{"url":"https://www.buymeacoffee.com/nearlcrews","type":"buymeacoffee"},"license":"Apache-2.0","scripts":{"dev":"vite","lint":"npm run ci:biome && npm run lint:code && npm run lint:docs && npm run spellcheck && npm run lint:prose","size":"size-limit","test":"vitest run","build":"vite build","check":"svelte-check --tsconfig ./tsconfig.app.json --tsgo --fail-on-warnings && node node_modules/@typescript/native/bin/tsc -p tsconfig.node.json && node node_modules/@typescript/native/bin/tsc -p tsconfig.scripts.json","hooks":"git config core.hooksPath .githooks && chmod +x .githooks/pre-commit .githooks/pre-push","cruise":"depcruise src --config .dependency-cruiser.cjs --cache","format":"biome format --write .","verify":"npm run verify:fast && npm run test:coverage && npm run build && npm run size","preview":"vite preview --port 4173","ci:biome":"biome ci .","deadcode":"knip","lint:fix":"biome lint --write . && npm run lint:code -- --fix","lint:code":"eslint . --cache --cache-location .cache/eslint","lint:docs":"markdownlint-cli2","verify:ci":"npm run verify && npm run test:e2e:gate && npm run package:check && npm run audit:runtime && npm run audit:full","audit:full":"npm audit --audit-level=high","lint:prose":"node scripts/check-package.mjs --prose-only","spellcheck":"cspell --no-progress --show-suggestions --cache --cache-location .cache/cspell","test:watch":"vitest","e2e:fixture":"node scripts/signalk-fixture-server.mjs","verify:fast":"npm run verify:commit && npm run check","ci:workflows":"node --test scripts/*.test.mjs && node scripts/check-workflows.mjs","audit:runtime":"npm audit --omit=dev --audit-level=high","package:check":"publint --pack npm --strict && node scripts/check-package.mjs","test:coverage":"vitest run --coverage","test:e2e:fast":"npm run build && playwright test --project=chromium","test:e2e:gate":"playwright test","verify:commit":"npm run ci:workflows && npm run lint && npm run cruise && npm run deadcode","verify:browser":"npm run verify && npm run test:e2e:gate","verify:release":"npm run verify && npm run test:e2e:gate && npm run package:check:release && npm run audit:runtime && npm run audit:full","test:coverage:report":"vitest run --coverage --coverage.reporter=text --coverage.reporter=html --coverage.reporter=lcov","package:check:release":"npm run package:check -- --release","test:e2e:cross-browser":"npm run build && playwright test"},"signalk":{"appIcon":"./binnacle-icon.svg","recommends":["signalk-chart-locker","signalk-crows-nest","signalk-virtual-weather-sensors","signalk-ssl","signalk-anchoralarm-plugin","signalk-tides","signalk-symbol-manager","signalk-openrouter-companion"],"displayName":"Binnacle Chartplotter","screenshots":["./screenshots/01-chart.png","./screenshots/02-instruments.png","./screenshots/03-charts-overlays.png","./screenshots/04-weather.png","./screenshots/05-routes.png"]},"version":"0.22.0","_npmUser":{"name":"nearlcrews","email":"nearlcrewsx@proton.me"},"homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa","offline","charts","radar","tides","routing","mob"],"_resolved":"/home/runner/work/signalk-binnacle/signalk-binnacle/artifacts/signalk-binnacle-0.22.0.tgz","overrides":{"markdownlint-cli2":{"smol-toml":"1.8.0"}},"_integrity":"sha512-4N93X2cMUd2gbiY8VWGIOKa8Zax+rFqyT2dbXY14npX0q70gOiGqioSYYI5IDACesQoWZUvmamLD2HagObS7tA==","devEngines":{"runtime":{"name":"node","onFail":"error","version":">=22.18"},"packageManager":{"name":"npm","onFail":"error","version":">=11.6"}},"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"size-limit":[{"name":"Main application JavaScript","path":"public/assets/index-*.js","limit":"130 kB"},{"name":"MapLibre JavaScript","path":["public/assets/maplibre-gl-*.js","!public/assets/maplibre-gl-worker-*.js"],"limit":"240 kB"},{"name":"MapLibre worker JavaScript","path":"public/assets/maplibre-gl-worker-*.js","limit":"121 kB"},{"name":"Application CSS","path":"public/assets/index-*.css","limit":"22 kB"},{"name":"Service worker","path":"public/sw.js","limit":"20 kB"}],"_npmVersion":"11.19.0","description":"WebGL chartplotter for Signal K with night-watch themes, offline chart caching, and boat-wide alarms","directories":{},"maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"packageManager":"npm@11.19.0","devDependencies":{"ws":"^8.21.3","pbf":"^5.1.2","knip":"6.35.1","vite":"^8.3.0","yaml":"2.9.1","uplot":"^1.6.32","cspell":"10.3.2","eslint":"10.10.0","svelte":"^5.57.0","vitest":"4.1.11","comlink":"^4.4.2","pmtiles":"^4.5.0","publint":"0.3.24","serwist":"^9.5.12","@types/ws":"^8.18.1","size-limit":"13.0.3","terra-draw":"^1.33.0","typescript":"^6.0.3","@types/node":"22.20.3","maplibre-gl":"6.10.0","svelte-check":"^4.7.6","@serwist/vite":"^9.5.12","@biomejs/biome":"2.5.13","@eslint/compat":"2.1.1","@lucide/svelte":"^1.46.0","@serwist/window":"^9.5.12","@playwright/test":"^1.63.0","@size-limit/file":"13.0.3","@tsconfig/svelte":"^5.0.8","markdownlint-cli2":"0.23.2","typescript-eslint":"8.70.0","@typescript/native":"npm:typescript@^7.0.2","dependency-cruiser":"^18.3.1","@vitest/coverage-v8":"4.1.11","@axe-core/playwright":"^4.13.0","eslint-plugin-svelte":"3.23.0","signalk-chart-sources":"^0.7.2","@fontsource-variable/inter":"^5.3.0","@vitest/browser-playwright":"4.1.11","@sveltejs/vite-plugin-svelte":"^7.3.0","terra-draw-maplibre-gl-adapter":"^1.4.1","@fontsource-variable/jetbrains-mono":"^5.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signalk-binnacle_0.22.0_1789746641884_0.16008835052645853"}}},"time":{"created":"2026-06-05T16:47:06.930Z","modified":"2026-09-18T15:50:42.403Z","0.1.0":"2026-06-05T16:47:07.374Z","0.1.1":"2026-06-05T17:12:16.782Z","0.1.2":"2026-06-05T18:25:02.649Z","0.1.3":"2026-06-08T16:22:08.990Z","0.2.0":"2026-06-08T23:31:42.166Z","0.2.1":"2026-06-09T12:47:10.801Z","0.3.0":"2026-06-09T22:10:05.562Z","0.4.0":"2026-06-10T20:29:51.200Z","0.5.0":"2026-06-11T17:41:52.823Z","0.6.0":"2026-06-12T19:13:36.148Z","0.6.1":"2026-06-13T00:17:47.661Z","0.6.2":"2026-06-14T00:24:39.055Z","0.7.0":"2026-06-17T16:31:44.062Z","0.7.1":"2026-06-17T17:08:01.562Z","0.9.0":"2026-06-22T22:22:19.978Z","0.10.0":"2026-06-24T02:43:47.839Z","0.10.1":"2026-06-24T23:09:01.392Z","0.10.2":"2026-06-25T20:03:35.764Z","0.10.3":"2026-06-25T23:26:16.315Z","0.10.4":"2026-06-26T08:41:17.950Z","0.10.5":"2026-06-27T05:04:12.150Z","0.10.6":"2026-06-27T17:35:35.179Z","0.13.0":"2026-07-03T21:04:49.672Z","0.14.0":"2026-07-07T03:02:28.367Z","0.14.1":"2026-07-08T05:19:56.352Z","0.15.0":"2026-07-14T18:50:09.501Z","0.15.1":"2026-07-14T20:50:06.775Z","0.15.3":"2026-07-16T04:27:08.925Z","0.15.4":"2026-07-16T15:17:22.137Z","0.15.5":"2026-07-16T22:38:21.123Z","0.15.6":"2026-07-17T16:57:19.455Z","0.16.0":"2026-07-19T08:46:53.590Z","0.17.0":"2026-07-27T22:32:53.812Z","0.17.1":"2026-07-27T23:19:07.186Z","0.18.0":"2026-07-29T16:36:44.904Z","0.18.1":"2026-07-30T17:02:07.366Z","0.19.0":"2026-08-04T02:47:03.491Z","0.19.1":"2026-08-04T12:42:16.912Z","0.21.0":"2026-08-13T14:51:21.818Z","0.22.0":"2026-09-18T15:50:42.082Z"},"bugs":{"url":"https://github.com/NearlCrews/signalk-binnacle/issues"},"author":{"name":"Nearl Crews","email":"23341701+NearlCrews@users.noreply.github.com"},"license":"Apache-2.0","homepage":"https://github.com/NearlCrews/signalk-binnacle#readme","keywords":["signalk-webapp","signalk-category-chart-plotters","chartplotter","navigation","marine","ais","weather","anchor-watch","pwa","offline","charts","radar","tides","routing","mob"],"repository":{"url":"git+https://github.com/NearlCrews/signalk-binnacle.git","type":"git"},"description":"WebGL chartplotter for Signal K with night-watch themes, offline chart caching, and boat-wide alarms","maintainers":[{"name":"nearlcrews","email":"nearlcrewsx@proton.me"}],"readme":"# Binnacle Chartplotter\n\n[![npm version](https://img.shields.io/npm/v/signalk-binnacle.svg)](https://www.npmjs.com/package/signalk-binnacle)\n[![npm downloads](https://img.shields.io/npm/dm/signalk-binnacle.svg)](https://www.npmjs.com/package/signalk-binnacle)\n[![CI](https://github.com/NearlCrews/signalk-binnacle/actions/workflows/ci.yml/badge.svg)](https://github.com/NearlCrews/signalk-binnacle/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/NearlCrews/signalk-binnacle/blob/main/LICENSE)\n[![node](https://img.shields.io/badge/node-%3E%3D22.18-brightgreen.svg)](https://nodejs.org)\n[![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-FFDD00?logo=buymeacoffee&logoColor=black)](https://www.buymeacoffee.com/nearlcrews)\n\nA WebGL chartplotter for [Signal K](https://signalk.org).\n\n> **It has not been field-tested at any scale.** It has been developed and verified against a single\n> Signal K server, never across a fleet or a range of real-world boats, hardware, and conditions. It\n> is also not certified for safety-of-life navigation. Always carry redundant means of navigation,\n> cross-check against your primary instruments, and treat every display as advisory.\n\n![The Binnacle chart in the day theme, centered on Boston Harbor, with the MOB button and theme control in the top bar and the live status strip along the bottom](https://raw.githubusercontent.com/NearlCrews/signalk-binnacle/main/static/screenshots/01-chart.png)\n\n## What's new in 0.22.0\n\n- **Helm controls:** an optional Autopilot panel, off-course alarms, alarm self-test and volume,\n  and a screen lock that leaves emergency controls available.\n- **Passage context:** forecast wind and after-dark arrivals in route plans, measured barometer\n  tendency, multi-day weather, and provider or NOAA weather warnings even when Weather is closed.\n- **Keyboard and touch workflows:** coordinate entry for routes, measurements, and anchor\n  corrections, tap-based reordering, and controls that remain reachable with enlarged text.\n- **Recovery without lost work:** retained logbook and handoff drafts, retryable radar-area edits,\n  explicit refresh actions, and offline coverage tied to the route and saved charts actually checked.\n- **Data confidence:** press-time MOB marks remain unchanged across stations and reconnects;\n  stale telemetry, tide datums, unknown hazard assessments, and unconfirmed actions stay explicit.\n- **Watchkeeping tools:** optional ship's logbook and AI advisor integrations, display dimming,\n  automatic themes, and per-category Signal K unit preferences.\n\nSee the [0.22.0 changelog](https://github.com/NearlCrews/signalk-binnacle/blob/main/CHANGELOG.md#v0220)\nfor the full list.\n\n## What it does\n\nSignal K is an open marine data standard that streams a boat's navigation, environment, and AIS data\nover a single API. Binnacle displays that data: a GPU-rendered, offline-capable chartplotter that\nruns in a browser and is served by the boat's Signal K server.\n\nIt is built for low-bandwidth, offline use on modest hardware. It has night-readable themes, computes\ncollision and course data on the client when no server provider supplies them, and caches viewed\nareas so they keep rendering without a connection. It runs on the same Raspberry Pi that hosts the\nSignal K server.\n\n## Features\n\nBinnacle ships its full feature set as a Signal K webapp:\n\n- **Charts and layers:** a GPU vector base map, server charts, five streaming bathymetry and ENC\n  sources (NOAA ENC, BlueTopo, EMODnet, GEBCO, and Seascape), your own PMTiles charts added by URL\n  or from the server's charts folder, and a 24 hour track history layer under the live track. An\n  ambient badge grades the current view honestly and never calls the reference base map a chart.\n- **Offline charts:** with the optional Chart Locker plugin, draw and save the chart area needed\n  for a passage, keep an automatic cache around the moving boat, and manage installed charts and\n  storage from one landing page. Check any saved route from its passage plan without activating\n  navigation. The advisory result reports Complete, Partial, or Unknown for the assessed corridor\n  and detail; without Chart Locker, the landing page remains available with setup guidance.\n- **Overlays:** free, key-free OpenSeaMap seamarks, marine protected areas, maritime boundaries, and\n  NASA GIBS ocean conditions (sea-surface temperature and sea ice), each with its source attribution.\n- **Marine radar:** an optional live radar picture from the Signal K Radar API, rendered over the\n  chart with range rings, a heading line, strict night-red colors, confirmed transmit, and the\n  tuning and zone controls the radar reports. Provider, stream, stale-data, access, and renderer\n  failures stay distinct, so an old picture is never presented as live.\n- **Routing:** draw or enter coordinates and save routes as Signal K resources, tap **Go to here**\n  to navigate straight to a point, and follow a route with a nav strip (cross-track, distance,\n  bearing, velocity made good, and time to go) over the v2 Course API. A plan speed and departure time turn\n  the route into a passage plan with a local-clock arrival, forecast wind, and after-dark cues at\n  every point. Edit or reorder points without dragging, snap chart edits to saved waypoints, and\n  import or export GPX.\n- **Autopilot:** detect a Signal K v2 Autopilot API provider, show its state, mode, and target, and\n  offer only its supported controls. Engagement and maneuvers require deliberate confirmation;\n  missing, unknown, stale, and unreachable states never appear as confirmed standby.\n- **Profiles:** keep named helm setups containing the theme, chart and weather layers, chart\n  orientation, collision thresholds, track and planning settings, unit fallback, toolbar pins,\n  instrument and Data trends selections, display settings, and preferred anchor radius. Changes to\n  the active profile save automatically and sync through Signal K when you are logged in, while\n  each browser keeps its own active choice.\n- **Instruments:** a gauge dock (SOG, heading, depth, apparent wind, and more from a curated\n  catalog you pick and reorder) that takes the full screen on a phone. Values color by your\n  server's configured alarm zones, staleness honors the server's own declarations, and every tile's\n  detail names its live source and calls out a quiet failover.\n- **Playback:** review 1 hour, 6 hours, 24 hours, or 7 days from a registered Signal K history\n  provider, scrubbing or replaying the synchronized recorded track, vessel position, depth,\n  apparent wind, barometer, and speed over ground.\n- **Weather:** a zoom-capped mini-map with animated WebGL wind, pressure isobars, waves,\n  precipitation, cloud, and radar, plus time-aware point readouts, marine forecasts, and official\n  warnings from a Signal K weather provider or the NOAA point-alert fallback. Observed conditions\n  stay distinct from forecast estimates. Open-Meteo provides the key-free forecast fallback, and\n  cached forecasts remain available offline with explicit stale labeling.\n- **Tides:** independent tide-height and tidal-current station selection with automatic nearest\n  choices, exact manual NOAA CO-OPS choices, a 48-hour tide curve, and the next high, low, flood,\n  ebb, or slack. Heights retain the provider's datum or explicitly say it is unspecified; times\n  include their date and local-time basis. Currents remain available without tide heights.\n  Automatic tide height prefers the signalk-tides plugin when the server runs it.\n- **Lookout:** a collision watch with CPA and TCPA, chart-highlight rings, an audible alarm, and a\n  published Signal K notification, plus a searchable AIS target list and an Alarms panel that\n  collects every active alert on the boat. One audio authority coordinates audible alarms.\n  Supported Silence and Acknowledge actions propagate through Signal K; acknowledgment means\n  seen, not resolved. Device-local mute remains distinct and available after a boat-wide action fails.\n- **Anchor watch:** drop the anchor at the boat, set the swing radius, and get a drag alarm that\n  latches until acknowledged. It drives the signalk-anchoralarm-plugin when installed, so the alarm\n  keeps running with the browser closed, and falls back to a fully in-browser watch when it is not.\n- **Man overboard:** an always-visible MOB button with a confirm pop-out that marks the spot,\n  publishes the boat-wide Signal K alarm, and raises a recovery strip with live bearing, range, and\n  elapsed time. The position and time are captured on the initial press and preserved through\n  confirmation and reconnects. An MOB raised by another station shows here too. Without a fresh\n  fix, the alarm still raises but does not invent a position.\n- **Watch handoff:** a timestamped review-status snapshot for the change of watch: fix, course,\n  alarms, the top contact, depth watch, radar health, weather and tide ages, and route coverage,\n  plus a short operator note. Snapshots share between stations through Signal K and always state\n  whether they synced; the surface reviews status and never declares it safe to take watch.\n- **Measure:** tap points on the chart or enter coordinates for rhumb-line leg range, true bearing,\n  and a running total, with movable points, Undo, and a confirmed Clear.\n- **Tracks:** record, pause, save, show, and export segmented voyage tracks as GeoJSON, and GPS\n  gaps never become invented route legs. Save the latest continuous segment as a reusable route, or\n  confirm a retrace to navigate home along it.\n- **Waypoints:** drop one from a long press, then search, sort, locate, navigate to, rename, or\n  delete it from the Waypoints panel. Marks live in the server's waypoint resources, so they\n  interoperate with other Signal K clients.\n- **Data trends:** choose and reorder up to eight navigation, weather, electrical, propulsion,\n  tank, or cabin readings per profile, each drawn as a themed 24-hour chart from the Signal K\n  History API, with bounded live-session samples on a stock server. Every chart states its data\n  coverage and is marked Partial or Stale when warranted.\n- **Find places and points of interest:** search the notes in the current chart view, preview a\n  result on the chart, and open its structured detail, with custom symbols through the\n  signalk-symbol-manager plugin. Add personal notes from a chart press, then edit, move, or delete\n  only the notes Binnacle owns.\n- **Chart orientation:** north-up by default, with course-up and heading-up as explicit\n  profile-owned choices that fall back to north the moment their reference goes stale.\n- **Help:** a first-run orientation banner and a permanent Help panel with safe-use framing,\n  Signal K access and alarm-sound setup, a marine glossary, and operating-context checklists.\n- **Logbook:** read recent entries and compose notes through the optional `signalk-logbook` plugin.\n  Navigation, anchor, and handoff events can offer factual drafts, but never save an entry without\n  your action.\n- **AI advisor:** read reports and request analyzer runs through optional\n  `signalk-openrouter-companion`. Reports are advisory and show their age. Run now discloses the\n  telemetry and paid-credit implications, tracks server status with a bounded wait, and shows\n  completion, refusal, or an unconfirmed outcome alongside the plugin's run and budget responses.\n- **Your units:** supported readouts and editable limits follow the server's per-category unit\n  preferences, with the profile's preference as fallback. Navigation-specific fields such as track\n  distance and route plan speed retain their labeled nautical-mile and knot conventions. Stored\n  values remain SI.\n- **Display:** day, dusk, and night-red themes, a dimmer, a bright-sun chart palette, automatic\n  theme switching, and interface text sizing. Night-red stays red on black for a dark-adapted watch.\n\nEach feature's full behavior, availability, and recovery states are documented in the guides in\nthe repository's docs directory, which also ship inside the installed package.\n\n## Architecture\n\nBinnacle is built on a current web stack and engineered to run on modest helm hardware:\n\n- **Front end.** Svelte 5 with runes, Vite, and TypeScript, linted and formatted with Biome. The code\n  is organized as cohesive, single-responsibility slices under a strict Feature-Sliced Design, with the\n  import boundaries enforced by the build through a dependency-cruiser gate, a modular stylesheet\n  assembled one concern per file, and shared UI primitives and helpers, so a new feature drops in\n  against stable interfaces rather than by surgery on the core.\n- **GPU rendering.** MapLibre GL JS 6 draws the vector base map and chart layers through WebGL2. The\n  own vessel and every AIS target render as GPU symbol layers, and wind draws as a WebGL particle\n  field advected through the forecast on the graphics card.\n- **Off-main-thread real-time pipeline.** A dedicated Web Worker hosts the Signal K WebSocket client;\n  deltas are coalesced into frame-rate batches on a worker timer and fed into a path-keyed reactive\n  store, so a busy AIS anchorage updates the readouts without stalling the chart render, and data and\n  alarms keep flowing while the tab is in the background. A failed stream can recreate the worker,\n  reconnect, and replay subscriptions without reloading the chartplotter.\n- **Minimal network and render work.** Binnacle subscribes to exactly what it draws, keeps everything\n  in SI internally, and converts only at the display edge.\n- **Offline caching.** Self-hosted fonts and assets (no CDN for app code). PMTiles chart areas are\n  cached as blocks in IndexedDB at the protocol layer, so they work offline even over plain http;\n  tides, notes, weather, and the vessel conditions persist the same way. Over https a service\n  worker additionally caches the base map, plugin chart tiles, supported online overlays, and\n  predictions. With Chart Locker installed, server-side saved areas, automatic caching, shared tile\n  storage, and installed PMTiles files add a boat-wide offline layer that is independent of one\n  browser's cache.\n\n## Requirements\n\n- Signal K server 2.x.\n- Node.js >= 22.18 (for building from source).\n- A WebGL2-capable browser that supports the shipped ES2023 bundle. Safari 16.4 or later is required.\n- Optional: `signalk-chart-locker` for server-managed saved areas, automatic caching, shared storage,\n  and installed PMTiles chart management.\n- Optional: a Signal K Radar API provider, such as Mayara, for the marine radar overlay and controls.\n\n## Installation\n\nBinnacle is a Signal K webapp. The production build ships inside the package, so there is nothing to\nbuild.\n\n**From the App Store (recommended).** In the Signal K admin UI, open Apps and Plugins, then Store,\nsearch for Binnacle, and install. Open it from the **Webapps** list.\n\n**With npm.** Install into the server's home directory and restart Signal K:\n\n```bash\ncd ~/.signalk\nnpm install signalk-binnacle\n```\n\n**From source.** See the Development section below.\n\n**Optional offline-chart management.** Install **Chart Locker** (`signalk-chart-locker`) from the\nSignal K App Store, then start the plugin. Binnacle detects it automatically. A secured server may\nrequire you to sign in to Signal K as an administrator before downloads and chart-name edits are\nenabled. This is separate from approving Binnacle's ordinary read and write access request. Chart Locker\nmanagement calls use the browser's Signal K administrator session, not Binnacle's device token.\nBinnacle checks Signal K's live login status before suggesting sign-in, so a Chart Locker permission\nfailure does not mislabel an authenticated administrator as signed out.\n\n**Optional marine radar.** Run or configure a provider that exposes the standard Signal K Radar API at\n`/signalk/v2/api/vessels/self/radars`. Mayara is the reference provider. Binnacle discovers radars,\nhydrates `/controls`, listens for `radars.*.controls.*` Signal K deltas, and opens the selected radar's\nreported spoke stream. Read access is sufficient for the picture; transmit, standby, and tuning writes\nrequire read-write approval. A provider that reports complete native zone, sector, or rectangle\nshapes also gets explicit Edit, Save, Cancel, and optional chart-placement controls. No-transmit\nsectors require an additional emission-envelope confirmation. Angles display in degrees, distances\nfollow the server unit preference, and each write remains one SI geometry update.\n\n## First run\n\n1. **Open Binnacle.** After installing, restart Signal K if the store asks, then open Binnacle from\n   the **Webapps** list in the admin UI.\n2. **Approve its access request.** On a secured server, Binnacle asks for access the first time it\n   connects, and the request does not appear in Binnacle itself: it waits in the Signal K admin UI\n   under **Security**, then **Access Requests**. Approve it with **read and write** permission\n   (routes, waypoints, tracks, course, alarms, and profiles all write), then reload Binnacle. This\n   is the step most first installs miss.\n3. **Pick your charts.** Open **Charts** and turn on the sources for your waters; inside US waters,\n   Binnacle offers the official NOAA ENC in one tap when no chart is on.\n4. **Work through Get set up.** The live checklist in Help tracks what a fresh install still needs\n   and routes to each item.\n\n## Usage\n\nOpen Binnacle from the **Webapps** list in the Signal K admin UI, or go straight to\n`http://your-sk-server:3000/signalk-binnacle/`. It opens on the chart, centered on your boat.\n\nA few interactions cover most of the helm:\n\n- **Open the context menu.** Long-press the chart on a touch screen, right-click with a mouse, or focus\n  the chart and use the Context Menu key or Shift+F10. Drop a waypoint, choose **Go to here** to\n  navigate straight to that point, or start a route or measurement.\n- **Measure a chart leg.** Open **Measure**, tap a start and destination, then read the rhumb range,\n  true bearing, and total. Select a point to inspect both adjacent legs, choose **Move point** to drag\n  or place it again, or enter its coordinates. Use **Undo** to reverse an add, move, or deletion.\n  Use **Done** when finished.\n- **Manage charts and overlays.** Open **Charts** to select chart sources, inspect their details,\n  repair a saved PMTiles URL, refresh its metadata, or change server sharing. Switch to **Overlays**\n  to toggle overlays, change opacity, and reorder their stack by dragging or with each row's\n  **Move up** and **Move down** actions.\n- **Prepare offline charts.** Open **Offline charts**, choose **Save a chart area**, draw over the\n  passage, review the included charts and detail, and start the download. Confirm the saved area's\n  status and update date before relying on it away from coverage.\n- **Switch themes.** Cycle the day, dusk, and night-red themes from the theme control. Night-red is\n  pure red on true black for a dark-adapted watch.\n- **Mark a man overboard.** Tap the always-visible **MOB** button in the top bar and confirm to mark\n  the spot, raise the boat-wide alarm, and start the recovery strip.\n\nFor caching behavior, storage, and HTTPS requirements, see the Offline charts, Chart Locker, and\nSSL section below.\n\nFor behavior, availability, recovery states, and safety rules for every menu action, see the menu\nitems guide in the repository's docs directory. Detailed guides there also cover tracks, waypoints,\nfind places, measure, marine radar, and offline charts, including offline preparation and\nadministrator-session troubleshooting. The guides ship inside the installed package as well.\n\nWhen installed as a PWA on a touch device, Binnacle automatically reserves bottom clearance for\nAndroid navigation and tablet taskbars. The status strip and mobile app-menu sheet also follow\nreported bottom and landscape side safe areas, so their helm controls remain reachable when system\nchrome overlays the app window.\n\nThe **Profiles** panel includes **Forget credentials** and **Erase all local data** for a shared or\nretired display. These actions affect only Binnacle data in the current browser. They do not delete\nSignal K routes, waypoints, tracks, profiles, Chart Locker data, administrator sessions, or\nserver-side device authorization. Synced profiles return after the browser signs in and syncs again.\nProfiles and changes that have not synced are permanently lost. Full erasure is blocked while MOB,\nanchor watch, navigation, route editing, measurement, or an unsaved recorded track is active.\n\n### Network privacy\n\nBinnacle gets boat data from your Signal K server and loads its vector base map from OpenFreeMap when\nthe chart opens. When their chart or overlay layers are visible, the browser can also request tiles\nfrom OpenSeaMap, NASA GIBS, Open Waters Seascape, GEBCO, EMODnet, and NOAA services for ENC,\nBlueTopo, marine protected areas, and seabed infrastructure. The maritime-jurisdiction and UNESCO\nsite overlays request VLIZ Marine Regions.\n\nWeather forecasts and optional layers can contact Open-Meteo and RainViewer. Opening tides\ncan contact NOAA CO-OPS for automatic fallback, tidal-current predictions, or a manually selected\nstation. These services can observe your public network address and the requested tile, map area, or\nforecast coordinates. Cached results remain usable when a provider is unavailable.\n\nWeather warnings also run in the background whenever Binnacle has a fresh vessel position, even\nwith the Weather panel and weather layers closed. The watch queries the detected Signal K weather\nprovider and can fall back to NOAA's `api.weather.gov` point alerts. That fallback sends the vessel's\nlatitude and longitude rounded to four decimal places, normally about every ten minutes, with\nadditional requests after area or provider changes and retries after failures. Closing panels does\nnot stop this check, and there is currently no in-app opt-out. Blocking external requests through\nyour browser or network policy prevents this disclosure but also removes external warning coverage\nand can make other online charts, weather, and tide features unavailable.\n\nUser-added URL charts are fetched by the browser. Binnacle rejects URLs with embedded usernames or\npasswords, removes URL fragments, redacts every query value in displays and errors, and keeps every\nquery-bearing URL on this device unless you explicitly choose to share the complete URL with the\nSignal K server. Chart detail can repair a moved or expired URL, refresh archive metadata, and change\nthat sharing choice without losing the chart's id or layer settings. Use HTTPS for Signal K so device\ncredentials and boat data are encrypted on the local network.\n\n## Offline charts, Chart Locker, and SSL (optional)\n\nChart Locker is optional, but it is the recommended way to prepare a passage rather than depending\nonly on charts viewed previously in one browser. Install `signalk-chart-locker` from the Signal K App\nStore, then open **Offline charts** in Binnacle. If the plugin cannot be reached, that menu item stays\navailable and opens a setup page explaining whether to install, start, retry, or sign in to Signal K\nas an administrator. When administrator access is required, the header status opens that sign-in directly.\nThe sign-in flow stays in the PWA window and redirects back to the current Binnacle route. If Signal K\nalready reports an administrator session but Chart Locker refuses it, Binnacle reports an access\nerror and offers a retry instead of asking the administrator to sign in again.\n\nThe offline charts guide in the repository's docs directory covers the full setup, access,\ntroubleshooting, download, and storage workflow.\n\nThe Offline charts landing page has four jobs:\n\n1. **Saved areas.** Choose **Save a chart area**, draw a rectangle on the chart or enter its bounds,\n   review the default chart selection, pick Overview, Coastal, or Harbor detail, check the estimated\n   download and free space, name it, and start the download. On a phone, the panel collapses while drawing so the\n   chart owns the gesture. A saved-area card is ready only when it says **Saved, works offline**.\n   Accepted downloads recover by area identifier if their immediate job response is lost, and a\n   temporary status failure offers Retry status without starting a duplicate download. If a saved\n   definition references a removed chart source, Binnacle preserves the existing cached coverage,\n   labels the missing source, and directs the user to adjust a copy before downloading again.\n2. **Automatic caching.** Optionally keep selected charts cached around the moving boat. This is a\n   rolling nearby cache, not a substitute for saving and verifying the full planned passage. Controls\n   remain disabled until the saved server policy loads; a failed load offers Retry instead of\n   presenting defaults as the current policy. Accepted changes report saving, saved, or failure.\n   Settings follow Chart Locker's limits for 64 sources, zoom 0 through 24, distances up to 100 km, and update\n   intervals from one minute through 24 hours.\n3. **Installed charts.** Rename installed PMTiles charts, edit their descriptions, inspect bounds,\n   zoom range, and scale, refresh the file list, and see actionable errors for invalid files. Add,\n   replace, or remove archives in the Chart Locker chart folder on the Signal K server.\n4. **Storage.** Review saved-area, recently viewed, and automatic-caching usage, choose when recently\n   viewed charts clear, and clear only that expendable cache without deleting saved areas.\n\nThe header's Offline status reports the cache amount or a service problem. It does not certify that a\nparticular passage is complete. Before leaving coverage, open Offline charts and verify the intended\narea's coverage, included charts, **Saved, works offline** status, and update date.\n\nSSL is not required. Binnacle runs fully over plain HTTP, which is how the Signal K server serves it\nby default: the chart, AIS, weather, points of interest, tracks, and the Lookout alarms all work\nwithout it.\n\nMuch of the data caching works without SSL. PMTiles chart areas, the weather forecast, tides,\nchart notes, and the vessel conditions are cached in IndexedDB, which is not secure-context gated.\nOver plain HTTP, those retained records are available once the application has loaded, but a full\nreload still needs the Signal K server to serve the application shell. What SSL adds is the\nservice-worker layer: browsers expose the service worker\nand cache-storage APIs only in a secure context (HTTPS or `http://localhost`), so caching the base\nmap, plugin-served chart tiles, and the streaming overlays activates only when the server is\nreached over HTTPS. Over plain HTTP those degrade cleanly to online-only with no loss of live\nfunction.\n\nChart Locker's server-side downloads and cache work independently of the browser service worker, so\nthey do not require HTTPS. HTTPS is still valuable because it enables Binnacle's additional\nbrowser-side service-worker cache for the base map, plugin chart tiles, and streaming overlays.\n\nThere are two good ways to add HTTPS to Signal K:\n\n- The [signalk-ssl](https://www.npmjs.com/package/signalk-ssl) plugin\n  ([source](https://github.com/dirkwa/signalk-ssl)), which generates a local certificate\n  authority, issues the server certificate, and distributes the root to your devices by QR code.\n  It runs its certificate tooling on the shared\n  [signalk-container](https://github.com/dirkwa/signalk-container) runtime. The Signal K server's\n  built-in SSL settings (Server, then Settings, then SSL) are a bare-bones alternative.\n- [Tailscale](https://tailscale.com), which adds remote access and publicly trusted certificates\n  (no trust-store step at all) in one move. See\n  [Accessing Signal K remotely with Tailscale](https://gist.github.com/NearlCrews/3f7af717fec853a80e7de1063940382e)\n  for a quick start, including a clean `signalk.<tailnet>.ts.net` service name.\n\nOne more step is required, and it is easy to miss: your browser has to **trust** that certificate,\nnot just reach it. A self-signed certificate, including one the signalk-ssl plugin generates, is not\ntrusted by default, and browsers refuse to register a service worker from an origin whose certificate\nthey do not trust, even after you click through the page's certificate warning. So if you only accept\nthe one-time warning, the page loads but offline caching never activates, and the console shows a\nmessage like \"service worker registration failed: an SSL certificate error occurred.\" To fix it,\ninstall the certificate authority's root (the QR code or `.pem` the plugin gives you) into your\nbrowser or operating system trust store and mark it trusted, then reload over HTTPS. Once the\ncertificate is trusted, the service worker registers and the base map and chart tiles cache for\noffline use.\n\n## Development\n\nDevelopment targets Node 22.18 or newer and npm 11.6 or newer. The recommended npm version is\n11.19.0. `.node-version` and `packageManager` record the project defaults, while `devEngines`\nenforces the supported minimums. All tools use repository-local dependencies.\n\n```bash\ngit clone https://github.com/NearlCrews/signalk-binnacle.git\ncd signalk-binnacle\nnpm install        # install dependencies\nnpm run hooks      # install the git pre-commit and pre-push gates (run once)\nnpm run dev        # Vite dev server\nnpm run check      # type-check application, tooling, and browser tests\nnpm run lint       # code, Svelte, Markdown, and spelling checks\nnpm run format     # Biome format (write)\nnpm run ci:biome   # format, lint, and import-order verification\nnpm run cruise     # dependency-cruiser boundary check\nnpm run deadcode   # unused files, dependencies, and public exports\nnpm test           # Vitest unit tests\nnpm run test:coverage # unit tests with the enforced coverage floor\nnpm run build      # production build into public/\nnpm run size       # compressed production bundle budgets\nnpm run verify     # complete non-browser local and CI gate\nnpm run test:e2e:fast # Build, then run the Chromium browser checks only (no offline/PWA or WebKit coverage; use test:e2e:cross-browser or test:e2e:gate for the full spread)\nnpm run test:e2e:cross-browser # Build, then run Chromium, PWA, and WebKit checks\nnpm run verify:ci  # full pull request gate, including an Unreleased development version\nnpm run verify:release # full gate, cross-browser E2E, package checks, and both dependency audits\n```\n\nAfter `npm run hooks`, git runs `verify:commit` before each commit and `verify:browser` before each\npush. The hooks live in `.githooks/` and are opt-in via `core.hooksPath`, never a package lifecycle\nscript. The E2E commands build first, while the pre-push\n`test:e2e:gate` reuses the existing `public/` build from `verify` so a push does not rebuild.\n\nMaintainers preparing a version should follow the release checklist in `docs/releasing.md`.\nPreparation does not authorize a tag, GitHub release, or npm publication.\n\nTo run a local build inside your own Signal K server, link it into the server's module directory and\nadd it to the server config so it loads:\n\n```bash\nln -sfn \"$(pwd)\" ~/.signalk/node_modules/signalk-binnacle\n```\n\n```json\n{\n  \"dependencies\": {\n    \"signalk-binnacle\": \"file:../path/to/signalk-binnacle\"\n  }\n}\n```\n\nRestart Signal K, then open `http://your-sk-server:3000/signalk-binnacle/` in a browser.\n\n## License\n\nApache-2.0. See the LICENSE file for the full text. The software is provided \"AS IS\", without\nwarranty of any kind. It has not been field-tested at scale and is not certified for navigation.\nTreat all on-screen information as advisory, and always carry independent means of position-fixing.\n\n## Acknowledgments\n\nBinnacle is written and maintained by [Nearl Crews](https://github.com/NearlCrews). It stands on\nopen data and open source:\n\n- [Signal K Project](https://signalk.org/) for the open marine data standard.\n- [MapLibre GL JS](https://maplibre.org/) for the GPU map renderer, and\n  [OpenFreeMap](https://openfreemap.org/) for the vector base map, built from\n  [OpenStreetMap](https://www.openstreetmap.org/) data under the\n  [Open Database License](https://opendatacommons.org/licenses/odbl/).\n- [Open-Meteo](https://open-meteo.com/) for atmospheric and marine forecast grids, and\n  [RainViewer](https://www.rainviewer.com/) for precipitation radar.\n- [NOAA](https://www.noaa.gov/) for the ENC chart, BlueTopo bathymetry, the MPA Inventory, and the\n  CO-OPS tide and current predictions; [EMODnet](https://emodnet.ec.europa.eu/) for European\n  bathymetry, protected areas, and the seabed infrastructure layers (power cables, telecom cables,\n  pipelines, and wind farms); [GEBCO](https://www.gebco.net/) for global bathymetry;\n  [Open Waters](https://openwaters.io/charts/seascape) for Seascape, merging GEBCO, EMODnet,\n  NOAA CUDEM, and other regional sources into worldwide depth shading, hillshade, contours, and\n  soundings; [NASA EOSDIS GIBS](https://www.earthdata.nasa.gov/engage/open-data-services-software/earthdata-developer-portal/gibs-api) for the ocean-conditions imagery;\n  [OpenSeaMap](https://www.openseamap.org/) for the seamark overlay; and the\n  [Flanders Marine Institute (VLIZ)](https://www.vliz.be/) Marine Regions service for the maritime\n  boundaries, the 12 nm, 24 nm, and high seas limits, the IHO sea areas, and the UNESCO marine\n  sites.\n\nCustom chart symbols come from\n[`signalk-symbol-manager`](https://github.com/joelkoz/signalk-symbol-manager) by\n[Joel Kozikowski](https://github.com/joelkoz), who also contributed the symbol rendering Binnacle uses\nin [#6](https://github.com/NearlCrews/signalk-binnacle/pull/6).\n\nBinnacle pairs well with sibling plugins such as\n[`signalk-crows-nest`](https://github.com/NearlCrews/signalk-crows-nest), which supplies the points\nof interest it renders, and works with any Signal K weather provider, such as\n[`signalk-virtual-weather-sensors`](https://www.npmjs.com/package/signalk-virtual-weather-sensors).\n\n## Support\n\nFind this project useful? You can support its continued development by\n[buying me a coffee](https://www.buymeacoffee.com/nearlcrews).\n\n- [Report a bug](https://github.com/NearlCrews/signalk-binnacle/issues/new?template=bug_report.yml)\n- [Request a feature](https://github.com/NearlCrews/signalk-binnacle/issues/new?template=feature_request.yml)\n- [Security issues](https://github.com/NearlCrews/signalk-binnacle/security/policy)\n","readmeFilename":"README.md"}