@upstash/ratelimit 0.2.0 → 0.3.0-rc.0

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.
Files changed (423) hide show
  1. package/README.md +14 -0
  2. package/esm/analytics.js +84 -0
  3. package/esm/deps/deno.land/x/base64@v0.2.1/base.js +100 -0
  4. package/esm/deps/deno.land/x/base64@v0.2.1/base64url.js +9 -0
  5. package/esm/deps/deno.land/x/sha1@v1.0.3/deps.js +1 -0
  6. package/esm/deps/deno.land/x/sha1@v1.0.3/mod.js +191 -0
  7. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/mod.js +66 -0
  8. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/append.js +9 -0
  9. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitcount.js +16 -0
  10. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitop.js +9 -0
  11. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitpos.js +9 -0
  12. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/command.js +57 -0
  13. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/dbsize.js +9 -0
  14. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/decr.js +9 -0
  15. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/decrby.js +9 -0
  16. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/del.js +9 -0
  17. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/echo.js +9 -0
  18. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/eval.js +9 -0
  19. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/evalsha.js +9 -0
  20. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/exists.js +9 -0
  21. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/expire.js +9 -0
  22. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/expireat.js +9 -0
  23. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/flushall.js +13 -0
  24. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/flushdb.js +13 -0
  25. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/get.js +9 -0
  26. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getbit.js +9 -0
  27. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getdel.js +9 -0
  28. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getrange.js +9 -0
  29. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getset.js +9 -0
  30. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hdel.js +9 -0
  31. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hexists.js +9 -0
  32. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hget.js +9 -0
  33. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hgetall.js +29 -0
  34. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hincrby.js +9 -0
  35. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hincrbyfloat.js +9 -0
  36. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hkeys.js +9 -0
  37. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hlen.js +9 -0
  38. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hmget.js +35 -0
  39. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hmset.js +13 -0
  40. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hrandfield.js +39 -0
  41. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hscan.js +16 -0
  42. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hset.js +13 -0
  43. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hsetnx.js +9 -0
  44. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hstrlen.js +9 -0
  45. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hvals.js +9 -0
  46. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incr.js +9 -0
  47. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incrby.js +9 -0
  48. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incrbyfloat.js +9 -0
  49. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/keys.js +9 -0
  50. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lindex.js +6 -0
  51. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/linsert.js +6 -0
  52. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/llen.js +9 -0
  53. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lmove.js +9 -0
  54. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpop.js +9 -0
  55. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpos.js +19 -0
  56. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpush.js +9 -0
  57. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpushx.js +9 -0
  58. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lrange.js +6 -0
  59. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lrem.js +6 -0
  60. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lset.js +6 -0
  61. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ltrim.js +6 -0
  62. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mget.js +9 -0
  63. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mod.js +119 -0
  64. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mset.js +12 -0
  65. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/msetnx.js +9 -0
  66. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/persist.js +9 -0
  67. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pexpire.js +9 -0
  68. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pexpireat.js +9 -0
  69. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ping.js +13 -0
  70. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/psetex.js +9 -0
  71. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pttl.js +9 -0
  72. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/publish.js +9 -0
  73. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/randomkey.js +9 -0
  74. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rename.js +9 -0
  75. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/renamenx.js +9 -0
  76. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpop.js +9 -0
  77. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpush.js +9 -0
  78. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpushx.js +9 -0
  79. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sadd.js +9 -0
  80. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/scan.js +19 -0
  81. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/scard.js +9 -0
  82. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_exists.js +12 -0
  83. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_flush.js +16 -0
  84. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_load.js +9 -0
  85. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sdiff.js +9 -0
  86. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sdiffstore.js +9 -0
  87. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/set.js +36 -0
  88. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setbit.js +9 -0
  89. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setex.js +9 -0
  90. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setnx.js +9 -0
  91. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setrange.js +9 -0
  92. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sinter.js +9 -0
  93. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sinterstore.js +9 -0
  94. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sismember.js +9 -0
  95. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smembers.js +9 -0
  96. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smismember.js +9 -0
  97. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smove.js +9 -0
  98. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/spop.js +13 -0
  99. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/srandmember.js +13 -0
  100. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/srem.js +9 -0
  101. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sscan.js +16 -0
  102. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/strlen.js +9 -0
  103. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sunion.js +9 -0
  104. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sunionstore.js +9 -0
  105. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/time.js +9 -0
  106. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/touch.js +9 -0
  107. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ttl.js +9 -0
  108. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/type.js +9 -0
  109. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/unlink.js +9 -0
  110. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zadd.js +26 -0
  111. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zcard.js +9 -0
  112. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zcount.js +9 -0
  113. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zdiffstore.js +9 -0
  114. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zincrby.js +9 -0
  115. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zinterstore.js +27 -0
  116. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zlexcount.js +9 -0
  117. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zmscore.js +10 -0
  118. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zpopmax.js +13 -0
  119. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zpopmin.js +13 -0
  120. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrange.js +26 -0
  121. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrank.js +9 -0
  122. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrem.js +9 -0
  123. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebylex.js +9 -0
  124. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebyrank.js +9 -0
  125. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebyscore.js +9 -0
  126. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrevrank.js +9 -0
  127. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zscan.js +16 -0
  128. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zscore.js +9 -0
  129. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zunionstore.js +27 -0
  130. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/error.js +9 -0
  131. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/http.js +165 -0
  132. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/pipeline.js +1199 -0
  133. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/redis.js +1200 -0
  134. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/script.js +77 -0
  135. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/types.js +1 -0
  136. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/pkg/util.js +31 -0
  137. package/esm/deps/deno.land/x/upstash_redis@v1.19.3/version.js +1 -0
  138. package/esm/deps/denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.js +50 -0
  139. package/esm/multi.js +1 -0
  140. package/esm/ratelimit.js +28 -2
  141. package/esm/single.js +1 -0
  142. package/package.json +1 -1
  143. package/script/analytics.js +88 -0
  144. package/script/deps/deno.land/x/base64@v0.2.1/base.js +104 -0
  145. package/script/deps/deno.land/x/base64@v0.2.1/base64url.js +13 -0
  146. package/script/deps/deno.land/x/sha1@v1.0.3/deps.js +6 -0
  147. package/script/deps/deno.land/x/sha1@v1.0.3/mod.js +196 -0
  148. package/script/deps/deno.land/x/upstash_redis@v1.19.3/mod.js +93 -0
  149. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/append.js +13 -0
  150. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitcount.js +20 -0
  151. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitop.js +13 -0
  152. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitpos.js +13 -0
  153. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/command.js +61 -0
  154. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/dbsize.js +13 -0
  155. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/decr.js +13 -0
  156. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/decrby.js +13 -0
  157. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/del.js +13 -0
  158. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/echo.js +13 -0
  159. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/eval.js +13 -0
  160. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/evalsha.js +13 -0
  161. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/exists.js +13 -0
  162. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/expire.js +13 -0
  163. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/expireat.js +13 -0
  164. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/flushall.js +17 -0
  165. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/flushdb.js +17 -0
  166. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/get.js +13 -0
  167. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getbit.js +13 -0
  168. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getdel.js +13 -0
  169. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getrange.js +13 -0
  170. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getset.js +13 -0
  171. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hdel.js +13 -0
  172. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hexists.js +13 -0
  173. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hget.js +13 -0
  174. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hgetall.js +33 -0
  175. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hincrby.js +13 -0
  176. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hincrbyfloat.js +13 -0
  177. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hkeys.js +13 -0
  178. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hlen.js +13 -0
  179. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hmget.js +39 -0
  180. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hmset.js +17 -0
  181. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hrandfield.js +43 -0
  182. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hscan.js +20 -0
  183. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hset.js +17 -0
  184. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hsetnx.js +13 -0
  185. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hstrlen.js +13 -0
  186. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hvals.js +13 -0
  187. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incr.js +13 -0
  188. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incrby.js +13 -0
  189. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incrbyfloat.js +13 -0
  190. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/keys.js +13 -0
  191. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lindex.js +10 -0
  192. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/linsert.js +10 -0
  193. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/llen.js +13 -0
  194. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lmove.js +13 -0
  195. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpop.js +13 -0
  196. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpos.js +23 -0
  197. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpush.js +13 -0
  198. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpushx.js +13 -0
  199. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lrange.js +10 -0
  200. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lrem.js +10 -0
  201. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lset.js +10 -0
  202. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ltrim.js +10 -0
  203. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mget.js +13 -0
  204. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mod.js +135 -0
  205. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mset.js +16 -0
  206. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/msetnx.js +13 -0
  207. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/persist.js +13 -0
  208. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pexpire.js +13 -0
  209. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pexpireat.js +13 -0
  210. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ping.js +17 -0
  211. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/psetex.js +13 -0
  212. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pttl.js +13 -0
  213. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/publish.js +13 -0
  214. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/randomkey.js +13 -0
  215. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rename.js +13 -0
  216. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/renamenx.js +13 -0
  217. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpop.js +13 -0
  218. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpush.js +13 -0
  219. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpushx.js +13 -0
  220. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sadd.js +13 -0
  221. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/scan.js +23 -0
  222. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/scard.js +13 -0
  223. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_exists.js +16 -0
  224. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_flush.js +20 -0
  225. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_load.js +13 -0
  226. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sdiff.js +13 -0
  227. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sdiffstore.js +13 -0
  228. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/set.js +40 -0
  229. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setbit.js +13 -0
  230. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setex.js +13 -0
  231. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setnx.js +13 -0
  232. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setrange.js +13 -0
  233. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sinter.js +13 -0
  234. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sinterstore.js +13 -0
  235. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sismember.js +13 -0
  236. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smembers.js +13 -0
  237. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smismember.js +13 -0
  238. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smove.js +13 -0
  239. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/spop.js +17 -0
  240. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/srandmember.js +17 -0
  241. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/srem.js +13 -0
  242. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sscan.js +20 -0
  243. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/strlen.js +13 -0
  244. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sunion.js +13 -0
  245. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sunionstore.js +13 -0
  246. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/time.js +13 -0
  247. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/touch.js +13 -0
  248. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ttl.js +13 -0
  249. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/type.js +13 -0
  250. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/unlink.js +13 -0
  251. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zadd.js +30 -0
  252. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zcard.js +13 -0
  253. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zcount.js +13 -0
  254. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zdiffstore.js +13 -0
  255. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zincrby.js +13 -0
  256. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zinterstore.js +31 -0
  257. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zlexcount.js +13 -0
  258. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zmscore.js +14 -0
  259. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zpopmax.js +17 -0
  260. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zpopmin.js +17 -0
  261. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrange.js +30 -0
  262. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrank.js +13 -0
  263. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrem.js +13 -0
  264. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebylex.js +13 -0
  265. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebyrank.js +13 -0
  266. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebyscore.js +13 -0
  267. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrevrank.js +13 -0
  268. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zscan.js +20 -0
  269. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zscore.js +13 -0
  270. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zunionstore.js +31 -0
  271. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/error.js +13 -0
  272. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/http.js +169 -0
  273. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/pipeline.js +1203 -0
  274. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/redis.js +1204 -0
  275. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/script.js +81 -0
  276. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/types.js +2 -0
  277. package/script/deps/deno.land/x/upstash_redis@v1.19.3/pkg/util.js +35 -0
  278. package/script/deps/deno.land/x/upstash_redis@v1.19.3/version.js +4 -0
  279. package/script/deps/denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.js +55 -0
  280. package/script/multi.js +1 -0
  281. package/script/ratelimit.js +28 -2
  282. package/script/single.js +1 -0
  283. package/types/analytics.d.ts +36 -0
  284. package/types/deps/deno.land/x/base64@v0.2.1/base.d.ts +5 -0
  285. package/types/deps/deno.land/x/base64@v0.2.1/base64url.d.ts +1 -0
  286. package/types/deps/deno.land/x/sha1@v1.0.3/deps.d.ts +1 -0
  287. package/types/deps/deno.land/x/sha1@v1.0.3/mod.d.ts +26 -0
  288. package/types/deps/deno.land/x/upstash_redis@v1.19.3/mod.d.ts +41 -0
  289. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/append.d.ts +7 -0
  290. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitcount.d.ts +8 -0
  291. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitop.d.ts +12 -0
  292. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/bitpos.d.ts +7 -0
  293. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/command.d.ts +37 -0
  294. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/dbsize.d.ts +7 -0
  295. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/decr.d.ts +7 -0
  296. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/decrby.d.ts +7 -0
  297. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/del.d.ts +7 -0
  298. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/echo.d.ts +7 -0
  299. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/eval.d.ts +7 -0
  300. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/evalsha.d.ts +7 -0
  301. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/exists.d.ts +7 -0
  302. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/expire.d.ts +7 -0
  303. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/expireat.d.ts +7 -0
  304. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/flushall.d.ts +9 -0
  305. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/flushdb.d.ts +9 -0
  306. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/get.d.ts +7 -0
  307. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getbit.d.ts +7 -0
  308. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getdel.d.ts +7 -0
  309. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getrange.d.ts +7 -0
  310. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/getset.d.ts +7 -0
  311. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hdel.d.ts +7 -0
  312. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hexists.d.ts +7 -0
  313. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hget.d.ts +7 -0
  314. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hgetall.d.ts +7 -0
  315. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hincrby.d.ts +7 -0
  316. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hincrbyfloat.d.ts +7 -0
  317. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hkeys.d.ts +7 -0
  318. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hlen.d.ts +7 -0
  319. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hmget.d.ts +15 -0
  320. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hmset.d.ts +9 -0
  321. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hrandfield.d.ts +9 -0
  322. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hscan.d.ts +24 -0
  323. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hset.d.ts +9 -0
  324. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hsetnx.d.ts +7 -0
  325. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hstrlen.d.ts +7 -0
  326. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/hvals.d.ts +7 -0
  327. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incr.d.ts +7 -0
  328. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incrby.d.ts +7 -0
  329. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/incrbyfloat.d.ts +7 -0
  330. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/keys.d.ts +7 -0
  331. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lindex.d.ts +4 -0
  332. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/linsert.d.ts +9 -0
  333. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/llen.d.ts +7 -0
  334. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lmove.d.ts +12 -0
  335. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpop.d.ts +7 -0
  336. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpos.d.ts +15 -0
  337. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpush.d.ts +7 -0
  338. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lpushx.d.ts +7 -0
  339. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lrange.d.ts +4 -0
  340. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lrem.d.ts +4 -0
  341. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/lset.d.ts +4 -0
  342. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ltrim.d.ts +4 -0
  343. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mget.d.ts +7 -0
  344. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mod.d.ts +119 -0
  345. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/mset.d.ts +9 -0
  346. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/msetnx.d.ts +9 -0
  347. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/persist.d.ts +7 -0
  348. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pexpire.d.ts +7 -0
  349. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pexpireat.d.ts +7 -0
  350. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ping.d.ts +7 -0
  351. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/psetex.d.ts +7 -0
  352. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/pttl.d.ts +7 -0
  353. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/publish.d.ts +7 -0
  354. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/randomkey.d.ts +7 -0
  355. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rename.d.ts +7 -0
  356. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/renamenx.d.ts +7 -0
  357. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpop.d.ts +7 -0
  358. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpush.d.ts +7 -0
  359. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/rpushx.d.ts +7 -0
  360. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sadd.d.ts +7 -0
  361. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/scan.d.ts +18 -0
  362. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/scard.d.ts +7 -0
  363. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_exists.d.ts +7 -0
  364. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_flush.d.ts +14 -0
  365. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/script_load.d.ts +7 -0
  366. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sdiff.d.ts +7 -0
  367. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sdiffstore.d.ts +7 -0
  368. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/set.d.ts +55 -0
  369. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setbit.d.ts +7 -0
  370. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setex.d.ts +7 -0
  371. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setnx.d.ts +7 -0
  372. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/setrange.d.ts +7 -0
  373. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sinter.d.ts +7 -0
  374. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sinterstore.d.ts +7 -0
  375. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sismember.d.ts +7 -0
  376. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smembers.d.ts +7 -0
  377. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smismember.d.ts +7 -0
  378. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/smove.d.ts +7 -0
  379. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/spop.d.ts +7 -0
  380. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/srandmember.d.ts +7 -0
  381. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/srem.d.ts +7 -0
  382. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sscan.d.ts +24 -0
  383. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/strlen.d.ts +7 -0
  384. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sunion.d.ts +7 -0
  385. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/sunionstore.d.ts +7 -0
  386. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/time.d.ts +7 -0
  387. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/touch.d.ts +7 -0
  388. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/ttl.d.ts +7 -0
  389. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/type.d.ts +8 -0
  390. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/unlink.d.ts +7 -0
  391. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zadd.d.ts +35 -0
  392. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zcard.d.ts +7 -0
  393. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zcount.d.ts +7 -0
  394. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zdiffstore.d.ts +7 -0
  395. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zincrby.d.ts +7 -0
  396. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zinterstore.d.ts +30 -0
  397. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zlexcount.d.ts +7 -0
  398. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zmscore.d.ts +7 -0
  399. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zpopmax.d.ts +7 -0
  400. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zpopmin.d.ts +7 -0
  401. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrange.d.ts +42 -0
  402. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrank.d.ts +7 -0
  403. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrem.d.ts +7 -0
  404. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebylex.d.ts +7 -0
  405. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebyrank.d.ts +7 -0
  406. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zremrangebyscore.d.ts +7 -0
  407. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zrevrank.d.ts +7 -0
  408. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zscan.d.ts +24 -0
  409. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zscore.d.ts +7 -0
  410. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/commands/zunionstore.d.ts +30 -0
  411. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/error.d.ts +6 -0
  412. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/http.d.ts +87 -0
  413. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/pipeline.d.ts +577 -0
  414. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/redis.d.ts +575 -0
  415. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/script.d.ts +42 -0
  416. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/types.d.ts +18 -0
  417. package/types/deps/deno.land/x/upstash_redis@v1.19.3/pkg/util.d.ts +1 -0
  418. package/types/deps/deno.land/x/upstash_redis@v1.19.3/version.d.ts +1 -0
  419. package/types/deps/denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.d.ts +3 -0
  420. package/types/multi.d.ts +8 -1
  421. package/types/ratelimit.d.ts +12 -1
  422. package/types/single.d.ts +8 -1
  423. package/types/types.d.ts +1 -4
