@upstash/ratelimit 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm/mod.js +1 -2
- package/esm/ratelimit.js +129 -0
- package/esm/{ratelimiter.js → region.js} +6 -130
- package/esm/types.js +1 -2
- package/package.json +2 -2
- package/script/mod.js +3 -16
- package/script/ratelimit.js +133 -0
- package/script/{ratelimiter.js → region.js} +8 -132
- package/script/types.js +0 -3
- package/types/mod.d.ts +3 -2
- package/types/ratelimit.d.ts +85 -0
- package/types/{ratelimiter.d.ts → region.d.ts} +10 -54
- package/types/types.d.ts +10 -4
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/mod.js +0 -46
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/append.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitcount.js +0 -16
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitop.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitpos.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/command.js +0 -57
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/dbsize.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/decr.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/decrby.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/del.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/echo.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/eval.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/evalsha.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/exists.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/expire.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/expireat.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/flushall.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/flushdb.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/get.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getbit.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getrange.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getset.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hdel.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hexists.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hget.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hgetall.js +0 -33
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hincrby.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hincrbyfloat.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hkeys.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hlen.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hmget.js +0 -35
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hmset.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hscan.js +0 -16
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hset.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hsetnx.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hstrlen.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hvals.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incr.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incrby.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incrbyfloat.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/keys.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lindex.js +0 -6
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/linsert.js +0 -6
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/llen.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpop.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpush.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpushx.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lrange.js +0 -6
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lrem.js +0 -6
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lset.js +0 -6
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ltrim.js +0 -6
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mget.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mod.js +0 -114
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mset.js +0 -12
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/msetnx.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/persist.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pexpire.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pexpireat.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ping.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/psetex.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pttl.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/publish.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/randomkey.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rename.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/renamenx.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpop.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpush.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpushx.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sadd.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/scan.js +0 -16
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/scard.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_exists.js +0 -21
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_flush.js +0 -16
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_load.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sdiff.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sdiffstore.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/set.js +0 -24
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setbit.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setex.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setnx.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setrange.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sinter.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sinterstore.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sismember.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/smembers.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/smove.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/spop.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/srandmember.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/srem.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sscan.js +0 -16
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/strlen.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sunion.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sunionstore.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/time.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/touch.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ttl.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/type.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/unlink.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zadd.js +0 -26
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zcard.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zcount.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zincrby.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zinterstore.js +0 -27
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zlexcount.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zpopmax.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zpopmin.js +0 -13
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrange.js +0 -20
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrank.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrem.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebylex.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebyrank.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebyscore.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrevrank.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zscan.js +0 -16
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zscore.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zunionstore.js +0 -27
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/error.js +0 -9
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/http.js +0 -49
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/pipeline.js +0 -1125
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/redis.js +0 -1067
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/types.js +0 -1
- package/esm/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/util.js +0 -31
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/mod.js +0 -73
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/append.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitcount.js +0 -20
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitop.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitpos.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/command.js +0 -61
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/dbsize.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/decr.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/decrby.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/del.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/echo.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/eval.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/evalsha.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/exists.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/expire.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/expireat.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/flushall.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/flushdb.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/get.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getbit.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getrange.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getset.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hdel.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hexists.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hget.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hgetall.js +0 -37
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hincrby.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hincrbyfloat.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hkeys.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hlen.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hmget.js +0 -39
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hmset.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hscan.js +0 -20
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hset.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hsetnx.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hstrlen.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hvals.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incr.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incrby.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incrbyfloat.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/keys.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lindex.js +0 -10
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/linsert.js +0 -10
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/llen.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpop.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpush.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpushx.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lrange.js +0 -10
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lrem.js +0 -10
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lset.js +0 -10
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ltrim.js +0 -10
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mget.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mod.js +0 -130
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mset.js +0 -16
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/msetnx.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/persist.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pexpire.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pexpireat.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ping.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/psetex.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pttl.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/publish.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/randomkey.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rename.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/renamenx.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpop.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpush.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpushx.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sadd.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/scan.js +0 -20
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/scard.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_exists.js +0 -25
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_flush.js +0 -20
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_load.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sdiff.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sdiffstore.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/set.js +0 -28
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setbit.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setex.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setnx.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setrange.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sinter.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sinterstore.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sismember.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/smembers.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/smove.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/spop.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/srandmember.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/srem.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sscan.js +0 -20
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/strlen.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sunion.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sunionstore.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/time.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/touch.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ttl.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/type.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/unlink.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zadd.js +0 -30
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zcard.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zcount.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zincrby.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zinterstore.js +0 -31
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zlexcount.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zpopmax.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zpopmin.js +0 -17
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrange.js +0 -24
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrank.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrem.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebylex.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebyrank.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebyscore.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrevrank.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zscan.js +0 -20
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zscore.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zunionstore.js +0 -31
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/error.js +0 -13
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/http.js +0 -53
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/pipeline.js +0 -1129
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/redis.js +0 -1071
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/types.js +0 -2
- package/script/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/util.js +0 -35
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/mod.d.ts +0 -33
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/append.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitcount.d.ts +0 -8
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitop.d.ts +0 -13
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/bitpos.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/command.d.ts +0 -37
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/dbsize.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/decr.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/decrby.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/del.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/echo.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/eval.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/evalsha.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/exists.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/expire.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/expireat.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/flushall.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/flushdb.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/get.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getbit.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getrange.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/getset.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hdel.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hexists.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hget.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hgetall.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hincrby.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hincrbyfloat.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hkeys.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hlen.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hmget.d.ts +0 -15
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hmset.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hscan.d.ts +0 -24
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hset.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hsetnx.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hstrlen.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/hvals.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incr.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incrby.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/incrbyfloat.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/keys.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lindex.d.ts +0 -4
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/linsert.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/llen.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpop.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpush.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lpushx.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lrange.d.ts +0 -4
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lrem.d.ts +0 -4
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/lset.d.ts +0 -4
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ltrim.d.ts +0 -4
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mget.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mod.d.ts +0 -114
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/mset.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/msetnx.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/persist.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pexpire.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pexpireat.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ping.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/psetex.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/pttl.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/publish.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/randomkey.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rename.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/renamenx.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpop.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpush.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/rpushx.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sadd.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/scan.d.ts +0 -17
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/scard.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_exists.d.ts +0 -9
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_flush.d.ts +0 -14
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/script_load.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sdiff.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sdiffstore.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/set.d.ts +0 -26
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setbit.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setex.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setnx.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/setrange.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sinter.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sinterstore.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sismember.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/smembers.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/smove.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/spop.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/srandmember.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/srem.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sscan.d.ts +0 -24
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/strlen.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sunion.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/sunionstore.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/time.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/touch.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/ttl.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/type.d.ts +0 -8
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/unlink.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zadd.d.ts +0 -35
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zcard.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zcount.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zincrby.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zinterstore.d.ts +0 -30
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zlexcount.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zpopmax.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zpopmin.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrange.d.ts +0 -35
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrank.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrem.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebylex.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebyrank.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zremrangebyscore.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zrevrank.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zscan.d.ts +0 -24
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zscore.d.ts +0 -7
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/commands/zunionstore.d.ts +0 -30
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/error.d.ts +0 -6
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/http.d.ts +0 -30
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/pipeline.d.ts +0 -540
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/redis.d.ts +0 -516
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/types.d.ts +0 -1
- package/types/deps/deno.land/x/upstash_redis@v1.3.3-alpha.1/pkg/util.d.ts +0 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { Algorithm, Context, RatelimitResponse } from "./types.js";
|
|
2
|
+
export declare type RatelimitConfig<TContext> = {
|
|
3
|
+
/**
|
|
4
|
+
* The ratelimiter function to use.
|
|
5
|
+
*
|
|
6
|
+
* Choose one of the predefined ones or implement your own.
|
|
7
|
+
* Available algorithms are exposed via static methods:
|
|
8
|
+
* - Ratelimiter.fixedWindow
|
|
9
|
+
* - Ratelimiter.slidingLogs
|
|
10
|
+
* - Ratelimiter.slidingWindow
|
|
11
|
+
* - Ratelimiter.tokenBucket
|
|
12
|
+
*/
|
|
13
|
+
limiter: Algorithm<TContext>;
|
|
14
|
+
ctx: TContext;
|
|
15
|
+
/**
|
|
16
|
+
* All keys in redis are prefixed with this.
|
|
17
|
+
*
|
|
18
|
+
* @default `@upstash/ratelimit`
|
|
19
|
+
*/
|
|
20
|
+
prefix?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Ratelimiter using serverless redis from https://upstash.com/
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* const { limit } = new Ratelimit({
|
|
28
|
+
* redis: Redis.fromEnv(),
|
|
29
|
+
* limiter: Ratelimit.slidingWindow(
|
|
30
|
+
* 10, // Allow 10 requests per window of 30 minutes
|
|
31
|
+
* "30 m", // interval of 30 minutes
|
|
32
|
+
* )
|
|
33
|
+
* })
|
|
34
|
+
*
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare abstract class Ratelimit<TContext extends Context> {
|
|
38
|
+
protected readonly limiter: Algorithm<TContext>;
|
|
39
|
+
protected readonly ctx: TContext;
|
|
40
|
+
protected readonly prefix: string;
|
|
41
|
+
constructor(config: RatelimitConfig<TContext>);
|
|
42
|
+
/**
|
|
43
|
+
* Determine if a request should pass or be rejected based on the identifier and previously chosen ratelimit.
|
|
44
|
+
*
|
|
45
|
+
* Use this if you want to reject all requests that you can not handle right now.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* const ratelimit = new Ratelimit({
|
|
50
|
+
* redis: Redis.fromEnv(),
|
|
51
|
+
* limiter: Ratelimit.slidingWindow(10, "10 s")
|
|
52
|
+
* })
|
|
53
|
+
*
|
|
54
|
+
* const { success } = await ratelimit.limit(id)
|
|
55
|
+
* if (!success){
|
|
56
|
+
* return "Nope"
|
|
57
|
+
* }
|
|
58
|
+
* return "Yes"
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
limit: (identifier: string) => Promise<RatelimitResponse>;
|
|
62
|
+
/**
|
|
63
|
+
* Block until the request may pass or timeout is reached.
|
|
64
|
+
*
|
|
65
|
+
* This method returns a promsie that resolves as soon as the request may be processed
|
|
66
|
+
* or after the timeoue has been reached.
|
|
67
|
+
*
|
|
68
|
+
* Use this if you want to delay the request until it is ready to get processed.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* const ratelimit = new Ratelimit({
|
|
73
|
+
* redis: Redis.fromEnv(),
|
|
74
|
+
* limiter: Ratelimit.slidingWindow(10, "10 s")
|
|
75
|
+
* })
|
|
76
|
+
*
|
|
77
|
+
* const { success } = await ratelimit.blockUntilReady(id, 60_000)
|
|
78
|
+
* if (!success){
|
|
79
|
+
* return "Nope"
|
|
80
|
+
* }
|
|
81
|
+
* return "Yes"
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
blockUntilReady: (identifier: string, timeout: number) => Promise<RatelimitResponse>;
|
|
85
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Duration } from "./duration.js";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type { Algorithm, RegionContext } from "./types.js";
|
|
3
|
+
import type { Redis } from "./types.js";
|
|
4
|
+
import { Ratelimit } from "./ratelimit.js";
|
|
5
|
+
export declare type RegionRatelimitConfig = {
|
|
4
6
|
/**
|
|
5
7
|
* Instance of `@upstash/redis`
|
|
6
8
|
* @see https://github.com/upstash/upstash-redis#quick-start
|
|
@@ -16,7 +18,7 @@ export declare type RatelimitConfig = {
|
|
|
16
18
|
* - Ratelimiter.slidingWindow
|
|
17
19
|
* - Ratelimiter.tokenBucket
|
|
18
20
|
*/
|
|
19
|
-
limiter:
|
|
21
|
+
limiter: Algorithm<RegionContext>;
|
|
20
22
|
/**
|
|
21
23
|
* All keys in redis are prefixed with this.
|
|
22
24
|
*
|
|
@@ -39,57 +41,11 @@ export declare type RatelimitConfig = {
|
|
|
39
41
|
*
|
|
40
42
|
* ```
|
|
41
43
|
*/
|
|
42
|
-
export declare class Ratelimit {
|
|
43
|
-
private readonly redis;
|
|
44
|
-
private readonly limiter;
|
|
45
|
-
private readonly prefix;
|
|
44
|
+
export declare class RegionRatelimit extends Ratelimit<RegionContext> {
|
|
46
45
|
/**
|
|
47
46
|
* Create a new Ratelimit instance by providing a `@upstash/redis` instance and the algorithn of your choice.
|
|
48
47
|
*/
|
|
49
|
-
constructor(config:
|
|
50
|
-
/**
|
|
51
|
-
* Determine if a request should pass or be rejected based on the identifier and previously chosen ratelimit.
|
|
52
|
-
*
|
|
53
|
-
* Use this if you want to reject all requests that you can not handle right now.
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* ```ts
|
|
57
|
-
* const ratelimit = new Ratelimit({
|
|
58
|
-
* redis: Redis.fromEnv(),
|
|
59
|
-
* limiter: Ratelimit.slidingWindow(10, "10 s")
|
|
60
|
-
* })
|
|
61
|
-
*
|
|
62
|
-
* const { success } = await ratelimit.limit(id)
|
|
63
|
-
* if (!success){
|
|
64
|
-
* return "Nope"
|
|
65
|
-
* }
|
|
66
|
-
* return "Yes"
|
|
67
|
-
* ```
|
|
68
|
-
*/
|
|
69
|
-
limit: (identifier: string) => Promise<RatelimitResponse>;
|
|
70
|
-
/**
|
|
71
|
-
* Block until the request may pass or timeout is reached.
|
|
72
|
-
*
|
|
73
|
-
* This method returns a promsie that resolves as soon as the request may be processed
|
|
74
|
-
* or after the timeoue has been reached.
|
|
75
|
-
*
|
|
76
|
-
* Use this if you want to delay the request until it is ready to get processed.
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* ```ts
|
|
80
|
-
* const ratelimit = new Ratelimit({
|
|
81
|
-
* redis: Redis.fromEnv(),
|
|
82
|
-
* limiter: Ratelimit.slidingWindow(10, "10 s")
|
|
83
|
-
* })
|
|
84
|
-
*
|
|
85
|
-
* const { success } = await ratelimit.blockUntilReady(id, 60_000)
|
|
86
|
-
* if (!success){
|
|
87
|
-
* return "Nope"
|
|
88
|
-
* }
|
|
89
|
-
* return "Yes"
|
|
90
|
-
* ```
|
|
91
|
-
*/
|
|
92
|
-
blockUntilReady: (identifier: string, timeout: number) => Promise<RatelimitResponse>;
|
|
48
|
+
constructor(config: RegionRatelimitConfig);
|
|
93
49
|
/**
|
|
94
50
|
* Each requests inside a fixed time increases a counter.
|
|
95
51
|
* Once the counter reaches a maxmimum allowed number, all further requests are
|
|
@@ -116,7 +72,7 @@ export declare class Ratelimit {
|
|
|
116
72
|
/**
|
|
117
73
|
* The duration in which `tokens` requests are allowed.
|
|
118
74
|
*/
|
|
119
|
-
window: Duration):
|
|
75
|
+
window: Duration): Algorithm<RegionContext>;
|
|
120
76
|
/**
|
|
121
77
|
* Combined approach of `slidingLogs` and `fixedWindow` with lower storage
|
|
122
78
|
* costs than `slidingLogs` and improved boundary behavior by calcualting a
|
|
@@ -141,7 +97,7 @@ export declare class Ratelimit {
|
|
|
141
97
|
/**
|
|
142
98
|
* The duration in which `tokens` requests are allowed.
|
|
143
99
|
*/
|
|
144
|
-
window: Duration):
|
|
100
|
+
window: Duration): Algorithm<RegionContext>;
|
|
145
101
|
/**
|
|
146
102
|
* You have a bucket filled with `{maxTokens}` tokens that refills constantly
|
|
147
103
|
* at `{refillRate}` per `{interval}`.
|
|
@@ -173,5 +129,5 @@ export declare class Ratelimit {
|
|
|
173
129
|
* A newly created bucket starts with this many tokens.
|
|
174
130
|
* Useful to allow higher burst limits.
|
|
175
131
|
*/
|
|
176
|
-
maxTokens: number):
|
|
132
|
+
maxTokens: number): Algorithm<RegionContext>;
|
|
177
133
|
}
|
package/types/types.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface Redis {
|
|
2
|
+
eval: (script: string, keys: string[], values: unknown[]) => Promise<unknown>;
|
|
3
|
+
sadd: (key: string, ...members: string[]) => Promise<number>;
|
|
4
|
+
}
|
|
5
|
+
export declare type RegionContext = {
|
|
4
6
|
redis: Redis;
|
|
5
7
|
};
|
|
8
|
+
export declare type GlobalContext = {
|
|
9
|
+
redis: Redis[];
|
|
10
|
+
};
|
|
11
|
+
export declare type Context = RegionContext | GlobalContext;
|
|
6
12
|
export declare type RatelimitResponse = {
|
|
7
13
|
/**
|
|
8
14
|
* Whether the request may pass(true) or exceeded the limit(false)
|
|
@@ -21,4 +27,4 @@ export declare type RatelimitResponse = {
|
|
|
21
27
|
*/
|
|
22
28
|
reset: number;
|
|
23
29
|
};
|
|
24
|
-
export declare type
|
|
30
|
+
export declare type Algorithm<TContext> = (ctx: TContext, identifier: string) => Promise<RatelimitResponse>;
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from "./pkg/http.js";
|
|
2
|
-
import * as core from "./pkg/redis.js";
|
|
3
|
-
/**
|
|
4
|
-
* Serverless redis client for upstash.
|
|
5
|
-
*/
|
|
6
|
-
export class Redis extends core.Redis {
|
|
7
|
-
/**
|
|
8
|
-
* Create a new redis client
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const redis = new Redis({
|
|
13
|
-
* url: "<UPSTASH_REDIS_REST_URL>",
|
|
14
|
-
* token: "<UPSTASH_REDIS_REST_TOKEN>",
|
|
15
|
-
* });
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
constructor(config) {
|
|
19
|
-
const client = new HttpClient({
|
|
20
|
-
baseUrl: config.url,
|
|
21
|
-
headers: { authorization: `Bearer ${config.token}` },
|
|
22
|
-
});
|
|
23
|
-
super(client, {
|
|
24
|
-
automaticDeserialization: config.automaticDeserialization,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
/*
|
|
28
|
-
* Create a new Upstash Redis instance from environment variables on Deno.
|
|
29
|
-
|
|
30
|
-
*
|
|
31
|
-
*/
|
|
32
|
-
static fromEnv(opts) {
|
|
33
|
-
/**
|
|
34
|
-
* These should be injected by Deno.
|
|
35
|
-
*/
|
|
36
|
-
const url = Deno.env.get("UPSTASH_REDIS_REST_URL");
|
|
37
|
-
if (!url) {
|
|
38
|
-
throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_URL`.");
|
|
39
|
-
}
|
|
40
|
-
const token = Deno.env.get("UPSTASH_REDIS_REST_TOKEN");
|
|
41
|
-
if (!token) {
|
|
42
|
-
throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`.");
|
|
43
|
-
}
|
|
44
|
-
return new Redis({ url, token, ...opts });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Command } from "./command.js";
|
|
2
|
-
/**
|
|
3
|
-
* @see https://redis.io/commands/bitcount
|
|
4
|
-
*/
|
|
5
|
-
export class BitCountCommand extends Command {
|
|
6
|
-
constructor([key, start, end], opts) {
|
|
7
|
-
const command = ["bitcount", key];
|
|
8
|
-
if (typeof start === "number") {
|
|
9
|
-
command.push(start);
|
|
10
|
-
}
|
|
11
|
-
if (typeof end === "number") {
|
|
12
|
-
command.push(end);
|
|
13
|
-
}
|
|
14
|
-
super(command, opts);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { UpstashError } from "../error.js";
|
|
2
|
-
import { parseResponse } from "../util.js";
|
|
3
|
-
const defaultSerializer = (c) => typeof c === "string" ? c : JSON.stringify(c);
|
|
4
|
-
/**
|
|
5
|
-
* Command offers default (de)serialization and the exec method to all commands.
|
|
6
|
-
*
|
|
7
|
-
* TData represents what the user will enter or receive,
|
|
8
|
-
* TResult is the raw data returned from upstash, which may need to be transformed or parsed.
|
|
9
|
-
*/
|
|
10
|
-
export class Command {
|
|
11
|
-
/**
|
|
12
|
-
* Create a new command instance.
|
|
13
|
-
*
|
|
14
|
-
* You can define a custom `deserialize` function. By default we try to deserialize as json.
|
|
15
|
-
*/
|
|
16
|
-
constructor(command, opts) {
|
|
17
|
-
Object.defineProperty(this, "command", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: void 0
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(this, "serialize", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true,
|
|
27
|
-
value: void 0
|
|
28
|
-
});
|
|
29
|
-
Object.defineProperty(this, "deserialize", {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
configurable: true,
|
|
32
|
-
writable: true,
|
|
33
|
-
value: void 0
|
|
34
|
-
});
|
|
35
|
-
this.serialize = defaultSerializer;
|
|
36
|
-
this.deserialize = typeof opts?.automaticDeserialization === "undefined" ||
|
|
37
|
-
opts.automaticDeserialization
|
|
38
|
-
? opts?.deserialize ?? parseResponse
|
|
39
|
-
: (x) => x;
|
|
40
|
-
this.command = command.map(this.serialize);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Execute the command using a client.
|
|
44
|
-
*/
|
|
45
|
-
async exec(client) {
|
|
46
|
-
const { result, error } = await client.request({
|
|
47
|
-
body: this.command,
|
|
48
|
-
});
|
|
49
|
-
if (error) {
|
|
50
|
-
throw new UpstashError(error);
|
|
51
|
-
}
|
|
52
|
-
if (typeof result === "undefined") {
|
|
53
|
-
throw new Error(`Request did not return a result`);
|
|
54
|
-
}
|
|
55
|
-
return this.deserialize(result);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Command } from "./command.js";
|
|
2
|
-
/**
|
|
3
|
-
* @see https://redis.io/commands/flushall
|
|
4
|
-
*/
|
|
5
|
-
export class FlushAllCommand extends Command {
|
|
6
|
-
constructor(args, opts) {
|
|
7
|
-
const command = ["flushall"];
|
|
8
|
-
if (args && args.length > 0 && args[0].async) {
|
|
9
|
-
command.push("async");
|
|
10
|
-
}
|
|
11
|
-
super(command, opts);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Command } from "./command.js";
|
|
2
|
-
/**
|
|
3
|
-
* @see https://redis.io/commands/flushdb
|
|
4
|
-
*/
|
|
5
|
-
export class FlushDBCommand extends Command {
|
|
6
|
-
constructor([opts], cmdOpts) {
|
|
7
|
-
const command = ["flushdb"];
|
|
8
|
-
if (opts?.async) {
|
|
9
|
-
command.push("async");
|
|
10
|
-
}
|
|
11
|
-
super(command, cmdOpts);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Command } from "./command.js";
|
|
2
|
-
/**
|
|
3
|
-
* @param result De
|
|
4
|
-
* @returns
|
|
5
|
-
*/
|
|
6
|
-
function deserialize(result) {
|
|
7
|
-
if (result.length === 0) {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
const obj = {};
|
|
11
|
-
while (result.length >= 2) {
|
|
12
|
-
const key = result.shift();
|
|
13
|
-
const value = result.shift();
|
|
14
|
-
try {
|
|
15
|
-
obj[key] = JSON.parse(value);
|
|
16
|
-
}
|
|
17
|
-
catch {
|
|
18
|
-
obj[key] = value;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return obj;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* @see https://redis.io/commands/hgetall
|
|
25
|
-
*/
|
|
26
|
-
export class HGetAllCommand extends Command {
|
|
27
|
-
constructor(cmd, opts) {
|
|
28
|
-
super(["hgetall", ...cmd], {
|
|
29
|
-
deserialize: (result) => deserialize(result),
|
|
30
|
-
...opts,
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|