{"_id":"@avelonjs/supabase","_rev":"14-a4574aefb83939e2eaa9340488f00df9","name":"@avelonjs/supabase","dist-tags":{"latest":"0.8.1"},"versions":{"0.1.0":{"name":"@avelonjs/supabase","version":"0.1.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.1.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"56be78d4c0c8b53f0835a9ca6f503cfe85a90aac","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.1.0.tgz","fileCount":26,"integrity":"sha512-do9dx1QwgYzD/3VVwyQmu95rRglxlmyViHP34nONt2WlgbRD78OGSVjfW0xiMnlLcQhuRUJAi5asK5bA/l76Sw==","signatures":[{"sig":"MEUCIQC10s3XkVBtYYa3WeDoCxTX09neJ31wiIaw4PIi0xg2OgIgTmM6J4uV/Mh8NqGPODON/CbXZcLETd80H0q/iS4PHfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101495},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts"},"gitHead":"4dd65334a5b17f25e548c8a1601d7445349b79da","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"12.0.2","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.1.0_1787877825220_0.11604042172691953","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@avelonjs/supabase","version":"0.3.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"163e74be4677ad55d49f0ba5872c66b747df00b1","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.0.tgz","fileCount":29,"integrity":"sha512-CEH+di6mFYFIM4YIb/0q04sj7UUvK4topIMBKwJ4M8cztf60Mx038SdAOByD1yyIe3VwEOyh5ip+vdJtS9qFKQ==","signatures":[{"sig":"MEUCIQDDrknnMk34SbouiAMNyHiIh8HP/hdYYUYMdoaRpAhyTQIgWzrYIw7wCdGtBgaSZrAUC7cbav5fFYNgi9pLmf6eRNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142539},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"5ca2de946d13813afe58a4fe89b01ef65edc2870","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.0_1788023481997_0.7628233084480796","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@avelonjs/supabase","version":"0.3.1","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.1","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"f7d60fdcf8e546f3455b19b7a6f51d0f1382d7d9","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.1.tgz","fileCount":29,"integrity":"sha512-zHACqMQ3qm2jxDIShlC2DQPq7UVVVDXQGXS5jUg63z8rs5RGEZaYcInVVds2BUXAgIzc8P1TNH5EPxUDoOaj3w==","signatures":[{"sig":"MEUCIQD9DiCgYPOGvVPmq84CjTaHmA+LDK8uqGHdWflIt63GswIge26b/yZn9iElfCj3kn8WgRmKJrBov9WZAtvV/iBEoUY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142539},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"7db3e1301e4ce243c5b34a813b50c6b286d5bd81","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.1_1788024219931_0.1936725163544628","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@avelonjs/supabase","version":"0.3.2","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.2","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"bd8e8bde69492c644a3092b5ae4832c7546884c1","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.2.tgz","fileCount":29,"integrity":"sha512-ABJ+Af9T5feK3t1qUUEvq4NrASe9NtXy6+RbD3VOMdY4jYdmtoZjvzxyQFfvr5C6VGBPgF6uKd40rLIeOC40Wg==","signatures":[{"sig":"MEQCIFGZHTv6FE0Fdqqg+/AEfq3FJAHvvDvtGTXKEfxlWDr1AiBNGMDaAZgFQ/m3st2EarYOY4dpTQ4yGEdCJ31Nva2Idw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142539},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"373016ed35e1c24c983e76bd76fab0959b249021","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.2_1788025881299_0.22900038907616316","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@avelonjs/supabase","version":"0.3.3","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.3","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"bd4472880cffe9c987a121d2b43b99c7e82e92a0","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.3.tgz","fileCount":29,"integrity":"sha512-gzUuwDXICFW6U4tByUdAqd5f0bsh9k/dtWQ3Tw2AIL+T2Alz7Po4j98LHYoF7V1xqscWP55RbPq3S6X2U+JPFg==","signatures":[{"sig":"MEUCICnGbXerMcoHYpGiT/MmI8YDNwyUnmJAxXhyDvmpBbidAiEAmNzLo9vdas59rV9P3xw/HpQuSb++VyqElKlv2RZbsvc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"7cf9902a019c313c1754d81e2ff067147b39cc8f","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.3_1788028629215_0.8031287996556622","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@avelonjs/supabase","version":"0.3.4","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.4","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"54c878efd961fef57802220559e18593ce551950","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.4.tgz","fileCount":29,"integrity":"sha512-he607OZnNi4XYXFtxSh+6GAbC21B5CKu1QC7HsSWrPYI61qd+/OrXhZxEaW+50fMSk4NrIk95uJiHofOSdOxig==","signatures":[{"sig":"MEQCIHD8BZIaxcQzsZp0tVBLiSidJTjsqRPw5Wbkh9Ssi98DAiA0XahydQSipZEALXtaqdk8r01M/BMMBW9GMRbthKCJrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"90bba7a154835ac71d6aca6c0e3a83dea5d5a709","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.4_1788030154508_0.35785562136932314","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@avelonjs/supabase","version":"0.3.5","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.5","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"7ede4abc62b7e9e6d70e7e1a9d0c7cc7be5107a2","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.5.tgz","fileCount":29,"integrity":"sha512-TNfsO7XsWBBHu5GE391EHzXdm/sYACHyvI9+BvZURSHEugqQkKRlYjnfRpYCvwAC5L3Qyx7SC6EbpIeMPYKsmg==","signatures":[{"sig":"MEUCIBkPjg6ujYGmmWC3z59D0ITksFTxbn1zTA5mJ/9PT0efAiEAkZtEd0L5yWTYJp9vxpMlo5sD3O4zaC5eUhS9Gvt6mk0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"3f76dd494bd9e721f9088db1a8f4daea53410a7a","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.5_1788032073661_0.07882997823305549","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@avelonjs/supabase","version":"0.3.6","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.3.6","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"8e79889fd8d67d4c1eacd809b9806c5648258ce7","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.3.6.tgz","fileCount":29,"integrity":"sha512-5GomnQ4qPaEogK7WEtaueblgy0ysaNgTvomu60te64qNsi5THX1iriSSkLB4BJvS+ppPGIH+L5rnfgFJ7YUASA==","signatures":[{"sig":"MEUCID+k0Zlv3otkf22lw265Y/5eKnFZs7+j+D9JJY3+3HhhAiEA8yVVoTDirJYS+VKHEBX0LREYsQYGtBHQtqffhAwrwcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"3ef55fff54a51fd6085a5ed18163ddd0b8ccebb4","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.3.6_1788039406234_0.3664222621388977","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@avelonjs/supabase","version":"0.4.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.4.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"90679d42960e6bc57cbc7239a10c05812ae572f9","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.4.0.tgz","fileCount":29,"integrity":"sha512-a2v3D9ACR/trsShGNotsXT7sfrhQyBmdGAL9p9NUMS9EcEyW/VFV4O0STNsm8q5O1TXQ6y8kMa61a3LPzZceYQ==","signatures":[{"sig":"MEUCIDhBML/CTNUlMNr7Aah+DV2aUBiwqJlD7d3tWGFKf1bcAiEAyU54FtBbwAucGJyzVEcCaDqYebb/73eN8bDzZBkWy7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"012a24ec3e5cbf2682493e79398779c5f4ce50d5","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.4.0_1788047803722_0.8348043876033344","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@avelonjs/supabase","version":"0.5.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.5.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"865324e674029fa1fc0116121395057e57598146","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.5.0.tgz","fileCount":29,"integrity":"sha512-J0oW6YlTmXGEu+ejWsotV/fmmn4fM+frMOQCVMcNzmkL1zPurOkcODdbWmeqT7SyXnMuDbQUmSoOrGqki16nWQ==","signatures":[{"sig":"MEUCIF5sW47LlHyB9udY5jGjO+3T7m8qkjExyhXJqnRUDRCHAiEApIoJwn3kIAA4DpxMikZcqy52BOptbVz90H2zGZGq04k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"9605f4db9921b323684a72cca1eb125fca936237","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.5.0_1788054181319_0.2554034697039218","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@avelonjs/supabase","version":"0.6.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.6.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"0d21b9df5274540b938fd093f15909d9dca91366","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.6.0.tgz","fileCount":29,"integrity":"sha512-Bu54BeYksZjXkCnpPCvCe+y+yiRCHjGKuZ6QBP70GRZbc1oe3Dkd8O5tRL3taICxy3DaCPyKHWHPodQhdOVuBQ==","signatures":[{"sig":"MEYCIQDhiSn0RvsKcQEW+Xu8sXwQOtwgWjOt+h/OxHrYsEOEnAIhAIUcH9UNtLwn8K0BxlaWDHfqiV89R7W9mbUemze8S0GQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"54023b71e432677d2cf32a6b5cceeb2eb90aac3f","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.6.0_1788059432020_0.5446651018030852","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@avelonjs/supabase","version":"0.7.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.7.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"d349e6f4e0bc5bf6a53201cb75a3ad8092a5780f","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.7.0.tgz","fileCount":29,"integrity":"sha512-2uFD69HElaiGS1yj7SJ6qlyNEAyVOQcePWcDyIIG+wNnVkrznozgojhYocIh30ouAd7sbFxZRPTjK7HrQDonGQ==","signatures":[{"sig":"MEYCIQCFfRfckdd642L4xP8N/4C/PW1oNcspzb1KGKEnT+7qXAIhAMl8i8bMfAMRYTJ7GsnfHp1Q45N/Hg6e5XmFnK0gS41t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"b8ce5ffcbba806b76a3a92f0e92e5455f42e5802","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.7.0_1788061409315_0.684604278928199","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@avelonjs/supabase","version":"0.8.0","keywords":["avelon","typescript","supabase","postgres"],"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","_id":"@avelonjs/supabase@0.8.0","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"homepage":"https://github.com/yannelli/avelon","bugs":{"url":"https://github.com/yannelli/avelon/issues"},"dist":{"shasum":"f27900cfe606516f91c007cf89ae53584d783358","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.8.0.tgz","fileCount":29,"integrity":"sha512-/bYQ8ZpW3Dgsegx23A3zNh857QvaJ9rKpx3mlGBETa+AMgYFlBNLPjM3C4uic6WLp7rqbMpBCKAYZdTNSWb8RA==","signatures":[{"sig":"MEYCIQClj4M4iTFTZLwfcpquFSIwOWOtq/STOSbPhf6cYEVMLQIhAKUygJr60+9ObebxmgohlkEY/c0ws67feLnsg1W/50rD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142814},"type":"module","engines":{"bun":">=1.3.14"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./identity":"./src/identity/driver.ts","./database/bun":"./src/database/bun.ts"},"gitHead":"85231d8c4b64ac61a0a67f1ae8d1610bd8e609ac","private":false,"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"repository":{"url":"git+https://github.com/yannelli/avelon.git","type":"git","directory":"packages/supabase"},"_npmVersion":"10.9.8","description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"1.3.14","typescript":"5.9.3","@avelonjs/conformance":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/supabase_0.8.0_1788068900926_0.32723113049669283","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@avelonjs/supabase","version":"0.8.1","private":false,"description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","license":"MIT","author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"homepage":"https://github.com/yannelli/avelon","repository":{"type":"git","url":"git+https://github.com/yannelli/avelon.git","directory":"packages/supabase"},"bugs":{"url":"https://github.com/yannelli/avelon/issues"},"keywords":["avelon","typescript","supabase","postgres"],"type":"module","publishConfig":{"access":"public"},"exports":{".":"./src/index.ts","./database":"./src/database/index.ts","./database/bun":"./src/database/bun.ts","./identity":"./src/identity/driver.ts"},"scripts":{"test":"bun test","typecheck":"tsc --noEmit","fixtures:reset":"bun ./scripts/reset-fixtures.ts"},"dependencies":{"@avelonjs/core":"workspace:*","@avelonjs/postgres":"workspace:*"},"devDependencies":{"@avelonjs/conformance":"workspace:*","@types/bun":"1.3.14","typescript":"5.9.3"},"engines":{"bun":">=1.3.14"},"_id":"@avelonjs/supabase@0.8.1","gitHead":"3d7d0c0ff7f417e9f9a5c54dc85f037e8901bf81","_nodeVersion":"24.3.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-bLtYqy6GTSuSjqfCopIG3RLVARMk7bnAj6Z7qfcwTE6bXfbc0+pZHjKwomOsrFvv2U7s60feQ8yhhpLC5TbVSQ==","shasum":"cec325375e04c856dc100e4412e2474466b24321","tarball":"https://registry.npmjs.org/@avelonjs/supabase/-/supabase-0.8.1.tgz","fileCount":29,"unpackedSize":142814,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDaPDXYlPljZzAcbbYB4ISB5Z8JH2g3R+prGqRFgQy1QQIhANsr8wLdX8ByogIqwc3akNcYODNM5sZAbGjDd+ZQhu5y"}]},"_npmUser":{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"},"directories":{},"maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/supabase_0.8.1_1788573059705_0.6833702508166917"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-28T00:43:45.090Z","modified":"2026-09-05T01:51:00.022Z","0.1.0":"2026-08-28T00:43:45.395Z","0.3.0":"2026-08-29T17:11:22.178Z","0.3.1":"2026-08-29T17:23:40.058Z","0.3.2":"2026-08-29T17:51:21.427Z","0.3.3":"2026-08-29T18:37:09.342Z","0.3.4":"2026-08-29T19:02:34.636Z","0.3.5":"2026-08-29T19:34:33.796Z","0.3.6":"2026-08-29T21:36:46.375Z","0.4.0":"2026-08-29T23:56:43.869Z","0.5.0":"2026-08-30T01:43:01.459Z","0.6.0":"2026-08-30T03:10:32.161Z","0.7.0":"2026-08-30T03:43:29.458Z","0.8.0":"2026-08-30T05:48:21.065Z","0.8.1":"2026-09-05T01:50:59.845Z"},"bugs":{"url":"https://github.com/yannelli/avelon/issues"},"author":{"name":"Ryan Yannelli","email":"ryanyannelli@gmail.com"},"license":"MIT","homepage":"https://github.com/yannelli/avelon","keywords":["avelon","typescript","supabase","postgres"],"repository":{"type":"git","url":"git+https://github.com/yannelli/avelon.git","directory":"packages/supabase"},"description":"Supabase drivers for Avelon's database, identity, social, tokens, storage, and queue contracts.","maintainers":[{"name":"ryanyannelli","email":"ryanyannelli@gmail.com"}],"readme":"# @avelonjs/supabase\n\n`@avelonjs/supabase` implements Supabase-backed drivers for Avelon. The database surface compiles `QueryIR` to PostgREST, declares `transactions: false`, and synchronizes ward predicates into Postgres row-level security. The identity surface talks to GoTrue over HTTP and binds sessions to request-scoped cookies. Reach for this package when your application targets Supabase and needs portable queries, auth, and database-enforced wards.\n\n## Installation\n\n```sh\nbun add @avelonjs/supabase\n```\n\n```sh\nexport SUPABASE_REST_URL=http://127.0.0.1:3001\nexport SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\nexport SUPABASE_DB_URL=postgresql://postgres:avelon@127.0.0.1:5432/avelon_supabase\nexport SUPABASE_AUTH_URL=http://127.0.0.1:54321/auth/v1\nexport SUPABASE_ANON_KEY=local-anon-key\n```\n\n## Basic Usage\n\n```ts\nimport { createSupabaseDatabase } from '@avelonjs/supabase'\nimport type { QueryIR } from '@avelonjs/core'\n\nconst db = createSupabaseDatabase()\n\nconst published: QueryIR = {\n  table: 'posts',\n  mode: 'select',\n  select: ['id', 'title'],\n  where: [{ kind: 'null', column: 'published_at', negated: true }],\n  relations: [],\n  order: [{ column: 'published_at', direction: 'desc' }],\n  limit: 10,\n}\n\nawait db.execute(published)\n```\n\n## Capabilities\n\n| Capability         | Value   | Notes                                                                         |\n| ------------------ | ------- | ----------------------------------------------------------------------------- |\n| `transactions`     | `false` | PostgREST has no interactive transactions                                     |\n| `rowSecurity`      | `true`  | `syncWards()` compiles registered wards to RLS                                |\n| `maxRelationDepth` | `2`     | Measured against live PostgREST relation loading                              |\n| `fullTextSearch`   | `false` | No portable `search()` surface in v1                                          |\n| `upsert`           | `true`  | Wildcard upserts are native; explicit update lists use `avelon_upsert_subset` |\n| `returning`        | `true`  | Write queries may project rows                                                |\n| `windowFunctions`  | `false` | Not available over PostgREST                                                  |\n| `jsonOperators`    | `true`  | Informational                                                                 |\n\n## Ward Synchronization\n\n```ts\nimport { createSupabaseBunDatabase } from '@avelonjs/supabase/database/bun'\n\nconst db = createSupabaseBunDatabase({\n  wards: [\n    {\n      name: 'posts_owner_read',\n      table: 'posts',\n      command: 'select',\n      using: {\n        kind: 'compare',\n        column: 'user_id',\n        op: '=',\n        value: { claim: 'uid' },\n      },\n    },\n  ],\n})\n\nawait db.syncWards()\n```\n\n`{ claim: 'uid' }` compiles to `auth.uid()::text`. A live two-identity denial test in this package proves a cross-tenant read is rejected after sync.\n\n## Two entries\n\nQuery traffic goes over PostgREST, so `@avelonjs/supabase/database` carries no `bun` specifier and runs on a Node runtime. Migrations, fixtures and `syncWards()` issue DDL, which PostgREST cannot, so they need a Postgres socket. `@avelonjs/supabase/database/bun` supplies one through Bun's SQL client.\n\n| Entry                             | Request path | Migrations, fixtures, `syncWards()` |\n| --------------------------------- | ------------ | ----------------------------------- |\n| `@avelonjs/supabase/database`     | PostgREST    | raise `Unavailable`                 |\n| `@avelonjs/supabase/database/bun` | PostgREST    | run over Bun's SQL client           |\n\nEither way the schema cache the request path validates against comes from PostgREST's own OpenAPI document, filtered by the bearer token the queries use.\n\n## Migrations\n\nMigration history uses the same driver-owned SQL pairs as `@avelonjs/postgres`, applied over the admin connection.\n\n```ts\nimport { createSupabaseBunDatabase } from '@avelonjs/supabase/database/bun'\n\nconst db = createSupabaseBunDatabase({\n  migrations: [\n    {\n      id: '20260827_create_posts',\n      up: ['CREATE TABLE posts (id text PRIMARY KEY, title text NOT NULL)'],\n      down: ['DROP TABLE posts'],\n    },\n  ],\n})\n\nawait db.plan()\nawait db.apply()\nawait db.status()\n```\n\n## Live Conformance\n\n```sh\npostgrest packages/supabase/postgrest.conf\nbun test packages/supabase --max-concurrency=1\n```\n\nFixture provisioning is owned by this package and reloads the PostgREST schema cache after reset.\n\n## Identity\n\nNext on Node must import `@avelonjs/supabase/identity`. The package root also exports the database driver, which loads Bun SQL.\n\n```ts\nimport { createSupabaseIdentity } from '@avelonjs/supabase/identity'\n\nconst auth = createSupabaseIdentity({\n  authUrl: process.env.SUPABASE_AUTH_URL,\n  apiKey: process.env.SUPABASE_ANON_KEY,\n})\n\nexport async function currentUser(cookies: import('@avelonjs/core').RequestCookies) {\n  return auth(cookies).user()\n}\n```\n\nCapabilities: `passwords: true`, `magicLinks: true`, `oauth: false`, `organizations: false`, `mfa: ['totp']`, `emailVerification: false`. After password sign-in you challenge the enrolled TOTP factor and verify the authenticator code. `challengeMfa()` without an argument uses `totp`. Email confirmation stays on GoTrue's signup flow and is not an Auth method here.\n\n```ts\nimport { createSupabaseIdentity } from '@avelonjs/supabase'\nimport type { RequestCookies } from '@avelonjs/core'\n\nexport async function completeTotpChallenge(cookies: RequestCookies) {\n  const identity = createSupabaseIdentity({\n    authUrl: process.env.SUPABASE_AUTH_URL,\n    apiKey: process.env.SUPABASE_ANON_KEY,\n  })(cookies)\n\n  await identity.signInWithPassword('jordan@example.com', 'correct-horse-battery')\n  const challenge = await identity.challengeMfa('totp')\n  await identity.verifyMfa(challenge.id, '123456')\n}\n```\n\n## Social\n\n```ts\nimport { createSupabaseSocial } from '@avelonjs/supabase'\n\nconst social = createSupabaseSocial({\n  authUrl: process.env.SUPABASE_AUTH_URL,\n  apiKey: process.env.SUPABASE_ANON_KEY,\n})\n\nexport async function githubRedirect(callbackUrl: string): Promise<string> {\n  return social.redirect('github', callbackUrl)\n}\n```\n\nProviders are the literal list `github` and `google`. Undeclared providers raise `Invalid`. A mismatched or missing OAuth `state` raises `Unauthenticated`.\n\n## Tokens\n\nSupabase Auth does not issue named API tokens. `@avelonjs/supabase` stores hashed Signets in Postgres so `verify`, `list`, and `revoke` are durable.\n\n```ts\nimport { createSupabaseTokens } from '@avelonjs/supabase'\n\nconst tokens = createSupabaseTokens({\n  url: process.env.SUPABASE_DB_URL,\n  subject: 'user-1',\n})\n\nconst issued = await tokens.issue('deployment', { abilities: ['records:read'] })\nawait tokens.verify(issued.plainText)\n```\n\n## Storage\n\nObject bytes persist in Postgres. Signed read URLs are HMAC-scoped HTTP URLs served by the driver process so expiry is real and fetchable.\n\n```ts\nimport { createSupabaseStorage } from '@avelonjs/supabase'\n\nconst disk = createSupabaseStorage({ instance: 'default' })\nawait disk.put('avatars/me.bin', new Uint8Array([1, 2, 3]), {\n  contentType: 'application/octet-stream',\n})\nconst url = await disk.signedUrl('avatars/me.bin', 60)\n```\n\nTransforms are undeclared in v1 (D28). Signed uploads and listing are deferred.\n\n## Queue\n\nDurable jobs use Postgres `FOR UPDATE SKIP LOCKED`. This package names pgmq; this environment does not ship that extension, so skip-locked tables carry the same retry, delay, and dead-letter semantics.\n\n```ts\nimport { createSupabaseQueue } from '@avelonjs/supabase'\n\nconst queue = createSupabaseQueue()\nconst id = await queue.enqueue({ name: 'GenerateReport', payload: { reportId: 'report-1' } })\nawait queue.drain(async (receipt) => {\n  if (receipt.id !== id) return\n})\n```\n\n## Method Reference\n\n| Method                                 | Signature                                                                                                                         | Description                                                    |\n| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- |\n| `createSupabaseDatabase`               | `(options?: SupabaseDatabaseOptions) => SupabaseDatabase`                                                                         | Constructs the PostgREST database driver.                      |\n| `createSupabaseBunDatabase`            | `(options?: SupabaseBunDatabaseOptions) => SupabaseDatabase`                                                                      | Same driver, holding a Bun SQL admin connection for DDL.       |\n| `SupabaseBunDatabaseOptions`           | `interface`                                                                                                                       | `SupabaseDatabaseOptions` without `admin`, plus `databaseUrl`. |\n| `loadSchemaCacheFromRest`              | `(restUrl: string, headers: Readonly<Record<string, string>>) => Promise<SchemaCache>`                                            | Reads tables and columns from PostgREST's OpenAPI document.    |\n| `SupabaseDatabase.execute`             | `(query: QueryIR) => Promise<QueryResult>`                                                                                        | Executes IR as the service role.                               |\n| `SupabaseDatabase.executeAs`           | `(token: string, query: QueryIR) => Promise<QueryResult>`                                                                         | Executes IR as an arbitrary bearer token.                      |\n| `SupabaseDatabase.rpc`                 | `(routine: string, args: Readonly<Record<string, unknown>>) => Promise<T>`                                                        | Invokes a PostgREST RPC; missing routines raise `Invalid`.     |\n| `SupabaseDatabase.plan`                | `() => Promise<MigrationPlan>`                                                                                                    | Returns pending migration identifiers and SQL steps.           |\n| `SupabaseDatabase.apply`               | `() => Promise<readonly MigrationStatus[]>`                                                                                       | Applies pending migrations over the admin connection.          |\n| `SupabaseDatabase.rollback`            | `(steps?: number) => Promise<readonly MigrationStatus[]>`                                                                         | Rolls back the newest applied migration batches.               |\n| `SupabaseDatabase.status`              | `() => Promise<readonly MigrationStatus[]>`                                                                                       | Lists applied and pending migration states.                    |\n| `SupabaseDatabase.syncWards`           | `() => Promise<void>`                                                                                                             | Applies registered ward policies as Postgres RLS.              |\n| `SupabaseDatabase.resetFixtures`       | `() => Promise<void>`                                                                                                             | Recreates assay fixtures, roles, and helper RPCs.              |\n| `SupabaseDatabase.raw`                 | `() => { restUrl: string }`                                                                                                       | Returns the REST root at the vendor boundary.                  |\n| `SupabaseDatabase.close`               | `() => Promise<void>`                                                                                                             | Closes the direct Postgres admin client.                       |\n| `createSupabaseIdentity`               | `(options?: SupabaseIdentityOptions) => (cookies: RequestCookies) => SupabaseIdentity`                                            | Returns the pinned config-time identity factory.               |\n| `SupabaseIdentity.user`                | `() => Promise<SupabaseActor \\| null>`                                                                                            | Returns the current actor from the request cookie session.     |\n| `SupabaseIdentity.session`             | `() => Promise<SupabaseSession \\| null>`                                                                                          | Returns the current session or null.                           |\n| `SupabaseIdentity.register`            | `(email: string, password: string) => Promise<SupabaseActor>`                                                                     | Registers and establishes a session cookie.                    |\n| `SupabaseIdentity.signInWithPassword`  | `(email: string, password: string) => Promise<SupabaseActor>`                                                                     | Signs in and writes the session cookie.                        |\n| `SupabaseIdentity.signOut`             | `() => Promise<void>`                                                                                                             | Ends the Auth session and clears the cookie.                   |\n| `SupabaseIdentity.sendPasswordReset`   | `(email: string) => Promise<void>`                                                                                                | Sends a recovery request without revealing account existence.  |\n| `SupabaseIdentity.resetPassword`       | `(token: string, password: string) => Promise<void>`                                                                              | Replaces a password after validating a recovery token.         |\n| `SupabaseIdentity.updatePassword`      | `(password: string) => Promise<void>`                                                                                             | Changes the current actor's password.                          |\n| `SupabaseIdentity.sendMagicLink`       | `(email: string, redirectTo?: string) => Promise<void>`                                                                           | Sends a passwordless sign-in link.                             |\n| `SupabaseIdentity.signInWithMagicLink` | `(token: string) => Promise<SupabaseActor>`                                                                                       | Redeems a link token for a session.                            |\n| `SupabaseIdentity.challengeMfa`        | `(factor?: 'totp') => Promise<MfaChallenge<'totp'>>`                                                                              | Begins a TOTP challenge for the current session.               |\n| `SupabaseIdentity.verifyMfa`           | `(challengeId: string, code: string) => Promise<void>`                                                                            | Verifies a TOTP challenge response.                            |\n| `SupabaseIdentity.raw`                 | `() => { authUrl: string }`                                                                                                       | Returns the Auth HTTP root at the vendor boundary.             |\n| `readSessionCookie`                    | `(cookies: RequestCookies, cookieName: string) => SupabaseSession \\| null`                                                        | Parses the request-scoped session cookie.                      |\n| `writeSessionCookie`                   | `(cookies: RequestCookies, cookieName: string, session: SupabaseSession) => void`                                                 | Writes the session cookie for the current request.             |\n| `clearSessionCookie`                   | `(cookies: RequestCookies, cookieName: string) => void`                                                                           | Deletes the session cookie for the current request.            |\n| `LocalAuthServer.start`                | `() => Promise<string>`                                                                                                           | Starts a GoTrue-shaped Auth fixture on an ephemeral port.      |\n| `LocalAuthServer.reset`                | `() => void`                                                                                                                      | Clears users, sessions, and recovery tokens.                   |\n| `LocalAuthServer.stop`                 | `() => Promise<void>`                                                                                                             | Stops the fixture listener.                                    |\n| `LocalAuthServer.recoveryToken`        | `(email: string) => string \\| undefined`                                                                                          | Returns the recovery token issued for an email.                |\n| `LocalAuthServer.magicLinkToken`       | `(email: string) => string \\| undefined`                                                                                          | Returns the magic-link token issued for an email.              |\n| `SUPABASE_IDENTITY_ERROR_MAP`          | `readonly { code: string; framework: string; meaning: string }[]`                                                                 | GoTrue error codes and the taxonomy member each becomes.       |\n| `createSupabaseSocial`                 | `(options?: SupabaseSocialOptions) => SupabaseSocial`                                                                             | Constructs the GoTrue social driver.                           |\n| `SupabaseSocial.redirect`              | `(provider: string, callbackUrl: string, state?: string) => Promise<string>`                                                      | Builds a GoTrue authorize URL and records CSRF state.          |\n| `SupabaseSocial.callback`              | `(provider: string, params: Readonly<Record<string, string>>, callbackUrl: string) => Promise<SocialIdentity>`                    | Verifies state and exchanges the authorization code.           |\n| `SupabaseSocial.raw`                   | `() => { authUrl: string }`                                                                                                       | Returns the Auth HTTP root at the vendor boundary.             |\n| `LocalSocialServer.start`              | `() => Promise<string>`                                                                                                           | Starts a GoTrue-shaped token fixture on an ephemeral port.     |\n| `LocalSocialServer.stop`               | `() => Promise<void>`                                                                                                             | Stops the social fixture listener.                             |\n| `createSupabaseTokens`                 | `(options?: SupabaseTokenOptions) => SupabaseTokens`                                                                              | Constructs the Postgres-backed Signet driver.                  |\n| `SupabaseTokens.issue`                 | `(name: string, options?: TokenIssueOptions) => Promise<IssuedToken>`                                                             | Issues a named token and returns plaintext once.               |\n| `SupabaseTokens.verify`                | `(plainText: string) => Promise<TokenRecord>`                                                                                     | Authenticates a plaintext token or raises `Unauthenticated`.   |\n| `SupabaseTokens.list`                  | `() => Promise<readonly TokenRecord[]>`                                                                                           | Lists metadata for the current subject without plaintext.      |\n| `SupabaseTokens.revoke`                | `(id: string) => Promise<void>`                                                                                                   | Revokes one token by stable identifier.                        |\n| `SupabaseTokens.reset`                 | `() => Promise<void>`                                                                                                             | Recreates the empty signet table.                              |\n| `SupabaseTokens.raw`                   | `() => SQL`                                                                                                                       | Returns the Bun SQL client at the vendor boundary.             |\n| `SupabaseTokens.close`                 | `() => Promise<void>`                                                                                                             | Closes the SQL client pool.                                    |\n| `createSupabaseStorage`                | `(options?: SupabaseStorageOptions) => SupabaseStorage`                                                                           | Constructs the Postgres-backed storage driver.                 |\n| `SupabaseStorage.put`                  | `(path: string, contents: Uint8Array \\| AsyncIterable<Uint8Array>, options?: { contentType?: string }) => Promise<StorageObject>` | Stores bytes and returns metadata.                             |\n| `SupabaseStorage.get`                  | `(path: string) => Promise<Uint8Array>`                                                                                           | Reads object bytes or raises `NotFound`.                       |\n| `SupabaseStorage.delete`               | `(path: string) => Promise<void>`                                                                                                 | Deletes an object if it exists.                                |\n| `SupabaseStorage.exists`               | `(path: string) => Promise<boolean>`                                                                                              | Reports whether an object exists.                              |\n| `SupabaseStorage.signedUrl`            | `(path: string, expiresInSeconds: number) => Promise<string>`                                                                     | Creates a fetchable HMAC-signed read URL.                      |\n| `SupabaseStorage.reset`                | `() => Promise<void>`                                                                                                             | Recreates the empty object table.                              |\n| `SupabaseStorage.raw`                  | `() => SQL`                                                                                                                       | Returns the Bun SQL client at the vendor boundary.             |\n| `SupabaseStorage.close`                | `() => Promise<void>`                                                                                                             | Stops the signed-URL listener and closes SQL.                  |\n| `createSupabaseQueue`                  | `(options?: SupabaseQueueOptions) => SupabaseQueue`                                                                               | Constructs the skip-locked Postgres queue driver.              |\n| `SupabaseQueue.enqueue`                | `(job: QueueJob) => Promise<string>`                                                                                              | Enqueues a job for immediate delivery.                         |\n| `SupabaseQueue.enqueueAt`              | `(job: QueueJob, availableAt: Date) => Promise<string>`                                                                           | Enqueues a job no earlier than the supplied time.              |\n| `SupabaseQueue.drain`                  | `(handler: (receipt: QueueReceipt) => Promise<void>, options?: { queue?: string; limit?: number }) => Promise<number>`            | Delivers available jobs and counts attempts.                   |\n| `SupabaseQueue.retry`                  | `(id: string, delaySeconds?: number) => Promise<void>`                                                                            | Releases a failed job, optionally after a delay.               |\n| `SupabaseQueue.failed`                 | `(queue?: string) => Promise<readonly FailedQueueJob[]>`                                                                          | Lists retained terminal failures.                              |\n| `SupabaseQueue.replay`                 | `(id: string) => Promise<void>`                                                                                                   | Replays a terminal failure with a fresh attempt budget.        |\n| `SupabaseQueue.forget`                 | `(id: string) => Promise<void>`                                                                                                   | Permanently removes a terminal failure.                        |\n| `SupabaseQueue.reset`                  | `() => Promise<void>`                                                                                                             | Recreates empty job tables.                                    |\n| `SupabaseQueue.raw`                    | `() => SQL`                                                                                                                       | Returns the Bun SQL client at the vendor boundary.             |\n| `SupabaseQueue.close`                  | `() => Promise<void>`                                                                                                             | Closes the SQL client pool.                                    |\n| `compilePostgrest`                     | `(ir: QueryIR, predicate?: Predicate) => CompiledPostgrestRequest`                                                                | Compiles IR to an HTTP request.                                |\n| `applyPostgrestPredicate`              | `(parameters: URLSearchParams, predicate: Predicate) => void`                                                                     | Writes a normalized predicate into PostgREST `and=` filters.   |\n| `compileWardPredicate`                 | `(predicate: Predicate \\| boolean) => string`                                                                                     | Compiles a ward predicate to RLS SQL.                          |\n| `compileWardPolicySql`                 | `(policy: WardPolicy) => string[]`                                                                                                | Builds DROP/CREATE POLICY statements for one ward.             |\n| `compileAllWardPolicies`               | `(policies: readonly WardPolicy[]) => string[]`                                                                                   | Compiles every registered ward into ordered SQL.               |\n| `mapPostgrestError`                    | `(status: number, bodyText: string, operation: string) => never`                                                                  | Maps PostgREST failures into framework errors.                 |\n| `resetSupabaseAssayFixtures`           | `(sql: SQL) => Promise<void>`                                                                                                     | Provisions empty assay fixtures on a SQL client.               |\n| `normalizePredicate`                   | `(predicate: Predicate) => Predicate`                                                                                             | Applies empty-list and constant identities.                    |\n| `combinedPredicate`                    | `(ir: Pick<QueryIR, 'where' \\| 'ward'>) => Predicate`                                                                             | ANDs where and ward, then normalizes.                          |\n\n## Testing\n\nRun the shared database conformance suite against live PostgREST and the package-owned RLS denial test. Run identity and social conformance against a GoTrue-shaped Auth server; when the full Docker stack is unavailable, `LocalAuthServer` and `LocalSocialServer` stand in so cookie, password, and OAuth-code flows still exercise the HTTP drivers. Token conformance runs against live Postgres (`avelon_signets`). Storage conformance runs against live Postgres object bytes plus fetchable signed read URLs. Queue conformance runs against live Postgres skip-locked tables because pgmq is not installed in this environment. Unit tests cover PostgREST compilation without a network dependency.\n","readmeFilename":"README.md"}