{"_id":"@airnauts/airside-adapter-postgres","_rev":"7-bd9e91ac9a981ea63bfd9a9625648e27","name":"@airnauts/airside-adapter-postgres","dist-tags":{"latest":"0.10.1"},"versions":{"0.8.0":{"name":"@airnauts/airside-adapter-postgres","version":"0.8.0","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-adapter-postgres@0.8.0","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"2f5364f18a78eb1bb503a3a94ba77798ae274d80","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.8.0.tgz","fileCount":11,"integrity":"sha512-HQ3F+a/wWzMnvwMHxz84xkVruJFLb9BQ/dYSMnIEJoK23wChF/4cWhF091VP5ge55vDjHwpYa41bSCBSbX335w==","signatures":[{"sig":"MEYCIQDgOUyTAZxeUe9/82MgkvN8rK/n+6A7VWwaTmy1CDR2rgIhAK6Hkb3aBJwrVxtdC/xLgqM3mQMsrvfiFLzeAYr9MRhC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37478},"type":"module","_from":"file:airnauts-airside-adapter-postgres-0.8.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/bb4d3fb4f5e028751765dbad6046f366/airnauts-airside-adapter-postgres-0.8.0.tgz","_integrity":"sha512-HQ3F+a/wWzMnvwMHxz84xkVruJFLb9BQ/dYSMnIEJoK23wChF/4cWhF091VP5ge55vDjHwpYa41bSCBSbX335w==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/adapter-postgres"},"_npmVersion":"10.9.8","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.8.0","@airnauts/airside-server":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.0","@types/pg":"^8.11.0","@electric-sql/pglite":"^0.5.1","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-adapter-postgres_0.8.0_1781601750291_0.9478794031003817","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@airnauts/airside-adapter-postgres","version":"0.8.1","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-adapter-postgres@0.8.1","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"0b2ba570fa9b243aaf098d7996147c9b96bca7bd","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.8.1.tgz","fileCount":11,"integrity":"sha512-JnXMqYu3jRTYpwSyJeW4GzwNhQwWop8/BoCx1TTgrGjD8xiGxxlSDig+A0gZ2hLQxmY2rz7GC5aWbSGSBkK0NQ==","signatures":[{"sig":"MEQCIHy1G6UL1rBDYXcylmDVGHNJ0N0TpavTomBVqDkNwyeRAiBz2A2BQLXfz4qLCUbTjCOOqAJj63keIyUsh+xLl9QujA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37943},"type":"module","_from":"file:airnauts-airside-adapter-postgres-0.8.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/850b9707230576b0aeff6287b227cdad/airnauts-airside-adapter-postgres-0.8.1.tgz","_integrity":"sha512-JnXMqYu3jRTYpwSyJeW4GzwNhQwWop8/BoCx1TTgrGjD8xiGxxlSDig+A0gZ2hLQxmY2rz7GC5aWbSGSBkK0NQ==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/adapter-postgres"},"_npmVersion":"10.9.8","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.8.1","@airnauts/airside-server":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.0","@types/pg":"^8.11.0","@electric-sql/pglite":"^0.5.1","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-adapter-postgres_0.8.1_1781606536264_0.9380367019042386","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@airnauts/airside-adapter-postgres","version":"0.8.2","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-adapter-postgres@0.8.2","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"a92ceda60520f2f68405a9576ca6e5a03b16d78c","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.8.2.tgz","fileCount":11,"integrity":"sha512-FMi2qUCwWXzOyCMz5Ol7bt3LZHZgWIbzqhrtlhc8ONMMxNcEWDTo9ECJ0acTnvp3J83nk8rg/UxaLs0wIyOaPg==","signatures":[{"sig":"MEYCIQDahYIsnutPC1UdSpL0Vp5bRHfZhSjFuboCGMJpC8SI8gIhANNcSHFHidh/rR12WsnjHBUK3mSYQzA8FKFU0EThTYA3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37943},"type":"module","_from":"file:airnauts-airside-adapter-postgres-0.8.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/4ddf80c1809b2ba5f4f739e5a105acef/airnauts-airside-adapter-postgres-0.8.2.tgz","_integrity":"sha512-FMi2qUCwWXzOyCMz5Ol7bt3LZHZgWIbzqhrtlhc8ONMMxNcEWDTo9ECJ0acTnvp3J83nk8rg/UxaLs0wIyOaPg==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/adapter-postgres"},"_npmVersion":"10.9.8","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.8.2","@airnauts/airside-server":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.0","@types/pg":"^8.11.0","@electric-sql/pglite":"^0.5.1","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-adapter-postgres_0.8.2_1781610336979_0.23980245444878912","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@airnauts/airside-adapter-postgres","version":"0.9.0","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-adapter-postgres@0.9.0","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"1663526b055580f6cbdd8b20b07d1ae942a2ce73","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.9.0.tgz","fileCount":11,"integrity":"sha512-h2hycNDWEs0xzAjTciYTmpotuPIMeDlLUyqm4kDd2/yBNoAFQAy7RTWs13VYsUUqxHgT5ksRPJqpXP6v0OHw1Q==","signatures":[{"sig":"MEUCIECNILIJ2O9mxNtmDTYlRmifnJNYQfqFDQ+piFTtkcosAiEArZIO71nOrFeWfwJu5QaOKbD321VNcY/IrtXxzUAkM24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37943},"type":"module","_from":"file:airnauts-airside-adapter-postgres-0.9.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/644412e4d4d6cb159bd6d58eadb442ab/airnauts-airside-adapter-postgres-0.9.0.tgz","_integrity":"sha512-h2hycNDWEs0xzAjTciYTmpotuPIMeDlLUyqm4kDd2/yBNoAFQAy7RTWs13VYsUUqxHgT5ksRPJqpXP6v0OHw1Q==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/adapter-postgres"},"_npmVersion":"10.9.8","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.9.0","@airnauts/airside-server":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.0","@types/pg":"^8.11.0","@electric-sql/pglite":"^0.5.1","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-adapter-postgres_0.9.0_1781622015697_0.2794868978956613","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@airnauts/airside-adapter-postgres","version":"0.9.1","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-adapter-postgres@0.9.1","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"1fa69ca365b1050d34b7fabbd0a0f23bb16301c2","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.9.1.tgz","fileCount":11,"integrity":"sha512-1no0vtvfzCPTRraI7X4Rw8jRNruziLiM6oGyLAeubizRD5A/n9qI/tA3ur+M2I5BclzaGPovnxia0WELlscxkA==","signatures":[{"sig":"MEYCIQDt8vlCKWwJ5/4qMbucjzG+1iySF171VKhTrR4bhjqTNQIhAJTeO6Ycwtno8n7ignrmPvNSFUNwLr2xobbg83UAs50q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37943},"type":"module","_from":"file:airnauts-airside-adapter-postgres-0.9.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/400b998c29a99425260273fb0424ebdd/airnauts-airside-adapter-postgres-0.9.1.tgz","_integrity":"sha512-1no0vtvfzCPTRraI7X4Rw8jRNruziLiM6oGyLAeubizRD5A/n9qI/tA3ur+M2I5BclzaGPovnxia0WELlscxkA==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/adapter-postgres"},"_npmVersion":"10.9.8","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@airnauts/airside-core":"^0.9.1","@airnauts/airside-server":"^0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.0","@types/pg":"^8.11.0","@electric-sql/pglite":"^0.5.1","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-adapter-postgres_0.9.1_1781770413912_0.5977064735878332","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@airnauts/airside-adapter-postgres","version":"0.10.0","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"author":{"name":"Airnauts"},"license":"MIT","_id":"@airnauts/airside-adapter-postgres@0.10.0","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"homepage":"https://github.com/Airnauts/airside#readme","bugs":{"url":"https://github.com/Airnauts/airside/issues"},"dist":{"shasum":"5769a6ca52769480a3c4291b3f0609abbed40ad2","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.10.0.tgz","fileCount":11,"integrity":"sha512-dW1iC1GN68PvBSv9ce11WtHmdnV7H8lWd9pI/OUvWoyXz1E5cY2+8thyVufRk5DSUpYQ6yKmuhboYBXm0nU/Yg==","signatures":[{"sig":"MEUCIFSQFSx3vmOKWZIOlP23gzReU4CNEJ2eLCkEKPm2ZXfQAiEA63jc5Qno8CLYrPYwm0ONAq1dAf1Z94Wqq7GDDfzkVg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39133},"type":"module","_from":"file:airnauts-airside-adapter-postgres-0.10.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsup && tsc --build --force","typecheck":"tsc --build"},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"_resolved":"/tmp/fa95a60ad96827a3a0da5a3e579cc654/airnauts-airside-adapter-postgres-0.10.0.tgz","_integrity":"sha512-dW1iC1GN68PvBSv9ce11WtHmdnV7H8lWd9pI/OUvWoyXz1E5cY2+8thyVufRk5DSUpYQ6yKmuhboYBXm0nU/Yg==","repository":{"url":"git+https://github.com/Airnauts/airside.git","type":"git","directory":"packages/adapter-postgres"},"_npmVersion":"10.9.8","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"@airnauts/airside-core":"^0.10.0","@airnauts/airside-server":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"pg":"^8.11.0","@types/pg":"^8.11.0","@electric-sql/pglite":"^0.5.1","@airnauts/airside-test-support":"0.0.0"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/airside-adapter-postgres_0.10.0_1782730555470_0.5388225767455026","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@airnauts/airside-adapter-postgres","version":"0.10.1","description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"license":"MIT","author":{"name":"Airnauts"},"homepage":"https://github.com/Airnauts/airside#readme","repository":{"type":"git","url":"git+https://github.com/Airnauts/airside.git","directory":"packages/adapter-postgres"},"bugs":{"url":"https://github.com/Airnauts/airside/issues"},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"dependencies":{"@airnauts/airside-core":"^0.10.1","@airnauts/airside-server":"^0.10.1"},"peerDependencies":{"pg":"^8.11.0"},"peerDependenciesMeta":{"pg":{"optional":true}},"devDependencies":{"@electric-sql/pglite":"^0.5.1","@types/pg":"^8.11.0","pg":"^8.11.0","@airnauts/airside-test-support":"0.0.0"},"scripts":{"build":"tsup && tsc --build --force","typecheck":"tsc --build","test":"vitest run"},"_id":"@airnauts/airside-adapter-postgres@0.10.1","_integrity":"sha512-eBUosX3mTLj11ymIL05Q7lWTuetPuuWVbBiw80a8/bfIHjwdJaD2pxqcNBqjY3j8kU4ppqFkIQAx6hsgz9KiAg==","_resolved":"/tmp/7809fca1da0266333b9c07686d2171ae/airnauts-airside-adapter-postgres-0.10.1.tgz","_from":"file:airnauts-airside-adapter-postgres-0.10.1.tgz","_nodeVersion":"22.23.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-eBUosX3mTLj11ymIL05Q7lWTuetPuuWVbBiw80a8/bfIHjwdJaD2pxqcNBqjY3j8kU4ppqFkIQAx6hsgz9KiAg==","shasum":"b6e76359381338aa70b73dff1e2bfa75aa89a52c","tarball":"https://registry.npmjs.org/@airnauts/airside-adapter-postgres/-/airside-adapter-postgres-0.10.1.tgz","fileCount":11,"unpackedSize":39133,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQClVLY0i6wZO35C31M99H8wsmxT9JrGoNIL8ww5tYD0vAIga0yDKrzA610ficHFTTsVY5Ein8WzQyZ+hhUAmN3sUVk="}]},"_npmUser":{"name":"mateuszpaulski","email":"mateusz@airnauts.com"},"directories":{},"maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/airside-adapter-postgres_0.10.1_1782737642077_0.7188629859610147"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T09:22:29.922Z","modified":"2026-06-29T12:54:02.379Z","0.8.0":"2026-06-16T09:22:30.418Z","0.8.1":"2026-06-16T10:42:16.400Z","0.8.2":"2026-06-16T11:45:37.128Z","0.9.0":"2026-06-16T15:00:15.840Z","0.9.1":"2026-06-18T08:13:34.078Z","0.10.0":"2026-06-29T10:55:55.622Z","0.10.1":"2026-06-29T12:54:02.215Z"},"bugs":{"url":"https://github.com/Airnauts/airside/issues"},"author":{"name":"Airnauts"},"license":"MIT","homepage":"https://github.com/Airnauts/airside#readme","keywords":["comments","commenting","annotations","feedback","airnauts","postgres","postgresql","adapter"],"repository":{"type":"git","url":"git+https://github.com/Airnauts/airside.git","directory":"packages/adapter-postgres"},"description":"PostgreSQL repository adapter for the Airnauts commenting tool server.","maintainers":[{"name":"jkrzemie","email":"hello@airnauts.com"},{"name":"mateuszpaulski","email":"mateusz@airnauts.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://github.com/Airnauts/airside\">\n    <picture>\n      <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/Airnauts/airside/main/assets/airside-logo-dark.svg\">\n      <img src=\"https://raw.githubusercontent.com/Airnauts/airside/main/assets/airside-logo-light.svg\" alt=\"Airside\" height=\"40\">\n    </picture>\n  </a>\n  <h1 align=\"center\">\nEmbeddable Commenting Tool\n</h1>\n</p>\n\n# @airnauts/airside-adapter-postgres\n\nPostgreSQL repository adapter for the [Airside](https://github.com/Airnauts/airside) server. Stores threads in a hybrid relational + `jsonb` schema; driver-agnostic via a host-supplied `query()` executor.\n\n## Installation\n\n```bash\npnpm add @airnauts/airside-adapter-postgres\n# Add the pg driver only if you use postgresRepository() or a pg.Pool executor:\npnpm add pg\n```\n\n`pg` is an optional peer dependency — not needed if you supply your own executor (e.g. Neon's `Pool`, Supabase's client).\n\n## Quick start\n\n```ts\nimport { postgresRepository } from '@airnauts/airside-adapter-postgres'\n\nconst repository = postgresRepository({\n  connectionString: process.env.DATABASE_URL!,\n})\n```\n\nPass `repository` to `createAirsideServer` from `@airnauts/airside-server` (or to `createAirsideAppRoute` / `createAirsidePagesRoute` from `@airnauts/airside-integration-next`). The adapter connects lazily on first use and runs `ensureSchema` automatically.\n\n## API reference\n\n### `postgresRepository(opts)`\n\nOwns the connection lifecycle. Connects lazily on first use and memoizes the pool under `cacheKey` for hot-reload / warm serverless reuse.\n\n```ts\npostgresRepository({\n  connectionString: string  // PostgreSQL connection string (required)\n  cacheKey?: string         // memoization key, default \"postgres\"\n}): Repository\n```\n\n### `createPostgresRepository(opts)`\n\nLower-level factory for callers that manage their own connection. Accepts anything with a `query(text, params)` method — `pg.Pool`, Neon's `Pool`, Supabase's client, etc.\n\n```ts\nimport { Pool } from '@neondatabase/serverless'\nimport { createPostgresRepository, ensureSchema } from '@airnauts/airside-adapter-postgres'\n\nconst pool = new Pool({ connectionString: process.env.DATABASE_URL! })\nawait ensureSchema(pool)\nconst repository = createPostgresRepository({ sql: pool })\n```\n\n> **Note:** Neon's pure-HTTP tagged-template client does not satisfy the `query(text, params)` shape — use Neon's `Pool` instead.\n\n### `ensureSchema(sql)`\n\nCreates the `airside_threads` and `airside_attachments` tables and their indexes with `CREATE … IF NOT EXISTS` — safe to call on every startup. Use this when managing your own executor; `postgresRepository` calls it automatically.\n\nProduction teams that prefer managed migrations can run the equivalent DDL through their own tooling instead.\n\n### `SqlExecutor` type\n\n```ts\nimport type { SqlExecutor } from '@airnauts/airside-adapter-postgres'\n// { query(text: string, params?: unknown[]): Promise<{ rows: unknown[] }> }\n```\n\nImplement this interface to plug in any Postgres-compatible driver.\n\n## Peer dependencies & requirements\n\n| Peer | Required | Notes |\n|---|---|---|\n| `pg` | Optional (^8.11.0) | Only needed for `postgresRepository()` or a `pg.Pool` executor |\n\n- Node.js ≥ 18\n- PostgreSQL ≥ 14\n\n## Related packages\n\n- **`@airnauts/airside-server`** — defines the `Repository` interface\n- **`@airnauts/airside-adapter-mongo`** — MongoDB alternative\n- **`@airnauts/airside-adapter-memory`** — in-memory adapter for dev/tests\n- **`@airnauts/airside-integration-next`** — Next.js integration that accepts this adapter\n\n## License\n\nMIT © Airnauts\n","readmeFilename":"README.md"}