{"_id":"supalite","_rev":"35-5fc7220e6760a1c19c3c328eb956152b","name":"supalite","dist-tags":{"latest":"0.13.1"},"versions":{"0.1.5":{"name":"supalite","version":"0.1.5","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.5","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"1fd71715ed2233d0056ff8a684f6a33c709125aa","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.5.tgz","fileCount":51,"integrity":"sha512-x1Aor8fAJqgeRHpzfUn0sQIYqecbpeNoGIzbfgy9TehEStrpC9FpCOMjroeaDoqnUZarjgQmytPf58fU7sxDTw==","signatures":[{"sig":"MEQCIHSVgH+JF8TIFBsKtNU4Wx1pF3vEW/4T7gV/+gDE5sHLAiAPkmUQrMbdsSoo69glbW1aT4lG22s4ykqbGkzBzdqseQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":129773},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"114226c757bacb2a04faf4dfc82af036a648e9dd","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"npm run build","prepublishOnly":"npm test && npm run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.5_1740743968904_0.2898432670847708","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"supalite","version":"0.1.9","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.9","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"a98b6e50793a07a420c7c3dc6b07a23c069ddb96","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.9.tgz","fileCount":18,"integrity":"sha512-fgB2lyyDRMijKhwAFQzb5DWzSxkZR7KZi61ZpSuhO/24qVaIwWDH7tmjmThVQe2vpw0fqWcFM1m6O/XdFf/9fw==","signatures":[{"sig":"MEQCICBOPIwVGLgmW92xJ1oEtIwBZHGYPFAVQ4iMRGX9c7P7AiBcxaq4X/k7QGurC71ILc2zt5dKMGdmP0eTqJG1DGVNCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64397},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"feceecff7428532903262288f09fdbb201404d3b","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.9_1740911937633_0.0002648606895883088","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"supalite","version":"0.1.10","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.10","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"a06210d696509cc7b63d16bd2f7bd3a947476c2b","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.10.tgz","fileCount":18,"integrity":"sha512-SsxspA1slTLpgaMiIYdSkY8sM+0OGwo8FmaHmjCgSZnRPdSAszbq+EUfo2e4OT1v4//9jgv4YyHqOw6F/B5e8g==","signatures":[{"sig":"MEYCIQDG4IPQ/cSZU6MEOHEsVL+oU0XOiKnO9+Ay2xOxMU4Q+wIhAN39NFKVnPTwlhOWcF1dYnXbCemrShcBC+yeuui3ImZW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67713},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"62b18b08199624c63bbace01c5f4a9e32128f7ec","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.10_1740912341362_0.35699849199182876","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"supalite","version":"0.1.11","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.11","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"b36029482d0fe7dec5566a2bec22493cccc18deb","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.11.tgz","fileCount":18,"integrity":"sha512-tRxUqHNc6/EyACVR/zmWzPatTGRNyYBa+yfLuMDSOGv1Fyk8hJEjqASJPy+7GL/BeoWvvz5KHEiV7J1+D7IocQ==","signatures":[{"sig":"MEUCIDBREg9PnT4w+3/sd1aUwzrZc3B0HjJtB7JeKrxATf2vAiEA7AlmNgwrbQw0e5x3MSlgOJMBsm3lZyLmJjffcKWVfGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69231},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"4cc69142471e67a8dad25b5bad4c2fdfa14c84d6","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.11_1740912611172_0.774309077229135","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"supalite","version":"0.1.12","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.12","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"5efec6647685ab311d8ad68b7f2cc9dc6bf3fdd8","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.12.tgz","fileCount":19,"integrity":"sha512-O3iPQwIEnCwK6sqJ+BPEdZitjlJjHNZHmwKIRm7J1Hy6jAmiAI72B2CvmI2AMOl4Nj1Bt0xJTYhp3f2DYWQ6Vg==","signatures":[{"sig":"MEYCIQDpiCOZ5jYgRW8MgH9xRHJTwgrDqxm1iP7eXphzx6wkSAIhAI9CUDwrj7aWNVSSanqO6RdZ2cqftAoaB3lcpXIh4Vk+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50238},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"29d97b13e6d4e275b3b9e140b1b4764904076d95","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.12_1740914266231_0.7557125509968323","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"supalite","version":"0.1.13","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.13","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"7a2c74b507676e019306f3cc1edd2656a3ffd05b","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.13.tgz","fileCount":19,"integrity":"sha512-1BdT2Lw6iAUIAeFIVVRXWnfgK5EIoQBNoPdbz64CfQ1SCcDGbNaxl1qHudgbWp7FBJv8oAkbutXxCMya4eCj9w==","signatures":[{"sig":"MEUCIH9N27lgwRRYrH1iCSkevYHhAONxEhUmEMxUMjyt/LCyAiEAjFqvQ+ai2NGUFD3fx9jSPjHTxRjqE+ZATIx8JS1PMeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49644},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"61f3a6da6f43638cf9109bae3c9ecda11e44b163","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.13_1740915300972_0.9236212414146721","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"supalite","version":"0.1.7","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.7","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"762cb0c7fa3cf2e6131560a4e3edfafb92f0cf7b","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.7.tgz","fileCount":20,"integrity":"sha512-JiOhJFr5RPU0pA/GOuGF7q97SvR4NbAG/sI6MYBKOGJuFlxLO1dfQBjwUiYZBpBNMaYtRzDG15pQmhedgB42Lw==","signatures":[{"sig":"MEUCIQCQGYjXAsxxqIkGIx7EnzYIEoo/Nr9TZLmcCQhse1goGgIgZbcFVIsFLUI3h2gsbv7qXPISWkTqFyfszDLQR1QCndQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59196},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"1d4c4c29b99c28af91fc5952fcb21593295a556b","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.7_1741090238932_0.8880195735857663","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"supalite","version":"0.1.8","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.1.8","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"958fb6d78ef06aff292f6e632f149c1bfd9d70d5","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.1.8.tgz","fileCount":21,"integrity":"sha512-Br896LhvDC7TwiUPkWpXx5oWPJzenUTVPLHI/rg6NTQHeNLkEUPdXzQGBQk8iXr9seX6Mx2OpOcn4Ka3hzzT9g==","signatures":[{"sig":"MEUCIQC+Vp+ID5atehh+h9EZ5wkJFW7tE2X4SBLdy1kTISMJvQIgAZBda7wePnoEh0b9Kzetux/HzHAsj7iBgI9Js9OIc4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50636},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"3e6ea5205b5610bc0356db29589e5ddf52626de6","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.1.8_1741091224479_0.7159546232455167","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"supalite","version":"0.2.0","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.2.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"0f9d48c11f01a346f16645e2058455de4f25b31d","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.2.0.tgz","fileCount":19,"integrity":"sha512-MUKRn3IytWaoNG2sCPabrHCmoK1WuRMRlusOytq7GTmhdK0zjnE7M43toPx1swmiti+cG0fqRd4m6RXbxE2AYQ==","signatures":[{"sig":"MEUCIAkVJLFTCtiEYpEFePL4Onh2/f4eDGQ/UqfBAc8OFZMbAiEA4+AdsHeobX+V4bUTtDE9fLQTR7HRO+URPKRju0MwzDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49707},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"7422e2b68320204a359da92e5a3e6d063889d942","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.2.0_1741151197929_0.6637511380332699","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"supalite","version":"0.2.1","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.2.1","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"d94a5cb7be0e8b89f30f3c1dff743870b591be65","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.2.1.tgz","fileCount":20,"integrity":"sha512-oKs+q0FNAKkAu4E0Pun1C2tJ2Gmg5+Db/aEd28nAp3UobPTwm1YnCGJZuFSfGbrTxGSDvk0hQ+j8CTkaOCWiVQ==","signatures":[{"sig":"MEYCIQCU3tg9tcrhv/90yUUK+fu7ReZJUwkNj4bPj4xyEKYEKwIhAJp2EL86V8ewyCM6Yoxyd6iT1hyI7cUO9/E5kGat+tBv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54457},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"a1aed192063aebf28711b3fe4f0f9e60d9a80460","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.2.1_1748229489565_0.3437562131096328","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"supalite","version":"0.3.1","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.3.1","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"023d71d71ed98494f99b145bbd7eb913d9850646","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.3.1.tgz","fileCount":22,"integrity":"sha512-B2pTuYDiIoO42rBXGD1Y4on0JA7NutBuB7jgB96MNwzLkK/RMtF3a1wi6j0aGWBn79Txn5fGgtdLcsLY5Xc+gQ==","signatures":[{"sig":"MEUCIDSSfrDrPGQQXgk6wo0IbECpLd6vYqlRRwjQFW/ZhILOAiEAlI8VrtIhbbtoXO8Fxo2m34RBKcsN1pEQtMLXEw4mZv4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58810},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"338fae322b8ab3b83b04fb21bd2b34273abd6380","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.3.1_1749522417710_0.7423773912038947","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"supalite","version":"0.3.2","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.3.2","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"ea1d20545bf7a5169ca8595258486d77e742b951","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.3.2.tgz","fileCount":23,"integrity":"sha512-4K73r1N52Nk7mwEYdfjn8udmRbEwm8liutm3mk74cfwb1pgVOg6EeRLd9TYddbjioAafaqPEj5yriARjHwrLkA==","signatures":[{"sig":"MEQCIFt4QueLyfCMsFlqJla37WJQH6cOUXQh9Fp2d8g8rFwGAiA8PK4PprjkEY2Gqrwlz1uye3j08ENIiKaGDFfdnEdX+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60100},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"8f450376304ffba73ab57daff83de321c2b98ef1","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.3.2_1749523251283_0.09291197105330062","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"supalite","version":"0.3.3","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.3.3","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"7902d35d7f325a2ce6b307523bad892e14c8d523","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.3.3.tgz","fileCount":23,"integrity":"sha512-d3dk1W2KRZKxgjcwSGYzCThcOXvDEFA5NH/L5srOmfPEMJn5D0eXINyf9AY4HM5LbBhKmt82gaD+17UPXyOFEQ==","signatures":[{"sig":"MEUCIQDL1IC2sIKIirRSzFmKJbS+AcZC94byCWFIANuicfAptAIgPTJljAVDFv1izqDz9YWCwv328GAzUjvIuK/Xcf+ZfnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67181},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"bd440433251694c00af1d2f9ba36cf7a56fc681e","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.3.3_1749528403970_0.11843758923859538","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"supalite","version":"0.4.0","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.4.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"11951dd156d4cd5bbf9168c6a16a8d21e5f6e263","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.4.0.tgz","fileCount":24,"integrity":"sha512-FGUbDPqlDX/Kmi0qnENcnMtAD8f8b80VdPVaM/u23mSnC10HFZplhR+0hljBOAS4Uzyz6Ul+wI59+YmW6E3bWw==","signatures":[{"sig":"MEQCIGiYsvTy2OaIhuQrBXJjk3gdS2dQryfGiXFFXhKCPQkDAiBT0H+kyADCGk6qMPHk+CumxIYnMo599RaVk17yBvlFvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75545},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"558b027eaa9866d3a76bbe272cc06fe2a63f332d","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.4.0_1749552512003_0.13205603187889525","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"supalite","version":"0.5.0","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"b8ae7d31ab87a9b32d9a9d1f822e7d30973e3bec","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.0.tgz","fileCount":24,"integrity":"sha512-Py2bKoDI+Unp62CkvISogcIN8t7HGhpfYJjG1AYjTT9UfAZMQsqyYxv13+OeOLu2pNXER3mucamxbQBOU/MzEg==","signatures":[{"sig":"MEQCIBkRK8srxsZlmgVqfKj6QoPQvZ8rWd1qKu0CXDYVgrpLAiAmb7UXIL/7tdzt9427JIMaMJuFJfmDbuSB7zEkaWke4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80871},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"ee8d3bd4d1c6010384bf5d427b7a50795d835ff0","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","actor":{"name":"wdshin","type":"user","email":"wodshin@gmail.com"},"email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.0_1751343431004_0.38142688871434904","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"supalite","version":"0.5.1","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.1","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"f0dbd385f0b1971789fd345939f3209c155dfc37","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.1.tgz","fileCount":25,"integrity":"sha512-pQeLAGeDHQVL3af+ezCTQpuPANTkaoX6C1r70Qd7oQ8ZkshiH1VYzYgi8BuwM7HUH65eVXeuoYnb3+oyqVLEbg==","signatures":[{"sig":"MEUCIQCK+23JzMepXHrpU5nhbAWewjZgaGYsn1dAfDpTWED89QIgBMJ5il/VWyxqcKvpcEH/A5D3PYfaezjc7+Ah7fXyM1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82107},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"771cba2fb1bc0b1c435e31b3c407043ba31aea36","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.1_1756334040466_0.12918205932652183","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"supalite","version":"0.5.2","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.2","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"8475a72e19aeeab221de2b5fec4f99142a59d3fd","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.2.tgz","fileCount":25,"integrity":"sha512-BBnTV1mfpAE3G8cS4j3ut0wr9yrR+vF7AEFiDDYXBsUh9AMFgRD8+q6Sqa7vY2MLfw7PImSbRyv59UV/JGe1kQ==","signatures":[{"sig":"MEQCIB3nKPePHS8NOVipat7zKaZLA3ZMDue1PSGYSGMkZ+OrAiBR4hs2roQn1K0YoQpHpt8khUXBoDs/k2+ADktUEhEbmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83911},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"1d39ba29d55cd5ba7ec893aa22b055e4dbd92d8f","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.2_1760601854773_0.5579231846068353","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"supalite","version":"0.5.3","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.3","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"29fd94eb8d0632bc29a0ff71fc68318f71e0e124","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.3.tgz","fileCount":25,"integrity":"sha512-XT2kUpRB7t90kTGmkssSXHk/5tms4zWrHhU66QtUaGogoAt49l8zqPeQ0OBRSL2yoKcT3K5/oYA0wySnpxEWZQ==","signatures":[{"sig":"MEQCIBZQFHw0l4473mWd+Tyx5OfinrYxo/2GGL4aZUEQY4TfAiAbPxyHkG6S8jHmGrTmneBQJIrfgSI3/8Jr+pjgT4UJbQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84341},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"f22a2adee267694791404bd89aae391fcf579f70","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.3_1763703076182_0.6487132412491066","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"supalite","version":"0.5.4","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.4","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"a436fdf16ab7fdb16fb64541851573044d38c222","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.4.tgz","fileCount":26,"integrity":"sha512-zPTov8VkLFJ5mSpWpgjKCTXTiNrLQvhebR/FhwoOWimB0RA6dTFwONkW1Ow0iuiKshgulF5RYwSkG5AQMuH5rw==","signatures":[{"sig":"MEYCIQD4wcvoCe8FGNloUlNclsusQbyk8kUCmrevs5oMGYEzxwIhALp0QQMzh2BhvJaDahEMk+lcS3gzR2vA1cyMYKsJdiY2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85609},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"f02d6fca5a29ccb8c933d566fdf2afd7bfce2df5","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.4_1763705775572_0.4599704883652622","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"supalite","version":"0.5.5","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.5","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"2df6f5ef546b61151e1597900ee4760002414227","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.5.tgz","fileCount":27,"integrity":"sha512-VTHc05HiySFiDGJURC3woU/TTejqsBnEVqmD2oG0aP6YAH6vcJHV3TTex98j0Xl/lZVG9GdyYp2l/ueXTpLs7w==","signatures":[{"sig":"MEUCIDD0SigCEsswCf/Mofp24TId2awY6Dm3bkbCjsQeLP1pAiEA3vQ1MDCKMRZeVgCu0POVRsxoToF0n2twluUwn+uwgKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91840},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"f02d6fca5a29ccb8c933d566fdf2afd7bfce2df5","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.5_1764154062073_0.8798269675040948","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"supalite","version":"0.5.6","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.6","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"8c40bdc8200bcc7a1762c95f1e9f414d4cdf2c22","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.6.tgz","fileCount":28,"integrity":"sha512-g2hYi+LJ6aTeuMi0f7/y5KarRAAWphAqzbLAfroHrBeqk7cn4Y9Vm492uWHJaUylspqXTTAyFWM9xVQ/2AALGA==","signatures":[{"sig":"MEUCIG4gRQ/qLA6W/dKNaudcyGPckdUDRfYq6FA4dW5gJFDeAiEAkE6TX/ZKgtDYWiJRgYzUV+ArXhanJTMiah/1XvACU5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95219},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"109412bfc8d0bf34cf21670b31c8339b6d5579d6","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.6_1765947339569_0.24178296556712753","host":"s3://npm-registry-packages-npm-production"}},"0.5.7":{"name":"supalite","version":"0.5.7","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.5.7","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"77c92050498415b8d859d5b28d7e7f7060ce7660","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.5.7.tgz","fileCount":28,"integrity":"sha512-mTk6Sn23t31dPlWRacgqVGvpZ41u/PbunqNh4hncqM1Qpjg7VrEsEQRYm3qYep2iE3cys2sazmRt7skrMS6bLw==","signatures":[{"sig":"MEUCIAYMkxkGA8BBRqWKda4ZGKMD/ov6TwaAenyNRvvO37ujAiEAztQYAjFSUB0fw+0ZvVeJIdic+RgrY+b8BjT5BT3mmIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96515},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"321d2018ec0dca3d3ef1dd71f48c1f24d2221431","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.5.7_1768386945666_0.09761839074212042","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"supalite","version":"0.6.1","keywords":["supabase","postgresql","typescript","database","lightweight","query-builder"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.6.1","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"dist":{"shasum":"80f59ee04afab7a00f289807bee1b903ba0338ca","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.6.1.tgz","fileCount":34,"integrity":"sha512-7KXrrVixlAZpu7zhAMxgUK6R2MI0CASWTvmf87CjTV0O9iRNNq48tUbaDEyaj8sgtgMF00LSqez6QPAwSd5cGg==","signatures":[{"sig":"MEUCIQCAkFUiS5Gptl9FPWZ69DeZKvxNK9MazqiCUCzAS/D+2wIgBQAc1+HAeFU1a6fLPmAAwNL69gF5pRTh7NvUnwvP/q4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167093},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"66cbf4d94f8caa19b048e4aa1b95413ed4dd7104","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.6.1_1768574524101_0.9902768452337662","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"supalite","version":"0.7.0","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.7.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"0199b4322588fb5a7a81b1e342bddeb8ab4853fb","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.7.0.tgz","fileCount":44,"integrity":"sha512-qyRehw4Bitk2VPuebUtgRSZ+BIDgBMPnGo/24i5Gd4hKWTbd429RM9xn/CSZhZec19wvrXH47uUa8fAMceRv4A==","signatures":[{"sig":"MEUCIFVW1qXPc1JQOZaRoxVSco3PZuIZo8wbvrtXzgIXVDKaAiEAq31rsgeI7sWZqSNdN5GLrDJSTtk/rdGMBFuiw4WFXaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235444},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"08493918816d83addebf7a24defa3fe5b6a1f2d3","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.7.0_1768589416518_0.7703852085708225","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"supalite","version":"0.7.2","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.7.2","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"2cec903089adcdba28148522ebd438b05011a9ce","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.7.2.tgz","fileCount":44,"integrity":"sha512-IKVsIAEEFbiAniVwZGTFg4uqTWOQkduyCEk0VKEdYLRraV0pIfbDGJ432x0gKdjFNHlUVQDKUSglXn24Bg59Cw==","signatures":[{"sig":"MEQCIBbTw87CXElI1JOoGAaN0Sxz28C7BNb4clqQQ0WdotW/AiA4TRev6LV8mR/iugtf+l+l3qI0TNooWEJ+cYpesiaNNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275214},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"f3ecb692dd04fef4603997491727e8c44f364a4e","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.7.2_1768675700794_0.17696632223046316","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"supalite","version":"0.7.5","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.7.5","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"30d82c6ad92133bd9a47766a5677dd0ae767d497","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.7.5.tgz","fileCount":44,"integrity":"sha512-5LyZnuEIut024b6BN4M92JtNe2uCUNWq913W7qTgBo9G1UlNfwURLMERCorHKWo5SOViMfeH2u1NHHEKjC961A==","signatures":[{"sig":"MEUCIFeBxWMTfJ0VVw96GINoJ85SPk2k+LLw7Zqn34VN110gAiEA2+W3A8eYL4d+lKnQ2qyFeYQRHGOplSE6x/kDfhAxHXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278801},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"0c2ff2128b6040b8de299de1ae2e39b2527054ce","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.7.5_1768741318855_0.8560425176618953","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"supalite","version":"0.7.6","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.7.6","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"d1c7bd0e33c2313229f4c82a41f0fc72173c134e","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.7.6.tgz","fileCount":44,"integrity":"sha512-oH8vAcuMluknw5RTtKIJxcZ6/rUvjlx1mfRQwevM/DQX4eEftiRBm3Er1puqlzlTF7dv8Yv5Y7ensg6mpZlZ6w==","signatures":[{"sig":"MEUCIQDpeDSyGbAPzFH7O8gisAa1+KpMH42BolJ8Pup6NMRArQIgAlyB5D5WhPVo5twfv5uY85nuLFGryTlyXVGupPKO77I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279660},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"f96e8670d0b73a0ef9232525d920e6123a59ea33","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.7.6_1768749833104_0.5534851301461801","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"supalite","version":"0.8.0","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.8.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"28fb6ef759ff4f387eb2804491a546a2545135be","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.8.0.tgz","fileCount":44,"integrity":"sha512-wQ/N5nEtltKlWW8cOjAd3/iSQH10PUyRktvxxu9hfs4/9zLQ5fRmkYY8rgDD3627EwrrFquuAQyzHMhq4p63YQ==","signatures":[{"sig":"MEUCICPA3aaHwQLmz9jqOgvuChWpdA3Uf59WUMFpxlJDyOHPAiEA2XfOvL80aPHv50f9p6VWxJmNsfs6c7S5MRGF1r+5xSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":281562},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"707fa0e0afcd8cfa2b8e4985def9c9205235e8bf","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.8.0_1768798863886_0.41042885933986883","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"supalite","version":"0.8.1","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.8.1","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"51cf040342e6441cb095e739e17fec4d57cf3ee1","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.8.1.tgz","fileCount":44,"integrity":"sha512-RskueUfRQxyqswxSl+I1Mxp24kUu5B62VS0QUcL6/nUQ8l6Ivt/rj8Nj2KEMvsF802FgAq05XjD+QM/8SiV6nA==","signatures":[{"sig":"MEUCICyPVsUSDp1bPn92v0xZ6hAc9mgLRLdf6VXPHLSx+j7yAiEA5YD1WJvbobyRXqH4h0Qnim2G9oZyfetSzfY30guhXrg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283614},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"a26cf8fbd52de3f6d9d5c48906ab2a482dadc366","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.8.1_1770103014835_0.0471921465644749","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"supalite","version":"0.8.2","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.8.2","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"0415764867956393051a1f52325a5333322924bf","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.8.2.tgz","fileCount":44,"integrity":"sha512-ym1RQI8qEGaL80h8VFujxfJxb8UHl43rf7+XnqW+/ZDOIg1s7Mer0K+c0WsevgHp+xcUmxG6EVoTCsDx5GIrZQ==","signatures":[{"sig":"MEYCIQCo6//kutcYGOmfYRY9y6X2iPh5UwMivbCSwqHL4MYWiQIhAPs/2WhUXiN50rk4qXl7IYPZjmyjpJGF5+hgpyvXWyD+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291834},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"3a549d08d09a0e6a7fac08fd4f06d0eb5dd60380","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.8.2_1771844878483_0.3644413313926689","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"supalite","version":"0.9.0","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.9.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"696ee72f1024a65bd5fcbd3a5e8ca23d235eade9","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.9.0.tgz","fileCount":44,"integrity":"sha512-u939odL+37VSgzGbeMygqr0axW+UScRilrEqWi9W4/7c6S2Sdo1+leKULcM+Wok05Wnm8wnlaYVuMst8rxY9RQ==","signatures":[{"sig":"MEUCIG/T7ez0a8h2YAA7pbvF0a0p12zPCcxuCiQEpSOA5DbIAiEA4DBXcGRw0YD/Y3J43xsSpHi3zqr6ST5Y5FesAeO6YVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302119},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"cb24ce6c536b57a61239ad53fe698f9ceeb15e98","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.9.0_1780894899020_0.7475201178066289","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"supalite","version":"0.10.0","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.10.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"7bb7afa9016a8d0812edd2d885b9072c8cd0afc8","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.10.0.tgz","fileCount":67,"integrity":"sha512-/in1+kn78TKfaDpPVt1MIBVyHN8PVP+u/dPGYbGBbhbPgwQ3gOoI9ZbGcNn84GoVPXdAFw0EwBWuzlwCo50b3g==","signatures":[{"sig":"MEUCIE9bOAjMzGIG8MfARrUZGrXBbg7+faBIuUC3N11a+83tAiEAhyXXo/edFjtSngPQcwpd/kIUYMBEB+rA9jdIfdi6pKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631225},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"ab17a067e73f5d364712342b6f173951415191e3","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.10.0_1783848941140_0.5364379604854133","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"supalite","version":"0.11.0","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.11.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"75d710bef8d7ff742f8417116c83fcf5a461ec18","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.11.0.tgz","fileCount":71,"integrity":"sha512-nKnE51nSDCzcQ+ONxN74uhpPgkVjjLHOvpJPMRsZGQolVjApYe5t+qxFrzL2/lBdlr751gyANWbdYnmSvdurdQ==","signatures":[{"sig":"MEUCIHYHmylrPK39n93mPkmsYIAkgg7Ev+wR85bQekoC+h32AiEAy0jSex+wQMB3ixXe/Mp6zkWcHgVe/PX7NfQteFy4Ejo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":668830},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"9c05a2f4af207aa5f0733d02f14f992b81e22f21","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.11.0_1783857801620_0.42376267930032663","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"supalite","version":"0.12.0","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","_id":"supalite@0.12.0","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"bin":{"supalite":"bin/supalite"},"dist":{"shasum":"971e966beb83e370a70ccfa30d2e9b2744aaa75e","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.12.0.tgz","fileCount":71,"integrity":"sha512-fZz2uqUFLZpCJCXrEqGh1ISoyq/abIyTa/J+CpWPkkBPdh877Cw2nUBi+59HkPpMM75NoL2w5ElVQK2d56rFTg==","signatures":[{"sig":"MEUCIQDyfTTXPpEiTDdY4fdcUCeyMyMGLveuvpvH7ks4S5V1AAIgWxhmNc/93tASSn0SGbMR8tVMAFNDs5sfbs+bzo8DPMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677179},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=16.17.0"},"gitHead":"e2f4df4280dae1ca461d1b7e9a04a7794557d45a","scripts":{"dev":"ts-node src/index.ts","lint":"eslint src/**/*.ts","test":"jest --passWithNoTests --maxWorkers=50%","build":"tsc","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","test:errors":"node scripts/jest-errors.js","prepublishOnly":"$npm_execpath test && $npm_execpath run lint"},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"_npmVersion":"10.9.2","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"pg":"^8.11.3","dotenv":"^16.4.7","prettier":"^3.2.5","websocket":"^1.0.34","jwt-decode":"^4.0.0","cross-fetch":"^4.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.2.4","devDependencies":{"jest":"^29.7.0","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","@types/pg":"^8.11.0","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/websocket":"^1.0.10","@typescript-eslint/parser":"^7.1.0","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/supalite_0.12.0_1783863047702_0.9464105252677029","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"supalite","version":"0.13.1","description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","main":"dist/index.js","types":"dist/index.d.ts","bin":{"supalite":"bin/supalite"},"scripts":{"build":"tsc","test":"jest --passWithNoTests --runInBand","test:errors":"node scripts/jest-errors.js","lint":"eslint src/**/*.ts","format":"prettier --write \"src/**/*.ts\"","prepare":"$npm_execpath run build","prepublishOnly":"$npm_execpath test && $npm_execpath run lint","dev":"ts-node src/index.ts"},"packageManager":"npm@10.2.4","engines":{"node":">=16.17.0"},"keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","dependencies":{"cross-fetch":"^4.0.0","dotenv":"^16.4.7","jwt-decode":"^4.0.0","prettier":"^3.2.5","pg":"^8.11.3","websocket":"^1.0.34"},"devDependencies":{"@types/jest":"^29.5.12","@types/node":"^20.11.24","@types/pg":"^8.11.0","@types/websocket":"^1.0.10","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","eslint":"^8.57.0","jest":"^29.7.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","typescript":"^5.3.3"},"_id":"supalite@0.13.1","gitHead":"f778c7ba6fffa97d1df1ea6604eaeae9be4033b9","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Tq6eDXp52zt/RQHpRJhm2Lky9du/1J3aY9mhJ3+PlfwuHanan91rUP6O6hbO3rnmPGoW16Tqa7FAv15mqgo/eA==","shasum":"8f01778a36acd4c2e424ff42da6b708a0c3eb7d3","tarball":"https://registry.npmjs.org/supalite/-/supalite-0.13.1.tgz","fileCount":71,"unpackedSize":687786,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCwY4JVtbRJkgwRNrD8e3JMu5BSP8NEJ3iEP9y2LfOe6QIgb/0EGUsI2wcoO5pOt0AZ117EpipKO2PoeU2rO2q1krY="}]},"_npmUser":{"name":"wdshin","email":"wodshin@gmail.com"},"directories":{},"maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/supalite_0.13.1_1783950606003_0.9698410868604197"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-28T11:59:28.903Z","modified":"2026-07-13T13:50:06.345Z","0.1.5":"2025-02-28T11:59:29.088Z","0.1.9":"2025-03-02T10:38:57.817Z","0.1.10":"2025-03-02T10:45:41.521Z","0.1.11":"2025-03-02T10:50:11.357Z","0.1.12":"2025-03-02T11:17:46.503Z","0.1.13":"2025-03-02T11:35:01.160Z","0.1.7":"2025-03-04T12:10:39.162Z","0.1.8":"2025-03-04T12:27:04.689Z","0.2.0":"2025-03-05T05:06:38.149Z","0.2.1":"2025-05-26T03:18:09.749Z","0.3.1":"2025-06-10T02:26:57.930Z","0.3.2":"2025-06-10T02:40:51.450Z","0.3.3":"2025-06-10T04:06:44.151Z","0.4.0":"2025-06-10T10:48:32.171Z","0.5.0":"2025-07-01T04:17:11.214Z","0.5.1":"2025-08-27T22:34:00.662Z","0.5.2":"2025-10-16T08:04:14.950Z","0.5.3":"2025-11-21T05:31:16.386Z","0.5.4":"2025-11-21T06:16:15.768Z","0.5.5":"2025-11-26T10:47:42.261Z","0.5.6":"2025-12-17T04:55:39.734Z","0.5.7":"2026-01-14T10:35:45.791Z","0.6.1":"2026-01-16T14:42:04.239Z","0.7.0":"2026-01-16T18:50:16.744Z","0.7.2":"2026-01-17T18:48:20.954Z","0.7.5":"2026-01-18T13:01:59.000Z","0.7.6":"2026-01-18T15:23:53.260Z","0.8.0":"2026-01-19T05:01:04.037Z","0.8.1":"2026-02-03T07:16:55.063Z","0.8.2":"2026-02-23T11:07:58.642Z","0.9.0":"2026-06-08T05:01:39.194Z","0.10.0":"2026-07-12T09:35:41.289Z","0.11.0":"2026-07-12T12:03:21.845Z","0.12.0":"2026-07-12T13:30:47.838Z","0.13.1":"2026-07-13T13:50:06.218Z"},"author":{"name":"Wondong Shin","email":"wodshin@gmail.com"},"license":"MIT","keywords":["supabase","pg","postgres","postgresql","typescript","database","lightweight","query-builder","rpc","transaction","typesafe","serverless"],"description":"A lightweight TypeScript PostgreSQL client with Supabase-style API","maintainers":[{"name":"wdshin","email":"wodshin@gmail.com"}],"readme":"# SupaLite\nIf Supabase feels slow due to serverless latency, SupaLite can be a faster alternative for database queries.\n[한국어 README](README.ko.md)\n\n[![npm version](https://img.shields.io/npm/v/supalite.svg)](https://www.npmjs.com/package/supalite)\n[![npm downloads](https://img.shields.io/npm/dm/supalite.svg)](https://www.npmjs.com/package/supalite)\n[![license](https://img.shields.io/npm/l/supalite.svg)](LICENSE)\n[![types](https://img.shields.io/npm/types/supalite.svg)](https://www.npmjs.com/package/supalite)\n[![node](https://img.shields.io/node/v/supalite.svg)](https://www.npmjs.com/package/supalite)\n[![ci](https://img.shields.io/github/actions/workflow/status/genideas-labs/supalite/ci.yml?branch=main)](https://github.com/genideas-labs/supalite/actions/workflows/ci.yml)\n\nA lightweight PostgreSQL client focused on the Supabase query builder. It keeps the familiar API but trims the surface area so you get a smaller footprint and less overhead in production.\n\nIn one line: **SupaLite is a slim Supabase client for query builder + RPC + transactions.** If you need full Supabase features (auth/storage/realtime), use `supabase-js`.\n\nUsed in production by [oqoq.ai](https://oqoq.ai).\n\nCompatibility at a glance:\n- ✅ Select/filters/order/pagination\n- ✅ PostgREST-style embeds (`related_table(*)`, `!inner`)\n- ✅ Insert/update/delete/upsert (including `ignoreDuplicates`)\n- ✅ RPC (including `single`/`maybeSingle`)\n- ❌ Auth/Storage/Realtime\n\n## 0.13.0 Highlights\n\n- **Manual transactions are now safe on a shared singleton (#17 follow-up)** — **breaking**: `begin()` returns a **connection-scoped handle** (`const tx = await db.begin(); … await tx.commit()`) instead of mutating the client, so calling it on a module-global singleton no longer routes other concurrent queries into the transaction. `commit()`/`rollback()` (and a nested `begin()`) now throw when misused; transaction scopes no longer share their metadata cache with the owner. `transaction(cb)` is unchanged. See [Transactions](#transactions) for migration.\n\nEarlier (0.12.0): **`supalite migrate mark-applied --dry-run` (#14)** — a **write-free** prod-adoption preview (exact versions + SQL, no writes); `up --dry-run` write-free with file paths.\n\nEarlier (0.11.0): **`supalite migrate` (#7)** — a built-in `up` / `status` / `new` / `mark-applied` runner (advisory-locked, atomic per-migration recording, `transaction:false` escape) closing the `db pull → migrate → gen types` toolchain; **`db pull --format dbmate` (#8)** wraps the baseline in `-- migrate:up` / `-- migrate:down` markers.\n\nEarlier (0.7.2): `gen types --format supabase` matches Supabase CLI byte-for-byte; default `--format supalite` superset (constraints/indexes, referenced schema, setof RPC options); BigInt controls `--no-bigint` / `--no-json-bigint`.\n\nCloud migration note (GCP/AWS):\nIf you are moving off Supabase, SupaLite replaces only the **DB query layer**. You still need alternatives for Auth/Storage/Realtime. Typical choices are:\n- Auth: managed identity (AWS Cognito / Google Identity Platform) or self-hosted (GoTrue/Keycloak)\n- Storage: object storage (S3 / GCS)\n- Realtime: managed pub/sub, WebSocket services, or PostgreSQL LISTEN/NOTIFY + your own gateway\n\n## Key Features\n\n- Type safety: written in TypeScript with full type support\n- Powerful query builder: Supabase-style chainable API\n- Multi-schema support: work across multiple schemas\n- CRUD operations: clear and concise database operations\n- RPC support: call stored procedures\n- Performance: connection pooling and efficient SQL generation\n- Transactions: safe DB transactions (not supported by Supabase)\n- UPSERT support: control insert/update behavior\n- Advanced filtering: OR conditions, ILIKE, and more\n- Array support: multi-row inserts and array fields (JSON/JSONB included)\n- Views, Functions, Enums: full Supabase-style typing\n- BigInt handling: configurable transforms for JSON-safe values\n\n## Project Scope\n\nSupaLite targets a focused subset of the Supabase client: query builder, RPC, and transactions. It does not aim for full Supabase feature parity (auth/storage/realtime). The supported query patterns are documented below; if a pattern is missing, please open an issue so we can prioritize it.\n\n## Migrations and schema management\n\nSupaLite is intentionally ORM-light. For schema management and migrations, use dedicated tools:\n- Migrations/schema sync: [pg-schema-sync](https://github.com/genideas-labs/pg-schema-sync)\n- Alternatives: Atlas, dbmate, Sqitch, Goose, Flyway\n- Type generation: `supabase gen types typescript --db-url <postgres_url>` (works with just a DB URL)\n\nORM features (relations, nested writes, etc.) are best handled by Prisma/Drizzle/Kysely in a separate service when needed. Keeping SupaLite light is part of the value.\n\nAbout `supabase db pull`: SupaLite ships a native equivalent — `supalite db pull` — that introspects any Postgres via `--db-url` and emits a dependency-ordered baseline migration SQL (see below). Diffing and applying migrations remain the job of the dedicated tools above.\n\nSupaLite now includes `supalite gen types`, which defaults to the SupaLite format (a superset of Supabase CLI output). Use `--format supabase` for byte-for-byte Supabase CLI output.\n\n### `supalite db pull` (baseline schema dump)\n\nBring an existing database (e.g. after leaving the Supabase platform for Cloud SQL) under version control:\n\n```bash\nsupalite db pull --db-url \"$DB_CONNECTION\" --schema public\n# writes supabase/migrations/<UTC timestamp>_baseline.sql (use --out - for stdout)\nsupalite db pull --db-url \"$DB_CONNECTION\" --format dbmate\n# same, wrapped in -- migrate:up / -- migrate:down (dbmate & supalite migrate drop-in)\n```\n\n- **Dependency-ordered output**: schemas → extensions → sequences → types (enums/domains/composites, topologically sorted) → type-stage functions → tables → sequence ownership → table-dependent functions → deferred column defaults → constraints → foreign keys (always after all tables) → views → view-dependent functions → triggers → indexes → footer notes.\n- **Idempotent by default**: `IF NOT EXISTS` / `CREATE OR REPLACE`, and constraints are wrapped in `DO` guards — re-applying the file to the database it was pulled from is a no-op, constraints included (assumes the executing role owns the objects). Pass `--no-if-not-exists` for plain DDL.\n- **Extension-owned objects are excluded by default** (`pg_depend`), so e.g. `pg_trgm`'s 30+ functions are not dumped individually — `CREATE EXTENSION IF NOT EXISTS` covers them. Pass `--include-extension-objects` to include them.\n- **Nothing is silently dropped**: v1 unsupported objects (partitioned table hierarchies, aggregate/window functions, RLS policies) and anything depending on them are listed in a footer comment instead of emitting failing DDL; dependencies on objects outside the selected schemas are disclosed there too. Grants are omitted in v1 (not enumerated).\n- Replaying the file requires PostgreSQL 14+ on the target (`CREATE OR REPLACE TRIGGER`). `--mode diff` is reserved for a future release.\n- **dbmate / `supalite migrate` drop-in**: `--format dbmate` wraps the baseline in `-- migrate:up` / `-- migrate:down` markers so `dbmate up` (or the upcoming `supalite migrate up`) applies it with zero manual edits; `--format plain` (default) is unchanged. db pull emits only transaction-safe DDL (all `IF NOT EXISTS`), so the default transactional `-- migrate:up` is correct and atomic — if it ever emits non-transactional DDL, that file must switch to `-- migrate:up transaction:false`.\n- Programmatic API: `import { generateBaselineSql } from 'supalite'` (pass `{ format: 'dbmate' }` for the wrapped output).\n\n### `supalite migrate` (apply + track migrations)\n\nClose the loop between `db pull` (schema → baseline SQL) and `gen types` (schema → TS) with a built-in migration runner — no external tool (dbmate/Flyway) required.\n\n```bash\nsupalite migrate new add_orders_table                            # scaffold supabase/migrations/<ts>_add_orders_table.sql\nsupalite migrate up      --db-url \"$DB_CONNECTION\"               # apply pending, in timestamp order\nsupalite migrate status  --db-url \"$DB_CONNECTION\"               # list applied/pending\nsupalite migrate mark-applied --all --db-url \"$DB_CONNECTION\"    # adopt an existing DB (record without running)\nsupalite migrate mark-applied --all --dry-run --db-url \"$DB_CONNECTION\"  # preview the adoption write — writes nothing\n```\n\n- **Adopt-safely preview (`--dry-run`)**: `mark-applied` is the first production write when you adopt an existing DB, so `--dry-run` lets you approve it first. It probes the tracking table **read-only** and prints the exact versions it would record and the exact SQL it would run — **without writing anything** (not even `schema_migrations`). `up --dry-run` is likewise write-free and lists each pending migration with its file path.\n  ```\n  [dry-run] would ensure table: public.schema_migrations (create if absent)\n  [dry-run] would record 1 version(s):\n    - 20260712000000\n  [dry-run] SQL:\n    CREATE SCHEMA IF NOT EXISTS \"public\";\n    CREATE TABLE IF NOT EXISTS \"public\".\"schema_migrations\" (version text PRIMARY KEY, applied_at timestamptz NOT NULL DEFAULT now());\n    INSERT INTO \"public\".\"schema_migrations\" (version) VALUES ('20260712000000') ON CONFLICT (version) DO NOTHING;\n  [dry-run] no migration DDL is executed by mark-applied.\n  ```\n- **Migration format** is dbmate-compatible: `-- migrate:up` / `-- migrate:down` sections in `<YYYYMMDDHHMMSS>_<name>.sql`. A `db pull --format dbmate` baseline is a drop-in input.\n- **Tracking table** `public.schema_migrations(version, applied_at)` is created automatically (override with `--migrations-table`). Inserts write only `version`, so an existing dbmate table is compatible.\n- **Payment-DB safety**: the whole `up` run holds a Postgres **advisory lock** (concurrent deploys can't double-apply); each migration's DDL and its version row commit in **one transaction** (a failure rolls back, is not recorded, and stops the run at the first failure).\n- **Concurrent DDL**: mark a migration `-- migrate:up transaction:false` to run statements that can't execute inside a transaction (`CREATE INDEX CONCURRENTLY`, `ALTER TYPE ADD VALUE`); keep such files to a single, idempotent (`IF NOT EXISTS`) statement.\n- `--db-url` falls back to `DB_CONNECTION`, then `DATABASE_URL`. `migrate new` needs no database.\n- `down` is not supported in v1 (forward-only).\n- Programmatic API: `import { migrateUp, migrateStatus, migrateMarkApplied, migrateNew } from 'supalite'`.\n\n## SupaLite vs Prisma / Drizzle\n\nSupaLite is a lightweight SQL-first client with a Supabase-style query builder. Prisma and Drizzle are ORMs with schema-first workflows and migrations.\n\nWhen SupaLite fits best:\n- You want a thin query layer with minimal abstraction.\n- You are migrating from Supabase and want similar query ergonomics.\n- You handle migrations and schema management separately.\n\nWhen Prisma or Drizzle fits best:\n- You want schema-first modeling and built-in migrations.\n- You want richer ORM features (relations, nested writes, generated client APIs).\n- You want stronger compile-time guarantees tied to a schema file.\n\nTrade-offs:\n- SupaLite is simpler and closer to SQL, but does not provide ORM-level modeling or migration tooling.\n- Prisma/Drizzle add features and structure, with some abstraction overhead.\n- SupaLite includes built-in BIGINT transform options for JSON-safe output.\n- Prisma/Drizzle still require manual decisions for BIGINT (JSON serialization vs precision), while SupaLite centralizes it with `bigintTransform`.\n\n## Example comparison (SupaLite vs Prisma vs Drizzle)\n\nSupaLite keeps Supabase-style naming so the query reads close to SQL. Below is the same query in each tool:\n\nTask: fetch active users, ordered by `created_at` desc, page 2 (10 per page).\n\nSupaLite:\n```typescript\nconst page = 2;\nconst pageSize = 10;\nconst { data } = await client\n  .from('users')\n  .select('id, name, email, created_at')\n  .eq('status', 'active')\n  .order('created_at', { ascending: false })\n  .limit(pageSize)\n  .offset((page - 1) * pageSize);\n```\n\nPrisma:\n```typescript\nconst page = 2;\nconst pageSize = 10;\nconst data = await prisma.user.findMany({\n  select: { id: true, name: true, email: true, created_at: true },\n  where: { status: 'active' },\n  orderBy: { created_at: 'desc' },\n  take: pageSize,\n  skip: (page - 1) * pageSize,\n});\n```\n\nDrizzle:\n```typescript\nconst page = 2;\nconst pageSize = 10;\nconst data = await db\n  .select({ id: users.id, name: users.name, email: users.email, created_at: users.createdAt })\n  .from(users)\n  .where(eq(users.status, 'active'))\n  .orderBy(desc(users.createdAt))\n  .limit(pageSize)\n  .offset((page - 1) * pageSize);\n```\n\n## Roadmap (near-term)\n\n- CI matrix for Node/pg versions with integration tests\n- Benchmarks and performance guidance\n- Auth/Storage/Realtime migration guidance (Cognito/GIP, S3/GCS, Realtime options)\n- `supalite db pull --mode diff` (diff against existing migrations)\n- `supalite gen types` (SupaLite-first generator with Supabase-compatible output)\n- Contribution guide and issue templates\n\n## Performance notes (serverless Supabase vs cloud Postgres)\n\nGeneral differences you can expect when moving off serverless Supabase to a managed Postgres on GCP/AWS:\n- Network hops: Supabase often adds extra hops (edge/API/REST layer) vs direct Postgres access, especially within the same VPC.\n- Cold starts and pooling: serverless tiers can cold-start or aggressively pool; dedicated poolers (pgBouncer/RDS Proxy) reduce tail latency.\n- Network path: public Internet vs private VPC/peering changes jitter and p95/p99 latency.\n- Overhead: HTTP/PostgREST layers add serialization cost; direct SQL clients minimize that overhead.\n\nBenchmarks and numbers: **TBD (source needed)**. If you have public benchmarks, please open a PR with sources.\nSources needed:\n- Links to public benchmarks/blogs/docs comparing serverless Postgres vs managed Postgres latency and pooling.\n\n## Benchmark methodology (draft)\n\n- Workloads: simple `select`, filtered `select + order`, `insert`, `rpc`.\n- Measure p50/p95/p99 with warm and cold runs.\n- Keep region and instance size identical; record DB version and pool settings.\n- Separate client latency vs query time when possible.\n- Publish scripts and raw results.\n\n## Why SupaLite\n\n- Direct PostgreSQL connection (no PostgREST hop) for lower latency and fewer moving parts\n- Supabase-style, SQL-like method names for easy migration\n- Native `bigint` support with configurable transforms\n- Transactions and multi-step flows that Supabase client does not support\n- Type generator that can include relationships/constraints/indexes and function signatures\n\nSee `docs/limitations.md` for known trade-offs.\n\n## Installation\n\n```bash\nnpm install supalite\n```\n\n### CLI\n\n```bash\nnpm install -g supalite\n```\n\n```bash\nsupalite gen types --help\n```\n\nYou can also use `npx supalite ...` without a global install.\n\n## Type System\n\n### Database schema definition\n\n```typescript\n// Database types generated by SupaLite CLI\n// Example: npx supalite gen types --db-url \"postgresql://user:pass@localhost:5432/db\" --out database.types.ts\nimport { Database } from './types/database';\n\n// Typed client\nconst client = new SupaLitePG<Database>({\n  user: 'testuser',\n  password: 'testpassword',\n  host: 'localhost',\n  database: 'testdb',\n  port: 5432,\n  ssl: false,\n  // bigintTransform: 'number-or-string', // numbers when safe, strings otherwise (default: 'number-or-string')\n  // verbose: true // verbose logging\n});\n\n// Or use environment variables\nconst client = new SupaLitePG<Database>();\n\n// Database interface example (same shape as Supabase CLI output)\ninterface Database {\n  public: {\n    Tables: {\n      users: {\n        Row: {\n          id: number;\n          name: string;\n          email: string;\n          status: string;\n          last_login: string | null;\n          created_at: string;\n        };\n        Insert: {\n          name: string;\n          email: string;\n          status?: string;\n          last_login?: string | null;\n        };\n        Update: {\n          name?: string;\n          email?: string;\n          status?: string;\n          last_login?: string | null;\n        };\n        Relationships: unknown[];\n      };\n      // Other tables...\n    };\n    Views: {\n      // View definitions...\n    };\n    Functions: {\n      // Function definitions...\n    };\n    Enums: {\n      // Enum definitions...\n    };\n  };\n  // Other schemas...\n}\n```\n\n### Generate types with supalite gen types\n\n```bash\nnpx supalite gen types --db-url \"postgresql://user:pass@localhost:5432/db\" --schema public,analytics --out database.types.ts --date-as-date\n```\n\n- `--out -` prints to stdout\n- Default output is SupaLite format (superset of Supabase CLI). Use `--format supabase` for byte-for-byte Supabase CLI output.\n- SupaLite format also includes `Constraints`/`Indexes`, `referencedSchema` in `Relationships`, `bigint` + `Json` bigint support, and `SetofOptions` for setof RPCs.\n- BIGINT type mapping is controlled by `--bigint-type bigint|number|string` (default: supabase=number, supalite=bigint)\n- `--no-bigint` is a shortcut for `--bigint-type number`\n- `--json-bigint` includes `bigint` in the `Json` union (default: supabase=false, supalite=true)\n- `--no-json-bigint` disables bigint in the `Json` union\n- `--date-as-date` maps `date`/`timestamp` columns to `Date`\n- `--include-relationships` emits foreign-key metadata into `Relationships` (default: true)\n- `--include-constraints` emits primary/unique/check/foreign key metadata (default: supabase=false, supalite=true)\n- `--include-indexes` emits index metadata (name, uniqueness, definition) (default: supabase=false, supalite=true)\n- `--include-composite-types` emits `CompositeTypes` definitions (default: true)\n- `--include-function-signatures` maps `Functions.Args/Returns` from schema metadata (default: true)\n- `Functions` always lists detected function names; signatures are included by default\n- `--type-case` controls enum/composite type key casing (`preserve` | `snake` | `camel` | `pascal`)\n- `--function-case` controls function key casing (`preserve` | `snake` | `camel` | `pascal`)\n- `--dump-functions-sql [path]` writes `CREATE FUNCTION/PROCEDURE` definitions (from `pg_get_functiondef`) to a local file\n- Use `--schema public` to exclude test/dev schemas from generated types\n- Uses `DB_CONNECTION` if `--db-url` is omitted\n\nRoadmap\n- TODO (AI): generate transactional TypeScript wrappers for RPC/functions from schema metadata\n\n## Usage Examples\n\n### Database connection\n\n```typescript\nimport { SupaLitePG } from 'supalite';\nimport { Database } from './types/database';\n\nconst client = new SupaLitePG<Database>({\n  user: 'testuser',\n  password: 'testpassword',\n  host: 'localhost',\n  database: 'testdb',\n  port: 5432,\n  ssl: false,\n  // bigintTransform: 'number-or-string', // default: 'number-or-string'\n  // verbose: true\n});\n```\n\n```typescript\nimport { SupaliteClient } from 'supalite';\nimport { Database } from './types/database';\n\n// SupaliteClient is a thin wrapper around SupaLitePG.\nconst client = new SupaliteClient<Database>({\n  connectionString: process.env.DB_CONNECTION || 'postgresql://user:pass@localhost:5432/db',\n});\n```\n\n```typescript\nimport { Pool } from 'pg';\nimport { SupaLitePG } from 'supalite';\nimport { Database } from './types/database';\n\nconst pool = new Pool({\n  connectionString: process.env.DB_CONNECTION || 'postgresql://user:pass@localhost:5432/db',\n  max: 5,\n});\n\nconst client = new SupaLitePG<Database>({\n  pool,\n});\n```\n\n### Basic CRUD\n\n```typescript\n// Read\nconst { data, error } = await client\n  .from('users')\n  .select('*')\n  .eq('id', 1)\n  .single();\n\n// Insert single\nconst { data, error } = await client\n  .from('users')\n  .insert({\n    name: 'Hong',\n    email: 'hong@example.com'\n  });\n\n// Insert multiple\nconst { data, error } = await client\n  .from('users')\n  .insert([\n    { name: 'Hong', email: 'hong@example.com' },\n    { name: 'Kim', email: 'kim@example.com' }\n  ]);\n\n// Select specific columns\nconst { data } = await client\n  .from('profiles')\n  .select('user_id, bio, interests')\n  .limit(2);\n\n// Multi-column ordering\nconst { data } = await client\n  .from('users')\n  .select('name, status, last_login')\n  .order('status', { ascending: true })\n  .order('last_login', { ascending: false });\n\n// Pagination\nconst page1 = await client\n  .from('posts')\n  .select('*')\n  .limit(2)\n  .offset(0);\n\n// Range query\nconst { data } = await client\n  .from('comments')\n  .select('*')\n  .range(1, 3);\n\n// Conditional UPDATE\nconst { data } = await client\n  .from('posts')\n  .update({\n    views: 10,\n    updated_at: new Date().toISOString()\n  })\n  .eq('user_id', userId)\n  .select();\n\n// UPSERT\nconst { data } = await client\n  .from('profiles')\n  .upsert({\n    user_id: userId,\n    bio: 'New profile.',\n    interests: ['coding', 'music'],\n    updated_at: new Date().toISOString()\n  }, { onConflict: 'id' })\n  .select()\n  .single();\n```\n\n### Advanced features\n\n```typescript\n// Transactions (not supported by Supabase)\nawait client.transaction(async (tx) => {\n  const { data: user } = await tx\n    .from('users')\n    .insert({ name: 'Hong' })\n    .select()\n    .single();\n\n  await tx\n    .from('profiles')\n    .insert({ user_id: user.id });\n});\n\n// OR filtering\nconst { data, error } = await client\n  .from('users')\n  .or('status.eq.active,role.eq.admin');\n\n// Case-insensitive search\nconst { data, error } = await client\n  .from('users')\n  .ilike('email', '%@example.com');\n\n// Relationship embed (PostgREST-style)\n// 1:N returns arrays (default: [])\nconst { data: authors } = await client\n  .from('authors')\n  .select('*, books(*)');\n\n// N:1 returns objects (or null)\nconst { data: books } = await client\n  .from('books')\n  .select('*, authors(*)');\n\n// Exact count\nconst { data, count, error } = await client\n  .from('users')\n  .select('*', { count: 'exact' });\n\n// Array inserts\nconst { data, error } = await client\n  .from('posts')\n  .insert([\n    {\n      title: 'First post',\n      tags: ['programming', 'tips'],\n      content: '...'\n    },\n    {\n      title: 'Second post',\n      tags: ['travel'],\n      content: '...'\n    }\n  ]);\n\n// JSONB array/object insert\n// JSON/JSONB columns are stringified automatically (schema-based)\nconst myJsonArray = ['tag1', 2025, { active: true }];\nconst myJsonObject = { active: true, score: 10 };\nconst { data: jsonData, error: jsonError } = await client\n  .from('your_jsonb_table')\n  .insert({\n    metadata_array: myJsonArray,\n    metadata_obj: myJsonObject\n  })\n  .select('metadata_array, metadata_obj')\n  .single();\n\n// Native arrays (TEXT[], INTEGER[])\n// JS arrays are passed through to pg driver.\nconst { data: nativeArrayData, error: nativeArrayError } = await client\n  .from('your_native_array_table')\n  .insert({\n    tags_column: ['tech', 'event'],\n    scores_column: [100, 95, 88]\n  })\n  .select('tags_column, scores_column')\n  .single();\n\n// Other schema\nconst { data, error } = await client\n  .from('users', 'other_schema')\n  .select('*');\n```\n\n## Supported Query Patterns (Test-Based Examples)\n\nThe examples below are based on `src/__tests__`/`examples/tests` and the actual implementation.\n\n### Filters\n\n```typescript\n// match: multiple columns at once\nconst { data: matched } = await client\n  .from('test_table')\n  .select('*')\n  .match({ name: 'test1', value: 10 });\n\n// Comparison/pattern/array/NULL filters\nawait client.from('users').select('*').eq('id', 1);\nawait client.from('users').select('*').neq('status', 'inactive');\nawait client.from('users').select('*').gt('age', 18);\nawait client.from('users').select('*').gte('score', 80);\nawait client.from('users').select('*').lt('rank', 100);\nawait client.from('users').select('*').lte('rank', 10);\nawait client.from('users').select('*').like('email', '%@example.com');\nawait client.from('users').select('*').ilike('email', '%@example.com');\nawait client.from('users').select('*').in('id', [1, 2, 3]);\nawait client.from('users').select('*').in('id', []); // no results (WHERE FALSE)\nawait client.from('posts').select('*').in('user_id', [1, null, 3]); // NULLs are matched via OR IS NULL\nawait client.from('posts').select('*').in('user_id', [1, 2]).in('views', [50, 100, 150]);\nawait client.from('posts').select('*').contains('tags', ['travel']);\nawait client.from('profiles').select('*').is('avatar_url', null);\n\n// NOT (currently only IS NULL is supported)\nawait client.from('users').select('*').not('email', 'is', null);\n\n// OR conditions: 'column.operator.value'\n// now() is inlined as NOW() in the WHERE clause.\n// Quote values to include dots/commas: name.eq.\"last, first\"\nconst { data: credits } = await client\n  .from('credits')\n  .select('*')\n  .eq('wallet_id', 123)\n  .gt('amount', 0)\n  .or('valid_until.is.null,valid_until.gt.now()');\n\n// Nested and(...) inside or(...) (PostgREST-style keyset pattern)\nconst { data: images } = await client\n  .from('priv_images')\n  .select('id,created_at')\n  .or('created_at.lt.2026-02-13T09:09:32.000Z,and(created_at.eq.2026-02-13T09:09:32.000Z,id.lt.1462)');\n\n// in / not.* inside or()\nconst { data: users } = await client\n  .from('users')\n  .select('*')\n  .or('and(id.in.(1,2,3),status.not.eq.inactive)');\n```\n\n### Sorting/Pagination\n\n```typescript\nawait client.from('posts').select('*').order('created_at'); // ASC by default\nawait client.from('posts').select('*').order('created_at', { ascending: false });\n\nawait client\n  .from('shop_gen_images')\n  .select('*')\n  .order('is_final', { ascending: true })\n  .order('pass_no', { ascending: true, nullsFirst: true })\n  .order('created_at', { ascending: true });\n\nawait client.from('posts').select('*').limit(10).offset(20);\nawait client.from('comments').select('*').range(1, 3);\n\nconst page = 2;\nconst pageSize = 10;\nawait client\n  .from('posts')\n  .select('*')\n  .limit(pageSize)\n  .offset((page - 1) * pageSize);\n```\n\n### Real-World Patterns (Production-Inspired)\n\n```typescript\n// Multi-order + NULLS FIRST\nconst { data: genImages } = await client\n  .from('shop_gen_images')\n  .select('*')\n  .eq('request_hash', requestHash)\n  .order('is_final', { ascending: true })\n  .order('pass_no', { ascending: true, nullsFirst: true })\n  .order('created_at', { ascending: true });\n\n// INNER embed + related table filter\nconst { data: orderableItems } = await client\n  .from('cur_menu_item')\n  .select('id, name, menu_item_id, ext_menu_item!inner(id, deleted_at)')\n  .eq('cur_menu_id', Number(cur_menu_id))\n  .is('deleted_at', null)\n  .is('ext_menu_item.deleted_at', null);\n\n// Nested embed (option sets)\nconst { data: optionSets } = await client\n  .from('menu_item_opts_set')\n  .select(`\n    id,\n    created_at,\n    menu_item_id,\n    schema_id,\n    menu_item_opts_set_schema!inner (\n      id,\n      name,\n      desc,\n      type,\n      mandatory,\n      multiple_choices,\n      max_choice_count,\n      min_choice_count,\n      name_i18n,\n      desc_i18n,\n      translated\n    ),\n    menu_item_opts (\n      id,\n      created_at,\n      menu_item_opts_schema (\n        name,\n        add_price,\n        price,\n        order,\n        type,\n        name_i18n,\n        translated\n      ),\n      soldout,\n      hidden,\n      modified_at\n    )\n  `)\n  .eq('menu_item_id', Number(menu_item_id));\n\n// Bulk insert + ignore duplicates (ON CONFLICT DO NOTHING)\nconst { data: inserted } = await client\n  .from('menu_section_items')\n  .insert(deduplicatedRowList, {\n    onConflict: ['section_id', 'menu_item_id'],\n    ignoreDuplicates: true,\n  })\n  .select('*');\n```\n\n### Count / Head\n\n```typescript\nconst { data, count } = await client\n  .from('count_test_users')\n  .select('*', { count: 'exact' });\n\nconst { data: headOnly, count: total } = await client\n  .from('count_test_users')\n  .select('*', { count: 'exact', head: true });\n\nconst { data: limited, count: totalLimited } = await client\n  .from('count_test_users')\n  .select('*', { count: 'exact' })\n  .limit(3);\n\nconst { data: ranged, count: totalRanged } = await client\n  .from('count_test_users')\n  .select('*', { count: 'exact' })\n  .range(2, 5);\n```\n\nWhen using `count: 'exact'`, result rows do not include the `exact_count` column. `count` always returns the total row count even when `limit`/`range` is used. `count: 'planned' | 'estimated'` uses `EXPLAIN (FORMAT JSON)` row estimates and may differ from the exact total. `head: true` returns `data: []` (or just the estimate for planned/estimated counts).\n\n### single / maybeSingle\n\n```typescript\nconst { data: user } = await client\n  .from('users')\n  .select('*')\n  .eq('id', 1)\n  .single();\n\nconst { data: maybeUser } = await client\n  .from('users')\n  .select('*')\n  .eq('id', 999)\n  .maybeSingle();\n\nconst { data: multiRow, error: multiRowError } = await client\n  .from('test_table_for_multi_row')\n  .select('*')\n  .eq('group_key', 'groupA')\n  .single();\n```\n\n`single()` throws when 0 rows (PGRST116) or 2+ rows (PGRST114) are returned. `maybeSingle()` returns `data: null` + `error: null` on 0 rows, and returns PGRST114 on 2+ rows. Internal PGRST errors set `error.code` to `PGRST116`/`PGRST114`.\n\n### Relationship Embed (PostgREST-style)\n\n```typescript\n// 1:N returns arrays, N:1 returns objects\nconst { data: authors } = await client\n  .from('authors')\n  .select('*, books(*)');\n\nconst { data: books } = await client\n  .from('books')\n  .select('*, authors(*)')\n  .order('id');\n\nconst { data: authorNames } = await client\n  .from('authors')\n  .select('name, books(title)');\n\nconst { data: bookAuthors } = await client\n  .from('books')\n  .select('title, authors(name)')\n  .order('id');\n\n// INNER JOIN + related table filter (table.column)\nconst { data: orderableItems } = await client\n  .from('cur_menu_item')\n  .select('id, name, menu_item_id, ext_menu_item!inner(id, deleted_at)')\n  .eq('cur_menu_id', 10)\n  .is('deleted_at', null)\n  .is('ext_menu_item.deleted_at', null);\n\n// Nested embed\nconst { data: optionSets } = await client\n  .from('menu_item_opts_set')\n  .select(`\n    id,\n    created_at,\n    menu_item_id,\n    schema_id,\n    menu_item_opts_set_schema!inner (\n      id,\n      name,\n      desc,\n      type,\n      mandatory,\n      multiple_choices,\n      max_choice_count,\n      min_choice_count,\n      name_i18n,\n      desc_i18n,\n      translated\n    ),\n    menu_item_opts (\n      id,\n      created_at,\n      menu_item_opts_schema (\n        name,\n        add_price,\n        price,\n        order,\n        type,\n        name_i18n,\n        translated\n      ),\n      soldout,\n      hidden,\n      modified_at\n    )\n  `)\n  .eq('menu_item_id', 10);\n```\n\n### Writes (INSERT/UPDATE/DELETE/UPSERT)\n\n```typescript\n// INSERT (single/multiple)\nawait client.from('users').insert({ name: 'User', email: 'user@example.com' });\nawait client.from('users').insert([\n  { name: 'User A', email: 'a@example.com' },\n  { name: 'User B', email: 'b@example.com' }\n]).select();\n\n// INSERT with ignoreDuplicates (ON CONFLICT DO NOTHING)\nawait client\n  .from('menu_section_items')\n  .insert(\n    [\n      { section_id: 1, menu_item_id: 2 },\n      { section_id: 1, menu_item_id: 3 },\n    ],\n    { onConflict: ['section_id', 'menu_item_id'], ignoreDuplicates: true }\n  )\n  .select('*');\n\n// UPDATE + IS NULL\nawait client\n  .from('order_menu_items')\n  .update({ order_closed_time: new Date().toISOString(), last_act_member_owner_id: 123 })\n  .eq('table_name', 'test_table')\n  .eq('menu_id', 456)\n  .is('order_closed_time', null)\n  .select();\n\n// DELETE\nawait client.from('posts').delete().eq('user_id', 1).select();\n\n// DELETE + IN\nawait client\n  .from('users')\n  .delete()\n  .in('email', ['a@example.com', 'b@example.com']);\n\n// UPSERT (onConflict: string/array)\nawait client\n  .from('profiles')\n  .upsert({ user_id: 1, bio: 'hello' }, { onConflict: 'user_id' })\n  .select();\n\nawait client\n  .from('menu_item_opts_schema')\n  .upsert({ set_id: 1, name: 'Soup' }, { onConflict: 'set_id, name' })\n  .select();\n\nawait client\n  .from('ext_menu_item_section_change')\n  .upsert({ ext_menu_id: 10, ext_menu_item_id: 20 }, { onConflict: ['ext_menu_id', 'ext_menu_item_id'] });\n\n// UPSERT (ignoreDuplicates: true -> ON CONFLICT DO NOTHING)\nawait client\n  .from('ai_prompt_snapshots')\n  .upsert(\n    { prompt_hash: 'hash_1', content: 'hello' },\n    { onConflict: 'prompt_hash', ignoreDuplicates: true }\n  );\n```\n\nEmpty array `insert([])` throws `Empty array provided for insert`.\n`undefined` fields in insert/update/upsert payloads are omitted. For multi-row inserts, missing/undefined values emit `DEFAULT`. Single-row inserts with no defined fields emit `DEFAULT VALUES`.\n\n### Data Types (JSONB/Arrays/BigInt)\n\n```typescript\n// JSONB (auto stringify for arrays/objects; BigInt values inside JSON become strings)\nawait client\n  .from('jsonb_test_table')\n  .insert({ jsonb_data: ['string', 123, { nested: true }], another_json_field: { key: 'value' } })\n  .select('jsonb_data, another_json_field')\n  .single();\n\nawait client\n  .from('jsonb_test_table')\n  .insert({ jsonb_data: [] })\n  .select('jsonb_data')\n  .single();\n\n// Native arrays (TEXT[], INTEGER[])\nawait client\n  .from('native_array_test_table')\n  .insert({ tags: ['alpha', 'beta'], scores: [10, 20] })\n  .select('tags, scores')\n  .single();\n\nawait client\n  .from('native_array_test_table')\n  .insert({ tags: [], scores: [] })\n  .select('tags, scores')\n  .single();\n\nawait client\n  .from('native_array_test_table')\n  .update({ tags: ['updated_tag'] })\n  .eq('id', 1)\n  .select('tags')\n  .single();\n\nawait client\n  .from('native_array_test_table')\n  .select('id')\n  .contains('tags', ['initial_tag1'])\n  .single();\n\nawait client\n  .from('native_array_test_table')\n  .insert({ tags: null, scores: null })\n  .select('tags, scores')\n  .single();\n\n// BigInt\nawait client\n  .from('bigint_test_table')\n  .insert({ bigint_value: 8000000000000000000n })\n  .select()\n  .single();\n\nawait client\n  .from('bigint_test_table')\n  .update({ bigint_value: 7000000000000000000n })\n  .eq('id', 2)\n  .select()\n  .single();\n\nawait client\n  .from('bigint_test_table')\n  .insert({ bigint_value: null })\n  .select()\n  .single();\n\nawait client\n  .from('bigint_test_table')\n  .select('id, bigint_value')\n  .eq('bigint_value', 1234567890123456789n)\n  .single();\n```\n\n### Reserved Keyword Columns\n\n```typescript\nconst { data: reserved } = await client\n  .from('reserved_keyword_test_table')\n  .select('id, order, desc, user, limit, group')\n  .eq('order', 100)\n  .order('order', { ascending: false });\n\nconst { data: insertedReserved } = await client\n  .from('reserved_keyword_test_table')\n  .insert({ order: 300, desc: 'Description D', user: 'user_d', limit: 30, group: 'group_y' })\n  .select()\n  .single();\n\nconst { data: updatedReserved } = await client\n  .from('reserved_keyword_test_table')\n  .update({ desc: 'Updated Description A', limit: 15 })\n  .eq('order', 100)\n  .select()\n  .single();\n\nconst { data: upsertReserved } = await client\n  .from('reserved_keyword_test_table')\n  .upsert({ order: 500, desc: 'Upserted', user: 'user_e', limit: 51, group: 'group_z' }, { onConflict: 'order' })\n  .select()\n  .single();\n```\n\n### Views\n\n```typescript\nconst { data: userPosts } = await client\n  .from('user_posts_view')\n  .select('*');\n\nconst { data: activeUsers } = await client\n  .from('active_users_view')\n  .select('*')\n  .gte('post_count', 2);\n\nconst { data: singlePost } = await client\n  .from('user_posts_view')\n  .select('*')\n  .eq('post_id', 1)\n  .single();\n```\n\nViews are read-only; Insert/Update are disallowed at the type level.\n\n### RPC\n\n```typescript\nconst { data: rows } = await client.rpc('get_users');\n\nconst { data: singleUser } = await client\n  .rpc('get_user')\n  .single();\n\nconst { data: maybeUser } = await client\n  .rpc('get_user')\n  .maybeSingle();\n\nconst { data: count } = await client.rpc('get_count'); // scalar return\n\nconst { data: countSingle } = await client\n  .rpc('get_count')\n  .single();\n\nconst { data: tableExists } = await client\n  .rpc('check_table_exists', { table_name: 'code_routes' });\n\nconst { data: noneRpc, error: noneRpcError } = await client\n  .rpc('get_user')\n  .single();\n\nconst { data: manyRpc, error: manyRpcError } = await client\n  .rpc('get_user')\n  .maybeSingle();\n```\n\nRPC notes:\n- `rpc()` returns arrays for set-returning functions (even if there's a single column).\n- Scalar unwrapping happens only for scalar-returning functions.\n- Empty results return `[]` (not `null`).\n\n### Transactions\n\n```typescript\nawait client.transaction(async (tx) => {\n  const { data: user } = await tx\n    .from('users')\n    .insert({ name: 'Hong', email: 'hong@example.com' })\n    .select()\n    .single();\n\n  if (!user?.id) {\n    throw new Error('Failed to create user');\n  }\n\n  await tx\n    .from('profiles')\n    .insert({ user_id: user.id, bio: 'Transaction profile' });\n});\n```\n\n`transaction(cb)` runs the callback on an **isolated, connection-bound scope**. Each call checks out its own pooled connection, so concurrent `transaction(cb)` calls on the same client never interfere, and plain (non-transactional) queries keep using the pool. The transaction commits if the callback resolves and rolls back if it throws — a rollback failure never masks the original error, and the connection is always returned to the pool.\n\nFor manual control (a transaction spanning several functions, or conditional commit points), `begin()` returns a **connection-scoped handle**. It borrows one connection from the pool and is safe to call on a shared singleton — the singleton itself is never mutated, so concurrent queries through it are unaffected:\n\n```typescript\nconst tx = await client.begin();          // borrows one connection, runs BEGIN\ntry {\n  await tx.from('accounts').update({ balance: 100 }).eq('id', 1);\n  await tx.from('ledger').insert({ account_id: 1, delta: 100 });\n  await tx.commit();                       // COMMIT + release the connection\n} catch (e) {\n  await tx.rollback();                     // ROLLBACK + release the connection\n  throw e;\n}\n```\n\nRun your statements on the returned `tx` handle (not on `client`). `commit()` / `rollback()` finalize the handle and release its connection; calling them with no active transaction throws, as does a nested `begin()`. Prefer `transaction(cb)` when you don't need manual control — it commits, rolls back, and releases the connection for you.\n\n### Connection check\n\n```typescript\nconst isConnected = await client.testConnection();\nawait client.close();\n```\n\n## API Reference\n\n### Query methods\n\n- `select(columns?: string, options?: { count?: 'exact' | 'planned' | 'estimated', head?: boolean })`: choose columns\n  - `options.count`: `'exact'` returns total row count unaffected by `limit`; `'planned' | 'estimated'` returns EXPLAIN-based estimates\n  - `options.head`: `true` returns only `count` without data (estimated when using planned/estimated)\n  - PostgREST-style embed: `select('*, related_table(*)')` or `select('col, related_table(col1, col2)')`\n- `insert(data: T['Tables'][K]['Insert'] | T['Tables'][K]['Insert'][], options?: { onConflict?: string | string[]; ignoreDuplicates?: boolean })`: insert, `ignoreDuplicates: true` emits `ON CONFLICT DO NOTHING`\n- `update(data: T['Tables'][K]['Update'])`: update rows\n- `delete()`: delete rows\n- `upsert(data: T['Tables'][K]['Insert'], options?: { onConflict?: string | string[]; ignoreDuplicates?: boolean })`: insert/update, `ignoreDuplicates: true` emits `ON CONFLICT DO NOTHING`\n\n### Filter methods\n\n- `match(conditions)`: multiple `eq` at once (e.g., `match({ status: 'active', role: 'admin' })`)\n- `eq(column, value)`: equals\n- `neq(column, value)`: not equals\n- `gt(column, value)`: greater than\n- `gte(column, value)`: greater or equal\n- `lt(column, value)`: less than\n- `lte(column, value)`: less or equal\n- `like(column, pattern)`: LIKE\n- `ilike(column, pattern)`: case-insensitive LIKE\n- `in(column, values)`: IN\n- `is(column, value)`: IS\n- `not(column, operator, value)`: currently only `not('column', 'is', null)` is supported\n- `contains(column, value)`: array/JSON contains\n- `or(conditions)`: OR condition string (ops: eq/neq/like/ilike/gt/gte/lt/lte/is/in + `not.*`, `now()` is inlined as `NOW()`)\n  - Supports nested `and(...)` and `or(...)` groups (PostgREST-style), e.g. `created_at.lt.ts,and(created_at.eq.ts,id.lt.1462)`\n  - Supports `in.(...)` and negated ops such as `status.not.eq.inactive`, `id.not.in.(1,2,3)`, `deleted_at.not.is.null`\n  - Quote values to include dots/commas (e.g. `name.eq.\"last, first\"`)\n  - Related table filters are not supported inside `or()`\n\n### Other methods\n\n- `order(column, { ascending?: boolean, nullsFirst?: boolean })`\n- `limit(count: number)`\n- `offset(count: number)`\n- `range(from: number, to: number)`\n- `single()`\n- `maybeSingle()`\n- `returns<T>()`\n\n### Transaction methods\n\n- `transaction<T>(callback: (tx: SupaLitePG) => Promise<T>)` — auto-managed; runs on an isolated scope, commits on success, rolls back on throw, always releases the connection\n- `begin(): Promise<SupaLitePG>` — manual control; returns a **connection-scoped handle** (safe on a shared singleton). Run statements on the returned handle; throws on a nested `begin()`\n- `commit()` / `rollback()` — finalize the handle from `begin()` and release its connection; throw if there is no active transaction\n\n### Client methods\n\n- `testConnection()`\n- `close()`\n\n## Environment variables\n\n```env\nDB_USER=your_db_user\nDB_HOST=your_db_host\nDB_NAME=your_db_name\nDB_PASS=your_db_password\nDB_PORT=5432\nDB_SSL=true\n# SUPALITE_VERBOSE=true\n```\n\n### SupaLitePG constructor options\n\n- `pool?: Pool`: use an external `pg` Pool instance (other connection options are ignored; pool lifecycle is managed by the caller)\n- `connectionString?: string`: connection string (e.g. `postgresql://user:password@host:port/database`)\n- `user?: string`: DB user (env: `DB_USER`)\n- `host?: string`: DB host (env: `DB_HOST`)\n- `database?: string`: DB name (env: `DB_NAME`)\n- `password?: string`: DB password (env: `DB_PASS`)\n- `port?: number`: DB port (default: 5432, env: `DB_PORT`)\n- `ssl?: boolean`: SSL (default: `false`, env: `DB_SSL`)\n- `schema?: string`: default schema (default: `public`)\n- `verbose?: boolean`: verbose logging (default: `false`, env: `SUPALITE_VERBOSE`)\n- `bigintTransform?: 'bigint' | 'string' | 'number' | 'number-or-string'`:\n  - `'bigint'`: uses native `BigInt`\n  - `'string'`: returns string values (safe for JSON)\n  - `'number'`: returns `Number` (may lose precision, warns if unsafe)\n  - `'number-or-string'` (default): returns `Number` when safe; otherwise keeps the string to preserve precision\n\n### Json type and BigInt\nThe internal `Json` type includes `bigint` to allow explicit BigInt usage in TypeScript. When inserting or updating JSON/JSONB columns, SupaLite stringifies arrays/objects and converts any BigInt values to strings to avoid `JSON.stringify()` errors. If you need numeric JSON values, convert BigInt to `Number` yourself (mind precision). Standard `JSON.stringify()` still cannot handle native `BigInt` in userland; use a custom replacer if you serialize objects yourself. For JSON-safe query results without precision loss, use `bigintTransform: 'number-or-string'` so only safe values become numbers.\n\n## Response format\n\n```typescript\ninterface QueryResult<T> {\n  data: Array<T>;\n  error: Error | null;\n  count: number | null;\n  status: number;\n  statusText: string;\n}\n\ninterface SingleQueryResult<T> {\n  data: T | null;\n  error: Error | null;\n  count: number | null;\n  status: number;\n  statusText: string;\n}\n```\n\n- `QueryResult.data` is always an array (empty on no results or error).\n- `SingleQueryResult.data` is `null` on no results or error.\n\n## Development setup\n\n### Install PostgreSQL\nSee [examples/README.md](examples/README.md) for local setup.\n\n### Project setup\n\n```bash\n# clone\ngit clone https://github.com/your-username/supalite.git\n\n# install\nnpm install\n\n# dev\nnpm run dev\n\n# test\nnpm test\n\n# build\nnpm run build\n```\n\n## Contributing\n\nIssues and PRs are welcome. For larger changes, please open an issue first to align on scope. Tests expect a local Postgres (or `DB_CONNECTION`), and we run `npm run build`, `npm test`, and `npm run lint` before publishing.\n\n## License\n\nReleased under the MIT License. See [LICENSE](LICENSE).\n\n## Copyright\n\nCopyright 2025 Genideas Inc. and Wondong Shin (wodshin@gmail.com)\n","readmeFilename":"README.md"}