{"_id":"@convex-dev/rate-limiter","_rev":"43-aad465931615a90a3a7480894a81fb87","name":"@convex-dev/rate-limiter","dist-tags":{"alpha":"0.4.1-alpha.0","latest":"0.4.2"},"versions":{"0.2.0":{"name":"@convex-dev/rate-limiter","version":"0.2.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.0","maintainers":[{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"pashabitz","email":"pavelbitz@gmail.com"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"cowling","email":"james@convex.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"01961bbf177e76cdc3a002251830cc15745a8eff","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.0.tgz","fileCount":83,"integrity":"sha512-c7C+Ge2XLolqVFSpKyKIRvmxt3BLQYmiqLCecqJAmu466XaDNJIdU9gE6sNrit1OwoO7mB2CerpKxuhcTgTE0Q==","signatures":[{"sig":"MEYCIQC8cbrp32cYc/gCM1UFZrW8lvLx82Y69scMHu9Mnq340gIhAKfzVYwvg1SexhGIvp+3VkUXdVpTIBX7BOXRB+7KdLow","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":198328},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"e5be964bdb8b5548d06d5029621b212d55ebc6d1","scripts":{"dev":"cd example; npm run dev","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"9.9.3","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || ~1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.0_1729556366384_0.7417361882660884","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@convex-dev/rate-limiter","version":"0.2.1","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.1","maintainers":[{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"pashabitz","email":"pavelbitz@gmail.com"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"cowling","email":"james@convex.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"59bfddd9410c1415bbe226c53ee0cd66d99bfe25","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.1.tgz","fileCount":83,"integrity":"sha512-AR69wqjRLOcq3R7lKtfXGlzd7mFjD90jolooEsIrAeDksAdu/QTA3d/UQ75OTD1yV6takfeXPHmaQnteMGC05w==","signatures":[{"sig":"MEUCIQDeqYfnv9IMSbjgqH+2HoxxPaQK/mt4n043WfcZLxfCpwIgBdMIb7kY8aTwbioSQzL25LfzqhirI/IW5+KGYk2V8F0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":207997},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"67f418cef6c90c8bd9efc79752e355607b234fe0","scripts":{"dev":"cd example; npm run dev","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"9.9.3","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || ~1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.1_1729575847871_0.14249847288262063","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@convex-dev/rate-limiter","version":"0.2.2","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.2","maintainers":[{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"pashabitz","email":"pavelbitz@gmail.com"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"cowling","email":"james@convex.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"a0227953c7cbcedb9f2097c4047e98b267e2d225","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.2.tgz","fileCount":91,"integrity":"sha512-zKuONbTvuMKoXUopdtP7ixnuAqS9bWw4Zvpzg1z9/+rC2qVcCcNu0faECpTFdkQI4H9axzKD9RwZteLFKfFCjQ==","signatures":[{"sig":"MEUCIQDSm6OfCEoKdKkdXBhXEkpv3gJKYGJ0hyD8WIAfqV2YQgIgRBgdlU0M/KyyVBA933xXouopKoi6K29YdgdsybLdOiw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223134},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"64575c918bfc9f828ff66a0ada98c464374d52b1","scripts":{"dev":"cd example; npm run dev","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"9.9.3","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || ~1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.2_1730150935481_0.5107928495030636","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@convex-dev/rate-limiter","version":"0.2.3","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.3","maintainers":[{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"pashabitz","email":"pavelbitz@gmail.com"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"cowling","email":"james@convex.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"63f0191de635370c7453fa4a9e5e96a006d8b321","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.3.tgz","fileCount":83,"integrity":"sha512-jc6E6XZFJYTEg4oJxLpT5eoaA1lB9Ti/z9Y29NONCs06c89oPF8CKCgnz4ufgs6uCjKCAsDCZQlon0AWBaF2JQ==","signatures":[{"sig":"MEYCIQDJNBagdmqblj+oZ0oN20Xl/82yBDpWyR1PrLLmQVX8VgIhAM+XM3befjmL+sB4pC0xYyMKVCtf6XMtRSfZ+eZQzoc0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":212086},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"0bed05ba4e723a63840d68836ff8ded96ac4d6b1","scripts":{"dev":"cd example; npm run dev","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"9.9.3","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || ~1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.3_1730151044126_0.9615078904105478","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@convex-dev/rate-limiter","version":"0.2.4","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.4","maintainers":[{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"pashabitz","email":"pavelbitz@gmail.com"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"cowling","email":"james@convex.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"de5e1d660b2798696f660dbe37b5ed9e7615d60e","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.4.tgz","fileCount":84,"integrity":"sha512-hFyqEeQOKcXGLF9MmgG4AvC3pkMoaPfRpvFE80eR1DY3Ik5dsuaIbOinS7QRjKuPQMBWbReieogDcFGVy1qdmQ==","signatures":[{"sig":"MEYCIQDiTz6OyRLyPFXlAdOWSR5kcCjhPuVG4yjZqD9xg7P0+QIhALTzpEva+OLbfUk8JGGXQXlhqPkzHUbMN3hoX4VTt2W0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":212488},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"83b1b4bf2edd154876ffb6959eae86a0d2d16df9","scripts":{"dev":"cd example; npm run dev","test":"vitest","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"9.9.3","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || ~1.17.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.4_1731441641559_0.39798044535735344","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@convex-dev/rate-limiter","version":"0.2.5","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.5","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"342216e23ed71cdcac649025cce52af21efc788f","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.5.tgz","fileCount":84,"integrity":"sha512-ZLMPJDNooG9DBYth+21qjU2C4+aQrhyLustQjO7RRNdnOYNchYx8tbWwNSx03ZyS8qC3v1slqhjYo09RUL9S3g==","signatures":[{"sig":"MEQCIDkRXNHr0bgnCZMHGV6F2PKzIoVKLgjEiQUDiPmjGT7vAiAUA9/w2qBqufmlDH52iUfn3e1mr2NC9WfiHpOucWP28Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":212448},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"30fb3dcae24fa42777bd39c0e74b4cafdd18a9c8","scripts":{"dev":"cd example; npm run dev","test":"vitest","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"9.9.3","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || ~1.17.0 || ~1.18.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.5_1736890157553_0.9521212241577948","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@convex-dev/rate-limiter","version":"0.2.6","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.6","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"294a9cd4d7603cd46395fc0379a968183a2b4515","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.6.tgz","fileCount":92,"integrity":"sha512-QcuLpUBHL8S34BgU4Xvbjzkqf4sw5KWNlnvIR0qZ8qhDxbxrjJBRnbiSJDYqUYccyCXpRJe4YnzmPnDefoPYHg==","signatures":[{"sig":"MEYCIQDZ4MQXuF75SGNPFKf42oCZNQBcwv7Qn9mQRLDS/IA2sQIhANgZtzU3/7rc7ZMZAoXtcDOrW+01sDNdpztcuyhvJh4C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":223550},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"a29b0d967c54c09a3e4522739d1f66fb6aa0ecad","scripts":{"dev":"cd example; npm run dev","test":"vitest","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ballingt","email":"thomasballinger@gmail.com"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"8.19.4","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.30","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || >=1.17.0 <1.25.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.6_1738796994358_0.024013839093270484","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@convex-dev/rate-limiter","version":"0.2.7","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.7","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"sujayakar","email":"sujayakar@convex.dev"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ldanilek","email":"iwork96+npm@gmail.com"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"a15131aabec97479d066b38895b386d7e87c4ac0","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.7.tgz","fileCount":92,"integrity":"sha512-aMF/ggCd88Sw6UaqnSS4DjGXTkIOIpyG0d/CrcwMxEIzlDkwanREfF6idtLiL11S7Ra0GJmxkbb23jRuhLL9mA==","signatures":[{"sig":"MEQCIFn007BIL4WjFUpcxGN+SsXGfXDwislivSwit4o7amulAiAeqCCeAqCnDU/KIseJ7FrsbPNDNp0QBL0v+jvvdNRIfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224190},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"f65ef3fcf1b7a412a99c80371d2b896c7ceea069","scripts":{"dev":"cd example; npm run dev","test":"vitest","build":"npm run build:esm && npm run build:cjs","prepare":"npm run build","build:cjs":"tsc --project ./commonjs.json && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ballingt","email":"thomasballinger@gmail.com"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.8.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"20.19.0","_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.9.1","vitest":"^2.0.5","globals":"^15.9.0","prettier":"3.2.5","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@edge-runtime/vm":"^4.0.3","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^2.0.5"},"peerDependencies":{"convex":"~1.16.5 || >=1.17.0 <1.35.0"},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.7_1748651162209_0.47800818595262706","host":"s3://npm-registry-packages-npm-production"}},"0.2.8-alpha.0":{"name":"@convex-dev/rate-limiter","version":"0.2.8-alpha.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.8-alpha.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"fa313357aec034bfad86c356d831650d5a437060","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.8-alpha.0.tgz","fileCount":107,"integrity":"sha512-zUTdrpxMuWEaFtyNtp07nLvyipvMoHdVGNa2GXLOsO4QfF1nQ9IIdnc/bTeHDq9geJpMNSWkA7NvFpIOYJlj6Q==","signatures":[{"sig":"MEYCIQCUbOonZH6zOGTRQJw5QEjAF6A0khQAAcBri2UkmOQIGAIhAJMPzF2PWzbOC2HO+/XHFNojEzgVRM8xyy6byxtKzIZq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319575},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"451a7bcf3c5aea909033eabe9f2e70f4e46c7017","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.8-alpha.0_1749807396953_0.7328999776911143","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@convex-dev/rate-limiter","version":"0.2.8","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.8","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"4ca2dd764b8e273d3ed56df406d8a374d85cb67d","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.8.tgz","fileCount":107,"integrity":"sha512-JTfnsd5JBqmJ2XR6IleEDQYsW68DFUtZv94vAo3o0tDcFEigfBTB3XbwNyKTKu4ZILHWhm7gEVoX1sDQ8B/Zzg==","signatures":[{"sig":"MEQCIChAeDZlGoo+0mN0j+wWEaRsVVfabOZu8OZ6TY9jmSeSAiB9aVkFOmZCKwej1Yb+H2kpnJmYBukML/5CsEziXF4ebw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322827},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"ab1933badb5a4da27885a75dec616c82177bf3f9","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.8_1750112224883_0.8856148930043581","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@convex-dev/rate-limiter","version":"0.2.9","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.9","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"8e966fa23d9186e7f8c333f79d9d1ac5ac520d76","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.9.tgz","fileCount":107,"integrity":"sha512-Yxy/5oTeOWJk7pJSnygDnxXXZsbzbONDiusJ58Cp5EYBODfn9KGfoeLjPjQ1Uw+PLuNazS7/DRPMjS9jaRm/pw==","signatures":[{"sig":"MEUCIQC10NlRoHbGlweqqXo80YXpxRRmTD4rmpH1xauuXGt/SAIgDppkrHvKGLk+Ft6NNcv4kVHB8h+wVVzvbN3Tc5QckJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327079},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"d398162e4b3876d2a73f8d65815e3b13ab294ab2","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","actor":{"name":"ianatconvex","type":"user","email":"ian@convex.dev"},"email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.9_1750177178993_0.17968474234608856","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@convex-dev/rate-limiter","version":"0.2.10","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.10","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"2e32be7b5d533892f0299ecf6706200f4aa01735","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.10.tgz","fileCount":107,"integrity":"sha512-EU6wJ5XEAE1s1GnYW85w/PpcFs2/q6sJY9ndKX6oVk6nhhRmxmwNzwITl5/Y3ufS6BtoQ12sQ+0tqYy2SQWlkg==","signatures":[{"sig":"MEYCIQDG9mJmrIR5eYI5Gkg75YX2iF8iVZt76NVO+Si28V8txAIhAOVc1t0LqXhkDgrV0D51UsH29j7oZnRGS5UoOX0t7QfS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327420},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"0477683d1c0ed3d1bf9df0c38342efaf95222f3e","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","actor":{"name":"ianatconvex","type":"user","email":"ian@convex.dev"},"email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.10_1750186826803_0.6989211015379517","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@convex-dev/rate-limiter","version":"0.2.11","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.11","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"9a1f1c1a59ce9da82e3c81fd942d509f228eaa9b","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.11.tgz","fileCount":107,"integrity":"sha512-Zuny2JSvla2in0nAjBoTnNKfiHW9bqVD8Gcjg/96xNskjTz37fGP1U32vRBxAUOfsnDF9bLVPovU0Au2PjdbxA==","signatures":[{"sig":"MEUCIQDig7SjkwlvhEue8X0iUAMJFdlQvrbrAK0rd0Jw9P+YbgIgG2F4eRnZ68rYkCL7/YluvUE2HF3trrOdFaHyXeYjV7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340478},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"410b6eab079e7b9c6da878f1d8d5946687c00735","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.11_1752619513461_0.33322504117673146","host":"s3://npm-registry-packages-npm-production"}},"0.2.12-alpha.0":{"name":"@convex-dev/rate-limiter","version":"0.2.12-alpha.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.12-alpha.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"b236c61cdc5fea37de9b62153b4e434e59737e34","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.12-alpha.0.tgz","fileCount":107,"integrity":"sha512-K/ullU1a+UhtZp8Ju8+PWQqiv5Iimgl2tGidWd8dh/Y340ueclyqs9cB0C/plfrc3k2IbnSHyJ2NPZVqsQAAUA==","signatures":[{"sig":"MEUCIAQROQw8Am1ZYa1Ll0luZVda0FwCI6gPg2cVVVyUFsrLAiEAsLDBa8Wo9wHumWMszWiuorEuT56WrPc4s81o0uQI7yI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341723},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"d6bdfdeba350dd3cca51ca6d2e61f334ccb32f7c","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.12-alpha.0_1753222866397_0.8544134018296503","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@convex-dev/rate-limiter","version":"0.2.12","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.12","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"ceb80511b236d99b4a6cd27ad1fe4639532a5e31","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.12.tgz","fileCount":107,"integrity":"sha512-Z7YXDSPa28/8eqVJYUWQBwK9hTiJcXfWY2qZ44Im3VpuBFJZCqYjem7QWjvoTlBjVGqK7FKw26xRneei09hm2w==","signatures":[{"sig":"MEUCIEr8FmK4y9EfUot5CW2+fO8RtpfpS+U+9fuXNhJiMeTpAiEA5oCkZnFcjlD5vlUAIoq2Bxtk/kRIVhEdO93DOcAzRPI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341715},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"4eecb5002184401c4a5c08768b2997d047964143","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"18.18.0","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.3.1 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.12_1753319388644_0.9330760030116811","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@convex-dev/rate-limiter","version":"0.2.13","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.13","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"0ba3a9cadad93b631a9eaa5054ed421bdc4deeb4","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.13.tgz","fileCount":107,"integrity":"sha512-zDRxTGTEkTlHB/c0Yzq7RoSJcTSdjeKBD1WbzeZgPmzPNAvtSSwdvuMPrWmOZ345KkzaLPGkofzidkM2Xpb6SA==","signatures":[{"sig":"MEUCIQCAmIf6pGg79igs5qS7i0nEnfZEYiP+b9pE/UgD0Gi82wIgXXH9s+Ejr04niOntZj0unfdMPpycjLcgSiD9ibLFMPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341715},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"import":{"types":"./dist/esm/client/index.d.ts","default":"./dist/esm/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"require":{"types":"./dist/commonjs/client/index.d.ts","default":"./dist/commonjs/client/index.js","@convex-dev/component-source":"./src/client/index.ts"}},"./react":{"import":{"types":"./dist/esm/react/index.d.ts","default":"./dist/esm/react/index.js","@convex-dev/react-source":"./src/react/index.ts"},"require":{"types":"./dist/commonjs/react/index.d.ts","default":"./dist/commonjs/react/index.js","@convex-dev/react-source":"./src/react/index.ts"}},"./package.json":"./package.json","./convex.config":{"import":{"types":"./dist/esm/component/convex.config.d.ts","default":"./dist/esm/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}}},"gitHead":"e1fd8edfc851c782a1f6285111b881e6805ac6f3","scripts":{"dev":"run-p 'example' 'build:watch'","test":"vitest run --typecheck","alpha":"rm -rf dist && npm run build && npm run test && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"npm run build:esm && npm run build:cjs","setup":"npm i && npm run build && cd example && npm i","example":"npm run setup && cd example && npm run dev","prepack":"node node10stubs.mjs","prepare":"npm run build","release":"rm -rf dist && npm run build && npm run test && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && git add CHANGELOG.md","postpack":"node node10stubs.mjs --cleanup","build:cjs":"tsc --project ./commonjs.json && npm run copy:dts:cjs && echo '{\\n  \"type\": \"commonjs\"\\n}' > dist/commonjs/package.json","build:esm":"tsc --project ./esm.json && npm run copy:dts:esm && echo '{\\n  \"type\": \"module\"\\n}' > dist/esm/package.json","typecheck":"tsc --noEmit","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck","build:watch":"cd src && npx chokidar '../tsconfig.json' '*.ts' 'react/**/*.ts' 'component/**/*.ts' 'client/**/*.ts' -c 'npm run build' --initial","copy:dts:cjs":"cpy 'src/**/*.d.ts' 'dist/commonjs/' --parents","copy:dts:esm":"cpy 'src/**/*.d.ts' 'dist/esm/' --parents","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.8.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.9.1","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^15.9.0","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.9.1","typescript":"~5.0.3","@types/node":"^18.17.0","convex-test":"^0.0.36","@types/react":"^19.1.4","chokidar-cli":"^3.0.0","npm-run-all2":"^7.0.2","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.4.0","@vitest/coverage-v8":"^3.1.3","@testing-library/react":"^16.3.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"~1.16.5 || >=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.13_1758832238704_0.19966100409394927","host":"s3://npm-registry-packages-npm-production"}},"0.2.14-alpha.0":{"name":"@convex-dev/rate-limiter","version":"0.2.14-alpha.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.14-alpha.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"e02662f86bed7aa92785a26a76c1b387d6cf9d2e","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.14-alpha.0.tgz","fileCount":65,"integrity":"sha512-3QHClN+lT/1VZGpN/vZP8kfTNY2TjweG4ciDtkPqbOQT1Gi1N6aSgaY0jH4kogvtYZuXZw9DaGaomOMoMObwXQ==","signatures":[{"sig":"MEYCIQDml46vfrbYFNOr3qtvDTOjb3DTm3prnXq0BXVfAsUF3gIhAOJfxzkRqyB10pvsElHOYNaC7w6A6hJ4Ay/UK8gAQu1K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227358},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js","@convex-dev/component-source":"./src/react/index.ts"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}},"gitHead":"47f5a59e0e593c3f41c6f3473ee4ccdec1bbca05","scripts":{"all":"run-p -r 'dev:backend' 'dev:frontend' 'build:watch' 'test:watch'","dev":"run-p -r 'dev:backend' 'dev:frontend' 'build:watch'","lint":"eslint src && eslint example/convex","test":"vitest run --typecheck","alpha":"npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"tsc --project ./tsconfig.build.json && npm run copy:dts","clean":"rm -rf dist tsconfig.build.tsbuildinfo","predev":"npm run dev:backend -- --until-success","prepare":"npm run build","release":"npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","copy:dts":"rsync -a --include='*/' --include='*.d.ts' --exclude='*' src/ dist/ || cpy 'src/**/*.d.ts' 'dist/' --parents","typecheck":"tsc --noEmit && tsc -p example/convex","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:watch":"npx chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build' --initial","dev:backend":"convex dev --live-component-sources --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.8.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.3.5","dayjs":"^1.11.13","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.25.0","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^16.0.0","postcss":"^8.5.5","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/node":"^18.17.0","convex-test":"^0.0.36","tailwindcss":"^3.4.17","@types/react":"^19.1.4","autoprefixer":"^10.4.21","chokidar-cli":"^3.0.0","npm-run-all2":"^8.0.1","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"^3.1.3","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","@typescript-eslint/parser":"^8.4.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/eslint-plugin":"^8.4.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":">=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.14-alpha.0_1760595206349_0.18360674138031463","host":"s3://npm-registry-packages-npm-production"}},"0.2.14-alpha.1":{"name":"@convex-dev/rate-limiter","version":"0.2.14-alpha.1","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.14-alpha.1","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"8f8ba63f76f5f00473d1054933e3e5fbf3e8be0b","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.14-alpha.1.tgz","fileCount":65,"integrity":"sha512-DhdQbns3d6jxxi1iijZv8rwJscgLR8JEGaMfWLGs5WeTiS5tCJZ0XuL2BHsnr7fBq6p5BK7COXLHJj63slUUYw==","signatures":[{"sig":"MEYCIQD61tY7rmAvAczL2BgeVr0BaFeSrWlLqhGJ/XTkWOgsMwIhAMPh/U9ci1Zz5o53ZnmJHpVh4lKJLwVjPFtE/VC4HkkW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227374},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js","@convex-dev/component-source":"./src/react/index.ts"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}},"gitHead":"ca6d49040bf6ce4fc4594c259eedc7daad21e722","scripts":{"all":"run-p -r 'dev:backend' 'dev:frontend' 'build:watch' 'test:watch'","dev":"run-p -r 'dev:backend' 'dev:frontend' 'build:watch'","lint":"eslint src && eslint example/convex","test":"vitest run --typecheck","alpha":"npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"tsc --project ./tsconfig.build.json && npm run copy:dts","clean":"rm -rf dist tsconfig.build.tsbuildinfo","predev":"npm run dev:backend -- --until-success","prepare":"npm run build","release":"npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","copy:dts":"rsync -a --include='*/' --include='*.d.ts' --exclude='*' src/ dist/ || cpy 'src/**/*.d.ts' 'dist/' --parents","typecheck":"tsc --noEmit && tsc -p example/convex","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:watch":"npx chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build' --initial","dev:backend":"convex dev --live-component-sources --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.8.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^6.3.5","dayjs":"^1.11.13","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.25.0","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^16.0.0","postcss":"^8.5.5","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/node":"^18.17.0","convex-test":"^0.0.36","tailwindcss":"^3.4.17","@types/react":"^19.1.4","autoprefixer":"^10.4.21","chokidar-cli":"^3.0.0","npm-run-all2":"^8.0.1","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"^3.1.3","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","@typescript-eslint/parser":"^8.4.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/eslint-plugin":"^8.4.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":">=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.14-alpha.1_1760595948589_0.9837031281209612","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@convex-dev/rate-limiter","version":"0.2.14","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.2.14","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ikhare","email":"ikhare@convex.dev"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"sshader","email":"sarah@convex.dev"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"f21eeb6c7ee511c0f2e43b2927e37ae04098c55b","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.2.14.tgz","fileCount":65,"integrity":"sha512-6dQ2ceHFcU8HVXT0QdcgWXCahasMcjne/bWvLZ6qyyk5gZDP4JtjZyidy9HflAOCo1Nc428pgrROnbQBM0QPCQ==","signatures":[{"sig":"MEUCIQD7+7OiCNNWNpi4kLUyPDwpWMqw+BSo33jVh0a1f01D3gIgM6V8MHos+99bweX1NSaq3WVASyr2QW01GRynRLR/kzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227366},"main":"./dist/commonjs/client/index.js","type":"module","types":"./dist/commonjs/client/index.d.ts","module":"./dist/esm/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js","@convex-dev/component-source":"./src/client/index.ts"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js","@convex-dev/component-source":"./src/react/index.ts"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js","@convex-dev/component-source":"./src/component/convex.config.ts"}},"gitHead":"f6556863d5eed95412de918bc1e60de15d9d80a0","scripts":{"all":"run-p -r 'dev:backend' 'dev:frontend' 'build:watch' 'test:watch'","dev":"run-p -r 'dev:backend' 'dev:frontend' 'build:watch'","lint":"eslint src && eslint example/convex","test":"vitest run --typecheck","alpha":"npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"tsc --project ./tsconfig.build.json && npm run copy:dts","clean":"rm -rf dist tsconfig.build.tsbuildinfo","predev":"npm run dev:backend -- --until-success","prepare":"npm run build","release":"npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","copy:dts":"rsync -a --include='*/' --include='*.d.ts' --exclude='*' src/ dist/ || cpy 'src/**/*.d.ts' 'dist/' --parents","typecheck":"tsc --noEmit && tsc -p example/convex","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:watch":"npx chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build' --initial","dev:backend":"convex dev --live-component-sources --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.8.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","dayjs":"^1.11.13","jsdom":"^26.1.0","react":"^19.1.0","eslint":"^9.25.0","vitest":"^3.1.3","cpy-cli":"^5.0.0","globals":"^16.0.0","postcss":"^8.5.5","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/node":"^18.17.0","convex-test":"^0.0.36","tailwindcss":"^3.4.17","@types/react":"^19.1.4","autoprefixer":"^10.4.21","chokidar-cli":"^3.0.0","npm-run-all2":"^8.0.1","@edge-runtime/vm":"^4.0.3","@types/react-dom":"^19.1.5","typescript-eslint":"^8.30.1","@vitest/coverage-v8":"^3.1.3","@vitejs/plugin-react":"^4.4.1","@testing-library/react":"^16.3.0","@typescript-eslint/parser":"^8.4.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/eslint-plugin":"^8.4.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":">=1.17.0 <1.35.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.2.14_1760598380175_0.24018513395093044","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@convex-dev/rate-limiter","version":"0.3.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.3.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"204a1dc4b6435ace2f4a6b4f21b99ab0db2231d9","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.3.0.tgz","fileCount":71,"integrity":"sha512-8R1gos0KoGU9+1bahTpOuZgU04d4aAmk7SJw6D37HXLn7DLylAIKegaWmDgdcpaOGHDDDfnvuoEmC1AnoqHruA==","signatures":[{"sig":"MEYCIQC+GocA//aPggNDU/k3Q7UYT06KCuw3HVqK909QSLrYhAIhALBN/lUhVssMQvsjl76Op4NGU5Z207ox4zCihhbh+Jc4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232772},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"c9e6c5b4a5e76baf90d3ab3fbcaa901582d74dfe","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"tsc --project ./tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","predev":"npm run dev:backend -- --until-success","prepare":"npm run build","release":"npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'convex codegen --component-dir ./src/component && npm run build' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"11.6.2","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","dayjs":"^1.11.13","jsdom":"^26.1.0","react":"^19.1.0","convex":"1.29.0","eslint":"^9.25.0","vitest":"^3.2.4","cpy-cli":"^5.0.0","globals":"^16.0.0","postcss":"^8.5.5","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/node":"20.19.24","convex-test":"^0.0.36","tailwindcss":"^3.4.17","@types/react":"^19.1.4","autoprefixer":"^10.4.21","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","@edge-runtime/vm":"4.0.4","@types/react-dom":"^19.1.5","typescript-eslint":"^8.30.1","@vitejs/plugin-react":"^5.1.0","@testing-library/react":"^16.3.0","@typescript-eslint/parser":"^8.4.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/eslint-plugin":"^8.4.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.24.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.3.0_1762828709869_0.012007741351128143","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@convex-dev/rate-limiter","version":"0.3.1","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.3.1","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"8069d2a6f36cd0f14b3326d119fe5752e44fb796","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.3.1.tgz","fileCount":71,"integrity":"sha512-fEFV+NlWyi8NFSI43QPMyQXV0IwmnntE4+kTQ4OyeOz5Y4LXdsPEsNDsmP7ID/mJfy+2Mtz4Q/zaV8e2faFCyg==","signatures":[{"sig":"MEUCIQDvKogViljgmja6NhS/X8wwSyApMtgAwJ9g4iD6e+sHbwIgYLaSvXW1Rr3LUirRboRPjmSRdBwy68b9t8fBM/pD2lA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233147},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"10cf6d845cb60f0738b52fd044e2114a32a2901d","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm run clean && npm ci && run-p test lint typecheck && npm version prerelease --preid alpha && npm publish --tag alpha && git push --tags","build":"tsc --project ./tsconfig.build.json","clean":"rm -rf dist *.tsbuildinfo","predev":"npm run dev:backend -- --until-success","prepare":"npm run build","release":"npm run clean && npm ci && run-p test lint typecheck && npm version patch && npm publish && git push --tags","version":"pbcopy <<<$npm_package_version; vim CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'convex codegen --component-dir ./src/component && npm run build' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.4","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","dayjs":"^1.11.13","jsdom":"^26.1.0","react":"^19.1.0","convex":"1.29.0","eslint":"^9.25.0","vitest":"^3.2.4","cpy-cli":"^5.0.0","globals":"^16.0.0","postcss":"^8.5.5","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/node":"20.19.24","convex-test":"^0.0.36","tailwindcss":"^3.4.17","@types/react":"^19.1.4","autoprefixer":"^10.4.21","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","@edge-runtime/vm":"4.0.4","@types/react-dom":"^19.1.5","typescript-eslint":"^8.30.1","@vitejs/plugin-react":"^5.1.0","@testing-library/react":"^16.3.0","@typescript-eslint/parser":"^8.4.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/eslint-plugin":"^8.4.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.24.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.3.1_1765239436799_0.8463631318040736","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@convex-dev/rate-limiter","version":"0.3.2","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.3.2","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"ballingt","email":"thomasballinger@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"3ad760bc3e3264f6b401a86fc1fd3e45f6a6935c","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.3.2.tgz","fileCount":71,"integrity":"sha512-+oBPsBfFbzdxiF/9XaaTQmVnvDlvEfg/c69/v8LxTbw4VLuiflIKlfnPQL8OS0azXQQ11hcPWHmU8ytFmHKDXA==","signatures":[{"sig":"MEYCIQCAs0ETEX4b/HWNIR0vEj0F2E09DLYBtL1tbhky7yhzDAIhAPVA4jS0v6t/EiE+pxdhi4lWC/GuJz1NAXXYk4Urd0MV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233842},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"b1de58468d15fd8240106e99f91479516b739ef1","scripts":{"all":"run-p -r 'dev:*' 'test:watch'","dev":"run-p -r 'dev:*'","lint":"eslint .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","predev":"path-exists .env.local dist || (npm run build && convex dev --once)","release":"npm version patch && npm publish && git push --follow-tags","version":"vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && run-p test lint typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:backend":"convex dev --typecheck-components","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"10.9.4","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","dayjs":"^1.11.13","jsdom":"^26.1.0","react":"^19.1.0","convex":"1.29.0","eslint":"^9.25.0","vitest":"^3.2.4","cpy-cli":"^5.0.0","globals":"^16.0.0","postcss":"^8.5.5","prettier":"3.2.5","react-dom":"^19.1.0","@eslint/js":"^9.25.0","typescript":"~5.8.3","@types/node":"20.19.24","convex-test":"^0.0.36","tailwindcss":"^3.4.17","@types/react":"^19.1.4","autoprefixer":"^10.4.21","chokidar-cli":"3.0.0","npm-run-all2":"8.0.4","path-exists-cli":"2.0.0","@edge-runtime/vm":"4.0.4","@types/react-dom":"^19.1.5","typescript-eslint":"^8.30.1","@vitejs/plugin-react":"^5.1.0","@testing-library/react":"^16.3.0","@typescript-eslint/parser":"^8.4.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@typescript-eslint/eslint-plugin":"^8.4.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.24.8"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.3.2_1765241334359_0.9313888045346053","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-alpha.0":{"name":"@convex-dev/rate-limiter","version":"0.4.0-alpha.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.4.0-alpha.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"dowski-convex","email":"christian@convex.dev"},{"name":"reece-convex","email":"reece@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"sethconvex","email":"seth@convex.dev"},{"name":"andycai-convex","email":"andy@convex.dev"},{"name":"mikewheaton","email":"mike@wheaton.dev"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"d80687bcc8b2e39f73810adc24278a01c3a802b5","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.4.0-alpha.0.tgz","fileCount":78,"integrity":"sha512-9lVUKG4Ymd73z4IE6+l29RlBhoXXEcVbvZx8uq2XvHfyzERTVKpPzCd0FHwyxUzejx8Q78q0ZdXrhSog9K+Nag==","signatures":[{"sig":"MEUCIQDS6F/DbdabVlQ0/Abt0z0pcfx17GsJaip4xAUcUukIxAIgX0En0+YLpPU/rEytr5jYRG69rjEhFqQH0CK1hyM4L4s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316686},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"8e1d59665d928a1fcfc0f1d3c298fec6780deabf","scripts":{"dev":"convex dev --start 'npm run dev:build'","lint":"eslint . && prettier --check .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","format":"prettier --write .","predev":"convex init && npm run build:codegen","release":"npm version patch && npm publish && git push --follow-tags","version":"(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"reece-convex","email":"reece@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"11.11.0","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@convex-dev/batch-worker":"0.3.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"7.3.5","dayjs":"1.11.19","jsdom":"30.0.0","react":"19.2.4","convex":"1.45.0","eslint":"9.39.2","vitest":"4.1.0","globals":"17.3.0","postcss":"8.5.23","prettier":"3.8.1","react-dom":"19.2.4","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"24.10.13","convex-test":"0.0.56","tailwindcss":"4.1.18","@types/react":"19.2.14","autoprefixer":"10.4.24","chokidar-cli":"3.0.0","@edge-runtime/vm":"5.0.0","@types/react-dom":"19.2.3","typescript-eslint":"8.55.0","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@convex-dev/eslint-plugin":"^2.0.0","@typescript-eslint/parser":"8.55.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@typescript-eslint/eslint-plugin":"8.55.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.43.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.4.0-alpha.0_1789170171850_0.8981165443248795","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@convex-dev/rate-limiter","version":"0.4.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.4.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"dowski-convex","email":"christian@convex.dev"},{"name":"reece-convex","email":"reece@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"sethconvex","email":"seth@convex.dev"},{"name":"andycai-convex","email":"andy@convex.dev"},{"name":"mikewheaton","email":"mike@wheaton.dev"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"7be1ef3055cd4f95e1032503105dfd1592cd1f16","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.4.0.tgz","fileCount":78,"integrity":"sha512-AEXbo8+pMT1bPlOJiofmue55EoiFp9ygCcEnckx+RENoPjRYEg5jiihAtaD5TKDwdmHJyvLwNQ1h+MbhgvMyOA==","signatures":[{"sig":"MEYCIQCRi54jFLv8jkOIr8nSt3heen5hR45QmdgaDoYZHWBkRQIhALeiwaSwWJfjk/y6Kgut5ewMPpbJSr65Ovs6Vu5/2evS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC/u+oxlazRI6rk2UHlBKNoD7CQlBMNTEc2ubWqaplpnAIgZcVFldLJmPTcjPVAeWLQll+9V+3eJqInN9aY28LHp+Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316678},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"320098adfdcb5126cc98ea78ee8272ef572b33ab","scripts":{"dev":"convex dev --start 'npm run dev:build'","lint":"eslint . && prettier --check .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","format":"prettier --write .","predev":"convex init && npm run build:codegen","release":"npm version patch && npm publish && git push --follow-tags","version":"(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"reece-convex","email":"reece@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"11.11.0","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@convex-dev/batch-worker":"0.3.4"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.5","dayjs":"1.11.19","jsdom":"30.0.0","react":"19.2.4","convex":"1.45.0","eslint":"9.39.2","vitest":"4.1.0","globals":"17.3.0","postcss":"8.5.23","prettier":"3.8.1","react-dom":"19.2.4","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"24.10.13","convex-test":"0.0.56","tailwindcss":"4.1.18","@types/react":"19.2.14","autoprefixer":"10.4.24","chokidar-cli":"3.0.0","@edge-runtime/vm":"5.0.0","@types/react-dom":"19.2.3","typescript-eslint":"8.55.0","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@convex-dev/eslint-plugin":"^4.0.0","@typescript-eslint/parser":"8.55.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@typescript-eslint/eslint-plugin":"8.55.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.43.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.4.0_1789423360231_0.24837093940561616","host":"s3://npm-registry-packages-npm-production"}},"0.4.1-alpha.0":{"name":"@convex-dev/rate-limiter","version":"0.4.1-alpha.0","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.4.1-alpha.0","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"emmaling27","email":"emma@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"dowski-convex","email":"christian@convex.dev"},{"name":"reece-convex","email":"reece@convex.dev"},{"name":"ayushdewanconvex","email":"ayush@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"sethconvex","email":"seth@convex.dev"},{"name":"andycai-convex","email":"andy@convex.dev"},{"name":"mikewheaton","email":"mike@wheaton.dev"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"b19fa0c5940e2a9e1b34feda39d99ba144a34d53","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.4.1-alpha.0.tgz","fileCount":78,"integrity":"sha512-/qStwrS5vk8kUpZxpvnETI1Kom6oeiRzv/4BuJFhUk4MIXVhQWFPLTDMerrsKVtlv0U4wOelji/ta/sAVeog0w==","signatures":[{"sig":"MEYCIQDuyEjbp5+YN7AJrrnUmgSxleIQQvj8Vr03p7tOU9oQdQIhAIbf6fVZoE8ZAbB68w3QlOZoRV1RHhMSjlqbpPebu3jZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDfhkOBXMcFc9+r7YapscXxzCrL+4lCXLT6upgq9gmpLAiEAhAmG8QfBeE/Dj6LG8ZAwrqjRmoCZlpDIk/+0A0L5MfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377481},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"6f0696ed5a820933a96a01838750e2a66d01096d","scripts":{"dev":"convex dev --start 'npm run dev:build'","lint":"eslint . && prettier --check .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","format":"prettier --write .","predev":"convex init && npm run build:codegen","release":"npm version patch && npm publish && git push --follow-tags","version":"(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"reece-convex","email":"reece@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"11.11.0","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@convex-dev/batch-worker":"0.3.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"7.3.5","dayjs":"1.11.19","jsdom":"30.0.0","react":"19.2.4","convex":"1.45.0","eslint":"9.39.2","vitest":"4.1.0","globals":"17.3.0","postcss":"8.5.23","prettier":"3.8.1","react-dom":"19.2.4","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"24.10.13","convex-test":"0.0.56","tailwindcss":"4.1.18","@types/react":"19.2.14","autoprefixer":"10.4.24","chokidar-cli":"3.0.0","@edge-runtime/vm":"5.0.0","@types/react-dom":"19.2.3","typescript-eslint":"8.55.0","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@convex-dev/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"8.55.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@typescript-eslint/eslint-plugin":"8.55.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.43.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.4.1-alpha.0_1790193433991_0.7925045624811489","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@convex-dev/rate-limiter","version":"0.4.1","keywords":["convex","component"],"license":"Apache-2.0","_id":"@convex-dev/rate-limiter@0.4.1","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"dowski-convex","email":"christian@convex.dev"},{"name":"reece-convex","email":"reece@convex.dev"},{"name":"timdoug-convex","email":"timdoug@convex.dev"},{"name":"ayushdewanconvex","email":"ayush@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"sethconvex","email":"seth@convex.dev"},{"name":"andycai-convex","email":"andy@convex.dev"},{"name":"mikewheaton","email":"mike@wheaton.dev"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"homepage":"https://github.com/get-convex/rate-limiter#readme","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"75c869c58b541d43f832823776802baf70d404ca","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.4.1.tgz","fileCount":78,"integrity":"sha512-xUXjGWupVFBnPzDvAANhPwtwq45uZ4jwOxme2P7IxNqVdQckKM0kw/K5G14FTNKAJPOn6+jSVtIdmmWXXGnw0A==","signatures":[{"sig":"MEQCIEHp5izvG5PNyh7mKzwQ290hV5jl23tsVrX7VNAm62grAiBEkin47ZRd87a3LArjRHUUE6jq05p5seKbI2kKQwWx2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCI7LIV/XNtFhgoMExnXyCiKxTRTrLyCozF54Bu+ka6MgIhANNF11lR8AMu9PYx+2QRvd1Zn4Y6WWDo9PNAVue1sphv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317586},"type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"5417abfc83223f714ee63238141e45227f1118ab","scripts":{"dev":"convex dev --start 'npm run dev:build'","lint":"eslint . && prettier --check .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","format":"prettier --write .","predev":"convex init && npm run build:codegen","release":"npm version patch && npm publish && git push --follow-tags","version":"(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"11.11.0","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"@convex-dev/batch-worker":"0.3.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.5","dayjs":"1.11.19","jsdom":"30.0.0","react":"19.2.4","convex":"1.46.0","eslint":"9.39.2","vitest":"4.1.0","globals":"17.3.0","postcss":"8.5.23","prettier":"3.8.1","react-dom":"19.2.4","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"24.10.13","convex-test":"0.0.56","tailwindcss":"4.1.18","@types/react":"19.2.14","autoprefixer":"10.4.24","chokidar-cli":"3.0.0","@edge-runtime/vm":"5.0.0","@types/react-dom":"19.2.3","typescript-eslint":"8.55.0","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@convex-dev/eslint-plugin":"^4.0.0","@typescript-eslint/parser":"8.55.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@typescript-eslint/eslint-plugin":"8.55.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.43.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rate-limiter_0.4.1_1791327401818_0.42124037604905484","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"_id":"@convex-dev/rate-limiter@0.4.2","bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"dist":{"shasum":"575ae145cd25b5caead7ad1e85a5eed3fad8274f","tarball":"https://registry.npmjs.org/@convex-dev/rate-limiter/-/rate-limiter-0.4.2.tgz","fileCount":77,"integrity":"sha512-njheoDd//MZgxtw+0PP3LL47PVMkvOKZmXDjYglDKSu5IdrfJtGmz/EHd6px9UcALuk/w7LTo83YwQ3bTGsMIg==","signatures":[{"sig":"MEUCIEZ3gqm1dKjTJBEjGeKFGdzyChRIMXCgSgP3D40ycbEyAiEAvnJ9xT94yq6muxM6Nsz8yNNEsEcmce3L3X1usUXPNNw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD3xEAbfGiT5bOOt3q/JD+kM6pMmaGmvpQOH/QFSfPsfgIgN8mzqDYZ4pQn9nYxmznt4De0z2kKZU5lBV2xvgywX80="}],"unpackedSize":318057},"name":"@convex-dev/rate-limiter","type":"module","types":"./dist/client/index.d.ts","module":"./dist/client/index.js","exports":{".":{"types":"./dist/client/index.d.ts","default":"./dist/client/index.js"},"./test":"./src/test.ts","./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./package.json":"./package.json","./convex.config":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./convex.config.js":{"types":"./dist/component/convex.config.d.ts","default":"./dist/component/convex.config.js"},"./_generated/component.js":{"types":"./dist/component/_generated/component.d.ts"}},"gitHead":"2f5c7b5b3de103b7dcf84d0bfeecd95ca7fef94c","license":"Apache-2.0","scripts":{"dev":"convex dev --start 'npm run dev:build'","lint":"eslint . && prettier --check .","test":"vitest run --typecheck","alpha":"npm version prerelease --preid alpha && npm publish --tag alpha && git push --follow-tags","build":"tsc --project ./tsconfig.build.json","format":"prettier --write .","predev":"convex init && npm run build:codegen","release":"npm version patch && npm publish && git push --follow-tags","version":"(npm whoami || npm login) && vim -c 'normal o' -c 'normal o## '$npm_package_version CHANGELOG.md && prettier -w CHANGELOG.md && git add CHANGELOG.md","dev:build":"chokidar 'tsconfig*.json' 'src/**/*.ts' -i '**/*.test.ts' -c 'npm run build:codegen' --initial","typecheck":"tsc --noEmit && tsc -p example && tsc -p example/convex","preversion":"npm ci && npm run build:clean && npm run test && npm run lint && npm run typecheck","test:debug":"vitest --inspect-brk --no-file-parallelism","test:watch":"vitest --typecheck --clearScreen false","build:clean":"rm -rf dist *.tsbuildinfo && npm run build:codegen","dev:frontend":"cd example && vite --clearScreen false","build:codegen":"npx convex codegen --component-dir ./src/component && npm run build","test:coverage":"vitest run --coverage --coverage.reporter=text"},"version":"0.4.2","_npmUser":{"name":"ianatconvex","email":"ian@convex.dev"},"homepage":"https://github.com/get-convex/rate-limiter#readme","keywords":["convex","component"],"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"_npmVersion":"11.11.0","description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","directories":{},"maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"dowski-convex","email":"christian@convex.dev"},{"name":"reece-convex","email":"reece@convex.dev"},{"name":"timdoug-convex","email":"timdoug@convex.dev"},{"name":"ayushdewanconvex","email":"ayush@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"sethconvex","email":"seth@convex.dev"},{"name":"andycai-convex","email":"andy@convex.dev"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"_nodeVersion":"22.22.2","dependencies":{"@convex-dev/batch-worker":"0.3.5"},"_hasShrinkwrap":false,"devDependencies":{"vite":"7.3.5","dayjs":"1.11.19","jsdom":"30.0.0","react":"19.2.4","convex":"1.46.0","eslint":"9.39.2","vitest":"4.1.0","globals":"17.3.0","postcss":"8.5.23","prettier":"3.8.1","react-dom":"19.2.4","@eslint/js":"9.39.2","typescript":"5.9.3","@types/node":"24.10.13","convex-test":"0.0.61","tailwindcss":"4.1.18","@types/react":"19.2.14","autoprefixer":"10.4.24","chokidar-cli":"3.0.0","@edge-runtime/vm":"5.0.0","@types/react-dom":"19.2.3","typescript-eslint":"8.55.0","@tailwindcss/postcss":"4.1.18","@vitejs/plugin-react":"5.1.4","@testing-library/react":"16.3.2","@convex-dev/eslint-plugin":"^5.0.0","@typescript-eslint/parser":"8.55.0","eslint-plugin-react-hooks":"7.0.1","eslint-plugin-react-refresh":"0.5.0","@typescript-eslint/eslint-plugin":"8.55.0"},"peerDependencies":{"react":"^18.2.0 || ^19.0.0","convex":"^1.43.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rate-limiter_0.4.2_1791592695582_0.9322105975255432"}}},"time":{"created":"2024-10-22T00:19:26.383Z","modified":"2026-10-10T00:38:15.888Z","0.2.0":"2024-10-22T00:19:26.602Z","0.2.1":"2024-10-22T05:44:08.095Z","0.2.2":"2024-10-28T21:28:55.747Z","0.2.3":"2024-10-28T21:30:44.358Z","0.2.4":"2024-11-12T20:00:41.818Z","0.2.5":"2025-01-14T21:29:17.764Z","0.2.6":"2025-02-05T23:09:54.553Z","0.2.7":"2025-05-31T00:26:02.399Z","0.2.8-alpha.0":"2025-06-13T09:36:37.133Z","0.2.8":"2025-06-16T22:17:05.091Z","0.2.9":"2025-06-17T16:19:39.186Z","0.2.10":"2025-06-17T19:00:27.036Z","0.2.11":"2025-07-15T22:45:13.655Z","0.2.12-alpha.0":"2025-07-22T22:21:06.595Z","0.2.12":"2025-07-24T01:09:48.842Z","0.2.13":"2025-09-25T20:30:38.877Z","0.2.14-alpha.0":"2025-10-16T06:13:26.578Z","0.2.14-alpha.1":"2025-10-16T06:25:48.791Z","0.2.14":"2025-10-16T07:06:20.374Z","0.3.0":"2025-11-11T02:38:30.046Z","0.3.1":"2025-12-09T00:17:17.004Z","0.3.2":"2025-12-09T00:48:54.508Z","0.4.0-alpha.0":"2026-09-11T23:42:51.987Z","0.4.0":"2026-09-14T22:02:40.336Z","0.4.1-alpha.0":"2026-09-23T19:57:14.151Z","0.4.1":"2026-10-06T22:56:41.912Z","0.4.2":"2026-10-10T00:38:15.703Z"},"bugs":{"url":"https://github.com/get-convex/rate-limiter/issues","email":"support@convex.dev"},"license":"Apache-2.0","homepage":"https://github.com/get-convex/rate-limiter#readme","keywords":["convex","component"],"repository":{"url":"git+https://github.com/get-convex/rate-limiter.git","type":"git"},"description":"A rate limiter component for Convex. Define and use application-layer rate limits. Type-safe, transactional, fair, safe, and configurable sharding to scale.","maintainers":[{"name":"cowling","email":"james@convex.dev"},{"name":"jordanhunt","email":"jordan@convex.dev"},{"name":"gautamg795","email":"gautam@convex.dev"},{"name":"nipunn","email":"nipunn1313@gmail.com"},{"name":"aritrakh","email":"aritrakh@gmail.com"},{"name":"ianatconvex","email":"ian@convex.dev"},{"name":"dowski-convex","email":"christian@convex.dev"},{"name":"reece-convex","email":"reece@convex.dev"},{"name":"timdoug-convex","email":"timdoug@convex.dev"},{"name":"ayushdewanconvex","email":"ayush@convex.dev"},{"name":"erquhart","email":"shawn@erquh.art"},{"name":"sethconvex","email":"seth@convex.dev"},{"name":"andycai-convex","email":"andy@convex.dev"},{"name":"jamwt","email":"jamwt@convex.dev"},{"name":"nicolapps","email":"nicolas@ettlin.dev"}],"readme":"# Convex Rate Limiter Component\n\n[![npm version](https://badge.fury.io/js/@convex-dev%2Frate-limiter.svg)](https://badge.fury.io/js/@convex-dev%2Frate-limiter)\n\n<!-- START: Include on https://convex.dev/components -->\n\nThis component provides application-level rate limiting.\n\nTeaser:\n\n```ts\nconst rateLimiter = new RateLimiter(components.rateLimiter, {\n  freeTrialSignUp: { kind: \"fixed window\", rate: 100, period: HOUR },\n  sendMessage: { kind: \"token bucket\", rate: 10, period: MINUTE, capacity: 3 },\n});\n\n// Restrict how fast free users can sign up to deter bots\nconst status = await rateLimiter.limit(ctx, \"freeTrialSignUp\");\n\n// Limit how fast a user can send messages\nconst status = await rateLimiter.limit(ctx, \"sendMessage\", { key: userId });\n\n// Use the React hook to check the rate limit\nconst { status, check } = useRateLimit(api.example.getRateLimit, { count });\n```\n\nSee below for more details on usage.\n\n**What is rate limiting?**\n\nRate limiting is the technique of controlling how often actions can be\nperformed, typically on a server. There are a host of options for achieving\nthis, most of which operate at the network layer.\n\n**What is application-layer rate limiting?**\n\nApplication-layer rate limiting happens in your app's code where you are\nhandling authentication, authorization, and other business logic. It allows you\nto define nuanced rules, and enforce policies more fairly. It is not the first\nline of defense for a sophisticated DDOS attack (which thankfully are extremely\nrare), but will serve most real-world use cases.\n\n**What differentiates this approach?**\n\n- Type-safe usage: you won't accidentally misspell a rate limit name.\n- Configurable for fixed window or token bucket algorithms.\n- Efficient storage and compute: storage is not proportional to requests.\n- Configurable limits that apply updates in the background for scalability.\n- Transactional evaluation: all rate limit changes will roll back if your\n  mutation fails.\n- Fairness guarantees via credit \"reservation\": save yourself from exponential\n  backoff.\n- Opt-in \"rollover\" or \"burst\" allowance via a configurable `capacity`.\n- Fails closed, not open: avoid cascading failure when traffic overwhelms your\n  rate limits.\n\nSee the associated [Stack post](https://stack.convex.dev/rate-limiting) for more\ndetails and background.\n\n## Pre-requisite: Convex\n\nYou'll need an existing Convex project to use the component. Convex is a hosted\nbackend platform, including a database, serverless functions, and a ton more you\ncan learn about [here](https://docs.convex.dev/get-started).\n\nRun `npm create convex` or follow any of the\n[quickstarts](https://docs.convex.dev/home) to set one up.\n\n## Installation\n\nInstall the component package:\n\n```ts\nnpm install @convex-dev/rate-limiter\n```\n\nCreate a `convex.config.ts` file in your app's `convex/` folder and install the\ncomponent by calling `use`:\n\n```ts\n// convex/convex.config.ts\nimport { defineApp } from \"convex/server\";\nimport rateLimiter from \"@convex-dev/rate-limiter/convex.config.js\";\n\nconst app = defineApp();\napp.use(rateLimiter);\n\nexport default app;\n```\n\n## Define your rate limits:\n\n```ts\nimport { RateLimiter, MINUTE, HOUR } from \"@convex-dev/rate-limiter\";\nimport { components } from \"./_generated/api\";\n\nconst rateLimiter = new RateLimiter(components.rateLimiter, {\n  // One global / singleton rate limit, using a \"fixed window\" algorithm.\n  freeTrialSignUp: { kind: \"fixed window\", rate: 100, period: HOUR },\n  // A per-user limit, allowing one every ~6 seconds.\n  // Allows up to 3 in quick succession if they haven't sent many recently.\n  sendMessage: { kind: \"token bucket\", rate: 10, period: MINUTE, capacity: 3 },\n  failedLogins: { kind: \"token bucket\", rate: 10, period: HOUR },\n  // Apply updates asynchronously for eventual consistency.\n  llmTokenBudget: {\n    kind: \"token bucket\",\n    rate: 10,\n    period: HOUR,\n    applyUpdates: \"asynchronously\",\n  },\n  // Use sharding to increase throughput without compromising on correctness.\n  llmTokens: { kind: \"token bucket\", rate: 40000, period: MINUTE, shards: 10 },\n  llmRequests: { kind: \"fixed window\", rate: 1000, period: MINUTE, shards: 10 },\n});\n```\n\n- You can safely generate multiple instances if you want to define different\n  rates in separate places, provided the keys don't overlap.\n- The units for `period` are milliseconds. `MINUTE` above is `60000`.\n\n### Strategies:\n\nThe **`token bucket`** approach provides guarantees for overall consumption via\nthe `rate` per `period` at which tokens are added, while also allowing unused\ntokens to accumulate (like \"rollover\" minutes) up to some `capacity` value. So\nif you could normally send 10 per minute, with a capacity of 20, then every two\nminutes you could send 20, or if in the last two minutes you only sent 5, you\ncan send 15 now.\n\nThe **`fixed window`** approach differs in that the tokens are granted all at\nonce, every `period` milliseconds. It similarly allows accumulating \"rollover\"\ntokens up to a `capacity` (defaults to the `rate` for both rate limit\nstrategies). You can specify a custom `start` time if e.g. you want the period\nto reset at a specific time of day. By default it will be random to help space\nout requests that are retrying.\n\n## Usage\n\n### Using a simple global rate limit:\n\n```ts\nconst { ok, retryAfter } = await rateLimiter.limit(ctx, \"freeTrialSignUp\");\n```\n\n- `ok` is whether it successfully consumed the resource\n- `retryAfter` is when it would have succeeded in the future.\n\n**Note**: If you have many clients using the `retryAfter` to decide when to\nretry, defend against a\n[thundering herd](https://en.wikipedia.org/wiki/Thundering_herd_problem) by\nadding some [jitter](#adding-jitter). Or use the `reserve` functionality\ndiscussed [below](#reserving-capacity).\n\n### Per-user rate limit:\n\nUse `key` to use a rate limit specific to some user / team / session ID / etc.\n\n```ts\nconst status = await rateLimiter.limit(ctx, \"sendMessage\", { key: userId });\n```\n\n### Consume a custom count\n\nBy default, each call to `limit` counts as one unit. Pass `count` to customize.\n\n```ts\n// Consume multiple in one request to prevent rate limits on an LLM API.\nconst status = await rateLimiter.limit(ctx, \"llmTokens\", { count: tokens });\n```\n\n### Throw automatically\n\nBy default it will return `{ ok, retryAfter }`. To have it throw automatically\nwhen the limit is exceeded, use `throws`. It throws a `ConvexError` with\n`RateLimitError` data (`data: {kind, name, retryAfter}`) instead of returning\nwhen `ok` is false.\n\n```ts\n// Automatically throw an error if the rate limit is hit\nawait rateLimiter.limit(ctx, \"failedLogins\", { key: userId, throws: true });\n```\n\n### Check a rate limit without consuming it\n\n```ts\nconst status = await rateLimiter.check(ctx, \"failedLogins\", { key: userId });\n```\n\n### Reset a rate limit\n\n```ts\n// Reset a rate limit on successful login\nawait rateLimiter.reset(ctx, \"failedLogins\", { key: userId });\n```\n\n### Define a rate limit inline / dynamically\n\n```ts\n// Use a one-off rate limit config (when not named on initialization)\nconst config = { kind: \"fixed window\", rate: 1, period: SECOND };\nconst status = await rateLimiter.limit(ctx, \"oneOffName\", { config });\n```\n\n### Using the React hook\n\nYou can use the React hook to check the rate limit in your browser code.\n\nFirst, define the server API to get the rate limit value:\n\n```ts\n// In convex/example.ts\nexport const { getRateLimit, getServerTime } = rateLimiter.hookAPI(\n  \"sendMessage\",\n  {\n    // Optionally provide a key function to get the key for the rate limit\n    key: async (ctx) => await getUserId(ctx),\n    // To allow the client to provide the key, pass a function that takes the key from the client\n    key: async (ctx, keyFromClient) => {\n      await ensureUserCanUseKey(ctx, keyFromClient);\n      return keyFromClient;\n    },\n  },\n);\n```\n\nThen, use the React hook to check the rate limit:\n\n```ts\nfunction App() {\n  const { status: { ok, retryAt }, check } = useRateLimit(api.example.getRateLimit, {\n    // [recommended] Allows the hook to sync the browser and server clocks\n    getServerTimeMutation: getServerTime,\n    // [optional] The number of tokens to wait on\n    count: 1,\n  });\n\n  // If you want to check at specific times and get the concrete value:\n  const { value, ts, config, ok, retryAt } = check(Date.now(), count);\n```\n\n### Fetching the current value directly\n\nYou can fetch the current value of a rate limit directly, if you want to know\nthe concrete value and timestamp it was last updated.\n\n```ts\nconst { config, value, ts } = await rateLimiter.getValue(ctx, \"sendMessage\", {\n  key: userId,\n});\n```\n\nAnd you can use `calculateRateLimit` to calculate the value at a given\ntimestamp:\n\n```ts\nimport { calculateRateLimit } from \"@convex-dev/rate-limiter\";\n\nconst { config, value, ts } = calculateRateLimit(\n  { value, ts },\n  config,\n  Date.now(),\n  count || 0,\n);\n```\n\n### Avoiding contention with asynchronous updates\n\nWhen many requests are happening at once, they can all be trying to modify the\nsame values in the database. Because Convex provides strong transactions, they\nwill never overwrite each other, so you don't have to worry about the rate\nlimiter succeeding more often than it should. However, when there is high\ncontention for these values, it causes\n[optimistic concurrency control conflicts](https://stack.convex.dev/how-convex-works#read-and-write-sets).\nConvex automatically retries these a number of times with backoff, but it's\nstill best to avoid them.\n\nUsing the **async** mode of the rate limiter can help increase the throughput of\nthe rate limiter while avoiding OCC conflicts. In the `RateLimiter` config, set\nthe limit's `applyUpdates` to `\"asynchronously\"`:\n\n```ts\nconst rateLimiter = new RateLimiter(components.rateLimiter, {\n  llmTokens: {\n    kind: \"token bucket\",\n    rate: 40000,\n    period: MINUTE,\n    applyUpdates: \"asynchronously\",\n  },\n});\n```\n\nInstead of updating rate limits transactionally, updates are placed in a queue\nand applied in the background by a\n[Batch Worker](https://github.com/get-convex/batch-worker). Checking the limit\ninside a mutation reads from a stale database snapshot, so these rate limit\ncalls will never conflict with concurrent writers.\n\nThe trade-off is that asynchronous limits are eventually consistent. A large\nburst of concurrent callers can all succeed before the worker applies enough\nconsumption to block new callers, which can cause the limit to go negative. Note\nthat the consumption is still accounted for. When asynchronous updates exceed\ncapacity, it goes negative and future requests will be rejected until enough\ntime has passed to recover from the negative balance.\n\nIf enforcing an exact instantaneous cap is required for your use case, consider\nusing [`shards`](#scaling-rate-limiting-with-shards).\n\n### Scaling rate limiting with shards\n\nOne option to increase throughput while maintaining transactionality is to\n\"shard\" the rate limit. We break up the total capacity into individual buckets,\nor \"shards\". When we go to use some of that capacity, we check a random\nshard.<sup>[1](#power-of-two)</sup> While sometimes we'll get unlucky and get\nrate limited when there was capacity elsewhere, we'll never violate the rate\nlimit's upper bound.\n\n```ts\nconst rateLimiter = new RateLimiter(components.rateLimiter, {\n  llmTokens: { kind: \"token bucket\", rate: 40000, period: MINUTE, shards: 10 },\n  llmRequests: { kind: \"fixed window\", rate: 1000, period: MINUTE, shards: 10 },\n});\n```\n\nHere we're using 10 shards to handle 1,000 QPM. If you want some rough math to\nguess at how many shards to add, take the max queries per second you expect and\ndivide by two. It's also useful for each shard to have five (ideally ten) or\nmore capacity. In this case, we have ten (rate / shards) and don't expect normal\ntraffic to exceed ~20 QPS.\n\n**Tip**: If you want a rate like `{ rate: 100, period: SECOND }` and you are\nflexible in the overall period, then you can shard this by increasing the rate\nand period proportionally to get enough shards and capacity per shard:\n`{ shards: 50, rate: 250, period: 2.5 * SECOND }` or even better:\n`{ shards: 50, rate: 1000, period: 10 * SECOND }`.\n\nNote that an async rate limit cannot be sharded.\n\n#### Power of two\n\nWe're actually going one step further and checking two shards and using the one\nwith more capacity, to keep them relatively balanced, based on the\n[power of two technique](https://www.eecs.harvard.edu/~michaelm/postscripts/tpds2001.pdf).\nWe will also combine the capacity of the two shards if neither has enough on\ntheir own.\n\n### Reserving capacity:\n\nYou can also allow it to `reserve` capacity to avoid starvation on larger\nrequests.\n\nWhen you reserve capacity ahead of time, the contract is that you can run your\noperation at the specified time (via the `retryAfter` field), at which point you\ndon't have to re-check the rate limit. Your capacity has been \"ear-marked\".\n\nWith this, you can queue up many operations and they will be run at spaced-out\nintervals, maximizing the utilization of the rate limit.\n\nDetails in the [Stack post](https://stack.convex.dev/rate-limiting).\n\n```ts\nconst myAction = internalAction({\n  args: {\n    //...\n    skipCheck: v.optional(v.boolean()),\n  },\n  handler: async (ctx, args) => {\n    if (!args.skipCheck) {\n      // Reserve future capacity instead of just failing now\n      const status = await rateLimiter.limit(ctx, \"llmRequests\", {\n        reserve: true,\n      });\n      if (status.retryAfter) {\n        return ctx.scheduler.runAfter(\n          status.retryAfter,\n          internal.foo.myAction,\n          {\n            // When we run in the future, we can skip the rate limit check,\n            // since we've just reserved that capacity.\n            skipCheck: true,\n          },\n        );\n      }\n    }\n    // do the operation\n  },\n});\n```\n\n### Adding jitter\n\nWhen too many users show up at once, it can cause network congestion, database\ncontention, and consume other shared resources at an unnecessarily high rate.\nInstead we can return a random time within the next period to retry. Hopefully\nthis is infrequent. This technique is referred to as adding \"jitter.\"\n\nA simple implementation could look like:\n\n```ts\nconst retryAfter = status.retryAfter + Math.random() * period;\n```\n\nFor the fixed window, we also introduce randomness by picking the start time of\nthe window (from which all subsequent windows are based) randomly if\nconfig.start wasn't provided. This helps prevent all clients from flooding\nrequests at midnight and paging you.\n\n## More resources\n\n[Check out a full example here](./example/convex/example.ts).\n\nSee [this article](https://stack.convex.dev/rate-limiting) for more information\non usage and advanced patterns, for example:\n\n- How the different rate limiting strategies work under the hood.\n- Using multiple rate limits in a single transaction.\n- Rate limiting anonymous users.\n\n<!-- END: Include on https://convex.dev/components -->\n","readmeFilename":"README.md"}