@upstash/redis 0.0.0-ci.ec2c4106-20221122 → 0.0.0-ci.ed40a9ac-20230414
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 +9 -2
- package/esm/pkg/commands/command.js +12 -3
- 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 -1
- package/esm/pkg/commands/smismember.js +9 -0
- package/esm/pkg/commands/zdiffstore.js +9 -0
- package/esm/pkg/http.js +27 -18
- package/esm/pkg/pipeline.js +131 -1
- package/esm/pkg/redis.js +155 -1
- package/esm/platforms/cloudflare.js +6 -6
- package/esm/platforms/fastly.js +5 -0
- package/esm/platforms/node_with_fetch.js +23 -11
- package/esm/platforms/nodejs.js +19 -11
- package/esm/version.js +1 -1
- package/package.json +41 -16
- package/script/pkg/commands/command.js +12 -3
- 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 -1
- package/script/pkg/commands/smismember.js +13 -0
- package/script/pkg/commands/zdiffstore.js +13 -0
- package/script/pkg/http.js +27 -18
- package/script/pkg/pipeline.js +130 -0
- package/script/pkg/redis.js +154 -0
- package/script/platforms/cloudflare.js +6 -6
- package/script/platforms/fastly.js +5 -0
- package/script/platforms/node_with_fetch.js +23 -11
- package/script/platforms/nodejs.js +19 -11
- package/script/version.js +1 -1
- package/types/pkg/commands/command.d.ts +5 -5
- 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/mod.d.ts +25 -1
- package/types/pkg/commands/scan.d.ts +1 -1
- package/types/pkg/commands/script_flush.d.ts +1 -1
- package/types/pkg/commands/set.d.ts +1 -1
- 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 +3 -3
- package/types/pkg/commands/zdiffstore.d.ts +7 -0
- package/types/pkg/commands/zinterstore.d.ts +1 -1
- package/types/pkg/commands/zrange.d.ts +1 -1
- package/types/pkg/commands/zunionstore.d.ts +1 -1
- package/types/pkg/http.d.ts +13 -24
- package/types/pkg/pipeline.d.ts +44 -2
- package/types/pkg/redis.d.ts +120 -10
- package/types/pkg/types.d.ts +27 -1
- package/types/platforms/cloudflare.d.ts +2 -2
- package/types/platforms/fastly.d.ts +1 -1
- package/types/platforms/node_with_fetch.d.ts +1 -1
- package/types/platforms/nodejs.d.ts +1 -1
- package/types/version.d.ts +1 -1
package/script/pkg/pipeline.js
CHANGED
|
@@ -4,6 +4,8 @@ exports.Pipeline = void 0;
|
|
|
4
4
|
const mod_js_1 = require("./commands/mod.js");
|
|
5
5
|
const error_js_1 = require("./error.js");
|
|
6
6
|
const zmscore_js_1 = require("./commands/zmscore.js");
|
|
7
|
+
const hrandfield_js_1 = require("./commands/hrandfield.js");
|
|
8
|
+
const zdiffstore_js_1 = require("./commands/zdiffstore.js");
|
|
7
9
|
/**
|
|
8
10
|
* Upstash REST API supports command pipelining to send multiple commands in
|
|
9
11
|
* batch, instead of sending each command one by one and waiting for a response.
|
|
@@ -135,6 +137,15 @@ class Pipeline {
|
|
|
135
137
|
writable: true,
|
|
136
138
|
value: (...args) => this.chain(new mod_js_1.BitPosCommand(args, this.commandOptions))
|
|
137
139
|
});
|
|
140
|
+
/**
|
|
141
|
+
* @see https://redis.io/commands/zdiffstore
|
|
142
|
+
*/
|
|
143
|
+
Object.defineProperty(this, "zdiffstore", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
configurable: true,
|
|
146
|
+
writable: true,
|
|
147
|
+
value: (...args) => this.chain(new zdiffstore_js_1.ZDiffStoreCommand(args, this.commandOptions))
|
|
148
|
+
});
|
|
138
149
|
/**
|
|
139
150
|
* @see https://redis.io/commands/dbsize
|
|
140
151
|
*/
|
|
@@ -378,6 +389,15 @@ class Pipeline {
|
|
|
378
389
|
writable: true,
|
|
379
390
|
value: (key, kv) => this.chain(new mod_js_1.HMSetCommand([key, kv], this.commandOptions))
|
|
380
391
|
});
|
|
392
|
+
/**
|
|
393
|
+
* @see https://redis.io/commands/hrandfield
|
|
394
|
+
*/
|
|
395
|
+
Object.defineProperty(this, "hrandfield", {
|
|
396
|
+
enumerable: true,
|
|
397
|
+
configurable: true,
|
|
398
|
+
writable: true,
|
|
399
|
+
value: (key, count, withValues) => this.chain(new hrandfield_js_1.HRandFieldCommand([key, count, withValues], this.commandOptions))
|
|
400
|
+
});
|
|
381
401
|
/**
|
|
382
402
|
* @see https://redis.io/commands/hscan
|
|
383
403
|
*/
|
|
@@ -486,6 +506,15 @@ class Pipeline {
|
|
|
486
506
|
writable: true,
|
|
487
507
|
value: (...args) => this.chain(new mod_js_1.LLenCommand(args, this.commandOptions))
|
|
488
508
|
});
|
|
509
|
+
/**
|
|
510
|
+
* @see https://redis.io/commands/lmove
|
|
511
|
+
*/
|
|
512
|
+
Object.defineProperty(this, "lmove", {
|
|
513
|
+
enumerable: true,
|
|
514
|
+
configurable: true,
|
|
515
|
+
writable: true,
|
|
516
|
+
value: (...args) => this.chain(new mod_js_1.LMoveCommand(args, this.commandOptions))
|
|
517
|
+
});
|
|
489
518
|
/**
|
|
490
519
|
* @see https://redis.io/commands/lpop
|
|
491
520
|
*/
|
|
@@ -855,6 +884,15 @@ class Pipeline {
|
|
|
855
884
|
writable: true,
|
|
856
885
|
value: (...args) => this.chain(new mod_js_1.SMembersCommand(args, this.commandOptions))
|
|
857
886
|
});
|
|
887
|
+
/**
|
|
888
|
+
* @see https://redis.io/commands/smismember
|
|
889
|
+
*/
|
|
890
|
+
Object.defineProperty(this, "smismember", {
|
|
891
|
+
enumerable: true,
|
|
892
|
+
configurable: true,
|
|
893
|
+
writable: true,
|
|
894
|
+
value: (key, members) => this.chain(new mod_js_1.SMIsMemberCommand([key, members], this.commandOptions))
|
|
895
|
+
});
|
|
858
896
|
/**
|
|
859
897
|
* @see https://redis.io/commands/smove
|
|
860
898
|
*/
|
|
@@ -1161,5 +1199,97 @@ class Pipeline {
|
|
|
1161
1199
|
this.commands.push(command);
|
|
1162
1200
|
return this;
|
|
1163
1201
|
}
|
|
1202
|
+
/**
|
|
1203
|
+
* @see https://redis.io/commands/?group=json
|
|
1204
|
+
*/
|
|
1205
|
+
get json() {
|
|
1206
|
+
// For some reason we needed to define the types manually, otherwise Deno wouldn't build it
|
|
1207
|
+
return {
|
|
1208
|
+
/**
|
|
1209
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1210
|
+
*/
|
|
1211
|
+
arrappend: (...args) => this.chain(new mod_js_1.JsonArrAppendCommand(args, this.commandOptions)),
|
|
1212
|
+
/**
|
|
1213
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1214
|
+
*/
|
|
1215
|
+
arrindex: (...args) => this.chain(new mod_js_1.JsonArrIndexCommand(args, this.commandOptions)),
|
|
1216
|
+
/**
|
|
1217
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1218
|
+
*/
|
|
1219
|
+
arrinsert: (...args) => this.chain(new mod_js_1.JsonArrInsertCommand(args, this.commandOptions)),
|
|
1220
|
+
/**
|
|
1221
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1222
|
+
*/
|
|
1223
|
+
arrlen: (...args) => this.chain(new mod_js_1.JsonArrLenCommand(args, this.commandOptions)),
|
|
1224
|
+
/**
|
|
1225
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1226
|
+
*/
|
|
1227
|
+
arrpop: (...args) => this.chain(new mod_js_1.JsonArrPopCommand(args, this.commandOptions)),
|
|
1228
|
+
/**
|
|
1229
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1230
|
+
*/
|
|
1231
|
+
arrtrim: (...args) => this.chain(new mod_js_1.JsonArrTrimCommand(args, this.commandOptions)),
|
|
1232
|
+
/**
|
|
1233
|
+
* @see https://redis.io/commands/json.clear
|
|
1234
|
+
*/
|
|
1235
|
+
clear: (...args) => this.chain(new mod_js_1.JsonClearCommand(args, this.commandOptions)),
|
|
1236
|
+
/**
|
|
1237
|
+
* @see https://redis.io/commands/json.del
|
|
1238
|
+
*/
|
|
1239
|
+
del: (...args) => this.chain(new mod_js_1.JsonDelCommand(args, this.commandOptions)),
|
|
1240
|
+
/**
|
|
1241
|
+
* @see https://redis.io/commands/json.forget
|
|
1242
|
+
*/
|
|
1243
|
+
forget: (...args) => this.chain(new mod_js_1.JsonForgetCommand(args, this.commandOptions)),
|
|
1244
|
+
/**
|
|
1245
|
+
* @see https://redis.io/commands/json.get
|
|
1246
|
+
*/
|
|
1247
|
+
get: (...args) => this.chain(new mod_js_1.JsonGetCommand(args, this.commandOptions)),
|
|
1248
|
+
/**
|
|
1249
|
+
* @see https://redis.io/commands/json.mget
|
|
1250
|
+
*/
|
|
1251
|
+
mget: (...args) => this.chain(new mod_js_1.JsonMGetCommand(args, this.commandOptions)),
|
|
1252
|
+
/**
|
|
1253
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1254
|
+
*/
|
|
1255
|
+
numincrby: (...args) => this.chain(new mod_js_1.JsonNumIncrByCommand(args, this.commandOptions)),
|
|
1256
|
+
/**
|
|
1257
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1258
|
+
*/
|
|
1259
|
+
nummultby: (...args) => this.chain(new mod_js_1.JsonNumMultByCommand(args, this.commandOptions)),
|
|
1260
|
+
/**
|
|
1261
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1262
|
+
*/
|
|
1263
|
+
objkeys: (...args) => this.chain(new mod_js_1.JsonObjKeysCommand(args, this.commandOptions)),
|
|
1264
|
+
/**
|
|
1265
|
+
* @see https://redis.io/commands/json.objlen
|
|
1266
|
+
*/
|
|
1267
|
+
objlen: (...args) => this.chain(new mod_js_1.JsonObjLenCommand(args, this.commandOptions)),
|
|
1268
|
+
/**
|
|
1269
|
+
* @see https://redis.io/commands/json.resp
|
|
1270
|
+
*/
|
|
1271
|
+
resp: (...args) => this.chain(new mod_js_1.JsonRespCommand(args, this.commandOptions)),
|
|
1272
|
+
/**
|
|
1273
|
+
* @see https://redis.io/commands/json.set
|
|
1274
|
+
*/
|
|
1275
|
+
set: (...args) => this.chain(new mod_js_1.JsonSetCommand(args, this.commandOptions)),
|
|
1276
|
+
/**
|
|
1277
|
+
* @see https://redis.io/commands/json.strappend
|
|
1278
|
+
*/
|
|
1279
|
+
strappend: (...args) => this.chain(new mod_js_1.JsonStrAppendCommand(args, this.commandOptions)),
|
|
1280
|
+
/**
|
|
1281
|
+
* @see https://redis.io/commands/json.strlen
|
|
1282
|
+
*/
|
|
1283
|
+
strlen: (...args) => this.chain(new mod_js_1.JsonStrLenCommand(args, this.commandOptions)),
|
|
1284
|
+
/**
|
|
1285
|
+
* @see https://redis.io/commands/json.toggle
|
|
1286
|
+
*/
|
|
1287
|
+
toggle: (...args) => this.chain(new mod_js_1.JsonToggleCommand(args, this.commandOptions)),
|
|
1288
|
+
/**
|
|
1289
|
+
* @see https://redis.io/commands/json.type
|
|
1290
|
+
*/
|
|
1291
|
+
type: (...args) => this.chain(new mod_js_1.JsonTypeCommand(args, this.commandOptions)),
|
|
1292
|
+
};
|
|
1293
|
+
}
|
|
1164
1294
|
}
|
|
1165
1295
|
exports.Pipeline = Pipeline;
|
package/script/pkg/redis.js
CHANGED
|
@@ -5,6 +5,7 @@ const mod_js_1 = require("./commands/mod.js");
|
|
|
5
5
|
const pipeline_js_1 = require("./pipeline.js");
|
|
6
6
|
const script_js_1 = require("./script.js");
|
|
7
7
|
const zmscore_js_1 = require("./commands/zmscore.js");
|
|
8
|
+
const zdiffstore_js_1 = require("./commands/zdiffstore.js");
|
|
8
9
|
/**
|
|
9
10
|
* Serverless redis client for upstash.
|
|
10
11
|
*/
|
|
@@ -33,6 +34,12 @@ class Redis {
|
|
|
33
34
|
writable: true,
|
|
34
35
|
value: void 0
|
|
35
36
|
});
|
|
37
|
+
Object.defineProperty(this, "enableTelemetry", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true,
|
|
41
|
+
value: void 0
|
|
42
|
+
});
|
|
36
43
|
/**
|
|
37
44
|
* Wrap a new middleware around the HTTP client.
|
|
38
45
|
*/
|
|
@@ -45,6 +52,27 @@ class Redis {
|
|
|
45
52
|
this.client.request = (req) => middleware(req, makeRequest);
|
|
46
53
|
}
|
|
47
54
|
});
|
|
55
|
+
/**
|
|
56
|
+
* Technically this is not private, we can hide it from intellisense by doing this
|
|
57
|
+
*/
|
|
58
|
+
Object.defineProperty(this, "addTelemetry", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
configurable: true,
|
|
61
|
+
writable: true,
|
|
62
|
+
value: (telemetry) => {
|
|
63
|
+
if (!this.enableTelemetry) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
// @ts-ignore - The `Requester` interface does not know about this method but it will be there
|
|
68
|
+
// as long as the user uses the standard HttpClient
|
|
69
|
+
this.client.mergeTelemetry(telemetry);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// ignore
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
48
76
|
/**
|
|
49
77
|
* Create a new pipeline that allows you to send requests in bulk.
|
|
50
78
|
*
|
|
@@ -358,6 +386,16 @@ class Redis {
|
|
|
358
386
|
writable: true,
|
|
359
387
|
value: (key, kv) => new mod_js_1.HMSetCommand([key, kv], this.opts).exec(this.client)
|
|
360
388
|
});
|
|
389
|
+
/**
|
|
390
|
+
* @see https://redis.io/commands/hrandfield
|
|
391
|
+
*/
|
|
392
|
+
Object.defineProperty(this, "hrandfield", {
|
|
393
|
+
enumerable: true,
|
|
394
|
+
configurable: true,
|
|
395
|
+
writable: true,
|
|
396
|
+
value: (key, count, withValues) => new mod_js_1.HRandFieldCommand([key, count, withValues], this.opts)
|
|
397
|
+
.exec(this.client)
|
|
398
|
+
});
|
|
361
399
|
/**
|
|
362
400
|
* @see https://redis.io/commands/hscan
|
|
363
401
|
*/
|
|
@@ -466,6 +504,15 @@ class Redis {
|
|
|
466
504
|
writable: true,
|
|
467
505
|
value: (...args) => new mod_js_1.LLenCommand(args, this.opts).exec(this.client)
|
|
468
506
|
});
|
|
507
|
+
/**
|
|
508
|
+
* @see https://redis.io/commands/lmove
|
|
509
|
+
*/
|
|
510
|
+
Object.defineProperty(this, "lmove", {
|
|
511
|
+
enumerable: true,
|
|
512
|
+
configurable: true,
|
|
513
|
+
writable: true,
|
|
514
|
+
value: (...args) => new mod_js_1.LMoveCommand(args, this.opts).exec(this.client)
|
|
515
|
+
});
|
|
469
516
|
/**
|
|
470
517
|
* @see https://redis.io/commands/lpop
|
|
471
518
|
*/
|
|
@@ -826,6 +873,15 @@ class Redis {
|
|
|
826
873
|
writable: true,
|
|
827
874
|
value: (key, member) => new mod_js_1.SIsMemberCommand([key, member], this.opts).exec(this.client)
|
|
828
875
|
});
|
|
876
|
+
/**
|
|
877
|
+
* @see https://redis.io/commands/smismember
|
|
878
|
+
*/
|
|
879
|
+
Object.defineProperty(this, "smismember", {
|
|
880
|
+
enumerable: true,
|
|
881
|
+
configurable: true,
|
|
882
|
+
writable: true,
|
|
883
|
+
value: (key, members) => new mod_js_1.SMIsMemberCommand([key, members], this.opts).exec(this.client)
|
|
884
|
+
});
|
|
829
885
|
/**
|
|
830
886
|
* @see https://redis.io/commands/smembers
|
|
831
887
|
*/
|
|
@@ -984,6 +1040,15 @@ class Redis {
|
|
|
984
1040
|
writable: true,
|
|
985
1041
|
value: (...args) => new mod_js_1.ZCountCommand(args, this.opts).exec(this.client)
|
|
986
1042
|
});
|
|
1043
|
+
/**
|
|
1044
|
+
* @see https://redis.io/commands/zdiffstore
|
|
1045
|
+
*/
|
|
1046
|
+
Object.defineProperty(this, "zdiffstore", {
|
|
1047
|
+
enumerable: true,
|
|
1048
|
+
configurable: true,
|
|
1049
|
+
writable: true,
|
|
1050
|
+
value: (...args) => new zdiffstore_js_1.ZDiffStoreCommand(args, this.opts).exec(this.client)
|
|
1051
|
+
});
|
|
987
1052
|
/**
|
|
988
1053
|
* @see https://redis.io/commands/zincrby
|
|
989
1054
|
*/
|
|
@@ -1130,6 +1195,95 @@ class Redis {
|
|
|
1130
1195
|
});
|
|
1131
1196
|
this.client = client;
|
|
1132
1197
|
this.opts = opts;
|
|
1198
|
+
this.enableTelemetry = opts?.enableTelemetry ?? true;
|
|
1199
|
+
}
|
|
1200
|
+
get json() {
|
|
1201
|
+
return {
|
|
1202
|
+
/**
|
|
1203
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1204
|
+
*/
|
|
1205
|
+
arrappend: (...args) => new mod_js_1.JsonArrAppendCommand(args, this.opts).exec(this.client),
|
|
1206
|
+
/**
|
|
1207
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1208
|
+
*/
|
|
1209
|
+
arrindex: (...args) => new mod_js_1.JsonArrIndexCommand(args, this.opts).exec(this.client),
|
|
1210
|
+
/**
|
|
1211
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1212
|
+
*/
|
|
1213
|
+
arrinsert: (...args) => new mod_js_1.JsonArrInsertCommand(args, this.opts).exec(this.client),
|
|
1214
|
+
/**
|
|
1215
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1216
|
+
*/
|
|
1217
|
+
arrlen: (...args) => new mod_js_1.JsonArrLenCommand(args, this.opts).exec(this.client),
|
|
1218
|
+
/**
|
|
1219
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1220
|
+
*/
|
|
1221
|
+
arrpop: (...args) => new mod_js_1.JsonArrPopCommand(args, this.opts).exec(this.client),
|
|
1222
|
+
/**
|
|
1223
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1224
|
+
*/
|
|
1225
|
+
arrtrim: (...args) => new mod_js_1.JsonArrTrimCommand(args, this.opts).exec(this.client),
|
|
1226
|
+
/**
|
|
1227
|
+
* @see https://redis.io/commands/json.clear
|
|
1228
|
+
*/
|
|
1229
|
+
clear: (...args) => new mod_js_1.JsonClearCommand(args, this.opts).exec(this.client),
|
|
1230
|
+
/**
|
|
1231
|
+
* @see https://redis.io/commands/json.del
|
|
1232
|
+
*/
|
|
1233
|
+
del: (...args) => new mod_js_1.JsonDelCommand(args, this.opts).exec(this.client),
|
|
1234
|
+
/**
|
|
1235
|
+
* @see https://redis.io/commands/json.forget
|
|
1236
|
+
*/
|
|
1237
|
+
forget: (...args) => new mod_js_1.JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1238
|
+
/**
|
|
1239
|
+
* @see https://redis.io/commands/json.get
|
|
1240
|
+
*/
|
|
1241
|
+
get: (...args) => new mod_js_1.JsonGetCommand(args, this.opts).exec(this.client),
|
|
1242
|
+
/**
|
|
1243
|
+
* @see https://redis.io/commands/json.mget
|
|
1244
|
+
*/
|
|
1245
|
+
mget: (...args) => new mod_js_1.JsonMGetCommand(args, this.opts).exec(this.client),
|
|
1246
|
+
/**
|
|
1247
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1248
|
+
*/
|
|
1249
|
+
numincrby: (...args) => new mod_js_1.JsonNumIncrByCommand(args, this.opts).exec(this.client),
|
|
1250
|
+
/**
|
|
1251
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1252
|
+
*/
|
|
1253
|
+
nummultby: (...args) => new mod_js_1.JsonNumMultByCommand(args, this.opts).exec(this.client),
|
|
1254
|
+
/**
|
|
1255
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1256
|
+
*/
|
|
1257
|
+
objkeys: (...args) => new mod_js_1.JsonObjKeysCommand(args, this.opts).exec(this.client),
|
|
1258
|
+
/**
|
|
1259
|
+
* @see https://redis.io/commands/json.objlen
|
|
1260
|
+
*/
|
|
1261
|
+
objlen: (...args) => new mod_js_1.JsonObjLenCommand(args, this.opts).exec(this.client),
|
|
1262
|
+
/**
|
|
1263
|
+
* @see https://redis.io/commands/json.resp
|
|
1264
|
+
*/
|
|
1265
|
+
resp: (...args) => new mod_js_1.JsonRespCommand(args, this.opts).exec(this.client),
|
|
1266
|
+
/**
|
|
1267
|
+
* @see https://redis.io/commands/json.set
|
|
1268
|
+
*/
|
|
1269
|
+
set: (...args) => new mod_js_1.JsonSetCommand(args, this.opts).exec(this.client),
|
|
1270
|
+
/**
|
|
1271
|
+
* @see https://redis.io/commands/json.strappend
|
|
1272
|
+
*/
|
|
1273
|
+
strappend: (...args) => new mod_js_1.JsonStrAppendCommand(args, this.opts).exec(this.client),
|
|
1274
|
+
/**
|
|
1275
|
+
* @see https://redis.io/commands/json.strlen
|
|
1276
|
+
*/
|
|
1277
|
+
strlen: (...args) => new mod_js_1.JsonStrLenCommand(args, this.opts).exec(this.client),
|
|
1278
|
+
/**
|
|
1279
|
+
* @see https://redis.io/commands/json.toggle
|
|
1280
|
+
*/
|
|
1281
|
+
toggle: (...args) => new mod_js_1.JsonToggleCommand(args, this.opts).exec(this.client),
|
|
1282
|
+
/**
|
|
1283
|
+
* @see https://redis.io/commands/json.type
|
|
1284
|
+
*/
|
|
1285
|
+
type: (...args) => new mod_js_1.JsonTypeCommand(args, this.opts).exec(this.client),
|
|
1286
|
+
};
|
|
1133
1287
|
}
|
|
1134
1288
|
createScript(script) {
|
|
1135
1289
|
return new script_js_1.Script(this, script);
|
|
@@ -53,21 +53,21 @@ class Redis extends core.Redis {
|
|
|
53
53
|
/\r|\n/.test(config.token)) {
|
|
54
54
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
55
55
|
}
|
|
56
|
-
const telemetry = {};
|
|
57
|
-
if (!env?.UPSTASH_DISABLE_TELEMETRY) {
|
|
58
|
-
telemetry.platform = "cloudflare";
|
|
59
|
-
telemetry.sdk = `@upstash/redis@${version_js_1.VERSION}`;
|
|
60
|
-
}
|
|
61
56
|
const client = new http_js_1.HttpClient({
|
|
62
57
|
retry: config.retry,
|
|
63
58
|
baseUrl: config.url,
|
|
64
59
|
headers: { authorization: `Bearer ${config.token}` },
|
|
65
60
|
responseEncoding: config.responseEncoding,
|
|
66
|
-
telemetry,
|
|
67
61
|
});
|
|
68
62
|
super(client, {
|
|
63
|
+
enableTelemetry: !env?.UPSTASH_DISABLE_TELEMETRY,
|
|
69
64
|
automaticDeserialization: config.automaticDeserialization,
|
|
70
65
|
});
|
|
66
|
+
// This is only added of the user has not disabled telemetry
|
|
67
|
+
this.addTelemetry({
|
|
68
|
+
platform: "cloudflare",
|
|
69
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
70
|
+
});
|
|
71
71
|
}
|
|
72
72
|
/*
|
|
73
73
|
* Create a new Upstash Redis instance from environment variables on cloudflare.
|
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.Redis = void 0;
|
|
27
27
|
const core = __importStar(require("../pkg/redis.js"));
|
|
28
28
|
const http_js_1 = require("../pkg/http.js");
|
|
29
|
+
const version_js_1 = require("../version.js");
|
|
29
30
|
/**
|
|
30
31
|
* Serverless redis client for upstash.
|
|
31
32
|
*/
|
|
@@ -63,6 +64,10 @@ class Redis extends core.Redis {
|
|
|
63
64
|
super(client, {
|
|
64
65
|
automaticDeserialization: config.automaticDeserialization,
|
|
65
66
|
});
|
|
67
|
+
this.addTelemetry({
|
|
68
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
69
|
+
platform: "fastly",
|
|
70
|
+
});
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
exports.Redis = Redis;
|
|
@@ -29,6 +29,19 @@ const core = __importStar(require("../pkg/redis.js"));
|
|
|
29
29
|
const http_js_1 = require("../pkg/http.js");
|
|
30
30
|
const version_js_1 = require("../version.js");
|
|
31
31
|
require("isomorphic-fetch");
|
|
32
|
+
// @ts-ignore Deno can't compile
|
|
33
|
+
// import https from "https";
|
|
34
|
+
// @ts-ignore Deno can't compile
|
|
35
|
+
// import http from "http";
|
|
36
|
+
// import "isomorphic-fetch";
|
|
37
|
+
/**
|
|
38
|
+
* Workaround for nodejs 14, where atob is not included in the standardlib
|
|
39
|
+
*/
|
|
40
|
+
if (typeof atob === "undefined") {
|
|
41
|
+
global.atob = function (b64) {
|
|
42
|
+
return Buffer.from(b64, "base64").toString("utf-8");
|
|
43
|
+
};
|
|
44
|
+
}
|
|
32
45
|
/**
|
|
33
46
|
* Serverless redis client for upstash.
|
|
34
47
|
*/
|
|
@@ -48,26 +61,25 @@ class Redis extends core.Redis {
|
|
|
48
61
|
/\r|\n/.test(configOrRequester.token)) {
|
|
49
62
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
50
63
|
}
|
|
51
|
-
const telemetry = {};
|
|
52
|
-
if (!process.env.UPSTASH_DISABLE_TELEMETRY) {
|
|
53
|
-
telemetry.runtime = `node@${process.version}`;
|
|
54
|
-
telemetry.platform = process.env.VERCEL
|
|
55
|
-
? "vercel"
|
|
56
|
-
: process.env.AWS_REGION
|
|
57
|
-
? "aws"
|
|
58
|
-
: "unknown";
|
|
59
|
-
telemetry.sdk = `@upstash/redis@${version_js_1.VERSION}`;
|
|
60
|
-
}
|
|
61
64
|
const client = new http_js_1.HttpClient({
|
|
62
65
|
baseUrl: configOrRequester.url,
|
|
63
66
|
retry: configOrRequester.retry,
|
|
64
67
|
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
65
68
|
// agent: configOrRequester.agent,
|
|
66
69
|
responseEncoding: configOrRequester.responseEncoding,
|
|
67
|
-
telemetry,
|
|
68
70
|
});
|
|
69
71
|
super(client, {
|
|
70
72
|
automaticDeserialization: configOrRequester.automaticDeserialization,
|
|
73
|
+
enableTelemetry: !process.env.UPSTASH_DISABLE_TELEMETRY,
|
|
74
|
+
});
|
|
75
|
+
this.addTelemetry({
|
|
76
|
+
runtime: `node@${process.version}`,
|
|
77
|
+
platform: process.env.VERCEL
|
|
78
|
+
? "vercel"
|
|
79
|
+
: process.env.AWS_REGION
|
|
80
|
+
? "aws"
|
|
81
|
+
: "unknown",
|
|
82
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
71
83
|
});
|
|
72
84
|
}
|
|
73
85
|
/**
|
|
@@ -28,6 +28,14 @@ exports.Redis = void 0;
|
|
|
28
28
|
const core = __importStar(require("../pkg/redis.js"));
|
|
29
29
|
const http_js_1 = require("../pkg/http.js");
|
|
30
30
|
const version_js_1 = require("../version.js");
|
|
31
|
+
/**
|
|
32
|
+
* Workaround for nodejs 14, where atob is not included in the standardlib
|
|
33
|
+
*/
|
|
34
|
+
if (typeof atob === "undefined") {
|
|
35
|
+
global.atob = function (b64) {
|
|
36
|
+
return Buffer.from(b64, "base64").toString("utf-8");
|
|
37
|
+
};
|
|
38
|
+
}
|
|
31
39
|
/**
|
|
32
40
|
* Serverless redis client for upstash.
|
|
33
41
|
*/
|
|
@@ -47,26 +55,26 @@ class Redis extends core.Redis {
|
|
|
47
55
|
/\r|\n/.test(configOrRequester.token)) {
|
|
48
56
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
49
57
|
}
|
|
50
|
-
const telemetry = {};
|
|
51
|
-
if (!process.env.UPSTASH_DISABLE_TELEMETRY) {
|
|
52
|
-
telemetry.runtime = `node@${process.version}`;
|
|
53
|
-
telemetry.platform = process.env.VERCEL
|
|
54
|
-
? "vercel"
|
|
55
|
-
: process.env.AWS_REGION
|
|
56
|
-
? "aws"
|
|
57
|
-
: "unknown";
|
|
58
|
-
telemetry.sdk = `@upstash/redis@${version_js_1.VERSION}`;
|
|
59
|
-
}
|
|
60
58
|
const client = new http_js_1.HttpClient({
|
|
61
59
|
baseUrl: configOrRequester.url,
|
|
62
60
|
retry: configOrRequester.retry,
|
|
63
61
|
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
64
62
|
agent: configOrRequester.agent,
|
|
65
63
|
responseEncoding: configOrRequester.responseEncoding,
|
|
66
|
-
|
|
64
|
+
cache: "no-store",
|
|
67
65
|
});
|
|
68
66
|
super(client, {
|
|
69
67
|
automaticDeserialization: configOrRequester.automaticDeserialization,
|
|
68
|
+
enableTelemetry: !process.env.UPSTASH_DISABLE_TELEMETRY,
|
|
69
|
+
});
|
|
70
|
+
this.addTelemetry({
|
|
71
|
+
runtime: `node@${process.version}`,
|
|
72
|
+
platform: process.env.VERCEL
|
|
73
|
+
? "vercel"
|
|
74
|
+
: process.env.AWS_REGION
|
|
75
|
+
? "aws"
|
|
76
|
+
: "unknown",
|
|
77
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
70
78
|
});
|
|
71
79
|
}
|
|
72
80
|
/**
|
package/script/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Requester } from "../http.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
2
|
+
type Serialize = (data: unknown) => string | number | boolean;
|
|
3
|
+
type Deserialize<TResult, TData> = (result: TResult) => TData;
|
|
4
|
+
export type CommandOptions<TResult, TData> = {
|
|
5
5
|
/**
|
|
6
6
|
* Custom deserializer
|
|
7
7
|
*/
|
|
@@ -20,7 +20,7 @@ export declare type CommandOptions<TResult, TData> = {
|
|
|
20
20
|
* TResult is the raw data returned from upstash, which may need to be transformed or parsed.
|
|
21
21
|
*/
|
|
22
22
|
export declare class Command<TResult, TData> {
|
|
23
|
-
readonly command: string[];
|
|
23
|
+
readonly command: (string | number | boolean)[];
|
|
24
24
|
readonly serialize: Serialize;
|
|
25
25
|
readonly deserialize: Deserialize<TResult, TData>;
|
|
26
26
|
/**
|
|
@@ -28,7 +28,7 @@ export declare class Command<TResult, TData> {
|
|
|
28
28
|
*
|
|
29
29
|
* You can define a custom `deserialize` function. By default we try to deserialize as json.
|
|
30
30
|
*/
|
|
31
|
-
constructor(command: (string | unknown)[], opts?: CommandOptions<TResult, TData>);
|
|
31
|
+
constructor(command: (string | boolean | number | unknown)[], opts?: CommandOptions<TResult, TData>);
|
|
32
32
|
/**
|
|
33
33
|
* Execute the command using a client.
|
|
34
34
|
*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/hrandfield
|
|
4
|
+
*/
|
|
5
|
+
export declare class HRandFieldCommand<TData extends string | string[] | Record<string, unknown>> extends Command<string | string[], TData> {
|
|
6
|
+
constructor(cmd: [key: string], opts?: CommandOptions<string, string>);
|
|
7
|
+
constructor(cmd: [key: string, count: number], opts?: CommandOptions<string[], string[]>);
|
|
8
|
+
constructor(cmd: [key: string, count: number, withValues: boolean], opts?: CommandOptions<string[], Partial<TData>>);
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrappend
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrAppendCommand<TData extends unknown[]> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path: string, ...values: TData], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrindex
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrIndexCommand<TValue extends unknown> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [
|
|
7
|
+
key: string,
|
|
8
|
+
path: string,
|
|
9
|
+
value: TValue,
|
|
10
|
+
start?: number,
|
|
11
|
+
stop?: number
|
|
12
|
+
], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrInsertCommand<TData extends unknown[]> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path: string, index: number, ...values: TData], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrlen
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrLenCommand<TValue extends unknown> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrpop
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrPopCommand<TData extends unknown> extends Command<(null | string)[], (TData | null)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string, index?: number], opts?: CommandOptions<(null | string)[], (TData | null)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrTrimCommand extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string, start?: number, stop?: number], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.clear
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonClearCommand extends Command<number, number> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<number, number>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.del
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonDelCommand extends Command<number, number> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<number, number>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.forget
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonForgetCommand extends Command<number, number> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<number, number>);
|
|
7
|
+
}
|