{"_id":"signalk-grafana","_rev":"27-e0efaa911d4e1d672ce11b23a6105acd","name":"signalk-grafana","dist-tags":{"latest":"2.1.0","beta":"2.1.0-beta.2"},"versions":{"0.1.1":{"name":"signalk-grafana","version":"0.1.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"baa337acb1f06e5d15d04e5ba0447dc71d0cf90c","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.1.tgz","fileCount":22,"integrity":"sha512-bZOwNc5moPQKZZjhcECa3zKqkW2uK5FL9zSKQBOflHdNf2I+6qji8kPGE8iax7aV3o3l/CP6K7oUP+y90N6tCQ==","signatures":[{"sig":"MEUCIFbfESj/BZ4brJ6q1NQDXFQnXy/UBV6amZ7ryCFEdoKjAiEApefSn4pX5Oer4QOHD1ng7B378pz/rqCWSZdy1a+0UKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74425},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"14b0ead3b5ef760ee70786b5b12e710faf1c79a7","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.1_1775447773761_0.05815665656041258","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"signalk-grafana","version":"0.1.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"972a8cb0a21e360285c02799f9ce0120b7aa8120","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.2.tgz","fileCount":26,"integrity":"sha512-K7mxtHFJQhwl970vCGUpyKz38svjeRkODcVvKcTGAQdAuy1faB4fpDI1GE1T/qj1vo+Bixg5yJj9fhGMG4oYZg==","signatures":[{"sig":"MEUCIEZJQlgrcuBDfM/WgXLEbIr+FpZbWLJHNA+1eN0xWkD5AiEA8u6CkX9ChOSdWWxNQgJb1zi3ZYM9CQf6wRuXznL/28E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88797},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"66ab28a0586e43d65f48b03d22fcfa0db2b3c72a","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.2_1775453490752_0.5320297550272455","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"signalk-grafana","version":"0.1.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"150cebb04212b9261bc993209b20e5833db9e7b9","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.3.tgz","fileCount":26,"integrity":"sha512-RYBoa4Li1dgNcPREQGcfOmWi8KThbPSBASOPodroq9QDqse7kmGkNdZ4SfPkdrWwEENiiqK+sXb1UAraDdz1zg==","signatures":[{"sig":"MEUCIE7K5QFGAl/XngFmgkynspWinR+dY0k4G+1QssCl7I0HAiEAjGUJ8NcjsGeTGGrU8haIkAsZWjiQtY794faGCqj22os=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89533},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b1792f47bc94b6a43e5b1cbd7288de4794d197dc","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.3_1775493863217_0.7199180341675977","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"signalk-grafana","version":"0.1.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"bb5c73ee1689547721701c57b466cc48f20f25fb","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.4.tgz","fileCount":26,"integrity":"sha512-0TMI9jsNsTpd3tCAGVcfwTgRuFnml/N85wxTP46bX0ExH3uCtOgjfUwZoUDcMBY/7AbcVAWIa/2WVC0FgwfnVw==","signatures":[{"sig":"MEQCICfATA9cJjRlqgLl7J0fP+Z1KrZ+cFSzNJz5g8TIi9LEAiAb12F/cP78meXA+uxz5vqvWMvRHbT90IZ9IJ9gho+d/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89575},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"d70e5b7af1b4983f498bc9aa3fe4abff386ae7a9","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.4_1775495544666_0.7473609152409697","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"signalk-grafana","version":"0.1.5","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.5","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"4c563ad6acded5615795da0b999f0b6523253256","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.5.tgz","fileCount":26,"integrity":"sha512-RqpSMapsn4c5XLBzkLA6IlmvKGmJ1bdk+rJT2XXycsL35iF2TIWZmarb+Mj+8MNCCwis42pfHZooyo+OiLNPwA==","signatures":[{"sig":"MEYCIQCzgQp+J9oHv+IhJs2EpEr8eUv+3kaYQSzJ7GsS/N0GWAIhAJaRB74L4U22maN/ViMbRSX5m4qNPzrdisuXoJYuLjDu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89559},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5a631637a0cfc50edc6c452f538b58f80e33c864","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.5_1775497370689_0.507476576188298","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"signalk-grafana","version":"0.1.6","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.6","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"7dbc6ef08350c0a9cccb62dbb7890c7b470d1d65","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.6.tgz","fileCount":26,"integrity":"sha512-9POf5c1PCy2spMRb2INrH9j5Q8GAUOYaCAfBExYKUmsQQIlejpK+1lHby08129uiIZFLIjfLMbkhr1ReEYATnA==","signatures":[{"sig":"MEUCICUaewVTZ4dbwNTqF3gRSAT9oEif4MSIap73V9rBW4ABAiEAsyArExfW0PTeAwJNYh/gTZn94tnfOdSq8Vrzhtk7myI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90252},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"19a19afa0e8c0f3459017b144c9f666c8935a913","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.6_1775498402839_0.9664502068276684","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"signalk-grafana","version":"0.1.7","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.7","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"b2bb073ca86eb447d416e2d375e331b31e9297fe","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.7.tgz","fileCount":26,"integrity":"sha512-2NEMj5NgHAQXfHwG760EU8OFexSA7AhmvvPwG1oS4uTZDWzjwob4KCHobGFIwDIZ5wP52zVNoTjsXAJ6Ol/idA==","signatures":[{"sig":"MEUCIG7AcOs/0YSA6f8gZNzkw5llxBuirQVNHAR5WkLXF3NIAiEA0/t6lPeIzAKGjPKDrJN3bW+AxBqGzGBidLhzVk1g8kU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92752},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9c35254391b4d09fc33509677c33824ca4ae50cf","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.7_1775501552808_0.0732510471732346","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"signalk-grafana","version":"0.1.8","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.8","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"c02232855c937b105cff0f648ae55769161c5347","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.8.tgz","fileCount":26,"integrity":"sha512-XukTvyjly90UUuZnI3OXXLzV6iJWo5og0rixcgHgZj3w46zkrsPMFxCzzYnwPZ96fkeHy1aiulvHtDfylt42Pg==","signatures":[{"sig":"MEQCIGH5Fqyhhoa0rS2YjaT6btjMeCtIFzQx3UNdj238osSEAiB4GH7qTu7X5gtFe3zjJHUc/xkXLgRRG2ZTFmpUxiHbGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93556},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"3f64a87d718e10e758cb0cd709720f8a6ab4c33e","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.8_1775502643382_0.4582118475248216","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"signalk-grafana","version":"0.1.9","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-grafana@0.1.9","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"a9214bfa3170b93d3f94af617a6273c0325c416f","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.9.tgz","fileCount":26,"integrity":"sha512-LYRPigrvjDzBE9yH7QUqcXNwR1T7B7WkaRJfY9xuuChN+LHnDEmnx4jkhZUJhi4ggbEslD+Wog3ZyPTHl8Qgnw==","signatures":[{"sig":"MEUCIQCAKJNpM/lKFhk2NYFHxCi0O42VgLm7DYfALhQ3s36thgIgWFf2YJL01zEJgAz/5wYHfv1v03oXyHNhmFz1pMJTXkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95138},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"bb2f8ef9a45b7c5caaa33daa9d7edebea3dc532d","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.9.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.9_1775503688303_0.2710507578860162","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"signalk-grafana","version":"0.1.10","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@0.1.10","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"b98efa3a34a9c6e6ccc635ce88f259def4b868b5","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.10.tgz","fileCount":22,"integrity":"sha512-3UQqKF5qMaUsjjQPwhx3ozGD1jyjtgbWAHqtnt1M9fUNFLBB5x6fzC168vWCPOgdiqCIorGByz8jlTutk+DteQ==","signatures":[{"sig":"MEQCIDRweTj0Wjk1pWu4WK6R567qASAEpJAc2Ba435z4oh1LAiBAnEMYiRBedADdHPBdXxxu3sMEjTungwFQe2xqU0HJCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80956},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"da1e7a737a0d91b6db386f31852a90a95eecae04","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","displayName":"Grafana Dashboards"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.11.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.10_1778267620291_0.9348045779174545","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"signalk-grafana","version":"0.1.11","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@0.1.11","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"9092003f3f0b7aa23ecb58ccd5488edf96c5ee10","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.11.tgz","fileCount":23,"integrity":"sha512-LvmGuRvDx/dXE/rKwK5+LYUX8NZ/a2a8WY0a2d5hdESgqGYR7ChHcBhisO0WZ1jUQEhEnrEWF9sWUAngQLHMrA==","signatures":[{"sig":"MEYCIQCP3XpTw3iIJnWD4xLPgbWx7Je3ugKI/Bkbx6Z8iyKx9AIhAOQBpeVpGnM8gvseauCiuMZsDz+Vq3TC5aQWhbAr9Xsy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@0.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86811},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8b4e13b5c1bd7ee9e9c713a23292db4fbab12e83","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.11.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^5.0.0","@babel/core":"^7.29.0","@types/node":"^20.0.0","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-questdb":">=0.2.0","signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-questdb":{"optional":true},"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.11_1778271506817_0.4966636255025485","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"signalk-grafana","version":"0.1.12","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@0.1.12","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"b49e6f0ac9f560deddedb605cf1e2d3c13751b96","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.12.tgz","fileCount":23,"integrity":"sha512-HUtSm8LcAfKXQ8SDK85XUXgXjGyxFbEDHAkcVndC5EoysKBKaVjyd+bLDq94CruuuBXXKr5LG4FeSKZ+sNRHJg==","signatures":[{"sig":"MEYCIQCaCuND3wxnL03kqt4UJ+hfk3B/o9Nl/hPmYKUuS6gFlwIhAOpjG7CX452uZOsqShQJf1J8YbOKDvZeOS3xruP7dGxQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@0.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86813},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"2838801e49cc46b7f12fcd8a57d88d9c4b57c9e2","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.11.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-questdb":">=0.2.0","signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-questdb":{"optional":true},"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.12_1778271730278_0.8849430808871197","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"signalk-grafana","version":"0.1.13","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@0.1.13","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"24c87aba1903cacecc6cce3fb380e4774cbf9145","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-0.1.13.tgz","fileCount":23,"integrity":"sha512-v8agqktU4aAvavpW44Tuz0OafJC7j3nZS8w7Y+uJfKazIelyUbu6Ci73PUnam+BZG4sGKI/Ycw9utCrox9i/vw==","signatures":[{"sig":"MEQCIGEoSQZobwNRP19WzbfrhMxHuMiKLVH4cpS9NPbV2Bq0AiBXX+NBxZhbF4CTDalSdUiFOwftLC/QWcIsjUzkE7wsug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@0.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86571},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"3f517787dbb76f6c45af0f34e76a2dc41641f07e","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.11.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_0.1.13_1778273132258_0.037041939939188806","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"signalk-grafana","version":"1.0.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.0.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"6b507405240e53c08c91b0b6d7cb9af66b47e564","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.0.0.tgz","fileCount":27,"integrity":"sha512-7q3tFmVY3bZ30COwYJ2cJVn444bNb4jZJS5L5lus+BrRMfJAjQz4QyKt4mQHJjbRG4lTWdZkbp8fNejhE5ctAQ==","signatures":[{"sig":"MEUCIHNui6J99dbFUd19m+qhY1sA0QDvdcNcjH6hRMekeKVoAiEAkrDffaaX7xEqMS41kMD3i1rMNuYu31keIZ0hzhcdfyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":434384},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"eab3125251f05ea230a955333154954a87978309","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.11.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.0.0_1778340724568_0.5561204931430499","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"signalk-grafana","version":"1.1.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.1.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"d0f11043ae6f5b8fc874b3eb8b2c877892b7f66a","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.1.0.tgz","fileCount":39,"integrity":"sha512-3Ho3/aaHBIWEBo8NnwRv+ZANba8yYUodhz60zehnYmz1JTWjr7kNLoIoX/x3++mXX9F8ImHornASjEwhU564lg==","signatures":[{"sig":"MEUCIEFW1jToy0xLl/d0RedbkayfUXc9uWSMktVC0JeZ5WJSAiEAgu7wC2GBhP3zsgl4aubtyMtl3eOwdxU92al9bQTeGhg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":502168},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"0a11d8d7c9988e8a58469070503bda7697b82ae9","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.12.1","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.1.0_1779243945472_0.22376501354463785","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"signalk-grafana","version":"1.1.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.1.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"c42e106f1002f104b00412ed2d2d664b323486b7","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.1.1.tgz","fileCount":40,"integrity":"sha512-OlG+iUcP/E01f6nnuPNGMiAcJJpFDtBQO9BofGpFTsIwgfGeGTimvym5wfoYPHz2d2CeCidX5WnhntLIuUuvWA==","signatures":[{"sig":"MEQCIGuLs+Kb3IhaSCknoF57X1Cczmkp9xYEKoCtASsPiNR5AiBK8uzgWhImQvh9sOOxwrb8tlU+IKMc+WDOWEr4Zv8OOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":504676},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"7707d76d24ac5a4cdee096d2fed6c32b09ef88f8","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.12.1","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.1.1_1779390505938_0.30525981380606737","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"signalk-grafana","version":"1.1.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.1.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"2b45be68d3cfc7de5b00d820b17bd55309ca17fe","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.1.2.tgz","fileCount":40,"integrity":"sha512-PKm+9SQ1ap+k2ijhh/zkZR5khpRRpdAHher/HVPyYGQMkgUKlL9hhf8lkoDpkj5adu5EOc3tlgXGI0u1A9a6vw==","signatures":[{"sig":"MEUCIQDr6RjvZDk8fllqNimzEapJX+ZtK671sK4vmY9dSB/hEQIgH2e7F34JASvI+zJjA5eEL0EaKADlJhKJ3w8K4xiv2PA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":506183},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"410c4a3a483f931302b8295315fedd1691ae47f5","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.12.1","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.1.2_1779405399141_0.5195307433567116","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"signalk-grafana","version":"1.2.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.2.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"77c3e038dac78d36040e08b6d8e2b6307985230a","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.2.0.tgz","fileCount":47,"integrity":"sha512-gQ7g45YXEBE37Cny2lJxLuvjn0MjsEC1o9yo545Pxw9EekgYc4uskxjFKRkKyxTM1hWQtsUeeifuuPSDubMd7A==","signatures":[{"sig":"MEQCID8r5acCXOgHhGbD+Fup1u558/7ljA2jt3AU2Trjr15aAiB68kGBSbtYYQPwEvg0zlGBE8qDDA8cqsCsB3YkL+0wmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":569981},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"6be5da42e594870c87fa608869e8460e1ce819a6","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.12.1","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.2.0_1779738142061_0.5522524579032135","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"signalk-grafana","version":"1.2.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.2.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"e23fe580154081fa999d012dd2c58f23e5e49de5","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.2.1.tgz","fileCount":47,"integrity":"sha512-7U4wPnZc/ZR7tjDCa0uc7tQKiK6XuwJCYAzcTwTEBpzwx1Ca8i1hgZXCmfU3DXEihiOsx4WU5heh8UEax+LRSg==","signatures":[{"sig":"MEQCIBxCKN6dLq/WIG2fOucAiPADnSfoqYUDuB6GDk59Jq++AiAJsvtOOPHNZhFQ7We/d1mkx5Y2wxZXFc+8plQx1Qlm0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":570348},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"d9fc5bd29c26a07803f441ff73b90b2df64840f8","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.12.1","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.2.1_1779758951872_0.9275343232622397","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"signalk-grafana","version":"1.2.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.2.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"8729ba7ba20a0250f25fdc8095bd5436f06210a7","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.2.2.tgz","fileCount":53,"integrity":"sha512-C1HpSpI0y0wxT/rKAizNTDoVP4fzOQrdH1uAuFW8PJ2if/zevTJdQThZE0+RqxbLQGB6djEzX8QT5M07ZIEDyA==","signatures":[{"sig":"MEQCIFXIgceCa9xpT+WdT5WcN1nDjtFsKleFTXPxZo+pau9eAiBBSo9gVTlDYfo/VRw9InBYn+3CYifDY/tks38OqUvtsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":620790},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"5a39c1846486774007c7050986e767487b83a36c","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.13.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.2.2_1781812831473_0.0867278451301221","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"signalk-grafana","version":"1.2.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.2.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"f828e8d398b0e0dedb5cdbc8cacfb15e7c59e54e","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.2.3.tgz","fileCount":53,"integrity":"sha512-7VwtyrAzaNaLFWb8UPlsyz587vgm/chY/4Jtod06z7Ey++X0str5ywfs1ujWxVFthghJQd5HXgfbkqbsUHEU2g==","signatures":[{"sig":"MEYCIQDDsd3y6mWOD6ao5JEk3Ob0uJcBQ/suEG49StQp60fpKgIhALf8fWdR3MT17O2rncom5KRivJBUf0JS+76IRRb40bB2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":626236},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"4f82443dca2681c5f37ca0f2fe90f0c3f5c30a66","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.13.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.2.3_1781824857351_0.4638812675844459","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"signalk-grafana","version":"1.2.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.2.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"b15e12ecbfb9e14173016d3c001a28cd65f18b79","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.2.4.tgz","fileCount":59,"integrity":"sha512-4sCYRBKH8mQ/tbslkWIJWWvXg43hP9c7n7dwcYtUUE6ADFaKvT+qwBCqZiRPCbimFTF86a6zLcFWTgpe4/qQEQ==","signatures":[{"sig":"MEYCIQCPJXR6+eMBO0T9TB80cLVZkbEGXSOOV/4GQDTpzG6ZvwIhAKGMB8fyqpAIrPMF5f/rkoESGOLVLdxdl6UdYiNA/P7+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":641983},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"210091845e2ebd4c62d6f416e95594fa150aea22","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.16.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.2.4_1784491474176_0.30396023766768065","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"signalk-grafana","version":"1.3.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-grafana@1.3.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"1f69d6f9c4b6e5ed700b003e80859b9dc45b2370","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-1.3.0.tgz","fileCount":59,"integrity":"sha512-pN6bKuicQFc/6vCqhx9fnhgUlPCOptTxhkElGaAre3eIK+fg0JYh6g82QThIZiBHRE2ANh0iWPjK2p9U7uWCNw==","signatures":[{"sig":"MEUCIQCxoxOj4rvNlmR7S+zIYyZYhjF58sG4RDwL3ZX1oElYnwIgZ+q+H9ZtBC9cBmkZVspepGL/jqxN4Y+1S9UdHQ//krg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":647038},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"a462996fd5ea37849b596991db127b7fc6abed44","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.16.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_1.3.0_1784863684474_0.885285310069164","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"signalk-grafana","version":"2.0.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-grafana@2.0.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"92fb6aa971a0625306248f7529751ddbc39c8816","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-2.0.0.tgz","fileCount":61,"integrity":"sha512-3sndUGvGqYa5ojnpZEg2cB8WXnerZRwy3WtRgm7lyz0xt7B3aPV2aDjlX2h0u68coK0XnXjgjeG572iKuRCz9A==","signatures":[{"sig":"MEUCIQDTwds8byrazGNF/AHihiIbbNIenpq8iizshftUdT57WgIgCbgfsilYltC7f5uGdbCWRwN6yYs/mibw9bqAknsfU9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":653457},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"686f81e5544af22b9e3ec0b2672e8b9860274326","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.17.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.19.0","_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_2.0.0_1786901363166_0.720147795336874","host":"s3://npm-registry-packages-npm-production"}},"2.1.0-beta.1":{"name":"signalk-grafana","version":"2.1.0-beta.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-grafana@2.1.0-beta.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"a5a0d04a3e73efeaa9bf231a71123df8764cbff0","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-2.1.0-beta.1.tgz","fileCount":67,"integrity":"sha512-6rIHehzpKnOUexfSpJtVWOtFlaR22NJmPisY8b/Ol/tFwaTE03kpkGlC77QgPlR4xztJpDxWjMoW5VnqzIosHA==","signatures":[{"sig":"MEYCIQDfXR1K2tQ3halmtaCoMl7yDWRANl5YPCpPSjr+0glLcgIhAIov0IAI6/8p9jTZuo+iSLwI0G1buZXfMso4sFed5e36","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@2.1.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":684729},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"430294c66f9b39f0d526005acc66ed47a8c208e9","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.17.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_2.1.0-beta.1_1788393000704_0.0747853617875871","host":"s3://npm-registry-packages-npm-production"}},"2.1.0-beta.2":{"name":"signalk-grafana","version":"2.1.0-beta.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-grafana@2.1.0-beta.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-grafana#readme","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"dist":{"shasum":"c04235622842b05e0247dced3f2ca97f6215655a","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-2.1.0-beta.2.tgz","fileCount":67,"integrity":"sha512-w2GJPqYQGnFm2SQ/TJ0BbDRHIssIJEXQynzipuzi8oi7hfOE+04WQcfvhI9349bjmmsVOfnhFOBO+zBR9kTi9A==","signatures":[{"sig":"MEUCIHHrBVnUQHuOsf+OUlX+z0awQKDxs6aejzVKS81160TuAiEAgHnnCReJqz52XpaSUb/4c8HscYJkx10LUTfpbj8riPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@2.1.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":663684},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.16.0"},"gitHead":"a28edd46e44d29d517c00f7bfd0249c181a2606e","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && webpack","watch":"tsc --watch","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","prettier":"prettier --write .","build:all":"npm run build && npm test","build:config":"webpack","prepublishOnly":"npm run build"},"signalk":{"appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"displayName":"Grafana Dashboards","screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-grafana.git","type":"git"},"_npmVersion":"11.17.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@sinclair/typebox":"^0.34.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","react-dom":"^19.2.4","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.19.18","webpack-cli":"^7.0.2","babel-loader":"^10.1.1","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@babel/preset-react":"^7.28.5","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-grafana_2.1.0-beta.2_1788460921484_0.9875589980723722","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"signalk-grafana","version":"2.1.0","description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"signalk":{"displayName":"Grafana Dashboards","appIcon":"./icon.svg","requires":["signalk-container","signalk-questdb"],"screenshots":["./docs/screenshot/signalk_grafana_1.png","./docs/screenshot/signalk_grafana_2.png"]},"type":"module","main":"dist/index.js","scripts":{"build":"tsc && webpack","build:config":"webpack","watch":"tsc --watch","prettier":"prettier --write .","lint":"eslint --fix","format":"npm run prettier && npm run lint","ci-lint":"eslint && prettier --check .","test":"node --test 'dist/test/**/*.test.js'","build:all":"npm run build && npm test","prepublishOnly":"npm run build"},"engines":{"node":">=22.16.0"},"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","repository":{"type":"git","url":"git+https://github.com/dirkwa/signalk-grafana.git"},"dependencies":{"@sinclair/typebox":"^0.34.0","signalk-container-helper":"^0.11.0"},"devDependencies":{"@babel/core":"^7.29.0","@babel/preset-react":"^7.28.5","@eslint/js":"^10.0.1","@signalk/server-api":"latest","@types/express":"^5.0.0","@types/node":"^22.19.18","babel-loader":"^10.1.1","eslint":"^10.2.0","eslint-config-prettier":"^10.1.8","globals":"^17.4.0","prettier":"^3.8.1","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^6.0.3","typescript-eslint":"^8.58.0","webpack":"^5.105.4","webpack-cli":"^7.0.2"},"gitHead":"564e42331d0480af3c574c7cd100225d4251e9e2","types":"./dist/index.d.ts","_id":"signalk-grafana@2.1.0","bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"homepage":"https://github.com/dirkwa/signalk-grafana#readme","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-xeo5lOleI28dFe1/mye1Uko9k8r91juZ5SZIFTD4j6yXudJJnbBGPV9gxvdEnJXMm36DJzoyJx0WkN/W2+yCdw==","shasum":"739e17f93dd850171ac1383e207369cb6610067a","tarball":"https://registry.npmjs.org/signalk-grafana/-/signalk-grafana-2.1.0.tgz","fileCount":67,"unpackedSize":663677,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-grafana@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF1z/j0PP3kzhCoY/Pf45sFuOVbKdu9zqSYzHYhgh8UPAiBBP5CO8MQeyNXVXD7GBRVycCkJWPmJpA3eGtU6RqZxaw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:86d08034-ba02-42b6-8eaa-546b1ce19eed"}},"directories":{},"maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signalk-grafana_2.1.0_1788552955593_0.8324628370105203"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-06T03:56:13.596Z","modified":"2026-09-04T20:15:56.214Z","0.1.1":"2026-04-06T03:56:13.903Z","0.1.2":"2026-04-06T05:31:30.886Z","0.1.3":"2026-04-06T16:44:23.369Z","0.1.4":"2026-04-06T17:12:24.831Z","0.1.5":"2026-04-06T17:42:50.848Z","0.1.6":"2026-04-06T18:00:02.993Z","0.1.7":"2026-04-06T18:52:32.942Z","0.1.8":"2026-04-06T19:10:43.521Z","0.1.9":"2026-04-06T19:28:08.500Z","0.1.10":"2026-05-08T19:13:40.531Z","0.1.11":"2026-05-08T20:18:26.952Z","0.1.12":"2026-05-08T20:22:10.455Z","0.1.13":"2026-05-08T20:45:32.404Z","1.0.0":"2026-05-09T15:32:04.766Z","1.1.0":"2026-05-20T02:25:45.653Z","1.1.1":"2026-05-21T19:08:26.178Z","1.1.2":"2026-05-21T23:16:39.378Z","1.2.0":"2026-05-25T19:42:22.271Z","1.2.1":"2026-05-26T01:29:12.056Z","1.2.2":"2026-06-18T20:00:31.729Z","1.2.3":"2026-06-18T23:20:57.534Z","1.2.4":"2026-07-19T20:04:34.324Z","1.3.0":"2026-07-24T03:28:04.671Z","2.0.0":"2026-08-16T17:29:23.343Z","2.1.0-beta.1":"2026-09-02T23:50:00.858Z","2.1.0-beta.2":"2026-09-03T18:42:01.659Z","2.1.0":"2026-09-04T20:15:55.817Z"},"bugs":{"url":"https://github.com/dirkwa/signalk-grafana/issues"},"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","homepage":"https://github.com/dirkwa/signalk-grafana#readme","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"repository":{"type":"git","url":"git+https://github.com/dirkwa/signalk-grafana.git"},"description":"Managed Grafana with auto-provisioned QuestDB dashboards for Signal K","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"readme":"# signalk-grafana\n\nManaged Grafana with auto-provisioned QuestDB and Signal K datasources for Signal K.\n\nRuns Grafana in a container (via [signalk-container](https://github.com/dirkwa/signalk-container)), automatically connects it to [signalk-questdb](https://github.com/dirkwa/signalk-questdb) via a shared container network, and provisions both datasources.\n\n## Features\n\n- **Zero-config Grafana** -- container managed automatically, no manual setup\n- **Auto-provisioned datasources** -- QuestDB (native + PostgreSQL) and Signal K datasources configured automatically\n- **Shared container network** -- Grafana and QuestDB communicate on a private Podman/Docker network\n- **QuestDB-native query editor** -- the official QuestDB datasource plugin is provisioned as the default, with working table introspection and a `SAMPLE BY`-aware editor (Grafana's generic PostgreSQL query builder cannot list QuestDB tables)\n- **Anonymous access** -- view dashboards without login (configurable)\n- **Live reachability** -- config panel shows whether Grafana can actually reach your Signal K server\n- **One-click update** -- check for new Grafana versions and update from the config panel\n- **Password management** -- set admin password from Signal K config panel\n- **Config panel** -- Grafana status with direct link, settings, all in Admin UI\n- **Backup & restore integration** -- exposes `/api/full-export/{db,dashboards,provisioning}` endpoints for [signalk-backup](https://github.com/dirkwa/signalk-backup) to pull a consistent SQLite checkpoint plus dashboard JSONs and provisioning YAMLs. On plugin start, if a kopia restore left a staged `grafana.db` on disk but the live one is missing, it's automatically copied into place before Grafana starts -- dashboards and datasources come back without any manual step.\n\n## How It Works\n\n1. Plugin creates a Podman/Docker network (`sk-network`)\n2. Starts Grafana container on the network\n3. Auto-provisions two QuestDB datasources over container DNS (`sk-<QuestDB container>:<PostgreSQL port>`, default `sk-signalk-questdb:8812`): **QuestDB (native)** (official QuestDB plugin, the default) and **QuestDB** (PostgreSQL-wire, kept so dashboards built against it keep working)\n4. Auto-provisions Signal K datasource (connects via `host.containers.internal`)\n5. Sets admin password on every startup to match config\n\nBoth plugins must share the same **Container network** (default `sk-network`), and the **QuestDB container** setting here must match the container name configured in the QuestDB plugin.\n\n## Example Queries\n\nCreate dashboards in Grafana using the **QuestDB (native)** datasource -- its query builder lists the tables, and the SQL below works in its code editor as well as in the legacy **QuestDB** (PostgreSQL) datasource. QuestDB uses `SAMPLE BY` for time bucketing:\n\n**Speed Over Ground (knots):**\n\n```sql\nSELECT ts AS \"time\", avg(value) * 1.94384 AS \"SOG\"\nFROM signalk\nWHERE path = 'navigation.speedOverGround'\n  AND context = 'self'\n  AND $__timeFilter(ts)\nSAMPLE BY 10s\n```\n\n**Wind Speed and Angle:**\n\n```sql\nSELECT ts AS \"time\",\n  avg(value) * 1.94384 AS \"AWS\"\nFROM signalk\nWHERE path = 'environment.wind.speedApparent'\n  AND context = 'self'\n  AND $__timeFilter(ts)\nSAMPLE BY 10s\n```\n\n**Battery Voltage:**\n\n```sql\nSELECT ts AS \"time\", avg(value) AS \"Voltage\"\nFROM signalk\nWHERE path LIKE 'electrical.batteries.%.voltage'\n  AND context = 'self'\n  AND $__timeFilter(ts)\nSAMPLE BY 10s\n```\n\n**Engine RPM (rev/s to RPM):**\n\n```sql\nSELECT ts AS \"time\", avg(value) * 60 AS \"RPM\"\nFROM signalk\nWHERE path LIKE 'propulsion.%.revolutions'\n  AND context = 'self'\n  AND $__timeFilter(ts)\nSAMPLE BY 10s\n```\n\n**Temperature (Kelvin to Celsius):**\n\n```sql\nSELECT ts AS \"time\", avg(value) - 273.15 AS \"Temp\"\nFROM signalk\nWHERE path = 'environment.water.temperature'\n  AND context = 'self'\n  AND $__timeFilter(ts)\nSAMPLE BY 10s\n```\n\n### Unit Conversions\n\nSignal K stores values in SI units. Common conversions for Grafana:\n\n| Conversion         | Formula               |\n| ------------------ | --------------------- |\n| m/s to knots       | `value * 1.94384`     |\n| radians to degrees | `value * 57.2958`     |\n| Kelvin to Celsius  | `value - 273.15`      |\n| Pascals to hPa     | `value / 100`         |\n| rev/s to RPM       | `value * 60`          |\n| Pascals to PSI     | `value * 0.000145038` |\n\n### Grafana Macros\n\n`$__timeFilter(ts)` (the dashboard time-range condition) works in both QuestDB datasources. The other macros differ per datasource type:\n\n| Macro                           | Datasource         | Expands to                              |\n| ------------------------------- | ------------------ | --------------------------------------- |\n| `$__timeFilter(ts)`             | both               | Time-range condition on the `ts` column |\n| `$__fromTime` / `$__toTime`     | QuestDB (native)   | Range start / end as timestamps         |\n| `$__sampleByInterval`           | QuestDB (native)   | Panel interval for `SAMPLE BY`          |\n| `$__timeFrom()` / `$__timeTo()` | QuestDB (Postgres) | Range start / end                       |\n\nQuestDB's `SAMPLE BY` handles time bucketing (e.g., `SAMPLE BY 10s`, `SAMPLE BY 1m`, `SAMPLE BY 1h`).\n\n## Configuration\n\n| Setting               | Default           | Description                                                                                                                                                                |\n| --------------------- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Grafana port          | `3001`            | Host port for Grafana UI                                                                                                                                                   |\n| Image version         | `latest`          | Grafana Docker image tag                                                                                                                                                   |\n| Admin password        | `admin`           | Grafana admin password (applied on every start)                                                                                                                            |\n| Anonymous access      | `true`            | Allow viewing without login                                                                                                                                                |\n| Signal K URL override | auto              | Auto-detected; set to override (use `http://` or `https://`)                                                                                                               |\n| QuestDB container     | `signalk-questdb` | Container name (without sk- prefix)                                                                                                                                        |\n| QuestDB host override | empty             | Bare hostname/IP for a self-hosted QuestDB (IPv6 in brackets: `[fd00::10]`); empty uses the managed QuestDB container. Must be reachable from inside the Grafana container |\n| PostgreSQL port       | `8812`            | QuestDB PG wire port                                                                                                                                                       |\n| Network name          | `sk-network`      | Shared container network name                                                                                                                                              |\n| Bind to 0.0.0.0       | `false`           | Expose Grafana outside localhost                                                                                                                                           |\n| Sub-path              | empty             | Set to `/grafana/` when running behind a reverse proxy                                                                                                                     |\n| Auto-request token    | `true`            | On secured Signal K servers, request a device-access token                                                                                                                 |\n\n### Secured Signal K servers\n\nWhen Signal K security is enabled, the plugin drives the standard SK device-access-request flow on startup so the Grafana Signal K datasource can read paths and history from the secured server.\n\n1. Plugin POSTs `/signalk/v1/access/requests` with `clientId: signalk-grafana`, `permissions: readwrite`.\n2. Plugin status shows `Awaiting Signal K token approval — see Security → Access Requests`.\n3. Approve in Signal K Admin → Security → Access Requests.\n4. The plugin caches the JWT to `${dataDir}/signalk-token` (mode 0600), injects it into the Grafana datasource provisioning, and recreates the Grafana container so the new credentials take effect.\n\nDisable with `requestSignalkToken: false` if you prefer to paste a token into the Grafana datasource UI manually.\n\n#### What works and what doesn't on secured SK\n\n| Use case                                                                           | Works on secured SK? |\n| ---------------------------------------------------------------------------------- | -------------------- |\n| Explore → Signal K → pick a path                                                   | ✅                   |\n| Historical range queries (`from`/`to` are explicit times, or `now-1h` to `now-1m`) | ✅                   |\n| `/api/health` and datasource Test button                                           | ✅                   |\n| **Live-updating panels** (range `now-X to now` that streams values in real time)   | ❌                   |\n\nThe live-update gap is in the upstream `tkurki-signalk-datasource` plugin: it opens its WebSocket from the browser where Grafana's secret store is not accessible by design, so the upgrade request goes out without an `Authorization` header and Signal K rejects it. HTTP queries are unaffected because Grafana's datasource proxy injects the bearer token server-side for those. Tracked at [tkurki/signalk-grafana-datasource#12](https://github.com/tkurki/signalk-grafana-datasource/issues/12) — until that lands, **use the QuestDB datasource for live-updating panels** (the intended architecture: SK → questdb → Grafana, with the SK datasource reserved for ad-hoc Explore and historical queries).\n\n## Requirements\n\n- Node.js >= 22.16 (needs `node:sqlite` `backup()` for the SQLite checkpoint endpoint)\n- [signalk-container](https://github.com/dirkwa/signalk-container) plugin\n- [signalk-questdb](https://github.com/dirkwa/signalk-questdb) plugin (with network set to `sk-network`)\n- Signal K server\n\n## License\n\nsignalk-grafana 2.0.0 and later is **source available, not open source**.\nSee [LICENSE.md](LICENSE.md).\n\n**You may**, free of charge: run it on your own boat or fleet, private or\ncommercial; use it for internal company operations; modify it for your own use;\nuse it in education and research; and provide professional services around it.\n\n**You may not**: redistribute it, or publish a modified version of it to npm or\nanywhere else. Verbatim copies of official releases may be mirrored and cached.\n\nVersions 1.3.0 and earlier remain available under the MIT license, see\n[LICENSE-MIT-through-v1.x.txt](LICENSE-MIT-through-v1.x.txt).\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n","readmeFilename":"README.md"}