{"_id":"drizzle-cursor","_rev":"21-736a676a58128a6f3be95fadd115f4c3","name":"drizzle-cursor","dist-tags":{"alpha":"0.0.0-alpha-20260501011439","beta":"0.6.0-beta.20260501014337","latest":"0.7.2"},"versions":{"0.0.1":{"name":"drizzle-cursor","version":"0.0.1","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.0.1","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"9e7dfe54f5ff66ae23fe03faab5a377e97e3592e","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.0.1.tgz","fileCount":26,"integrity":"sha512-7FJw5K62xDobRwscfp+x15vOhZ1UJYa/ULq5MkvmWI5V8yCj6heqH8U4qjYNi58RnNxc6ZcOsDYVMK2Y90ZOBQ==","signatures":[{"sig":"MEQCIHMpFUiZJIxojv7wpulP4vPV3dKhJ8H8h66Sv05sw6NKAiAICIWNwUAMhLl6UF1VnyPuM0n9H7nRIIV3fXP8/AyoMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1516035},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"bf283da23cc57e98efd00a7feb4b32077434e5e5","scripts":{"lint":"tsc","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx src/lib/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","dependencies":{"drizzle-orm":"^0.28.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.12.8","tsup":"^7.2.0","dotenv":"^16.3.1","typescript":"^5.2.2","@types/node":"^20.5.9","drizzle-kit":"^0.19.13","better-sqlite3":"^8.6.0","@changesets/cli":"^2.26.2","@types/better-sqlite3":"^7.6.4"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.0.1_1694218865216_0.02884314501277596","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"drizzle-cursor","version":"0.0.2","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.0.2","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"fc5d0e2af7c7491fdd4b2f9cc9d391a40427ecf1","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.0.2.tgz","fileCount":27,"integrity":"sha512-taAnxsntcu/h09yIgJdvNY7xNiLAfMDU8W+ql9WIS+XvppQF0AAlPgaU5VWr0oyE+kbShGr6OtQCYmoCWaMFCg==","signatures":[{"sig":"MEYCIQDoaLx1kpBqsKlCQl2PDMF1ENRBDdklyTlNaPJ9eYt9mQIhAOl6krsKlPlTU11092CZ546kIGt2thwWf1bsktD9+K9F","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1516227},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"7167be7dbd4e48316242bad82f332f7d5affff78","scripts":{"lint":"tsc","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx src/lib/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.12.8","tsup":"^7.2.0","dotenv":"^16.3.1","typescript":"^5.2.2","@types/node":"^20.5.9","drizzle-kit":"^0.19.13","better-sqlite3":"^8.6.0","@changesets/cli":"^2.26.2","@types/better-sqlite3":"^7.6.4"},"peerDependencies":{"drizzle-orm":"^0.28.6"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.0.2_1694221110819_0.8709288198459961","host":"s3://npm-registry-packages"}},"0.0.3":{"name":"drizzle-cursor","version":"0.0.3","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.0.3","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"246d83dc250f366fe874570e65d1d92f00385da5","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.0.3.tgz","fileCount":27,"integrity":"sha512-Av0EuVzrgNDzxO0odvI0G7y4ZRVYE1zf8XogApf61+zeye3QMq/cJ9xouVxFgfNftKfsteVv5OH2JBlKunf4Lw==","signatures":[{"sig":"MEUCIQCSDpK942biHmUc3Kz5LYUmDZt4jnAc4NmwHZf9Ad6jPgIgUcJdbjULWCZFMYXK6DYc/Lm6Nr7M87r2WSe78iX9960=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1516345},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"689ba6b3495a4d9ca1293a778a1abd703bd7ca72","scripts":{"lint":"tsc","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx src/lib/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.12.8","tsup":"^7.2.0","dotenv":"^16.3.1","typescript":"^5.2.2","@types/node":"^20.5.9","drizzle-kit":"^0.19.13","better-sqlite3":"^8.6.0","@changesets/cli":"^2.26.2","@types/better-sqlite3":"^7.6.4"},"peerDependencies":{"drizzle-orm":"^0.28.6"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.0.3_1694221965797_0.05528986343830766","host":"s3://npm-registry-packages"}},"0.1.0":{"name":"drizzle-cursor","version":"0.1.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.1.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"4aeca051681d52c23f89ce74592174de88291f00","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.1.0.tgz","fileCount":35,"integrity":"sha512-iIgyEnAQFP2jTDDY+QvLjenaZxBIb1/kEMth/zI9ecT/6reMxsrEOt+Evv5s2p3ncLtpuIspp4SQBiw2gPA3XA==","signatures":[{"sig":"MEUCIEjqKyXFgXsDq/cR4yIsJ6Sgk3yMRy94mcoT098kOHqTAiEAojMGy7ZlO5q82Dn44deZ3c0Hj8iVYTRHDV+P21McXXM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1580476},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"2b85457dec094780da559c0998503db13bed87d8","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx src/lib/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^3.12.8","tsup":"^7.2.0","dotenv":"^16.3.1","vitest":"^0.34.4","typescript":"^5.2.2","@types/node":"^20.5.9","drizzle-kit":"^0.19.13","better-sqlite3":"^8.6.0","@changesets/cli":"^2.26.2","@types/better-sqlite3":"^7.6.4","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.28.6"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.1.0_1694245677194_0.3418158901070685","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"drizzle-cursor","version":"0.2.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.2.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"1130dd254e705490dbcec51ed8841e57a79c9cc5","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.2.0.tgz","fileCount":36,"integrity":"sha512-efeO5h8yFZx5y5G/dZ671KhBOdYLzjBCczpnvRljGkl0JAQV8vWHXhidwQJPwMmsXLWyy1p6ygLXBIPDGkQYJg==","signatures":[{"sig":"MEYCIQDnaLgRzuwjjW0XMJ9mRa8IUzGJ9RhVWShaJeb224detgIhAJL+YkUubKE6sFEgyEuAfbI3fcHlGvJ0yESQtJelHv6X","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":92599},"main":"dist/index.js","_from":"file:drizzle-cursor-0.2.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/fa275d67dc04607940c6981492f3103d/drizzle-cursor-0.2.0.tgz","_integrity":"sha512-efeO5h8yFZx5y5G/dZ671KhBOdYLzjBCczpnvRljGkl0JAQV8vWHXhidwQJPwMmsXLWyy1p6ygLXBIPDGkQYJg==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dotenv":"^16.4.4","vitest":"^1.2.2","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.29.3"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.2.0_1707966894636_0.1912424709583429","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"drizzle-cursor","version":"0.2.1","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.2.1","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"7fda9ba82ccf8dfaf6389ba3e8c2c51e0006925d","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.2.1.tgz","fileCount":38,"integrity":"sha512-D+3rWLzijIbREr6ACo3HBiPZDc+v5yen/a8Hx//XwMYqTHFsXteKAWG3rc3RvslurJjk70Qkkt0Ea7EsVb4VPw==","signatures":[{"sig":"MEYCIQCXYEZqOCVeo7Ql7gsunfnfOyVhvnes5bje9QgDHTBC6AIhAJfyoOzLMJn4Ggja/T7xZnrCINnbqgKrn8XbyXOoZMFt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98322},"main":"dist/index.js","_from":"file:drizzle-cursor-0.2.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/c49a655006c59fc13adc18ced9217e16/drizzle-cursor-0.2.1.tgz","_integrity":"sha512-D+3rWLzijIbREr6ACo3HBiPZDc+v5yen/a8Hx//XwMYqTHFsXteKAWG3rc3RvslurJjk70Qkkt0Ea7EsVb4VPw==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dotenv":"^16.4.4","vitest":"^1.2.2","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.29.3"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.2.1_1707969739476_0.89300485947886","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"drizzle-cursor","version":"0.3.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.3.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"16f172f8bba622637e66995a3098f84c3b215750","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.3.0.tgz","fileCount":39,"integrity":"sha512-PE+TJ7kGk/dOxguSmMrqjHasjzdPA48jdTyVZhnAIMBA3PBxnTNfdne8MKOMZV02tH5lkIxABlBB2xEV7+Z8fQ==","signatures":[{"sig":"MEUCIQDFz8vFyRKGhmZb+8i7iTimbha3B4tEIgPL/9FbolnCWAIgac/Ad+b/z8Sh2fhKDA4A8nEEnIJcYwNsbCCQYtgXHuw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":100506},"main":"dist/index.js","_from":"file:drizzle-cursor-0.3.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/23061c8a6b5d7926344dddf20ed0f4a3/drizzle-cursor-0.3.0.tgz","_integrity":"sha512-PE+TJ7kGk/dOxguSmMrqjHasjzdPA48jdTyVZhnAIMBA3PBxnTNfdne8MKOMZV02tH5lkIxABlBB2xEV7+Z8fQ==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dotenv":"^16.4.4","vitest":"^1.2.2","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.29.3"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.3.0_1708033415719_0.7460474054233093","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"drizzle-cursor","version":"0.3.1","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.3.1","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"075c4461f3555d4a387b121cedad99ea17b1bb62","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.3.1.tgz","fileCount":39,"integrity":"sha512-apN7gu+DwAuetEyKn4TdQeFQRVLJSdP3TbiCEB3VN+VkH9w4vJk0IEaCl/U48tcUD6dQG3hrh1YjPjwyUzcUKA==","signatures":[{"sig":"MEQCIC0tirqE5PcTA9RxS9rcgd+EsYFxO/IVoF4HiyJdWFH/AiApqZAawqSHHQqACV3mOz8kwoYOAVdw+D+SaD6mLjo2aw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":101541},"main":"dist/index.js","_from":"file:drizzle-cursor-0.3.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/8fc0fbc7745e5e849a6797d01e5abb71/drizzle-cursor-0.3.1.tgz","_integrity":"sha512-apN7gu+DwAuetEyKn4TdQeFQRVLJSdP3TbiCEB3VN+VkH9w4vJk0IEaCl/U48tcUD6dQG3hrh1YjPjwyUzcUKA==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dotenv":"^16.4.4","vitest":"^1.2.2","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.29.3"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.3.1_1708036275217_0.4838570735386729","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"drizzle-cursor","version":"0.3.2","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.3.2","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"97f4ab340e3a3b0cc23be2a4426bd1811457bed0","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.3.2.tgz","fileCount":39,"integrity":"sha512-v4nTu15imC3O1iYHbpwCdc2LYMHXw0lBt3VL82h75RrB76EVwdhH/zjwU4vVQisRqVhQjmYtGReyjzi4mDonqQ==","signatures":[{"sig":"MEUCIDXkiNSoZxVNSEBa3AoaNnEEIox1Dq/mfTopDqvdh5scAiEArHwQALD8dtSInOQ4cecUfd1HbhneP3s24TpGNsmz+/0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":101843},"main":"dist/index.js","_from":"file:drizzle-cursor-0.3.2.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/82079bd60ebd4a19934895ed4ec8ecad/drizzle-cursor-0.3.2.tgz","_integrity":"sha512-v4nTu15imC3O1iYHbpwCdc2LYMHXw0lBt3VL82h75RrB76EVwdhH/zjwU4vVQisRqVhQjmYtGReyjzi4mDonqQ==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dotenv":"^16.4.4","vitest":"^1.2.2","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.29.3"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.3.2_1708037658927_0.3355493181684346","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"drizzle-cursor","version":"0.4.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.4.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"1bf3c5ace3121d0cb1eb8789ea78ecdbc6c1dd5e","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.4.0.tgz","fileCount":44,"integrity":"sha512-NKcl7o3EcvVKxsBP1q3wNttglNumHV+aef2vTlIKeLshkvNAs9ZUNAYpYsd6iBbLA1CowRpX0f/9VWPbUExgUQ==","signatures":[{"sig":"MEUCIQDYRf7GluQtkWGdkn/VP6ci+ouFZpD+SzDkdlpOgfcIpgIgTcL+9bEL0RF2UHTso5/6d+DL29MRdFK/NfSZts8Bblo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123870},"main":"dist/index.js","_from":"file:drizzle-cursor-0.4.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/744b4df48fb53c6c95b141496dfff352/drizzle-cursor-0.4.0.tgz","_integrity":"sha512-NKcl7o3EcvVKxsBP1q3wNttglNumHV+aef2vTlIKeLshkvNAs9ZUNAYpYsd6iBbLA1CowRpX0f/9VWPbUExgUQ==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":"^0.29.3"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.4.0_1708404160653_0.1655654148598693","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"drizzle-cursor","version":"0.4.1","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.4.1","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"3f92e43828e1f3c795efe7a88b0aa056ea28c014","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.4.1.tgz","fileCount":44,"integrity":"sha512-EGFaOhbGo2CpyvXgUVCAxdQfJX4uVHTtkv0USvXod6QOknEQaZizejdWEX8hDjmI19N2f8rpJB3eYMno+MSOVA==","signatures":[{"sig":"MEUCIFJjPNPd75e4xG7OxkkpnV8cGfTqnY9WVyoun8H2nI2OAiEAqE4aI92ZFmVsfZlAdydvAEWV2rOwWFl1U2+1niiweVU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":123955},"main":"dist/index.js","_from":"file:drizzle-cursor-0.4.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/2753adb57bfb33d4003e4df932853f8d/drizzle-cursor-0.4.1.tgz","_integrity":"sha512-EGFaOhbGo2CpyvXgUVCAxdQfJX4uVHTtkv0USvXod6QOknEQaZizejdWEX8hDjmI19N2f8rpJB3eYMno+MSOVA==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.29.1 < 1"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.4.1_1717208108573_0.6902832082506445","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"drizzle-cursor","version":"0.5.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.5.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"bce2bbb33c88482ffd07b3cf976cf7168403d8ca","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.5.0.tgz","fileCount":46,"integrity":"sha512-sE4Ja//+W8p26YoNxeiDcTBGu5UVZvJ8gGDLaZK2rCD5bV/eT9zwvEVmasonFMJHyttAT+/ViMkaeSv2kwIfiQ==","signatures":[{"sig":"MEYCIQDu/jwegX/NgFd2PJDAu2vk6zYRzeiL5FdSK3wuTv2gBwIhAP7pMhlk769V62Xtz/Dm7/+MiE2p6IB5YOPPNA98HxP+","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":129439},"main":"dist/index.js","_from":"file:drizzle-cursor-0.5.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/87f78e02449c56a12f45261d45af2fdd/drizzle-cursor-0.5.0.tgz","_integrity":"sha512-sE4Ja//+W8p26YoNxeiDcTBGu5UVZvJ8gGDLaZK2rCD5bV/eT9zwvEVmasonFMJHyttAT+/ViMkaeSv2kwIfiQ==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 1"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.5.0_1724538135459_0.2383529839511065","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"drizzle-cursor","version":"0.5.1","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.5.1","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"58f6ae73288017511edf55154b10773aea8fa533","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.5.1.tgz","fileCount":46,"integrity":"sha512-zeFYfq9vPW1CWEBV3HmUhdxB/pkEJpmWRL4EJWaCHVwLUfL0sGj6afoulg0x/1gqLbPihh0VfAEnVpDX06pOFg==","signatures":[{"sig":"MEQCIHW7JrWDIdO2b/3H0Ngt2B43w6y3eCuPrma3fFBXDer4AiALOEuFhJNgNdlCimtG7UmRE2FGTp1ux6VDs1C/Rt00qA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":130152},"main":"dist/index.js","_from":"file:drizzle-cursor-0.5.1.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/ca77fc84baa71ac00c6ddac9598b163c/drizzle-cursor-0.5.1.tgz","_integrity":"sha512-zeFYfq9vPW1CWEBV3HmUhdxB/pkEJpmWRL4EJWaCHVwLUfL0sGj6afoulg0x/1gqLbPihh0VfAEnVpDX06pOFg==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 1"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.5.1_1730071319901_0.36264670684467526","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"drizzle-cursor","version":"0.5.2","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.5.2","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"cd5c04aef9bfba6ad789896c2efb90d767f3cc8d","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.5.2.tgz","fileCount":46,"integrity":"sha512-ZbEY49BzgwQjEGYVgJNptS1Logl5XZcFGc3DDMwFGyy7U5dkiFM85g1XthfOKPGHDyKbX61F+UKuumKY4vtinA==","signatures":[{"sig":"MEUCIQCOU7yyzsLmai20aj//DPt1dYHLrt8YVo7cUeCCGH7gSAIgJ3cIcVaIrNDuszJuSrSy7O5I7sWxrJawZqwqpj6P6JA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138770},"main":"dist/index.js","_from":"file:drizzle-cursor-0.5.2.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/349daf34562d5d8494fda11601f972ea/drizzle-cursor-0.5.2.tgz","_integrity":"sha512-ZbEY49BzgwQjEGYVgJNptS1Logl5XZcFGc3DDMwFGyy7U5dkiFM85g1XthfOKPGHDyKbX61F+UKuumKY4vtinA==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 1"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.5.2_1749698482380_0.35720202203182927","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"drizzle-cursor","version":"0.5.3","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.5.3","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"4db9e39f04a804ab72a0552e0be7f0e3cafc7d50","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.5.3.tgz","fileCount":46,"integrity":"sha512-fMg+qY9cBDC6F4B1SyYrVN10sX+xaWNmR3w3u3Nq6RTfp/v+31oycqT+oBGO32XXoEcWzQkHJeuCqnaQdmGukA==","signatures":[{"sig":"MEYCIQCIlyI5PTTD69bPbzWPc9PZp5CW8tqg0qxZQVJey6nSRwIhAOucoAASImrPbjj0lz1GEAD8Z0hTOIAd1xH0XevQJd3w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138859},"main":"dist/index.js","_from":"file:drizzle-cursor-0.5.3.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:example":"tsx test/example.ts","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/43f6375d0d35141a0c4e8d1141364de4/drizzle-cursor-0.5.3.tgz","_integrity":"sha512-fMg+qY9cBDC6F4B1SyYrVN10sX+xaWNmR3w3u3Nq6RTfp/v+31oycqT+oBGO32XXoEcWzQkHJeuCqnaQdmGukA==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 1"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.5.3_1749699420812_0.38442961809431675","host":"s3://npm-registry-packages-npm-production"}},"0.0.0-alpha-20260501011439":{"name":"drizzle-cursor","version":"0.0.0-alpha-20260501011439","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.0.0-alpha-20260501011439","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"1fd3b8d4c12b0db56f2c2a8676dfd47319a067aa","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.0.0-alpha-20260501011439.tgz","fileCount":57,"integrity":"sha512-ApOyo2+cFre6+ujTDqtNq847MeSNJ4I9lf3kHj8X0kgzI19lGPlLtujOTHm25/zkBn17r5lkeYuvnNgnwGyVWg==","signatures":[{"sig":"MEYCIQD+Ra++r83+O3uIV0n8tjo6niXeVMMsVnrgiPZiJwKsbAIhANWnET3Gqm7hMjkMMU5+8B4uuFvenSGjzNh3toW3g9o6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":156453},"main":"dist/index.js","_from":"file:drizzle-cursor-0.0.0-alpha-20260501011439.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:compat":"pnpm run test:compat:v0 && pnpm run test:compat:v1","release:beta":"pnpm run build && changeset publish --tag beta","test:example":"tsx test/example.ts","release:alpha":"pnpm run build && changeset publish --tag alpha","test:compat:v0":"pnpm --filter drizzle-cursor-fixture-v0 test","test:compat:v1":"pnpm --filter drizzle-cursor-fixture-v1 test","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/0443598561442383182399b5e639d494/drizzle-cursor-0.0.0-alpha-20260501011439.tgz","_integrity":"sha512-ApOyo2+cFre6+ujTDqtNq847MeSNJ4I9lf3kHj8X0kgzI19lGPlLtujOTHm25/zkBn17r5lkeYuvnNgnwGyVWg==","_npmVersion":"10.8.2","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 2"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.0.0-alpha-20260501011439_1777598085279_0.9831209678109103","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-beta.20260501014337":{"name":"drizzle-cursor","version":"0.6.0-beta.20260501014337","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.6.0-beta.20260501014337","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"f99971d216c3ad44d3cdcf928793f7de2009a446","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.6.0-beta.20260501014337.tgz","fileCount":56,"integrity":"sha512-69qk7weBuZlB5EpY9OUCPeOQhExnJk9Fv3LCt2cYMR2zvpoTfdMKk3YW1fi7FfrbTRze1CsR8HEjbD7jt2IsLg==","signatures":[{"sig":"MEYCIQCCbA9ntgJhenVZxJSqC4v4KPrz/Nl3ft7SaxtTeeju8wIhAKfej2DY9eqNlh2QSEU0A3mg9doMMN/kK2/dVYJwE1TK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158756},"main":"dist/index.js","_from":"file:drizzle-cursor-0.6.0-beta.20260501014337.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:compat":"pnpm run test:compat:v0 && pnpm run test:compat:v1","release:beta":"pnpm run build && changeset publish --tag beta","test:example":"tsx test/example.ts","release:alpha":"pnpm run build && changeset publish --tag alpha","test:compat:v0":"pnpm --filter drizzle-cursor-fixture-v0 test","test:compat:v1":"pnpm --filter drizzle-cursor-fixture-v1 test","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/66d6d4729d770335a7cdcea9ff5a273b/drizzle-cursor-0.6.0-beta.20260501014337.tgz","_integrity":"sha512-69qk7weBuZlB5EpY9OUCPeOQhExnJk9Fv3LCt2cYMR2zvpoTfdMKk3YW1fi7FfrbTRze1CsR8HEjbD7jt2IsLg==","_npmVersion":"10.8.2","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 2"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.6.0-beta.20260501014337_1777599822643_0.032960025308303775","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"drizzle-cursor","version":"0.6.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.6.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"30c32a7253a0bdef8a4bffc5183988c5d502b7cf","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.6.0.tgz","fileCount":56,"integrity":"sha512-Muus0Xo8nOAoihUg8WxLiH3yzQQCSqJC7Af9jYfAgz72dO4UYMJ/kKDuRw3Pta8tRKl49sz8uUBvpZ0xF1h16A==","signatures":[{"sig":"MEQCIGi6ZLz6XlpnjuvX0Exn5t81+GNSx1og6wL6FFKbmfMJAiBznO3tso8nKBW/Qv0GVxXHiDsCeXuJEftsJzutq0Zt3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175009},"main":"dist/index.js","_from":"file:drizzle-cursor-0.6.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:compat":"pnpm run test:compat:v0 && pnpm run test:compat:v1","release:beta":"pnpm run build && changeset publish --tag beta","test:example":"tsx test/example.ts","release:alpha":"pnpm run build && changeset publish --tag alpha","test:compat:v0":"pnpm --filter drizzle-cursor-fixture-v0 test","test:compat:v1":"pnpm --filter drizzle-cursor-fixture-v1 test","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/e698bb9f78e7eefca3753376855835fa/drizzle-cursor-0.6.0.tgz","_integrity":"sha512-Muus0Xo8nOAoihUg8WxLiH3yzQQCSqJC7Af9jYfAgz72dO4UYMJ/kKDuRw3Pta8tRKl49sz8uUBvpZ0xF1h16A==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 2"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.6.0_1777613766863_0.8910816596316979","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"drizzle-cursor","version":"0.7.0","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.7.0","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"4d752bac9d8601db2b2adaaf606d1cbb20d9a30a","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.7.0.tgz","fileCount":56,"integrity":"sha512-G4fYL0qyl0LlSdlzjhHwrZwq3h4loi+cQmUujtoKBK2vD6Iwqo0B0hj0wLWhtL+gJlRCNr95vtAdGxwSX1CeqA==","signatures":[{"sig":"MEQCIAaRkhWJL0IzJeM1dLVv3VMukJbdML5TzIK63jSbTg2uAiApPMqAOkUQ2BQjhyjNXEjmCqmiF1TuJChBFDkMaltxwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205250},"main":"dist/index.js","_from":"file:drizzle-cursor-0.7.0.tgz","types":"dist/index.d.ts","module":"dist/index.mjs","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"pnpm run build && changeset publish","db:check":"drizzle-kit check:sqlite","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:compat":"pnpm run test:compat:v0 && pnpm run test:compat:v1","release:beta":"pnpm run build && changeset publish --tag beta","test:example":"tsx test/example.ts","release:alpha":"pnpm run build && changeset publish --tag alpha","test:compat:v0":"pnpm --filter drizzle-cursor-fixture-v0 test","test:compat:v1":"pnpm --filter drizzle-cursor-fixture-v1 test","test:example:pg":"tsx test/example.pg.ts","generate:version":"changeset version","generate:changelog":"changeset","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_resolved":"/tmp/6eb30478c0d6280bdbe03f2b8d283873/drizzle-cursor-0.7.0.tgz","_integrity":"sha512-G4fYL0qyl0LlSdlzjhHwrZwq3h4loi+cQmUujtoKBK2vD6Iwqo0B0hj0wLWhtL+gJlRCNr95vtAdGxwSX1CeqA==","_npmVersion":"8.19.4","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"16.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@changesets/cli":"^2.27.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 2"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.7.0_1777617984277_0.45464397582243166","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"drizzle-cursor","version":"0.7.1","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","_id":"drizzle-cursor@0.7.1","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"dist":{"shasum":"02affdaed7e297eb5fb00c11b7174884d5f51731","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.7.1.tgz","fileCount":55,"integrity":"sha512-Nec72zNOXNBz44UWj1GfELZyPweycciALdl88b1Cez+f2dfqpSddF54EL2avuQnVOU3lO6PHVp89RFKn7AfT3A==","signatures":[{"sig":"MEYCIQCnjK+frSqEakWE/Q5O1oJNnA4y+KCyBCeifyTw8uY6PgIhAJF0sDPiVsmGykc/pMlMQTla0ljw4ZKVVBtasFgXt/mq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":391253},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","gitHead":"49f7a1a0186550e4a386d3c4ad86baf8a8cf2b0e","scripts":{"lint":"tsc","test":"vitest","build":"tsup src/index.ts --format cjs,esm --dts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:seed":"tsx test/db/seed.ts","release":"changelogen --release && pnpm run build && npm publish","db:check":"drizzle-kit check:sqlite","changelog":"changelogen","db:studio":"drizzle-kit studio","db:migrate":"tsx test/db/migrate.ts","db:generate":"drizzle-kit generate:sqlite","test:compat":"pnpm run test:compat:v0 && pnpm run test:compat:v1","test:example":"tsx test/example.ts","test:compat:v0":"pnpm --filter drizzle-cursor-fixture-v0 test","test:compat:v1":"pnpm --filter drizzle-cursor-fixture-v1 test","test:example:pg":"tsx test/example.pg.ts","test:example:sqlite":"tsx test/example.sqlite.ts"},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"_npmVersion":"10.9.8","description":"Utils for Drizzle ORM cursor based pagination","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","dayjs":"^1.11.13","base-x":"^4.0.0","dotenv":"^16.4.4","vitest":"^1.2.2","superjson":"^2.2.1","typescript":"^5.3.3","@types/node":"^20.11.17","drizzle-kit":"^0.20.14","better-sqlite3":"^9.4.1","@faker-js/faker":"^8.4.1","@electric-sql/pglite":"^0.2.3","@types/better-sqlite3":"^7.6.9","@total-typescript/ts-reset":"^0.5.1"},"peerDependencies":{"drizzle-orm":">= 0.33.0 < 2"},"_npmOperationalInternal":{"tmp":"tmp/drizzle-cursor_0.7.1_1779525395005_0.29483913896862934","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"drizzle-cursor","version":"0.7.2","description":"Utils for Drizzle ORM cursor based pagination","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","release":"changelogen --release && pnpm run build && npm publish","changelog":"changelogen","lint":"tsc","test":"vitest","test:compat:v0":"pnpm --filter drizzle-cursor-fixture-v0 test","test:compat:v1":"pnpm --filter drizzle-cursor-fixture-v1 test","test:compat":"pnpm run test:compat:v0 && pnpm run test:compat:v1","db:generate":"drizzle-kit generate:sqlite","db:migrate":"tsx test/db/migrate.ts","db:seed":"tsx test/db/seed.ts","db:drop":"drizzle-kit drop","db:pull":"drizzle-kit introspect:sqlite","db:push":"drizzle-kit push:sqlite","db:studio":"drizzle-kit studio","db:check":"drizzle-kit check:sqlite","test:example":"tsx test/example.ts","test:example:sqlite":"tsx test/example.sqlite.ts","test:example:pg":"tsx test/example.pg.ts"},"keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","peerDependencies":{"drizzle-orm":">= 0.33.0 < 2"},"devDependencies":{"@electric-sql/pglite":"^0.2.3","@faker-js/faker":"^8.4.1","@total-typescript/ts-reset":"^0.5.1","@types/better-sqlite3":"^7.6.9","@types/node":"^20.11.17","base-x":"^4.0.0","better-sqlite3":"^9.4.1","dayjs":"^1.11.13","dotenv":"^16.4.4","drizzle-kit":"^0.20.14","superjson":"^2.2.1","tsup":"^8.0.2","tsx":"^4.7.1","typescript":"^5.3.3","vitest":"^1.2.2"},"publishConfig":{"access":"public"},"_id":"drizzle-cursor@0.7.2","gitHead":"c50b611e1edb2a66b150ec323a61e822864b0ed5","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-qlKOGkWaiWtiTW+GT9fI12sfTN+Ps0h+mpX1auCRlZHPIx4Wb14u+5IVAkwPgN2Mn3hbhVKV7Pq8R4x7/oIkag==","shasum":"e9a2250edaa996fef707bf9cfae05dc9bd6f6d8f","tarball":"https://registry.npmjs.org/drizzle-cursor/-/drizzle-cursor-0.7.2.tgz","fileCount":6,"unpackedSize":44249,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAMkldtTO58DUFla6CWhYiUc2R/+BQ4zeQoOmGGqzBumAiEAkm6W0z7zW43pS17HYZOT8YqgbUOmlxyQtqjX0jXaQYM="}]},"_npmUser":{"name":"xantiagoma","email":"xantiagoma@gmail.com"},"directories":{},"maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/drizzle-cursor_0.7.2_1779525546558_0.21268364537017348"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-09T00:21:05.154Z","modified":"2026-05-23T08:39:06.789Z","0.0.1":"2023-09-09T00:21:05.578Z","0.0.2":"2023-09-09T00:58:31.200Z","0.0.3":"2023-09-09T01:12:46.130Z","0.1.0":"2023-09-09T07:47:57.481Z","0.2.0":"2024-02-15T03:14:54.875Z","0.2.1":"2024-02-15T04:02:19.649Z","0.3.0":"2024-02-15T21:43:35.906Z","0.3.1":"2024-02-15T22:31:15.407Z","0.3.2":"2024-02-15T22:54:19.088Z","0.4.0":"2024-02-20T04:42:40.810Z","0.4.1":"2024-06-01T02:15:08.756Z","0.5.0":"2024-08-24T22:22:15.651Z","0.5.1":"2024-10-27T23:22:00.086Z","0.5.2":"2025-06-12T03:21:22.579Z","0.5.3":"2025-06-12T03:37:00.990Z","0.0.0-alpha-20260501011439":"2026-05-01T01:14:45.406Z","0.6.0-beta.20260501014337":"2026-05-01T01:43:42.783Z","0.6.0":"2026-05-01T05:36:07.020Z","0.7.0":"2026-05-01T06:46:24.463Z","0.7.1":"2026-05-23T08:36:35.171Z","0.7.2":"2026-05-23T08:39:06.700Z"},"author":{"name":"Santiago Montoya","email":"xantiagoma@gmail.com"},"license":"MIT","keywords":["drizzle","orm","pagination","cursor","drizzle-orm","base64","multiple cursors"],"description":"Utils for Drizzle ORM cursor based pagination","maintainers":[{"name":"xantiagoma","email":"xantiagoma@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"./assets/logo.png\" alt=\"drizzle-cursor\" width=\"180\" />\n</p>\n\n<h1 align=\"center\">drizzle-cursor</h1>\n\n<p align=\"center\">\n  Cursor-based pagination for <a href=\"https://github.com/drizzle-team/drizzle-orm\">Drizzle ORM</a>.<br/>\n  Supports any number of cursors, custom serialization, SQL expressions, and both query-builder and relational query APIs.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/drizzle-cursor\"><img src=\"https://img.shields.io/npm/v/drizzle-cursor?color=blue\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/drizzle-cursor\"><img src=\"https://img.shields.io/npm/dm/drizzle-cursor\" alt=\"npm downloads\" /></a>\n  <a href=\"https://github.com/xantiagoma/drizzle-cursor/blob/main/LICENSE\"><img src=\"https://img.shields.io/npm/l/drizzle-cursor\" alt=\"license\" /></a>\n  <a href=\"https://github.com/xantiagoma/drizzle-cursor\"><img src=\"https://img.shields.io/github/stars/xantiagoma/drizzle-cursor?style=social\" alt=\"stars\" /></a>\n</p>\n\n---\n\n| :zap: Supports *any* number of cursors.  |\n|------------------------------------------|\n\nCheck example at: [test/example.ts](./test/example.ts)\n\n## Installation\n\n```sh\nnpm install drizzle-cursor\n```\n\n## Compatibility\n\n- Drizzle `0.x` query-builder: guaranteed\n- Drizzle `0.x` relational query (RQB v1): `db.query` with SQL-compatible args\n- Drizzle `1.0.0-beta.x` query-builder: guaranteed\n- Drizzle `1.0.0-beta.x` RQB v1 (`db._query`) and RQB v2 (`db.query`): supported\n\nNotes:\n\n- Canonical cross-version path: query-builder\n  (`db.select().from(...).where(cursor.where(...)).orderBy(...cursor.orderBy)`).\n- `cursor.relations` is only for RQB v2 (`db.query`) and uses\n  `cursor.key` names as relational keys.\n- Nullable cursor columns remain discouraged due database and driver consistency differences.\n\n> [!NOTE]\n>\n> Check types at [`TSDocs`](https://tsdocs.dev/docs/drizzle-cursor/latest/index.html)\n>\n\n## Usage\n\nFirst create a cursor with `generateCursor` listing the Primary-key and the n-other cursors.\n\n> [!WARNING]\n>\n> The order of the `cursors` matters because it's the way they are going to take in account on the generated SQL-query\n>\n> Is **not recommended** to use *nullable-columns* for your cursors, it depends on your RDBMS how it handles them.\n>\n\n```ts\nconst cursorConfig: CursorConfig = {\n  cursors: [\n    { order: \"ASC\", key: \"lastName\", schema: schema.users.lastName },\n    { order: \"ASC\", key: \"firstName\", schema: schema.users.firstName },\n    { order: \"ASC\", key: \"middleName\", schema: schema.users.middleName },\n  ],\n  primaryCursor: { order: \"ASC\", key: \"id\", schema: schema.users.id },\n};\n\nconst cursor = generateCursor(cursorConfig);\n```\n\nPass `...cursor.orderBy` to `.orderBy` and `cursor.where()` to `.where` on query-builder calls.\n\n> [!IMPORTANT]\n>\n> for the first batch of results `cursor.where()` is empty,\n>\n\n## Querying\n\n### Query Builder\n\n```ts\nconst page1 = await db\n  .select({\n    lastName: schema.users.lastName,\n    firstName: schema.users.firstName,\n    middleName: schema.users.middleName,\n    id: schema.users.id,\n  })\n  .from(schema.users)\n  .orderBy(...cursor.orderBy) // Always include the order\n  .where(cursor.where()) // .where() is called empty the first time, meaning \"there's not previous records\"\n  .limit(page_size);\n```\n\nFor the subsequent queries you can send the last previous record on `cursor.where`\n\n```ts\nconst page2 = await db\n  .select() // .select() can vary while it includes the needed data to create the cursor\n  .from(schema.users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where(page1.at(-1))) // last record of previous query (or any record \"before: the one you want to start with)\n  .limit(page_size);\n```\n\nor a token from the last item (useful to send to FE)\n\n#### With token\n\n```ts\nconst token = cursor.serialize(page2.at(-1)); // Send this string to FE\nconst pageFromToken = await db\n  .select({\n    lastName: schema.users.lastName,\n    firstName: schema.users.firstName,\n    middleName: schema.users.middleName,\n    id: schema.users.id,\n  })\n  .from(schema.users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where(token)) // parse() is already handled internally by cursor.where\n  .limit(page_size);\n```\n\n### Query V1\n\n#### Drizzle v0 (`db.query`)\n\n```ts\nconst page1V0 = await db.query.users.findMany({\n  columns: {\n    lastName: true,\n    firstName: true,\n    middleName: true,\n    id: true,\n  },\n  orderBy: cursor.orderBy,\n  where: cursor.where(),\n  limit: page_size,\n});\n\nconst page2V0 = await db.query.users.findMany({\n  columns: {\n    lastName: true,\n    firstName: true,\n    middleName: true,\n    id: true,\n  },\n  orderBy: cursor.orderBy,\n  where: cursor.where(cursor.serialize(page1V0.at(-1))),\n  limit: page_size,\n});\n```\n\n#### Drizzle v1 (`db._query`) legacy\n\n```ts\nconst page1V1 = await db._query.users.findMany({\n  columns: {\n    lastName: true,\n    firstName: true,\n    middleName: true,\n    id: true,\n  },\n  orderBy: cursor.orderBy,\n  where: cursor.where(),\n  limit: page_size,\n});\n\nconst page2V1 = await db._query.users.findMany({\n  columns: {\n    lastName: true,\n    firstName: true,\n    middleName: true,\n    id: true,\n  },\n  orderBy: cursor.orderBy,\n  where: cursor.where(cursor.serialize(page1V1.at(-1))),\n  limit: page_size,\n});\n```\n\n### Query V2\n\n#### Drizzle v1 (`db.query`)\n\n```ts\nconst page1V2 = await db.query.users.findMany({\n  columns: {\n    lastName: true,\n    firstName: true,\n    middleName: true,\n    id: true,\n  },\n  orderBy: cursor.relations.orderBy,\n  where: cursor.relations.where(),\n  limit: page_size,\n});\n\nconst page2V2 = await db.query.users.findMany({\n  columns: {\n    lastName: true,\n    firstName: true,\n    middleName: true,\n    id: true,\n  },\n  orderBy: cursor.relations.orderBy,\n  where: cursor.relations.where(cursor.serialize(page1V2.at(-1))),\n  limit: page_size,\n});\n```\n\n## where\n\n`generateCursor` uses `cursor.where()` exactly for this rule:\n\n- `cursor.where()` with **no args** means first page → returns `undefined`.\n- `cursor.where(...)` with a **previous record** (`object`) or a **cursor string** (`token`) means next page.\n\nImportant: only keys in your cursor definition (`primaryCursor` + `cursors`) matter.  \nExtra keys in rows are ignored.\n\n```ts\nconst firstPage = await db\n  .select({\n    lastName: schema.users.lastName,\n    firstName: schema.users.firstName,\n    middleName: schema.users.middleName,\n    id: schema.users.id,\n  })\n  .from(schema.users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where()) // No args => first page.\n  .limit(page_size);\n\nconst page2FromObject = await db\n  .select({ id: schema.users.id })\n  .from(schema.users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where(firstPage.at(-1))) // Previous row object.\n  .limit(page_size);\n\nconst token = cursor.serialize(firstPage.at(-1));\n\nconst page2FromToken = await db\n  .select({ id: schema.users.id })\n  .from(schema.users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where(token)) // Token string from previous page - MOCK EXAMPLE you in reality would get from the API request.\n  .limit(page_size);\n```\n\n## Custom parser + serializer\n\nIf the default `JSON.stringify/JSON.parse` pipeline is not enough, pass `parser` and `serializer` to `generateCursor`:\n\n- `parser`: converts the decoded payload into a JavaScript object.\n- `serializer`: converts your payload object into a string before encode.\n\nParser/serializer options (payload layer):\n\n- [superjson](https://github.com/blitz-js/superjson)\n- [devalue](https://github.com/sveltejs/devalue)\n- [msgpackr](https://github.com/kriszyp/msgpackr)\n- [flatted](https://github.com/WebReflection/flatted)\n- [yaml](https://github.com/eemeli/yaml) / [js-yaml](https://github.com/nodeca/js-yaml)\n- [toml](https://github.com/BinaryMuse/toml)\n- [JSON5](https://github.com/json5/json5)\n- [zipson](https://github.com/gregersrygg/zipson)\n- [ZON](https://github.com/ZON-Format/zon-TS)\n- [tron](https://tron-format.github.io/)\n- [toon](https://github.com/toon-format/toon)\n- [csv](https://github.com/adaltas/node-csv)\n- etc (`serializer: (value: T) => string`, `parser: (value: string) => T`)\n\nExample (from the extended tests):\n\n```ts\nimport { generateCursor } from \"drizzle-cursor\";\nimport { parse, stringify } from \"superjson\";\n\nconst cursor = generateCursor(\n  {\n    primaryCursor: { key: \"id\", schema: users.id, order: \"ASC\" },\n    cursors: [{ key: \"slug\", schema: users.slug, order: \"ASC\" }],\n  },\n  {\n    serializer: (value) => `cur_${stringify(value)}`,\n    parser: (value) => parse(value.slice(4)),\n  },\n);\n\nconst token = cursor.serialize({ id: 1, slug: \"slug-01\" });\nconst parsed = cursor.parse(token);\n```\n\n## Custom encoder + decoder\n\nUse `encoder` and `decoder` when you need to post-process the full token string\n(prefix, URL-safe base encoding, encryption, obfuscation, compression, etc.).\n\n- `encoder`: transforms the serialized payload into the final token string.\n- `decoder`: restores the serialized payload for `parser`.\n\nEncoder/decoder options (token layer):\n\n- `base64url` / `base-x` (`bun.toBase64`, `Buffer`, `base-x` alphabets).\n- [base-x](https://github.com/cryptocoinjs/base-x)\n- `AES` (`crypto.createCipheriv` / `createDecipheriv`).\n- URL-safe wrappers and signatures (HMAC/JWT-like) to prevent tampering.\n- custom prefixing/suffixing and checksums.\n- [base64-js](https://github.com/beatgammit/base64-js)\n- [base64url](https://github.com/joepie91/node-base64-url)\n- [tweetnacl](https://github.com/dchest/tweetnacl-js) (for signing/encrypt-like workflows)\n- etc (`encoder: (value: string) => string`, `decoder: (value: string) => string`)\n\n`generateCursor` second argument shape (`options`):\n\n```ts\ntype CursorRecord = Record<string, unknown>;\n\ntype CursorOptions<T extends CursorRecord = CursorRecord> = {\n  decoder?: (value: string) => string;\n  encoder?: (value: string) => string;\n  parser?: (value: string) => T;\n  serializer?: (value: T) => string;\n  parse?: (cursor: string | null) => T | null;\n  serialize?: (data?: T | null) => string | null;\n};\n```\n\nNotes:\n\n- `parser`, `serializer`, `encoder`, `decoder` are usually enough to customize the token pipeline.\n- `parse` and `serialize` are advanced overrides (rarely needed) that replace the full internals:\n  - `serialize`: build the full cursor token.\n  - `parse`: read and validate the full cursor token.\n- In 99% of cases, prefer `parser`/`serializer` (+ optional `encoder`/`decoder`) and keep `parse`/`serialize` as defaults.\n\n```ts\nimport { generateCursor } from \"drizzle-cursor\";\nimport BaseX from \"base-x\";\n\nconst prefix = \"cur_\";\nconst baseX = BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\n\nconst encoder = (value: string) => `${prefix}${baseX.encode(Buffer.from(value, \"utf-8\"))}`;\nconst decoder = (value: string) => {\n  if (!value.startsWith(prefix)) {\n    throw new Error(\"Invalid cursor token\");\n  }\n  return Buffer.from(baseX.decode(value.slice(prefix.length))).toString(\"utf-8\");\n};\n\nconst cursor = generateCursor(\n  {\n    primaryCursor: { key: \"id\", schema: users.id, order: \"ASC\" },\n    cursors: [{ key: \"slug\", schema: users.slug, order: \"ASC\" }],\n  },\n  { encoder, decoder },\n);\n\nconst token = cursor.serialize({ id: 1, slug: \"slug-01\" });\nconst parsed = cursor.parse(token);\n```\n\n## SQL Expression Cursors\n\nInstead of a table column (`schema`), you can use a raw Drizzle `sql` expression as a cursor. This is useful for sorting by computed or virtual values like case-insensitive names, concatenated fields, or any expression your database can evaluate.\n\n```ts\nimport { sql } from \"drizzle-orm\";\nimport { generateCursor } from \"drizzle-cursor\";\n\nconst rankUpperName = sql<string>`${users.rank}::text || '-' || upper(${users.firstName})`;\n\nconst cursor = generateCursor({\n  primaryCursor: { key: \"id\", schema: users.id, order: \"ASC\" },\n  cursors: [\n    { key: \"rankUpperName\", sql: rankUpperName, order: \"ASC\" },\n  ],\n});\n```\n\nThe `key` must match a field in the result row so the token pipeline can read its value for pagination. Include the expression in your `select` to make it available:\n\n```ts\nconst page1 = await db\n  .select({\n    id: users.id,\n    firstName: users.firstName,\n    rankUpperName, // same sql expression — makes it available in the row\n  })\n  .from(users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where())\n  .limit(page_size);\n\nconst page2 = await db\n  .select({ id: users.id, firstName: users.firstName, rankUpperName })\n  .from(users)\n  .orderBy(...cursor.orderBy)\n  .where(cursor.where(cursor.serialize(page1.at(-1))))\n  .limit(page_size);\n```\n\n### SQL cursors with RQB v2 (`cursor.relations`)\n\nWhen any cursor uses `sql`, `cursor.relations.orderBy` becomes a `() => SQL[]` callback instead of a plain `Record<string, \"asc\" | \"desc\">` — pass it directly to the RQB v2 `orderBy` option:\n\n```ts\nconst page1 = await db.query.users.findMany({\n  orderBy: cursor.relations.orderBy, // () => SQL[] when SQL cursors are present\n  where: cursor.relations.where(),\n  limit: page_size,\n});\n```\n\n> [!NOTE]\n>\n> `cursor.relations.where()` with SQL expression cursors produces `{ RAW: ... }` conditions\n> that work correctly in RQB v2 when the SQL expression does **not** reference the table through\n> Drizzle's aliased context. For full portability across all query modes, prefer the query-builder\n> path (`cursor.where()`) or RQB v1 (`db._query`) when paginating by SQL expressions.\n\n### Named types\n\n`TableCursor` and `SQLCursor` are exported for user-facing type annotations:\n\n```ts\nimport type { CursorConfig, SQLCursor, TableCursor } from \"drizzle-cursor\";\n\nconst config: CursorConfig<SQLCursor> = {\n  primaryCursor: { key: \"id\", sql: sql`${users.id}`, order: \"ASC\" },\n};\n```\n\n## Contributing\n\nSubmit an Issue with a minimal reproducible example.\n\n> PRs are welcome\n\nMaintainers: release and prerelease workflow lives in `CONTRIBUTING.md`.\n\n## See Also\n\n- [drizzle-audit](https://github.com/xantiagoma/drizzle-audit) — Configurable audit logging for Drizzle ORM (by the same author)\n\n## License\n\nMIT / Do whatever you want.\n","readmeFilename":"README.md"}