@@ -0,0 +1,77 @@
1
+ import { sha1 as digest } from "../../sha1@v1.0.3/mod.js";
2
+ /**
3
+ * Creates a new script.
4
+ *
5
+ * Scripts offer the ability to optimistically try to execute a script without having to send the
6
+ * entire script to the server. If the script is loaded on the server, it tries again by sending
7
+ * the entire script. Afterwards, the script is cached on the server.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const redis = new Redis({...})
12
+ *
13
+ * const script = redis.createScript<string>("return ARGV[1];")
14
+ * const arg1 = await script.eval([], ["Hello World"])
15
+ * assertEquals(arg1, "Hello World")
16
+ * ```
17
+ */
18
+ export class Script {
19
+ constructor(redis, script) {
20
+ Object.defineProperty(this, "script", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: void 0
25
+ });
26
+ Object.defineProperty(this, "sha1", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: void 0
31
+ });
32
+ Object.defineProperty(this, "redis", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: void 0
37
+ });
38
+ this.redis = redis;
39
+ this.sha1 = this.digest(script);
40
+ this.script = script;
41
+ }
42
+ /**
43
+ * Send an `EVAL` command to redis.
44
+ */
45
+ async eval(keys, args) {
46
+ return await this.redis.eval(this.script, keys, args);
47
+ }
48
+ /**
49
+ * Calculates the sha1 hash of the script and then calls `EVALSHA`.
50
+ */
51
+ async evalsha(keys, args) {
52
+ return await this.redis.evalsha(this.sha1, keys, args);
53
+ }
54
+ /**
55
+ * Optimistically try to run `EVALSHA` first.
56
+ * If the script is not loaded in redis, it will fall back and try again with `EVAL`.
57
+ *
58
+ * Following calls will be able to use the cached script
59
+ */
60
+ async exec(keys, args) {
61
+ const res = await this.redis.evalsha(this.sha1, keys, args).catch(async (err) => {
62
+ if (err instanceof Error &&
63
+ err.message.toLowerCase().includes("noscript")) {
64
+ return await this.redis.eval(this.script, keys, args);
65
+ }
66
+ throw err;
67
+ });
68
+ return res;
69
+ }
70
+ /**
71
+ * Compute the sha1 hash of the script and return its hex representation.
72
+ */
73
+ digest(s) {
74
+ const hash = digest(s, "utf8", "hex");
75
+ return typeof hash === "string" ? hash : new TextDecoder().decode(hash);
76
+ }
77
+ }
@@ -0,0 +1,31 @@
1
+ function parseRecursive(obj) {
2
+ const parsed = Array.isArray(obj)
3
+ ? obj.map((o) => {
4
+ try {
5
+ return parseRecursive(o);
6
+ }
7
+ catch {
8
+ return o;
9
+ }
10
+ })
11
+ : JSON.parse(obj);
12
+ /**
13
+ * Parsing very large numbers can result in MAX_SAFE_INTEGER
14
+ * overflow. In that case we return the number as string instead.
15
+ */
16
+ if (typeof parsed === "number" && parsed.toString() != obj) {
17
+ return obj;
18
+ }
19
+ return parsed;
20
+ }
21
+ export function parseResponse(result) {
22
+ try {
23
+ /**
24
+ * Try to parse the response if possible
25
+ */
26
+ return parseRecursive(result);
27
+ }
28
+ catch {
29
+ return result;
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ export const VERSION = "development";
@@ -0,0 +1,50 @@
1
+ import { toUint8Array, fromUint8Array } from "../../../deno.land/x/base64@v0.2.1/base64url.js";
2
+ const decoder = new TextDecoder();
3
+ const encoder = new TextEncoder();
4
+ /** Serializes a Uint8Array to a hexadecimal string. */
5
+ function toHexString(buf) {
6
+ return buf.reduce((hex, byte) => `${hex}${byte < 16 ? "0" : ""}${byte.toString(16)}`, "");
7
+ }
8
+ /** Deserializes a Uint8Array from a hexadecimal string. */
9
+ function fromHexString(hex) {
10
+ const len = hex.length;
11
+ if (len % 2 || !/^[0-9a-fA-F]+$/.test(hex)) {
12
+ throw new TypeError("Invalid hex string.");
13
+ }
14
+ hex = hex.toLowerCase();
15
+ const buf = new Uint8Array(Math.floor(len / 2));
16
+ const end = len / 2;
17
+ for (let i = 0; i < end; ++i) {
18
+ buf[i] = parseInt(hex.substr(i * 2, 2), 16);
19
+ }
20
+ return buf;
21
+ }
22
+ /** Decodes a Uint8Array to utf8-, base64-, or hex-encoded string. */
23
+ export function decode(buf, encoding = "utf8") {
24
+ if (/^utf-?8$/i.test(encoding)) {
25
+ return decoder.decode(buf);
26
+ }
27
+ else if (/^base64$/i.test(encoding)) {
28
+ return fromUint8Array(buf);
29
+ }
30
+ else if (/^hex(?:adecimal)?$/i.test(encoding)) {
31
+ return toHexString(buf);
32
+ }
33
+ else {
34
+ throw new TypeError("Unsupported string encoding.");
35
+ }
36
+ }
37
+ export function encode(str, encoding = "utf8") {
38
+ if (/^utf-?8$/i.test(encoding)) {
39
+ return encoder.encode(str);
40
+ }
41
+ else if (/^base64$/i.test(encoding)) {
42
+ return toUint8Array(str);
43
+ }
44
+ else if (/^hex(?:adecimal)?$/i.test(encoding)) {
45
+ return fromHexString(str);
46
+ }
47
+ else {
48
+ throw new TypeError("Unsupported string encoding.");
49
+ }
50
+ }
package/esm/multi.js CHANGED
@@ -26,6 +26,7 @@ export class MultiRegionRatelimit extends Ratelimit {
26
26
  prefix: config.prefix,
27
27
  limiter: config.limiter,
28
28
  timeout: config.timeout,
29
+ analytics: config.analytics,
29
30
  ctx: {
30
31
  redis: config.redis,
31
32
  cache: config.ephemeralCache
package/esm/ratelimit.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { Analytics } from "./analytics.js";
1
2
  import { Cache } from "./cache.js";
2
3
  export class TimeoutError extends Error {
3
4
  constructor() {
@@ -46,6 +47,12 @@ export class Ratelimit {
46
47
  writable: true,
47
48
  value: void 0
48
49
  });
50
+ Object.defineProperty(this, "analytics", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: void 0
55
+ });
49
56
  /**
50
57
  * Determine if a request should pass or be rejected based on the identifier and previously chosen ratelimit.
51
58
  *
@@ -69,7 +76,7 @@ export class Ratelimit {
69
76
  enumerable: true,
70
77
  configurable: true,
71
78
  writable: true,
72
- value: async (identifier) => {
79
+ value: async (identifier, req) => {
73
80
  const key = [this.prefix, identifier].join(":");
74
81
  let timeoutId = null;
75
82
  try {
@@ -87,7 +94,18 @@ export class Ratelimit {
87
94
  }, this.timeout);
88
95
  }));
89
96
  }
90
- return await Promise.race(arr);
97
+ const res = await Promise.race(arr);
98
+ if (this.analytics) {
99
+ const geo = req ? this.analytics.extractGeo(req) : undefined;
100
+ const analyticsP = this.analytics.record({
101
+ identifier,
102
+ time: Date.now(),
103
+ success: res.success,
104
+ ...geo,
105
+ });
106
+ res.pending = Promise.all([res.pending, analyticsP]);
107
+ }
108
+ return res;
91
109
  }
92
110
  finally {
93
111
  if (timeoutId) {
@@ -161,6 +179,14 @@ export class Ratelimit {
161
179
  this.limiter = config.limiter;
162
180
  this.timeout = config.timeout;
163
181
  this.prefix = config.prefix ?? "@upstash/ratelimit";
182
+ this.analytics = config.analytics !== false
183
+ ? new Analytics({
184
+ redis: Array.isArray(this.ctx.redis)
185
+ ? this.ctx.redis[0]
186
+ : this.ctx.redis,
187
+ prefix: this.prefix,
188
+ })
189
+ : undefined;
164
190
  if (config.ephemeralCache instanceof Map) {
165
191
  this.ctx.cache = new Cache(config.ephemeralCache);
166
192
  }
package/esm/single.js CHANGED
@@ -24,6 +24,7 @@ export class RegionRatelimit extends Ratelimit {
24
24
  prefix: config.prefix,
25
25
  limiter: config.limiter,
26
26
  timeout: config.timeout,
27
+ analytics: config.analytics,
27
28
  ctx: {
28
29
  redis: config.redis,
29
30
  },
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "main": "./script/mod.js",
4
4
  "types": "./types/mod.d.ts",
5
5
  "name": "@upstash/ratelimit",
6
- "version": "v0.2.0",
6
+ "version": "v0.3.0-rc.0",
7
7
  "description": "A serverless ratelimiter built on top of Upstash REST API.",
8
8
  "repository": {
9
9
  "type": "git",
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Analytics = void 0;
4
+ class Analytics {
5
+ constructor(config) {
6
+ Object.defineProperty(this, "redis", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ Object.defineProperty(this, "prefix", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: void 0
17
+ });
18
+ this.redis = config.redis;
19
+ this.prefix = config.prefix ?? "@upstash/ratelimit";
20
+ }
21
+ extractGeo(req) {
22
+ if (typeof req.geo !== "undefined") {
23
+ return req.geo;
24
+ }
25
+ return {};
26
+ }
27
+ async record(event) {
28
+ // Bucket is a unix timestamp in milliseconds marking the beginning of a day
29
+ const bucket = (new Date().setUTCHours(0, 0, 0, 0)).toFixed(0);
30
+ const key = [this.prefix, "events", bucket].join(":");
31
+ await this.redis.hincrby(key, JSON.stringify({
32
+ ...event,
33
+ time: undefined,
34
+ }), 1);
35
+ }
36
+ /**
37
+ * Aggregates the events by the given field and returns the number of successes and failures per value
38
+ *
39
+ * @param aggregateBy - The field to aggregate by
40
+ * @param cutoff - Timestamp in milliseconds to limit the aggregation to `cutoff` until now
41
+ * @returns
42
+ */
43
+ async aggregate(aggregateBy, cutoff = 0) {
44
+ const keys = [];
45
+ let cursor = 0;
46
+ do {
47
+ const [nextCursor, found] = await this.redis.scan(cursor, { match: [this.prefix, "events", "*"].join(":"), count: 1000 });
48
+ cursor = nextCursor;
49
+ for (const key of found) {
50
+ const timestamp = parseInt(key.split(":").pop());
51
+ // Take all the keys that at least overlap with the given timestamp
52
+ if (timestamp >= cutoff) {
53
+ keys.push(key);
54
+ }
55
+ }
56
+ } while (cursor !== 0);
57
+ const days = await Promise.all(keys.sort().map(async (key) => {
58
+ const fields = await this.redis.hgetall(key);
59
+ if (!fields) {
60
+ return {};
61
+ }
62
+ const day = {};
63
+ for (const [field, count] of Object.entries(fields)) {
64
+ const r = JSON.parse(field);
65
+ for (const [k, v] of Object.entries(r)) {
66
+ if (k !== aggregateBy) {
67
+ continue;
68
+ }
69
+ if (!day[v]) {
70
+ day[v] = {
71
+ success: 0,
72
+ blocked: 0,
73
+ };
74
+ }
75
+ if (r.success) {
76
+ day[v].success += count;
77
+ }
78
+ else {
79
+ day[v].blocked += count;
80
+ }
81
+ }
82
+ }
83
+ return day;
84
+ }));
85
+ return days;
86
+ }
87
+ }
88
+ exports.Analytics = Analytics;
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = void 0;
4
+ function getLengths(b64) {
5
+ const len = b64.length;
6
+ // if (len % 4 > 0) {
7
+ // throw new TypeError("Invalid string. Length must be a multiple of 4");
8
+ // }
9
+ // Trim off extra bytes after placeholder bytes are found
10
+ // See: https://github.com/beatgammit/base64-js/issues/42
11
+ let validLen = b64.indexOf("=");
12
+ if (validLen === -1) {
13
+ validLen = len;
14
+ }
15
+ const placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4);
16
+ return [validLen, placeHoldersLen];
17
+ }
18
+ function init(lookup, revLookup, urlsafe = false) {
19
+ function _byteLength(validLen, placeHoldersLen) {
20
+ return Math.floor(((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen);
21
+ }
22
+ function tripletToBase64(num) {
23
+ return (lookup[(num >> 18) & 0x3f] +
24
+ lookup[(num >> 12) & 0x3f] +
25
+ lookup[(num >> 6) & 0x3f] +
26
+ lookup[num & 0x3f]);
27
+ }
28
+ function encodeChunk(buf, start, end) {
29
+ const out = new Array((end - start) / 3);
30
+ for (let i = start, curTriplet = 0; i < end; i += 3) {
31
+ out[curTriplet++] = tripletToBase64((buf[i] << 16) + (buf[i + 1] << 8) + buf[i + 2]);
32
+ }
33
+ return out.join("");
34
+ }
35
+ return {
36
+ // base64 is 4/3 + up to two characters of the original data
37
+ byteLength(b64) {
38
+ return _byteLength.apply(null, getLengths(b64));
39
+ },
40
+ toUint8Array(b64) {
41
+ const [validLen, placeHoldersLen] = getLengths(b64);
42
+ const buf = new Uint8Array(_byteLength(validLen, placeHoldersLen));
43
+ // If there are placeholders, only get up to the last complete 4 chars
44
+ const len = placeHoldersLen ? validLen - 4 : validLen;
45
+ let tmp;
46
+ let curByte = 0;
47
+ let i;
48
+ for (i = 0; i < len; i += 4) {
49
+ tmp = (revLookup[b64.charCodeAt(i)] << 18) |
50
+ (revLookup[b64.charCodeAt(i + 1)] << 12) |
51
+ (revLookup[b64.charCodeAt(i + 2)] << 6) |
52
+ revLookup[b64.charCodeAt(i + 3)];
53
+ buf[curByte++] = (tmp >> 16) & 0xff;
54
+ buf[curByte++] = (tmp >> 8) & 0xff;
55
+ buf[curByte++] = tmp & 0xff;
56
+ }
57
+ if (placeHoldersLen === 2) {
58
+ tmp = (revLookup[b64.charCodeAt(i)] << 2) |
59
+ (revLookup[b64.charCodeAt(i + 1)] >> 4);
60
+ buf[curByte++] = tmp & 0xff;
61
+ }
62
+ else if (placeHoldersLen === 1) {
63
+ tmp = (revLookup[b64.charCodeAt(i)] << 10) |
64
+ (revLookup[b64.charCodeAt(i + 1)] << 4) |
65
+ (revLookup[b64.charCodeAt(i + 2)] >> 2);
66
+ buf[curByte++] = (tmp >> 8) & 0xff;
67
+ buf[curByte++] = tmp & 0xff;
68
+ }
69
+ return buf;
70
+ },
71
+ fromUint8Array(buf) {
72
+ const maxChunkLength = 16383; // Must be multiple of 3
73
+ const len = buf.length;
74
+ const extraBytes = len % 3; // If we have 1 byte left, pad 2 bytes
75
+ const len2 = len - extraBytes;
76
+ const parts = new Array(Math.ceil(len2 / maxChunkLength) + (extraBytes ? 1 : 0));
77
+ let curChunk = 0;
78
+ let chunkEnd;
79
+ // Go through the array every three bytes, we'll deal with trailing stuff later
80
+ for (let i = 0; i < len2; i += maxChunkLength) {
81
+ chunkEnd = i + maxChunkLength;
82
+ parts[curChunk++] = encodeChunk(buf, i, chunkEnd > len2 ? len2 : chunkEnd);
83
+ }
84
+ let tmp;
85
+ // Pad the end with zeros, but make sure to not forget the extra bytes
86
+ if (extraBytes === 1) {
87
+ tmp = buf[len2];
88
+ parts[curChunk] = lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f];
89
+ if (!urlsafe)
90
+ parts[curChunk] += "==";
91
+ }
92
+ else if (extraBytes === 2) {
93
+ tmp = (buf[len2] << 8) | (buf[len2 + 1] & 0xff);
94
+ parts[curChunk] = lookup[tmp >> 10] +
95
+ lookup[(tmp >> 4) & 0x3f] +
96
+ lookup[(tmp << 2) & 0x3f];
97
+ if (!urlsafe)
98
+ parts[curChunk] += "=";
99
+ }
100
+ return parts.join("");
101
+ },
102
+ };
103
+ }
104
+ exports.init = init;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.fromUint8Array = exports.toUint8Array = exports.byteLength = void 0;
5
+ const base_js_1 = require("./base.js");
6
+ const lookup = [];
7
+ const revLookup = [];
8
+ const code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
9
+ for (let i = 0, l = code.length; i < l; ++i) {
10
+ lookup[i] = code[i];
11
+ revLookup[code.charCodeAt(i)] = i;
12
+ }
13
+ _a = (0, base_js_1.init)(lookup, revLookup, true), exports.byteLength = _a.byteLength, exports.toUint8Array = _a.toUint8Array, exports.fromUint8Array = _a.fromUint8Array;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decode = exports.encode = void 0;
4
+ var mod_js_1 = require("../../../denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.js");
5
+ Object.defineProperty(exports, "encode", { enumerable: true, get: function () { return mod_js_1.encode; } });
6
+ Object.defineProperty(exports, "decode", { enumerable: true, get: function () { return mod_js_1.decode; } });
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sha1 = exports.SHA1 = exports.BYTES = void 0;
4
+ const deps_js_1 = require("./deps.js");
5
+ function rotl(x, n) {
6
+ return (x << n) | (x >>> (32 - n));
7
+ }
8
+ /** Byte length of a SHA1 digest. */
9
+ exports.BYTES = 20;
10
+ /** A class representation of the SHA1 algorithm. */
11
+ class SHA1 {
12
+ /** Creates a SHA1 instance. */
13
+ constructor() {
14
+ Object.defineProperty(this, "hashSize", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: exports.BYTES
19
+ });
20
+ Object.defineProperty(this, "_buf", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: new Uint8Array(64)
25
+ });
26
+ Object.defineProperty(this, "_bufIdx", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: void 0
31
+ });
32
+ Object.defineProperty(this, "_count", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: void 0
37
+ });
38
+ Object.defineProperty(this, "_K", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: new Uint32Array([0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6])
43
+ });
44
+ Object.defineProperty(this, "_H", {
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true,
48
+ value: void 0
49
+ });
50
+ Object.defineProperty(this, "_finalized", {
51
+ enumerable: true,
52
+ configurable: true,
53
+ writable: true,
54
+ value: void 0
55
+ });
56
+ this.init();
57
+ }
58
+ /** Reduces the four input numbers to a single one. */
59
+ static F(t, b, c, d) {
60
+ if (t <= 19) {
61
+ return (b & c) | (~b & d);
62
+ }
63
+ else if (t <= 39) {
64
+ return b ^ c ^ d;
65
+ }
66
+ else if (t <= 59) {
67
+ return (b & c) | (b & d) | (c & d);
68
+ }
69
+ else {
70
+ return b ^ c ^ d;
71
+ }
72
+ }
73
+ /** Initializes a hash instance. */
74
+ init() {
75
+ // prettier-ignore
76
+ this._H = new Uint32Array([
77
+ 0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0
78
+ ]);
79
+ this._bufIdx = 0;
80
+ this._count = new Uint32Array(2);
81
+ this._buf.fill(0);
82
+ this._finalized = false;
83
+ return this;
84
+ }
85
+ /** Updates a hash with additional message data. */
86
+ update(msg, inputEncoding) {
87
+ if (msg === null) {
88
+ throw new TypeError("msg must be a string or Uint8Array.");
89
+ }
90
+ else if (typeof msg === "string") {
91
+ msg = (0, deps_js_1.encode)(msg, inputEncoding);
92
+ }
93
+ // process the msg as many times as possible, the rest is stored in the buffer
94
+ // message is processed in 512 bit (64 byte chunks)
95
+ for (let i = 0; i < msg.length; i++) {
96
+ this._buf[this._bufIdx++] = msg[i];
97
+ if (this._bufIdx === 64) {
98
+ this.transform();
99
+ this._bufIdx = 0;
100
+ }
101
+ }
102
+ // counter update (number of message bits)
103
+ const c = this._count;
104
+ if ((c[0] += msg.length << 3) < msg.length << 3) {
105
+ c[1]++;
106
+ }
107
+ c[1] += msg.length >>> 29;
108
+ return this;
109
+ }
110
+ /** Finalizes a hash with additional message data. */
111
+ digest(outputEncoding) {
112
+ if (this._finalized) {
113
+ throw new Error("digest has already been called.");
114
+ }
115
+ this._finalized = true;
116
+ // append '1'
117
+ const b = this._buf;
118
+ let idx = this._bufIdx;
119
+ b[idx++] = 0x80;
120
+ // zeropad up to byte pos 56
121
+ while (idx !== 56) {
122
+ if (idx === 64) {
123
+ this.transform();
124
+ idx = 0;
125
+ }
126
+ b[idx++] = 0;
127
+ }
128
+ // append length in bits
129
+ const c = this._count;
130
+ b[56] = (c[1] >>> 24) & 0xff;
131
+ b[57] = (c[1] >>> 16) & 0xff;
132
+ b[58] = (c[1] >>> 8) & 0xff;
133
+ b[59] = (c[1] >>> 0) & 0xff;
134
+ b[60] = (c[0] >>> 24) & 0xff;
135
+ b[61] = (c[0] >>> 16) & 0xff;
136
+ b[62] = (c[0] >>> 8) & 0xff;
137
+ b[63] = (c[0] >>> 0) & 0xff;
138
+ this.transform();
139
+ // return the hash as byte array (20 bytes)
140
+ const hash = new Uint8Array(exports.BYTES);
141
+ for (let i = 0; i < 5; i++) {
142
+ hash[(i << 2) + 0] = (this._H[i] >>> 24) & 0xff;
143
+ hash[(i << 2) + 1] = (this._H[i] >>> 16) & 0xff;
144
+ hash[(i << 2) + 2] = (this._H[i] >>> 8) & 0xff;
145
+ hash[(i << 2) + 3] = (this._H[i] >>> 0) & 0xff;
146
+ }
147
+ // clear internal states and prepare for new hash
148
+ this.init();
149
+ return outputEncoding ? (0, deps_js_1.decode)(hash, outputEncoding) : hash;
150
+ }
151
+ /** Performs one transformation cycle. */
152
+ transform() {
153
+ const h = this._H;
154
+ let a = h[0];
155
+ let b = h[1];
156
+ let c = h[2];
157
+ let d = h[3];
158
+ let e = h[4];
159
+ // convert byte buffer to words
160
+ const w = new Uint32Array(80);
161
+ for (let i = 0; i < 16; i++) {
162
+ w[i] =
163
+ this._buf[(i << 2) + 3] |
164
+ (this._buf[(i << 2) + 2] << 8) |
165
+ (this._buf[(i << 2) + 1] << 16) |
166
+ (this._buf[i << 2] << 24);
167
+ }
168
+ for (let t = 0; t < 80; t++) {
169
+ if (t >= 16) {
170
+ w[t] = rotl(w[t - 3] ^ w[t - 8] ^ w[t - 14] ^ w[t - 16], 1);
171
+ }
172
+ const tmp = (rotl(a, 5) +
173
+ SHA1.F(t, b, c, d) +
174
+ e +
175
+ w[t] +
176
+ this._K[Math.floor(t / 20)]) |
177
+ 0;
178
+ e = d;
179
+ d = c;
180
+ c = rotl(b, 30);
181
+ b = a;
182
+ a = tmp;
183
+ }
184
+ h[0] = (h[0] + a) | 0;
185
+ h[1] = (h[1] + b) | 0;
186
+ h[2] = (h[2] + c) | 0;
187
+ h[3] = (h[3] + d) | 0;
188
+ h[4] = (h[4] + e) | 0;
189
+ }
190
+ }
191
+ exports.SHA1 = SHA1;
192
+ /** Generates a SHA1 hash of the input data. */
193
+ function sha1(msg, inputEncoding, outputEncoding) {
194
+ return new SHA1().update(msg, inputEncoding).digest(outputEncoding);
195
+ }
196
+ exports.sha1 = sha1;