{"_id":"@contract-kit/provider-drizzle-turso","_rev":"10-c762c76b613286f4e026d70b567697d2","name":"@contract-kit/provider-drizzle-turso","dist-tags":{"latest":"1.0.0"},"versions":{"0.1.1":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.1","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.1","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"493c469d6cf8fda7c709d3ab68b4f97e4e6631f0","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.1.tgz","fileCount":13,"integrity":"sha512-KRlHbeAnpLSVKJj6U66UTtsUwW61FrDSdK7o+AEzEgTcgXrwn6u6P3gNtwCEmX24oJ1TOMCBRo5Xr4cdJVRZXg==","signatures":[{"sig":"MEUCIB8qwiGZ6sB/4iwl95v2uAPBN4G/yvtzOWqRpTuKTOxQAiEAsXmDtJWo5iEGkAnAAMnb2yDd65NVNLR0xN1psyroOAc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71782},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"56e21c50d36e17463f6f73399bbecb62bde7f793","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"10.8.2","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.24.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.1_1766346616606_0.7431372729114376","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.2","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.2","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"4b66114a6268ac85a38763605dfc72a449d6c2ee","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.2.tgz","fileCount":13,"integrity":"sha512-IV5RG4w7hFk/Z9eAmqC8GmefmT0D2XcwHnNaKC6579ESZL5XH2DQCXv/9yrFI58Hpuc4nt+/3o62wZ5weYr8tA==","signatures":[{"sig":"MEQCIA4CXjux3lOAOnQ6Tj83+yL+yfAWoL+AN43Rt2wtOkIlAiBxRqy3mK36aTn9I7wwvULH+rgY+5EgrPzltiEbOcUdgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71944},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"877bbbf2892c080c4a52bee23ac45223e8497a28","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"10.8.2","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.24.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.2_1771801722712_0.6637573341461493","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.4","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.4","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"227d3408d232e1205f7a02bad10d60f4ff92a92a","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.4.tgz","fileCount":14,"integrity":"sha512-Bi421pCKaEQM62aVc5C8/IiJSaWtALqIZiKOiI7p9vPsTFX8ERx7/crXhEE/hnFQeqk7Ta6g1YQS4z7ICxBH+w==","signatures":[{"sig":"MEUCIQDL9HqGi6/Cnl9Ahqw3LlUFhwYtO4phtcmGfKvPVlJKGgIgQE3DMlETzhJWufPBzpMfqhovBYvmaLoDfrNlyD31oro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37510},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8b77a6da239d5efb09623b38efc4d0be14e447a5","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"10.8.2","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"20.20.1","dependencies":{"zod":"^3.24.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.1.0","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.4_1773529418391_0.8968379461272518","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.5","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.5","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"585352dd5a2050ed027079edd246e8821ec15245","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.5.tgz","fileCount":13,"integrity":"sha512-GHxfB+LFaj8+VA33QN5hyS0/Ccm1NMN4hzjBHoju/cJEaFlwhQCCGQOdc0KkuapLH6hrYNCy2NR7pDI2OzzJKw==","signatures":[{"sig":"MEUCIEVYakFEwzvsUIzAAHF6ZNWHmo0grfApbKrNoxwhYdiMAiEA7rh4JNHDIVll6w640dbc6y6jHRstdXgFsujmzT/zFXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35910},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"57c8bdb32cd74faf90f87d8093a06a6aba4d5be6","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist coverage .turbo","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"10.8.2","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.5_1777684704506_0.5446143665360654","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.6","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.6","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"5e8fb7c292b4fbd4101deccb39d95eb0f58c158a","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.6.tgz","fileCount":7,"integrity":"sha512-D43zLl6orjqAuNyBmO8yHKCqY8mfSVgNBbzrqZgK+gPz/222MShsFNHvjYLe1xy9h6lLgX1HC9VsrYV9OmZCRA==","signatures":[{"sig":"MEUCIQC792gtmqW95QmNcqvEopUX5FpVpcSHcfAWwH+YPAm4iQIgft7mLnWS4ayCfjVoyglfEV2yRUQqskZA0C17a6HYoj4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21743},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7ae72bbc67e1838ae8aea10708f7d5897c94f1b1","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist coverage .turbo","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"11.12.1","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.0.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.6_1777687308341_0.09995369192955428","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.7","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.7","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"8a2f9370998a8a2978459c81c078e0006306344b","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.7.tgz","fileCount":7,"integrity":"sha512-w+hBa0cqUGNXuNBm8TsZvfEpGWLWw73WDvmNDn7vK7Vaij9BKlHBeYWAtlxrFr+RrdcMD0slvYDb8n17qip7yA==","signatures":[{"sig":"MEQCIBC/BvVRNZMVUHlOn57IBZXt+8uxt4L4pt1EFUw+zEcQAiAnynmswGV1M0r8XpoJgDdwDasXi1qkrZEg9fYY+OAhHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21801},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"6720a67b4add23696780704f22a82764e7f4251d","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist coverage .turbo","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"11.12.1","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.0.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.7_1777691574294_0.15539828980037584","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.8","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.8","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"b8b21b41c248b82e068d725a7c4c7d0d22ba1d2a","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.8.tgz","fileCount":7,"integrity":"sha512-LPclJ1+Oird8LotgEtbm3OYymnsoUm+pamnNP1RvpslqiQw/T3MaHY3B3COKB/2YmwHTfN41zOjJ9NIoZ+V3lg==","signatures":[{"sig":"MEQCIEf2b4NAVWxjk89GbMspp89c+H3v+zeEM2FTIJMdQ78XAiAR0iG5Kfv3bvWeTOANXWr2vdKXsPk3LLZkXJxsdvYoGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21859},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"1163eb1a8cbfe0afcdd0315f1688a227c1fe2d6e","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist coverage .turbo","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"11.12.1","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.0.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.8_1777869139909_0.3519374823367687","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.9","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.9","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"0a583625984c3e4a589dccb84a221b235985111a","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.9.tgz","fileCount":7,"integrity":"sha512-Qp+muyUY1br9/7BLfx1zKpaywOaVf9FMc+gpGqpXWkFNIS32molK9xugaizaTMjzJG+Ihn3N8vVG2tsxJ3opmQ==","signatures":[{"sig":"MEYCIQCKNZqJzNcjmSpt0N+cgs1fc62xhSNiB7GaBBCt6sIaLQIhAMoBzFVh33mIbhicKB5Vl7Qv0lNpQutSpwyBho1wOrVm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21917},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"1163eb1a8cbfe0afcdd0315f1688a227c1fe2d6e","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist coverage .turbo","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"11.12.1","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.0.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.9_1777937716895_0.49670244926838825","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@contract-kit/provider-drizzle-turso","version":"0.1.10","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"author":{"name":"Taylor Bryant"},"license":"MIT","_id":"@contract-kit/provider-drizzle-turso@0.1.10","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"dist":{"shasum":"0febc652ad3a7029eefbdad8de075a480dbba75a","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-0.1.10.tgz","fileCount":8,"integrity":"sha512-tqgXh2jRPSsWUUXbPFaeI69Av5OuFp48rrfIwSgsV0g7Svc+fYtaiqycCYFenuGOXFP6DKNssPpfcj3SHm8NfQ==","signatures":[{"sig":"MEUCIQDvFLxXiCgBwMZDUM5EPWKp1NOC9ispO736Nv3Bg9rtPQIgHCtwmrFMWyxneqC2zIWxq35vWCAB5yZ5MFGHSbz7ztM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27302},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"2bfd9106834c35818ebc4f04a8395010a876f583","scripts":{"dev":"tsc --watch","lint":"biome check .","test":"bun test","build":"tsc","clean":"rm -rf dist coverage .turbo","test:coverage":"bun test --coverage"},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"repository":{"url":"git+https://github.com/taylorbryant/contract-kit.git","type":"git","directory":"packages/provider-drizzle-turso"},"_npmVersion":"10.8.2","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.0.0","@contract-kit/ports":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.13","typescript":"^5.3.0","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","@libsql/client":"^0.14.0"},"peerDependencies":{"drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0","@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/provider-drizzle-turso_0.1.10_1778986547248_0.5227686392667146","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@contract-kit/provider-drizzle-turso","version":"1.0.0","type":"module","description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist coverage .turbo","test":"bun test","test:coverage":"bun test --coverage","lint":"biome check ."},"keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/taylorbryant/contract-kit.git","directory":"packages/provider-drizzle-turso"},"author":{"name":"Taylor Bryant"},"homepage":"https://github.com/taylorbryant/contract-kit#readme","bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"sideEffects":false,"publishConfig":{"access":"public"},"engines":{"node":">=18.0.0"},"peerDependencies":{"@libsql/client":"^0.6.0 || ^0.14.0 || ^0.15.0","drizzle-orm":"^0.36.0 || ^0.37.0 || ^0.38.0"},"dependencies":{"@contract-kit/devtools":"*","@contract-kit/ports":"*","zod":"^4.0.0"},"devDependencies":{"@libsql/client":"^0.14.0","@types/bun":"^1.3.13","@types/node":"^20.10.0","drizzle-orm":"^0.38.3","typescript":"^5.3.0"},"_id":"@contract-kit/provider-drizzle-turso@1.0.0","gitHead":"9579d803d4c25e0b648271f32ce5b9ff266549a8","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-k23e8HTY44wNHGFtvv6jHDajr//6AuCuGasI8g/hRVQ9fW5+TIcBR2+XuYb7chj8hnGZkc+mxefqJtEumLChug==","shasum":"d92d5fc084f6aed77ba2bfccc89e6672aa5fb004","tarball":"https://registry.npmjs.org/@contract-kit/provider-drizzle-turso/-/provider-drizzle-turso-1.0.0.tgz","fileCount":8,"unpackedSize":42282,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCPtMBxBmdKzbc8tI2eB0kwRWztjjF2NWW0Z/nA2KcAIQIhAJAZIR/3pJY2JYoi8aQ5flgwelMbcnITq+kIt08jRRXU"}]},"_npmUser":{"name":"taylorbryant","email":"taylor@bryant.io"},"directories":{},"maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider-drizzle-turso_1.0.0_1779231364832_0.07822897956898478"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-21T19:50:16.499Z","modified":"2026-05-19T22:56:05.164Z","0.1.1":"2025-12-21T19:50:16.739Z","0.1.2":"2026-02-22T23:08:42.835Z","0.1.4":"2026-03-14T23:03:38.530Z","0.1.5":"2026-05-02T01:18:24.636Z","0.1.6":"2026-05-02T02:01:48.485Z","0.1.7":"2026-05-02T03:12:54.436Z","0.1.8":"2026-05-04T04:32:20.076Z","0.1.9":"2026-05-04T23:35:17.034Z","0.1.10":"2026-05-17T02:55:47.390Z","1.0.0":"2026-05-19T22:56:05.041Z"},"bugs":{"url":"https://github.com/taylorbryant/contract-kit/issues"},"author":{"name":"Taylor Bryant"},"license":"MIT","homepage":"https://github.com/taylorbryant/contract-kit#readme","keywords":["contract-kit","drizzle","turso","libsql","provider","database","ports","hex","hexagonal"],"repository":{"type":"git","url":"git+https://github.com/taylorbryant/contract-kit.git","directory":"packages/provider-drizzle-turso"},"description":"Drizzle ORM + Turso/libSQL provider for contract-kit - adds typed DbPort using drizzle-orm","maintainers":[{"name":"taylorbryant","email":"taylor@bryant.io"}],"readme":"# @contract-kit/provider-drizzle-turso\n\nDrizzle ORM + Turso/libSQL provider for Contract Kit. Adds a typed database port to your hexagonal application using Drizzle ORM with Turso's libSQL.\n\n## Features\n\n- 🎯 **Factory-based**: Create providers with your schema at the call site\n- 🔒 **Type-safe**: Full TypeScript inference from your Drizzle schema\n- 🌐 **Turso-ready**: Works with Turso cloud or local libSQL\n- 🏗️ **Schema-agnostic**: You control where your schema files live\n- 🔌 **Clean separation**: Runtime provider is separate from build-time CLI config\n\n## Installation\n\n```bash\nbun add @contract-kit/provider-drizzle-turso drizzle-orm @libsql/client\n```\n\n\n## TypeScript requirements\n\nThis package requires TypeScript 5.0 or higher for proper type inference.\n\n## Setup\n\n### 1. Define your schema\n\nCreate your Drizzle schema file wherever makes sense for your app. Framework\nusage keeps it under `infra/db/`:\n\n```ts\n// infra/db/schema.ts\nimport { sqliteTable, text } from \"drizzle-orm/sqlite-core\";\n\nexport const todos = sqliteTable(\"todos\", {\n  id: text(\"id\").primaryKey(),\n  title: text(\"title\").notNull(),\n  completed: text(\"completed\").notNull().default(\"false\"),\n});\n```\n\n### 2. Configure Drizzle CLI (build-time)\n\nCreate `drizzle.config.ts` in your app root for the Drizzle CLI:\n\n```ts\n// drizzle.config.ts\nimport { defineConfig } from \"drizzle-kit\";\n\nexport default defineConfig({\n  schema: \"./infra/db/schema.ts\",\n  out: \"./drizzle\",\n  dialect: \"sqlite\",\n  dbCredentials: {\n    url: process.env.TURSO_DB_URL!,\n  },\n});\n```\n\n### 3. Create the provider (runtime)\n\nImport your schema and create the provider:\n\n```ts\n// server/providers.ts\nimport { createDrizzleTursoProvider } from \"@contract-kit/provider-drizzle-turso\";\nimport * as schema from \"@/infra/db/schema\";\n\nconst drizzleTursoProvider = createDrizzleTursoProvider({ schema });\n\nexport const providers = [drizzleTursoProvider];\n```\n\n### 4. Type your ports\n\nDefine your app's ports type:\n\n```ts\n// ports/index.ts\nimport type { DbPort } from \"@contract-kit/provider-drizzle-turso\";\nimport * as schema from \"@/infra/db/schema\";\n\nexport type AppPorts = {\n  db: DbPort<typeof schema>;\n  // other ports...\n};\n```\n\n### 5. Wire it up in your server\n\n```ts\n// server/index.ts\nimport { createNextServer, defineRoutes } from \"@contract-kit/next\";\nimport { ports } from \"@/infra/ports\";\nimport { providers } from \"./providers\";\n\nexport const server = await createNextServer({\n  ports,\n  providers,\n  createContext: ({ ports }) => ({ ports }),\n  routes: defineRoutes([\n    // ... your routes\n  ]),\n  mapUnhandledError: () => ({\n    status: 500,\n    body: {\n      code: \"INTERNAL_SERVER_ERROR\",\n      message: \"Internal server error\",\n    },\n  }),\n});\n```\n\n### 6. Use in your use cases\n\n```ts\n// use-cases/todos/list-todos.ts\nimport { z } from \"zod\";\nimport * as schema from \"@/infra/db/schema\";\nimport { useCase } from \"../builder\";\n\nexport const listTodos = useCase\n  .query(\"todos.list\")\n  .input(z.object({}))\n  .output(z.array(z.object({ id: z.string(), title: z.string() })))\n  .run(async ({ ctx }) => {\n    const db = ctx.ports.db.db; // LibSQLDatabase<typeof schema> - fully typed!\n\n    const rows = await db.select().from(schema.todos);\n    return rows;\n  });\n```\n\n## Devtools\n\nWhen `@contract-kit/devtools` is registered before this provider, Drizzle query\nlogging is recorded automatically under the `db` watcher. Events include the SQL\nquery text, parameter count, port name, and provider name. Parameter values are\nredacted by default.\n\n```ts\nimport { createDevtoolsProvider } from \"@contract-kit/devtools\";\nimport { createDrizzleTursoProvider } from \"@contract-kit/provider-drizzle-turso\";\n\nexport const providers = [\n  createDevtoolsProvider(),\n  createDrizzleTursoProvider({ schema }),\n];\n```\n\n## Unit of work\n\nUse `createDrizzleTursoUnitOfWork(...)` when a use case needs a real database\ntransaction. Your app still owns the repository interfaces; the helper only\nstarts a Drizzle transaction, gives you the transaction client, and optionally\nflushes recorded domain events after commit.\n\n```ts\n// ports/index.ts\nimport type {\n  DomainEventRecorderPort,\n  UnitOfWorkPort,\n} from \"@contract-kit/ports\";\nimport type { DbPort } from \"@contract-kit/provider-drizzle-turso\";\nimport * as schema from \"@/infra/db/schema\";\nimport type { TodoRepository } from \"./todo-repository\";\n\nexport type AppTransactionPorts = {\n  todos: TodoRepository;\n  events: DomainEventRecorderPort;\n};\n\nexport type AppPorts = {\n  db: DbPort<typeof schema>;\n  todos: TodoRepository;\n  uow: UnitOfWorkPort<AppTransactionPorts>;\n};\n```\n\n```ts\n// infra/db/todo-repository.ts\nimport type { DrizzleTursoDatabase } from \"@contract-kit/provider-drizzle-turso\";\nimport * as schema from \"./schema\";\n\nexport function createDrizzleTodoRepository(\n  db: DrizzleTursoDatabase<typeof schema>,\n): TodoRepository {\n  return {\n    async create(input) {\n      const [row] = await db.insert(schema.todos).values(input).returning();\n      return row;\n    },\n  };\n}\n```\n\n```ts\n// server/index.ts\nimport { createDrizzleTursoUnitOfWork } from \"@contract-kit/provider-drizzle-turso\";\nimport { createDrizzleTodoRepository } from \"@/infra/db/todo-repository\";\n\ncreateContext: async ({ ports }) => {\n  const todos = createDrizzleTodoRepository(ports.db.db);\n\n  return {\n    ports: {\n      ...ports,\n      todos,\n      uow: createDrizzleTursoUnitOfWork({\n        db: ports.db.db,\n        eventBus: ports.eventBus,\n        createTransactionPorts: (tx, events) => ({\n          todos: createDrizzleTodoRepository(tx),\n          events,\n        }),\n      }),\n    },\n  };\n};\n```\n\nInside a use case, call transaction-scoped repositories through `tx` and record\nevents through the transaction-local recorder:\n\n```ts\nconst todo = await ctx.ports.uow.transaction(async (tx) => {\n  const created = await tx.todos.create(input);\n  tx.events.record(todoCreated, { todoId: created.id });\n  return created;\n});\n```\n\nRecorded events are published only after Drizzle commits. If the transaction\nthrows, events are not flushed. If event publishing fails after commit,\n`transaction(...)` rejects but the database transaction is already committed;\nuse an outbox when events or jobs need durable delivery guarantees.\n\n## Configuration\n\nThe provider reads configuration from environment variables with the `TURSO_` prefix:\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `TURSO_DB_URL` | Yes | Turso/libSQL database URL (e.g., `libsql://your-db.turso.io` or `file:local.db`) |\n| `TURSO_DB_AUTH_TOKEN` | No | Turso auth token (required for cloud databases, optional for local) |\n\n### Example `.env`\n\n```env\n# For Turso cloud\nTURSO_DB_URL=libsql://my-app-db.turso.io\nTURSO_DB_AUTH_TOKEN=eyJhbGciOiJFZERTQSIsInR5cCI...\n\n# For local development\nTURSO_DB_URL=file:local.db\n```\n\n## Advanced usage\n\n### Multiple databases\n\nYou can create multiple database providers with different port names:\n\n```ts\nimport * as mainSchema from \"@/infra/db/schema\";\nimport * as analyticsSchema from \"@/infra/db/analytics-schema\";\nimport { createDrizzleTursoProvider } from \"@contract-kit/provider-drizzle-turso\";\n\nexport const mainDbProvider = createDrizzleTursoProvider({\n  schema: mainSchema,\n  portName: \"db\", // default\n});\n\nexport const analyticsDbProvider = createDrizzleTursoProvider({\n  schema: analyticsSchema,\n  portName: \"analyticsDb\",\n});\n\n// Then in your ports type:\nexport type AppPorts = {\n  db: DbPort<typeof mainSchema>;\n  analyticsDb: DbPort<typeof analyticsSchema>;\n};\n```\n\n### Accessing the Drizzle instance\n\nThe `DbPort` exposes the typed Drizzle database instance:\n\n```ts\nimport { eq } from \"drizzle-orm\";\n\nconst db = ctx.ports.db.db; // LibSQLDatabase<TSchema>\n\n// All Drizzle operations are available:\nawait db.select().from(schema.todos);\nawait db.insert(schema.todos).values({ id: \"1\", title: \"Hello\" });\nawait db.update(schema.todos).set({ title: \"Updated\" }).where(eq(schema.todos.id, \"1\"));\nawait db.delete(schema.todos).where(eq(schema.todos.id, \"1\"));\n\n// Prefer createDrizzleTursoUnitOfWork(...) for application workflows that\n// should run through repository ports and flush domain events after commit.\n\n// Access the underlying libSQL client for advanced operations:\nconst client = ctx.ports.db.client;\nconst result = await client.execute(\"SELECT * FROM todos WHERE id = ?\", [\"1\"]);\n```\n\n## Key design principles\n\n### Runtime vs. build-time separation\n\nThis provider follows a clean separation of concerns:\n\n- **Build-time (Drizzle CLI)**: Configured via `drizzle.config.ts`\n  - Used for generating migrations\n  - Used for introspecting the database\n  - Lives in your app repository\n\n- **Runtime (Provider)**: Configured via factory function\n  - Used for connecting to the database at runtime\n  - Used for executing queries in your use cases\n  - Gets the schema from your imports\n\n### Schema location independence\n\nThe provider **does not care** where your schema file lives. You:\n\n1. Define your schema file wherever makes sense (`infra/db/schema.ts`, `db/schema.ts`, etc.)\n2. Import it in your app: `import * as schema from \"@/infra/db/schema\"`\n3. Pass it to the factory: `createDrizzleTursoProvider({ schema })`\n\nThis keeps the provider flexible and your app in control of its structure.\n\n## API reference\n\n### `DbPort<TSchema>`\n\nThe port interface exposed on `ctx.ports.db`:\n\n```ts\ninterface DbPort<TSchema extends Record<string, any> = any> {\n  db: LibSQLDatabase<TSchema>;\n  client: Client;\n}\n```\n\n- `db`: The typed Drizzle database instance for ORM operations\n- `client`: The underlying libSQL client for advanced operations not covered by Drizzle\n\n### `createDrizzleTursoProvider<TSchema>(options)`\n\nFactory function to create a Drizzle Turso provider.\n\n**Parameters:**\n- `options.schema` (required): Your Drizzle schema object\n- `options.portName` (optional): Port name, defaults to `\"db\"`\n\n**Returns:** A provider that can be registered with `createServer`, `createNextServer`, or another Contract Kit server adapter.\n\n**Example:**\n```ts\nconst provider = createDrizzleTursoProvider({\n  schema: mySchema,\n  portName: \"db\", // optional\n});\n```\n\n### `createDrizzleTursoUnitOfWork<TSchema, TxPorts>(options)`\n\nFactory function to create a transaction-backed `UnitOfWorkPort`.\n\n**Parameters:**\n- `options.db` (required): The root `LibSQLDatabase<TSchema>` instance\n- `options.createTransactionPorts` (required): Factory that receives the Drizzle transaction client and event recorder\n- `options.eventBus` (optional): Event bus used to flush recorded events after commit\n- `options.transactionConfig` (optional): Drizzle transaction configuration\n\n**Returns:** A `UnitOfWorkPort<TxPorts>` that runs work inside\n`db.transaction(...)`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}