{"_id":"@smallwebco/tinypivot-server","_rev":"29-10308733fb78d6c8209576414ecd28c1","name":"@smallwebco/tinypivot-server","dist-tags":{"latest":"1.3.1"},"versions":{"1.0.57":{"name":"@smallwebco/tinypivot-server","version":"1.0.57","keywords":["tinypivot","ai","data-analyst","postgresql","sql"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.57","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"61a9b0d4e8dc634603870be858b7d32a09fba143","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.57.tgz","fileCount":7,"integrity":"sha512-5FxsU15LXB0dwmeMeaaAo3QpGJWZzEinBpIqMIpS+WKmFCQM3vBL6Q4Wj6ucsZX6bht7HWcn0GVbSDRZdZypOw==","signatures":[{"sig":"MEUCIDGyxknYMWu3i/GMFay9m8BKeuvCFP8HNWsVP0/v33xGAiEAusLcuR9uh32VXbZC4RrhX476tJfjyYURJJQ+oVTre2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59781},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.57.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/463ca7e82353f61159537d26af9afca0/smallwebco-tinypivot-server-1.0.57.tgz","_integrity":"sha512-5FxsU15LXB0dwmeMeaaAo3QpGJWZzEinBpIqMIpS+WKmFCQM3vBL6Q4Wj6ucsZX6bht7HWcn0GVbSDRZdZypOw==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Optional backend handlers for TinyPivot AI Data Analyst","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.57"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.57_1767474728762_0.7113281295536729","host":"s3://npm-registry-packages-npm-production"}},"1.0.58":{"name":"@smallwebco/tinypivot-server","version":"1.0.58","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.58","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"6738ffe9272eb28103c5c8cf4beb2b8d6d5b8103","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.58.tgz","fileCount":7,"integrity":"sha512-KSK2pT3Aoopuj6eUfvwWxvMHIK21NV5imJsUyxS2PwtCoMdI08VJyCAg8I6lT896XR2aOFsCs9830NpQRmYAoQ==","signatures":[{"sig":"MEUCIBTsS7ACRUbYGsZCBXQiopjGQF28MPb3NTghrtaP7pC6AiEA55wh1/mzNe73oiwbg2EvIH+N6Ooy6sqPTzlzi/n1H/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60174},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.58.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/e45cd713e11c6140101f84dabe5a92e4/smallwebco-tinypivot-server-1.0.58.tgz","_integrity":"sha512-KSK2pT3Aoopuj6eUfvwWxvMHIK21NV5imJsUyxS2PwtCoMdI08VJyCAg8I6lT896XR2aOFsCs9830NpQRmYAoQ==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.58"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.58_1767476217864_0.4478743469368436","host":"s3://npm-registry-packages-npm-production"}},"1.0.59":{"name":"@smallwebco/tinypivot-server","version":"1.0.59","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.59","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"9b273c4f6ac9d2c90dbf9ac8299a80462e481821","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.59.tgz","fileCount":7,"integrity":"sha512-JEDSfbnjxr2K5VZhH+1N3x4hNfHrWjx+YEPGRUeU9/KdMGjJMmkmP8odUeFWToEmBxrX9edyua4jXtFHU4Q3AA==","signatures":[{"sig":"MEQCIGDgEncLcYm/WXUDtCyGDjN2G4lDOjTMQ/EnGB0ROza2AiBEY68WoSeZfEMj6mXolOjjPJXptY1tNMp9X8M0whtirg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60174},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.59.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/e8e22b0738aaea016c0e086fc5b14ce9/smallwebco-tinypivot-server-1.0.59.tgz","_integrity":"sha512-JEDSfbnjxr2K5VZhH+1N3x4hNfHrWjx+YEPGRUeU9/KdMGjJMmkmP8odUeFWToEmBxrX9edyua4jXtFHU4Q3AA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.59"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.59_1767477013292_0.9173532985544217","host":"s3://npm-registry-packages-npm-production"}},"1.0.60":{"name":"@smallwebco/tinypivot-server","version":"1.0.60","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.60","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"10a10e05e387be5d841124e7b8b4645305a3eec9","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.60.tgz","fileCount":7,"integrity":"sha512-Xij7Sa6IjDIPDWd3iIqs1iXAM0IfPjiMfNC8kfpM2FjbFN0hxXFgy2zwpH+3h0AjCj1NJ9K1aPzk8VFBmssJ4w==","signatures":[{"sig":"MEQCIA9AY4LxL+QhfO2yNVcEoGKBgIshxD6abT2pnNUyrjS9AiByuTP5mUXYC8LFLQw82/tRnxGEBofjCYEEjrHYBmZv3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60174},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.60.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/33e19c8d22efca2f689ab3d3df00e7b4/smallwebco-tinypivot-server-1.0.60.tgz","_integrity":"sha512-Xij7Sa6IjDIPDWd3iIqs1iXAM0IfPjiMfNC8kfpM2FjbFN0hxXFgy2zwpH+3h0AjCj1NJ9K1aPzk8VFBmssJ4w==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.60"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.60_1767477668890_0.4731559607626774","host":"s3://npm-registry-packages-npm-production"}},"1.0.61":{"name":"@smallwebco/tinypivot-server","version":"1.0.61","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.61","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"35d8c365f96a34c8853581b343ed0b562da167c4","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.61.tgz","fileCount":7,"integrity":"sha512-t/vXTLHSTRrivyLcrVSoG9QmDOt2P0ZyV3mo5YieXdoJH5u8F77HS8CBWPq9G11ra5HmWFt+aIOc83zYOjxkMA==","signatures":[{"sig":"MEUCIQCtm0uawOB5GkLwrEWnNxDRythKAGYQr7B+DGZSHSHYtAIgahXm8g6jtgMsqfHT56kkbhsoPkV/xGPSIsNu8p2H0So=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60174},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.61.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/0cc1a77644bc07691963d1bd47ba7cda/smallwebco-tinypivot-server-1.0.61.tgz","_integrity":"sha512-t/vXTLHSTRrivyLcrVSoG9QmDOt2P0ZyV3mo5YieXdoJH5u8F77HS8CBWPq9G11ra5HmWFt+aIOc83zYOjxkMA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.61"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.61_1767478109897_0.607243771049949","host":"s3://npm-registry-packages-npm-production"}},"1.0.62":{"name":"@smallwebco/tinypivot-server","version":"1.0.62","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.62","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"078c973129acb3d72a34aa67e12d7c1b2cbb8fec","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.62.tgz","fileCount":7,"integrity":"sha512-8tZK0oDK92hMhGIEKNKoQ4ZHa0h3uKaYsdQwybV6wPTmgc1HzDwn7LXSThLHVs19TRdP579grnPfMmaG+KtVAA==","signatures":[{"sig":"MEUCIQCPQwUf17HGdXLjGskzKJTtEjerLNnqzoVAONmb00IonQIgUfGlcSED+uXS6KBKATkuUGhNBpXZ9Auhla9fD1dS/qY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.62.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/d079f6f736e41e1677b123498eb466f6/smallwebco-tinypivot-server-1.0.62.tgz","_integrity":"sha512-8tZK0oDK92hMhGIEKNKoQ4ZHa0h3uKaYsdQwybV6wPTmgc1HzDwn7LXSThLHVs19TRdP579grnPfMmaG+KtVAA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.62"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.62_1767481590680_0.12802861463358695","host":"s3://npm-registry-packages-npm-production"}},"1.0.63":{"name":"@smallwebco/tinypivot-server","version":"1.0.63","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.63","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"e71a926bcd317df995ba98d9822721f044921fbf","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.63.tgz","fileCount":7,"integrity":"sha512-YiGtcaH81PkMdbMBijaV0Qb7Adsj4wDvllOXpfPLRkfUMij92C776Iy6cZLuuspLLlsLekQMibJ8qvcqUrL2AA==","signatures":[{"sig":"MEQCIBp6SSRDjWt6Rvb/ZkOyy46fLQ1vwmoQ1V1XtV82oAhtAiBG36P80Lq92atDow7rbvmlxdXHptAi5m0W5ntuWIv/Dw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.63.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/e33a46783ace495c1e53963ceb4c0e45/smallwebco-tinypivot-server-1.0.63.tgz","_integrity":"sha512-YiGtcaH81PkMdbMBijaV0Qb7Adsj4wDvllOXpfPLRkfUMij92C776Iy6cZLuuspLLlsLekQMibJ8qvcqUrL2AA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.63"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.63_1767482144331_0.0829673647139848","host":"s3://npm-registry-packages-npm-production"}},"1.0.64":{"name":"@smallwebco/tinypivot-server","version":"1.0.64","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.64","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"9cf98f1c08ad7b02642354c694132f5e474fc1d8","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.64.tgz","fileCount":7,"integrity":"sha512-cP83uo8WaKNUJ0iygqD+SlO59XVV6ndN/+EnqZ+Ec635au1isKcKKngm1m5bcM3U+Ys9qUsDAXDuDpuutKL87Q==","signatures":[{"sig":"MEYCIQDxE/NtY5oknHTXtFEUv2jCS6DQR3aEUCdoslHSgFVRwgIhAN+a6RQbTNgLHlRqnueMcolTy6KJG4giKt/8UxEKudqD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.64.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/c6cda4baea8f285a81d9ecd80eeb1655/smallwebco-tinypivot-server-1.0.64.tgz","_integrity":"sha512-cP83uo8WaKNUJ0iygqD+SlO59XVV6ndN/+EnqZ+Ec635au1isKcKKngm1m5bcM3U+Ys9qUsDAXDuDpuutKL87Q==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@smallwebco/tinypivot-core":"1.0.64"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.64_1767482287603_0.2592614393284427","host":"s3://npm-registry-packages-npm-production"}},"1.0.65":{"name":"@smallwebco/tinypivot-server","version":"1.0.65","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.65","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"0f34f48cdc8bb41db68d1ed605518e8b881e2033","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.65.tgz","fileCount":7,"integrity":"sha512-JyyexQapIzXHWaWmYmC1rb+IUjyIXXmNvxmdJ+hNccdN9abw58KiiUMBXbfARPlpEK7jX9oB7hirQW8fcB0y4w==","signatures":[{"sig":"MEYCIQDNgnvR2RiIHUsFRQrzHvuSXVRz0/SakRxyUtpoi9EAAQIhAKGg8TEVYqezqItxP9VZe42IEIJB5CXdx74f1Gwu3a7p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.65.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/3cd6e0003dac14d4d19bdff1e36b0a16/smallwebco-tinypivot-server-1.0.65.tgz","_integrity":"sha512-JyyexQapIzXHWaWmYmC1rb+IUjyIXXmNvxmdJ+hNccdN9abw58KiiUMBXbfARPlpEK7jX9oB7hirQW8fcB0y4w==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.65"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.65_1770652115886_0.3699814471092844","host":"s3://npm-registry-packages-npm-production"}},"1.0.66":{"name":"@smallwebco/tinypivot-server","version":"1.0.66","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.66","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"a3fb66b34a196f3b80b5508c0d0f81f12d67c402","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.66.tgz","fileCount":7,"integrity":"sha512-929VZhFu9s60Y9N3pBMyNfd4vsE+C/NABXuMwktHONctq4N3NN7X4GtofPQN93nUueRG+OZx7MB78FZO46iaeA==","signatures":[{"sig":"MEYCIQDnPkzs4gCmd4Ej+d9nHazUlEsLfJtfs3BASPsFZkY/tAIhAJsMViK0WpA9HLAr/5HmrNpGoaEHa/QeD91b8wY5lFbN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.66.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/1a2cae3d6000a61800bdd0042356631f/smallwebco-tinypivot-server-1.0.66.tgz","_integrity":"sha512-929VZhFu9s60Y9N3pBMyNfd4vsE+C/NABXuMwktHONctq4N3NN7X4GtofPQN93nUueRG+OZx7MB78FZO46iaeA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.66"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.66_1770652244845_0.4490426951291766","host":"s3://npm-registry-packages-npm-production"}},"1.0.67":{"name":"@smallwebco/tinypivot-server","version":"1.0.67","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.67","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"2acc963acd032f959401ab8b0a52440e87048db9","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.67.tgz","fileCount":7,"integrity":"sha512-Nux52ReCdRCK1v0OxbJn+8OfkTaST/1ZhbC8uxYqhZ39iEhcrR+jyEGXTsMprm53R4umhj5x842DS/jQOBinlQ==","signatures":[{"sig":"MEQCIBo2CF8g+8XZ4GrpferwzYTDPf5ZPqLVIqvv8Lp3fM7GAiBgKflBviotPLVzh9vOseNtJo9Sox+xLBcGMuaf9qxE/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.67.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/62717e50a8ff4a6818c52589eb7a27bf/smallwebco-tinypivot-server-1.0.67.tgz","_integrity":"sha512-Nux52ReCdRCK1v0OxbJn+8OfkTaST/1ZhbC8uxYqhZ39iEhcrR+jyEGXTsMprm53R4umhj5x842DS/jQOBinlQ==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.67"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.67_1770652872216_0.23511274883173305","host":"s3://npm-registry-packages-npm-production"}},"1.0.68":{"name":"@smallwebco/tinypivot-server","version":"1.0.68","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.68","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"0a7864785a2b387ae8f24e0595b0aaf92733f04a","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.68.tgz","fileCount":7,"integrity":"sha512-p6duvJ5F/Uu1sFaCYKaX6aa73qFV5k0uBk+8UbwgwmyZuJYPUp6Mk9ibVNigxh4Eq/GVAGUEpsWBhjdhsxFUDg==","signatures":[{"sig":"MEUCIQC8DPykcwpGZuOrSmBcy3X10PEI/XARO2UaSDC9F02jiQIgYjeJx6GJfJ6OkydKvxpFFOk/hkdtXrMp2QRemw/1qUM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.68.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/e866552453d463dfbcc84136965233bd/smallwebco-tinypivot-server-1.0.68.tgz","_integrity":"sha512-p6duvJ5F/Uu1sFaCYKaX6aa73qFV5k0uBk+8UbwgwmyZuJYPUp6Mk9ibVNigxh4Eq/GVAGUEpsWBhjdhsxFUDg==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.68"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.68_1770821148600_0.21635392830633737","host":"s3://npm-registry-packages-npm-production"}},"1.0.69":{"name":"@smallwebco/tinypivot-server","version":"1.0.69","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.69","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"1e811c808f541d5f0349e4ac34a499cd5af17323","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.69.tgz","fileCount":7,"integrity":"sha512-3pc60XVTk+GDLXjAoven6h7jmYFjjJLXVygY9CvLTjuGsWEZl+lfavtHcuhu+Cn3nWWQpDpfdJc127xKXfukLA==","signatures":[{"sig":"MEUCIHDVM6NsJkaKdVZRI2oiY6+hXy6cB/0K1DZcoGUu7JA5AiEA/GCiRQ2fko6OAxbPFE8pn365sAWQ3EvX9plgqxQc8LM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.69.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/f200e42b16b7c1b98185c0b4c352657e/smallwebco-tinypivot-server-1.0.69.tgz","_integrity":"sha512-3pc60XVTk+GDLXjAoven6h7jmYFjjJLXVygY9CvLTjuGsWEZl+lfavtHcuhu+Cn3nWWQpDpfdJc127xKXfukLA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.69"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.69_1771188228759_0.5314472555905823","host":"s3://npm-registry-packages-npm-production"}},"1.0.70":{"name":"@smallwebco/tinypivot-server","version":"1.0.70","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.70","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"8382937ca9f4cf43602c4f075b103895e403dcf9","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.70.tgz","fileCount":7,"integrity":"sha512-ANEq+HWfPzaXrEt1PLkCchVMdCKJXULNuPYLIy/5+pJmzKSjZyzGTmiG2L3z8p4qkrDXghh8cnIHPnsSXZrCUQ==","signatures":[{"sig":"MEQCIBOk6eQFgnJz19umgpVqRp3Qf+DornlKqmoYCn/tYWd4AiA6a6qUsCGLYwkuLnJ1naesUguZbgQlvrFjBekOwHXiaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.70.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/fd2fd82410a503d78b2d0253e422c93b/smallwebco-tinypivot-server-1.0.70.tgz","_integrity":"sha512-ANEq+HWfPzaXrEt1PLkCchVMdCKJXULNuPYLIy/5+pJmzKSjZyzGTmiG2L3z8p4qkrDXghh8cnIHPnsSXZrCUQ==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.70"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.70_1771189300127_0.4489393087510667","host":"s3://npm-registry-packages-npm-production"}},"1.0.71":{"name":"@smallwebco/tinypivot-server","version":"1.0.71","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.71","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"b35848e34410f0532e559123bedb7ec724520594","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.71.tgz","fileCount":7,"integrity":"sha512-UYqMzHVnwSRuAFwwaxjD3GHjSVL9p84uq47M/TowRXuydvFQl+Qx7Staupt/QpQ2/R0xc29ghdMhULmmyw1ZQg==","signatures":[{"sig":"MEUCIEQx0JKAHhLr5P/TGh9RkW7+QU9n83MFGA/TWDzgkbmlAiEAjCNE39qzpb4J9BhPaCPXP6CfKK838HAwPOfEW9cfwSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.71.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/594a01a18fd00b07c50ed4ab6349a041/smallwebco-tinypivot-server-1.0.71.tgz","_integrity":"sha512-UYqMzHVnwSRuAFwwaxjD3GHjSVL9p84uq47M/TowRXuydvFQl+Qx7Staupt/QpQ2/R0xc29ghdMhULmmyw1ZQg==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.71"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.71_1771189831585_0.4340499040720829","host":"s3://npm-registry-packages-npm-production"}},"1.0.72":{"name":"@smallwebco/tinypivot-server","version":"1.0.72","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.72","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"e933db1a4fda85d644cea54e299591a4a43ef2e8","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.72.tgz","fileCount":7,"integrity":"sha512-dSfrOgg4xx+7N7w0m8HZInww52Vgkp4B9D47968sqc4mXEqAh61Rhk5qi7lScALQRZas8AKm82P6kgWIHbMiQQ==","signatures":[{"sig":"MEUCIF8XnxecHaiD79maOsKxL97aF8BQuhVF4oXAr5IMPa0zAiEAu98ht4wqj6zhgYmzvKVBV8uSak3xINuLWVsJZmAUOVk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.72.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/daa50e97acdf90914709730acc77aa79/smallwebco-tinypivot-server-1.0.72.tgz","_integrity":"sha512-dSfrOgg4xx+7N7w0m8HZInww52Vgkp4B9D47968sqc4mXEqAh61Rhk5qi7lScALQRZas8AKm82P6kgWIHbMiQQ==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.72"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.72_1771190250529_0.8173550973464081","host":"s3://npm-registry-packages-npm-production"}},"1.0.73":{"name":"@smallwebco/tinypivot-server","version":"1.0.73","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.73","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"25149f3cbc60dadbb8c0b26365d780f52478b080","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.73.tgz","fileCount":7,"integrity":"sha512-OR1T4zhvWvkXQTY2k181/Pv4dAePcYtPH3g7lsWS8wMU2lzJA5c4i2ElManXgMgqqUQEUjf3lMFjIE1Pc8/5/g==","signatures":[{"sig":"MEUCICH2ED2GanqGjwVdzHytgZjWnYIa66AajPXsD0HqS4zKAiEAnDJm+1RWSS97/OMtZSdgP4YbtoPro3FBFH8rk+EUmWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.73.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/5d9ee1212121700bcefcaf68cec9d744/smallwebco-tinypivot-server-1.0.73.tgz","_integrity":"sha512-OR1T4zhvWvkXQTY2k181/Pv4dAePcYtPH3g7lsWS8wMU2lzJA5c4i2ElManXgMgqqUQEUjf3lMFjIE1Pc8/5/g==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.73"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.73_1771890296807_0.13561203614410755","host":"s3://npm-registry-packages-npm-production"}},"1.0.74":{"name":"@smallwebco/tinypivot-server","version":"1.0.74","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.74","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/smallwebco/tinypivot/issues"},"dist":{"shasum":"f227e914140bc7756e33d1ad27f0b91594393750","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.74.tgz","fileCount":7,"integrity":"sha512-//YCtBzeyfjnRFc+Hc0ZA3FnO0+k1ZkXq3k/uecAFHuvjevxCMSgT4VZG8CC05fOlamYrGHGuNYsMSukZaQahA==","signatures":[{"sig":"MEUCIG4hW1LwAMGO5NSkqIUEsNjfNPFiezxncZbmaDoEEZJUAiEA0BlnR5/e692lKBtH8k7eH09HGzF9JlKbKcL71vVgsFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:smallwebco-tinypivot-server-1.0.74.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"smallwebllc","email":"brice@thesmallweb.co"},"_resolved":"/tmp/fe434c0c6c25fe69e7ba2e790de0f8cd/smallwebco-tinypivot-server-1.0.74.tgz","_integrity":"sha512-//YCtBzeyfjnRFc+Hc0ZA3FnO0+k1ZkXq3k/uecAFHuvjevxCMSgT4VZG8CC05fOlamYrGHGuNYsMSukZaQahA==","repository":{"url":"git+https://github.com/smallwebco/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"10.8.2","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.74"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.74_1772227341991_0.7596667045205983","host":"s3://npm-registry-packages-npm-production"}},"1.0.79":{"name":"@smallwebco/tinypivot-server","version":"1.0.79","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.79","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"6d7682c604f701461035a826ec8a620346f90feb","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.79.tgz","fileCount":7,"integrity":"sha512-qN2Loiqg4awafwy7+/gLhpXEPOpp17tGR6p0JPR2Y0LHElZZz8ZxLdVFYunPR7pUJnhMgfkhE+bvPGOb+61qZg==","signatures":[{"sig":"MEQCIEFthOw2Vc5tT6shtkA4bcQmVA/4UCFfGVu2aHWspo1GAiBluOXkDQgpbQdsWOK/f/Tk7k5il2XOV3Gdj6BZM7M26Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.0.79","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65768},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.79.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.79.tgz","_integrity":"sha512-qN2Loiqg4awafwy7+/gLhpXEPOpp17tGR6p0JPR2Y0LHElZZz8ZxLdVFYunPR7pUJnhMgfkhE+bvPGOb+61qZg==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.9.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.79"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.79_1774284664771_0.839853025270453","host":"s3://npm-registry-packages-npm-production"}},"1.0.80":{"name":"@smallwebco/tinypivot-server","version":"1.0.80","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.80","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"edb54f503291c710b9d44820aedef0721a824052","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.80.tgz","fileCount":7,"integrity":"sha512-kdJ9FQEuqFFvLyswSdj1XLtxD6u9dpci0wOp/fQjYSEyrCIf+l33db9rz0ge9CK2piUIP9SxIZzU5Htq+UtdFw==","signatures":[{"sig":"MEUCIQCSV313uw9ON7EA0BSge1jA0wPPWeZfkJHdfS/CYiwLowIgbhyCD02UWljtLzV1EC1ViOsYEGsxqem5A1bNU/HXOjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.0.80","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65768},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.80.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.80.tgz","_integrity":"sha512-kdJ9FQEuqFFvLyswSdj1XLtxD6u9dpci0wOp/fQjYSEyrCIf+l33db9rz0ge9CK2piUIP9SxIZzU5Htq+UtdFw==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.11.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@smallwebco/tinypivot-core":"1.0.80"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.80_1778591246211_0.5146154860892562","host":"s3://npm-registry-packages-npm-production"}},"1.0.81":{"name":"@smallwebco/tinypivot-server","version":"1.0.81","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.81","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"b1d86c9747a742b17a910a28c281d05e81bbe882","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.81.tgz","fileCount":7,"integrity":"sha512-/TmsC823jlW82cKQfExb7t/pXODDNBM1os0oPA5bnMX5sefU3ElCdgol/mO3r/NIMplX93Fy+zg49Q1CP8RRzg==","signatures":[{"sig":"MEUCIBcoX77ojic0gG0dmqv4aIVzbbPwJ2R8+kjkH2bmRh6qAiEAw05PZ11roIyAUdIuuoOpfKgL+09ta1qXvsqdLaa0rbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.0.81","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65768},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.81.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.81.tgz","_integrity":"sha512-/TmsC823jlW82cKQfExb7t/pXODDNBM1os0oPA5bnMX5sefU3ElCdgol/mO3r/NIMplX93Fy+zg49Q1CP8RRzg==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.11.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@smallwebco/tinypivot-core":"1.0.81"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.81_1778594127911_0.9847403343781054","host":"s3://npm-registry-packages-npm-production"}},"1.0.83":{"name":"@smallwebco/tinypivot-server","version":"1.0.83","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.0.83","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"63dd2b5d4c9cffdfbd68870ad5bccb5d29186adf","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.0.83.tgz","fileCount":7,"integrity":"sha512-AEd+3sb3NxRrKvgOCl2+cxsWsKR7zGyK1Yh6ZhKo79vOyQCr9B/4KBWRENdf8B81AhmSsWXRbCEbJL8ZbnzNlQ==","signatures":[{"sig":"MEUCICDjJX9RmM0WeukKVNxTpDaciNsTi8sD5bZwdP/vi4LBAiEA0gonwOV+MftCnLjmM2s4dki0jLu7IQeG/I6Oj5wJtto=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.0.83","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65768},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.83.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.0.83.tgz","_integrity":"sha512-AEd+3sb3NxRrKvgOCl2+cxsWsKR7zGyK1Yh6ZhKo79vOyQCr9B/4KBWRENdf8B81AhmSsWXRbCEbJL8ZbnzNlQ==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.13.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@smallwebco/tinypivot-core":"1.0.83"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.0.83_1781205102570_0.6087320067541389","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@smallwebco/tinypivot-server","version":"1.1.0","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.1.0","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"662b4fc6d7d1ef3bfe6e40dde7203e8dcd3786d3","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.1.0.tgz","fileCount":7,"integrity":"sha512-FGltV88NLUTaXPIuhY8aaYmHFJRyMgcn3ZTU0VQ+DIFXdI1gGRl0FATUPLQkscTEsnuZKT9eAo3wsTkH+v4wCw==","signatures":[{"sig":"MEQCIGeuZbGnbkox/H/2kPn753imnJU72nz7qjU2tXIvPEu+AiA78rwcAoZphmzDqhB1neVwhyTfShyR6qT23bYie42jEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.1.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.1.0.tgz","_integrity":"sha512-FGltV88NLUTaXPIuhY8aaYmHFJRyMgcn3ZTU0VQ+DIFXdI1gGRl0FATUPLQkscTEsnuZKT9eAo3wsTkH+v4wCw==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.13.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@smallwebco/tinypivot-core":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.1.0_1781354320919_0.5395668503231403","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@smallwebco/tinypivot-server","version":"1.1.1","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.1.1","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"5bf99c0d88e7a50afc66479a54a34c4f6c9c4e9a","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.1.1.tgz","fileCount":7,"integrity":"sha512-Rx+21o7PZGtAMgfnMLQgn5RBOckoJ/4xtGwaynfFFOF1oXNLobqkPFaD0kJBSsJhG9W0GZQzxGuABR09Bfms4Q==","signatures":[{"sig":"MEYCIQDc9p3ofFbS6au60Zik3BGyRCbFT2+cm4LJFKu0W+8lRwIhAO1DD531JVUhZVZ6V3nJ9Id2A+5aFbllKfLdvR02J7V3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.1.1.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.1.1.tgz","_integrity":"sha512-Rx+21o7PZGtAMgfnMLQgn5RBOckoJ/4xtGwaynfFFOF1oXNLobqkPFaD0kJBSsJhG9W0GZQzxGuABR09Bfms4Q==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.13.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@smallwebco/tinypivot-core":"1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.1.1_1781356864538_0.659011519664281","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@smallwebco/tinypivot-server","version":"1.1.2","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.1.2","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"c800bb010095c4700c429e445b7c362cc1babb73","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.1.2.tgz","fileCount":7,"integrity":"sha512-v5LE3b0HZfOSB4/SbnMi4mjA9UT2hd4OdZyHpymvTsJIbu3ZY8EZEWDIM1vz1eXxW+/U8BDqL3X3Vs+BGH43/w==","signatures":[{"sig":"MEYCIQCmvHUIqbMVEoXHWTshPEW1xtsMCaOvCtk3PCh2pYfpawIhANvV6TeG6w/NOlCo8ZDexwzH/QX4Xk5brefc+0CBRbA5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.1.2.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.1.2.tgz","_integrity":"sha512-v5LE3b0HZfOSB4/SbnMi4mjA9UT2hd4OdZyHpymvTsJIbu3ZY8EZEWDIM1vz1eXxW+/U8BDqL3X3Vs+BGH43/w==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.13.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@smallwebco/tinypivot-core":"1.1.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.1.2_1781366699023_0.9909856872623448","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@smallwebco/tinypivot-server","version":"1.2.0","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.2.0","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"090af1e3aff03eb2ba0b1abb6035cd6c2c11a5d2","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.2.0.tgz","fileCount":7,"integrity":"sha512-V9eUvhmgSHFvrCpdBNS7pZIuqYAH7E71EK8QrvisBeRQLvcRUoNVFJXw4Mpra9Cp+VzL5pYix/yHo3h8K9P0YQ==","signatures":[{"sig":"MEQCIFNu2QLiZNPefgEvtve9Ja+LvlfnXOKjQ2iWTfdojnb9AiBhms2L3QyljnoEMHZ78hqdcqV7K8CEsqGNEqohDw2K2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.2.0.tgz","_integrity":"sha512-V9eUvhmgSHFvrCpdBNS7pZIuqYAH7E71EK8QrvisBeRQLvcRUoNVFJXw4Mpra9Cp+VzL5pYix/yHo3h8K9P0YQ==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.13.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@smallwebco/tinypivot-core":"1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.2.0_1781441372973_0.2409826191487996","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@smallwebco/tinypivot-server","version":"1.2.1","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.2.1","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"4ca4e67925430c7fed41dd5ebefad7c74dd07b72","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.2.1.tgz","fileCount":7,"integrity":"sha512-7m74Ibxam6d5Hag12zZgToEfd1evOL9VrTB44cXVCEcZZSaHt5EsdCnkVROnDSgAXKEP4TVL9hSNcX8xJFWbTQ==","signatures":[{"sig":"MEUCIGJ9qjL7ncNU/d23aDYKUHnJ02R4cW16462odi8HNoTXAiEA+Qql5jUGdLV7M3izZIx/6t1eSj6fBX6wokZv6kr9ijQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.2.1.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.2.1.tgz","_integrity":"sha512-7m74Ibxam6d5Hag12zZgToEfd1evOL9VrTB44cXVCEcZZSaHt5EsdCnkVROnDSgAXKEP4TVL9hSNcX8xJFWbTQ==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.16.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@smallwebco/tinypivot-core":"1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.2.1_1784137913240_0.0024439689315971513","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@smallwebco/tinypivot-server","version":"1.3.0","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"license":"MIT","_id":"@smallwebco/tinypivot-server@1.3.0","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"homepage":"https://tiny-pivot.com","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"dist":{"shasum":"58706ed9265eed7df7bb5b631433be4395e140e7","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.3.0.tgz","fileCount":7,"integrity":"sha512-iCcq4mWv45z9HdKgM7a7naPw8OJRcvHxAzr50pFkxyyYWLm766Wa2yIYVY9ooRCZ+lUYFCtIQMntk49pJZZYWg==","signatures":[{"sig":"MEYCIQDjMy1+epp3XHXs5xmq816fZ5KgQRShoisVSGDo94xSyQIhANiUJ18iDyHIp3+yc1GttasXeJM+V/cs1bd/vZUEJWmd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":65766},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.3.0.tgz","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","build":"tsup src/index.ts --format esm,cjs --dts --clean","type-check":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.3.0.tgz","_integrity":"sha512-iCcq4mWv45z9HdKgM7a7naPw8OJRcvHxAzr50pFkxyyYWLm766Wa2yIYVY9ooRCZ+lUYFCtIQMntk49pJZZYWg==","repository":{"url":"git+https://github.com/Small-Web-Co/tinypivot.git","type":"git","directory":"packages/server"},"_npmVersion":"11.17.0","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@smallwebco/tinypivot-core":"1.3.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.1","@types/pg":"^8.11.6","typescript":"~5.6.2"},"peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/tinypivot-server_1.3.0_1788198560660_0.23310019135804771","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@smallwebco/tinypivot-server","type":"module","version":"1.3.1","description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","license":"MIT","homepage":"https://tiny-pivot.com","repository":{"type":"git","url":"git+https://github.com/Small-Web-Co/tinypivot.git","directory":"packages/server"},"keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","peerDependencies":{"pg":"^8.0.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"dependencies":{"@smallwebco/tinypivot-core":"1.3.1"},"devDependencies":{"@types/pg":"^8.11.6","tsup":"^8.0.1","typescript":"~5.6.2"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts --clean","dev":"tsup src/index.ts --format esm,cjs --dts --watch","type-check":"tsc --noEmit"},"_id":"@smallwebco/tinypivot-server@1.3.1","bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"_integrity":"sha512-iGhHB6fGtiRNQjCdkMeBg0ytzlx2tJiNkByH+X9Va1jsM72xcmwHGyzzc+zF/ICDRZBg3Iw6Oci3F9DWrhCpgw==","_resolved":"/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.3.1.tgz","_from":"file:/home/runner/work/_temp/npm-packages/smallwebco-tinypivot-server-1.3.1.tgz","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-iGhHB6fGtiRNQjCdkMeBg0ytzlx2tJiNkByH+X9Va1jsM72xcmwHGyzzc+zF/ICDRZBg3Iw6Oci3F9DWrhCpgw==","shasum":"f32a8879ca92ed121f0da6b126741e1289e2786a","tarball":"https://registry.npmjs.org/@smallwebco/tinypivot-server/-/tinypivot-server-1.3.1.tgz","fileCount":7,"unpackedSize":65766,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@smallwebco%2ftinypivot-server@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAk1nPs6LE/3KstAYT7swzbDqeFKgbsCPlfn69akV6LRAiA+PMWuTGxLvU8j55x3XHISkVcDzbiPYVf9iyewrQ3L2A=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37ddd88e-5748-4e76-8730-4b37665a7587"}},"directories":{},"maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tinypivot-server_1.3.1_1788263838326_0.05362799913151539"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-03T21:12:08.683Z","modified":"2026-09-01T11:57:18.758Z","1.0.57":"2026-01-03T21:12:08.921Z","1.0.58":"2026-01-03T21:36:58.004Z","1.0.59":"2026-01-03T21:50:13.446Z","1.0.60":"2026-01-03T22:01:09.038Z","1.0.61":"2026-01-03T22:08:30.079Z","1.0.62":"2026-01-03T23:06:30.818Z","1.0.63":"2026-01-03T23:15:44.484Z","1.0.64":"2026-01-03T23:18:07.788Z","1.0.65":"2026-02-09T15:48:36.039Z","1.0.66":"2026-02-09T15:50:44.990Z","1.0.67":"2026-02-09T16:01:12.421Z","1.0.68":"2026-02-11T14:45:48.771Z","1.0.69":"2026-02-15T20:43:48.926Z","1.0.70":"2026-02-15T21:01:40.271Z","1.0.71":"2026-02-15T21:10:31.736Z","1.0.72":"2026-02-15T21:17:30.709Z","1.0.73":"2026-02-23T23:44:56.951Z","1.0.74":"2026-02-27T21:22:22.153Z","1.0.79":"2026-03-23T16:51:04.934Z","1.0.80":"2026-05-12T13:07:26.407Z","1.0.81":"2026-05-12T13:55:28.070Z","1.0.83":"2026-06-11T19:11:42.726Z","1.1.0":"2026-06-13T12:38:41.080Z","1.1.1":"2026-06-13T13:21:04.673Z","1.1.2":"2026-06-13T16:04:59.149Z","1.2.0":"2026-06-14T12:49:33.102Z","1.2.1":"2026-07-15T17:51:53.386Z","1.3.0":"2026-08-31T17:49:20.798Z","1.3.1":"2026-09-01T11:57:18.458Z"},"bugs":{"url":"https://github.com/Small-Web-Co/tinypivot/issues"},"license":"MIT","homepage":"https://tiny-pivot.com","keywords":["tinypivot","embedded-ai-data-analyst","ai-data-analyst","natural-language-query","text-to-sql","llm-data-analysis","conversational-analytics","ai","data-analyst","postgresql","sql","byok","openai","anthropic","claude"],"repository":{"type":"git","url":"git+https://github.com/Small-Web-Co/tinypivot.git","directory":"packages/server"},"description":"Server handlers for TinyPivot Embedded AI Data Analyst - PostgreSQL integration, AI chat proxy, and natural language to SQL","maintainers":[{"name":"smallwebllc","email":"brice@thesmallweb.co"}],"readme":"# @smallwebco/tinypivot-server\n\nServer-side handlers for TinyPivot's **Embedded AI Data Analyst**. Enables natural language to SQL conversion, PostgreSQL integration, and BYOK AI chat proxy.\n\n## Two Deployment Options\n\n### Option 1: Full Server (PostgreSQL + AI)\n\nUse this when you have a PostgreSQL database. The unified handler provides:\n- Auto-discovery of tables from your database\n- Schema introspection  \n- SQL query execution with safety validation\n- AI chat proxy\n\n### Option 2: Client-Side Queries + AI Proxy Only\n\nUse this when your data is already in the browser (e.g., DuckDB WASM, static data). You only need a server endpoint for AI chat to keep API keys secure.\n\n---\n\n## Option 1: Full Server Setup\n\n### Requirements\n\n- PostgreSQL database\n- AI API key (OpenAI, Anthropic, or OpenRouter)\n- Node.js 18+\n\n### 1. Install\n\n```bash\npnpm add @smallwebco/tinypivot-server pg\n```\n\n### 2. Set Environment Variables\n\n```bash\n# .env\nDATABASE_URL=postgresql://user:password@localhost:5432/mydb\nAI_API_KEY=sk-...  # Your API key\n\n# Optional: Override the default model\nAI_MODEL=claude-sonnet-4-20250514\n```\n\nThe AI provider is **auto-detected** from your API key format:\n- `sk-ant-...` → Anthropic (defaults to `claude-3-haiku-20240307`)\n- `sk-or-...` → OpenRouter (defaults to `anthropic/claude-3-haiku`)\n- `sk-...` → OpenAI (defaults to `gpt-4o-mini`)\n\nDefault models are cheap/fast. Override with `AI_MODEL` for better quality.\n\n### 3. Create API Endpoint\n\n**Next.js App Router**\n\n```typescript\n// app/api/tinypivot/route.ts\nimport { createTinyPivotHandler } from '@smallwebco/tinypivot-server'\n\nexport const POST = createTinyPivotHandler()\n```\n\n**Next.js Pages Router**\n\n```typescript\n// pages/api/tinypivot.ts\nimport type { NextApiRequest, NextApiResponse } from 'next'\nimport { createTinyPivotHandler } from '@smallwebco/tinypivot-server'\n\nconst handler = createTinyPivotHandler()\n\nexport default async function (req: NextApiRequest, res: NextApiResponse) {\n  const response = await handler(\n    new Request('http://localhost', {\n      method: 'POST',\n      body: JSON.stringify(req.body),\n      headers: { 'Content-Type': 'application/json' },\n    })\n  )\n  const data = await response.json()\n  res.status(response.status).json(data)\n}\n```\n\n**Express**\n\n```typescript\nimport express from 'express'\nimport { createTinyPivotHandler } from '@smallwebco/tinypivot-server'\n\nconst app = express()\napp.use(express.json())\n\nconst handler = createTinyPivotHandler()\n\napp.post('/api/tinypivot', async (req, res) => {\n  const response = await handler(\n    new Request('http://localhost', {\n      method: 'POST',\n      body: JSON.stringify(req.body),\n      headers: { 'Content-Type': 'application/json' },\n    })\n  )\n  const data = await response.json()\n  res.status(response.status).json(data)\n})\n```\n\n### 4. Use in Frontend\n\n**Vue 3**\n\n```vue\n<script setup>\nimport { DataGrid } from '@smallwebco/tinypivot-vue'\nimport '@smallwebco/tinypivot-vue/style.css'\n</script>\n\n<template>\n  <DataGrid \n    :data=\"[]\" \n    :ai-analyst=\"{ endpoint: '/api/tinypivot' }\"\n  />\n</template>\n```\n\n**React**\n\n```tsx\nimport { DataGrid } from '@smallwebco/tinypivot-react'\nimport '@smallwebco/tinypivot-react/style.css'\n\nfunction App() {\n  return (\n    <DataGrid \n      data={[]} \n      aiAnalyst={{ endpoint: '/api/tinypivot' }}\n    />\n  )\n}\n```\n\n---\n\n## Option 2: Client-Side Queries + AI Proxy\n\nUse this when you're executing queries in the browser (e.g., DuckDB WASM) and only need the server for AI chat.\n\n### 1. Create AI-Only Endpoint\n\n```typescript\n// api/ai-proxy.ts (Vercel) or your framework equivalent\nexport default async function handler(req, res) {\n  const apiKey = process.env.AI_API_KEY\n  if (!apiKey) {\n    return res.status(500).json({ error: 'AI_API_KEY not configured' })\n  }\n\n  const { messages } = req.body\n\n  // Auto-detect provider from key format\n  const isAnthropic = apiKey.startsWith('sk-ant-')\n  const isOpenRouter = apiKey.startsWith('sk-or-')\n\n  // Call the appropriate API...\n  // (See full implementation in the TinyPivot demo)\n\n  return res.json({ content: aiResponse })\n}\n```\n\n### 2. Configure Frontend with queryExecutor\n\n**Vue 3**\n\n```vue\n<script setup>\nimport { DataGrid } from '@smallwebco/tinypivot-vue'\nimport '@smallwebco/tinypivot-vue/style.css'\n\n// Your client-side query function (e.g., DuckDB WASM)\nasync function executeQuery(sql: string, table: string) {\n  const result = await duckdb.query(sql)\n  return {\n    data: result.toArray(),\n    rowCount: result.numRows,\n  }\n}\n\nconst aiConfig = {\n  endpoint: '/api/ai-proxy',      // Server endpoint for AI chat only\n  queryExecutor: executeQuery,     // Client-side SQL execution\n  dataSources: [\n    { id: 'sales', table: 'sales', name: 'Sales Data', description: 'Sales transactions' }\n  ],\n  dataSourceLoader: async (id) => {\n    // Load data into your client-side DB and return schema\n    const data = await loadDataset(id)\n    return { data, schema: inferSchema(data) }\n  }\n}\n</script>\n\n<template>\n  <DataGrid :data=\"myData\" :ai-analyst=\"aiConfig\" />\n</template>\n```\n\n**React**\n\n```tsx\nimport { DataGrid } from '@smallwebco/tinypivot-react'\nimport '@smallwebco/tinypivot-react/style.css'\n\nfunction App() {\n  const executeQuery = async (sql: string, table: string) => {\n    const result = await duckdb.query(sql)\n    return { data: result.toArray(), rowCount: result.numRows }\n  }\n\n  const aiConfig = {\n    endpoint: '/api/ai-proxy',\n    queryExecutor: executeQuery,\n    dataSources: [\n      { id: 'sales', table: 'sales', name: 'Sales Data', description: 'Sales transactions' }\n    ],\n    dataSourceLoader: async (id) => {\n      const data = await loadDataset(id)\n      return { data, schema: inferSchema(data) }\n    }\n  }\n\n  return <DataGrid data={myData} aiAnalyst={aiConfig} />\n}\n```\n\n---\n\n## Configuration Options\n\n### Handler Options (Full Server)\n\n```typescript\ncreateTinyPivotHandler({\n  // PostgreSQL connection (default: process.env.DATABASE_URL)\n  connectionString: 'postgresql://...',\n  \n  // AI API key (default: process.env.AI_API_KEY)\n  apiKey: 'sk-...',\n  \n  // Table filtering\n  tables: {\n    include: ['sales', 'customers'],      // Only these tables\n    exclude: [/^_/, 'migrations'],         // Exclude patterns\n    schemas: ['public'],                   // PostgreSQL schemas\n    descriptions: {                        // Context for AI\n      sales: 'Sales transactions with revenue data',\n    }\n  },\n  \n  // Query limits (optional)\n  maxRows: 10000,\n  timeout: 30000,\n  \n  // AI settings\n  model: 'claude-sonnet-4-20250514',      // Override default model\n  maxTokens: 2048,\n  \n  // Error handling\n  onError: (error) => console.error(error),\n})\n```\n\n### AI Analyst Config (Frontend)\n\n```typescript\ninterface AIAnalystConfig {\n  // Required: API endpoint\n  endpoint: string\n  \n  // For client-side queries (Option 2)\n  queryExecutor?: (sql: string, table: string) => Promise<QueryResult>\n  dataSources?: AIDataSource[]\n  dataSourceLoader?: (id: string) => Promise<{ data: any[], schema?: Schema }>\n  \n  // Optional\n  enabled?: boolean\n  persistToLocalStorage?: boolean\n  sessionId?: string\n  maxRows?: number\n  aiModelName?: string  // Display name in UI\n}\n```\n\n---\n\n## API Contract\n\nThe endpoint accepts POST requests with an `action` field:\n\n### `list-tables`\n```typescript\n// Request\n{ action: 'list-tables' }\n\n// Response\n{ tables: [{ name: 'sales', description: '...' }] }\n```\n\n### `get-schema`\n```typescript\n// Request\n{ action: 'get-schema', tables: ['sales'] }\n\n// Response\n{ schemas: [{ table: 'sales', columns: [...] }] }\n```\n\n### `query`\n```typescript\n// Request\n{ action: 'query', sql: 'SELECT ...', table: 'sales' }\n\n// Response\n{ success: true, data: [...], rowCount: 100, truncated: false }\n```\n\n### `chat`\n```typescript\n// Request\n{ action: 'chat', messages: [{ role: 'user', content: '...' }] }\n\n// Response\n{ content: 'AI response with SQL...' }\n```\n\n---\n\n## Security\n\nBuilt-in protections:\n\n1. **SQL Validation**: Only SELECT queries allowed\n2. **Table Whitelisting**: Only configured tables are queryable\n3. **LIMIT Enforcement**: Auto-added if missing\n4. **Error Sanitization**: Connection strings stripped from errors\n\n---\n\n## Troubleshooting\n\n| Error | Solution |\n|-------|----------|\n| \"PostgreSQL driver not installed\" | `pnpm add pg` |\n| \"Database connection not configured\" | Set `DATABASE_URL` |\n| \"AI API key not configured\" | Set `AI_API_KEY` |\n| \"Table X is not allowed\" | Add to `tables.include` or remove from `tables.exclude` |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}