{"_id":"signalk-questdb","_rev":"59-97babf6eabb72c1a0e0d8031a942b713","name":"signalk-questdb","dist-tags":{"beta":"2.1.5-beta.0","latest":"2.2.0"},"versions":{"0.1.0":{"name":"signalk-questdb","version":"0.1.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.1.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"510fdf810f3c50ee4527b986e5ed473e29e8ab99","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.1.0.tgz","fileCount":43,"integrity":"sha512-z2H60votodN3NK0QcaYun+iU+2m0WloR2T9Cv/DDBgQlvrDcJ/uRXfCqxQ+7u63KerKA2+Abv9sLfL230v587g==","signatures":[{"sig":"MEQCIDxt0aLxIZwoIJvrhJzlsA2h5yUO+NLQKBT24cHmasJ/AiAp26FCqMbSuI3OCWD1wg26O9UmwQRdR7oN8Ti8BzZgig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171968},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9aac7a11d27babd84d7dff8b905a4da69c77450a","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":"QuestDB History"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.9.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@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","@js-temporal/polyfill":"^0.5.0","eslint-config-prettier":"^10.1.8"},"peerDependencies":{"signalk-container":">=0.1.0"},"peerDependenciesMeta":{"signalk-container":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_0.1.0_1775351934575_0.6036990623592242","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"signalk-questdb","version":"0.1.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.1.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"0bc7ac8595050fa9e5a02bb0c9d5539cb7b9eab3","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.1.1.tgz","fileCount":43,"integrity":"sha512-Ps0JpPZVLGqbT9n34x6rIUNWuarMREuXCjbTEtoXa4tqNNEY3CWpKenlQqVBQQ46C6DDj4Iuth64IIjBzTFhKw==","signatures":[{"sig":"MEQCIGdqRSkTDxQkprJSYtfvf3VysP4DJS5YMpE6Vkvmr+ZSAiASDnQ5RS/dpBpJ/HzBcu8jawMExTCtrS+1KvScnWPxiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171968},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"3d28a16c2a11d86a7cf9146c0e8cb99473a40ba0","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":"QuestDB History"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.9.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@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-questdb_0.1.1_1775362297358_0.9826568503883018","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"signalk-questdb","version":"0.1.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.1.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"d88746e8aa0643b8f82ca8f98e92ab8069a25e32","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.1.2.tgz","fileCount":43,"integrity":"sha512-guFqMlq+WvQPo5rxIVM5MkexC1JpOct1l0MDfRobOBnjjnyUaXbt6aHhK36tXPajQQkR9f9AsiPQvDCGIqzDyw==","signatures":[{"sig":"MEUCIG+3qzYXrWX/lKgKaEgvEp5w8OX0owvekg3C3nj9R0XBAiEAgwMdpMh7e2FnGzQET+kgdyfTY0sCrh6z1WtoWA3vBhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178119},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8db6f3b168c0748fb1c4e9c2a255a630484f4529","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":"QuestDB History"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.9.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@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-questdb_0.1.2_1775429535642_0.8244168388674833","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"signalk-questdb","version":"0.1.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.1.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"56d120223385a3e93540a556c81df8616abe2156","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.1.3.tgz","fileCount":43,"integrity":"sha512-izI8/VArOIjuPITzrzx+xo2vc5+0bzr/SD7Rd9VX8YuZjKQxkP35AJqbvC1IcMdu0f4diX82UFnSM+tuuD5WzQ==","signatures":[{"sig":"MEQCIFRfmF+KYSq4xFsL63Psw3SAMXBMIrUWSEB7eg7cGMsmAiBiL3wyDutX9veBDhQtSg+TgdVATXDXDE6RIgsfDV31+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181873},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9cb09997bc19535a1b1e6c17aeab588a56879b63","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":"QuestDB History"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.9.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@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-questdb_0.1.3_1775447484140_0.4059821073495471","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"signalk-questdb","version":"0.1.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.1.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"48fd41e842f5fcbf0f7458384617c5fa58ae042e","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.1.4.tgz","fileCount":43,"integrity":"sha512-YxavA1hdM36aDR+pr4WT5wcRRkHXJF1UkW8L3BFKH5qrA9n5V68NpSlLqFn7Eta1nBy8h3hXaKrf6vo45nV02Q==","signatures":[{"sig":"MEUCIE0zMZbu/i9FtJv1G7THpjF4wB2aTVcpiubEjqAqePoSAiEAyo/lPWRgP/GC7oot8n/jH/IvWPnw88awZFZ2Ue3dBjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184528},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5272f7fef89e927e8946d347a69d6bdd0b572008","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":"QuestDB History"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.9.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@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-questdb_0.1.4_1775492986434_0.8626472713090365","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"signalk-questdb","version":"0.1.5","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.1.5","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"b45f81d9e715f33f5ce55c49997270406b4aa7e2","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.1.5.tgz","fileCount":46,"integrity":"sha512-bjlwlYCysr2wVVQcjPBbgekMWkteD5JKD6EH92fNnsGewkZA3Y5GkYNtEBHnMtJvcqD5nS0vGa09OI6SmS/R5w==","signatures":[{"sig":"MEUCIE8Uzuz/sJ2a4V7f5n2bwuCN1fUowy2KStHU2c3jRltdAiEA7PKtacWwMbDRlPE0gbMZ7AeJxlAstZOkpJGDcJsHtT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194152},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"7ad0ce626e2028aa74fcbc9ac74517f961be8967","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":"QuestDB History"},"_npmUser":{"name":"dirkwa","email":"dirkwahrheit@gmail.com"},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.9.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@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-questdb_0.1.5_1775578877613_0.2603332441833537","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"signalk-questdb","version":"0.2.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"license":"MIT","_id":"signalk-questdb@0.2.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"c399b3c28adb3dd05fd7e9e2e7bc3a7b808ea119","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.2.0.tgz","fileCount":48,"integrity":"sha512-/bBfcYgz0zsa17L4k7joOWqFP7YXKoKhKt4+2PMBkF/8oYphSeT9D/KWZCgIYTKsmnXec2iJe5f46HXWKtSZ6Q==","signatures":[{"sig":"MEUCIQC/JdANZ3obD8s/gJKrTw2idVaLOJuuLgwAbqoDXVIRngIgEN0u/AnY6kooetcD4ZGYOwOFDCv2K83+hbyQWjqyJlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200200},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"cd201920233635f26791e386db93771657f70fbc","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.11.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.1","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@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-questdb_0.2.0_1777239909244_0.8879839482726404","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"signalk-questdb","version":"0.2.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@0.2.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"8cef05705ea7e085c571b7a33b28e45a87ca38f6","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.2.1.tgz","fileCount":48,"integrity":"sha512-ttRy35hmbfg5iKiQoF2xYQlVTPKi5VuhaqErw8JWYK+Ze/DzuFzS5Iuue9FD5A3697Lz/SJpGZRKnMfVLYa++g==","signatures":[{"sig":"MEQCIGV8P+Qw4hV6GMV3vd7BsjlOk1xzJYHccc/jlmQy+u4sAiBpXOPnKPURyFR0s2g3G5HODsWtUvQuGc98CBHEFMhfRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200254},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e13f73350f2ebfbe0c3c45616d2f3f7a82206cb0","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.11.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.1","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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-questdb_0.2.1_1778267942640_0.06310130364522593","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"signalk-questdb","version":"0.2.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@0.2.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"c7a08460cb3358c6a7bd42a50867883ac8d4cc15","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.2.2.tgz","fileCount":48,"integrity":"sha512-8wrjPi5ySVBw0l2QNmU4ZX599XS/2WsxgyLbT/NpHGIr6YeSQXJZP3d6qPxOp8FbrJwtT7r2BWOZTLpf0ueFPA==","signatures":[{"sig":"MEQCIFa8ebOeN7teiYbbyzY3kDn8uS0h7lfbGWacXHMJtMkKAiAjyln0Wrvbj0uMBq6Yj/dq0ITqi+wZqeKLzLlLjhbCWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200101},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5249e29596a6268b0d0e6ee62bd8c45131bbacfd","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.11.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.1","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_0.2.2_1778273257278_0.8464144427605094","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"signalk-questdb","version":"0.3.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@0.3.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"5246c995917e12672577147510cd7f0019e6cfd0","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.3.0.tgz","fileCount":49,"integrity":"sha512-XuDpsrfD6DKCv3mpoiFgp1/HlxUCwfInjmBg8jSSi6jawR99dP1NWYY8ygChtXHvoWulgGijUQ2f2ma5J2yEbw==","signatures":[{"sig":"MEYCIQCO/oOt036q6tmTEjjoxRbvW5s0U7G1UYONA/J22UZ2EQIhAIoCKtT8BHPScq4nHcCWmZNu5fgV19c/DmyFCa/bJInI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326788},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"35bdb0b3a1e17bbf6f437494cb00cf2ec76277bf","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.11.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.1","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_0.3.0_1778540181263_0.36275416315153763","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"signalk-questdb","version":"0.4.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@0.4.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"1b44d7fd7413427d936e60c78a5d38770263de66","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-0.4.0.tgz","fileCount":55,"integrity":"sha512-giuBSOHhYrN65Arj/hie8D8hu73BTg/B2uCJBuMRVO3NJ3ZcFaOGMhQyfQj+D47EHAXMJh6HpI2qcoLJ4DN/ng==","signatures":[{"sig":"MEQCIG+wMky9LZ4Y9UsQadWS1iuLVp/BNIVgjSax9Dg70DWoAiAjDetGFedjY9g4R/7lKLpdVuS8SUYFeIQ2Jf4cjKf6cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341135},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e112e4b44557c26175a053adf1d4fcda4d4412d1","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.11.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.14.1","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_0.4.0_1778648965777_0.6579390995452297","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"signalk-questdb","version":"1.0.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.0.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"d5568e39181374bcfbddf97d1e7187ecd5ca3dda","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.0.0.tgz","fileCount":55,"integrity":"sha512-ebBonI02+SwsSbEQdAKwrTJuVKr/d6T9Awckp6/Y0fvxPJ/6HMl4TuS4lm8KXyAUwCnM/Z299nd1N/3PTGx08A==","signatures":[{"sig":"MEQCID3No5Loeo8jN93bENh8naT10qlo8mLEDmaATVKgOXEMAiAYwLqOlXdf2lOO7lVX8QdRpZrHIsRbMIzE1+earEfDqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341168},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"0cff9b338de420f22623a8cfb9c76bf752e080da","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.12.1","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.15.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.0.0_1779159452625_0.02041883728513061","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"signalk-questdb","version":"1.0.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.0.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"2f4bdb182327a8e745ed7b2b24cf9bcf4fba8cda","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.0.1.tgz","fileCount":56,"integrity":"sha512-02NKgbntJkZedJG8wSWIBD7lrUQbU/DAGR49ErtYzjtbU0p3/6zOhQpjpWzhXqxR14Hdwa9lejUkMcCbXhkKiQ==","signatures":[{"sig":"MEUCIQDl2BH6AeWz8PICCl36W+1CCvdhNWPlgaOTyPSyJ3QOMAIgW5G/dM71CVupSzlLBRMu4dLd7dxRqbJEdbyfdu+Hoiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":343629},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"359672cf836bd37b2da878d5af79f32157b80bcc","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.12.1","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.15.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.0.1_1779376002765_0.7742911451419698","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"signalk-questdb","version":"1.1.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.1.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"1f923f7bff4f273e5380b2734373a2942195d2f0","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.1.0.tgz","fileCount":57,"integrity":"sha512-SdC5uze+W0JJF3Tjk674aTw9bGyVFoeTucVZMfHSfLHkilElRAYJ9bQv2HK56YunKzIMP0zTR/s1FCoxO2CD2w==","signatures":[{"sig":"MEYCIQCDBsSeE/t9ML4XRs32i09QCx+q9rzl1Mw7yPLOyS0qgwIhAOIGWFoE0VzJYKGgxtv+flSnANDuWaV4dQ2jc4z2KxHB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":354599},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"c5ba75d3525ae2d5583e79338e450f6960d125fb","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.12.1","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.15.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.1.0_1779684493661_0.8011609501286454","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"signalk-questdb","version":"1.1.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.1.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"5609f47af513d822ed407b3e80bf8debd4778de6","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.1.1.tgz","fileCount":57,"integrity":"sha512-w5d5YjdRPUtiubvAe1P6OHQndHPQeNDQ5C8z7b1p9ovjau+m/CVac3/Y/kBbMNLVxIPQrPTedQcGUSt3KBL8pw==","signatures":[{"sig":"MEUCIQDyU6FQkynlO9YFDF15JRLh/RNk41GW1/JdSJ0wQeUS9gIgLHAaJHDuFKk2y1WL8hD+/RrRyBWqF12ZJLlhMUsPn0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":356967},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5e4bc980b57402457dd30fcb922f8f6d3d118523","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.1.1_1780452234739_0.9430432499040802","host":"s3://npm-registry-packages-npm-production"}},"1.1.2-beta.0":{"name":"signalk-questdb","version":"1.1.2-beta.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.1.2-beta.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"d6da648549210c87f21753e8bf4cec8ffa47f33f","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.1.2-beta.0.tgz","fileCount":63,"integrity":"sha512-pj2gGFO5aYuGWeSNDmyWtCA+gvr5LF2WHegG/GmAgeP5Nt/rmMht1WLuy+CBv+7QyVCDvdgRTMQazt/8ys1pJA==","signatures":[{"sig":"MEYCIQC6whdYBCN6B1mcdaRB4BacrttCS8nMZhzwhL5oHcuyUwIhANuVTf7sOyOw5RXI9VMq06XSgwi3YSXkwoZPl0hcocGa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.1.2-beta.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":396147},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9aab3c06e4b0b0436ce92274d57539408d9e6b64","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.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","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.1.2-beta.0_1781734541633_0.10775213940224293","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"signalk-questdb","version":"1.1.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.1.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"ff3a89f8a29226227d9e58d43d572d9b40b13403","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.1.2.tgz","fileCount":63,"integrity":"sha512-T7+4rxsxu+/DuglgxE4/yErSQgs89NdxPaL39BLaDoXnHPKA+t7MOFwu6NsA8ZTJ7eUwSpf2xdzmkYzk8S2gTw==","signatures":[{"sig":"MEUCIHSCeoH4ZaUzzSAqABGVBl8CKGmb6YFyI/qaE1XqhC5IAiEA7pCp9C2eDiEEJoMfRm1TwQaVIoYnNIFWjCN2GiKi7VU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":396140},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"bf56d87e639bfef65281420da69a4f433752061b","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.1.2_1781738599027_0.8631419847768018","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"signalk-questdb","version":"1.1.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.1.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"b8f49be50f6807095a55af5567df8f69de62fe09","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.1.3.tgz","fileCount":63,"integrity":"sha512-FZ/92YwGOldlvZVmHKbfWn59huYeAVuaSyL91tn295ZwgE2xszAEgvrI5T+CUca1Ie2xw3m0G6vsjkO1tS9PPw==","signatures":[{"sig":"MEYCIQCeXkwVkS8I+OZWpwL7vgntiLDFsNM/KTYdjCSeQvV6YQIhALjKhGpqNIf3sSDRyZ/Lv+uXPXD/rQ+grO/+cHevKuVh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":396761},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5269177616ee962ba9c5e54e497c19762955f16e","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.1.3_1781739578151_0.4559916685590861","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"signalk-questdb","version":"1.1.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.1.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"71628e4282f066e6e9e617ed1813ad7695196984","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.1.4.tgz","fileCount":63,"integrity":"sha512-URJ3amzEEY2+AQ1ynirs2Yz8/uYXkFemEqWlHYWTsKw/GMmKv2xgvod17vTjsW92n22SOirvRq802grU/apnoQ==","signatures":[{"sig":"MEYCIQDJEb63k0KKhIm+TNCGXyrdDHF0nHbx2+pb2FJCV8qq7QIhAPB886lI3/D+DSP4Yk5W/ArSco5I3TkH4bh2qBNAoTQ7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":400914},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8f851bd57b1d4cebfda4fd35edae40f44c27f60f","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.1.4_1781801253643_0.13530228438885938","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"signalk-questdb","version":"1.2.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.2.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"cb6025eefc2b45b4bf07ec1cd1c4621d5d6526a9","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.2.0.tgz","fileCount":63,"integrity":"sha512-zcXA5HrGBIOO0uPVhZ8Zfae2+2C0UjImFzZuZkpWieUwHVbbDDYu7mF3NIgU5/vbmTLpDQq1rhypbJjGQfLsCQ==","signatures":[{"sig":"MEYCIQDGdnOMWbjDDTYyAV+3HXTK32T7NWZM5OEdvigy5futlwIhAPZKqVvg+E9qat2gwGeTKvceIDLm9olwSgqTRRfx+HLm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":428938},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5b3bb5b524e00824eb9d33887f295f10cb8dce0d","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.2.0_1781821457128_0.700305680797406","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"signalk-questdb","version":"1.2.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.2.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"f372549d5a52e568d2091a32d592c05a9ceebc05","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.2.1.tgz","fileCount":63,"integrity":"sha512-dzokCSMZmFi11qqt7P6UlJq8ITLdYOMIJM2yiwQpEsMwn1hSV3qVVoHoEP8rq5Bk+eQRCoNPUn/TjPnOlasGMg==","signatures":[{"sig":"MEQCID+XzWhQupNYxE2NRB+FS724zAuOTTa/wQp0oTIVeAwiAiAsQoJFE+mYkizBqBP6dG3fzO/1zpigABanaiQHn62OUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":431884},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"24602f8b82b137abbcef93adfe623efb561d3519","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.2.1_1781836302253_0.7133415958842342","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"signalk-questdb","version":"1.3.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.3.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"2f91fa9ff11e3bc531a91d6f9ea456098eaf91a0","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.3.0.tgz","fileCount":63,"integrity":"sha512-XFAnT0MWlupxawPVy7d0ojJcXTZUQNsU1tvWU7JUdffu7BWYh7VDbyV3d6sf7TaVObeD5df7PJI2b2InwDc/eA==","signatures":[{"sig":"MEYCIQDI+Pf1SS2De74hoAOvDFfosTqHDYEazIPf8UV97yn+pgIhAPY2N/q/28e7CbKcOSJ2XoRA+a7RQ1yuoov9fbkD/emD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":469492},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9dc05b5c022f7680a1ae3f05806f3d1c4b221f6e","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.16.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.3.0_1782191990659_0.07131607857696265","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"signalk-questdb","version":"1.4.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.4.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"314ad3e25d4ea41b29a696319c1a21e0adebd46c","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.4.0.tgz","fileCount":63,"integrity":"sha512-xVhwgAGFFURDhuzBXuas6WzrHXN2h1MG1g9fPsFbh1W0YNbXrxg9BGsVGlSw5rnsFn21ZrBE2KjAD+NoYkLyxQ==","signatures":[{"sig":"MEUCIQCAYVxmlX5bpIeQ8bu3XyFjmdANRM9JfZhSC/pjOJy0JAIgBot47ZpNYF/tjvRHPNQkxBjccASVG7VnQ+yrwZmnAKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":478498},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ed08224a8e9d412b5e45519843b17c40cd13a949","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.17.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^7.29.0","@types/node":"^22.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"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.4.0_1782422727307_0.6706798620977885","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"signalk-questdb","version":"1.4.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.4.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"7a04648fd831dcc4d5fd91a520a224829f47de2b","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.4.1.tgz","fileCount":64,"integrity":"sha512-YpNPCgpokJ3eb7gkfxYtg+IfM6Abo+IONDOORiRt6hxnwEULUxoraA5SVih7wCRpP3jr7GwBqQgtvZdht8AJIQ==","signatures":[{"sig":"MEQCIA9EdNU3/AdNu67Q76inaqX8xd/C3RqHdHHdz2T29vE7AiAWtSiB/i2Xfy8p0NlNlM/wNPOjtPa8nVNOhSM59QFbzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":484772},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e3cc11388b0a494df168b492e6105e1811261b75","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.13.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.17.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.4.1_1782685464140_0.1293845155206248","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"signalk-questdb","version":"1.4.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.4.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"2c18e2671815a78d5c4351d81e5881f41baf375c","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.4.2.tgz","fileCount":63,"integrity":"sha512-VsaZBVKLqRXx7z7Tesg9yTgO3rTRXBhPmmHJbnXR8j/nSgYQk8NfFev8fEWQU//6+9ojSS/HXfFyfjbYuP8r1w==","signatures":[{"sig":"MEQCIAv1LzsGYk+ICF9mKVDiAZHssRLZj/DU7+0ntGgLMX10AiAI6P3lq26i6wEOLXRSmjVZ9HSCLCVGO/8UFwx0TXKYqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":482449},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9fca10bbd1f8f6b40497fe1ce8ee731f49d3ae61","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.4.2_1783083238899_0.4761976878552565","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"signalk-questdb","version":"1.5.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"95234fa55fc3f0bc608f869b13153bb087179925","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.0.tgz","fileCount":66,"integrity":"sha512-QuQX/6+HGlfYaROzV//0XuMyV8Ae1Ancj1WQc5UM5o2SB7R5XcPZYPkvU/SGSMprTaRwH15i9T0uO3ThiI7Ffw==","signatures":[{"sig":"MEQCIF/28hlantVn/hV1FHx7Mgf5gxmwEnDLeJhCjbXrhxi4AiAe1R9iYxgPiNnZ89YqQf3V7oYEtJBq8n6dDylcBtm66w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":504721},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"73d1be7fc5d047c2ee3ae4c4917e75a5d002627e","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.0_1783183006559_0.9309922297484878","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"signalk-questdb","version":"1.5.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"c444bedb9d9ee99f8d1da1cc54031a01c53d3dac","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.1.tgz","fileCount":66,"integrity":"sha512-tnBrfu33+geGJPY9LvbCU26JYGIurcRDc398I59pPgxAT+Ebpy9Fz4pQul6EAJRKpS+ps4gBdL+NU9N+cMfIHw==","signatures":[{"sig":"MEUCIEBnptKttMAiRaUvT51usqSKMxdqiMKScWWV1T32eS3yAiEAgOQjjsS65U8cZyWPJAdGDPpNUNS0RwYSNOSrF1uOAIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":517989},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"1d06f9c19ffa9fc932af8d9d1b37c8539e801c0f","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.1_1783285268343_0.9002884439416565","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"signalk-questdb","version":"1.5.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"3a0ed36a63774787f07f982578bd06f262134452","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.2.tgz","fileCount":73,"integrity":"sha512-Jb3mb1kkLH73BJEh98Xe/Au9sA7msw6OCbwl37tJyIL0A8uUHTaiCnEfJ4vU1mbH3Wgks9T2i0Va8r1Ltee7xQ==","signatures":[{"sig":"MEQCIHBu1KlydMpFSvBtHsBxrOqQXiuwWzGATEj3oD4R9/Q8AiBIHuaCinoHXh5v3rvTL2HKOA2+UzKQFNUDxoYWTMjayQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":560495},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e44d65ee3e52982f0c77267399b8b6061cec53a0","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.2_1784100763344_0.13154934761819215","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"signalk-questdb","version":"1.5.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"51acc02502f8f82d203c20cd0fe12877ab145606","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.3.tgz","fileCount":79,"integrity":"sha512-uokfm8TIjZk9elaEehzvfGCu/lyVUWEZt3BgV7hlPQnh76/NSdx2uTyTYwb9ZN96lsxotVJWPUGS6dATaGSsfw==","signatures":[{"sig":"MEYCIQCleyP11cxfU9YpHjM1IQDNGw21U7A5PV6NlbgE3gSGtAIhAPradeJobMEapgrfiqA1IXS3S1iDa+6p4RxNTnZ2bDOz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":646460},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"cf44866d1353549343bbaf8934f5d3def5486d82","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.3_1784400211743_0.11904123701178748","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"signalk-questdb","version":"1.5.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"0627cd6a0f0b9081f52731c2ad088216394a65f3","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.4.tgz","fileCount":85,"integrity":"sha512-wByiIwaSKfZokPcLjqJ5b9EKFMvL+D4rMm3uyCp5R3EKablSILbb5h0u2BLM96o/4Jm4DYFBFCs/v2UgM+mYjA==","signatures":[{"sig":"MEUCIQCjzsxeG36DAi4vULKop8hjJx5+tyY4ZiWjP8lDhblRkQIgGNeaEKMEh6CnvsHxbc+89ABKznrBxQzydpvJJxmJGPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":680550},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"d21630d830b8fdfc796f72ed354dd43b3923ac05","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.0.0","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.4_1784856870689_0.01664055693212485","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"signalk-questdb","version":"1.5.5","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.5","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"5f8139aa9dd616f3a8790e1134957589218d135b","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.5.tgz","fileCount":100,"integrity":"sha512-IgiYh7xVPl2fX+3blv0PTBORGtTp0+A5+++OO/g3dW0FygbvvZuEkGVWdIGRRuNkDzjUTClVID9NGQnbTKsGxg==","signatures":[{"sig":"MEUCIQDHssYBXHPYVrafbkdilZWVL++aqYUgcOP7ib3CsQwJQgIgeOw0eGCI73T7AORKXNgguf+KU3BKt/0CXUUevc4Ow3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":802734},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8dd0ed3cd625e009d9236b40441e6930cfac69b4","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.2.3","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.5_1785452485851_0.754619179228071","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"signalk-questdb","version":"1.5.6","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.5.6","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"ddddebd390c558d68613f30dc75360724734f9b0","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.5.6.tgz","fileCount":100,"integrity":"sha512-4AJw8Uai51ucUjTWQJhcSYmIcEGgizgcc2ZWcZP0zAHJKnroTduYPZPWWwacHLp2+Q8CBXXaq8CcYSnQTAmO9A==","signatures":[{"sig":"MEUCIBXTnh7spNxxrtsOVuZgghDsc0rNEYfHtRoIn+nFjb+6AiEA823Vuy7q/s9XUKgaMaX3jUDdo5wQwGVthQYmSwS2dt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":811154},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e823a1178e7b5beeb004ea0df0aeb799491646c6","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.2.3","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.5.6_1785974513600_0.4034365884608788","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"signalk-questdb","version":"1.6.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.6.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"126e7b99dde9ec2af51cd735518f8ec832e2bc6a","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.6.0.tgz","fileCount":100,"integrity":"sha512-oLXcq1Q1EaZjI8wbdYqYohzNuvy0AnyFFL/tjXRV9RQFQr876bptYBGBqp8dR4K7Uus84W2rgNbLQzKSIRgrWg==","signatures":[{"sig":"MEUCIQCvvpBAWmQQW8bMatGzyL5oEfbknArdRCW9rR+ce2WcvQIgXLeA4VZCKesDh7laNODhY6bnCFFnbbnbsvLuX0krVXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":850740},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"fa4d82fdae6e7b7309c4ed07c248e1811f992f31","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"minimatch":"^10.2.3","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.6.0_1786023055873_0.0840052916108267","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"signalk-questdb","version":"1.6.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.6.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"7ca5826e78b1d861c126f6a734b96eb75b32f096","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.6.1.tgz","fileCount":100,"integrity":"sha512-QUe/d1OveK8LJII6XfitMA1nAVjvuKBD0TNWKBek/Yav6v1WtYH3VMUWoHxEW4h4/qQrWG+AN37yEK9wzo7Qdw==","signatures":[{"sig":"MEUCIQDUXx3DjYwWyRG1kbu/MTHminnyLXPmsyYOlxqFS2G6aQIgQeRmI1OVI0zu1T4NAVUo5xmzCYPtm7cdiIyN26k2XtI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":858275},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"3e002c96bd2792f1dfc48e5c6e368a5c4c171f21","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":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"minimatch":"^10.2.3","@sinclair/typebox":"^0.34.0","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","webpack":"^5.105.4","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@babel/core":"^8.0.1","@types/node":"^22.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":"^8.0.1","@signalk/server-api":"latest","eslint-config-prettier":"^10.1.8"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.6.1_1786028288433_0.3168236866741523","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"signalk-questdb","version":"1.7.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.7.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"af440342cb7dc66a08b5fc329fe31cdb725e0cfc","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.7.0.tgz","fileCount":122,"integrity":"sha512-xgB45z/DdsV9FlMaHkgcbk8iBGsuac7U9p2TMAcSfWfDBUaJS6xN31LpunneAcbSpTb7G2Gs6MGNvAaDd9i1XA==","signatures":[{"sig":"MEQCIC5Pb0xSOGrEtY4TvI6aozCo5xvU3WC7K1b8yQ4bpkvlAiAE4iAG32IZARlKNtO2xHz8Pg4MwjTtRo2u/AnEvXi7KA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1026709},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5f3ad8494f10f939522261e6b6ebeed56df7ee07","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit"},"signalk":{"appIcon":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.7.0_1786116487643_0.1134715207692043","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"signalk-questdb","version":"1.7.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.7.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"5bf359f2db0d1b2280d16255036fd4f71c51f3d6","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.7.1.tgz","fileCount":122,"integrity":"sha512-GLdEl6iuY2PkvyT4YchK1EMxDkxWzOl2tSTYjMpc4mAwZUkIgWj7wGUWYDborL5olC1STTW51h9cI0xua4LWPA==","signatures":[{"sig":"MEQCIBgEiPAtiimxMm7byULseBEgn41QcXxnaWe0Yh4XPxQAAiBY2s2cuIvQ6YhK2uZvcPJbfhgvn1E5n+W7eOhbI8K9wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1032114},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"4da7160face9f03b90fa010a5eec44540e08a27f","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit"},"signalk":{"appIcon":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.7.1_1786119824445_0.9119096267024331","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"signalk-questdb","version":"1.8.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.8.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"535fce49afb60d087a3f238948d1d46cc8e493b6","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.8.0.tgz","fileCount":129,"integrity":"sha512-CDAV7eqSEFUSR278TdrpfS1vdEiKs8dEjKUS7WMhOGsijGFag5Ozg4j5HFpj6BAW4ujpp6+5VTf0zM2Y+h1wkw==","signatures":[{"sig":"MEQCIFDQ2ZSyNO5kRvS+k58kvqqrtPNsVCXZbCkLmKioRiUgAiAVYbtASvPpwSisVFnCUNZg9zKK/NGuJRvfFCb2yfLGzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1086528},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"faa643a513239f6a0bb23e4ce1086e9abfdc8f88","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit"},"signalk":{"appIcon":"./app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.8.0_1786130258790_0.8328337723939414","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"signalk-questdb","version":"1.8.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.8.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"8512d9036de08fa10fc64498508239d21028362d","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.8.1.tgz","fileCount":130,"integrity":"sha512-K+HPk7JpoHBi8BTBNzHwyz+pZSpmtLEEGbXlA08IdOvFE11P6gY4fIIQ/IpjvA5CJLNSbpBr5jjWRYYa/ZMoqA==","signatures":[{"sig":"MEUCICzlU2PnYkf2ARjphDMb66FeuOa8fxtZ0KIH0e5lCrA7AiEA4Bov6+xvn7yDdK+4qD6AE/fa2IJJ2RQRYMbQXfYsCuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1089461},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"37bf1e06dd95ebf85334027bfb295ecddd55e1f4","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.8.1_1786132791635_0.05568083286337644","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"signalk-questdb","version":"1.8.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.8.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"3db1711ab28dd32d97ed6ed6ec54c9f49a69092d","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.8.2.tgz","fileCount":130,"integrity":"sha512-99S3auRKTZksMKnzpkR3lSTqN1NfdHHG8ODw4x0+ylp/6sj3ey2/Qg8dP2tYTDie3K2kLnzOzkZ7PTzZNcnAHg==","signatures":[{"sig":"MEQCIHg97KpTn+TMWfOOFOUaXUgywA18ldBtC4IwonPs+HViAiBJaCrNFPNyZBlbJ27PYB5sJlmJYgAit7Wy45p063IWPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1103207},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b9ccb7ba866b3972eb90cc42e5368678185ca821","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.8.2_1786138003294_0.8602399516131283","host":"s3://npm-registry-packages-npm-production"}},"1.8.3":{"name":"signalk-questdb","version":"1.8.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.8.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"6579e034e1493f16396edda61f34f4d89033815b","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.8.3.tgz","fileCount":130,"integrity":"sha512-RH1h/9p9o8OB4rXqDuUjBKn6jpC4CuBXW/9rYgstC5SOPXYXnyIZW7kRmY8SVisefZBxmFZKYLqQw4JOEobH7A==","signatures":[{"sig":"MEYCIQCxgx++Ql8QvMYZDnvSkK8NM8oP1PiZ1Ms62NsQs6PrrQIhAIJBW0bHqEm3GYwRF9G47uDMtGu0oqotUPyYp4LQgvw6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1130770},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"9012f783ae06456740e365a55350616ecdc42915","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.8.3_1786145954545_0.6679155803380921","host":"s3://npm-registry-packages-npm-production"}},"1.8.4":{"name":"signalk-questdb","version":"1.8.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.8.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"f13182fc7416a4cfde377538a35d34aecbda0534","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.8.4.tgz","fileCount":130,"integrity":"sha512-eE5e/BjUa2owsBRLAQ8aTrgO9NR2ijH+2ku2egSHTfc6oF2T4WJo7sVOcBo5B9yHwSufu0t6h7dIjIuogBWZ4Q==","signatures":[{"sig":"MEQCIArLt5Mm4hzbQ173ZF/4cbfR5aTHuN3mWjxd24/Qx9kIAiBD16l3ZNA/FGtFaHhIzmU7sQaEJ5HNyb3cSJmuhpOJ/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1131393},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"35e67a9fa26799878ca8ff4eeea101bd72552cd0","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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 && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.8.4_1786208088352_0.6593775427363509","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"signalk-questdb","version":"1.9.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.9.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"7db723080fd890b9ef0af3bff44ed391f23329da","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.9.0.tgz","fileCount":130,"integrity":"sha512-REMhjmixqJ9CML+/dS3kSsQcwGBlSSUlSi60nQnkSi9phpzC+0SioOQm2xXpWaid2JkOCLM5i6b3dRdcdiCnNg==","signatures":[{"sig":"MEUCIQD3G2qvrBPOyGtBHylq+u6z99sgjl9ZnAaUfStMG6/SuQIgZ74+LIj4S3lWmQ1DVS4IyZaugWFKI9Vl5U6ymaemSTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1181231},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ad9ba0c1d035216396066b71a5587f4ee8323a92","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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 && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.4.3"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.9.0_1786397979931_0.784624125431358","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"signalk-questdb","version":"1.9.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.9.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"a1a716c063fda306d730bb9073980948f7780b5b","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.9.1.tgz","fileCount":130,"integrity":"sha512-4atyHoDVKIm+Sc44DZpQMhTpQJuDGjuWTyKnZfwuS95FQ8/bQlEX0v+oLsIrz0j2XjRdnsQlGo9L3Nr+YV8XGg==","signatures":[{"sig":"MEYCIQDajC4bJ6VzutkahqlSfvH8vZ+f5lrPg0wxfh3AAQrkGAIhAMblCOUMxEWw+nxmNXjy4yhaoykvgRVETTknhHbka8NZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1232314},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8627b56c510b37027338ea82840e36d0dd92bc9c","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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 && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.16.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.18.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.4.3"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.9.1_1786648255845_0.37352714284309485","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"signalk-questdb","version":"1.9.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"MIT","_id":"signalk-questdb@1.9.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"61f4587f8e1435ecde43fd8512b218803df1a1fa","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-1.9.2.tgz","fileCount":130,"integrity":"sha512-8KvEN9FDr0CA3Nlfv7aZtP7A61Wzl6NT2dmU0SuyNzZk9rahyoObfZFbIrz91sHx2X6b89jqlKiwsE+MpCnE8Q==","signatures":[{"sig":"MEQCIE73BvXKOdsGRpD/imQk66P65YXWwTKlGk0Ln67qGr9VAiAnIWDE9KriMSyMsiucY6QPOjeUYCAndR9OwaXMVZ9M0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1237506},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"0b3fa3250b8459d01eec087f22f6e15d8abd616b","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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 && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.4.3"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_1.9.2_1786736866154_0.9296356401510977","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"signalk-questdb","version":"2.0.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.0.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"509619435cc99c043cd3e8bfc23d5a913a494d2c","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.0.0.tgz","fileCount":132,"integrity":"sha512-buFHksJbXuQIGcLV5pIOgwBVGDa8XcI0f24JblnVk5bOQIB2wwZfD9Q7D30vmS1b4tjBrqLjb3XP7RcxcuAvRQ==","signatures":[{"sig":"MEUCIQCsOfpaY03iASRAFxC8/W8ulKMN+6a924I5itSqMm0KYwIgPF52Wjx73xW9J7S4KhlUyO9Wvb1dzj6cnPu44MnjBoE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1243925},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"cde40b42fbf3700d76c8c2e8a26d7c331d280edb","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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 && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.6.1"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.0.0_1786900023996_0.8101437137009486","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"signalk-questdb","version":"2.0.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.0.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"cac0517eeb6f7a480b4dc7885ce5617a11179bf6","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.0.1.tgz","fileCount":132,"integrity":"sha512-a/Yn20yJp2120REs3WDlroex97XRA+Eg783vald9aVqpUREWkTUaIRjPjmBuX4jwudAZ8qYlIgIo7YWzSrME2w==","signatures":[{"sig":"MEUCIGkDqwI65wkc6KN0YnhpAcq7xnBH8AAKn5I/J5aCl3VXAiEAzzideJGhCjwsM7/kHA2y9pBI4hSlUrAXK4nCgFX2AdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1243486},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"8340bb03625325d88264874f3b9a20e75c22415b","scripts":{"lint":"eslint --fix","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","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 && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.6.1"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.0.1_1786945397977_0.6237276087751491","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"signalk-questdb","version":"2.1.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"26b411cf55a335420c0232b43b66ee91a2a43978","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.0.tgz","fileCount":147,"integrity":"sha512-fl3Ht/Mhpl33iSb6j/+fwWuvqqQKH0gkOQ3oEo9Yx9PTqZs2fOkOPICVxY2L9vIWNfb78rUuwLhi1yU5RLy0mg==","signatures":[{"sig":"MEYCIQDKIG9ZzONwSgARcZiyJv7f5XjlmDSnc4WtJZjX6MnElgIhAJEs2Kgk1Fa8NCmXg46H14p5HvC9C7UinIjnCSF7axyS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1561880},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"58b06379f5914d14d97911b4fc40b84699a3a3f1","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.0_1787178725130_0.7152789183981916","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"signalk-questdb","version":"2.1.1","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.1","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"095d3290fb171fa812c584c59915aaf08082b53d","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.1.tgz","fileCount":90,"integrity":"sha512-gH7fFNpc7dTlH1GtviHDo3KSfXifWygz/I8JAWC/kLL24wwWvAuVHmL7sDdP1bymTRKrjOig016DKg0OCY5Cjw==","signatures":[{"sig":"MEYCIQCaabWGRI2+rL20XMpQDd8STqws+2OVmvRHKEppcGECzgIhAKjwgm+gDzXjOYjBg+xiQGddF6sXQOry0Bri0TdCCXo2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":955139},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b11db9ca689bbe6a510fb6a9ba973b407d80940c","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB History","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.1_1787251903346_0.6601339118095415","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"signalk-questdb","version":"2.1.2","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.2","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"f41a406390c40ab3c390dd9a24964e610ca6fa26","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.2.tgz","fileCount":90,"integrity":"sha512-7cYBiU1CmfZS93o6seWqfsgFyi3dZUnDatTmjzb+xiyBkqBcRsxs3zsWo16E4gzO76/xh8ESRyV71a8zvTKXaQ==","signatures":[{"sig":"MEYCIQCTc+S3thx7/hK9xb+8C+g/88nKUj+W8uzQtuV08DFcQgIhAJJnq2ZZ4AEcbkO55W5gV41cSxTJOOZ2E6y0Ee7ngkNn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHr+ioAlxSm44O39CS+Y41ljSpd1zDUeJ0QS0Tw29evyAiEAkUkQuZhypzLy75bYAN4DXrxu6iedYBr2OyiKyU688II=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":956619},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"830d17b87950568737a30fd251b6487d91239681","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.2_1787285232132_0.4096724630989981","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"signalk-questdb","version":"2.1.3","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.3","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"b44fd6b896c88acad468e1caccd730f39a2fe10f","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.3.tgz","fileCount":90,"integrity":"sha512-OmYutzbxgbtPwnXGriljO8165pYR97UsDwkGZ5EafNaw3ZBwNEvIUF19ObeTf8S3cVKUOfTOETqXi/XCklbHtw==","signatures":[{"sig":"MEYCIQD1ivMXemtoN0gZtLK/WggTTBib344P1lL/iYTeVcY1OAIhAL7LPoWXdZUkUMJEUIcWmWUxrr2VyUXBUuGjtg1kB8We","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCNCsEBI240BewamUm35OZZdVzrDxXg4+YM3KiHjXO76AIgW0JmZUtJrcsgfPECT9MLASIYCrdDXoKhp78ZGh1wYBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":962531},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ea5edea2c2a91dc13272570f937d38ffa7417b24","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.3_1787428295067_0.1153453764974195","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"signalk-questdb","version":"2.1.4","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.4","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"efa24dbd35ebdb41d2fed937da956809b19104b0","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.4.tgz","fileCount":90,"integrity":"sha512-LnowM6KKmyVGZghhATKFnk06jo36JcEt8RzYFTngGFq22s7fL2/Ca9ePmEKiYHP7YPu2x2+gk83aEx86zj581A==","signatures":[{"sig":"MEYCIQC3jZUvTjVxcmYhb/UmQ347bCy8ICr+3C1vREzb0vtRKAIhAIX0Fl0DIgeqT3jBb7kXtPW56GSUb/PA/FsGASjl/kZR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFNCkz6TyDlP0X6phEKTa96LpnG7yHKN7Z4pwPhxznzNAiBOjaOuqPCmhWtQqYbE0vveNOoP2bphKKkK5cGjq0+3Ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":967526},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b4d220ee803fe24c78cba6d55e5c1baadb1b7631","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.17.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.19.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.4_1787947565600_0.060304473262814406","host":"s3://npm-registry-packages-npm-production"}},"2.1.5-beta.0":{"name":"signalk-questdb","version":"2.1.5-beta.0","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.5-beta.0","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"c9f433fa408621544d405b07f561600d36ec272d","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.5-beta.0.tgz","fileCount":100,"integrity":"sha512-C0+UsQ0rqvI8gW1jT/MWy+hJBEIJdg+vTybrUsqlER3fxc3dyyvaXxpGmYJFmpTCj2jNJgqh7ufixPNlkFKY8g==","signatures":[{"sig":"MEQCIHt5PBClV50RorqS1zFHuslvHXIO01l+WZsfJZvCMosBAiA2jQqUV0KTzhCf0tYJvuDXuXEADtVftIkb2ZMrnlC6UQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDRIiqD+fcX2pSFsj134/7PilpsuWdnhO8Mq/568M2/PAiEAsOKVzRcOePN4OnefhGY0VQ35IB1QKcb+2e/a7+R2gBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.5-beta.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1139079},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"d48273b23353c4405b5b6d6c30446b2e399ef921","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.5-beta.0_1789724648139_0.13958825935851005","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"signalk-questdb","version":"2.1.5","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.5","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"e5ecafd7aa4944a7d4e672e6ea637b65b32b19f5","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.5.tgz","fileCount":102,"integrity":"sha512-H0ADl3CYMIIw8+a8uEZW5LyuqHhZWo2vHSiecO3AAVdaekA+7TwU0I0iYFF/VR6Bd8mqOA1V3rz3U0ObxssrYQ==","signatures":[{"sig":"MEUCIQCc0vvep3nmorZ5uz6MK5zZu9FljKGPnAMveIEjPCF+XwIgb4Ov6+/g9xYvr1giQmoFdnUEBZFNL2XAYZTLEWsNfrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCT1y+Ci4+hoMo5xX482J9uebvY5mO96tfKVX6a6KkMJwIgfYWiaMv364+yt3Cb6un/q9HSQEqgAgmpBjCg2z3hZ/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1143399},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"4ce77caf74b7b7eaf8c750fd878341185f5cad77","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.5_1789749971556_0.4421316859031097","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"signalk-questdb","version":"2.1.6","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.6","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"59c92a19a103bc5d4aa9e0e8fa3ee1b499db5510","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.6.tgz","fileCount":105,"integrity":"sha512-oLRfzRartrnw72ldoK6JTbDqkS0OLVfRjBtVEToHzE2flV3Kkjv7gDPYBCWdGt4n0AjZcZPVyE6p7LvmFpG3iQ==","signatures":[{"sig":"MEYCIQCXJtUCtf4JbbYk6SR+ZQeTT7r7Fak6r/mlwjAvZaO3bAIhAO1LRwL68v1NNhaSeWCcrPsrv00utjaVFwo8C3/pdDA1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC8pBfEUwtOCbEf5Rc4ogCMgsdghPfn8ebo/ZNvLuUcPAIgajtNjfCbME80FimzwAMruO/2t8eYbIyjXmMkCbk5vFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1151452},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"61859ac6b08dc6088401c33f0b3ed9d84074c94f","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.6_1789848283433_0.6427687412996796","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"signalk-questdb","version":"2.1.7","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.7","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"98d1e5fa1e53fecfb5005286aad521905befb37c","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.7.tgz","fileCount":104,"integrity":"sha512-FfEDgQh4nWphB64KX3sr3rTf+g5ODxs/B8hOY2NzYF06SfQ10BZQQJVmK1Wc4gjrbJ5/9cdJmGVgYtTCqlHU6g==","signatures":[{"sig":"MEUCIGZyMYzEkF2exf6ZzceUSQOXydWhh5H4iu2+giAAwU3XAiEArzam2ZhpjLTyvmRyz+fB4dtx6tNygVKNo75y6Ek2rEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDjzYPLAZ35sDDuJGD6AVHeMC0LRNivT1DZ9ZZ6fm1eswIgL8nLGSPT1HraBae2FuEUSpbfGk7WluewxvPv41eHtlM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1150673},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"bc7bc17e278f5e246f57ae685413fbdcf7f9c85f","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.7_1789849791034_0.35050143004332823","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"signalk-questdb","version":"2.1.8","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.8","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"dfc5252ef520feef6b90cd422993182d8df6b943","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.8.tgz","fileCount":104,"integrity":"sha512-UMX8YrOYM827EVe/Sw8BB0GkZogtxjgCWFpPt9mGnUZp9j6zscVViDM9a7IPOVzGh0JTo4PlXY4lt/6tWxnBpw==","signatures":[{"sig":"MEQCIBPe56MvZM8JPMDuJcJiq2CQDSpHKjS4a1kO1K7Wztu7AiB00gvtuYLiHkV21mO7ySoATjstO3PzxJ5dhV2vnF2ywA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDojvj5SoMKcHE0bQZIn+QAKlQBzHd1/kLT+GZF/P8vUgIhANhtC+AG1OG1ergRqneYeIfV/xn7K5jQSCJr+7y7Y5+Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1156241},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"606f48881df3df30d585c1735965ce486cfeb8f7","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.8_1789857782495_0.7256948803126049","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"signalk-questdb","version":"2.1.9","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.9","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"3bb76ad4f333fe018dc76399e33fdea7bf05eb1b","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.9.tgz","fileCount":104,"integrity":"sha512-1JrVMSpoWgLjyOb6g8JScgc1rHvtkIDY3X/Xt2S+lo/cE0OeSishEE1pl7DCEDVrNRMDk8KRzdBMZQSWxv3ZZA==","signatures":[{"sig":"MEQCIH6mp/YCLDXfL4RHcwLtt8INifBWVfDuSgu/8lKqQ6QAAiAqqUL/PdetuhYdhc2rG5k8gZSvLd3QeFgnvPP6OGItrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFxOKsQLAfUcYgUWl1YjbI12YmDXX1oMcI5xofGYDW42AiBFXbqpidxORHdarjCZm9G8JJSmISvfrxtPnTBjZqZvTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1165905},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"ca10771ab47f3aa32619f8fb7a4cd81c283ac795","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.9_1789895808844_0.6796997640106213","host":"s3://npm-registry-packages-npm-production"}},"2.1.10":{"name":"signalk-questdb","version":"2.1.10","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","_id":"signalk-questdb@2.1.10","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"homepage":"https://github.com/dirkwa/signalk-questdb#readme","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"10470aa60370ed75539b84f382a6712ab0f3e530","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.1.10.tgz","fileCount":107,"integrity":"sha512-57XpBhLVUzdMkZyPSRnIa11ndHpGjU7ToOacnzEdF0WRoD+rt6okY0hhKS1Y1v9b0Mh4fbxmZ3WGD0CPatNvjg==","signatures":[{"sig":"MEUCIQCbzq+a6LOAkF7PUTl6ivuUkGr0QPr8xW0L9qpBkgE2yAIgYaieiaQks1RhZ1cfGZic1Pbus1T0r2JDXDggm1LIf1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCgJkpW/Ju4PHDVna2VCoaQ2wPt7+Wa0a9+ox1O/a0PLwIhAIcvzicUGQRlxRmJTEJrZZ4G1Qt8is86vBYOcidqFE4b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1177748},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"d67b7477079edc802e4a02bd1594d1e90c5b0f43","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"_nodeVersion":"24.20.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"tmp":"tmp/signalk-questdb_2.1.10_1789920276946_0.5704535217522408","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"_id":"signalk-questdb@2.2.0","bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"dist":{"shasum":"58badb634950bc66dc3def815a0e5fb14d5ffc37","tarball":"https://registry.npmjs.org/signalk-questdb/-/signalk-questdb-2.2.0.tgz","fileCount":110,"integrity":"sha512-cJfamIigY1bTmrYKgd31G4ZHam7lRRvVRF38HEuVro8h+GHSHXz2rAnL0Hi6CyHIAbBa+FB5WQeIBo/E4brHEQ==","signatures":[{"sig":"MEUCIH95eYre9eQGdAbvMGmg6l+dRczpw00eg2rdWJ1QvkVVAiEAyshBTIAaqlFtEfIBwyHut6hoyKndikC67r2CqjqeL+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB+FMxAnChHmW2UDtGeU7GVN+S79NlszsNF7MPLHrq3IAiA0eIwVboSrbUHZyA7PahJVMW19Y+l9FuD8mF1YIGdQ0w=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/signalk-questdb@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1210195},"main":"dist/index.js","name":"signalk-questdb","type":"module","types":"./dist/index.d.ts","author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"engines":{"node":">=22"},"gitHead":"9405a980b34f20cd2f554e2c65c019b29f92cffc","license":"SEE LICENSE IN LICENSE.md","scripts":{"lint":"eslint","test":"node --test 'dist/test/**/*.test.js'","build":"tsc && npm run typecheck:panel && vite build","watch":"tsc --watch","format":"npm run prettier && npm run lint:fix","ci-lint":"eslint && prettier --check .","lint:fix":"eslint --fix","prettier":"prettier --write .","build:all":"npm run build && npm test && npm run test:panel","test:panel":"npm run build:panel-test && node --test \"dist-panel-test/src/test/panel/**/*.test.js\"","build:config":"vite build","prepublishOnly":"npm run build","typecheck:panel":"tsc -p src/configpanel --noEmit","build:panel-test":"tsc -p src/test/panel/tsconfig.json"},"signalk":{"appIcon":"app-icon.svg","requires":["signalk-container"],"displayName":"QuestDB ORIGINAL","screenshots":["./doc/screenshots/signalk-questdb-1.png"]},"version":"2.2.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fd0bb26a-83bb-4d99-80e4-52b2d055234b"}},"homepage":"https://github.com/dirkwa/signalk-questdb#readme","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"_npmVersion":"11.19.0","description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","directories":{},"maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"typebox":"^1.3.11","minimatch":"^10.2.3","@js-temporal/polyfill":"^0.5.0","signalk-container-helper":"^0.11.0"},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^2.7.0","vite":"^8.2.1","react":"^19.2.4","eslint":"^10.2.0","globals":"^17.4.0","prettier":"^3.9.0","react-dom":"^19.2.8","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^22.0.0","@types/react":"^19.2.18","@types/express":"^5.0.0","@types/react-dom":"^19.2.4","typescript-eslint":"^8.58.0","@signalk/server-api":"latest","@vitejs/plugin-react":"^6.0.5","eslint-config-prettier":"^10.1.8","@module-federation/vite":"^1.20.4","eslint-plugin-react-hooks":"^7.1.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/signalk-questdb_2.2.0_1790275781928_0.16865302096914947"}}},"time":{"created":"2026-04-05T01:18:54.454Z","modified":"2026-09-24T18:49:42.448Z","0.1.0":"2026-04-05T01:18:54.729Z","0.1.1":"2026-04-05T04:11:37.517Z","0.1.2":"2026-04-05T22:52:15.822Z","0.1.3":"2026-04-06T03:51:24.300Z","0.1.4":"2026-04-06T16:29:46.618Z","0.1.5":"2026-04-07T16:21:17.807Z","0.2.0":"2026-04-26T21:45:09.492Z","0.2.1":"2026-05-08T19:19:02.805Z","0.2.2":"2026-05-08T20:47:37.421Z","0.3.0":"2026-05-11T22:56:21.482Z","0.4.0":"2026-05-13T05:09:25.980Z","1.0.0":"2026-05-19T02:57:32.854Z","1.0.1":"2026-05-21T15:06:42.944Z","1.1.0":"2026-05-25T04:48:13.797Z","1.1.1":"2026-06-03T02:03:54.907Z","1.1.2-beta.0":"2026-06-17T22:15:41.807Z","1.1.2":"2026-06-17T23:23:19.162Z","1.1.3":"2026-06-17T23:39:38.339Z","1.1.4":"2026-06-18T16:47:33.896Z","1.2.0":"2026-06-18T22:24:17.357Z","1.2.1":"2026-06-19T02:31:42.413Z","1.3.0":"2026-06-23T05:19:50.813Z","1.4.0":"2026-06-25T21:25:27.552Z","1.4.1":"2026-06-28T22:24:24.315Z","1.4.2":"2026-07-03T12:53:59.049Z","1.5.0":"2026-07-04T16:36:46.792Z","1.5.1":"2026-07-05T21:01:08.528Z","1.5.2":"2026-07-15T07:32:43.520Z","1.5.3":"2026-07-18T18:43:31.903Z","1.5.4":"2026-07-24T01:34:30.894Z","1.5.5":"2026-07-30T23:01:26.065Z","1.5.6":"2026-08-06T00:01:53.772Z","1.6.0":"2026-08-06T13:30:56.027Z","1.6.1":"2026-08-06T14:58:08.684Z","1.7.0":"2026-08-07T15:28:07.790Z","1.7.1":"2026-08-07T16:23:44.600Z","1.8.0":"2026-08-07T19:17:38.958Z","1.8.1":"2026-08-07T19:59:51.831Z","1.8.2":"2026-08-07T21:26:43.556Z","1.8.3":"2026-08-07T23:39:14.782Z","1.8.4":"2026-08-08T16:54:48.509Z","1.9.0":"2026-08-10T21:39:40.097Z","1.9.1":"2026-08-13T19:10:56.011Z","1.9.2":"2026-08-14T19:47:46.327Z","2.0.0":"2026-08-16T17:07:04.156Z","2.0.1":"2026-08-17T05:43:18.156Z","2.1.0":"2026-08-19T22:32:05.290Z","2.1.1":"2026-08-20T18:51:43.576Z","2.1.2":"2026-08-21T04:07:12.232Z","2.1.3":"2026-08-22T19:51:35.171Z","2.1.4":"2026-08-28T20:06:05.714Z","2.1.5-beta.0":"2026-09-18T09:44:08.236Z","2.1.5":"2026-09-18T16:46:11.623Z","2.1.6":"2026-09-19T20:04:43.526Z","2.1.7":"2026-09-19T20:29:51.126Z","2.1.8":"2026-09-19T22:43:02.587Z","2.1.9":"2026-09-20T09:16:48.924Z","2.1.10":"2026-09-20T16:04:37.058Z","2.2.0":"2026-09-24T18:49:42.057Z"},"bugs":{"url":"https://github.com/dirkwa/signalk-questdb/issues"},"author":{"name":"Dirk Wahrheit","email":"dirkwahrheit@gmail.com"},"license":"SEE LICENSE IN LICENSE.md","homepage":"https://github.com/dirkwa/signalk-questdb#readme","keywords":["signalk-node-server-plugin","signalk-plugin-configurator","signalk-embeddable-webapp","signalk-category-database"],"repository":{"url":"git+https://github.com/dirkwa/signalk-questdb.git","type":"git"},"description":"QuestDB history provider for Signal K — replaces signalk-to-influxdb","maintainers":[{"name":"dirkwa","email":"dirkwahrheit@gmail.com"}],"readme":"# signalk-questdb\n\nQuestDB history provider for Signal K — a drop-in replacement for\nsignalk-to-influxdb and signalk-to-influxdb2.\n\nRecords every vessel's data in [QuestDB](https://questdb.com), running as a\ncontainer managed for you by\n[signalk-container](https://github.com/dirkwa/signalk-container), and serves it\nback through Signal K's v2 History API and the legacy v1 playback API. Existing\nInfluxDB history can be imported.\n\n## Features\n\n- **Managed QuestDB** — the container is pulled, created, updated and\n  resource-capped for you; or point the plugin at an external QuestDB\n- **v2 History API** — `getValues`, `getPaths`, `getContexts` with every\n  aggregate method, per-source reads (`path|sourceRef`) and per-source splitting\n  (`sourcePolicy=all`)\n- **v1 playback API** — WebSocket replay at configurable speed\n- **Recording controls** — per-path sampling rates, include/exclude filters with\n  globs, own vessel and AIS targets separately, retention by days, LZ4/ZSTD\n  on-disk compression\n- **Startup restore** — AIS targets back on the chart right after a server\n  restart, in their ship-type colour\n- **WAL watchdog** — a table QuestDB has silently stopped applying is detected,\n  alerted, and resumed\n- **InfluxDB migration** — detect InfluxDB 1.x/2.x, pick a bucket, a vessel and\n  a range, import with original timestamps; resumable\n- **Export** — Parquet or CSV by date range, and a per-table full export for\n  backup tooling\n- **Console webapp** — QuestDB's own SQL console inside the Signal K admin UI,\n  admin only\n- **Config panel** — status, row counts, one-click QuestDB updates, and every\n  setting in one place\n\n## Getting started\n\n### Requirements\n\n- Node.js 22 or newer\n- QuestDB 8.1 or newer (resolution queries use `SAMPLE BY … FROM … TO`). This\n  applies to an external QuestDB and to a pinned **QuestDB image version** in\n  managed mode; `latest` always qualifies\n- Signal K server — 2.31 or newer to choose the default history provider in the\n  admin UI\n- For managed mode: the\n  [signalk-container](https://github.com/dirkwa/signalk-container) plugin, and\n  Podman 5.4 or newer (what Debian 13 \"trixie\" ships) or Docker.\n  signalk-container 1.29.0 or newer is recommended; the plugin runs with 1.14.0\n  or newer, but older versions lose parts of it — below 1.19.0 the Danger zone\n  cannot delete data kept on a named volume, below 1.26 the macOS open-files\n  problem shows as a generic error, below 1.29.0 a container the runtime refuses\n  to recreate is not reported (see Troubleshooting). On rootless Podman below\n  5.5 the plugin's open-files request is inherited from the podman service\n  rather than granted per container\n  ([containers/podman#25881](https://github.com/containers/podman/issues/25881));\n  signalk-container accounts for this.\n\n### Install\n\n1. Install **signalk-container** from the App Store and enable it (skip this for\n   an external QuestDB).\n2. Install **signalk-questdb** and enable it. On the first start the plugin\n   pulls `questdb/questdb` at the tag chosen under **QuestDB image version**\n   (`latest` by default), creates the container — named `signalk-questdb` behind\n   the runtime's prefix, `sk-` unless configured otherwise — with its ports\n   bound to loopback, and starts recording. The data lives under Signal K's\n   configuration directory, in `plugin-config-data/signalk-questdb` (see Data\n   storage).\n3. Open the plugin's config panel: the status card shows **Running** and\n   **Recording**, the total row count and the paths active today.\n\nFor an external QuestDB, switch **Manage QuestDB container** off and enter its\nhost and ports.\n\n### Make it the history provider\n\nWhich registered provider answers `/signalk/v2/api/history/` is the operator's\nchoice: pick it once under **Data → Preferences → Default History Provider**\n(server 2.31 or newer); the server persists it as `historyApi.defaultProvider`\nin `settings.json`, and it survives restarts and plugin load order. If no\ndefault is configured, the server uses whichever provider registers first.\nVersions 2.0.0 and earlier asked the server to make QuestDB the default on every\nstart; that is gone as of 2.0.1 — it could silently override a default you had\nchosen, and on servers with security enabled it never worked at all.\n\n## Configuration\n\nThe config panel groups the settings as: the **status card** (running state,\nrows, active paths, restore outcome, WAL state), the **update check** and\n**image version** picker (latest, pre-releases and the last three stable\nreleases), **Connection**, **Recording**, **History**, and the collapsible\n**Path filtering**, **Compression (on-disk)**, **InfluxDB Migration**, **Data\nExport** and **Danger zone** sections. The Danger zone removes the container and\nall of its data — including what Signal K's plugin uninstall cannot reach on\nrootless Podman.\n\n| Setting                       | Default      | Description                                                                                                                                                                     |\n| ----------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| QuestDB image version         | `latest`     | Image tag; the dropdown lists the latest release, pre-releases, and the last three stable releases                                                                              |\n| Manage QuestDB container      | `true`       | Let signalk-container run QuestDB; off = connect to an external QuestDB                                                                                                         |\n| QuestDB host                  | `127.0.0.1`  | External mode only; in managed mode the address is resolved automatically                                                                                                       |\n| HTTP port                     | `9000`       | External mode, or the host binding when \"Bind to 0.0.0.0\" is on; otherwise signalk-container allocates it                                                                       |\n| ILP port                      | `9009`       | External mode, or the host binding when \"Bind to 0.0.0.0\" is on; otherwise signalk-container allocates it                                                                       |\n| PostgreSQL port               | `8812`       | Host binding for Grafana/psql when \"Bind to 0.0.0.0\" is on                                                                                                                      |\n| QuestDB memory limit          | `768m`       | Hard cgroup cap on the container (empty = unlimited); the JVM sizes its heap to a fraction of it, so heap plus off-heap stays inside                                            |\n| QuestDB CPU limit (cores)     | `1.5`        | Fractional cores (0 = unlimited)                                                                                                                                                |\n| Default sampling rate (ms)    | `2000`       | Minimum ms between writes for any one path (0 = every update)                                                                                                                   |\n| Per-path sampling rates (ms)  | _(empty)_    | Glob → ms overrides, e.g. `{ \"environment.wind.*\": 200, \"tanks.*\": 10000 }`                                                                                                     |\n| Unchanged-value heartbeat (s) | `300`        | A value equal to the last one recorded is written again only this often; changes are written at the sampling rate (0 = every sample, see Change-only recording)                 |\n| Write batch interval (ms)     | `5000`       | How often buffered samples are committed — one WAL transaction per table per commit (see Performance)                                                                           |\n| Record own vessel             | `true`       | Record the `self` context                                                                                                                                                       |\n| Record AIS targets            | `true`       | Record other vessels                                                                                                                                                            |\n| Restore vessels on startup    | `false`      | Replay each vessel's last recorded position after a restart (see Startup restore)                                                                                               |\n| Restore max age (minutes)     | `9`          | Only replay values recorded within this window                                                                                                                                  |\n| Allow `sourcePolicy=all`      | `false`      | Let History API callers split a path into one column per recording source (see History API)                                                                                     |\n| QuestDB console webapp        | `true`       | Serve QuestDB's console inside the Signal K admin UI, admin only (see Console webapp)                                                                                           |\n| Retention (days)              | `0`          | Drop daily partitions older than this (0 = keep forever)                                                                                                                        |\n| Filter mode                   | `exclude`    | `exclude` the matching paths, or `include` only the matching paths                                                                                                              |\n| Path patterns                 | _(empty)_    | Glob patterns, one per line, e.g. `environment.wind.*`; empty records everything                                                                                                |\n| Compression codec             | `lz4`        | On-disk WAL segments and Parquet exports: `none`, `lz4` (fast) or `zstd` (smaller)                                                                                              |\n| Compression level             | `3`          | ZSTD level 1–22, used only with `zstd`                                                                                                                                          |\n| Container network             | `sk-network` | Shared Podman/Docker network QuestDB joins in managed mode, so the companion signalk-grafana reaches it by container DNS; host-port publication is separate (\"Bind to 0.0.0.0\") |\n| Bind to 0.0.0.0               | `false`      | Publish QuestDB's ports on all interfaces (see Connectivity)                                                                                                                    |\n\n## Recording\n\n### Schema\n\nThree tables, all with WAL mode, daily partitioning, and deduplication:\n\n| Table              | Purpose        | Columns                                                                                                    |\n| ------------------ | -------------- | ---------------------------------------------------------------------------------------------------------- |\n| `signalk`          | Numeric values | `ts`, `path` (SYMBOL), `context` (SYMBOL), `source` (SYMBOL), `value` (DOUBLE)                             |\n| `signalk_str`      | String values  | `ts`, `path` (SYMBOL), `context` (SYMBOL), `source` (SYMBOL), `value_str` (VARCHAR), `value_kind` (SYMBOL) |\n| `signalk_position` | Positions      | `ts`, `context` (SYMBOL), `source` (SYMBOL), `lat` (DOUBLE), `lon` (DOUBLE)                                |\n\nThe own vessel is stored as context `self`, whatever its identity; other vessels\nkeep their `vessels.urn:…` context. The history API translates `self` back to\n`vessels.self`.\n\n`ts` is the **server receive time**, not the timestamp a source claims. Marine\nsources carry independent clocks, and storing their timestamps makes commits\nland out of order — QuestDB then rewrites partition tails on every merge\n(observed as >3000x write amplification). Receive time keeps ingestion\nappend-only; the millisecond difference is far below the sampling resolution,\nand a device with a broken clock gets more accurate history, not less.\n\n`source` is the delta's sourceRef — which receiver produced the row. Two GPS\nunits feeding the same server interleave in storage, and without the column a\ntrack drawn from history zigzags between them. Rows recorded before the column\nexisted have `source` null; they replay unattributed and cannot be filtered.\n\n### What is recorded\n\nEvery value on the stream is routed by its type: numbers go to `signalk`,\nstrings and booleans to `signalk_str` (booleans tagged `value_kind=boolean`),\nand `navigation.position` — that path only — to `signalk_position`. A vessel's\nname, which arrives as an empty-path `{name}` delta, is stored in `signalk_str`\nunder the path `name` with `value_kind=identity`, and replayed in its original\nshape. An object value is recorded as its scalar leaves, one level deep:\n`navigation.attitude {roll, pitch, yaw}` becomes `navigation.attitude.roll` and\nso on, and another lat/lon object such as `navigation.anchor.position` becomes\n`.latitude` and `.longitude` leaves rather than rows in the track table. Nested\nobjects — notifications, resource documents — are not descended into; a value no\ntable can hold is skipped and reported in the status endpoint and the panel\nrather than dropped silently.\n\nA number that means \"no reading\" is skipped and reported the same way: `NaN`\nand `±Infinity`, and the NMEA 2000 \"no data\" marker on AC real, apparent and\nreactive power (PGNs 65007–65029). Those fields cannot encode anything below\n−2 000 000 000 W, but canboatjs decodes \"no data\" as −2 000 000 001 W, so real\nand reactive power below that floor are dropped; real negative power, such as\nexport, is unaffected. Apparent power reaches the stream multiplied by the power\nfactor, which can move the marker anywhere below zero — and apparent power is\nnever negative, so any negative apparent power is dropped. Connections using the\ncanboat WASM decoder do not produce the marker at all.\n\n**Sampling.** Each path is written at most once per **Default sampling rate**\n(2000 ms), with per-path overrides by glob for the few paths that need finer\nresolution and the many that need less. **Record own vessel** and **Record AIS\ntargets** switch the two kinds of context independently, and **Path patterns**\nexclude (or include only) paths by glob.\n\n**Change-only recording.** Most paths on a boat do not change from one sample\nto the next: a switch that flips twice a day, an energy counter at rest, a tank\nnobody is drawing from, a notification's state. Sampling alone would write each\nof them at the sampling rate forever, and those repeats make up most of the\nrows. So a value equal to the last one written for its path, vessel and source\nis skipped until the **Unchanged-value heartbeat** is due, and then\nwritten once more. Every change is written as it arrives, subject to the\nsampling rate.\n\nThe heartbeat is what keeps the gaps readable. A path that is still being\nupdated has a row at least once per heartbeat, so a longer silence means the\ndata really stopped:\n\n- **History API (v2).** A resolution bucket with no row takes the last sample\n  before it, for up to twice the heartbeat (see History API). A switch that has\n  been on for an hour reads as on for the whole hour, not as one point and\n  then nothing.\n- **Stale data.** When Signal K marks a path stale it sends `null` for it.\n  Nothing is written for the `null`, so the history shows the last value for at\n  most twice the heartbeat and then a gap. The next reading after that is\n  always written, even if it equals the one before the gap.\n- **Direct SQL and Grafana** see the rows as stored. Add `FILL(PREV)` to a\n  `SAMPLE BY` query to carry values across buckets.\n- **Averages** weight rows, not time. A bucket in which a value changes often\n  and then holds steady averages mostly over the changes; `min`, `max`, `first`\n  and `last` are exact.\n- **Startup restore** replays motion values recorded within **Restore max\n  age**. Keep the heartbeat below that, or a vessel lying still may come back\n  with its position but without its speed, course and heading.\n\n`navigation.position` is never skipped. Set the heartbeat to 0 to record every\nsample.\n\n**Batching.** Samples are buffered and committed every **Write batch interval**\n(5 s), one WAL transaction per table per commit. The buffer holds 100 000 lines;\nif QuestDB is unreachable for longer than that covers, the oldest lines are\ndropped and counted. A clean Signal K shutdown flushes first; a hard crash loses\nat most one interval.\n\n**Retention** drops whole daily partitions once they are older than the\nconfigured days; 0 keeps everything. **Compression** applies LZ4 or ZSTD to the\nWAL segments on disk (and to Parquet exports).\n\n## History API\n\n### v2 (REST — `/signalk/v2/api/history/`)\n\nRegistered via `app.registerHistoryApiProvider()`. Supports all aggregate\nmethods:\n\n| Method         | QuestDB mapping                                                                 |\n| -------------- | ------------------------------------------------------------------------------- |\n| `average`      | `avg(value)`                                                                    |\n| `min`          | `min(value)`                                                                    |\n| `max`          | `max(value)`                                                                    |\n| `first`        | `first(value)`                                                                  |\n| `last`         | `last(value)`                                                                   |\n| `mid`          | `(min + max) / 2`                                                               |\n| `middle_index` | the middle row of each bucket, by time — a recorded value, not a computed one   |\n| `sma`          | the `average` bucket, then a moving window over N buckets (`sma:N`, default 5)  |\n| `ema`          | the `average` bucket, then an exponential moving average (`ema:α`, default 0.2) |\n\nA sample for `sma` and `ema` is one row of the series the window runs over: a\nresolution bucket (its average) when the request names a resolution, a raw row\notherwise. So `sma:5` at `resolution=180` is a 15-minute moving average, on the\nsame grid as every other column in the response. An empty bucket keeps its place\nin the window: the average there is of what the window still holds, and a value\nleaves it N buckets after it arrived. `ema` carries its last value across an\nempty bucket instead.\n\nBuckets start at the request's `from` and cover the whole range, empty ones\nincluded. A bucket with no row is not always missing data. Change-only recording (see\nRecording) writes an unchanged value only once per heartbeat, so an empty bucket\ntakes the last sample before it — in every aggregate, since every aggregate of a\nsteady value is that value — for up to twice the heartbeat after the sample was\ntaken, and never into a bucket that has not started yet. At the start of a\nrange the sample comes from just before it. Past that window, and with the\nheartbeat set to 0, an empty bucket is `null`. This happens before `sma` and\n`ema`, so a held value counts as a sample. `middle_index` and\n`navigation.position` return recorded rows only.\n\nA path recorded in radians — a heading, a course, a wind angle; `units: rad` in\nthe server's metadata for the path — is averaged as a vector: `average`, `sma`\nand `ema` take the angle of the mean sine and cosine, so 359° and 1° average to\n0°, not 180°. The result keeps the path's convention, `[0, 2π)` for a heading or\n`(−π, π]` for an apparent wind angle; samples that cancel, 0° and 180° in equal\nmeasure, have no mean direction and give `null`. `min`, `max` and `mid` stay\narithmetic.\n\n`navigation.position` answers `first`, `last` and `middle_index` — each a point\nthe vessel was at. Any other method runs `first`, and the column's `method` says\nso. A text path (rows in `signalk_str`) answers `first` and `last`;\n`middle_index` and the moving averages read the numeric table only.\n\nQuery example:\n\n```http\nGET /signalk/v2/api/history/values?paths=navigation.speedOverGround&duration=PT1H&resolution=60\n```\n\nA `navigation.position` value is a `[longitude, latitude]` pair — GeoJSON order,\nas the History API defines it and as signalk-to-influxdb2 and signalk-parquet\nreturn it — not the `{latitude, longitude}` object of the data model; a bucket\nwithout a fix is `null`. The v1 playback API is unaffected: it replays deltas,\nwhich carry the object.\n\n**Limits.** A request may produce at most 1 000 000 sample buckets across all of\nits columns (range ÷ resolution × columns); a finer one is rejected with an\nerror that says so — use a coarser resolution or a shorter range. Without a\nresolution a column is its raw rows, capped at 10 000 (50 000 for\n`middle_index`).\n\n#### Reading one source\n\nAppend `|<sourceRef>` to a path to read one source's rows only (server 2.29+,\n[signalk-server#2737](https://github.com/SignalK/signalk-server/pull/2737)). The\nsame path may appear once per source, giving one column per receiver:\n\n```http\nGET /signalk/v2/api/history/values?paths=navigation.position|gps.main,navigation.position|gps.backup&duration=PT1H\n```\n\nWithout a sourceRef a path returns all sources mixed. A source-bearing column\nreports its source as `$source` in its `values` entry — the key\n[signalk-server#2817](https://github.com/SignalK/signalk-server/pull/2817)\nsettled on, and what v1 playback has always emitted — while the request side\nkeeps the name `sourceRef`.\n\n#### sourcePolicy=all\n\n`sourcePolicy=all`\n([signalk-server#2817](https://github.com/SignalK/signalk-server/pull/2817))\nasks for every source separated without naming them up front. Each path that\ndoes not already specify a source is expanded into one column per source that\nactually recorded it in range, with the source in the `$source` field of the\ncolumn's `values` entry:\n\n```http\nGET /signalk/v2/api/history/values?paths=navigation.speedOverGround&duration=PT1H&sourcePolicy=all\n```\n\n```jsonc\n\"values\": [\n  { \"path\": \"navigation.speedOverGround\", \"method\": \"average\", \"$source\": \"gps.aux\"  },\n  { \"path\": \"navigation.speedOverGround\", \"method\": \"average\", \"$source\": \"gps.main\" },\n  { \"path\": \"navigation.speedOverGround\", \"method\": \"average\" }  // unattributed rows\n]\n```\n\nNamed sources come first, sorted, so column order is stable between requests.\nRows whose source is unset — recorded before the `source` column existed, or\nfrom a delta that carried none — form their own trailing column with no\n`$source` claim.\n\n**Off by default**, behind the plugin setting that allows the policy. Expansion\nmultiplies the work one request can ask for: a path recorded by four receivers\nbecomes four queries and four columns, which on a Pi-class host turns a cheap\nrequest into an expensive one. The sample-bucket cap counts expanded columns, so\na resolution that is fine unexpanded may be rejected once expanded.\n\nTwo ceilings bound the fan-out, and a request past either is rejected rather\nthan truncated — returning some of the asked-for series without saying so would\nbe worse than refusing a request that is too broad. A single path may expand\ninto at most 16 columns: recorded by more sources in range, it fails the\nrequest, and the error names the count, the ceiling and the way out (name the\nsources with `path|sourceRef`, or ask for a shorter range). A whole request is\nbounded at 64 columns, with its own error naming the limit.\n\nAn explicit `path|sourceRef` stays a filter and takes precedence over the\npolicy, matching the upstream contract. Requests that name their sources are\nunaffected by the setting either way.\n\n### v1 (WebSocket playback)\n\nRegistered via `app.registerHistoryProvider()`. Supports playback at\nconfigurable speed multipliers using chunked reads from QuestDB. Replayed\nupdates carry the recorded sourceRef as `$source`, one update per source, so\nconsumers see the same attribution the live stream had.\n\n## Console webapp\n\nQuestDB ships its own web console — a full SQL workbench with schema browsing,\nquery history and CSV import. With **QuestDB console webapp** enabled (the\ndefault) the plugin appears in the Signal K webapp list and serves that console\ninside the admin UI, with Signal K's own navigation panel still in place. The\n**[Web Console user guide](doc/web-console.md)** walks through it with\nready-to-paste queries: speed in knots, temperatures in °C, distance per day,\ntrack export, and more.\n\n**It is admin only.** The console is proxied at\n`/plugins/signalk-questdb/console/`, and Signal K gives plugin routes an\nadmin-only default — the plugin deliberately does not relax that. A non-admin\nwho opens the webapp sees the page frame and an authorization error, never the\nconsole.\n\n**It can modify data.** Unlike the read-only `/query` endpoint, which rejects\nanything that is not a `SELECT`, the console is a real SQL client: it can drop\ntables and delete recorded history. That is the point of having it, and it is\nwhat an administrator would use it for — but it is worth knowing before handing\nsomeone an admin account.\n\nIf you would rather not serve it at all, switch the option off and the route is\nnot registered.\n\nThe console is also reachable directly on QuestDB's HTTP port. On a bare-metal\nSignal K with \"Bind to 0.0.0.0\" off, signalk-container binds it to loopback at\nthe address the status card shows (the port is the one it bound, not necessarily\n9000); from another machine, tunnel that port over SSH. It is 9000 on the host\nonly with \"Bind to 0.0.0.0\" on. In managed mode a containerized Signal K reaches\nQuestDB over the container network, so there is no host port to open unless\n\"Bind to 0.0.0.0\" is on; in external mode the console is at the configured\nQuestDB host and HTTP port, whatever the deployment. The HTTP port carries\nQuestDB's REST API and ingestion too, with no authentication; enabling \"Bind to\n0.0.0.0\" to reach it from the LAN publishes all of that, which is what the\nwebapp route exists to avoid.\n\n## Startup restore\n\nSignal K's data model lives in memory only. After a server restart every vessel\nis gone until it transmits again — for AIS that means roughly 30 seconds for a\nClass B target, up to 3 minutes for a Class A at anchor, and about 6 minutes\nbefore names arrive. The chart fills in gradually instead of showing the traffic\nthat was there a moment ago.\n\nWith **Restore vessels on startup** enabled, the plugin replays each vessel's\nlast recorded position (plus course, speed, heading and identity — name,\ndimensions and AIS ship type) from QuestDB as soon as it connects, so the chart\nis populated immediately, with each target drawn in its ship-type colour rather\nthan the default.\n\n**A restored position is where a vessel _was_, not where it is now.** Nothing is\ndead-reckoned forward. The plugin presents these values as the history they are\nrather than passing them off as live: each delta carries its original recorded\ntimestamp, so a chart plotter ages it out under the same staleness rules it\napplies to any other target, and the deltas are tagged\n`$source: signalk-questdb.restore`.\n\nValues outside the **Restore max age** window are not replayed at all. The\n9-minute default matches Freeboard's AIS expiry, so a restored target is one\nthat would still have been on the chart had the server never stopped. Raising it\nputs progressively staler positions in front of you — treat the window as a\ncollision-avoidance setting, not a convenience one.\n\nOnly navigation and identity paths are replayed, so stale tank levels and engine\ntemperatures are not resurrected as though they were current readings. A vessel\nwith no position in the window is skipped, as is one that has already\ntransmitted since startup. Restore honours the recording toggles: with **Record\nAIS targets** off, no AIS target is restored.\n\nThe config panel reports the outcome once startup finishes: **Vessels Restored**\nwith the count, or **Restore failed** if the replay could not run. Neither\nappears when the option is off.\n\n## Migrating from InfluxDB\n\nThe **InfluxDB Migration** section of the config panel copies history out of an\nexisting InfluxDB into QuestDB. It supports InfluxDB 1.x (InfluxQL, what\nsignalk-to-influxdb wrote) and 2.x (Flux, what signalk-to-influxdb2 writes).\n\n### Running an import\n\n1. **Detect** finds an InfluxDB on `localhost:8086`, or enter its URL —\n   `localhost` or a loopback/private-network IP literal; anything else is\n   refused.\n2. Supply credentials — an API token and organisation for 2.x, or\n   username/password for 1.x if authentication is enabled — and list the buckets\n   (2.x) or databases (1.x). Credentials are used for the import only, are never\n   written to the plugin's settings, and travel in the request body rather than\n   the query string (Signal K logs full request URLs).\n3. Pick a bucket. The panel then lists the vessels it holds (**Listing the\n   vessels in the bucket…** — on a large bucket this takes a while) and shows\n   **Which vessel in the source is this one**: that vessel's history is imported\n   as `self`. The choice is made for you when the source says:\n   signalk-to-influxdb2 tags its own vessel's points with `self=true`, so that\n   vessel is preselected and marked \"(recorded as the own vessel)\" — as is the\n   one matching this server's identity, marked \"(this server)\", or the only one\n   there is. A signalk-to-influxdb 1.x source carries no such tag, so there the\n   choice is yours whenever it holds several vessels and none is this server's\n   identity — the usual case, since the recording server's identity is usually\n   not this one's (a new install has a new one). Tick **Also import the other\n   vessels (AIS targets), each under its own context** to bring those along; the\n   history API serves them as it does live-recorded targets.\n4. Pick a time range and **Start import**. Progress is polled while it runs;\n   **Cancel** stops it, keeping the saved position (see Resuming).\n\nAfter the import, check the row counts on the status card or in the console\n(`SELECT count() FROM signalk WHERE source = 'influxdb-import'`), make sure this\nplugin is the default history provider (see Getting started), and disable the\nInfluxDB plugin once nothing else needs it — a consumer such as a track viewer\nreads whichever provider is the default, not both.\n\n### How the data maps\n\n- A measurement with the conventional `value` field becomes the Signal K path of\n  the same name. So do the typed fields signalk-to-influxdb 1.x writes\n  (`stringValue`, `boolValue`, `jsonValue`). A measurement with any other named\n  fields becomes `measurement.field` paths, so two fields cannot overwrite each\n  other.\n- Numbers go to `signalk`, strings and booleans to `signalk_str` (booleans\n  tagged `value_kind=boolean`). A `jsonValue` is decoded first: an object is\n  recorded as its scalar leaves, the same as live data.\n- Positions go to `signalk_position`, whether stored as a `jsonValue`\n  (signalk-to-influxdb 1.x) or as a `lat`/`lon` or `latitude`/`longitude` field\n  pair (signalk-to-influxdb2).\n- Both writers tag every point with the **context** of the vessel it belongs to;\n  the vessel you picked is imported as `self`, the others under their own\n  contexts or left out.\n- Rows keep their **original timestamps**, to the microsecond (InfluxDB stores\n  nanoseconds; QuestDB's `TIMESTAMP` holds microseconds), so imported history\n  sorts and aggregates alongside live data.\n- History is **streamed**: read in batches and written before more is asked for,\n  pausing while QuestDB catches up. Memory use stays flat however dense the\n  source is, so a large import is safe on a small board.\n- Every imported row is tagged `source=influxdb-import`, which makes it\n  distinguishable from live recording — and because the tables deduplicate on\n  `(ts, path, context, source)`, **re-running the same range overwrites rather\n  than duplicating**.\n- Anything that cannot be mapped (a gap, an unsupported value type, a\n  `jsonValue` that is not valid JSON, a latitude with no matching longitude) is\n  counted in the run's `skipped` total rather than being dropped silently.\n\n### Resuming an interrupted import\n\nA large import runs for hours. If it stops part-way — cancelled, failed, or the\nSignal K server restarted — the panel shows what was interrupted and offers\n**Resume import**, which continues from the saved position instead of starting\nagain at the first measurement. It needs only the credentials, if InfluxDB asks\nfor any: the source and range are remembered, credentials never are. Starting\nthe identical import again the ordinary way continues it too. **Discard saved\nposition** starts over.\n\nA position is saved only once QuestDB has been asked for the newest row written\nbefore it and has it — ILP gives no acknowledgment, so the plugin reads the row\nback — and once the position is about a minute old. The first keeps a stalled or\nrestarted QuestDB from letting the position past rows it never took, however\nlong the stall. The minute covers what a committed row still has to survive: a\ncrash of either process, and on a power cut the kernel's default write-back\ntiming for a QuestDB running on its default `nosync` — an assumption, not a\nguarantee, which is why an external QuestDB should run with `sync` like the\nmanaged container does (see Durability on power loss). The position file is\nsynced and renamed into place, so a power cut leaves the previous position or\nthe new one, never a damaged one; should none survive, the import starts again,\nwhich is always safe. A position is a window boundary — the import reads each\nmeasurement a window at a time, a day of source data by default — so a resumed\nimport repeats the window it was in plus up to a minute, which the deduplication\nabove makes harmless. An import shorter than a window saves nothing, and is\nsimply run again.\n\n### Imports made before 2.1.5\n\nImports from a signalk-to-influxdb 1.x database made before 2.1.5 filed every\nstring, boolean and position under a path suffixed with the InfluxDB field name\n— `navigation.state.stringValue`, `steering.autopilot.engaged.boolValue`,\n`navigation.position.jsonValue` — which nothing reads. Running the import again\nwrites them under their real paths but cannot remove the old rows: the path is\npart of the deduplication key, and QuestDB has no row delete. When such rows\nexist, the panel says how many and offers **Remove these rows**, which rebuilds\n`signalk_str` without them. Recording continues while it runs; only the swap of\nthe rebuilt table for the old one holds the writer, for a few seconds, and rows\nrecorded during the rebuild are carried across. Should recording be fast enough\nto fill the writer's buffer during those seconds, the samples it could not keep\nare counted and the panel says how many. Run the import again afterwards.\n\n## Export and backup\n\n**Data Export** in the panel, and\n`GET /plugins/signalk-questdb/api/export?from=…&to=…&format=parquet|csv`,\ndownload the `signalk` numeric table for a date range (both bounds required) as\nParquet — QuestDB's native export, compressed with the configured codec — or\nCSV.\n\n`GET /plugins/signalk-questdb/api/full-export/:table?from=…&to=…` streams one\nwhole table as Parquet, for snapshot and backup tooling that wants the full\ncontent sliced into dedup-friendly shards (kopia, for instance). Tables:\n`signalk`, `signalk_str`, `signalk_position` (`/full-export/tables` lists them).\n\n- `from` and `to` are optional but must be set together: omit both for the whole\n  table, or pass both as ISO 8601 timestamps for a half-open `[from, to)` window\n  — no row appears in two adjacent windows.\n- Repeated query parameters (`?from=A&from=B`) and empty strings (`?from=`) are\n  rejected with HTTP 400; silently downgrading to a full-table export would hide\n  bugs in the caller.\n- Format and compression follow the plugin's compression setting (LZ4_RAW or\n  ZSTD), the same as `/export`.\n\n## REST endpoints\n\nAll under `/plugins/signalk-questdb/api/`; the console is mounted beside them at\n`/plugins/signalk-questdb/console/`. Plugin routes are admin-only by Signal K's\ndefault.\n\n| Method | Path                                     | Description                                                                               |\n| ------ | ---------------------------------------- | ----------------------------------------------------------------------------------------- |\n| GET    | `/status`                                | QuestDB health, row counts, active paths, restore outcome, WAL state, unstorable paths    |\n| GET    | `/query?sql=...`                         | Read-only SQL proxy (DDL/DML blocked)                                                     |\n| GET    | `/paths`                                 | All recorded paths with row counts and time range                                         |\n| GET    | `/versions`                              | QuestDB releases from GitHub (for the version picker)                                     |\n| GET    | `/update/check`                          | Compare the running version against the latest release                                    |\n| POST   | `/update/apply`                          | Pull the latest image, recreate the container, reconnect                                  |\n| GET    | `/wal-diagnosis`                         | Suspended tables with the engine's reason and a bounded skip plan (see WAL suspension)    |\n| POST   | `/resume-wal`                            | Lossless `RESUME WAL` of the suspended tables                                             |\n| POST   | `/resume-wal/skip`                       | Guided skip of the unreadable segment — explicit, quantified, and only on request         |\n| POST   | `/purge-data`                            | Remove the QuestDB container and delete all its data (rootless-Podman-safe)               |\n| GET    | `/migration/detect`                      | Detect InfluxDB (supports `?url=` for a remote one)                                       |\n| POST   | `/migration/buckets`                     | List buckets (2.x) or databases (1.x); credentials in the body, never the query string    |\n| POST   | `/migration/measurements`                | List measurements and their field keys in a bucket/database                               |\n| POST   | `/migration/contexts`                    | List the vessels a bucket/database holds, and which is this server's                      |\n| POST   | `/migration/start`                       | Start an import, or continue a stopped one with `{\"resume\": true}`; returns immediately   |\n| GET    | `/migration/status`                      | Progress and state of the current/last import, and any stopped import that can resume     |\n| POST   | `/migration/cancel`                      | Cancel the running import; any saved position is kept                                     |\n| POST   | `/migration/discard`                     | Forget a stopped import's saved position, so the next start begins again                  |\n| GET    | `/migration/legacy-rows`                 | Count rows an import made before 2.1.5 filed under suffixed paths                         |\n| POST   | `/migration/legacy-rows/remove`          | Rebuild the string table without those rows; recording continues meanwhile                |\n| GET    | `/export?from=...&to=...&format=parquet` | Parquet or CSV export of the `signalk` numeric table (date range required)                |\n| GET    | `/full-export/tables`                    | List the tables the full-export route serves                                              |\n| GET    | `/full-export/:table?from=...&to=...`    | Stream a table as Parquet; optional half-open `[from, to)` window for slicing into shards |\n\n## Deployment\n\n### Connectivity\n\nIn **managed mode** the plugin does not need `QuestDB host` to be correct for\nyour deployment — signalk-container resolves the right address automatically,\nwhether Signal K runs on bare metal or is itself containerized:\n\n- **Bind to 0.0.0.0 = off (default).** QuestDB stays private. signalk-container\n  binds its ports to the host loopback (bare-metal Signal K) or attaches QuestDB\n  to Signal K's own container network (containerized Signal K), and the plugin\n  connects to whatever address it reports back. Nothing is exposed to the\n  network. QuestDB is also attached to the shared `Container network` so the\n  companion [signalk-grafana](https://github.com/dirkwa/signalk-grafana) plugin\n  still reaches it by container DNS. This is the recommended setup and fixes\n  connectivity for Signal K in a container.\n- **Bind to 0.0.0.0 = on.** QuestDB stays attached to the shared\n  `Container network`; the setting publishes its HTTP/ILP/PostgreSQL ports on\n  all host interfaces, using the configured port numbers. Enable this only to\n  reach QuestDB from another machine or from a Grafana running in a separate\n  Docker instance. When Signal K itself is containerized, the plugin probes\n  which address reaches the published ports — its own loopback first, then the\n  runtime's `host.containers.internal` gateway — and uses the one QuestDB\n  answers on.\n\nIn **external mode** (`Manage QuestDB container` off) the plugin connects to the\nQuestDB you point it at via `QuestDB host` and the HTTP/ILP ports.\n\n### Data storage\n\nQuestDB's data root is the plugin's own data directory,\n`<config>/plugin-config-data/signalk-questdb`, whatever the deployment. Data\nsurvives container restarts, image upgrades, and plugin disable/enable cycles.\nHow it reaches the container differs:\n\n- **Bare-metal Signal K**: that directory, mounted at `/var/lib/questdb`.\n- **Signal K in a container with its config directory bind-mounted**: the exact\n  host path of that directory, mounted at `/var/lib/questdb`.\n- **Signal K in a container with its config directory on a named volume**: the\n  volume cannot be mounted from a subdirectory, so it is mounted whole at\n  `/signalk-vols/<volume>` and QuestDB is pointed at the plugin's directory\n  inside it (`QUESTDB_DATA_DIR`). A database found at the volume's root — where\n  a whole-volume mount put it — is moved into the plugin's directory on start;\n  both are the same volume, so nothing is copied. A purge deletes the directory\n  from the Signal K process, since the runtime cannot mount the volume by Signal\n  K's path; where QuestDB's user owns it and the Signal K user cannot delete it,\n  the purge says so and the directory is deleted by hand.\n\nQuestDB's entrypoint makes its data root its own on start, so the plugin keeps\nthe one file it writes alongside — the import checkpoint,\n`signalk-questdb.influx-import-checkpoint.json` — next to the directory rather\nthan in it. A purge removes it, whether or not the data could be deleted.\n\n### Durability on power loss\n\nThe managed container runs QuestDB with `cairo.commit.mode=sync`.\n\nQuestDB's default is `nosync`: nothing on the ingest path is ever fsynced, and\ndurability is left to the OS page cache. On a power cut an arbitrary subset of\nrecent writes survives — including the case where a commit record reaches disk\nwhile the row data it describes does not. QuestDB then fails while _opening_\nthat table's partition, which suspends the table permanently: neither a lossless\n`RESUME WAL` nor a bounded `RESUME WAL FROM TXN` skip can get past it, because\nthe failure happens before any transaction is read. Repair means hand-patching\nthe commit record.\n\nWith `sync`, partition columns are fsynced before the commit record is written\nand WAL segments are fsynced on commit, so the stored state can never claim data\nthat isn't durable. The cost is a few fsyncs per commit interval — writes are\nalready batched (see **Write batch interval**), so at boat data rates it is\nnegligible against losing a table.\n\n**Running an external QuestDB?** Set this yourself in `server.conf`:\n\n```ini\ncairo.commit.mode=sync\n```\n\n### WAL suspension\n\nQuestDB ingestion is two-stage: the sequencer durably commits every batch (the\nwriter sees success), then a background job applies the transactions to the\npartitions. When that job hits an error it **suspends the table** — the\nsequencer keeps accepting rows, nothing is applied, queries serve stale data,\nand no client-visible error is raised anywhere. Left alone, recording stalls\nsilently for as long as nobody looks.\n\nThe plugin watches for this. A suspended table of its own (in external mode,\nonly the three tables above — never someone else's) is logged loudly, raised as\nthe Signal K notification `notifications.signalk-questdb.walSuspended`, and\nshown on the status card as **WAL suspended**. Two causes need two remedies:\n\n- **Transient** — disk full since cleared, out of memory, file-descriptor\n  exhaustion: a plain `RESUME WAL` replays every pending transaction,\n  losslessly. The plugin does this by itself, once per stall point; the panel's\n  **Resume** button does the same on request, and the banner clears as the\n  backlog drains.\n- **Unreadable segment** — an unclean container stop mid-write corrupts the\n  in-flight segment's files, and every apply attempt fails on them within\n  milliseconds, so a plain resume re-suspends at once, forever. The only way\n  forward is `RESUME WAL FROM TXN` past the unreadable data, which loses what it\n  skips. The plugin prepares that but never applies it on its own:\n  **/wal-diagnosis** scrapes the engine log for the real reason (the\n  `wal_tables()` error fields often carry none, and a container recreate wipes\n  the engine's memory of it) and computes the minimal skip — the first\n  transaction of the segment after the stuck one — with the number of\n  transactions and the wall-clock window of ingestion it would drop. The panel\n  shows those numbers and offers **Skip**; if the stuck segment is the newest\n  one, skipping drops the entire pending backlog, and the panel says so.\n\n### Performance (Pi and other low-power hosts)\n\n- **Default sampling rate** of 2000 ms limits each path to one write per two\n  seconds, keeping write volume modest on busy NMEA 2000 buses; per-path\n  overrides allow faster rates for critical paths\n  (`{ \"environment.wind.*\": 200 }`) while slow-changing ones stay throttled.\n- **Change-only recording** skips a value that has not changed since it was last\n  written until the heartbeat is due. Paths that hold steady — which is\n  most of them — cost one row per heartbeat instead of one per sampling\n  interval, which cuts both disk use and WAL apply work (see Recording).\n- **Resource caps** of 768 MB RAM and 1.5 CPU cores (cgroup limits via\n  signalk-container) keep QuestDB from squeezing co-resident containers like\n  Grafana, mayara, or signalk-backup. The JVM sizes its heap to a fraction of\n  the memory cap, so total footprint (heap plus off-heap) is bounded. Set the\n  memory limit to empty or the CPU limit to `0` to lift the cap on roomier\n  hosts.\n- **Worker tuning** cuts idle CPU. QuestDB sizes its worker pools from the host\n  core count and busy-polls before sleeping — sensible on a server, wasteful on\n  a mostly idle boat database. The plugin pins its worker pools down and quiets\n  QuestDB's per-commit logging, keeping the messages that matter. One caveat\n  when upgrading the QuestDB image: an unrecognised setting is ignored silently,\n  so a property renamed between releases looks exactly like one that worked.\n- **Batching.** Each commit is one WAL transaction per table, and with\n  deduplicated tables the apply cost of a transaction grows with partition size\n  — frequent tiny commits eventually outpace what a Pi can apply and recording\n  stalls. Bigger batches keep the WAL healthy; the cost is that at most one\n  interval of buffered samples is lost on a hard crash.\n\nThe console's Monitoring view flags any table whose 90th-percentile WAL\ntransaction stays under QuestDB's recommended batch size (100 rows) as **\"Small\ntransactions — consider batching\"**. `signalk_position` triggers this\nstructurally: it holds exactly one path, so its share of every commit is just\nthe handful of GPS fixes since the last one, while the other tables spread\nhundreds of paths across each transaction. At vessel data rates the alert is\ncosmetic; the numbers that matter are on the same page — **Write Amplification**\nnear 1x, **Pending Rows** 0 and **Transaction Lag** 0 mean the WAL apply is\nhealthy. Clearing the alert for the position table would need roughly 100 fixes\nper commit, a batch window in the minutes; the trade-off is up to one interval\nof buffered data lost on a hard crash, and history that is that much less live.\n\n### Grafana\n\nConnect Grafana to QuestDB through the PostgreSQL data source (user `admin`,\npassword `quest`, database `qdb`).\n\n- The companion [signalk-grafana](https://github.com/dirkwa/signalk-grafana)\n  plugin wires this up for you: it runs Grafana as a managed container and\n  reaches QuestDB by container DNS on the shared `sk-network`, so no port needs\n  publishing.\n- A Grafana **on the Signal K host** can reach the PostgreSQL port without\n  binding: with \"Bind to 0.0.0.0\" off, signalk-container binds it to loopback at\n  a host port of its choosing — `podman port <container>` shows which (the\n  container is `signalk-questdb` behind the `sk-` prefix). With \"Bind to\n  0.0.0.0\" on it is the configured port, 8812 by default.\n- A Grafana in a **separate Docker instance or on another machine** needs \"Bind\n  to 0.0.0.0\" and the host's LAN address (`192.168.0.122:8812`, say). That\n  publishes QuestDB's ports to your entire network; only enable it behind a\n  firewall you trust.\n\nExample query:\n\n```sql\nSELECT ts AS time, avg(value) AS sog\nFROM signalk\nWHERE path = 'navigation.speedOverGround'\n  AND context = 'self'\n  AND ts BETWEEN $__timeFrom() AND $__timeTo()\nSAMPLE BY $__interval\n```\n\n## Troubleshooting\n\n### 'Module \"signalk-questdb\" is not available' right after install or update\n\nRight after installing or updating the plugin, the admin UI can show\n`Module \"signalk-questdb\" is not available. Make sure the webapp is installed.`\nIt is installed — the browser tab is still running the admin UI it loaded before\nthe update, which looks for the panel bundle it knew then. A hard refresh of the\ntab (Shift-Reload) fixes it.\n\n### \"Cannot apply a change: the QuestDB container cannot be stopped or removed\"\n\nThe plugin needed to recreate the QuestDB container to apply a change — a new\nimage tag, a network or resource setting, a raised file-descriptor limit — but\nthe container runtime refused to stop or remove the running container. The\nrecreate is **deferred, not abandoned**: QuestDB keeps running and keeps\nrecording, on its **previous** configuration. The plugin reports the error\nrather than a \"Recording\" status, because the change you asked for has not been\napplied and reporting success would be a lie.\n\nThe usual cause on rootless Podman is an orphaned user namespace left behind\nwhen the Podman service restarted underneath a running container. The error text\ncarries the specific remedy; the general one is to clear the stale namespace and\nremove the container so the plugin can recreate it:\n\n```bash\npodman system migrate                     # re-attaches orphaned user namespaces\npodman ps -a | grep questdb               # find the managed container's name\npodman rm -f <name-from-above>\n```\n\nRun all three as the **same OS user that owns the container**. Rootless and\nrootful Podman keep separate container stores, so running them as root (or as\nanother user) will not find, and will not remove, a rootless container.\n\nLook the name up rather than assuming it: the plugin's container is\n`signalk-questdb` behind a prefix that defaults to `sk-` but is configurable\n(`SIGNALK_CONTAINER_NAMESPACE`), so it is not always `sk-signalk-questdb`.\n\nThen disable and re-enable the plugin, or restart Signal K. The plugin recreates\nthe container with the settings that were pending. Recorded data lives under\nSignal K's data directory, not inside the container (see Data storage), so\nremoving the container does not touch it.\n\n**Do not** mask `podman.socket` to work around this. That socket is how the\nplugin reaches Podman at all, so masking it turns a deferred recreate into a\ncontainer the plugin cannot manage in any way. (`podman.service` is the unit the\nsocket activates, and masking that has the same effect.) If the socket itself is\nunhealthy, restart it rather than masking it:\n\n```bash\nsystemctl --user restart podman.socket\n```\n\nThis error is reported with signalk-container 1.29.0 or later. On older versions\nthe wedge still happens, but appears only as a repeating drift message in the\nSignal K server log with no plugin error to go with it.\n\n### \"QuestDB keeps dropping the write connection — the container may be unhealthy or out of memory\"\n\nThis status appears when the plugin's ILP writer connects to QuestDB, gets\ndropped within a few seconds, and retries — repeatedly. It is QuestDB itself\nbeing unhealthy (typically OOM-killed and restart-looping), not a problem with\nthe plugin or with a single table. The most common cause on a Raspberry Pi or\nother low-RAM host is that QuestDB is hitting a memory ceiling. There are two\nvariants, and the cgroup check below tells them apart.\n\n**1. Is the cgroup `memory` controller delegated?**\n\n```bash\ncat /sys/fs/cgroup/cgroup.controllers\n#   ...memory...   present  -> memory delegation is available, so the cap can be enforced (see B)\n#   memory ABSENT           -> the cap is silently dropped (see A)\n```\n\nWhen Signal K's containers run under rootless Podman, the kernel only enforces a\nresource limit whose cgroup controller has been delegated to the user session.\nMany distributions delegate `cpu`, `cpuset`, `io`, and `pids` by default but\n**not** `memory`. signalk-container drops a limit whose controller is missing\nrather than failing the container, so a configured cap can silently have no\neffect.\n\n**A. `memory` not delegated — the cap is silently dropped.** QuestDB grows\nwithout bound and the host kernel's OOM killer eventually kills it under\nwhole-system memory pressure; it restarts and the cycle repeats. Enable memory\ndelegation on the host (one-time, needs sudo), then **recreate** the QuestDB\ncontainer (a restart is not enough — the limit is set at create time):\n\n```bash\nsudo mkdir -p /etc/systemd/system/user@.service.d\nsudo tee /etc/systemd/system/user@.service.d/delegate.conf >/dev/null <<'EOF'\n[Service]\nDelegate=cpu cpuset io memory pids\nEOF\nsudo systemctl daemon-reload\n```\n\n`daemon-reload` reloads the drop-in file but does not re-apply `Delegate=` to\nthe already-running user manager, so the new delegation only takes effect after\nthe **user session restarts**. On a headless box a reboot is simplest (and is\nrequired anyway if you edit `cmdline.txt` below); otherwise restart the user\nmanager with `sudo systemctl restart user@$(id -u).service` (this stops all of\nthat user's containers, so let them come back before recreating QuestDB).\n\n```bash\n# On older Raspberry Pi kernels the memory controller is off at boot; add to\n# /boot/cmdline.txt (one line) and reboot:\n#   cgroup_enable=memory cgroup_memory=1\n```\n\nAfter the session restart, recreate the QuestDB container so the cap applies.\n\n**B. `memory` is delegated — the 768 MB cap is enforced but too tight.** As the\ndatabase grows, QuestDB's peak memory (JVM heap plus off-heap memory-mapped\nfiles, which spike during out-of-order merges) exceeds 768 MB and the cgroup\nOOM-kills it. Raise **QuestDB memory limit** in the plugin config (e.g. `1g` or\n`1.5g`, or empty to remove the cap on a roomier host), which recreates the\ncontainer.\n\n**Confirm the diagnosis** (substitute the container's name if the prefix is not\n`sk-`):\n\n```bash\npodman inspect sk-signalk-questdb \\\n  --format 'OOMKilled={{.State.OOMKilled}} RestartCount={{.RestartCount}} cap={{.HostConfig.Memory}}'\n#   cap=805306368  -> 768 MB cap is in place (variant B)\n#   cap=0          -> no cap applied (variant A, or cap intentionally removed)\npodman events --since 2h --stream=false --filter container=sk-signalk-questdb \\\n  --filter event=oom --filter event=died\n```\n\n### History queries slow or timing out / \"out-of-memory\" errors with free RAM\n\nQuestDB memory-maps every partition column file and every pending WAL segment it\ntouches. The Linux kernel caps how many memory mappings one process may hold\n(`vm.max_map_count`), and the stock value on Debian, Ubuntu ≤ 22.04, and RHEL\n(65530) is far below what QuestDB recommends (1048576). A fresh database fits\neasily; months of daily partitions across the three tables — plus a segment\nbacklog if a table's WAL is suspended — can exhaust the limit. When that happens\n`mmap` fails with out-of-memory errors (errno 12) **even though plenty of RAM is\nfree**: queries error out or crawl, and the WAL apply job can suspend a table.\n\nThe QuestDB Web Console shows the same warning\n(`vm.max_map_count limit is too low`), the plugin's config panel shows a banner,\nand the server log gets a warning at plugin startup. Fix it in a shell **on the\nhost machine itself** — not inside the QuestDB container via `podman exec`: the\nlimit is kernel-global, a container cannot change it, and the QuestDB image has\nneither `sudo` nor `/etc/sysctl.d`. Being kernel-global also means this works no\nmatter how Signal K itself is deployed:\n\n```bash\necho 'vm.max_map_count=1048576' | sudo tee /etc/sysctl.d/99-questdb.conf\nsudo sysctl --system\n```\n\nThis takes effect immediately — no container or host restart needed. See\n[QuestDB capacity planning](https://questdb.com/docs/getting-started/capacity-planning/#max-virtual-memory-areas-limit)\nfor background.\n\n### QuestDB container never starts on macOS (podman machine)\n\nOn macOS the QuestDB container is created but may never start. What you see\ndepends on the signalk-container version: with signalk-container 1.26 or later,\nthe manager names the problem outright (an open-files limit the host refuses)\nand starts the container on the runtime's default limits instead, with this\nplugin's config panel showing a **\"request rejected by the host\"** banner — the\nremediation below applies unchanged. Older versions never start the container at\nall and show either a misleading **\"Permission denied\"** (the runtime's error\ntext contains \"operation not permitted\") or only a generic **\"Unexpected error.\nSee logs for details.\"** — and the container log view stays empty, because a\ncontainer that never started has no logs.\n\nThe cause is the plugin's open-files request. On macOS, Signal K runs on the Mac\nwhile podman runs inside a Fedora CoreOS VM (\"podman machine\"). The plugin asks\nfor 1048576 open files, and signalk-container normally clamps that request to\nwhat the host can grant — but from macOS it cannot read the VM's limits, so the\nfull request reaches the VM, exceeds its default hard limit (524288), and the\nOCI runtime refuses to start the container. On current Fedora CoreOS the VM's\n`vm.max_map_count` already meets QuestDB's 1048576, so usually only the\nfile-descriptor limit needs raising — but an older machine image may sit lower,\nso check it first:\n\n```bash\npodman machine ssh -- sysctl -n vm.max_map_count\n```\n\nIf that prints less than 1048576, raise it inside the VM before relying on the\nfile-descriptor fix alone (`podman machine ssh`, then\n`sudo tee /etc/sysctl.d/99-signalk-questdb.conf <<< 'vm.max_map_count=1048576'`\nand `sudo sysctl --system`).\n\nRaise the file-descriptor limit inside the VM. From a macOS terminal:\n\n```bash\npodman machine ssh\n```\n\nInside the VM, add a systemd drop-in for every user manager (the `user@.service`\ntemplate covers each user instance, including the machine's `core` user, whose\nsession runs rootless containers) and the same drop-in for `podman.service` to\ncover the rootful connection:\n\n```bash\nsudo mkdir -p /etc/systemd/system/user@.service.d /etc/systemd/system/podman.service.d\nsudo tee /etc/systemd/system/user@.service.d/nofile.conf >/dev/null <<'EOF'\n[Service]\nLimitNOFILE=1048576\nEOF\nsudo cp /etc/systemd/system/user@.service.d/nofile.conf /etc/systemd/system/podman.service.d/nofile.conf\nsudo systemctl daemon-reload\nexit\n```\n\nBack on macOS, restart the VM:\n\n```bash\npodman machine stop && podman machine start\n```\n\nand verify the new limit is grantable:\n\n```bash\npodman run --rm --ulimit nofile=1048576:1048576 docker.io/library/alpine sh -c 'ulimit -n -H'\n```\n\nThis should print `1048576`. Finally, remove the half-created container so it is\nrecreated with the full limit — the limit is set at create time, so a restart is\nnot enough:\n\n```bash\npodman rm -f sk-signalk-questdb\n```\n\nthen restart Signal K — on the next plugin start the container is recreated with\nthe full limit. (The container manager's **Start** button only starts an\nexisting container, so it cannot replace this step.)\n\nThe verify and `rm` commands run on podman's default connection — normally the\nrootless one the plugin uses. Rootless and rootful connections keep separate\ncontainer stores, so on a setup with a non-default connection add the same\n`--connection <name>` (list them with `podman system connection list`) to both\ncommands, so they hit the store where `sk-signalk-questdb` actually lives\n(`podman ps -a` shows it).\n\n## License\n\nsignalk-questdb 2.0.0 and later is **source available, not open source**. See\n[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.9.2 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"}