@upstash/redis 0.0.0-ci.f5cad9e7bda3d77569d9df207b4e1565f75d6154 → 0.0.0-ci.f6da5d747c9564bc95fccdbfe16a9aa10cd30367-20251125191507

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/nodejs.mjs CHANGED
@@ -1 +1,117 @@
1
- var c=class extends Error{constructor(n){super(n),this.name="UpstashError"}};var ee=class{baseUrl;headers;options;retry;constructor(n){this.options={backend:n.options?.backend,agent:n.agent,responseEncoding:n.responseEncoding??"base64",cache:n.cache},this.baseUrl=n.baseUrl.replace(/\/$/,""),this.headers={"Content-Type":"application/json",...n.headers},this.options.responseEncoding==="base64"&&(this.headers["Upstash-Encoding"]="base64"),typeof n?.retry=="boolean"&&n?.retry===!1?this.retry={attempts:1,backoff:()=>0}:this.retry={attempts:n?.retry?.retries??5,backoff:n?.retry?.backoff??(t=>Math.exp(t)*50)}}mergeTelemetry(n){function t(o,m,r){return r&&(o[m]?o[m]=[o[m],r].join(","):o[m]=r),o}this.headers=t(this.headers,"Upstash-Telemetry-Runtime",n.runtime),this.headers=t(this.headers,"Upstash-Telemetry-Platform",n.platform),this.headers=t(this.headers,"Upstash-Telemetry-Sdk",n.sdk)}async request(n){let t={cache:this.options.cache,method:"POST",headers:this.headers,body:JSON.stringify(n.body),keepalive:!0,agent:this.options?.agent,backend:this.options?.backend},o=null,m=null;for(let a=0;a<=this.retry.attempts;a++)try{o=await fetch([this.baseUrl,...n.path??[]].join("/"),t);break}catch(i){m=i,await new Promise(p=>setTimeout(p,this.retry.backoff(a)))}if(!o)throw m??new Error("Exhausted all retries");let r=await o.json();if(!o.ok)throw new c(`${r.error}, command was: ${JSON.stringify(n.body)}`);return this.options?.responseEncoding==="base64"?Array.isArray(r)?r.map(({result:i,error:p})=>({result:ae(i),error:p})):{result:ae(r.result),error:r.error}:r}};function pe(s){let n="";try{let t=atob(s),o=t.length,m=new Uint8Array(o);for(let r=0;r<o;r++)m[r]=t.charCodeAt(r);n=new TextDecoder().decode(m)}catch{n=s}return n}function ae(s){let n;switch(typeof s){case"undefined":return s;case"number":{n=s;break}case"object":{Array.isArray(s)?n=s.map(t=>typeof t=="string"?pe(t):Array.isArray(t)?t.map(ae):t):n=null;break}case"string":{n=s==="OK"?"OK":pe(s);break}default:break}return n}function de(s){let n=Array.isArray(s)?s.map(t=>{try{return de(t)}catch{return t}}):JSON.parse(s);return typeof n=="number"&&n.toString()!==s?s:n}function ce(s){try{return de(s)}catch{return s}}var le=s=>{switch(typeof s){case"string":case"number":case"boolean":return s;default:return JSON.stringify(s)}},e=class{command;serialize;deserialize;constructor(n,t){this.serialize=le,this.deserialize=typeof t?.automaticDeserialization>"u"||t.automaticDeserialization?t?.deserialize??ce:o=>o,this.command=n.map(o=>this.serialize(o))}async exec(n){let{result:t,error:o}=await n.request({body:this.command});if(o)throw new c(o);if(typeof t>"u")throw new Error("Request did not return a result");return this.deserialize(t)}};var l=class extends e{constructor(n,t){super(["append",...n],t)}};var C=class extends e{constructor([n,t,o],m){let r=["bitcount",n];typeof t=="number"&&r.push(t),typeof o=="number"&&r.push(o),super(r,m)}};var g=class extends e{constructor(n,t){super(["bitop",...n],t)}};var x=class extends e{constructor(n,t){super(["bitpos",...n],t)}};var f=class extends e{constructor(n){super(["dbsize"],n)}};var y=class extends e{constructor(n,t){super(["decr",...n],t)}};var b=class extends e{constructor(n,t){super(["decrby",...n],t)}};var T=class extends e{constructor(n,t){super(["del",...n],t)}};var O=class extends e{constructor(n,t){super(["echo",...n],t)}};var w=class extends e{constructor([n,t,o],m){super(["eval",n,t.length,...t,...o??[]],m)}};var D=class extends e{constructor([n,t,o],m){super(["evalsha",n,t.length,...t,...o??[]],m)}};var k=class extends e{constructor(n,t){super(["exists",...n],t)}};var A=class extends e{constructor(n,t){super(["expire",...n],t)}};var S=class extends e{constructor(n,t){super(["expireat",...n],t)}};var R=class extends e{constructor(n,t){let o=["flushall"];n&&n.length>0&&n[0].async&&o.push("async"),super(o,t)}};var v=class extends e{constructor([n],t){let o=["flushdb"];n?.async&&o.push("async"),super(o,t)}};var M=class extends e{constructor([n,t,...o],m){let r=["geoadd",n];"nx"in t&&t.nx?r.push("nx"):"xx"in t&&t.xx&&r.push("xx"),"ch"in t&&t.ch&&r.push("ch"),"latitude"in t&&t.latitude&&r.push(t.longitude,t.latitude,t.member),r.push(...o.flatMap(({latitude:a,longitude:i,member:p})=>[i,a,p])),super(r,m)}};var E=class extends e{constructor([n,t,o,m="M"],r){super(["GEODIST",n,t,o,m],r)}};var z=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super(["GEOPOS",o,...m],{deserialize:r=>Ce(r),...t})}};function Ce(s){let n=[];for(let t of s)!t?.[0]||!t?.[1]||n.push({lng:parseFloat(t[0]),lat:parseFloat(t[1])});return n}var J=class extends e{constructor(n,t){let[o]=n,m=Array.isArray(n[1])?n[1]:n.slice(1);super(["GEOHASH",o,...m],t)}};var L=class extends e{constructor([n,t,o,m,r],a){let i=["GEOSEARCH",n];(t.type==="FROMMEMBER"||t.type==="frommember")&&i.push(t.type,t.member),(t.type==="FROMLONLAT"||t.type==="fromlonlat")&&i.push(t.type,t.coordinate.lon,t.coordinate.lat),(o.type==="BYRADIUS"||o.type==="byradius")&&i.push(o.type,o.radius,o.radiusType),(o.type==="BYBOX"||o.type==="bybox")&&i.push(o.type,o.rect.width,o.rect.height,o.rectType),i.push(m),r?.count&&i.push(r.count.limit,...r.count.any?["ANY"]:[]);let p=ie=>!r?.withCoord&&!r?.withDist&&!r?.withHash?ie.map(d=>{try{return{member:JSON.parse(d)}}catch{return{member:d}}}):ie.map(d=>{let te=1,h={};try{h.member=JSON.parse(d[0])}catch{h.member=d[0]}return r.withDist&&(h.dist=parseFloat(d[te++])),r.withHash&&(h.hash=d[te++].toString()),r.withCoord&&(h.coord={long:parseFloat(d[te][0]),lat:parseFloat(d[te][1])}),h});super([...i,...r?.withCoord?["WITHCOORD"]:[],...r?.withDist?["WITHDIST"]:[],...r?.withHash?["WITHHASH"]:[]],{...a,deserialize:p})}};var I=class extends e{constructor([n,t,o,m,r,a],i){let p=["GEOSEARCHSTORE",n,t];(o.type==="FROMMEMBER"||o.type==="frommember")&&p.push(o.type,o.member),(o.type==="FROMLONLAT"||o.type==="fromlonlat")&&p.push(o.type,o.coordinate.lon,o.coordinate.lat),(m.type==="BYRADIUS"||m.type==="byradius")&&p.push(m.type,m.radius,m.radiusType),(m.type==="BYBOX"||m.type==="bybox")&&p.push(m.type,m.rect.width,m.rect.height,m.rectType),p.push(r),a?.count&&p.push(a.count.limit,...a.count.any?["ANY"]:[]),super([...p,...a?.storeDist?["STOREDIST"]:[]],i)}};var K=class extends e{constructor(n,t){super(["get",...n],t)}};var N=class extends e{constructor(n,t){super(["getbit",...n],t)}};var P=class extends e{constructor(n,t){super(["getdel",...n],t)}};var Z=class extends e{constructor(n,t){super(["getrange",...n],t)}};var G=class extends e{constructor(n,t){super(["getset",...n],t)}};var U=class extends e{constructor(n,t){super(["hdel",...n],t)}};var B=class extends e{constructor(n,t){super(["hexists",...n],t)}};var H=class extends e{constructor(n,t){super(["hget",...n],t)}};function ge(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{!Number.isNaN(Number(o))&&!Number.isSafeInteger(o)?n[t]=o:n[t]=JSON.parse(o)}catch{n[t]=o}}return n}var F=class extends e{constructor(n,t){super(["hgetall",...n],{deserialize:o=>ge(o),...t})}};var $=class extends e{constructor(n,t){super(["hincrby",...n],t)}};var q=class extends e{constructor(n,t){super(["hincrbyfloat",...n],t)}};var j=class extends e{constructor([n],t){super(["hkeys",n],t)}};var X=class extends e{constructor(n,t){super(["hlen",...n],t)}};function xe(s,n){if(n.length===0||n.every(o=>o===null))return null;let t={};for(let o=0;o<s.length;o++)try{t[s[o]]=JSON.parse(n[o])}catch{t[s[o]]=n[o]}return t}var W=class extends e{constructor([n,...t],o){super(["hmget",n,...t],{deserialize:m=>xe(t,m),...o})}};var Y=class extends e{constructor([n,t],o){super(["hmset",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};function fe(s){if(s.length===0)return null;let n={};for(;s.length>=2;){let t=s.shift(),o=s.shift();try{n[t]=JSON.parse(o)}catch{n[t]=o}}return n}var _=class extends e{constructor(n,t){let o=["hrandfield",n[0]];typeof n[1]=="number"&&o.push(n[1]),n[2]&&o.push("WITHVALUES"),super(o,{deserialize:n[2]?m=>fe(m):t?.deserialize,...t})}};var V=class extends e{constructor([n,t,o],m){let r=["hscan",n,t];o?.match&&r.push("match",o.match),typeof o?.count=="number"&&r.push("count",o.count),super(r,m)}};var Q=class extends e{constructor([n,t],o){super(["hset",n,...Object.entries(t).flatMap(([m,r])=>[m,r])],o)}};var nn=class extends e{constructor(n,t){super(["hsetnx",...n],t)}};var tn=class extends e{constructor(n,t){super(["hstrlen",...n],t)}};var en=class extends e{constructor(n,t){super(["hvals",...n],t)}};var on=class extends e{constructor(n,t){super(["incr",...n],t)}};var sn=class extends e{constructor(n,t){super(["incrby",...n],t)}};var mn=class extends e{constructor(n,t){super(["incrbyfloat",...n],t)}};var rn=class extends e{constructor(n,t){super(["JSON.ARRAPPEND",...n],t)}};var an=class extends e{constructor(n,t){super(["JSON.ARRINDEX",...n],t)}};var pn=class extends e{constructor(n,t){super(["JSON.ARRINSERT",...n],t)}};var dn=class extends e{constructor(n,t){super(["JSON.ARRLEN",n[0],n[1]??"$"],t)}};var cn=class extends e{constructor(n,t){super(["JSON.ARRPOP",...n],t)}};var un=class extends e{constructor(n,t){let o=n[1]??"$",m=n[2]??0,r=n[3]??0;super(["JSON.ARRTRIM",n[0],o,m,r],t)}};var hn=class extends e{constructor(n,t){super(["JSON.CLEAR",...n],t)}};var ln=class extends e{constructor(n,t){super(["JSON.DEL",...n],t)}};var Cn=class extends e{constructor(n,t){super(["JSON.FORGET",...n],t)}};var gn=class extends e{constructor(n,t){let o=["JSON.GET"];typeof n[1]=="string"?o.push(...n):(o.push(n[0]),n[1]&&(n[1].indent&&o.push("INDENT",n[1].indent),n[1].newline&&o.push("NEWLINE",n[1].newline),n[1].space&&o.push("SPACE",n[1].space)),o.push(...n.slice(2))),super(o,t)}};var xn=class extends e{constructor(n,t){super(["JSON.MGET",...n[0],n[1]],t)}};var fn=class extends e{constructor(n,t){super(["JSON.NUMINCRBY",...n],t)}};var yn=class extends e{constructor(n,t){super(["JSON.NUMMULTBY",...n],t)}};var bn=class extends e{constructor(n,t){super(["JSON.OBJKEYS",...n],t)}};var Tn=class extends e{constructor(n,t){super(["JSON.OBJLEN",...n],t)}};var On=class extends e{constructor(n,t){super(["JSON.RESP",...n],t)}};var wn=class extends e{constructor(n,t){let o=["JSON.SET",n[0],n[1],n[2]];n[3]&&(n[3].nx?o.push("NX"):n[3].xx&&o.push("XX")),super(o,t)}};var Dn=class extends e{constructor(n,t){super(["JSON.STRAPPEND",...n],t)}};var kn=class extends e{constructor(n,t){super(["JSON.STRLEN",...n],t)}};var An=class extends e{constructor(n,t){super(["JSON.TOGGLE",...n],t)}};var Sn=class extends e{constructor(n,t){super(["JSON.TYPE",...n],t)}};var Rn=class extends e{constructor(n,t){super(["keys",...n],t)}};var vn=class extends e{constructor(n,t){super(["lindex",...n],t)}};var Mn=class extends e{constructor(n,t){super(["linsert",...n],t)}};var En=class extends e{constructor(n,t){super(["llen",...n],t)}};var zn=class extends e{constructor(n,t){super(["lmove",...n],t)}};var Jn=class extends e{constructor(n,t){super(["lpop",...n],t)}};var Ln=class extends e{constructor(n,t){let o=["lpos",n[0],n[1]];typeof n[2]?.rank=="number"&&o.push("rank",n[2].rank),typeof n[2]?.count=="number"&&o.push("count",n[2].count),typeof n[2]?.maxLen=="number"&&o.push("maxLen",n[2].maxLen),super(o,t)}};var In=class extends e{constructor(n,t){super(["lpush",...n],t)}};var Kn=class extends e{constructor(n,t){super(["lpushx",...n],t)}};var Nn=class extends e{constructor(n,t){super(["lrange",...n],t)}};var Pn=class extends e{constructor(n,t){super(["lrem",...n],t)}};var Zn=class extends e{constructor(n,t){super(["lset",...n],t)}};var Gn=class extends e{constructor(n,t){super(["ltrim",...n],t)}};var Un=class extends e{constructor(n,t){let o=Array.isArray(n[0])?n[0]:n;super(["mget",...o],t)}};var Bn=class extends e{constructor([n],t){super(["mset",...Object.entries(n).flatMap(([o,m])=>[o,m])],t)}};var Hn=class extends e{constructor([n],t){super(["msetnx",...Object.entries(n).flatMap(o=>o)],t)}};var Fn=class extends e{constructor(n,t){super(["persist",...n],t)}};var $n=class extends e{constructor(n,t){super(["pexpire",...n],t)}};var qn=class extends e{constructor(n,t){super(["pexpireat",...n],t)}};var jn=class extends e{constructor(n,t){let o=["ping"];typeof n<"u"&&typeof n[0]<"u"&&o.push(n[0]),super(o,t)}};var Xn=class extends e{constructor(n,t){super(["psetex",...n],t)}};var Wn=class extends e{constructor(n,t){super(["pttl",...n],t)}};var Yn=class extends e{constructor(n,t){super(["publish",...n],t)}};var _n=class extends e{constructor(n){super(["randomkey"],n)}};var Vn=class extends e{constructor(n,t){super(["rename",...n],t)}};var Qn=class extends e{constructor(n,t){super(["renamenx",...n],t)}};var nt=class extends e{constructor(n,t){super(["rpop",...n],t)}};var tt=class extends e{constructor(n,t){super(["rpush",...n],t)}};var et=class extends e{constructor(n,t){super(["rpushx",...n],t)}};var ot=class extends e{constructor(n,t){super(["sadd",...n],t)}};var st=class extends e{constructor([n,t],o){let m=["scan",n];t?.match&&m.push("match",t.match),typeof t?.count=="number"&&m.push("count",t.count),t?.type&&t.type.length>0&&m.push("type",t.type),super(m,o)}};var mt=class extends e{constructor(n,t){super(["scard",...n],t)}};var rt=class extends e{constructor(n,t){super(["script","exists",...n],{deserialize:o=>o,...t})}};var at=class extends e{constructor([n],t){let o=["script","flush"];n?.sync?o.push("sync"):n?.async&&o.push("async"),super(o,t)}};var it=class extends e{constructor(n,t){super(["script","load",...n],t)}};var pt=class extends e{constructor(n,t){super(["sdiff",...n],t)}};var dt=class extends e{constructor(n,t){super(["sdiffstore",...n],t)}};var ct=class extends e{constructor([n,t,o],m){let r=["set",n,t];o&&("nx"in o&&o.nx?r.push("nx"):"xx"in o&&o.xx&&r.push("xx"),"get"in o&&o.get&&r.push("get"),"ex"in o&&typeof o.ex=="number"?r.push("ex",o.ex):"px"in o&&typeof o.px=="number"?r.push("px",o.px):"exat"in o&&typeof o.exat=="number"?r.push("exat",o.exat):"pxat"in o&&typeof o.pxat=="number"?r.push("pxat",o.pxat):"keepTtl"in o&&o.keepTtl&&r.push("keepTtl")),super(r,m)}};var ut=class extends e{constructor(n,t){super(["setbit",...n],t)}};var ht=class extends e{constructor(n,t){super(["setex",...n],t)}};var lt=class extends e{constructor(n,t){super(["setnx",...n],t)}};var Ct=class extends e{constructor(n,t){super(["setrange",...n],t)}};var gt=class extends e{constructor(n,t){super(["sinter",...n],t)}};var xt=class extends e{constructor(n,t){super(["sinterstore",...n],t)}};var ft=class extends e{constructor(n,t){super(["sismember",...n],t)}};var yt=class extends e{constructor(n,t){super(["smembers",...n],t)}};var bt=class extends e{constructor(n,t){super(["smismember",n[0],...n[1]],t)}};var Tt=class extends e{constructor(n,t){super(["smove",...n],t)}};var Ot=class extends e{constructor([n,t],o){let m=["spop",n];typeof t=="number"&&m.push(t),super(m,o)}};var wt=class extends e{constructor([n,t],o){let m=["srandmember",n];typeof t=="number"&&m.push(t),super(m,o)}};var Dt=class extends e{constructor(n,t){super(["srem",...n],t)}};var kt=class extends e{constructor([n,t,o],m){let r=["sscan",n,t];o?.match&&r.push("match",o.match),typeof o?.count=="number"&&r.push("count",o.count),super(r,m)}};var At=class extends e{constructor(n,t){super(["strlen",...n],t)}};var St=class extends e{constructor(n,t){super(["sunion",...n],t)}};var Rt=class extends e{constructor(n,t){super(["sunionstore",...n],t)}};var vt=class extends e{constructor(n){super(["time"],n)}};var Mt=class extends e{constructor(n,t){super(["touch",...n],t)}};var Et=class extends e{constructor(n,t){super(["ttl",...n],t)}};var zt=class extends e{constructor(n,t){super(["type",...n],t)}};var Jt=class extends e{constructor(n,t){super(["unlink",...n],t)}};var oe=class extends e{constructor([n,t,o,m],r){let a=["XADD",n];m&&(m.nomkStream&&a.push("NOMKSTREAM"),m.trim&&(a.push(m.trim.type,m.trim.comparison,m.trim.threshold),typeof m.trim.limit<"u"&&a.push("LIMIT",m.trim.limit))),a.push(t);for(let[i,p]of Object.entries(o))a.push(i,p);super(a,r)}};function ye(s){let n={};for(let t of s)for(;t.length>=2;){let o=t.shift(),m=t.shift();for((o in n)||(n[o]={});m.length>=2;){let r=m.shift(),a=m.shift();try{n[o][r]=JSON.parse(a)}catch{n[o][r]=a}}}return n}var se=class extends e{constructor([n,t,o,m],r){let a=["XRANGE",n,t,o];typeof m=="number"&&a.push("COUNT",m),super(a,{deserialize:i=>ye(i),...r})}};var u=class extends e{constructor([n,t,...o],m){let r=["zadd",n];"nx"in t&&t.nx?r.push("nx"):"xx"in t&&t.xx&&r.push("xx"),"ch"in t&&t.ch&&r.push("ch"),"incr"in t&&t.incr&&r.push("incr"),"score"in t&&"member"in t&&r.push(t.score,t.member),r.push(...o.flatMap(({score:a,member:i})=>[a,i])),super(r,m)}};var Lt=class extends e{constructor(n,t){super(["zcard",...n],t)}};var It=class extends e{constructor(n,t){super(["zcount",...n],t)}};var Kt=class extends e{constructor(n,t){super(["zincrby",...n],t)}};var Nt=class extends e{constructor([n,t,o,m],r){let a=["zinterstore",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&("weights"in m&&m.weights?a.push("weights",...m.weights):"weight"in m&&typeof m.weight=="number"&&a.push("weights",m.weight),"aggregate"in m&&a.push("aggregate",m.aggregate)),super(a,r)}};var Pt=class extends e{constructor(n,t){super(["zlexcount",...n],t)}};var Zt=class extends e{constructor([n,t],o){let m=["zpopmax",n];typeof t=="number"&&m.push(t),super(m,o)}};var Gt=class extends e{constructor([n,t],o){let m=["zpopmin",n];typeof t=="number"&&m.push(t),super(m,o)}};var Ut=class extends e{constructor([n,t,o,m],r){let a=["zrange",n,t,o];m?.byScore&&a.push("byscore"),m?.byLex&&a.push("bylex"),m?.rev&&a.push("rev"),typeof m?.count<"u"&&typeof m?.offset<"u"&&a.push("limit",m.offset,m.count),m?.withScores&&a.push("withscores"),super(a,r)}};var Bt=class extends e{constructor(n,t){super(["zrank",...n],t)}};var Ht=class extends e{constructor(n,t){super(["zrem",...n],t)}};var Ft=class extends e{constructor(n,t){super(["zremrangebylex",...n],t)}};var $t=class extends e{constructor(n,t){super(["zremrangebyrank",...n],t)}};var qt=class extends e{constructor(n,t){super(["zremrangebyscore",...n],t)}};var jt=class extends e{constructor(n,t){super(["zrevrank",...n],t)}};var Xt=class extends e{constructor([n,t,o],m){let r=["zscan",n,t];o?.match&&r.push("match",o.match),typeof o?.count=="number"&&r.push("count",o.count),super(r,m)}};var Wt=class extends e{constructor(n,t){super(["zscore",...n],t)}};var Yt=class extends e{constructor([n,t,o],m){let r=["zunion",n];Array.isArray(t)?r.push(...t):r.push(t),o&&("weights"in o&&o.weights?r.push("weights",...o.weights):"weight"in o&&typeof o.weight=="number"&&r.push("weights",o.weight),"aggregate"in o&&r.push("aggregate",o.aggregate),o?.withScores&&r.push("withscores")),super(r,m)}};var _t=class extends e{constructor([n,t,o,m],r){let a=["zunionstore",n,t];Array.isArray(o)?a.push(...o):a.push(o),m&&("weights"in m&&m.weights?a.push("weights",...m.weights):"weight"in m&&typeof m.weight=="number"&&a.push("weights",m.weight),"aggregate"in m&&a.push("aggregate",m.aggregate)),super(a,r)}};var Vt=class extends e{constructor(n,t){super(["zdiffstore",...n],t)}};var Qt=class extends e{constructor(n,t){let[o,m]=n;super(["zmscore",o,...m],t)}};var ne=class{client;commands;commandOptions;multiExec;constructor(n){this.client=n.client,this.commands=[],this.commandOptions=n.commandOptions,this.multiExec=n.multiExec??!1}exec=async()=>{if(this.commands.length===0)throw new Error("Pipeline is empty");let n=this.multiExec?["multi-exec"]:["pipeline"];return(await this.client.request({path:n,body:Object.values(this.commands).map(o=>o.command)})).map(({error:o,result:m},r)=>{if(o)throw new c(`Command ${r+1} [ ${this.commands[r].command[0]} ] failed: ${o}`);return this.commands[r].deserialize(m)})};length(){return this.commands.length}chain(n){return this.commands.push(n),this}append=(...n)=>this.chain(new l(n,this.commandOptions));bitcount=(...n)=>this.chain(new C(n,this.commandOptions));bitop=(n,t,o,...m)=>this.chain(new g([n,t,o,...m],this.commandOptions));bitpos=(...n)=>this.chain(new x(n,this.commandOptions));zdiffstore=(...n)=>this.chain(new Vt(n,this.commandOptions));dbsize=()=>this.chain(new f(this.commandOptions));decr=(...n)=>this.chain(new y(n,this.commandOptions));decrby=(...n)=>this.chain(new b(n,this.commandOptions));del=(...n)=>this.chain(new T(n,this.commandOptions));echo=(...n)=>this.chain(new O(n,this.commandOptions));eval=(...n)=>this.chain(new w(n,this.commandOptions));evalsha=(...n)=>this.chain(new D(n,this.commandOptions));exists=(...n)=>this.chain(new k(n,this.commandOptions));expire=(...n)=>this.chain(new A(n,this.commandOptions));expireat=(...n)=>this.chain(new S(n,this.commandOptions));flushall=n=>this.chain(new R(n,this.commandOptions));flushdb=(...n)=>this.chain(new v(n,this.commandOptions));get=(...n)=>this.chain(new K(n,this.commandOptions));getbit=(...n)=>this.chain(new N(n,this.commandOptions));getdel=(...n)=>this.chain(new P(n,this.commandOptions));getrange=(...n)=>this.chain(new Z(n,this.commandOptions));getset=(n,t)=>this.chain(new G([n,t],this.commandOptions));hdel=(...n)=>this.chain(new U(n,this.commandOptions));hexists=(...n)=>this.chain(new B(n,this.commandOptions));hget=(...n)=>this.chain(new H(n,this.commandOptions));hgetall=(...n)=>this.chain(new F(n,this.commandOptions));hincrby=(...n)=>this.chain(new $(n,this.commandOptions));hincrbyfloat=(...n)=>this.chain(new q(n,this.commandOptions));hkeys=(...n)=>this.chain(new j(n,this.commandOptions));hlen=(...n)=>this.chain(new X(n,this.commandOptions));hmget=(...n)=>this.chain(new W(n,this.commandOptions));hmset=(n,t)=>this.chain(new Y([n,t],this.commandOptions));hrandfield=(n,t,o)=>this.chain(new _([n,t,o],this.commandOptions));hscan=(...n)=>this.chain(new V(n,this.commandOptions));hset=(n,t)=>this.chain(new Q([n,t],this.commandOptions));hsetnx=(n,t,o)=>this.chain(new nn([n,t,o],this.commandOptions));hstrlen=(...n)=>this.chain(new tn(n,this.commandOptions));hvals=(...n)=>this.chain(new en(n,this.commandOptions));incr=(...n)=>this.chain(new on(n,this.commandOptions));incrby=(...n)=>this.chain(new sn(n,this.commandOptions));incrbyfloat=(...n)=>this.chain(new mn(n,this.commandOptions));keys=(...n)=>this.chain(new Rn(n,this.commandOptions));lindex=(...n)=>this.chain(new vn(n,this.commandOptions));linsert=(n,t,o,m)=>this.chain(new Mn([n,t,o,m],this.commandOptions));llen=(...n)=>this.chain(new En(n,this.commandOptions));lmove=(...n)=>this.chain(new zn(n,this.commandOptions));lpop=(...n)=>this.chain(new Jn(n,this.commandOptions));lpos=(...n)=>this.chain(new Ln(n,this.commandOptions));lpush=(n,...t)=>this.chain(new In([n,...t],this.commandOptions));lpushx=(n,...t)=>this.chain(new Kn([n,...t],this.commandOptions));lrange=(...n)=>this.chain(new Nn(n,this.commandOptions));lrem=(n,t,o)=>this.chain(new Pn([n,t,o],this.commandOptions));lset=(n,t,o)=>this.chain(new Zn([n,t,o],this.commandOptions));ltrim=(...n)=>this.chain(new Gn(n,this.commandOptions));mget=(...n)=>this.chain(new Un(n,this.commandOptions));mset=n=>this.chain(new Bn([n],this.commandOptions));msetnx=n=>this.chain(new Hn([n],this.commandOptions));persist=(...n)=>this.chain(new Fn(n,this.commandOptions));pexpire=(...n)=>this.chain(new $n(n,this.commandOptions));pexpireat=(...n)=>this.chain(new qn(n,this.commandOptions));ping=n=>this.chain(new jn(n,this.commandOptions));psetex=(n,t,o)=>this.chain(new Xn([n,t,o],this.commandOptions));pttl=(...n)=>this.chain(new Wn(n,this.commandOptions));publish=(...n)=>this.chain(new Yn(n,this.commandOptions));randomkey=()=>this.chain(new _n(this.commandOptions));rename=(...n)=>this.chain(new Vn(n,this.commandOptions));renamenx=(...n)=>this.chain(new Qn(n,this.commandOptions));rpop=(...n)=>this.chain(new nt(n,this.commandOptions));rpush=(n,...t)=>this.chain(new tt([n,...t],this.commandOptions));rpushx=(n,...t)=>this.chain(new et([n,...t],this.commandOptions));sadd=(n,...t)=>this.chain(new ot([n,...t],this.commandOptions));scan=(...n)=>this.chain(new st(n,this.commandOptions));scard=(...n)=>this.chain(new mt(n,this.commandOptions));scriptExists=(...n)=>this.chain(new rt(n,this.commandOptions));scriptFlush=(...n)=>this.chain(new at(n,this.commandOptions));scriptLoad=(...n)=>this.chain(new it(n,this.commandOptions));sdiff=(...n)=>this.chain(new pt(n,this.commandOptions));sdiffstore=(...n)=>this.chain(new dt(n,this.commandOptions));set=(n,t,o)=>this.chain(new ct([n,t,o],this.commandOptions));setbit=(...n)=>this.chain(new ut(n,this.commandOptions));setex=(n,t,o)=>this.chain(new ht([n,t,o],this.commandOptions));setnx=(n,t)=>this.chain(new lt([n,t],this.commandOptions));setrange=(...n)=>this.chain(new Ct(n,this.commandOptions));sinter=(...n)=>this.chain(new gt(n,this.commandOptions));sinterstore=(...n)=>this.chain(new xt(n,this.commandOptions));sismember=(n,t)=>this.chain(new ft([n,t],this.commandOptions));smembers=(...n)=>this.chain(new yt(n,this.commandOptions));smismember=(n,t)=>this.chain(new bt([n,t],this.commandOptions));smove=(n,t,o)=>this.chain(new Tt([n,t,o],this.commandOptions));spop=(...n)=>this.chain(new Ot(n,this.commandOptions));srandmember=(...n)=>this.chain(new wt(n,this.commandOptions));srem=(n,...t)=>this.chain(new Dt([n,...t],this.commandOptions));sscan=(...n)=>this.chain(new kt(n,this.commandOptions));strlen=(...n)=>this.chain(new At(n,this.commandOptions));sunion=(...n)=>this.chain(new St(n,this.commandOptions));sunionstore=(...n)=>this.chain(new Rt(n,this.commandOptions));time=()=>this.chain(new vt(this.commandOptions));touch=(...n)=>this.chain(new Mt(n,this.commandOptions));ttl=(...n)=>this.chain(new Et(n,this.commandOptions));type=(...n)=>this.chain(new zt(n,this.commandOptions));unlink=(...n)=>this.chain(new Jt(n,this.commandOptions));zadd=(...n)=>"score"in n[1]?this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions)):this.chain(new u([n[0],n[1],...n.slice(2)],this.commandOptions));zcard=(...n)=>this.chain(new Lt(n,this.commandOptions));zcount=(...n)=>this.chain(new It(n,this.commandOptions));zincrby=(n,t,o)=>this.chain(new Kt([n,t,o],this.commandOptions));zinterstore=(...n)=>this.chain(new Nt(n,this.commandOptions));zlexcount=(...n)=>this.chain(new Pt(n,this.commandOptions));zmscore=(...n)=>this.chain(new Qt(n,this.commandOptions));zpopmax=(...n)=>this.chain(new Zt(n,this.commandOptions));zpopmin=(...n)=>this.chain(new Gt(n,this.commandOptions));zrange=(...n)=>this.chain(new Ut(n,this.commandOptions));zrank=(n,t)=>this.chain(new Bt([n,t],this.commandOptions));zrem=(n,...t)=>this.chain(new Ht([n,...t],this.commandOptions));zremrangebylex=(...n)=>this.chain(new Ft(n,this.commandOptions));zremrangebyrank=(...n)=>this.chain(new $t(n,this.commandOptions));zremrangebyscore=(...n)=>this.chain(new qt(n,this.commandOptions));zrevrank=(n,t)=>this.chain(new jt([n,t],this.commandOptions));zscan=(...n)=>this.chain(new Xt(n,this.commandOptions));zscore=(n,t)=>this.chain(new Wt([n,t],this.commandOptions));zunionstore=(...n)=>this.chain(new _t(n,this.commandOptions));zunion=(...n)=>this.chain(new Yt(n,this.commandOptions));get json(){return{arrappend:(...n)=>this.chain(new rn(n,this.commandOptions)),arrindex:(...n)=>this.chain(new an(n,this.commandOptions)),arrinsert:(...n)=>this.chain(new pn(n,this.commandOptions)),arrlen:(...n)=>this.chain(new dn(n,this.commandOptions)),arrpop:(...n)=>this.chain(new cn(n,this.commandOptions)),arrtrim:(...n)=>this.chain(new un(n,this.commandOptions)),clear:(...n)=>this.chain(new hn(n,this.commandOptions)),del:(...n)=>this.chain(new ln(n,this.commandOptions)),forget:(...n)=>this.chain(new Cn(n,this.commandOptions)),geoadd:(...n)=>new M(n,this.commandOptions).exec(this.client),geodist:(...n)=>new E(n,this.commandOptions).exec(this.client),geopos:(...n)=>new z(n,this.commandOptions).exec(this.client),geohash:(...n)=>new J(n,this.commandOptions).exec(this.client),geosearch:(...n)=>new L(n,this.commandOptions).exec(this.client),geosearchstore:(...n)=>new I(n,this.commandOptions).exec(this.client),get:(...n)=>this.chain(new gn(n,this.commandOptions)),mget:(...n)=>this.chain(new xn(n,this.commandOptions)),numincrby:(...n)=>this.chain(new fn(n,this.commandOptions)),nummultby:(...n)=>this.chain(new yn(n,this.commandOptions)),objkeys:(...n)=>this.chain(new bn(n,this.commandOptions)),objlen:(...n)=>this.chain(new Tn(n,this.commandOptions)),resp:(...n)=>this.chain(new On(n,this.commandOptions)),set:(...n)=>this.chain(new wn(n,this.commandOptions)),strappend:(...n)=>this.chain(new Dn(n,this.commandOptions)),strlen:(...n)=>this.chain(new kn(n,this.commandOptions)),toggle:(...n)=>this.chain(new An(n,this.commandOptions)),type:(...n)=>this.chain(new Sn(n,this.commandOptions))}}};import be from"crypto-js/enc-hex";import Te from"crypto-js/sha1";var me=class{script;sha1;redis;constructor(n,t){this.redis=n,this.sha1=this.digest(t),this.script=t}async eval(n,t){return await this.redis.eval(this.script,n,t)}async evalsha(n,t){return await this.redis.evalsha(this.sha1,n,t)}async exec(n,t){return await this.redis.evalsha(this.sha1,n,t).catch(async m=>{if(m instanceof Error&&m.message.toLowerCase().includes("noscript"))return await this.redis.eval(this.script,n,t);throw m})}digest(n){return be.stringify(Te(n))}};var re=class{client;opts;enableTelemetry;constructor(n,t){this.client=n,this.opts=t,this.enableTelemetry=t?.enableTelemetry??!0}get json(){return{arrappend:(...n)=>new rn(n,this.opts).exec(this.client),arrindex:(...n)=>new an(n,this.opts).exec(this.client),arrinsert:(...n)=>new pn(n,this.opts).exec(this.client),arrlen:(...n)=>new dn(n,this.opts).exec(this.client),arrpop:(...n)=>new cn(n,this.opts).exec(this.client),arrtrim:(...n)=>new un(n,this.opts).exec(this.client),clear:(...n)=>new hn(n,this.opts).exec(this.client),del:(...n)=>new ln(n,this.opts).exec(this.client),forget:(...n)=>new Cn(n,this.opts).exec(this.client),geoadd:(...n)=>new M(n,this.opts).exec(this.client),geopos:(...n)=>new z(n,this.opts).exec(this.client),geodist:(...n)=>new E(n,this.opts).exec(this.client),geohash:(...n)=>new J(n,this.opts).exec(this.client),geosearch:(...n)=>new L(n,this.opts).exec(this.client),geosearchstore:(...n)=>new I(n,this.opts).exec(this.client),get:(...n)=>new gn(n,this.opts).exec(this.client),mget:(...n)=>new xn(n,this.opts).exec(this.client),numincrby:(...n)=>new fn(n,this.opts).exec(this.client),nummultby:(...n)=>new yn(n,this.opts).exec(this.client),objkeys:(...n)=>new bn(n,this.opts).exec(this.client),objlen:(...n)=>new Tn(n,this.opts).exec(this.client),resp:(...n)=>new On(n,this.opts).exec(this.client),set:(...n)=>new wn(n,this.opts).exec(this.client),strappend:(...n)=>new Dn(n,this.opts).exec(this.client),strlen:(...n)=>new kn(n,this.opts).exec(this.client),toggle:(...n)=>new An(n,this.opts).exec(this.client),type:(...n)=>new Sn(n,this.opts).exec(this.client)}}use=n=>{let t=this.client.request.bind(this.client);this.client.request=o=>n(o,t)};addTelemetry=n=>{if(this.enableTelemetry)try{this.client.mergeTelemetry(n)}catch{}};createScript(n){return new me(this,n)}pipeline=()=>new ne({client:this.client,commandOptions:this.opts,multiExec:!1});multi=()=>new ne({client:this.client,commandOptions:this.opts,multiExec:!0});append=(...n)=>new l(n,this.opts).exec(this.client);bitcount=(...n)=>new C(n,this.opts).exec(this.client);bitop=(n,t,o,...m)=>new g([n,t,o,...m],this.opts).exec(this.client);bitpos=(...n)=>new x(n,this.opts).exec(this.client);dbsize=()=>new f(this.opts).exec(this.client);decr=(...n)=>new y(n,this.opts).exec(this.client);decrby=(...n)=>new b(n,this.opts).exec(this.client);del=(...n)=>new T(n,this.opts).exec(this.client);echo=(...n)=>new O(n,this.opts).exec(this.client);eval=(...n)=>new w(n,this.opts).exec(this.client);evalsha=(...n)=>new D(n,this.opts).exec(this.client);exists=(...n)=>new k(n,this.opts).exec(this.client);expire=(...n)=>new A(n,this.opts).exec(this.client);expireat=(...n)=>new S(n,this.opts).exec(this.client);flushall=n=>new R(n,this.opts).exec(this.client);flushdb=(...n)=>new v(n,this.opts).exec(this.client);get=(...n)=>new K(n,this.opts).exec(this.client);getbit=(...n)=>new N(n,this.opts).exec(this.client);getdel=(...n)=>new P(n,this.opts).exec(this.client);getrange=(...n)=>new Z(n,this.opts).exec(this.client);getset=(n,t)=>new G([n,t],this.opts).exec(this.client);hdel=(...n)=>new U(n,this.opts).exec(this.client);hexists=(...n)=>new B(n,this.opts).exec(this.client);hget=(...n)=>new H(n,this.opts).exec(this.client);hgetall=(...n)=>new F(n,this.opts).exec(this.client);hincrby=(...n)=>new $(n,this.opts).exec(this.client);hincrbyfloat=(...n)=>new q(n,this.opts).exec(this.client);hkeys=(...n)=>new j(n,this.opts).exec(this.client);hlen=(...n)=>new X(n,this.opts).exec(this.client);hmget=(...n)=>new W(n,this.opts).exec(this.client);hmset=(n,t)=>new Y([n,t],this.opts).exec(this.client);hrandfield=(n,t,o)=>new _([n,t,o],this.opts).exec(this.client);hscan=(...n)=>new V(n,this.opts).exec(this.client);hset=(n,t)=>new Q([n,t],this.opts).exec(this.client);hsetnx=(n,t,o)=>new nn([n,t,o],this.opts).exec(this.client);hstrlen=(...n)=>new tn(n,this.opts).exec(this.client);hvals=(...n)=>new en(n,this.opts).exec(this.client);incr=(...n)=>new on(n,this.opts).exec(this.client);incrby=(...n)=>new sn(n,this.opts).exec(this.client);incrbyfloat=(...n)=>new mn(n,this.opts).exec(this.client);keys=(...n)=>new Rn(n,this.opts).exec(this.client);lindex=(...n)=>new vn(n,this.opts).exec(this.client);linsert=(n,t,o,m)=>new Mn([n,t,o,m],this.opts).exec(this.client);llen=(...n)=>new En(n,this.opts).exec(this.client);lmove=(...n)=>new zn(n,this.opts).exec(this.client);lpop=(...n)=>new Jn(n,this.opts).exec(this.client);lpos=(...n)=>new Ln(n,this.opts).exec(this.client);lpush=(n,...t)=>new In([n,...t],this.opts).exec(this.client);lpushx=(n,...t)=>new Kn([n,...t],this.opts).exec(this.client);lrange=(...n)=>new Nn(n,this.opts).exec(this.client);lrem=(n,t,o)=>new Pn([n,t,o],this.opts).exec(this.client);lset=(n,t,o)=>new Zn([n,t,o],this.opts).exec(this.client);ltrim=(...n)=>new Gn(n,this.opts).exec(this.client);mget=(...n)=>new Un(n,this.opts).exec(this.client);mset=n=>new Bn([n],this.opts).exec(this.client);msetnx=n=>new Hn([n],this.opts).exec(this.client);persist=(...n)=>new Fn(n,this.opts).exec(this.client);pexpire=(...n)=>new $n(n,this.opts).exec(this.client);pexpireat=(...n)=>new qn(n,this.opts).exec(this.client);ping=n=>new jn(n,this.opts).exec(this.client);psetex=(n,t,o)=>new Xn([n,t,o],this.opts).exec(this.client);pttl=(...n)=>new Wn(n,this.opts).exec(this.client);publish=(...n)=>new Yn(n,this.opts).exec(this.client);randomkey=()=>new _n().exec(this.client);rename=(...n)=>new Vn(n,this.opts).exec(this.client);renamenx=(...n)=>new Qn(n,this.opts).exec(this.client);rpop=(...n)=>new nt(n,this.opts).exec(this.client);rpush=(n,...t)=>new tt([n,...t],this.opts).exec(this.client);rpushx=(n,...t)=>new et([n,...t],this.opts).exec(this.client);sadd=(n,...t)=>new ot([n,...t],this.opts).exec(this.client);scan=(...n)=>new st(n,this.opts).exec(this.client);scard=(...n)=>new mt(n,this.opts).exec(this.client);scriptExists=(...n)=>new rt(n,this.opts).exec(this.client);scriptFlush=(...n)=>new at(n,this.opts).exec(this.client);scriptLoad=(...n)=>new it(n,this.opts).exec(this.client);sdiff=(...n)=>new pt(n,this.opts).exec(this.client);sdiffstore=(...n)=>new dt(n,this.opts).exec(this.client);set=(n,t,o)=>new ct([n,t,o],this.opts).exec(this.client);setbit=(...n)=>new ut(n,this.opts).exec(this.client);setex=(n,t,o)=>new ht([n,t,o],this.opts).exec(this.client);setnx=(n,t)=>new lt([n,t],this.opts).exec(this.client);setrange=(...n)=>new Ct(n,this.opts).exec(this.client);sinter=(...n)=>new gt(n,this.opts).exec(this.client);sinterstore=(...n)=>new xt(n,this.opts).exec(this.client);sismember=(n,t)=>new ft([n,t],this.opts).exec(this.client);smismember=(n,t)=>new bt([n,t],this.opts).exec(this.client);smembers=(...n)=>new yt(n,this.opts).exec(this.client);smove=(n,t,o)=>new Tt([n,t,o],this.opts).exec(this.client);spop=(...n)=>new Ot(n,this.opts).exec(this.client);srandmember=(...n)=>new wt(n,this.opts).exec(this.client);srem=(n,...t)=>new Dt([n,...t],this.opts).exec(this.client);sscan=(...n)=>new kt(n,this.opts).exec(this.client);strlen=(...n)=>new At(n,this.opts).exec(this.client);sunion=(...n)=>new St(n,this.opts).exec(this.client);sunionstore=(...n)=>new Rt(n,this.opts).exec(this.client);time=()=>new vt().exec(this.client);touch=(...n)=>new Mt(n,this.opts).exec(this.client);ttl=(...n)=>new Et(n,this.opts).exec(this.client);type=(...n)=>new zt(n,this.opts).exec(this.client);unlink=(...n)=>new Jt(n,this.opts).exec(this.client);xadd=(...n)=>new oe(n,this.opts).exec(this.client);xrange=(...n)=>new se(n,this.opts).exec(this.client);zadd=(...n)=>"score"in n[1]?new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client):new u([n[0],n[1],...n.slice(2)],this.opts).exec(this.client);zcard=(...n)=>new Lt(n,this.opts).exec(this.client);zcount=(...n)=>new It(n,this.opts).exec(this.client);zdiffstore=(...n)=>new Vt(n,this.opts).exec(this.client);zincrby=(n,t,o)=>new Kt([n,t,o],this.opts).exec(this.client);zinterstore=(...n)=>new Nt(n,this.opts).exec(this.client);zlexcount=(...n)=>new Pt(n,this.opts).exec(this.client);zmscore=(...n)=>new Qt(n,this.opts).exec(this.client);zpopmax=(...n)=>new Zt(n,this.opts).exec(this.client);zpopmin=(...n)=>new Gt(n,this.opts).exec(this.client);zrange=(...n)=>new Ut(n,this.opts).exec(this.client);zrank=(n,t)=>new Bt([n,t],this.opts).exec(this.client);zrem=(n,...t)=>new Ht([n,...t],this.opts).exec(this.client);zremrangebylex=(...n)=>new Ft(n,this.opts).exec(this.client);zremrangebyrank=(...n)=>new $t(n,this.opts).exec(this.client);zremrangebyscore=(...n)=>new qt(n,this.opts).exec(this.client);zrevrank=(n,t)=>new jt([n,t],this.opts).exec(this.client);zscan=(...n)=>new Xt(n,this.opts).exec(this.client);zscore=(n,t)=>new Wt([n,t],this.opts).exec(this.client);zunion=(...n)=>new Yt(n,this.opts).exec(this.client);zunionstore=(...n)=>new _t(n,this.opts).exec(this.client)};var ue="v0.0.0-ci.f5cad9e7bda3d77569d9df207b4e1565f75d6154";typeof atob>"u"&&(global.atob=function(s){return Buffer.from(s,"base64").toString("utf-8")});var he=class s extends re{constructor(n){if("request"in n){super(n);return}(n.url.startsWith(" ")||n.url.endsWith(" ")||/\r|\n/.test(n.url))&&console.warn("The redis url contains whitespace or newline, which can cause errors!"),(n.token.startsWith(" ")||n.token.endsWith(" ")||/\r|\n/.test(n.token))&&console.warn("The redis token contains whitespace or newline, which can cause errors!");let t=new ee({baseUrl:n.url,retry:n.retry,headers:{authorization:`Bearer ${n.token}`},agent:n.agent,responseEncoding:n.responseEncoding,cache:n.cache||"no-store"});super(t,{automaticDeserialization:n.automaticDeserialization,enableTelemetry:!process.env.UPSTASH_DISABLE_TELEMETRY}),this.addTelemetry({runtime:typeof EdgeRuntime=="string"?"edge-light":`node@${process.version}`,platform:process.env.VERCEL?"vercel":process.env.AWS_REGION?"aws":"unknown",sdk:`@upstash/redis@${ue}`})}static fromEnv(n){if(typeof process?.env>"u")throw new Error('Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from "@upstash/redis/cloudflare" instead');let t=process?.env.UPSTASH_REDIS_REST_URL;if(!t)throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_URL`");let o=process?.env.UPSTASH_REDIS_REST_TOKEN;if(!o)throw new Error("Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`");return new s({...n,url:t,token:o})}};export{he as Redis};
1
+ import {
2
+ HttpClient,
3
+ Redis,
4
+ VERSION,
5
+ error_exports
6
+ } from "./chunk-WTYE7OV3.mjs";
7
+
8
+ // platforms/nodejs.ts
9
+ if (typeof atob === "undefined") {
10
+ global.atob = (b64) => Buffer.from(b64, "base64").toString("utf8");
11
+ }
12
+ var Redis2 = class _Redis extends Redis {
13
+ /**
14
+ * Create a new redis client by providing a custom `Requester` implementation
15
+ *
16
+ * @example
17
+ * ```ts
18
+ *
19
+ * import { UpstashRequest, Requester, UpstashResponse, Redis } from "@upstash/redis"
20
+ *
21
+ * const requester: Requester = {
22
+ * request: <TResult>(req: UpstashRequest): Promise<UpstashResponse<TResult>> => {
23
+ * // ...
24
+ * }
25
+ * }
26
+ *
27
+ * const redis = new Redis(requester)
28
+ * ```
29
+ */
30
+ constructor(configOrRequester) {
31
+ if ("request" in configOrRequester) {
32
+ super(configOrRequester);
33
+ return;
34
+ }
35
+ if (!configOrRequester.url) {
36
+ console.warn(
37
+ `[Upstash Redis] The 'url' property is missing or undefined in your Redis config.`
38
+ );
39
+ } else if (configOrRequester.url.startsWith(" ") || configOrRequester.url.endsWith(" ") || /\r|\n/.test(configOrRequester.url)) {
40
+ console.warn(
41
+ "[Upstash Redis] The redis url contains whitespace or newline, which can cause errors!"
42
+ );
43
+ }
44
+ if (!configOrRequester.token) {
45
+ console.warn(
46
+ `[Upstash Redis] The 'token' property is missing or undefined in your Redis config.`
47
+ );
48
+ } else if (configOrRequester.token.startsWith(" ") || configOrRequester.token.endsWith(" ") || /\r|\n/.test(configOrRequester.token)) {
49
+ console.warn(
50
+ "[Upstash Redis] The redis token contains whitespace or newline, which can cause errors!"
51
+ );
52
+ }
53
+ const client = new HttpClient({
54
+ baseUrl: configOrRequester.url,
55
+ retry: configOrRequester.retry,
56
+ headers: { authorization: `Bearer ${configOrRequester.token}` },
57
+ agent: configOrRequester.agent,
58
+ responseEncoding: configOrRequester.responseEncoding,
59
+ cache: configOrRequester.cache ?? "no-store",
60
+ signal: configOrRequester.signal,
61
+ keepAlive: configOrRequester.keepAlive,
62
+ readYourWrites: configOrRequester.readYourWrites
63
+ });
64
+ super(client, {
65
+ automaticDeserialization: configOrRequester.automaticDeserialization,
66
+ enableTelemetry: configOrRequester.enableTelemetry ?? !process.env.UPSTASH_DISABLE_TELEMETRY,
67
+ latencyLogging: configOrRequester.latencyLogging,
68
+ enableAutoPipelining: configOrRequester.enableAutoPipelining
69
+ });
70
+ this.addTelemetry({
71
+ runtime: (
72
+ // @ts-expect-error to silence compiler
73
+ typeof EdgeRuntime === "string" ? "edge-light" : `node@${process.version}`
74
+ ),
75
+ platform: process.env.UPSTASH_CONSOLE ? "console" : process.env.VERCEL ? "vercel" : process.env.AWS_REGION ? "aws" : "unknown",
76
+ sdk: `@upstash/redis@${VERSION}`
77
+ });
78
+ if (this.enableAutoPipelining) {
79
+ return this.autoPipeline();
80
+ }
81
+ }
82
+ /**
83
+ * Create a new Upstash Redis instance from environment variables.
84
+ *
85
+ * Use this to automatically load connection secrets from your environment
86
+ * variables. For instance when using the Vercel integration.
87
+ *
88
+ * This tries to load connection details from your environment using `process.env`:
89
+ * - URL: `UPSTASH_REDIS_REST_URL` or fallback to `KV_REST_API_URL`
90
+ * - Token: `UPSTASH_REDIS_REST_TOKEN` or fallback to `KV_REST_API_TOKEN`
91
+ *
92
+ * The fallback variables provide compatibility with Vercel KV and other platforms
93
+ * that may use different naming conventions.
94
+ */
95
+ static fromEnv(config) {
96
+ if (process.env === void 0) {
97
+ throw new TypeError(
98
+ '[Upstash Redis] Unable to get environment variables, `process.env` is undefined. If you are deploying to cloudflare, please import from "@upstash/redis/cloudflare" instead'
99
+ );
100
+ }
101
+ const url = process.env.UPSTASH_REDIS_REST_URL || process.env.KV_REST_API_URL;
102
+ if (!url) {
103
+ console.warn("[Upstash Redis] Unable to find environment variable: `UPSTASH_REDIS_REST_URL`");
104
+ }
105
+ const token = process.env.UPSTASH_REDIS_REST_TOKEN || process.env.KV_REST_API_TOKEN;
106
+ if (!token) {
107
+ console.warn(
108
+ "[Upstash Redis] Unable to find environment variable: `UPSTASH_REDIS_REST_TOKEN`"
109
+ );
110
+ }
111
+ return new _Redis({ ...config, url, token });
112
+ }
113
+ };
114
+ export {
115
+ Redis2 as Redis,
116
+ error_exports as errors
117
+ };
package/package.json CHANGED
@@ -1,54 +1 @@
1
- {
2
- "name": "@upstash/redis",
3
- "version": "0.0.0-ci.f5cad9e7bda3d77569d9df207b4e1565f75d6154",
4
- "main": "./nodejs.js",
5
- "types": "./nodejs.d.ts",
6
- "description": "An HTTP/REST based Redis client built on top of Upstash REST API.",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/upstash/upstash-redis.git"
10
- },
11
- "keywords": [
12
- "redis",
13
- "database",
14
- "serverless",
15
- "edge",
16
- "upstash"
17
- ],
18
- "files": [
19
- "./**"
20
- ],
21
- "scripts": {
22
- "build": "tsup && cp README.md ./dist/ && cp package.json ./dist/ && cp LICENSE ./dist/",
23
- "test": "bun test pkg --coverage",
24
- "fmt": "bunx @biomejs/biome check --apply ./pkg"
25
- },
26
- "author": "Andreas Thomas <dev@chronark.com>",
27
- "license": "MIT",
28
- "bugs": {
29
- "url": "https://github.com/upstash/upstash-redis/issues"
30
- },
31
- "homepage": "https://github.com/upstash/upstash-redis#readme",
32
- "typesVersions": {
33
- "*": {
34
- "nodejs": [
35
- "./nodejs.d.ts"
36
- ],
37
- "cloudflare": [
38
- "./cloudflare.d.ts"
39
- ],
40
- "fastly": [
41
- "./fastly.d.ts"
42
- ]
43
- }
44
- },
45
- "devDependencies": {
46
- "@types/crypto-js": "^4.1.3",
47
- "bun-types": "^1.0.6",
48
- "tsup": "^7.2.0"
49
- },
50
- "dependencies": {
51
- "@biomejs/biome": "^1.3.0",
52
- "crypto-js": "^4.1.1"
53
- }
54
- }
1
+ {"name":"@upstash/redis","version":"v0.0.0-ci.f6da5d747c9564bc95fccdbfe16a9aa10cd30367-20251125191507","main":"./nodejs.js","module":"./nodejs.mjs","types":"./nodejs.d.ts","exports":{".":{"import":"./nodejs.mjs","require":"./nodejs.js"},"./node":{"import":"./nodejs.mjs","require":"./nodejs.js"},"./cloudflare":{"import":"./cloudflare.mjs","require":"./cloudflare.js"},"./cloudflare.js":{"import":"./cloudflare.mjs","require":"./cloudflare.js"},"./cloudflare.mjs":{"import":"./cloudflare.mjs","require":"./cloudflare.js"},"./fastly":{"import":"./fastly.mjs","require":"./fastly.js"},"./fastly.js":{"import":"./fastly.mjs","require":"./fastly.js"},"./fastly.mjs":{"import":"./fastly.mjs","require":"./fastly.js"}},"description":"An HTTP/REST based Redis client built on top of Upstash REST API.","repository":{"type":"git","url":"git+https://github.com/upstash/upstash-redis.git"},"keywords":["redis","database","serverless","edge","upstash"],"files":["./*"],"scripts":{"build":"tsup && cp package.json README.md LICENSE dist/","test":"bun test pkg","fmt":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"","lint":"eslint \"**/*.{js,ts,tsx}\" --quiet --fix","format":"prettier --write \"**/*.{ts,tsx,js,jsx,json,md}\"","format:check":"prettier --check \"**/*.{ts,tsx,js,jsx,json,md}\"","lint:fix":"eslint . -c .ts,.tsx,.js,.jsx --fix","commit":"cz","lint:format":"bun run lint:fix && bun run format","check-exports":"bun run build && cd dist && attw -P"},"author":"Andreas Thomas <dev@chronark.com>","license":"MIT","bugs":{"url":"https://github.com/upstash/upstash-redis/issues"},"homepage":"https://github.com/upstash/upstash-redis#readme","devDependencies":{"@biomejs/biome":"latest","@commitlint/cli":"^19.3.0","@commitlint/config-conventional":"^19.2.2","@typescript-eslint/eslint-plugin":"8.4.0","@typescript-eslint/parser":"8.4.0","bun-types":"1.0.33","eslint":"9.10.0","eslint-plugin-unicorn":"55.0.0","husky":"^9.1.1","prettier":"^3.3.3","tsup":"^8.2.3","typescript":"latest"},"dependencies":{"uncrypto":"^0.1.3"}}