@upstash/redis 0.0.0-ci.df9c9bb7 → 0.0.0-ci.e0fa2b9d-20230419
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -18
- package/esm/deps/deno.land/x/base64@v0.2.1/base.js +100 -0
- package/esm/deps/deno.land/x/base64@v0.2.1/base64url.js +9 -0
- package/esm/deps/deno.land/x/sha1@v1.0.3/deps.js +1 -0
- package/esm/deps/deno.land/x/sha1@v1.0.3/mod.js +191 -0
- package/esm/deps/denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.js +50 -0
- package/esm/pkg/commands/command.js +12 -3
- package/esm/pkg/commands/getdel.js +9 -0
- package/esm/pkg/commands/hgetall.js +0 -4
- package/esm/pkg/commands/hrandfield.js +39 -0
- package/esm/pkg/commands/json_arrappend.js +9 -0
- package/esm/pkg/commands/json_arrindex.js +9 -0
- package/esm/pkg/commands/json_arrinsert.js +9 -0
- package/esm/pkg/commands/json_arrlen.js +9 -0
- package/esm/pkg/commands/json_arrpop.js +9 -0
- package/esm/pkg/commands/json_arrtrim.js +12 -0
- package/esm/pkg/commands/json_clear.js +9 -0
- package/esm/pkg/commands/json_del.js +9 -0
- package/esm/pkg/commands/json_forget.js +9 -0
- package/esm/pkg/commands/json_get.js +30 -0
- package/esm/pkg/commands/json_mget.js +9 -0
- package/esm/pkg/commands/json_numincrby.js +9 -0
- package/esm/pkg/commands/json_nummultby.js +9 -0
- package/esm/pkg/commands/json_objkeys.js +9 -0
- package/esm/pkg/commands/json_objlen.js +9 -0
- package/esm/pkg/commands/json_resp.js +9 -0
- package/esm/pkg/commands/json_set.js +18 -0
- package/esm/pkg/commands/json_strappend.js +9 -0
- package/esm/pkg/commands/json_strlen.js +9 -0
- package/esm/pkg/commands/json_toggle.js +9 -0
- package/esm/pkg/commands/json_type.js +9 -0
- package/esm/pkg/commands/lmove.js +9 -0
- package/esm/pkg/commands/mod.js +25 -0
- package/esm/pkg/commands/scan.js +3 -0
- package/esm/pkg/commands/set.js +16 -4
- package/esm/pkg/commands/smismember.js +9 -0
- package/esm/pkg/commands/zdiffstore.js +9 -0
- package/esm/pkg/commands/zmscore.js +10 -0
- package/esm/pkg/http.js +92 -2
- package/esm/pkg/pipeline.js +163 -6
- package/esm/pkg/redis.js +202 -2
- package/esm/pkg/script.js +77 -0
- package/esm/platforms/cloudflare.js +10 -2
- package/esm/platforms/fastly.js +6 -0
- package/esm/platforms/node_with_fetch.js +26 -1
- package/esm/platforms/nodejs.js +22 -1
- package/esm/version.js +1 -0
- package/package.json +41 -54
- package/script/deps/deno.land/x/base64@v0.2.1/base.js +104 -0
- package/script/deps/deno.land/x/base64@v0.2.1/base64url.js +13 -0
- package/script/deps/deno.land/x/sha1@v1.0.3/deps.js +6 -0
- package/script/deps/deno.land/x/sha1@v1.0.3/mod.js +196 -0
- package/script/deps/denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.js +55 -0
- package/script/pkg/commands/command.js +12 -3
- package/script/pkg/commands/getdel.js +13 -0
- package/script/pkg/commands/hgetall.js +0 -4
- package/script/pkg/commands/hrandfield.js +43 -0
- package/script/pkg/commands/json_arrappend.js +13 -0
- package/script/pkg/commands/json_arrindex.js +13 -0
- package/script/pkg/commands/json_arrinsert.js +13 -0
- package/script/pkg/commands/json_arrlen.js +13 -0
- package/script/pkg/commands/json_arrpop.js +13 -0
- package/script/pkg/commands/json_arrtrim.js +16 -0
- package/script/pkg/commands/json_clear.js +13 -0
- package/script/pkg/commands/json_del.js +13 -0
- package/script/pkg/commands/json_forget.js +13 -0
- package/script/pkg/commands/json_get.js +34 -0
- package/script/pkg/commands/json_mget.js +13 -0
- package/script/pkg/commands/json_numincrby.js +13 -0
- package/script/pkg/commands/json_nummultby.js +13 -0
- package/script/pkg/commands/json_objkeys.js +13 -0
- package/script/pkg/commands/json_objlen.js +13 -0
- package/script/pkg/commands/json_resp.js +13 -0
- package/script/pkg/commands/json_set.js +22 -0
- package/script/pkg/commands/json_strappend.js +13 -0
- package/script/pkg/commands/json_strlen.js +13 -0
- package/script/pkg/commands/json_toggle.js +13 -0
- package/script/pkg/commands/json_type.js +13 -0
- package/script/pkg/commands/lmove.js +13 -0
- package/script/pkg/commands/mod.js +25 -0
- package/script/pkg/commands/scan.js +3 -0
- package/script/pkg/commands/set.js +16 -4
- package/script/pkg/commands/smismember.js +13 -0
- package/script/pkg/commands/zdiffstore.js +13 -0
- package/script/pkg/commands/zmscore.js +14 -0
- package/script/pkg/http.js +92 -2
- package/script/pkg/pipeline.js +162 -5
- package/script/pkg/redis.js +201 -1
- package/script/pkg/script.js +81 -0
- package/script/platforms/cloudflare.js +10 -2
- package/script/platforms/fastly.js +6 -0
- package/script/platforms/node_with_fetch.js +26 -1
- package/script/platforms/nodejs.js +22 -1
- package/script/version.js +4 -0
- package/types/deps/deno.land/x/base64@v0.2.1/base.d.ts +5 -0
- package/types/deps/deno.land/x/base64@v0.2.1/base64url.d.ts +1 -0
- package/types/deps/deno.land/x/sha1@v1.0.3/deps.d.ts +1 -0
- package/types/deps/deno.land/x/sha1@v1.0.3/mod.d.ts +26 -0
- package/types/deps/denopkg.com/chiefbiiko/std-encoding@v1.0.0/mod.d.ts +3 -0
- package/types/pkg/commands/bitop.d.ts +0 -1
- package/types/pkg/commands/command.d.ts +5 -5
- package/types/pkg/commands/getdel.d.ts +7 -0
- package/types/pkg/commands/hrandfield.d.ts +9 -0
- package/types/pkg/commands/json_arrappend.d.ts +7 -0
- package/types/pkg/commands/json_arrindex.d.ts +13 -0
- package/types/pkg/commands/json_arrinsert.d.ts +7 -0
- package/types/pkg/commands/json_arrlen.d.ts +7 -0
- package/types/pkg/commands/json_arrpop.d.ts +7 -0
- package/types/pkg/commands/json_arrtrim.d.ts +7 -0
- package/types/pkg/commands/json_clear.d.ts +7 -0
- package/types/pkg/commands/json_del.d.ts +7 -0
- package/types/pkg/commands/json_forget.d.ts +7 -0
- package/types/pkg/commands/json_get.d.ts +15 -0
- package/types/pkg/commands/json_mget.d.ts +7 -0
- package/types/pkg/commands/json_numincrby.d.ts +7 -0
- package/types/pkg/commands/json_nummultby.d.ts +7 -0
- package/types/pkg/commands/json_objkeys.d.ts +7 -0
- package/types/pkg/commands/json_objlen.d.ts +7 -0
- package/types/pkg/commands/json_resp.d.ts +7 -0
- package/types/pkg/commands/json_set.d.ts +18 -0
- package/types/pkg/commands/json_strappend.d.ts +7 -0
- package/types/pkg/commands/json_strlen.d.ts +7 -0
- package/types/pkg/commands/json_toggle.d.ts +7 -0
- package/types/pkg/commands/json_type.d.ts +7 -0
- package/types/pkg/commands/lmove.d.ts +12 -0
- package/types/pkg/commands/mget.d.ts +1 -1
- package/types/pkg/commands/mod.d.ts +25 -0
- package/types/pkg/commands/scan.d.ts +2 -1
- package/types/pkg/commands/script_flush.d.ts +1 -1
- package/types/pkg/commands/set.d.ts +31 -2
- package/types/pkg/commands/smembers.d.ts +2 -2
- package/types/pkg/commands/smismember.d.ts +7 -0
- package/types/pkg/commands/type.d.ts +1 -1
- package/types/pkg/commands/zadd.d.ts +4 -4
- package/types/pkg/commands/zdiffstore.d.ts +7 -0
- package/types/pkg/commands/zinterstore.d.ts +1 -1
- package/types/pkg/commands/zmscore.d.ts +7 -0
- package/types/pkg/commands/zrange.d.ts +1 -1
- package/types/pkg/commands/zunionstore.d.ts +1 -1
- package/types/pkg/http.d.ts +44 -7
- package/types/pkg/pipeline.d.ts +61 -6
- package/types/pkg/redis.d.ts +143 -12
- package/types/pkg/script.d.ts +42 -0
- package/types/pkg/types.d.ts +27 -1
- package/types/platforms/cloudflare.d.ts +9 -8
- package/types/platforms/fastly.d.ts +3 -7
- package/types/platforms/node_with_fetch.d.ts +3 -22
- package/types/platforms/nodejs.d.ts +4 -7
- package/types/version.d.ts +1 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonNumIncrByCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.numincrby
|
|
7
|
+
*/
|
|
8
|
+
class JsonNumIncrByCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.NUMINCRBY", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonNumIncrByCommand = JsonNumIncrByCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonNumMultByCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.nummultby
|
|
7
|
+
*/
|
|
8
|
+
class JsonNumMultByCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.NUMMULTBY", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonNumMultByCommand = JsonNumMultByCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonObjKeysCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.objkeys
|
|
7
|
+
*/
|
|
8
|
+
class JsonObjKeysCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.OBJKEYS", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonObjKeysCommand = JsonObjKeysCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonObjLenCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.objlen
|
|
7
|
+
*/
|
|
8
|
+
class JsonObjLenCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.OBJLEN", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonObjLenCommand = JsonObjLenCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonRespCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.resp
|
|
7
|
+
*/
|
|
8
|
+
class JsonRespCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.RESP", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonRespCommand = JsonRespCommand;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonSetCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.set
|
|
7
|
+
*/
|
|
8
|
+
class JsonSetCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
const command = ["JSON.SET", cmd[0], cmd[1], cmd[2]];
|
|
11
|
+
if (cmd[3]) {
|
|
12
|
+
if (cmd[3].nx) {
|
|
13
|
+
command.push("NX");
|
|
14
|
+
}
|
|
15
|
+
else if (cmd[3].xx) {
|
|
16
|
+
command.push("XX");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
super(command, opts);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.JsonSetCommand = JsonSetCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonStrAppendCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.strappend
|
|
7
|
+
*/
|
|
8
|
+
class JsonStrAppendCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.STRAPPEND", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonStrAppendCommand = JsonStrAppendCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonStrLenCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.strlen
|
|
7
|
+
*/
|
|
8
|
+
class JsonStrLenCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.STRLEN", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonStrLenCommand = JsonStrLenCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonToggleCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.toggle
|
|
7
|
+
*/
|
|
8
|
+
class JsonToggleCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.TOGGLE", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonToggleCommand = JsonToggleCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonTypeCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.type
|
|
7
|
+
*/
|
|
8
|
+
class JsonTypeCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.TYPE", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonTypeCommand = JsonTypeCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LMoveCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/lmove
|
|
7
|
+
*/
|
|
8
|
+
class LMoveCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["lmove", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.LMoveCommand = LMoveCommand;
|
|
@@ -33,6 +33,7 @@ __exportStar(require("./flushall.js"), exports);
|
|
|
33
33
|
__exportStar(require("./flushdb.js"), exports);
|
|
34
34
|
__exportStar(require("./get.js"), exports);
|
|
35
35
|
__exportStar(require("./getbit.js"), exports);
|
|
36
|
+
__exportStar(require("./getdel.js"), exports);
|
|
36
37
|
__exportStar(require("./getrange.js"), exports);
|
|
37
38
|
__exportStar(require("./getset.js"), exports);
|
|
38
39
|
__exportStar(require("./hdel.js"), exports);
|
|
@@ -45,6 +46,7 @@ __exportStar(require("./hkeys.js"), exports);
|
|
|
45
46
|
__exportStar(require("./hlen.js"), exports);
|
|
46
47
|
__exportStar(require("./hmget.js"), exports);
|
|
47
48
|
__exportStar(require("./hmset.js"), exports);
|
|
49
|
+
__exportStar(require("./hrandfield.js"), exports);
|
|
48
50
|
__exportStar(require("./hscan.js"), exports);
|
|
49
51
|
__exportStar(require("./hset.js"), exports);
|
|
50
52
|
__exportStar(require("./hsetnx.js"), exports);
|
|
@@ -53,10 +55,32 @@ __exportStar(require("./hvals.js"), exports);
|
|
|
53
55
|
__exportStar(require("./incr.js"), exports);
|
|
54
56
|
__exportStar(require("./incrby.js"), exports);
|
|
55
57
|
__exportStar(require("./incrbyfloat.js"), exports);
|
|
58
|
+
__exportStar(require("./json_arrappend.js"), exports);
|
|
59
|
+
__exportStar(require("./json_arrindex.js"), exports);
|
|
60
|
+
__exportStar(require("./json_arrinsert.js"), exports);
|
|
61
|
+
__exportStar(require("./json_arrlen.js"), exports);
|
|
62
|
+
__exportStar(require("./json_arrpop.js"), exports);
|
|
63
|
+
__exportStar(require("./json_arrtrim.js"), exports);
|
|
64
|
+
__exportStar(require("./json_clear.js"), exports);
|
|
65
|
+
__exportStar(require("./json_del.js"), exports);
|
|
66
|
+
__exportStar(require("./json_forget.js"), exports);
|
|
67
|
+
__exportStar(require("./json_get.js"), exports);
|
|
68
|
+
__exportStar(require("./json_mget.js"), exports);
|
|
69
|
+
__exportStar(require("./json_numincrby.js"), exports);
|
|
70
|
+
__exportStar(require("./json_nummultby.js"), exports);
|
|
71
|
+
__exportStar(require("./json_objkeys.js"), exports);
|
|
72
|
+
__exportStar(require("./json_objlen.js"), exports);
|
|
73
|
+
__exportStar(require("./json_resp.js"), exports);
|
|
74
|
+
__exportStar(require("./json_set.js"), exports);
|
|
75
|
+
__exportStar(require("./json_strappend.js"), exports);
|
|
76
|
+
__exportStar(require("./json_strlen.js"), exports);
|
|
77
|
+
__exportStar(require("./json_toggle.js"), exports);
|
|
78
|
+
__exportStar(require("./json_type.js"), exports);
|
|
56
79
|
__exportStar(require("./keys.js"), exports);
|
|
57
80
|
__exportStar(require("./lindex.js"), exports);
|
|
58
81
|
__exportStar(require("./linsert.js"), exports);
|
|
59
82
|
__exportStar(require("./llen.js"), exports);
|
|
83
|
+
__exportStar(require("./lmove.js"), exports);
|
|
60
84
|
__exportStar(require("./lpop.js"), exports);
|
|
61
85
|
__exportStar(require("./lpos.js"), exports);
|
|
62
86
|
__exportStar(require("./lpush.js"), exports);
|
|
@@ -98,6 +122,7 @@ __exportStar(require("./sinter.js"), exports);
|
|
|
98
122
|
__exportStar(require("./sinterstore.js"), exports);
|
|
99
123
|
__exportStar(require("./sismember.js"), exports);
|
|
100
124
|
__exportStar(require("./smembers.js"), exports);
|
|
125
|
+
__exportStar(require("./smismember.js"), exports);
|
|
101
126
|
__exportStar(require("./smove.js"), exports);
|
|
102
127
|
__exportStar(require("./spop.js"), exports);
|
|
103
128
|
__exportStar(require("./srandmember.js"), exports);
|
|
@@ -9,17 +9,29 @@ class SetCommand extends command_js_1.Command {
|
|
|
9
9
|
constructor([key, value, opts], cmdOpts) {
|
|
10
10
|
const command = ["set", key, value];
|
|
11
11
|
if (opts) {
|
|
12
|
+
if ("nx" in opts && opts.nx) {
|
|
13
|
+
command.push("nx");
|
|
14
|
+
}
|
|
15
|
+
else if ("xx" in opts && opts.xx) {
|
|
16
|
+
command.push("xx");
|
|
17
|
+
}
|
|
18
|
+
if ("get" in opts && opts.get) {
|
|
19
|
+
command.push("get");
|
|
20
|
+
}
|
|
12
21
|
if ("ex" in opts && typeof opts.ex === "number") {
|
|
13
22
|
command.push("ex", opts.ex);
|
|
14
23
|
}
|
|
15
24
|
else if ("px" in opts && typeof opts.px === "number") {
|
|
16
25
|
command.push("px", opts.px);
|
|
17
26
|
}
|
|
18
|
-
if ("
|
|
19
|
-
command.push("
|
|
27
|
+
else if ("exat" in opts && typeof opts.exat === "number") {
|
|
28
|
+
command.push("exat", opts.exat);
|
|
20
29
|
}
|
|
21
|
-
else if ("
|
|
22
|
-
command.push("
|
|
30
|
+
else if ("pxat" in opts && typeof opts.pxat === "number") {
|
|
31
|
+
command.push("pxat", opts.pxat);
|
|
32
|
+
}
|
|
33
|
+
else if ("keepTtl" in opts && opts.keepTtl) {
|
|
34
|
+
command.push("keepTtl", opts.keepTtl);
|
|
23
35
|
}
|
|
24
36
|
}
|
|
25
37
|
super(command, cmdOpts);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SMIsMemberCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/smismember
|
|
7
|
+
*/
|
|
8
|
+
class SMIsMemberCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["smismember", cmd[0], ...cmd[1]], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.SMIsMemberCommand = SMIsMemberCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZDiffStoreCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/zdiffstore
|
|
7
|
+
*/
|
|
8
|
+
class ZDiffStoreCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["zdiffstore", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ZDiffStoreCommand = ZDiffStoreCommand;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZMScoreCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/zmscore
|
|
7
|
+
*/
|
|
8
|
+
class ZMScoreCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
const [key, members] = cmd;
|
|
11
|
+
super(["zmscore", key, ...members], opts);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.ZMScoreCommand = ZMScoreCommand;
|
package/script/pkg/http.js
CHANGED
|
@@ -28,9 +28,20 @@ class HttpClient {
|
|
|
28
28
|
writable: true,
|
|
29
29
|
value: void 0
|
|
30
30
|
});
|
|
31
|
+
this.options = {
|
|
32
|
+
backend: config.options?.backend,
|
|
33
|
+
agent: config.agent,
|
|
34
|
+
responseEncoding: config.responseEncoding ?? "base64",
|
|
35
|
+
cache: config.cache,
|
|
36
|
+
};
|
|
31
37
|
this.baseUrl = config.baseUrl.replace(/\/$/, "");
|
|
32
|
-
this.headers = {
|
|
33
|
-
|
|
38
|
+
this.headers = {
|
|
39
|
+
"Content-Type": "application/json",
|
|
40
|
+
...config.headers,
|
|
41
|
+
};
|
|
42
|
+
if (this.options.responseEncoding === "base64") {
|
|
43
|
+
this.headers["Upstash-Encoding"] = "base64";
|
|
44
|
+
}
|
|
34
45
|
if (typeof config?.retry === "boolean" && config?.retry === false) {
|
|
35
46
|
this.retry = {
|
|
36
47
|
attempts: 1,
|
|
@@ -45,12 +56,31 @@ class HttpClient {
|
|
|
45
56
|
};
|
|
46
57
|
}
|
|
47
58
|
}
|
|
59
|
+
mergeTelemetry(telemetry) {
|
|
60
|
+
function merge(obj, key, value) {
|
|
61
|
+
if (!value) {
|
|
62
|
+
return obj;
|
|
63
|
+
}
|
|
64
|
+
if (obj[key]) {
|
|
65
|
+
obj[key] = [obj[key], value].join(",");
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
obj[key] = value;
|
|
69
|
+
}
|
|
70
|
+
return obj;
|
|
71
|
+
}
|
|
72
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Runtime", telemetry.runtime);
|
|
73
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Platform", telemetry.platform);
|
|
74
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Sdk", telemetry.sdk);
|
|
75
|
+
}
|
|
48
76
|
async request(req) {
|
|
49
77
|
const requestOptions = {
|
|
78
|
+
cache: this.options.cache,
|
|
50
79
|
method: "POST",
|
|
51
80
|
headers: this.headers,
|
|
52
81
|
body: JSON.stringify(req.body),
|
|
53
82
|
keepalive: true,
|
|
83
|
+
agent: this.options?.agent,
|
|
54
84
|
/**
|
|
55
85
|
* Fastly specific
|
|
56
86
|
*/
|
|
@@ -75,7 +105,67 @@ class HttpClient {
|
|
|
75
105
|
if (!res.ok) {
|
|
76
106
|
throw new error_js_1.UpstashError(body.error);
|
|
77
107
|
}
|
|
108
|
+
if (this.options?.responseEncoding === "base64") {
|
|
109
|
+
return Array.isArray(body) ? body.map(decode) : decode(body);
|
|
110
|
+
}
|
|
78
111
|
return body;
|
|
79
112
|
}
|
|
80
113
|
}
|
|
81
114
|
exports.HttpClient = HttpClient;
|
|
115
|
+
function base64decode(b64) {
|
|
116
|
+
let dec = "";
|
|
117
|
+
try {
|
|
118
|
+
/**
|
|
119
|
+
* Using only atob() is not enough because it doesn't work with unicode characters
|
|
120
|
+
*/
|
|
121
|
+
const binString = atob(b64);
|
|
122
|
+
const size = binString.length;
|
|
123
|
+
const bytes = new Uint8Array(size);
|
|
124
|
+
for (let i = 0; i < size; i++) {
|
|
125
|
+
bytes[i] = binString.charCodeAt(i);
|
|
126
|
+
}
|
|
127
|
+
dec = new TextDecoder().decode(bytes);
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
dec = b64;
|
|
131
|
+
}
|
|
132
|
+
return dec;
|
|
133
|
+
// try {
|
|
134
|
+
// return decodeURIComponent(dec);
|
|
135
|
+
// } catch {
|
|
136
|
+
// return dec;
|
|
137
|
+
// }
|
|
138
|
+
}
|
|
139
|
+
function decode(raw) {
|
|
140
|
+
let result = undefined;
|
|
141
|
+
switch (typeof raw.result) {
|
|
142
|
+
case "undefined":
|
|
143
|
+
return raw;
|
|
144
|
+
case "number": {
|
|
145
|
+
result = raw.result;
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
case "object": {
|
|
149
|
+
if (Array.isArray(raw.result)) {
|
|
150
|
+
result = raw.result.map((v) => typeof v === "string"
|
|
151
|
+
? base64decode(v)
|
|
152
|
+
: Array.isArray(v)
|
|
153
|
+
? v.map(base64decode)
|
|
154
|
+
: v);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// If it's not an array it must be null
|
|
158
|
+
// Apparently null is an object in javascript
|
|
159
|
+
result = null;
|
|
160
|
+
}
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case "string": {
|
|
164
|
+
result = raw.result === "OK" ? "OK" : base64decode(raw.result);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
default:
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
return { result, error: raw.error };
|
|
171
|
+
}
|