{"_id":"@aiao/rxdb-adapter-supabase","_rev":"20-0b46b015db95b1c1f02b68dd2d48ac37","name":"@aiao/rxdb-adapter-supabase","dist-tags":{"latest":"0.0.26"},"versions":{"0.0.7":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.7","_id":"@aiao/rxdb-adapter-supabase@0.0.7","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"bf981333d602b194dbab21a51af018a4989e5f59","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.7.tgz","fileCount":24,"integrity":"sha512-YFw0+jYQcxX4tyYUz8CtoPiR6lfKpsg2sSR8qk9NL6wX/hUBI8FrX0TodDpN2p9zOjLIpvGyEeVw0xJoXCdOfg==","signatures":[{"sig":"MEQCIBcKBOM+h15FTOPVQ1bW756NWVLIwc8RrNHdXmSYp1mQAiBq7q5ug0APBtIDbFbcHMpWcY5pklbY2Z/q4fI42VeYlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51185},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/fd059e320159bc8ee11406ffe08ead1f/aiao-rxdb-adapter-supabase-0.0.7.tgz","_integrity":"sha512-YFw0+jYQcxX4tyYUz8CtoPiR6lfKpsg2sSR8qk9NL6wX/hUBI8FrX0TodDpN2p9zOjLIpvGyEeVw0xJoXCdOfg==","_npmVersion":"11.6.2","description":"Supabase database adapter for AIAO RxDB framework.","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.3","@aiao/rxdb-test":"0.0.7","@aiao/rxdb-adapter-sqlite":"0.0.7"},"peerDependencies":{"@aiao/rxdb":"0.0.7","@supabase/supabase-js":"^2.86.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.7_1765930694181_0.3011601729436464","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.8","_id":"@aiao/rxdb-adapter-supabase@0.0.8","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"01e6a973a39f1544012f52b278ac214c8f5301b8","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.8.tgz","fileCount":24,"integrity":"sha512-UmAwC7n0x/m1L3Aw1qN43W1B/53oY8tNyVHvhvT4JwXIRcuJ7/53ee65p1F7Ia6q3LHMMiltQzBTvjUFaoo8aQ==","signatures":[{"sig":"MEQCIA7DE0/JhEPtJ4Pv6uFYxLl6ZiqpVy81raysVvGeA4ldAiApdxUNYT5nO6TcOxDEokiL8/TUp8hXFxrWef4YSQmsFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58521},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/28c198b38f5c48ec06c55f30d0ccfb59/aiao-rxdb-adapter-supabase-0.0.8.tgz","_integrity":"sha512-UmAwC7n0x/m1L3Aw1qN43W1B/53oY8tNyVHvhvT4JwXIRcuJ7/53ee65p1F7Ia6q3LHMMiltQzBTvjUFaoo8aQ==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.3","@aiao/rxdb-test":"0.0.8","@aiao/rxdb-adapter-sqlite":"0.0.8"},"peerDependencies":{"@aiao/rxdb":"0.0.8","@supabase/supabase-js":"^2.86.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.8_1767508122141_0.18218294822683134","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.9","_id":"@aiao/rxdb-adapter-supabase@0.0.9","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"1a7335916d615727d78cb8f62a6b9507ea72f100","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.9.tgz","fileCount":24,"integrity":"sha512-gdloMo7LX/g7YQ/1OXZm0YmKCGec2OEIIu5NVgEXR3nlWnzWDId3fICWlBL/ysbl1fS/or//7C4uZ3oCk5NKqQ==","signatures":[{"sig":"MEQCIFAaoSWThAjX0saCMN4AOszqZ0L2d5eiUzNsut5rLNkGAiAz4Ksg/d6iAsmpjOCkuIA3H0N3U6XmVARA3f+UQK0Jsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62674},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/ab5a8d92da3b27557fcf34344447d684/aiao-rxdb-adapter-supabase-0.0.9.tgz","_integrity":"sha512-gdloMo7LX/g7YQ/1OXZm0YmKCGec2OEIIu5NVgEXR3nlWnzWDId3fICWlBL/ysbl1fS/or//7C4uZ3oCk5NKqQ==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.3","@aiao/rxdb-test":"0.0.9","@aiao/rxdb-adapter-sqlite":"0.0.9"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.9","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.9_1768236413626_0.16996694070887486","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.10","_id":"@aiao/rxdb-adapter-supabase@0.0.10","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"f661ac6122cc8bb9e788838656d6807a7449b804","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.10.tgz","fileCount":24,"integrity":"sha512-3OO1JLSFXNcUbFPARw8ijvHSV852WSEb4wwRmS4jtFTFTCo9X9x2llyFrqWdCFBnk4zfjujFP7KYN/3b1H2Asg==","signatures":[{"sig":"MEQCIBqrqLiQ1og/9SV0CEBjBgqPh8LjPWCFDto213ttBJjNAiAjDbS5m7YiQCcBLiCk64DkNFZGoN0FjolEYI3dXg7umw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62715},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/46e76eb06df857488533301433de7d67/aiao-rxdb-adapter-supabase-0.0.10.tgz","_integrity":"sha512-3OO1JLSFXNcUbFPARw8ijvHSV852WSEb4wwRmS4jtFTFTCo9X9x2llyFrqWdCFBnk4zfjujFP7KYN/3b1H2Asg==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.3","@aiao/rxdb-test":"0.0.10","@aiao/rxdb-adapter-sqlite":"0.0.10"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.10","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.10_1769499235422_0.6164058578681144","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.11","_id":"@aiao/rxdb-adapter-supabase@0.0.11","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"eaea25aac8780084937d313f776445f3778aa79e","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.11.tgz","fileCount":24,"integrity":"sha512-NVa8Nte5E3u0Tlwz86xhf0p2YA3qCQFFgwPkVSS6nJkMTU2kfozTnZsbsn2N0hdh18MRs2WENqMujn+27IOBAg==","signatures":[{"sig":"MEUCIQDtixvN5hr0kdpmbDSdW7dNPm7H8FRGa/xJiXWPpQm9jAIgU82vslwAyL1zWg7YfVu2KT7+ldTuPX2HOucGvRBdM7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62662},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/dcf426c56db7ba84ecb1f6546bd2f245/aiao-rxdb-adapter-supabase-0.0.11.tgz","_integrity":"sha512-NVa8Nte5E3u0Tlwz86xhf0p2YA3qCQFFgwPkVSS6nJkMTU2kfozTnZsbsn2N0hdh18MRs2WENqMujn+27IOBAg==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.2.4","@aiao/rxdb-test":"0.0.11","@aiao/rxdb-adapter-sqlite":"0.0.11"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.11","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.11_1770731743133_0.15578257036878562","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.12","_id":"@aiao/rxdb-adapter-supabase@0.0.12","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"261b9924ad9826ab094fa775d526b80f1a73a85a","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.12.tgz","fileCount":24,"integrity":"sha512-vVpHfqxX5knbeRbJbPS7OgOMsvvFWLpXBp7MR09Lc5hD6TQM/mhDWrzs5GqWttqFZiChT414zf/o+S7h7BSxjg==","signatures":[{"sig":"MEYCIQDBm/na1kESCbz/TbcbmymnJIovzv9QC0xeYehnDQmBMAIhAIVvbVwADI2u2eteGlxtbPvXqkH5SVVxqlbTLrAmMYpm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62662},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.12.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/e9578826a97cd7d43073705c4f2b2716/aiao-rxdb-adapter-supabase-0.0.12.tgz","_integrity":"sha512-vVpHfqxX5knbeRbJbPS7OgOMsvvFWLpXBp7MR09Lc5hD6TQM/mhDWrzs5GqWttqFZiChT414zf/o+S7h7BSxjg==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.12","@aiao/rxdb-adapter-sqlite":"0.0.12"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.12","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.12_1772086587270_0.29115190883554765","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.13","_id":"@aiao/rxdb-adapter-supabase@0.0.13","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"fdafabc541af5ecc46b1d927719e93befb879ac3","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.13.tgz","fileCount":24,"integrity":"sha512-ooqBvmmE+BMElK2agvyt/wT88zl/OLlOxHWdBUXOY5aX4W3ppT7BLQMMnlJi/TyRufiUch0zYA5sMCvsistfjA==","signatures":[{"sig":"MEQCIDRvDjq+Yq+bgZBX0FSRS3vva5sD4fAGj1NIiXFFZ8UYAiBIkHSKr4g3w4CjKV22f01cIAf7MKBi18nTblkyudxGzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62662},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.13.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/1b6672c937efc7088bc4935b207c3720/aiao-rxdb-adapter-supabase-0.0.13.tgz","_integrity":"sha512-ooqBvmmE+BMElK2agvyt/wT88zl/OLlOxHWdBUXOY5aX4W3ppT7BLQMMnlJi/TyRufiUch0zYA5sMCvsistfjA==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.13","@aiao/rxdb-adapter-sqlite":"0.0.13"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.13","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.13_1772347766285_0.42569324013308996","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.14","_id":"@aiao/rxdb-adapter-supabase@0.0.14","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"39c474da7fed43066ccf35362120b95f34b97457","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.14.tgz","fileCount":24,"integrity":"sha512-A7GvHjC89Cp4Xy8pPXZ2ShTuXufbbltvOab6rYG6+rv9YHf8TQ8/1h/UvrUS1MoJf/pcVnktSdFtJSciHIiODQ==","signatures":[{"sig":"MEUCIQDY43xU5UU+diBswVejpoMEWmwBtDK4WlnRAUgDJxEgugIgaaWsVYI9eqil28HmW9W37Wzwkm6RR0sD1jK28HiQi8U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63279},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.14.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/b9d3c235ea199d78cd984c03c8c88104/aiao-rxdb-adapter-supabase-0.0.14.tgz","_integrity":"sha512-A7GvHjC89Cp4Xy8pPXZ2ShTuXufbbltvOab6rYG6+rv9YHf8TQ8/1h/UvrUS1MoJf/pcVnktSdFtJSciHIiODQ==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.14","@aiao/rxdb-adapter-sqlite":"0.0.14"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.14","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.14_1772616902769_0.8705369043533706","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.15","_id":"@aiao/rxdb-adapter-supabase@0.0.15","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"e598397c96cbd0da154bc98a752bc778ef6454f3","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.15.tgz","fileCount":24,"integrity":"sha512-UCYdGb1ZZ+yirq0xfTPf0Jmwwuixwr79jpNzzZQpQ8teDqJSaOKm7z0VCsGxXUhQUs2Ksmlmd0qvjeintwdqCA==","signatures":[{"sig":"MEUCIGz1DcbWCGE92iHQbVjleIeuEx49YyejJOwgrwnlvk9JAiEAzM4Ym9V4d3yn3unbl08aojpjl0qiAFuZUwtGSartJGM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63279},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.15.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/c722a490d446e05dfadff3740c92224a/aiao-rxdb-adapter-supabase-0.0.15.tgz","_integrity":"sha512-UCYdGb1ZZ+yirq0xfTPf0Jmwwuixwr79jpNzzZQpQ8teDqJSaOKm7z0VCsGxXUhQUs2Ksmlmd0qvjeintwdqCA==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.15","@aiao/rxdb-adapter-sqlite":"0.0.15"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.15","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.15_1772718582093_0.15631699438977154","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.16","_id":"@aiao/rxdb-adapter-supabase@0.0.16","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"fbee3ffc42188ab25a229a7370f88aba7fcd48a5","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.16.tgz","fileCount":24,"integrity":"sha512-1aox+0qq7C1seYViTMSaTVXltIIpua1jjjqALoGbBYJ2s7j/pRJy2PTaw3gzVVIxrl7YlC4GDh8freeezXmowg==","signatures":[{"sig":"MEYCIQCbk6G/BMfxP4jbtBcR1UWPtyjEdpPz8ZINcLlnKsiN+gIhAJ+1OOGyLMJmSQBM2tsx45TC1b3Y5110fkegcKfRu5ox","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63279},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.16.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/2d1d51508a5dfd78d10906f8c413b025/aiao-rxdb-adapter-supabase-0.0.16.tgz","_integrity":"sha512-1aox+0qq7C1seYViTMSaTVXltIIpua1jjjqALoGbBYJ2s7j/pRJy2PTaw3gzVVIxrl7YlC4GDh8freeezXmowg==","_npmVersion":"11.6.2","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.16","@aiao/rxdb-adapter-sqlite":"0.0.16"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.16","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.16_1773117236148_0.1710121515186871","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.17","_id":"@aiao/rxdb-adapter-supabase@0.0.17","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"0b46fbfb8f78c65a48e005874cc42e7f795ba59d","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.17.tgz","fileCount":24,"integrity":"sha512-+Fdvvz8Uxr971JEeX4vBQT/pWhblp3IqPOsmvB++7nCRHgXtO4Vlwpt1uShK1AuGyX/ZtIyJn+k/llZ5gxUBOA==","signatures":[{"sig":"MEUCICpsgXQevGpGzXxGiYwByW6Hu+TVt9Y8yWggkykk02pVAiEA77Vg7EMbfZ7+Tzl/1dL6Aog2PlebxMxYQU/OH/E9WlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68747},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.17.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/a20baff460111f9d22b828974b87dd23/aiao-rxdb-adapter-supabase-0.0.17.tgz","_integrity":"sha512-+Fdvvz8Uxr971JEeX4vBQT/pWhblp3IqPOsmvB++7nCRHgXtO4Vlwpt1uShK1AuGyX/ZtIyJn+k/llZ5gxUBOA==","_npmVersion":"11.9.0","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.17","@aiao/rxdb-adapter-sqlite":"0.0.17"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.17","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.17_1774283726641_0.4910081855563364","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.18","_id":"@aiao/rxdb-adapter-supabase@0.0.18","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"997ca2e0e5d49edd35bb295b6c8d4b8bce70c877","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.18.tgz","fileCount":24,"integrity":"sha512-ul5iTyXUR+vuYGSw4TBmyF9+fx14GflWl4it4EePMxmBmXTio9nxjW1i/gA+0LEDZPsaskcJA7f1A9tnK687Iw==","signatures":[{"sig":"MEUCIDZib7LqD8NT7ciSMO7Y8scAmIC+XP2xIjeba4/ctXy6AiEAwcTZzny0Qfy3OYbNL4Muw3Wkk8T/6aQ0a6j+W3VNSZA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68747},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.18.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/eaf084a43fcf8874defe8a8d75bc45e3/aiao-rxdb-adapter-supabase-0.0.18.tgz","_integrity":"sha512-ul5iTyXUR+vuYGSw4TBmyF9+fx14GflWl4it4EePMxmBmXTio9nxjW1i/gA+0LEDZPsaskcJA7f1A9tnK687Iw==","_npmVersion":"11.9.0","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.18","@aiao/rxdb-adapter-sqlite":"0.0.18"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.18","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.18_1774344129995_0.8006695289032264","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.19","_id":"@aiao/rxdb-adapter-supabase@0.0.19","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"929008afe4d76b10bcd6b8023728842badbd1b3e","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.19.tgz","fileCount":24,"integrity":"sha512-S8sFhaj5lti6BtQvTMT7AoYDHBHfLZIQV8iZwt3ySgX7DDkce9+qDDl8O1Dqi0lduplKxKlHdh7RnOo2Mxq09A==","signatures":[{"sig":"MEUCIQDIyEYaGzeuBGBcLT0n4xdeo7DyIXmS5Lwm+6Ig+s/6BAIgPTNxb7o1l9pw7uu33wJInZA6h671mzIMPOE9aXLLUIs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68747},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.19.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/da236b2293c2a997f6888d0c1008e5a3/aiao-rxdb-adapter-supabase-0.0.19.tgz","_integrity":"sha512-S8sFhaj5lti6BtQvTMT7AoYDHBHfLZIQV8iZwt3ySgX7DDkce9+qDDl8O1Dqi0lduplKxKlHdh7RnOo2Mxq09A==","_npmVersion":"11.9.0","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.3.1","@aiao/rxdb-test":"0.0.19","@aiao/rxdb-adapter-sqlite":"0.0.19"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.19","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.19_1774492010093_0.04984945121427087","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.20","_id":"@aiao/rxdb-adapter-supabase@0.0.20","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"c6dd93b6cc3d31842e05118b1591a8a5a79b50c3","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.20.tgz","fileCount":26,"integrity":"sha512-S+l+/D0pJDlOrugH/mh3MGvR86P3PD3zBnXgnaNGST6VZYseEizxgqAkJPEP6vzxnqrdgqCBf/DrlMe5UGsnxQ==","signatures":[{"sig":"MEUCIQCPhaomsjCLio6Aa3nhji8vOPmVT1GYSm/hgECJHTC7BAIgII9DIRF+OCkxNl7JwOi41fustlgDm7hVnRAsZ/6CT3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":68207},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.20.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/1ee35ea68290bb8f23f4f8931bbe0ebe/aiao-rxdb-adapter-supabase-0.0.20.tgz","_integrity":"sha512-S+l+/D0pJDlOrugH/mh3MGvR86P3PD3zBnXgnaNGST6VZYseEizxgqAkJPEP6vzxnqrdgqCBf/DrlMe5UGsnxQ==","_npmVersion":"11.9.0","description":"RxDB Supabase 适配器 - 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.20","@aiao/rxdb-adapter-wa-sqlite":"0.0.20"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.20","@supabase/supabase-js":"^2.88.0","@supabase/postgrest-js":"^2.89.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.20_1779246560105_0.5097303843373766","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.21","_id":"@aiao/rxdb-adapter-supabase@0.0.21","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"d8b89226621666e57cdbe77e34571fe05ac19739","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.21.tgz","fileCount":28,"integrity":"sha512-zvUkAemIC7n8lLDIYi/oljomW5l2dWUAC+TXHe8li5xIazbqh+GA3FVgpXfrC3JozSQFKZgr48CW18SMXc/Asw==","signatures":[{"sig":"MEUCICuP9HpK6UqlAX/SgNHpblsOuI1OZbwMhfJEZyiGHLrnAiEA81YrxDtvzaVrNCw3m32M4iWlIVJgOnsamdyUF5spANM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72596},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.21.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/525281aabe911ac9edb810d7ef8ad92a/aiao-rxdb-adapter-supabase-0.0.21.tgz","_integrity":"sha512-zvUkAemIC7n8lLDIYi/oljomW5l2dWUAC+TXHe8li5xIazbqh+GA3FVgpXfrC3JozSQFKZgr48CW18SMXc/Asw==","_npmVersion":"11.16.0","description":"RxDB Supabase 适配器 — 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.21","@aiao/rxdb-adapter-wa-sqlite":"0.0.21"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.21","@supabase/supabase-js":"^2.88.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.21_1784362970555_0.5626302624682715","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.22","_id":"@aiao/rxdb-adapter-supabase@0.0.22","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"33c163a7e523ed4ac6a5fcd53053d915d84ad04b","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.22.tgz","fileCount":28,"integrity":"sha512-J+YHdH//labbroGIdSAA/JuT4M8mohbOs8xollpVR2kn8mrLjs+yZ2lB7n/5Pb7nshphaUEgWzJrInJ1xwKOjA==","signatures":[{"sig":"MEUCIDIO3BiKeuzSYHM40tPk0Xsy8EWfDSbIrjP/S+fdmHGdAiEA6sWIY8U/n60RBKR4UJ4deCQOhhLPU6IfXH5L1E2KZ4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72596},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.22.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/6e47a6944da0641fe13ab5efb34e795a/aiao-rxdb-adapter-supabase-0.0.22.tgz","_integrity":"sha512-J+YHdH//labbroGIdSAA/JuT4M8mohbOs8xollpVR2kn8mrLjs+yZ2lB7n/5Pb7nshphaUEgWzJrInJ1xwKOjA==","_npmVersion":"10.9.2","description":"RxDB Supabase 适配器 — 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.22","@aiao/rxdb-adapter-wa-sqlite":"0.0.22"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.22","@supabase/supabase-js":"^2.88.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.22_1785482902966_0.46670739627163194","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.23","_id":"@aiao/rxdb-adapter-supabase@0.0.23","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"40accbcc9cbd2696a4a620acc036f5f8e504b6ec","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.23.tgz","fileCount":28,"integrity":"sha512-nNzXCAqc/8WrBnqIRAuTdsdcFiuczP3md1O3aJChP+KE8BKj6KlFuIc+G6VCjWQp4kcujn/5ywph6djtpv95vg==","signatures":[{"sig":"MEUCIGoT2KfrbJL7R8bU4lWaa1tm4YAfMeS4UReWSbbLPM/DAiEAkx8V4gHZcA1ARNUmJPf3ByeQcsywvLN4vaWQUdHua/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72596},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.23.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","@aiao/source":"./src/index.ts"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/815448eb0b5e9e8734d12130fe2f2d7a/aiao-rxdb-adapter-supabase-0.0.23.tgz","_integrity":"sha512-nNzXCAqc/8WrBnqIRAuTdsdcFiuczP3md1O3aJChP+KE8BKj6KlFuIc+G6VCjWQp4kcujn/5ywph6djtpv95vg==","_npmVersion":"10.9.2","description":"RxDB Supabase 适配器 — 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.23","@aiao/rxdb-adapter-wa-sqlite":"0.0.23"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.23","@supabase/supabase-js":"^2.88.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.23_1785736195057_0.9881774417267053","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.24","license":"MIT","_id":"@aiao/rxdb-adapter-supabase@0.0.24","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"a7de4e6c4a0e3d9cf5b6e2f57bf3a9fd38c4cd62","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.24.tgz","fileCount":43,"integrity":"sha512-Ugw2TpnxPAZbqNT9P+gW0Kx1nOUys06zJBUQfhXEkisyP/cU6TmOyrx8aOCrwqBA5beseQh06ctuaZbFu5PyZQ==","signatures":[{"sig":"MEQCIGCz0HAxP/mY2k0SYVCIur5tsbpqrj0/ssoLQ6/W5I5TAiArKHjGfMRxQA3kNU7rIsOEJPywIttcJvzuYxQ21a3q1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197567},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.24.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/private/var/folders/1s/1sk5kvms7jj4z6glj40__v300000gn/T/d2ce868d47138c8b72fa1162b2db9315/aiao-rxdb-adapter-supabase-0.0.24.tgz","_integrity":"sha512-Ugw2TpnxPAZbqNT9P+gW0Kx1nOUys06zJBUQfhXEkisyP/cU6TmOyrx8aOCrwqBA5beseQh06ctuaZbFu5PyZQ==","_npmVersion":"11.19.0","description":"RxDB Supabase 适配器 — 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.24","@aiao/rxdb-adapter-wa-sqlite":"0.0.24"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.24","@supabase/supabase-js":"^2.88.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.24_1786439149710_0.43830576591299364","host":"s3://npm-registry-packages-npm-production"}},"0.0.25":{"name":"@aiao/rxdb-adapter-supabase","version":"0.0.25","license":"MIT","_id":"@aiao/rxdb-adapter-supabase@0.0.25","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"homepage":"https://github.com/aiao-io/rxdb#readme","bugs":{"url":"https://github.com/aiao-io/rxdb/issues"},"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"dist":{"shasum":"2585f3c6a5d5f2dcb35af318239ff6fb59096b6f","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.25.tgz","fileCount":43,"integrity":"sha512-joyLHZTAm5TwSMJcW52xixr19vgYA7QGghlyLhw8MGi6D04a4RlmbKW89PXPI185ZLw4ieyuaq9ZU5Vqz94elg==","signatures":[{"sig":"MEQCIAoGoN92EnhM72hx5Ra+HS9LHrnMAZYNAjj54tiyT5mCAiAZXmRyuJ1Um0fVDklkJjgjPkim7bEyc4VG2BrIfGpRcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aiao%2frxdb-adapter-supabase@0.0.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197713},"main":"./dist/index.js","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.25.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"_resolved":"/tmp/7527311f30ccaeb1dab7ed0b5d28afae/aiao-rxdb-adapter-supabase-0.0.25.tgz","_integrity":"sha512-joyLHZTAm5TwSMJcW52xixr19vgYA7QGghlyLhw8MGi6D04a4RlmbKW89PXPI185ZLw4ieyuaq9ZU5Vqz94elg==","repository":{"url":"git+https://github.com/aiao-io/rxdb.git","type":"git","directory":"packages/rxdb-adapter-supabase"},"_npmVersion":"11.19.0","description":"RxDB Supabase 适配器 — 基于 PostgreSQL 的远程同步实现。","directories":{},"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.25","@aiao/rxdb-adapter-wa-sqlite":"0.0.25"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.25","@supabase/supabase-js":"^2.88.0"},"_npmOperationalInternal":{"tmp":"tmp/rxdb-adapter-supabase_0.0.25_1786694794606_0.5227249929945224","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"nx":{"name":"rxdb-adapter-supabase","tags":["js-lib"]},"_id":"@aiao/rxdb-adapter-supabase@0.0.26","bugs":{"url":"https://github.com/aiao-io/rxdb/issues"},"dist":{"shasum":"cc24a98e71c113526ab2222c02adbf67d19660bc","tarball":"https://registry.npmjs.org/@aiao/rxdb-adapter-supabase/-/rxdb-adapter-supabase-0.0.26.tgz","fileCount":55,"integrity":"sha512-9P4sSPTBIhXqZdxz5cmVVxbPn7GHkIWnnfLXt7XV8FNpDcAYoDvZli/ewL8Gj0v5Qi3G1LcFgzSH+qiVF5mcnA==","signatures":[{"sig":"MEUCIDKFc/GknZWPBH0fX+LMXgtshH4CDNPAS5yHUIBtxkcCAiEA/0EWA+YNHnbZ4fC8uT7DXLYWEOD3TF48PmOGNctCkfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCJrmbUYHtwhoKklHjgzgNkX7DhftIZJ455wVIFBDtuOAIhAJm8PEB/QsHR5+VzVwak638RfUZ75lv+yzqTp0Mj2Xnh"}],"unpackedSize":228658},"main":"./dist/index.js","name":"@aiao/rxdb-adapter-supabase","type":"module","_from":"file:aiao-rxdb-adapter-supabase-0.0.26.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"MIT","version":"0.0.26","_npmUser":{"name":"aiao","email":"hero63418@gmail.com"},"homepage":"https://rxdb.netlify.app/docs/adapters/supabase","keywords":["aiao","rxdb","supabase","realtime","sync","local-first"],"_resolved":"/private/tmp/pack-0.0.26/aiao-rxdb-adapter-supabase-0.0.26.tgz","_integrity":"sha512-9P4sSPTBIhXqZdxz5cmVVxbPn7GHkIWnnfLXt7XV8FNpDcAYoDvZli/ewL8Gj0v5Qi3G1LcFgzSH+qiVF5mcnA==","repository":{"url":"git+https://github.com/aiao-io/rxdb.git","type":"git","directory":"packages/rxdb-adapter-supabase"},"_npmVersion":"12.0.2","description":"Supabase adapter for remote data access and reactive synchronization.","directories":{},"maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.7.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","@aiao/rxdb-test":"0.0.26","@aiao/rxdb-plugin-sync":"0.0.26","@aiao/rxdb-plugin-history":"0.0.26","@aiao/rxdb-adapter-wa-sqlite":"0.0.26","@aiao/rxdb-plugin-querycache":"0.0.26"},"peerDependencies":{"rxjs":"^7.8.2","@aiao/rxdb":"0.0.26","@supabase/supabase-js":"^2.88.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rxdb-adapter-supabase_0.0.26_1790793593763_0.5268224718039092"}}},"time":{"created":"2025-12-17T00:18:14.101Z","modified":"2026-09-30T18:39:54.021Z","0.0.7":"2025-12-17T00:18:14.330Z","0.0.8":"2026-01-04T06:28:43.343Z","0.0.9":"2026-01-12T16:46:53.804Z","0.0.10":"2026-01-27T07:33:55.562Z","0.0.11":"2026-02-10T13:55:43.288Z","0.0.12":"2026-02-26T06:16:27.447Z","0.0.13":"2026-03-01T06:49:26.425Z","0.0.14":"2026-03-04T09:35:02.916Z","0.0.15":"2026-03-05T13:49:42.236Z","0.0.16":"2026-03-10T04:33:56.293Z","0.0.17":"2026-03-23T16:35:26.815Z","0.0.18":"2026-03-24T09:22:10.153Z","0.0.19":"2026-03-26T02:26:50.227Z","0.0.20":"2026-05-20T03:09:20.248Z","0.0.21":"2026-07-18T08:22:50.692Z","0.0.22":"2026-07-31T07:28:23.125Z","0.0.23":"2026-08-03T05:49:55.188Z","0.0.24":"2026-08-11T09:05:49.850Z","0.0.25":"2026-08-14T08:06:34.747Z","0.0.26":"2026-09-30T18:39:53.878Z"},"bugs":{"url":"https://github.com/aiao-io/rxdb/issues"},"license":"MIT","homepage":"https://rxdb.netlify.app/docs/adapters/supabase","repository":{"url":"git+https://github.com/aiao-io/rxdb.git","type":"git","directory":"packages/rxdb-adapter-supabase"},"description":"Supabase adapter for remote data access and reactive synchronization.","maintainers":[{"name":"aiao","email":"hero63418@gmail.com"}],"readme":"# @aiao/rxdb-adapter-supabase\n\nRxDB Supabase 适配器 — 基于 PostgreSQL 的远程同步实现。\n\n作为 RxDB 的 **remote** 适配器使用：本地用 SQLite（wa-sqlite / PGlite）离线读写，远程用 Supabase 做多端同步、实时推送与云端备份。\n\n## 特性\n\n- ✅ **完整 CRUD** — 通过 `SupabaseRepository` 封装 PostgREST\n- ✅ **批量操作** — `saveMany` / `removeMany`（非事务）、`mutations`（RPC 事务）\n- ✅ **事务支持** — 基于 PostgreSQL RPC `rxdb_mutations` 的原子写入\n- ✅ **实时订阅** — 监听 `rxdb_change` 表的 INSERT，自动派发远程事件（带指数退避重连）\n- ✅ **双向同步** — `pullChanges` / `mergeChanges` / `pullChangesBatch` 配合 RxDB VersionManager\n- ✅ **树形结构** — `SupabaseTreeRepository`（按层 `select` 逐级展开，不依赖任何数据库函数）\n- ✅ **RLS 自检** — 连接时校验目标表是否开启行级安全（可配 `warn` / `throw`）\n- ✅ **瞬时错误重试** — 写入/事务路径对网关超时等瞬时错误自动重试\n\n## 何时使用\n\n- 需要多端数据同步（Web / 移动端 / 桌面端）\n- 需要实时协作\n- 需要云端备份与恢复\n- 需要 PostgreSQL 高级特性（JSONB、全文搜索、RLS）\n- 已有 Supabase 基础设施\n\n## 与其他适配器对比\n\n| 特性     | Supabase    | PGlite     | wa-sqlite |\n| -------- | ----------- | ---------- | --------- |\n| 部署模式 | 云端/自托管 | 本地       | 本地      |\n| 多端同步 | ✅          | ❌         | ❌        |\n| 实时订阅 | ✅          | ❌         | ❌        |\n| 离线优先 | ✅（混合）  | ✅         | ✅        |\n| 数据库   | PostgreSQL  | PostgreSQL | SQLite    |\n| 认证集成 | ✅          | ❌         | ❌        |\n\n## 安装\n\n```bash\npnpm add @aiao/rxdb @aiao/rxdb-adapter-supabase @supabase/supabase-js\n# 本地适配器（二选一或按需）\npnpm add @aiao/rxdb-adapter-wa-sqlite\n```\n\n> peerDependencies：`@aiao/rxdb`、`@supabase/supabase-js` ^2.88、`rxjs` ^7.8。\n\n## 导出\n\n- `RxDBAdapterSupabase` — 远程适配器主类\n- `SupabaseRepository` — 表级 CRUD / 查询 Repository\n- `SupabaseTreeRepository` — 树形（邻接表）Repository\n- `SupabaseAdapterOptions` — 配置类型\n- `SupabaseSyncError` / `SupabaseConfigError` / `SupabaseNetworkError` / `SupabaseDataError` — 错误类型\n- `ADAPTER_NAME` — 常量 `'supabase'`\n\n> ⚠️ 不存在 `createSupabaseAdapter()` / `createRxdb()` 这类工厂函数，请用下方的类 + `rxdb.adapter()` 注册方式。\n\n### 错误类型的分工\n\n**连不上远端时抛的是 core 的 `NetworkOfflineError`，不是 `SupabaseDataError`**——后者只表示远端给出的拒绝（RLS、约束、语法等）。判离线请用 `@aiao/rxdb` 的 `isNetworkError`，不要按 `SupabaseDataError` 捕获网络失败，否则断网时那条分支不会命中。\n\n导出里的 `SupabaseNetworkError` 已 `@deprecated`，从未被抛出过，也不可用于表示离线。\n\n这是相对早期版本的破坏性变更，迁移步骤见[《Supabase 传输失败错误类型迁移》](https://github.com/aiao-io/rxdb/blob/main/website/docs/migration/supabase-network-errors.md)。\n\n## 快速开始\n\n### 1. 配置 RxDB（本地 wa-sqlite + 远程 supabase）\n\n```typescript\nimport { RxDB, SyncType } from '@aiao/rxdb';\nimport { RxDBAdapterSupabase } from '@aiao/rxdb-adapter-supabase';\nimport { RxDBAdapterWaSqlite } from '@aiao/rxdb-adapter-wa-sqlite';\nimport { rxDBPluginHistory } from '@aiao/rxdb-plugin-history';\nimport { rxDBPluginSync } from '@aiao/rxdb-plugin-sync';\nimport { Todo } from './entities/Todo';\n\nconst rxdb = new RxDB({\n  dbName: 'my-app',\n  context: { userId: 'current-user-id' },\n  entities: [Todo],\n  sync: {\n    local: { adapter: 'wa-sqlite' },\n    remote: { adapter: 'supabase' },\n    type: SyncType.Full\n  }\n});\n\n// 推拉同步住在 `@aiao/rxdb-plugin-sync`，它 `inject: ['plugin:history']`，两个都要装；\n// 不装的话 `rxdb.syncManager` 这个槽位根本不存在（core 不做 fallback 兜底）。\n// 必须早于 `connect()`——插件是在那一刻装上的。\nrxdb.use(rxDBPluginHistory);\nrxdb.use(rxDBPluginSync);\n\n// 注册本地适配器\nrxdb.adapter('wa-sqlite', db => new RxDBAdapterWaSqlite(db, { vfs: 'IDBBatchAtomicVFS', async: true }));\n\n// 注册远程适配器\nrxdb.adapter(\n  'supabase',\n  async db =>\n    new RxDBAdapterSupabase(db, {\n      supabaseUrl: 'https://your-project.supabase.co',\n      supabaseKey: 'your-anon-key'\n      // 或复用已有客户端：client: existingSupabaseClient\n    })\n);\n\n// 连接本地（自动建表）\nawait rxdb.connect('wa-sqlite');\n\n// 连接远程（启动 Realtime 订阅 + RLS 自检）\nconst supabase = await rxdb.getAdapter('supabase');\nawait supabase.connect();\n```\n\n### 2. 数据操作（active-record 风格）\n\n```typescript\n// 创建\nconst todo = new Todo();\ntodo.title = 'Learn RxDB';\ntodo.completed = false;\nawait todo.save();\n\n// 查询（本地 SQLite，响应式）\nconst todos = await rxdb.repository(Todo).find({\n  where: { combinator: 'and', rules: [{ field: 'completed', operator: '=', value: false }] }\n});\n```\n\n### 3. 同步\n\n```typescript\nawait rxdb.syncManager.push(); // 推送本地变更到远程\nawait rxdb.syncManager.pull(); // 拉取远程变更到本地\nawait rxdb.syncManager.sync(); // 双向（pull + push）\n\n// 也可按实体粒度同步\nawait rxdb.syncManager.pushRepository('public', 'Todo');\nawait rxdb.syncManager.pullRepository('public', 'Todo', { limit: 200 });\nawait rxdb.syncManager.syncRepository('public', 'Todo');\n```\n\n## 配置项（`SupabaseAdapterOptions`）\n\n- `supabaseUrl?: string` — 项目 URL（与 `supabaseKey` 配合）\n- `supabaseKey?: string` — API Key（与 `supabaseUrl` 配合）\n- `client?: SupabaseClient` — 复用已有客户端，优先级高于 URL+Key\n- `rlsCheck?: boolean | SupabaseRlsCheckOptions` — 连接时 RLS 自检；`false` 关闭，对象可配 `rpcName` / `failureMode` / `tables`\n\n`rlsCheck` 默认行为：调用 RPC `rxdb_check_rls` 检查实体表是否启用 RLS，未启用时 **告警但不阻断**（`failureMode: 'warn'`）。设为 `'throw'` 可在生产环境强制阻断未开启 RLS 的连接。\n\n```typescript\nconst adapter = new RxDBAdapterSupabase(rxdb, {\n  client,\n  rlsCheck: { failureMode: 'throw' }\n});\n```\n\n严格模式下，目标表不存在、RLS 未启用、RPC 响应遗漏目标表、检查 RPC 缺失或检查请求失败都会拒绝 `connect()`，且不会启动 Realtime；后续重试会重新执行检查。该检查只确认目标表已启用 RLS，不验证 policy 内容、认证 claims、tenant ownership 或表级 grants，这些仍需在服务端独立审计。\n\n`rxdb_mutations`、`rxdb_batch_upsert` 和 `rxdb_batch_delete` 均以 `SECURITY INVOKER` 执行。调用角色必须拥有目标 schema 的 `USAGE`、目标表所需的 DML 权限及相关 sequence 权限；所有写入同时受该角色的 RLS policy 约束。仅授予 RPC 的 `EXECUTE` 权限不会绕过目标表权限或 RLS，也不要求目标表设置 `FORCE ROW LEVEL SECURITY`。\n\n## 数据库 Schema\n\n适配器依赖两张系统表（**snake_case 表名，camelCase 列名加引号**），完整脚本见 [docker/sql/](https://github.com/aiao-io/rxdb/tree/main/docker/sql)。\n\n### `rxdb_change`（变更记录）\n\n```sql\nCREATE TABLE public.rxdb_change (\n  id            serial PRIMARY KEY,\n  namespace     varchar NOT NULL DEFAULT 'public',\n  entity        varchar NOT NULL,\n  \"entityId\"    varchar NOT NULL,\n  \"branchId\"    varchar DEFAULT 'main',\n  type          varchar NOT NULL CHECK (type IN ('INSERT','UPDATE','DELETE')),\n  patch         jsonb,\n  \"inversePatch\" jsonb,\n  \"transactionId\" uuid,\n  \"localId\"     integer,\n  \"clientId\"    varchar,\n  \"createdAt\"   timestamptz(3) NOT NULL DEFAULT now(),\n  \"updatedAt\"   timestamptz(3) NOT NULL DEFAULT now()\n);\n\nCREATE UNIQUE INDEX idx_rxdb_change_local_id_client_id\nON public.rxdb_change(\"clientId\", \"localId\")\nWHERE \"clientId\" IS NOT NULL AND \"localId\" IS NOT NULL;\n```\n\n`clientId + localId` 是本地 push 到远端的幂等键。升级既有数据库时应重新执行 `docker/sql/01-rxdb-system-tables.sql` 和 `docker/sql/04-rxdb-utils-functions.sql`；系统表脚本会为每个重复键保留最早的远端 change、删除后续重复记录，再建立部分唯一索引。\n\n### `rxdb_branch`（分支元数据）\n\n```sql\nCREATE TABLE public.rxdb_branch (\n  id            varchar PRIMARY KEY,\n  activated     boolean DEFAULT false,\n  \"fromChangeId\" integer,\n  \"lastPushedChangeId\" integer,\n  \"lastPushedAt\" timestamptz(3),\n  \"lastPulledAt\" timestamptz(3),\n  \"parentId\"    varchar,\n  \"createdAt\"   timestamptz(3) NOT NULL DEFAULT now(),\n  \"updatedAt\"   timestamptz(3) NOT NULL DEFAULT now()\n);\n```\n\n> Realtime 需把 `rxdb_change` 加入 `supabase_realtime` publication；系统表初始化脚本已处理。\n> 同步事务依赖 RPC：`rxdb_mutations`、`rxdb_check_rls`、`rxdb_enable_sync_for_branch`。\n> 树查询**不依赖任何数据库函数**：`SupabaseTreeRepository` 按层发 `select`（每层一次 `in('parentId', ...)`）逐级展开，\n> 因此深树会产生与深度成正比的往返次数。\n\n## API\n\n### RxDBAdapterSupabase\n\n```typescript\nclass RxDBAdapterSupabase extends RxDBAdapterRemoteBase {\n  constructor(rxdb: RxDB, options: SupabaseAdapterOptions);\n  readonly client: SupabaseClient;\n\n  // 连接 / 生命周期\n  connect(): Promise<IRxDBAdapter>; // RLS 自检 + 启动 Realtime\n  disconnect(): Promise<void>;\n  version(): Promise<string>;\n\n  // 批量\n  saveMany<T>(entities): Promise<T[]>; // upsert，非事务\n  removeMany<T>(entities): Promise<T[]>; // 非事务\n  mutations<T>(map): Promise<T[]>; // RPC 事务\n\n  // 同步引擎\n  pullChanges(sinceId, limit?, repositoryFilter?, filter?, branchId?): Promise<RemoteChange[]>;\n  pullChangesBatch(requests, limit?, branchIds?): Promise<RemoteChange[]>;\n  getChangeCount(sinceId, repositoryFilter?, branchId?): Promise<{ count; latestChangeId }>;\n  mergeChanges(actions, branchId?, changes?): Promise<RemoteMergeResult>;\n\n  // 分支\n  pushBranches(branches): Promise<{ synced; skipped }>;\n  branchExists(branchId): Promise<boolean>;\n  pullBranches(): Promise<RemoteBranchInfo[]>;\n\n  // QueryCache\n  fetchMetadata(entityName, queryFilter): Observable<QueryCacheEntityMetadata[]>;\n  findByIds<T>(entityName, ids): Observable<T[]>;\n\n  isTableExisted(EntityType): Promise<boolean>;\n}\n```\n\n### SupabaseRepository\n\n```typescript\nclass SupabaseRepository<T> extends RepositoryBase<T> {\n  find(options): Promise<T[]>; // 自动 1000 行分页；始终以 id 兜底排序\n  count(options): Promise<number>; // count=exact + head（groupBy 暂不支持）\n  create(entity): Promise<T>;\n  update(entity, patch): Promise<T>;\n  remove(entity): Promise<T>; // 硬删除\n}\n```\n\n`find` 的 `where` 支持点分关系路径（`orders.amount`）与 `exists`/`notExists`，会自动生成 PostgREST `!inner` 关联过滤。\n\n关系条件的能力边界：\n\n| 写法                      | 支持 | 生成的 PostgREST 构造                    |\n| ------------------------- | ---- | ---------------------------------------- |\n| `exists`（无 `where`）    | ✅   | `relation=not.is.null`                   |\n| `exists` + `where`        | ✅   | `relation!inner(*)` + 嵌套过滤           |\n| `notExists`（无 `where`） | ✅   | `relation=is.null`                       |\n| `notExists` + `where`     | ❌   | **抛错** —— PostgREST 无法表达 anti-join |\n\n`notExists` 带子条件时会在构造查询阶段抛错，不会发出请求。原因是 PostgREST 的嵌套过滤只裁 embed\n出来的子行、不裁父行，`!inner` 又只能表达 EXISTS 而取不到补集 —— 任何客户端拼法给出的都是与请求\n语义相反的结果集。需要这个能力时请写服务端 RPC（返回反连接结果的 SQL 函数）后用 `adapter.client.rpc` 调用。\n\n### SupabaseTreeRepository\n\n```typescript\nclass SupabaseTreeRepository<T> extends SupabaseRepository<T> {\n  findDescendants(options: FindTreeOptions<T>): Promise<T[]>; // 含当前节点\n  countDescendants(options: FindTreeOptions<T>): Promise<number>; // 不含当前节点\n  findAncestors(options: FindTreeOptions<T>): Promise<T[]>; // 含当前节点\n  countAncestors(options: FindTreeOptions<T>): Promise<number>; // 不含当前节点\n}\n```\n\n`FindTreeOptions.where` 的语义与 sqlite-core 的递归 CTE 一致：\n\n- **起点豁免**：`entityId` 指向的节点（或不指定时的全部根节点）无论是否匹配都返回；\n- **递归成员过滤 = 断链**：某一级不匹配时，它下面（祖先方向则是它上面）的整条链都不再展开，\n  即使更远处的节点自身匹配也拿不到；\n- **`hasChildren` 不受 `where` 影响**：它回答「有没有子节点」，不是「有没有匹配 `where` 的子节点」。\n\n## 同步机制\n\n### Push（`mergeChanges`）\n\n1. 收集本地未推送变更（`remoteId = null`）\n2. 变更压缩：`INSERT→UPDATE*` → `INSERT`；`INSERT→DELETE` → 丢弃；`UPDATE*→DELETE` → `DELETE`\n3. 调用 RPC `rxdb_mutations`，在单事务内写 `rxdb_change` + 实体表（`p_skip_sync=true` 跳过触发器）\n4. 返回 `maxChangeId` 与 `changeIdMapping`（localId → remoteId）\n5. 相同 `(clientId, localId)` 重试时返回首次提交的 remoteId，不重复写 change，也不重复执行实体副作用\n6. 全部远端批次成功后，在一个本地事务内同时保存 mapping 和推送水位；本地事务失败时可重试整个未确认批次\n\n### Pull（`pullChanges` / `pullChangesBatch`）\n\n1. 以 `id > sinceId` 为游标查询远程变更（用 id 而非时间戳，避免同毫秒重复）\n2. 按 `INSERT/UPDATE/DELETE` 应用到本地实体表\n3. 写入本地 `rxdb_change` 并标记 `remoteId`，避免回推\n4. 更新水位线\n\n### Realtime\n\n监听 `rxdb_change` 的 INSERT，按 `clientId` 过滤掉自身变更，派发 `EntityRemote{Created,Updated,Removed}Event`；通道异常按指数退避（500ms→5s）重连。\n\n## 测试\n\n测试在浏览器环境（Vitest + Playwright Chromium）运行，集成用例需要本地 Supabase（Docker）。\n\n```bash\n# 一键：自动起容器 + 初始化 + 跑测试（test 目标 dependsOn: test-env）\npnpm nx test rxdb-adapter-supabase\n\n# 覆盖率\npnpm nx test rxdb-adapter-supabase --coverage\n```\n\n测试自动注入环境变量 `VITE_SUPABASE_URL`（`http://localhost:54331`）与 `VITE_SUPABASE_KEY`（取自 `docker/docker-compose.ci.yml`）。容器与初始化脚本见 [docker/](https://github.com/aiao-io/rxdb/tree/main/docker)。\n\n> 纯单元用例（如 `rule_group_builder` 转义、tree fallback、retry）不依赖网络，可单独运行：\n> `pnpm exec vitest run src/__tests__/review-regressions.spec.ts`（需在包目录下）。\n\n## 开发\n\n```bash\npnpm nx build rxdb-adapter-supabase\npnpm nx lint rxdb-adapter-supabase\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","keywords":["aiao","rxdb","supabase","realtime","sync","local-first"]}