@upstash/redis 1.34.3 → 1.34.5
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/{chunk-FV6JMGNF.mjs → chunk-NAQE7K3X.mjs} +329 -33
- package/cloudflare.d.mts +2 -2
- package/cloudflare.d.ts +2 -2
- package/cloudflare.js +329 -33
- package/cloudflare.mjs +1 -1
- package/fastly.d.mts +2 -2
- package/fastly.d.ts +2 -2
- package/fastly.js +329 -33
- package/fastly.mjs +1 -1
- package/nodejs.d.mts +2 -2
- package/nodejs.d.ts +2 -2
- package/nodejs.js +329 -33
- package/nodejs.mjs +1 -1
- package/package.json +1 -1
- package/{zmscore-Dc6Llqgr.d.mts → zmscore-BdNsMd17.d.mts} +219 -1
- package/{zmscore-Dc6Llqgr.d.ts → zmscore-BdNsMd17.d.ts} +219 -1
package/cloudflare.js
CHANGED
|
@@ -56,6 +56,43 @@ var UrlError = class extends Error {
|
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
+
// pkg/util.ts
|
|
60
|
+
function parseRecursive(obj) {
|
|
61
|
+
const parsed = Array.isArray(obj) ? obj.map((o) => {
|
|
62
|
+
try {
|
|
63
|
+
return parseRecursive(o);
|
|
64
|
+
} catch {
|
|
65
|
+
return o;
|
|
66
|
+
}
|
|
67
|
+
}) : JSON.parse(obj);
|
|
68
|
+
if (typeof parsed === "number" && parsed.toString() !== obj) {
|
|
69
|
+
return obj;
|
|
70
|
+
}
|
|
71
|
+
return parsed;
|
|
72
|
+
}
|
|
73
|
+
function parseResponse(result) {
|
|
74
|
+
try {
|
|
75
|
+
return parseRecursive(result);
|
|
76
|
+
} catch {
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function deserializeScanResponse(result) {
|
|
81
|
+
return [result[0], ...parseResponse(result.slice(1))];
|
|
82
|
+
}
|
|
83
|
+
function mergeHeaders(...headers) {
|
|
84
|
+
const merged = {};
|
|
85
|
+
for (const header of headers) {
|
|
86
|
+
if (!header) continue;
|
|
87
|
+
for (const [key, value] of Object.entries(header)) {
|
|
88
|
+
if (value !== void 0 && value !== null) {
|
|
89
|
+
merged[key] = value;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return merged;
|
|
94
|
+
}
|
|
95
|
+
|
|
59
96
|
// pkg/http.ts
|
|
60
97
|
var HttpClient = class {
|
|
61
98
|
baseUrl;
|
|
@@ -104,15 +141,18 @@ var HttpClient = class {
|
|
|
104
141
|
this.headers = merge(this.headers, "Upstash-Telemetry-Sdk", telemetry.sdk);
|
|
105
142
|
}
|
|
106
143
|
async request(req) {
|
|
144
|
+
const requestHeaders = mergeHeaders(this.headers, req.headers ?? {});
|
|
145
|
+
const requestUrl = [this.baseUrl, ...req.path ?? []].join("/");
|
|
146
|
+
const isEventStream = requestHeaders.Accept === "text/event-stream";
|
|
107
147
|
const requestOptions = {
|
|
108
148
|
//@ts-expect-error this should throw due to bun regression
|
|
109
149
|
cache: this.options.cache,
|
|
110
150
|
method: "POST",
|
|
111
|
-
headers:
|
|
151
|
+
headers: requestHeaders,
|
|
112
152
|
body: JSON.stringify(req.body),
|
|
113
153
|
keepalive: this.options.keepAlive,
|
|
114
154
|
agent: this.options.agent,
|
|
115
|
-
signal: this.options.signal,
|
|
155
|
+
signal: req.signal ?? this.options.signal,
|
|
116
156
|
/**
|
|
117
157
|
* Fastly specific
|
|
118
158
|
*/
|
|
@@ -131,7 +171,7 @@ var HttpClient = class {
|
|
|
131
171
|
let error = null;
|
|
132
172
|
for (let i = 0; i <= this.retry.attempts; i++) {
|
|
133
173
|
try {
|
|
134
|
-
res = await fetch(
|
|
174
|
+
res = await fetch(requestUrl, requestOptions);
|
|
135
175
|
break;
|
|
136
176
|
} catch (error_) {
|
|
137
177
|
if (this.options.signal?.aborted) {
|
|
@@ -146,20 +186,54 @@ var HttpClient = class {
|
|
|
146
186
|
break;
|
|
147
187
|
}
|
|
148
188
|
error = error_;
|
|
149
|
-
|
|
189
|
+
if (i < this.retry.attempts) {
|
|
190
|
+
await new Promise((r) => setTimeout(r, this.retry.backoff(i)));
|
|
191
|
+
}
|
|
150
192
|
}
|
|
151
193
|
}
|
|
152
194
|
if (!res) {
|
|
153
195
|
throw error ?? new Error("Exhausted all retries");
|
|
154
196
|
}
|
|
155
|
-
const body = await res.json();
|
|
156
197
|
if (!res.ok) {
|
|
157
|
-
|
|
198
|
+
const body2 = await res.json();
|
|
199
|
+
throw new UpstashError(`${body2.error}, command was: ${JSON.stringify(req.body)}`);
|
|
158
200
|
}
|
|
159
201
|
if (this.readYourWrites) {
|
|
160
202
|
const headers = res.headers;
|
|
161
203
|
this.upstashSyncToken = headers.get("upstash-sync-token") ?? "";
|
|
162
204
|
}
|
|
205
|
+
if (isEventStream && req && req.onMessage && res.body) {
|
|
206
|
+
const reader = res.body.getReader();
|
|
207
|
+
const decoder = new TextDecoder();
|
|
208
|
+
(async () => {
|
|
209
|
+
try {
|
|
210
|
+
while (true) {
|
|
211
|
+
const { value, done } = await reader.read();
|
|
212
|
+
if (done) break;
|
|
213
|
+
const chunk = decoder.decode(value);
|
|
214
|
+
const lines = chunk.split("\n");
|
|
215
|
+
for (const line of lines) {
|
|
216
|
+
if (line.startsWith("data: ")) {
|
|
217
|
+
const data = line.slice(6);
|
|
218
|
+
req.onMessage?.(data);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
} catch (error2) {
|
|
223
|
+
if (error2 instanceof Error && error2.name === "AbortError") {
|
|
224
|
+
} else {
|
|
225
|
+
console.error("Stream reading error:", error2);
|
|
226
|
+
}
|
|
227
|
+
} finally {
|
|
228
|
+
try {
|
|
229
|
+
await reader.cancel();
|
|
230
|
+
} catch {
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
})();
|
|
234
|
+
return { result: 1 };
|
|
235
|
+
}
|
|
236
|
+
const body = await res.json();
|
|
163
237
|
if (this.readYourWrites) {
|
|
164
238
|
const headers = res.headers;
|
|
165
239
|
this.upstashSyncToken = headers.get("upstash-sync-token") ?? "";
|
|
@@ -309,31 +383,6 @@ var AutoPipelineExecutor = class {
|
|
|
309
383
|
}
|
|
310
384
|
};
|
|
311
385
|
|
|
312
|
-
// pkg/util.ts
|
|
313
|
-
function parseRecursive(obj) {
|
|
314
|
-
const parsed = Array.isArray(obj) ? obj.map((o) => {
|
|
315
|
-
try {
|
|
316
|
-
return parseRecursive(o);
|
|
317
|
-
} catch {
|
|
318
|
-
return o;
|
|
319
|
-
}
|
|
320
|
-
}) : JSON.parse(obj);
|
|
321
|
-
if (typeof parsed === "number" && parsed.toString() !== obj) {
|
|
322
|
-
return obj;
|
|
323
|
-
}
|
|
324
|
-
return parsed;
|
|
325
|
-
}
|
|
326
|
-
function parseResponse(result) {
|
|
327
|
-
try {
|
|
328
|
-
return parseRecursive(result);
|
|
329
|
-
} catch {
|
|
330
|
-
return result;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
function deserializeScanResponse(result) {
|
|
334
|
-
return [result[0], ...parseResponse(result.slice(1))];
|
|
335
|
-
}
|
|
336
|
-
|
|
337
386
|
// pkg/commands/command.ts
|
|
338
387
|
var defaultSerializer = (c) => {
|
|
339
388
|
switch (typeof c) {
|
|
@@ -351,6 +400,11 @@ var Command = class {
|
|
|
351
400
|
command;
|
|
352
401
|
serialize;
|
|
353
402
|
deserialize;
|
|
403
|
+
headers;
|
|
404
|
+
path;
|
|
405
|
+
onMessage;
|
|
406
|
+
isStreaming;
|
|
407
|
+
signal;
|
|
354
408
|
/**
|
|
355
409
|
* Create a new command instance.
|
|
356
410
|
*
|
|
@@ -360,6 +414,11 @@ var Command = class {
|
|
|
360
414
|
this.serialize = defaultSerializer;
|
|
361
415
|
this.deserialize = opts?.automaticDeserialization === void 0 || opts.automaticDeserialization ? opts?.deserialize ?? parseResponse : (x) => x;
|
|
362
416
|
this.command = command.map((c) => this.serialize(c));
|
|
417
|
+
this.headers = opts?.headers;
|
|
418
|
+
this.path = opts?.path;
|
|
419
|
+
this.onMessage = opts?.streamOptions?.onMessage;
|
|
420
|
+
this.isStreaming = opts?.streamOptions?.isStreaming ?? false;
|
|
421
|
+
this.signal = opts?.streamOptions?.signal;
|
|
363
422
|
if (opts?.latencyLogging) {
|
|
364
423
|
const originalExec = this.exec.bind(this);
|
|
365
424
|
this.exec = async (client) => {
|
|
@@ -380,7 +439,12 @@ var Command = class {
|
|
|
380
439
|
async exec(client) {
|
|
381
440
|
const { result, error } = await client.request({
|
|
382
441
|
body: this.command,
|
|
383
|
-
|
|
442
|
+
path: this.path,
|
|
443
|
+
upstashSyncToken: client.upstashSyncToken,
|
|
444
|
+
headers: this.headers,
|
|
445
|
+
onMessage: this.onMessage,
|
|
446
|
+
isStreaming: this.isStreaming,
|
|
447
|
+
signal: this.signal
|
|
384
448
|
});
|
|
385
449
|
if (error) {
|
|
386
450
|
throw new UpstashError(error);
|
|
@@ -522,6 +586,14 @@ var EvalshaCommand = class extends Command {
|
|
|
522
586
|
}
|
|
523
587
|
};
|
|
524
588
|
|
|
589
|
+
// pkg/commands/exec.ts
|
|
590
|
+
var ExecCommand = class extends Command {
|
|
591
|
+
constructor(cmd, opts) {
|
|
592
|
+
const normalizedCmd = cmd.map((arg) => typeof arg === "string" ? arg : String(arg));
|
|
593
|
+
super(normalizedCmd, opts);
|
|
594
|
+
}
|
|
595
|
+
};
|
|
596
|
+
|
|
525
597
|
// pkg/commands/exists.ts
|
|
526
598
|
var ExistsCommand = class extends Command {
|
|
527
599
|
constructor(cmd, opts) {
|
|
@@ -738,6 +810,27 @@ var GetDelCommand = class extends Command {
|
|
|
738
810
|
}
|
|
739
811
|
};
|
|
740
812
|
|
|
813
|
+
// pkg/commands/getex.ts
|
|
814
|
+
var GetExCommand = class extends Command {
|
|
815
|
+
constructor([key, opts], cmdOpts) {
|
|
816
|
+
const command = ["getex", key];
|
|
817
|
+
if (opts) {
|
|
818
|
+
if ("ex" in opts && typeof opts.ex === "number") {
|
|
819
|
+
command.push("ex", opts.ex);
|
|
820
|
+
} else if ("px" in opts && typeof opts.px === "number") {
|
|
821
|
+
command.push("px", opts.px);
|
|
822
|
+
} else if ("exat" in opts && typeof opts.exat === "number") {
|
|
823
|
+
command.push("exat", opts.exat);
|
|
824
|
+
} else if ("pxat" in opts && typeof opts.pxat === "number") {
|
|
825
|
+
command.push("pxat", opts.pxat);
|
|
826
|
+
} else if ("persist" in opts && opts.persist) {
|
|
827
|
+
command.push("persist");
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
super(command, cmdOpts);
|
|
831
|
+
}
|
|
832
|
+
};
|
|
833
|
+
|
|
741
834
|
// pkg/commands/getrange.ts
|
|
742
835
|
var GetRangeCommand = class extends Command {
|
|
743
836
|
constructor(cmd, opts) {
|
|
@@ -2204,6 +2297,183 @@ var ZUnionStoreCommand = class extends Command {
|
|
|
2204
2297
|
}
|
|
2205
2298
|
};
|
|
2206
2299
|
|
|
2300
|
+
// pkg/commands/psubscribe.ts
|
|
2301
|
+
var PSubscribeCommand = class extends Command {
|
|
2302
|
+
constructor(cmd, opts) {
|
|
2303
|
+
const sseHeaders = {
|
|
2304
|
+
Accept: "text/event-stream",
|
|
2305
|
+
"Cache-Control": "no-cache",
|
|
2306
|
+
Connection: "keep-alive"
|
|
2307
|
+
};
|
|
2308
|
+
super([], {
|
|
2309
|
+
...opts,
|
|
2310
|
+
headers: sseHeaders,
|
|
2311
|
+
path: ["psubscribe", ...cmd],
|
|
2312
|
+
streamOptions: {
|
|
2313
|
+
isStreaming: true,
|
|
2314
|
+
onMessage: opts?.streamOptions?.onMessage,
|
|
2315
|
+
signal: opts?.streamOptions?.signal
|
|
2316
|
+
}
|
|
2317
|
+
});
|
|
2318
|
+
}
|
|
2319
|
+
};
|
|
2320
|
+
|
|
2321
|
+
// pkg/commands/subscribe.ts
|
|
2322
|
+
var Subscriber = class extends EventTarget {
|
|
2323
|
+
subscriptions;
|
|
2324
|
+
client;
|
|
2325
|
+
listeners;
|
|
2326
|
+
constructor(client, channels, isPattern = false) {
|
|
2327
|
+
super();
|
|
2328
|
+
this.client = client;
|
|
2329
|
+
this.subscriptions = /* @__PURE__ */ new Map();
|
|
2330
|
+
this.listeners = /* @__PURE__ */ new Map();
|
|
2331
|
+
for (const channel of channels) {
|
|
2332
|
+
if (isPattern) {
|
|
2333
|
+
this.subscribeToPattern(channel);
|
|
2334
|
+
} else {
|
|
2335
|
+
this.subscribeToChannel(channel);
|
|
2336
|
+
}
|
|
2337
|
+
}
|
|
2338
|
+
}
|
|
2339
|
+
subscribeToChannel(channel) {
|
|
2340
|
+
const controller = new AbortController();
|
|
2341
|
+
const command = new SubscribeCommand([channel], {
|
|
2342
|
+
streamOptions: {
|
|
2343
|
+
signal: controller.signal,
|
|
2344
|
+
onMessage: (data) => this.handleMessage(data, false)
|
|
2345
|
+
}
|
|
2346
|
+
});
|
|
2347
|
+
command.exec(this.client).catch((error) => {
|
|
2348
|
+
if (error.name !== "AbortError") {
|
|
2349
|
+
this.dispatchToListeners("error", error);
|
|
2350
|
+
}
|
|
2351
|
+
});
|
|
2352
|
+
this.subscriptions.set(channel, {
|
|
2353
|
+
command,
|
|
2354
|
+
controller,
|
|
2355
|
+
isPattern: false
|
|
2356
|
+
});
|
|
2357
|
+
}
|
|
2358
|
+
subscribeToPattern(pattern) {
|
|
2359
|
+
const controller = new AbortController();
|
|
2360
|
+
const command = new PSubscribeCommand([pattern], {
|
|
2361
|
+
streamOptions: {
|
|
2362
|
+
signal: controller.signal,
|
|
2363
|
+
onMessage: (data) => this.handleMessage(data, true)
|
|
2364
|
+
}
|
|
2365
|
+
});
|
|
2366
|
+
command.exec(this.client).catch((error) => {
|
|
2367
|
+
if (error.name !== "AbortError") {
|
|
2368
|
+
this.dispatchToListeners("error", error);
|
|
2369
|
+
}
|
|
2370
|
+
});
|
|
2371
|
+
this.subscriptions.set(pattern, {
|
|
2372
|
+
command,
|
|
2373
|
+
controller,
|
|
2374
|
+
isPattern: true
|
|
2375
|
+
});
|
|
2376
|
+
}
|
|
2377
|
+
handleMessage(data, isPattern) {
|
|
2378
|
+
const messageData = data.replace(/^data:\s*/, "");
|
|
2379
|
+
const firstCommaIndex = messageData.indexOf(",");
|
|
2380
|
+
const secondCommaIndex = messageData.indexOf(",", firstCommaIndex + 1);
|
|
2381
|
+
const thirdCommaIndex = isPattern ? messageData.indexOf(",", secondCommaIndex + 1) : -1;
|
|
2382
|
+
if (firstCommaIndex !== -1 && secondCommaIndex !== -1) {
|
|
2383
|
+
const type = messageData.slice(0, firstCommaIndex);
|
|
2384
|
+
if (isPattern && type === "pmessage" && thirdCommaIndex !== -1) {
|
|
2385
|
+
const pattern = messageData.slice(firstCommaIndex + 1, secondCommaIndex);
|
|
2386
|
+
const channel = messageData.slice(secondCommaIndex + 1, thirdCommaIndex);
|
|
2387
|
+
const messageStr = messageData.slice(thirdCommaIndex + 1);
|
|
2388
|
+
try {
|
|
2389
|
+
const message = JSON.parse(messageStr);
|
|
2390
|
+
this.dispatchToListeners("pmessage", { pattern, channel, message });
|
|
2391
|
+
this.dispatchToListeners(`pmessage:${pattern}`, { pattern, channel, message });
|
|
2392
|
+
} catch (error) {
|
|
2393
|
+
this.dispatchToListeners("error", new Error(`Failed to parse message: ${error}`));
|
|
2394
|
+
}
|
|
2395
|
+
} else {
|
|
2396
|
+
const channel = messageData.slice(firstCommaIndex + 1, secondCommaIndex);
|
|
2397
|
+
const messageStr = messageData.slice(secondCommaIndex + 1);
|
|
2398
|
+
try {
|
|
2399
|
+
if (type === "subscribe" || type === "psubscribe" || type === "unsubscribe" || type === "punsubscribe") {
|
|
2400
|
+
const count = Number.parseInt(messageStr);
|
|
2401
|
+
this.dispatchToListeners(type, count);
|
|
2402
|
+
} else {
|
|
2403
|
+
const message = JSON.parse(messageStr);
|
|
2404
|
+
this.dispatchToListeners(type, { channel, message });
|
|
2405
|
+
this.dispatchToListeners(`${type}:${channel}`, { channel, message });
|
|
2406
|
+
}
|
|
2407
|
+
} catch (error) {
|
|
2408
|
+
this.dispatchToListeners("error", new Error(`Failed to parse message: ${error}`));
|
|
2409
|
+
}
|
|
2410
|
+
}
|
|
2411
|
+
}
|
|
2412
|
+
}
|
|
2413
|
+
dispatchToListeners(type, data) {
|
|
2414
|
+
const listeners = this.listeners.get(type);
|
|
2415
|
+
if (listeners) {
|
|
2416
|
+
for (const listener of listeners) {
|
|
2417
|
+
listener(data);
|
|
2418
|
+
}
|
|
2419
|
+
}
|
|
2420
|
+
}
|
|
2421
|
+
on(type, listener) {
|
|
2422
|
+
if (!this.listeners.has(type)) {
|
|
2423
|
+
this.listeners.set(type, /* @__PURE__ */ new Set());
|
|
2424
|
+
}
|
|
2425
|
+
this.listeners.get(type)?.add(listener);
|
|
2426
|
+
}
|
|
2427
|
+
removeAllListeners() {
|
|
2428
|
+
this.listeners.clear();
|
|
2429
|
+
}
|
|
2430
|
+
async unsubscribe(channels) {
|
|
2431
|
+
if (channels) {
|
|
2432
|
+
for (const channel of channels) {
|
|
2433
|
+
const subscription = this.subscriptions.get(channel);
|
|
2434
|
+
if (subscription) {
|
|
2435
|
+
try {
|
|
2436
|
+
subscription.controller.abort();
|
|
2437
|
+
} catch {
|
|
2438
|
+
}
|
|
2439
|
+
this.subscriptions.delete(channel);
|
|
2440
|
+
}
|
|
2441
|
+
}
|
|
2442
|
+
} else {
|
|
2443
|
+
for (const subscription of this.subscriptions.values()) {
|
|
2444
|
+
try {
|
|
2445
|
+
subscription.controller.abort();
|
|
2446
|
+
} catch {
|
|
2447
|
+
}
|
|
2448
|
+
}
|
|
2449
|
+
this.subscriptions.clear();
|
|
2450
|
+
this.removeAllListeners();
|
|
2451
|
+
}
|
|
2452
|
+
}
|
|
2453
|
+
getSubscribedChannels() {
|
|
2454
|
+
return [...this.subscriptions.keys()];
|
|
2455
|
+
}
|
|
2456
|
+
};
|
|
2457
|
+
var SubscribeCommand = class extends Command {
|
|
2458
|
+
constructor(cmd, opts) {
|
|
2459
|
+
const sseHeaders = {
|
|
2460
|
+
Accept: "text/event-stream",
|
|
2461
|
+
"Cache-Control": "no-cache",
|
|
2462
|
+
Connection: "keep-alive"
|
|
2463
|
+
};
|
|
2464
|
+
super([], {
|
|
2465
|
+
...opts,
|
|
2466
|
+
headers: sseHeaders,
|
|
2467
|
+
path: ["subscribe", ...cmd],
|
|
2468
|
+
streamOptions: {
|
|
2469
|
+
isStreaming: true,
|
|
2470
|
+
onMessage: opts?.streamOptions?.onMessage,
|
|
2471
|
+
signal: opts?.streamOptions?.signal
|
|
2472
|
+
}
|
|
2473
|
+
});
|
|
2474
|
+
}
|
|
2475
|
+
};
|
|
2476
|
+
|
|
2207
2477
|
// pkg/commands/zdiffstore.ts
|
|
2208
2478
|
var ZDiffStoreCommand = class extends Command {
|
|
2209
2479
|
constructor(cmd, opts) {
|
|
@@ -2408,6 +2678,10 @@ var Pipeline = class {
|
|
|
2408
2678
|
* @see https://redis.io/commands/getdel
|
|
2409
2679
|
*/
|
|
2410
2680
|
getdel = (...args) => this.chain(new GetDelCommand(args, this.commandOptions));
|
|
2681
|
+
/**
|
|
2682
|
+
* @see https://redis.io/commands/getex
|
|
2683
|
+
*/
|
|
2684
|
+
getex = (...args) => this.chain(new GetExCommand(args, this.commandOptions));
|
|
2411
2685
|
/**
|
|
2412
2686
|
* @see https://redis.io/commands/getrange
|
|
2413
2687
|
*/
|
|
@@ -3279,6 +3553,10 @@ var Redis = class {
|
|
|
3279
3553
|
* @see https://redis.io/commands/evalsha
|
|
3280
3554
|
*/
|
|
3281
3555
|
evalsha = (...args) => new EvalshaCommand(args, this.opts).exec(this.client);
|
|
3556
|
+
/**
|
|
3557
|
+
* Generic method to execute any Redis command.
|
|
3558
|
+
*/
|
|
3559
|
+
exec = (args) => new ExecCommand(args, this.opts).exec(this.client);
|
|
3282
3560
|
/**
|
|
3283
3561
|
* @see https://redis.io/commands/exists
|
|
3284
3562
|
*/
|
|
@@ -3335,6 +3613,10 @@ var Redis = class {
|
|
|
3335
3613
|
* @see https://redis.io/commands/getdel
|
|
3336
3614
|
*/
|
|
3337
3615
|
getdel = (...args) => new GetDelCommand(args, this.opts).exec(this.client);
|
|
3616
|
+
/**
|
|
3617
|
+
* @see https://redis.io/commands/getex
|
|
3618
|
+
*/
|
|
3619
|
+
getex = (...args) => new GetExCommand(args, this.opts).exec(this.client);
|
|
3338
3620
|
/**
|
|
3339
3621
|
* @see https://redis.io/commands/getrange
|
|
3340
3622
|
*/
|
|
@@ -3519,6 +3801,13 @@ var Redis = class {
|
|
|
3519
3801
|
* @see https://redis.io/commands/psetex
|
|
3520
3802
|
*/
|
|
3521
3803
|
psetex = (key, ttl, value) => new PSetEXCommand([key, ttl, value], this.opts).exec(this.client);
|
|
3804
|
+
/**
|
|
3805
|
+
* @see https://redis.io/commands/psubscribe
|
|
3806
|
+
*/
|
|
3807
|
+
psubscribe = (patterns) => {
|
|
3808
|
+
const patternArray = Array.isArray(patterns) ? patterns : [patterns];
|
|
3809
|
+
return new Subscriber(this.client, patternArray, true);
|
|
3810
|
+
};
|
|
3522
3811
|
/**
|
|
3523
3812
|
* @see https://redis.io/commands/pttl
|
|
3524
3813
|
*/
|
|
@@ -3647,6 +3936,13 @@ var Redis = class {
|
|
|
3647
3936
|
* @see https://redis.io/commands/strlen
|
|
3648
3937
|
*/
|
|
3649
3938
|
strlen = (...args) => new StrLenCommand(args, this.opts).exec(this.client);
|
|
3939
|
+
/**
|
|
3940
|
+
* @see https://redis.io/commands/subscribe
|
|
3941
|
+
*/
|
|
3942
|
+
subscribe = (channels) => {
|
|
3943
|
+
const channelArray = Array.isArray(channels) ? channels : [channels];
|
|
3944
|
+
return new Subscriber(this.client, channelArray);
|
|
3945
|
+
};
|
|
3650
3946
|
/**
|
|
3651
3947
|
* @see https://redis.io/commands/sunion
|
|
3652
3948
|
*/
|
|
@@ -3828,7 +4124,7 @@ var Redis = class {
|
|
|
3828
4124
|
};
|
|
3829
4125
|
|
|
3830
4126
|
// version.ts
|
|
3831
|
-
var VERSION = "v1.34.
|
|
4127
|
+
var VERSION = "v1.34.5";
|
|
3832
4128
|
|
|
3833
4129
|
// platforms/cloudflare.ts
|
|
3834
4130
|
var Redis2 = class _Redis extends Redis {
|
package/cloudflare.mjs
CHANGED
package/fastly.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RedisOptions, a as RequesterConfig, b as Redis$1 } from './zmscore-
|
|
2
|
-
export { A as AppendCommand, B as BitCountCommand, f as BitOpCommand, g as BitPosCommand, C as CopyCommand, D as DBSizeCommand, i as DecrByCommand, h as DecrCommand, j as DelCommand, E as EchoCommand, k as EvalCommand, l as EvalshaCommand, m as ExistsCommand, o as ExpireAtCommand, n as ExpireCommand, F as FlushAllCommand, p as FlushDBCommand, G as GeoAddCommand, q as GeoAddCommandOptions, s as GeoDistCommand, t as GeoHashCommand, r as GeoMember, u as GeoPosCommand, v as GeoSearchCommand, w as GeoSearchStoreCommand, y as GetBitCommand, x as GetCommand, z as GetDelCommand, H as
|
|
1
|
+
import { R as RedisOptions, a as RequesterConfig, b as Redis$1 } from './zmscore-BdNsMd17.mjs';
|
|
2
|
+
export { A as AppendCommand, B as BitCountCommand, f as BitOpCommand, g as BitPosCommand, C as CopyCommand, D as DBSizeCommand, i as DecrByCommand, h as DecrCommand, j as DelCommand, E as EchoCommand, k as EvalCommand, l as EvalshaCommand, m as ExistsCommand, o as ExpireAtCommand, n as ExpireCommand, F as FlushAllCommand, p as FlushDBCommand, G as GeoAddCommand, q as GeoAddCommandOptions, s as GeoDistCommand, t as GeoHashCommand, r as GeoMember, u as GeoPosCommand, v as GeoSearchCommand, w as GeoSearchStoreCommand, y as GetBitCommand, x as GetCommand, z as GetDelCommand, H as GetExCommand, I as GetRangeCommand, J as GetSetCommand, K as HDelCommand, L as HExistsCommand, N as HGetAllCommand, M as HGetCommand, O as HIncrByCommand, Q as HIncrByFloatCommand, S as HKeysCommand, T as HLenCommand, V as HMGetCommand, W as HMSetCommand, X as HRandFieldCommand, Y as HScanCommand, Z as HSetCommand, _ as HSetNXCommand, $ as HStrLenCommand, a0 as HValsCommand, a2 as IncrByCommand, a3 as IncrByFloatCommand, a1 as IncrCommand, a4 as JsonArrAppendCommand, a5 as JsonArrIndexCommand, a6 as JsonArrInsertCommand, a7 as JsonArrLenCommand, a8 as JsonArrPopCommand, a9 as JsonArrTrimCommand, aa as JsonClearCommand, ab as JsonDelCommand, ac as JsonForgetCommand, ad as JsonGetCommand, ae as JsonMGetCommand, af as JsonNumIncrByCommand, ag as JsonNumMultByCommand, ah as JsonObjKeysCommand, ai as JsonObjLenCommand, aj as JsonRespCommand, ak as JsonSetCommand, al as JsonStrAppendCommand, am as JsonStrLenCommand, an as JsonToggleCommand, ao as JsonTypeCommand, ap as KeysCommand, aq as LIndexCommand, ar as LInsertCommand, as as LLenCommand, at as LMoveCommand, au as LPopCommand, av as LPushCommand, aw as LPushXCommand, ax as LRangeCommand, ay as LRemCommand, az as LSetCommand, aA as LTrimCommand, aB as MGetCommand, aC as MSetCommand, aD as MSetNXCommand, aG as PExpireAtCommand, aF as PExpireCommand, aI as PSetEXCommand, aJ as PTtlCommand, aE as PersistCommand, aH as PingCommand, P as Pipeline, aK as PublishCommand, aO as RPopCommand, aP as RPushCommand, aQ as RPushXCommand, aL as RandomKeyCommand, aM as RenameCommand, aN as RenameNXCommand, d as Requester, aR as SAddCommand, aU as SCardCommand, aY as SDiffCommand, aZ as SDiffStoreCommand, b4 as SInterCommand, b5 as SInterStoreCommand, b6 as SIsMemberCommand, b8 as SMIsMemberCommand, b7 as SMembersCommand, b9 as SMoveCommand, ba as SPopCommand, bb as SRandMemberCommand, bc as SRemCommand, bd as SScanCommand, bf as SUnionCommand, bg as SUnionStoreCommand, aS as ScanCommand, aT as ScanCommandOptions, bp as ScoreMember, aV as ScriptExistsCommand, aW as ScriptFlushCommand, aX as ScriptLoadCommand, b0 as SetBitCommand, a_ as SetCommand, a$ as SetCommandOptions, b1 as SetExCommand, b2 as SetNxCommand, b3 as SetRangeCommand, be as StrLenCommand, bh as TimeCommand, bi as TouchCommand, bj as TtlCommand, bk as Type, bl as TypeCommand, bm as UnlinkCommand, U as UpstashRequest, c as UpstashResponse, bn as XAddCommand, bo as XRangeCommand, br as ZAddCommand, bq as ZAddCommandOptions, bs as ZCardCommand, bt as ZCountCommand, bu as ZDiffStoreCommand, bv as ZIncrByCommand, bw as ZInterStoreCommand, bx as ZInterStoreCommandOptions, by as ZLexCountCommand, bz as ZMScoreCommand, bA as ZPopMaxCommand, bB as ZPopMinCommand, bC as ZRangeCommand, bD as ZRangeCommandOptions, bE as ZRankCommand, bF as ZRemCommand, bG as ZRemRangeByLexCommand, bH as ZRemRangeByRankCommand, bI as ZRemRangeByScoreCommand, bJ as ZRevRankCommand, bK as ZScanCommand, bL as ZScoreCommand, bM as ZUnionCommand, bN as ZUnionCommandOptions, bO as ZUnionStoreCommand, bP as ZUnionStoreCommandOptions, e as errors } from './zmscore-BdNsMd17.mjs';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Connection credentials for upstash redis.
|
package/fastly.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { R as RedisOptions, a as RequesterConfig, b as Redis$1 } from './zmscore-
|
|
2
|
-
export { A as AppendCommand, B as BitCountCommand, f as BitOpCommand, g as BitPosCommand, C as CopyCommand, D as DBSizeCommand, i as DecrByCommand, h as DecrCommand, j as DelCommand, E as EchoCommand, k as EvalCommand, l as EvalshaCommand, m as ExistsCommand, o as ExpireAtCommand, n as ExpireCommand, F as FlushAllCommand, p as FlushDBCommand, G as GeoAddCommand, q as GeoAddCommandOptions, s as GeoDistCommand, t as GeoHashCommand, r as GeoMember, u as GeoPosCommand, v as GeoSearchCommand, w as GeoSearchStoreCommand, y as GetBitCommand, x as GetCommand, z as GetDelCommand, H as
|
|
1
|
+
import { R as RedisOptions, a as RequesterConfig, b as Redis$1 } from './zmscore-BdNsMd17.js';
|
|
2
|
+
export { A as AppendCommand, B as BitCountCommand, f as BitOpCommand, g as BitPosCommand, C as CopyCommand, D as DBSizeCommand, i as DecrByCommand, h as DecrCommand, j as DelCommand, E as EchoCommand, k as EvalCommand, l as EvalshaCommand, m as ExistsCommand, o as ExpireAtCommand, n as ExpireCommand, F as FlushAllCommand, p as FlushDBCommand, G as GeoAddCommand, q as GeoAddCommandOptions, s as GeoDistCommand, t as GeoHashCommand, r as GeoMember, u as GeoPosCommand, v as GeoSearchCommand, w as GeoSearchStoreCommand, y as GetBitCommand, x as GetCommand, z as GetDelCommand, H as GetExCommand, I as GetRangeCommand, J as GetSetCommand, K as HDelCommand, L as HExistsCommand, N as HGetAllCommand, M as HGetCommand, O as HIncrByCommand, Q as HIncrByFloatCommand, S as HKeysCommand, T as HLenCommand, V as HMGetCommand, W as HMSetCommand, X as HRandFieldCommand, Y as HScanCommand, Z as HSetCommand, _ as HSetNXCommand, $ as HStrLenCommand, a0 as HValsCommand, a2 as IncrByCommand, a3 as IncrByFloatCommand, a1 as IncrCommand, a4 as JsonArrAppendCommand, a5 as JsonArrIndexCommand, a6 as JsonArrInsertCommand, a7 as JsonArrLenCommand, a8 as JsonArrPopCommand, a9 as JsonArrTrimCommand, aa as JsonClearCommand, ab as JsonDelCommand, ac as JsonForgetCommand, ad as JsonGetCommand, ae as JsonMGetCommand, af as JsonNumIncrByCommand, ag as JsonNumMultByCommand, ah as JsonObjKeysCommand, ai as JsonObjLenCommand, aj as JsonRespCommand, ak as JsonSetCommand, al as JsonStrAppendCommand, am as JsonStrLenCommand, an as JsonToggleCommand, ao as JsonTypeCommand, ap as KeysCommand, aq as LIndexCommand, ar as LInsertCommand, as as LLenCommand, at as LMoveCommand, au as LPopCommand, av as LPushCommand, aw as LPushXCommand, ax as LRangeCommand, ay as LRemCommand, az as LSetCommand, aA as LTrimCommand, aB as MGetCommand, aC as MSetCommand, aD as MSetNXCommand, aG as PExpireAtCommand, aF as PExpireCommand, aI as PSetEXCommand, aJ as PTtlCommand, aE as PersistCommand, aH as PingCommand, P as Pipeline, aK as PublishCommand, aO as RPopCommand, aP as RPushCommand, aQ as RPushXCommand, aL as RandomKeyCommand, aM as RenameCommand, aN as RenameNXCommand, d as Requester, aR as SAddCommand, aU as SCardCommand, aY as SDiffCommand, aZ as SDiffStoreCommand, b4 as SInterCommand, b5 as SInterStoreCommand, b6 as SIsMemberCommand, b8 as SMIsMemberCommand, b7 as SMembersCommand, b9 as SMoveCommand, ba as SPopCommand, bb as SRandMemberCommand, bc as SRemCommand, bd as SScanCommand, bf as SUnionCommand, bg as SUnionStoreCommand, aS as ScanCommand, aT as ScanCommandOptions, bp as ScoreMember, aV as ScriptExistsCommand, aW as ScriptFlushCommand, aX as ScriptLoadCommand, b0 as SetBitCommand, a_ as SetCommand, a$ as SetCommandOptions, b1 as SetExCommand, b2 as SetNxCommand, b3 as SetRangeCommand, be as StrLenCommand, bh as TimeCommand, bi as TouchCommand, bj as TtlCommand, bk as Type, bl as TypeCommand, bm as UnlinkCommand, U as UpstashRequest, c as UpstashResponse, bn as XAddCommand, bo as XRangeCommand, br as ZAddCommand, bq as ZAddCommandOptions, bs as ZCardCommand, bt as ZCountCommand, bu as ZDiffStoreCommand, bv as ZIncrByCommand, bw as ZInterStoreCommand, bx as ZInterStoreCommandOptions, by as ZLexCountCommand, bz as ZMScoreCommand, bA as ZPopMaxCommand, bB as ZPopMinCommand, bC as ZRangeCommand, bD as ZRangeCommandOptions, bE as ZRankCommand, bF as ZRemCommand, bG as ZRemRangeByLexCommand, bH as ZRemRangeByRankCommand, bI as ZRemRangeByScoreCommand, bJ as ZRevRankCommand, bK as ZScanCommand, bL as ZScoreCommand, bM as ZUnionCommand, bN as ZUnionCommandOptions, bO as ZUnionStoreCommand, bP as ZUnionStoreCommandOptions, e as errors } from './zmscore-BdNsMd17.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Connection credentials for upstash redis.
|