{"_id":"@ascendance-hub/sapphire-drizzle","_rev":"8-0bbb68bb5037d790c055452c8afaafc3","name":"@ascendance-hub/sapphire-drizzle","dist-tags":{"latest":"1.2.0","preview":"0.0.0-preview-20260531194731"},"versions":{"1.0.0":{"name":"@ascendance-hub/sapphire-drizzle","version":"1.0.0","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@1.0.0","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"e4a95b50932488a7e284b6b4eb2e146fd2f3223d","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-1.0.0.tgz","fileCount":7,"integrity":"sha512-0gNUqo+ztLlhbxjWntwLI+5kNG45TCwMQqd8o0Zsrsk/FcGFMxLR0rQ0dF4wU2BDFqDX5Yd0M5AjPeE5yK8rlg==","signatures":[{"sig":"MEUCIAghHcBF2wjJNAkfwSdaamFjUSsjmFdzz63Nenmks8AHAiEAmeCTElPuzVr1Y0jaNXacGN9JI25leOKlZwj+z1o5Syg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49128},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"7ca237cf34d7dbf4b6002e6eeb8f1948b5fa1401","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.7","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"*"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_1.0.0_1778967982387_0.3655628977071297","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-preview-20260518150854":{"name":"@ascendance-hub/sapphire-drizzle","version":"0.0.0-preview-20260518150854","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@0.0.0-preview-20260518150854","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"3f46a9939a5daa618ccd2d8bd7db990c4f493741","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-0.0.0-preview-20260518150854.tgz","fileCount":7,"integrity":"sha512-aHljoD7KeatZ0xpJb5QWZWbkKYzoOr6EzocEmzGJxVBYjXp+Z0rwsesmKqWvbS3zJtDthqeMqxxDKcDgFbwRsw==","signatures":[{"sig":"MEYCIQDUtXqXCxMzkPy0DXyTpSyTPoMYc/3UdsxI60riSH0TlwIhAPXxtzHMRQr8XfSAlSZw5Jf3B0rteMOdx74B7a6TuLUz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54216},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"7b0ae9d5231c706543b59d36b56e9d7a73697dd8","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.7","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"0.0.0-preview-20260518150854"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":"0.0.0-preview-20260518150854"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_0.0.0-preview-20260518150854_1779116938265_0.26689460354941663","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-preview-20260518153515":{"name":"@ascendance-hub/sapphire-drizzle","version":"0.0.0-preview-20260518153515","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@0.0.0-preview-20260518153515","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"855b7b4e8d90151c8780995ead55b8e6c78a5bda","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-0.0.0-preview-20260518153515.tgz","fileCount":7,"integrity":"sha512-ex+Enzm5kQKC43hSsRsLUnUda3n3eHLBiECnwieytTYEeRldNxHKfHbwAp9EUPWexrKx/z4pmjxqyz12hPBT9Q==","signatures":[{"sig":"MEYCIQDPQhDXGpkeNIgrfKllqluSYGGY5Schpvvz3dBZe+dyiQIhAMh+Pjzc9vEaqTF7CDGSEYQ74jW0H3xFmTLFklzdBw0G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54216},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"7f07a1e46fe73ca49f03f7b373377b184481c0b2","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.7","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"0.0.0-preview-20260518153515"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":"0.0.0-preview-20260518153515"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_0.0.0-preview-20260518153515_1779118519405_0.24630640466894738","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@ascendance-hub/sapphire-drizzle","version":"1.1.0","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@1.1.0","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"e2a372bb02c3aa241964dd81b8dbcfea2fa3ca8d","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-1.1.0.tgz","fileCount":7,"integrity":"sha512-SuS4yMs99spjUOfpV5Ou7kxhNTS3hS5zUtLhNYNsKWQP/m5Q0RSK60TgDOkcK38zLhB1VoMm/SLanWzjnp9yIg==","signatures":[{"sig":"MEYCIQCDtXh5sj5tyCNKPHpBxnqZVg/bEXnQ9R4SUrBdFg04KwIhALWVxsoSZKa0naiwZS9jByuXzu/jypW8C9BzDsCpyCpn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54145},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"76178e21015fe89d02d149a06998178a2d956a3f","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.7","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"*"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_1.1.0_1779118573577_0.6167971801129879","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-preview-20260531184331":{"name":"@ascendance-hub/sapphire-drizzle","version":"0.0.0-preview-20260531184331","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@0.0.0-preview-20260531184331","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"d2f4ed053ee69038d009cf0c9252296ba9535573","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-0.0.0-preview-20260531184331.tgz","fileCount":7,"integrity":"sha512-z94EfQedD6jSQjqqv4nWytSYn2W9VRNnq+oj3GOoyvCjbDjxdjzJuEAcVEDjgoF3MDIzyPULbsKt/7K3rYPFlw==","signatures":[{"sig":"MEUCIBAwLutxRSsVUGFI3itRKk1KQ8QfvQszvygFZaKnhZdQAiEA8xN+8wGdHegOgRTIPldY5InFqiyGUZab50KR8JLZcBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54216},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"e8461b27236d5fc3b9b0810c610bc53c79e7e5fc","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.8","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"0.0.0-preview-20260531184331"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":"0.0.0-preview-20260531184331"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_0.0.0-preview-20260531184331_1780253015140_0.24622673195821565","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-preview-20260531190529":{"name":"@ascendance-hub/sapphire-drizzle","version":"0.0.0-preview-20260531190529","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@0.0.0-preview-20260531190529","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"b76e1b80a0e6577721ced463e25251e85d8a2fb3","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-0.0.0-preview-20260531190529.tgz","fileCount":7,"integrity":"sha512-m3VpvoX+VNO9+pkfEKYsJa2dlb6zKaoyB4iTx/bRhdlyHkArAVhLeEsUyk0Jb9b/pt5plKK9DnameZJI1E7RXw==","signatures":[{"sig":"MEYCIQC/5DtsKRu5GfU6NyyjXn2Bv8eI2MWXFqg0Rj1ove+rbAIhAIWAkf13nKf+RgorlPBErmPS0BcA8rUX1wUzsJM3Mjje","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54216},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"8a9b61513b5f64c6449a6a061d9bb6e0ffe7c865","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.8","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"0.0.0-preview-20260531190529"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":"0.0.0-preview-20260531190529"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_0.0.0-preview-20260531190529_1780254332851_0.26525651930893934","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-preview-20260531194731":{"name":"@ascendance-hub/sapphire-drizzle","version":"0.0.0-preview-20260531194731","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","_id":"@ascendance-hub/sapphire-drizzle@0.0.0-preview-20260531194731","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"dist":{"shasum":"1faac2bccda5f181a5a11feff6c462e4772d7051","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-0.0.0-preview-20260531194731.tgz","fileCount":7,"integrity":"sha512-JeU2bfyt6pqXRc/66Tdqfj/LVLhuIG3QLZCl0Vo6QluWqv5QeAuYDNupxfWIDyhqdiCNj4uy+w8jX4VpU+Wmiw==","signatures":[{"sig":"MEQCIGVlOqBn92a2cdBYsf/nLD2Q/Ir8cYlH4SXveLf4FuE+AiAhW+loorYfcvmIGbl4gl/clBfbhGI8fKWttqVRCn9wPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54216},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"dd7c2b94ce17eb7f2754a707b058e45e23baa1f9","scripts":{"test":"vitest run","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"repository":{"url":"git+https://github.com/Ascendance-Hub/Sapphire.git","type":"git","directory":"packages/drizzle"},"_npmVersion":"10.9.8","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2","better-sqlite3":"^12.0.0","@electric-sql/pglite":"^0.4.0","@ascendance-hub/sapphire-core":"0.0.0-preview-20260531194731"},"peerDependencies":{"drizzle-orm":"^0.44 || ^0.45","@ascendance-hub/sapphire-core":"0.0.0-preview-20260531194731"},"_npmOperationalInternal":{"tmp":"tmp/sapphire-drizzle_0.0.0-preview-20260531194731_1780256854150_0.1090192514103514","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@ascendance-hub/sapphire-drizzle","version":"1.2.0","description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"sideEffects":false,"scripts":{"build":"tsup","test":"vitest run","typecheck":"tsc --noEmit"},"peerDependencies":{"@ascendance-hub/sapphire-core":">=1.0.0","drizzle-orm":"^0.44 || ^0.45"},"devDependencies":{"@ascendance-hub/sapphire-core":"*","@electric-sql/pglite":"^0.4.0","better-sqlite3":"^12.0.0","drizzle-kit":"^0.31.0","drizzle-orm":"^0.45.2"},"repository":{"type":"git","url":"git+https://github.com/Ascendance-Hub/Sapphire.git","directory":"packages/drizzle"},"keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","publishConfig":{"access":"public"},"engines":{"node":">=20"},"bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","_id":"@ascendance-hub/sapphire-drizzle@1.2.0","gitHead":"c385975185892d170d5f003f45740273bfb29d15","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-yFC2KZ6yj1UPcQpt2jR3o0p/t0yt85jV4xmYt0e8p1CcOsOuj53mPeDavuOMKO0rMyeihvBwYY1GWPSxQmvRLg==","shasum":"8bf320411f4ad610aa2d38f188750c8d9e73e5aa","tarball":"https://registry.npmjs.org/@ascendance-hub/sapphire-drizzle/-/sapphire-drizzle-1.2.0.tgz","fileCount":7,"unpackedSize":54145,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID8DKrxF7ZIcu5HYle1GJ5A9upRH2M46LzGhcPmP4Y89AiAPXY9eAjF0K5sZDRmmawaabLBXjcLhFT433wmxJcm3Tw=="}]},"_npmUser":{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"},"directories":{},"maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sapphire-drizzle_1.2.0_1780257338636_0.5056515481186368"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-16T21:46:21.991Z","modified":"2026-05-31T19:55:38.961Z","1.0.0":"2026-05-16T21:46:22.545Z","0.0.0-preview-20260518150854":"2026-05-18T15:08:58.427Z","0.0.0-preview-20260518153515":"2026-05-18T15:35:19.565Z","1.1.0":"2026-05-18T15:36:13.729Z","0.0.0-preview-20260531184331":"2026-05-31T18:43:35.294Z","0.0.0-preview-20260531190529":"2026-05-31T19:05:32.994Z","0.0.0-preview-20260531194731":"2026-05-31T19:47:34.283Z","1.2.0":"2026-05-31T19:55:38.802Z"},"bugs":{"url":"https://github.com/Ascendance-Hub/Sapphire/issues"},"author":{"name":"Alexandre Damas Murata","email":"alexandre_murata@hotmail.com"},"license":"MIT","homepage":"https://github.com/Ascendance-Hub/Sapphire#readme","keywords":["typescript","schema","drizzle","drizzle-orm","sapphire"],"repository":{"type":"git","url":"git+https://github.com/Ascendance-Hub/Sapphire.git","directory":"packages/drizzle"},"description":"Drizzle adapter for Sapphire (pg/mysql/sqlite).","maintainers":[{"name":"alexandre-murata","email":"alexandre_murata@hotmail.com"}],"readme":"# @ascendance-hub/sapphire-drizzle\n\nDrizzle ORM adapter for [Sapphire](https://github.com/Ascendance-Hub/Sapphire). Converts a Sapphire IR (`SapphireSchemaNode`) into a Drizzle table definition (`pgTable` / `mysqlTable` / `sqliteTable`) ready to pass into `drizzle(connection, { schema: { ... } })`.\n\n> **Unofficial.** A community adapter — not affiliated with, sponsored, or endorsed by the Drizzle Team.\n\n## Install\n\n```bash\nnpm install @ascendance-hub/sapphire-core @ascendance-hub/sapphire-drizzle drizzle-orm\n```\n\n`@ascendance-hub/sapphire-core` and `drizzle-orm` are peer dependencies. The supported `drizzle-orm` range is `^0.44 || ^0.45` — pinned conservatively because Drizzle still ships frequent column-builder breaking changes.\n\n## Register the adapter\n\nThe adapter is **not auto-registered**. Call `registerAdapter` once in your application entry point:\n\n```ts\nimport { Sapphire, registerAdapter } from '@ascendance-hub/sapphire-core'\nimport { toDrizzleSchema } from '@ascendance-hub/sapphire-drizzle'\n\nregisterAdapter('drizzle', toDrizzleSchema)\n\nexport const a = new Sapphire({ defaultAdapter: 'drizzle' })\n```\n\n## Quickstart\n\n```ts\nimport { drizzle } from 'drizzle-orm/node-postgres'\nimport { toDrizzleSchema } from '@ascendance-hub/sapphire-drizzle'\nimport { a } from './sapphire'\n\nconst User = a\n  .object({\n    name: a.string().min(1),\n    email: a.string().email().unique(),\n    age: a.number().int().min(0).optional(),\n  })\n  .name('User')\n\nconst users = toDrizzleSchema(User.toSchema(), { dialect: 'pg' })\n\nconst db = drizzle(connectionString, { schema: { users } })\n// `db.select().from(users)` is fully typed by Drizzle.\n```\n\nFor multi-table emission with cross-table refs, share a single `DrizzleTableRegistry` instance across calls (see [Refs + `DrizzleTableRegistry`](#refs--drizzletableregistry) below).\n\n## IR mapping table\n\n| IR `kind` | Postgres (`pg-core`)                                      | MySQL (`mysql-core`)                            | SQLite (`sqlite-core`)                                           |\n| --------- | --------------------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------- |\n| `string`  | `text(name)` (or `uuid(name)` when `format: 'uuid'`)      | `varchar(name, { length: maxLength ?? 255 })`   | `text(name)` (uuid → `text`, see Limitations)                    |\n| `number`  | `integer(name)` (when `int()`) or `doublePrecision(name)` | `int(name)` or `double(name)`                   | `integer(name)` or `real(name)`                                  |\n| `boolean` | `boolean(name)`                                           | `boolean(name)`                                 | `integer(name, { mode: 'boolean' })` (SQLite has no native bool) |\n| `date`    | `timestamp(name, { withTimezone: true, mode: 'date' })`   | `datetime(name, { mode: 'date' })`              | `integer(name, { mode: 'timestamp' })` (unix ms)                 |\n| `object`  | `jsonb(name)` (nested object) / table at root             | `json(name)` (nested) / table at root           | `text(name, { mode: 'json' })` (nested) / table at root          |\n| `array`   | `jsonb(name)`                                             | `json(name)`                                    | `text(name, { mode: 'json' })`                                   |\n| `tuple`   | `jsonb(name)`                                             | `json(name)`                                    | `text(name, { mode: 'json' })`                                   |\n| `union`   | `jsonb(name)`                                             | `json(name)`                                    | `text(name, { mode: 'json' })`                                   |\n| `literal` | `text(name)`                                              | `varchar(name, { length: 255 })`                | `text(name)`                                                     |\n| `enum`    | `text(name)` (`pgEnum` opt-in via meta)                   | `varchar(name, { length: 255 })`                | `text(name)`                                                     |\n| `record`  | `jsonb(name)`                                             | `json(name)`                                    | `text(name, { mode: 'json' })`                                   |\n| `ref`     | `integer(name).references(() => target[pk])` (lazy)       | `int(name).references(() => target[pk])` (lazy) | `integer(name).references(() => target[pk])` (lazy)              |\n\n### Universals (applied to every column)\n\n- `required` + not `nullable` → `.notNull()`.\n- `unique` → `.unique()`.\n- `default(v)` → `.default(v)`.\n- All other modifiers (`min`/`max`/`regex`/`format`/`startsWith`/`endsWith`/`multipleOf`/`finite`/`safe`/`coerce`/`transforms`) are **not enforced at the DB level** — they stay in `safeParse`. The single exception is MySQL `varchar(maxLength)`, which uses `node.maxLength` to size the column (default `255`).\n\n### Schema-level\n\n- `ObjectField.name(...)` → table name (override with `options.tableName`).\n- Implicit primary key `id` (`serial` in pg, `serial` in mysql, `integer({ autoIncrement: true })` in sqlite). Disable via `options.primaryKey: false`, or rename via `options.primaryKey: 'pk'`.\n- `ObjectField.index(keys, opts?)` → composite indexes emitted in the third-arg callback of `pgTable` / `mysqlTable` / `sqliteTable`, in the **array form** (the object form is deprecated in Drizzle). Names follow `<tableName>_idx_<i>`.\n- `ObjectField.timestamps()` is a no-op (Sapphire's `timestamps()` is a Mongoose-flavoured concept; if you want `createdAt`/`updatedAt` in Drizzle, declare them explicitly with `.default()`).\n\n## Refs + `DrizzleTableRegistry`\n\nDrizzle requires `references(() => targetTable.column)` to be **lazy**, because the target table may not exist yet (forward refs, cycles). Sapphire `ref('User')` is wired into a registry that the lazy callback queries at query time:\n\n```ts\nimport { toDrizzleSchema, DrizzleTableRegistry } from '@ascendance-hub/sapphire-drizzle'\nimport { a } from './sapphire'\n\nconst tables = new DrizzleTableRegistry()\n\nconst User = a.object({ name: a.string() }).name('User')\nconst Post = a\n  .object({\n    title: a.string(),\n    author: a.ref('User'),\n  })\n  .name('Post')\n\nconst users = toDrizzleSchema(User.toSchema(), { dialect: 'pg', tables })\nconst posts = toDrizzleSchema(Post.toSchema(), { dialect: 'pg', tables })\n\n// `posts.author.references(() => users.id)` resolves at query time.\n```\n\n### Cycles (User ↔ Post)\n\nEmit both with the same registry; the lazy callback resolves once the cycle is closed. If the callback fires before the target table is registered, the adapter throws:\n\n```\ndrizzle adapter: ref target table \"User\" not registered.\nEmit it before invoking queries that traverse this reference.\n```\n\n## Schema-level options\n\n| Option       | Default      | Effect                                                                                        |\n| ------------ | ------------ | --------------------------------------------------------------------------------------------- |\n| `dialect`    | _(required)_ | `'pg'` / `'mysql'` / `'sqlite'`. Selects the column-builder set and returned table shape.     |\n| `tableName`  | `node.name`  | Argument passed to `pgTable(name, ...)` / `mysqlTable(...)` / `sqliteTable(...)`.             |\n| `primaryKey` | `'id'`       | Implicit PK column name. `false` disables the implicit PK (you declare it manually via meta). |\n| `tables`     | _(new)_      | Shared `DrizzleTableRegistry`. Pass the same instance across related calls to resolve refs.   |\n\n## `.adapter('drizzle', opts)` escape hatch\n\nAnything passed via `.adapter('drizzle', { ... })` is read from `meta.drizzle` and applied as method calls on the Drizzle column builder. Two scopes are supported:\n\n- **Top-level keys** — applied for every dialect.\n- **Dialect sub-keys** (`pg`, `mysql`, `sqlite`) — applied only when `options.dialect` matches.\n\n```ts\na.string().adapter('drizzle', {\n  // Top-level: applied for any dialect that has the method.\n  primaryKey: true,\n  // Dialect-specific: only applied when emitting for pg.\n  pg: { array: true },\n  // Same key under a different dialect bucket — ignored when emitting for pg.\n  mysql: { fixed: 12 },\n})\n```\n\nArgument handling:\n\n- `true` → call with no args (`col.notNull()`).\n- `Array` → spread as positional args (`col.method(...args)`).\n- Anything else → passed as the single argument (`col.method(value)`).\n\n**Best-effort.** Methods missing on the column builder (e.g. `.array()` on a `text` column under SQLite) are silently skipped. To swap the column constructor itself (e.g. force `text` instead of `varchar` in MySQL), declare the table by hand — the escape hatch only chains methods on an already-built column.\n\n## Limitations\n\n- **No runtime validation in Drizzle.** Drizzle is a query builder, not a validator. Sapphire keeps validation in `safeParse`; the Drizzle adapter only shapes the table.\n- **Composite kinds collapse to JSON columns.** `array`, `tuple`, `union`, `record`, and nested `object` all map to `jsonb` (pg) / `json` (mysql) / `text({ mode: 'json' })` (sqlite). DB-level validation of the composite shape is lost — keep it in `safeParse`.\n- **`enum` is `text`/`varchar` by default.** `pgEnum` requires a separately-declared type with a unique name and is opt-in via `.adapter('drizzle', { pg: { ... } })`.\n- **String validators are runtime-only.** `minLength`, `regex`, `format` (`email`/`url`/`uuid`), `startsWith`, `endsWith` are not enforced at the DB level. The single exception is MySQL: `node.maxLength` sizes `varchar(N)`.\n- **SQLite `uuid` is `text`.** SQLite has no native UUID type. The adapter emits `text(name)` and relies on `safeParse` for format checking.\n- **Boolean and date in SQLite are emulated** as `integer({ mode: 'boolean' })` / `integer({ mode: 'timestamp' })`. Drizzle handles serialisation transparently.\n- **No `relations()` API.** Sapphire refs become Drizzle `references(...)` only. The higher-level `relations(users, ({ many }) => ({ ... }))` API is deferred to V1_FUTURE.\n- **Migrations are out of scope.** Pair the generated tables with `drizzle-kit` in your own pipeline.\n- **Return types of `toDrizzleSchema` are `any`** per overload. The exact `PgTableWithColumns<...>` / `MySqlTableWithColumns<...>` / `SQLiteTableWithColumns<...>` shapes are not reliably exported across the supported peerDep range. The runtime table is genuine; only the declared TS type is widened. Pass the table into `drizzle(conn, { schema: { users } })` and use the connection-level types for queries.\n- **Auto-register removed.** Call `registerAdapter('drizzle', toDrizzleSchema)` once in your entry point.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}