@upstash/redis 1.37.0-rc.9 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -142,7 +142,6 @@ var HttpClient = class {
142
142
  const signal = req.signal ?? this.options.signal;
143
143
  const isSignalFunction = typeof signal === "function";
144
144
  const requestOptions = {
145
- //@ts-expect-error this should throw due to bun regression
146
145
  cache: this.options.cache,
147
146
  method: "POST",
148
147
  headers: requestHeaders,
@@ -402,7 +401,16 @@ var ExecCommand = class extends Command {
402
401
  };
403
402
 
404
403
  // pkg/commands/search/types.ts
405
- var FIELD_TYPES = ["TEXT", "U64", "I64", "F64", "BOOL", "DATE", "KEYWORD"];
404
+ var FIELD_TYPES = [
405
+ "TEXT",
406
+ "U64",
407
+ "I64",
408
+ "F64",
409
+ "BOOL",
410
+ "DATE",
411
+ "KEYWORD",
412
+ "FACET"
413
+ ];
406
414
 
407
415
  // pkg/commands/search/utils.ts
408
416
  function isFieldType(value) {
@@ -457,7 +465,7 @@ function deserializeQueryResponse(rawResponse) {
457
465
  const key2 = fieldRaw[0];
458
466
  const value = fieldRaw[1];
459
467
  const pathParts = key2.split(".");
460
- if (pathParts.length == 1) {
468
+ if (pathParts.length === 1) {
461
469
  data[key2] = value;
462
470
  } else {
463
471
  let currentObj = data;
@@ -519,6 +527,10 @@ function deserializeDescribeResponse(rawResponse) {
519
527
  fieldInfo.fast = true;
520
528
  break;
521
529
  }
530
+ case "FROM": {
531
+ fieldInfo.from = fieldDescription[++j];
532
+ break;
533
+ }
522
534
  }
523
535
  }
524
536
  }
@@ -534,16 +546,8 @@ function deserializeDescribeResponse(rawResponse) {
534
546
  function parseCountResponse(rawResponse) {
535
547
  return typeof rawResponse === "number" ? rawResponse : Number.parseInt(rawResponse, 10);
536
548
  }
537
- function deserializeAggregateResponse(rawResponse, hasLimit) {
538
- if (hasLimit && rawResponse.length === 2 && Array.isArray(rawResponse[0]) && Array.isArray(rawResponse[1])) {
539
- const aggregationResult = parseAggregationArray(rawResponse[0]);
540
- const searchResults = deserializeQueryResponse(rawResponse[1]);
541
- return [aggregationResult, searchResults];
542
- }
543
- if (Array.isArray(rawResponse) && rawResponse.length === 1 && Array.isArray(rawResponse[0])) {
544
- return parseAggregationArray(rawResponse[0]);
545
- }
546
- return rawResponse;
549
+ function deserializeAggregateResponse(rawResponse) {
550
+ return parseAggregationArray(rawResponse);
547
551
  }
548
552
  function parseAggregationArray(arr) {
549
553
  const result = {};
@@ -562,6 +566,12 @@ function parseAggregationArray(arr) {
562
566
  }
563
567
  return result;
564
568
  }
569
+ function coerceNumericString(value) {
570
+ if (typeof value === "string" && value !== "" && !Number.isNaN(Number(value))) {
571
+ return Number(value);
572
+ }
573
+ return value;
574
+ }
565
575
  function parseStatsValue(arr) {
566
576
  const result = {};
567
577
  for (let i = 0; i < arr.length; i += 2) {
@@ -576,14 +586,14 @@ function parseStatsValue(arr) {
576
586
  result[key] = value;
577
587
  }
578
588
  } else {
579
- result[key] = value;
589
+ result[key] = coerceNumericString(value);
580
590
  }
581
591
  }
582
592
  return result;
583
593
  }
584
594
  function parseBucketsValue(arr) {
585
595
  if (arr[0] === "buckets" && Array.isArray(arr[1])) {
586
- return {
596
+ const result = {
587
597
  buckets: arr[1].map((bucket) => {
588
598
  const bucketObj = {};
589
599
  for (let i = 0; i < bucket.length; i += 2) {
@@ -594,6 +604,10 @@ function parseBucketsValue(arr) {
594
604
  return bucketObj;
595
605
  })
596
606
  };
607
+ for (let i = 2; i < arr.length; i += 2) {
608
+ result[arr[i]] = arr[i + 1];
609
+ }
610
+ return result;
597
611
  }
598
612
  return arr;
599
613
  }
@@ -717,11 +731,7 @@ function buildCreateIndexCommand(params) {
717
731
  function buildAggregateCommand(name, options) {
718
732
  const query = JSON.stringify(options?.filter ?? {});
719
733
  const aggregations = JSON.stringify(options.aggregations);
720
- const command = ["SEARCH.AGGREGATE", name, query, aggregations];
721
- if (options?.limit !== void 0) {
722
- command.push("LIMIT", options.limit.toString());
723
- }
724
- return command;
734
+ return ["SEARCH.AGGREGATE", name, query, aggregations];
725
735
  }
726
736
 
727
737
  // pkg/commands/search/search.ts
@@ -736,7 +746,7 @@ var SearchIndex = class {
736
746
  }
737
747
  async waitIndexing() {
738
748
  const command = ["SEARCH.WAITINDEXING", this.name];
739
- await new ExecCommand(command).exec(this.client);
749
+ return await new ExecCommand(command).exec(this.client);
740
750
  }
741
751
  async describe() {
742
752
  const command = ["SEARCH.DESCRIBE", this.name];
@@ -751,7 +761,7 @@ var SearchIndex = class {
751
761
  const rawResult = await new ExecCommand(command).exec(
752
762
  this.client
753
763
  );
754
- if (!rawResult) return [];
764
+ if (!rawResult) return rawResult;
755
765
  return deserializeQueryResponse(rawResult);
756
766
  }
757
767
  async aggregate(options) {
@@ -759,7 +769,7 @@ var SearchIndex = class {
759
769
  const rawResult = await new ExecCommand(
760
770
  command
761
771
  ).exec(this.client);
762
- return deserializeAggregateResponse(rawResult, Boolean(options.limit));
772
+ return deserializeAggregateResponse(rawResult);
763
773
  }
764
774
  async count({ filter }) {
765
775
  const command = buildQueryCommand("SEARCH.COUNT", this.name, { filter });
@@ -2297,6 +2307,18 @@ var SInterCommand = class extends Command {
2297
2307
  }
2298
2308
  };
2299
2309
 
2310
+ // pkg/commands/sintercard.ts
2311
+ var SInterCardCommand = class extends Command {
2312
+ constructor(cmd, cmdOpts) {
2313
+ const [keys, opts] = cmd;
2314
+ const command = ["sintercard", keys.length, ...keys];
2315
+ if (opts?.limit !== void 0) {
2316
+ command.push("LIMIT", opts.limit);
2317
+ }
2318
+ super(command, cmdOpts);
2319
+ }
2320
+ };
2321
+
2300
2322
  // pkg/commands/sinterstore.ts
2301
2323
  var SInterStoreCommand = class extends Command {
2302
2324
  constructor(cmd, opts) {
@@ -2446,8 +2468,7 @@ var XAckCommand = class extends Command {
2446
2468
  var XAckDelCommand = class extends Command {
2447
2469
  constructor([key, group, opts, ...ids], cmdOpts) {
2448
2470
  const command = ["XACKDEL", key, group];
2449
- command.push(opts.toUpperCase());
2450
- command.push("IDS", ids.length, ...ids);
2471
+ command.push(opts.toUpperCase(), "IDS", ids.length, ...ids);
2451
2472
  super(command, cmdOpts);
2452
2473
  }
2453
2474
  };
@@ -3528,6 +3549,10 @@ var Pipeline = class {
3528
3549
  * @see https://redis.io/commands/sinter
3529
3550
  */
3530
3551
  sinter = (...args) => this.chain(new SInterCommand(args, this.commandOptions));
3552
+ /**
3553
+ * @see https://redis.io/commands/sintercard
3554
+ */
3555
+ sintercard = (...args) => this.chain(new SInterCardCommand(args, this.commandOptions));
3531
3556
  /**
3532
3557
  * @see https://redis.io/commands/sinterstore
3533
3558
  */
@@ -4183,6 +4208,7 @@ var Script = class {
4183
4208
  * future major release.
4184
4209
  */
4185
4210
  sha1;
4211
+ initPromise;
4186
4212
  redis;
4187
4213
  constructor(redis, script) {
4188
4214
  this.redis = redis;
@@ -4193,9 +4219,13 @@ var Script = class {
4193
4219
  /**
4194
4220
  * Initialize the script by computing its SHA-1 hash.
4195
4221
  */
4196
- async init(script) {
4197
- if (this.sha1) return;
4198
- this.sha1 = await this.digest(script);
4222
+ init(script) {
4223
+ if (!this.initPromise) {
4224
+ this.initPromise = this.digest(script).then((sha1) => {
4225
+ this.sha1 = sha1;
4226
+ });
4227
+ }
4228
+ return this.initPromise;
4199
4229
  }
4200
4230
  /**
4201
4231
  * Send an `EVAL` command to redis.
@@ -4250,6 +4280,7 @@ var ScriptRO = class {
4250
4280
  * future major release.
4251
4281
  */
4252
4282
  sha1;
4283
+ initPromise;
4253
4284
  redis;
4254
4285
  constructor(redis, script) {
4255
4286
  this.redis = redis;
@@ -4257,9 +4288,13 @@ var ScriptRO = class {
4257
4288
  this.script = script;
4258
4289
  void this.init(script);
4259
4290
  }
4260
- async init(script) {
4261
- if (this.sha1) return;
4262
- this.sha1 = await this.digest(script);
4291
+ init(script) {
4292
+ if (!this.initPromise) {
4293
+ this.initPromise = this.digest(script).then((sha1) => {
4294
+ this.sha1 = sha1;
4295
+ });
4296
+ }
4297
+ return this.initPromise;
4263
4298
  }
4264
4299
  /**
4265
4300
  * Send an `EVAL_RO` command to redis.
@@ -5030,6 +5065,10 @@ var Redis = class {
5030
5065
  * @see https://redis.io/commands/sinter
5031
5066
  */
5032
5067
  sinter = (...args) => new SInterCommand(args, this.opts).exec(this.client);
5068
+ /**
5069
+ * @see https://redis.io/commands/sintercard
5070
+ */
5071
+ sintercard = (...args) => new SInterCardCommand(args, this.opts).exec(this.client);
5033
5072
  /**
5034
5073
  * @see https://redis.io/commands/sinterstore
5035
5074
  */
@@ -5266,7 +5305,7 @@ var Redis = class {
5266
5305
  };
5267
5306
 
5268
5307
  // version.ts
5269
- var VERSION = "v1.37.0-rc.9";
5308
+ var VERSION = "v1.30.2";
5270
5309
 
5271
5310
  export {
5272
5311
  error_exports,
package/cloudflare.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { H as HttpClientConfig, R as RedisOptions, b as RequesterConfig, c as Redis$1 } from './zmscore-Bf80VjGQ.mjs';
2
- export { A as AppendCommand, B as BitCountCommand, g as BitOpCommand, h as BitPosCommand, i as ClientSetInfoAttribute, C as ClientSetInfoCommand, j as CopyCommand, D as DBSizeCommand, l as DecrByCommand, k as DecrCommand, m as DelCommand, E as EchoCommand, o as EvalCommand, n as EvalROCommand, q as EvalshaCommand, p as EvalshaROCommand, r as ExistsCommand, u as ExpireAtCommand, s as ExpireCommand, t as ExpireOption, F as FlushAllCommand, v as FlushDBCommand, G as GeoAddCommand, w as GeoAddCommandOptions, y as GeoDistCommand, z as GeoHashCommand, x as GeoMember, I as GeoPosCommand, J as GeoSearchCommand, K as GeoSearchStoreCommand, M as GetBitCommand, L as GetCommand, O as GetDelCommand, Q as GetExCommand, S as GetRangeCommand, T as GetSetCommand, V as HDelCommand, W as HExistsCommand, Y as HExpireAtCommand, X as HExpireCommand, Z as HExpireTimeCommand, a5 as HGetAllCommand, a4 as HGetCommand, a6 as HGetDelCommand, a7 as HGetExCommand, a8 as HIncrByCommand, a9 as HIncrByFloatCommand, aa as HKeysCommand, ab as HLenCommand, ac as HMGetCommand, ad as HMSetCommand, a0 as HPExpireAtCommand, $ as HPExpireCommand, a1 as HPExpireTimeCommand, a2 as HPTtlCommand, a3 as HPersistCommand, ae as HRandFieldCommand, af as HScanCommand, ag as HSetCommand, ah as HSetExCommand, ai as HSetNXCommand, aj as HStrLenCommand, _ as HTtlCommand, ak as HValsCommand, am as IncrByCommand, an as IncrByFloatCommand, al as IncrCommand, ao as JsonArrAppendCommand, ap as JsonArrIndexCommand, aq as JsonArrInsertCommand, ar as JsonArrLenCommand, as as JsonArrPopCommand, at as JsonArrTrimCommand, au as JsonClearCommand, av as JsonDelCommand, aw as JsonForgetCommand, ax as JsonGetCommand, az as JsonMGetCommand, ay as JsonMergeCommand, aA as JsonNumIncrByCommand, aB as JsonNumMultByCommand, aC as JsonObjKeysCommand, aD as JsonObjLenCommand, aE as JsonRespCommand, aF as JsonSetCommand, aG as JsonStrAppendCommand, aH as JsonStrLenCommand, aI as JsonToggleCommand, aJ as JsonTypeCommand, aK as KeysCommand, aL as LIndexCommand, aM as LInsertCommand, aN as LLenCommand, aO as LMoveCommand, aP as LPopCommand, aQ as LPushCommand, aR as LPushXCommand, aS as LRangeCommand, aT as LRemCommand, aU as LSetCommand, aV as LTrimCommand, aW as MGetCommand, aX as MSetCommand, aY as MSetNXCommand, a$ as PExpireAtCommand, a_ as PExpireCommand, b1 as PSetEXCommand, b2 as PTtlCommand, aZ as PersistCommand, b0 as PingCommand, P as Pipeline, b3 as PublishCommand, b7 as RPopCommand, b8 as RPushCommand, b9 as RPushXCommand, b4 as RandomKeyCommand, b5 as RenameCommand, b6 as RenameNXCommand, d as Requester, ba as SAddCommand, bd as SCardCommand, bh as SDiffCommand, bi as SDiffStoreCommand, bp as SInterCommand, bq as SInterStoreCommand, br as SIsMemberCommand, bt as SMIsMemberCommand, bs as SMembersCommand, bu as SMoveCommand, bv as SPopCommand, bw as SRandMemberCommand, bx as SRemCommand, by as SScanCommand, bA as SUnionCommand, bB as SUnionStoreCommand, bb as ScanCommand, bc as ScanCommandOptions, bM as ScoreMember, be as ScriptExistsCommand, bf as ScriptFlushCommand, bg as ScriptLoadCommand, bl as SetBitCommand, bj as SetCommand, bk as SetCommandOptions, bm as SetExCommand, bn as SetNxCommand, bo as SetRangeCommand, bz as StrLenCommand, bC as TimeCommand, bD as TouchCommand, bE as TtlCommand, bF as Type, bG as TypeCommand, bH as UnlinkCommand, U as UpstashRequest, f as UpstashResponse, bJ as XAckDelCommand, bI as XAddCommand, bK as XDelExCommand, bL as XRangeCommand, bO as ZAddCommand, bN as ZAddCommandOptions, bP as ZCardCommand, bQ as ZCountCommand, bR as ZDiffStoreCommand, bS as ZIncrByCommand, bT as ZInterStoreCommand, bU as ZInterStoreCommandOptions, bV as ZLexCountCommand, bW as ZMScoreCommand, bX as ZPopMaxCommand, bY as ZPopMinCommand, bZ as ZRangeCommand, b_ as ZRangeCommandOptions, b$ as ZRankCommand, c0 as ZRemCommand, c1 as ZRemRangeByLexCommand, c2 as ZRemRangeByRankCommand, c3 as ZRemRangeByScoreCommand, c4 as ZRevRankCommand, c5 as ZScanCommand, c6 as ZScoreCommand, c7 as ZUnionCommand, c8 as ZUnionCommandOptions, c9 as ZUnionStoreCommand, ca as ZUnionStoreCommandOptions, e as errors } from './zmscore-Bf80VjGQ.mjs';
1
+ import { R as Redis$1, H as HttpClientConfig, a as RedisOptions, b as RequesterConfig } from './error-8y4qG0W2.mjs';
2
+ export { A as AppendCommand, B as BitCountCommand, c as BitOpCommand, d as BitPosCommand, C as ClientSetInfoAttribute, e as ClientSetInfoCommand, f as CopyCommand, D as DBSizeCommand, g as DecrByCommand, h as DecrCommand, i as DelCommand, E as EchoCommand, j as EvalCommand, k as EvalROCommand, l as EvalshaCommand, m as EvalshaROCommand, n as ExistsCommand, o as ExpireAtCommand, p as ExpireCommand, q as ExpireOption, F as FlushAllCommand, r as FlushDBCommand, G as GeoAddCommand, s as GeoAddCommandOptions, t as GeoDistCommand, u as GeoHashCommand, v as GeoMember, w as GeoPosCommand, x as GeoSearchCommand, y as GeoSearchStoreCommand, z as GetBitCommand, I as GetCommand, J as GetDelCommand, K as GetExCommand, L as GetRangeCommand, M as GetSetCommand, N as HDelCommand, O as HExistsCommand, P as HExpireAtCommand, Q as HExpireCommand, S as HExpireTimeCommand, T as HGetAllCommand, U as HGetCommand, V as HGetDelCommand, W as HGetExCommand, X as HIncrByCommand, Y as HIncrByFloatCommand, Z as HKeysCommand, _ as HLenCommand, $ as HMGetCommand, a0 as HMSetCommand, a1 as HPExpireAtCommand, a2 as HPExpireCommand, a3 as HPExpireTimeCommand, a4 as HPTtlCommand, a5 as HPersistCommand, a6 as HRandFieldCommand, a7 as HScanCommand, a8 as HSetCommand, a9 as HSetExCommand, aa as HSetNXCommand, ab as HStrLenCommand, ac as HTtlCommand, ad as HValsCommand, ae as IncrByCommand, af as IncrByFloatCommand, ag as IncrCommand, ah as JsonArrAppendCommand, ai as JsonArrIndexCommand, aj as JsonArrInsertCommand, ak as JsonArrLenCommand, al as JsonArrPopCommand, am as JsonArrTrimCommand, an as JsonClearCommand, ao as JsonDelCommand, ap as JsonForgetCommand, aq as JsonGetCommand, ar as JsonMGetCommand, as as JsonMergeCommand, at as JsonNumIncrByCommand, au as JsonNumMultByCommand, av as JsonObjKeysCommand, aw as JsonObjLenCommand, ax as JsonRespCommand, ay as JsonSetCommand, az as JsonStrAppendCommand, aA as JsonStrLenCommand, aB as JsonToggleCommand, aC as JsonTypeCommand, aD as KeysCommand, aE as LIndexCommand, aF as LInsertCommand, aG as LLenCommand, aH as LMoveCommand, aI as LPopCommand, aJ as LPushCommand, aK as LPushXCommand, aL as LRangeCommand, aM as LRemCommand, aN as LSetCommand, aO as LTrimCommand, aP as MGetCommand, aQ as MSetCommand, aR as MSetNXCommand, aS as PExpireAtCommand, aT as PExpireCommand, aU as PSetEXCommand, aV as PTtlCommand, aW as PersistCommand, aX as PingCommand, aY as Pipeline, aZ as PublishCommand, a_ as RPopCommand, a$ as RPushCommand, b0 as RPushXCommand, b1 as RandomKeyCommand, b2 as RenameCommand, b3 as RenameNXCommand, b4 as Requester, b5 as SAddCommand, b6 as SCardCommand, b7 as SDiffCommand, b8 as SDiffStoreCommand, b9 as SInterCardCommand, ba as SInterCommand, bb as SInterStoreCommand, bc as SIsMemberCommand, bd as SMIsMemberCommand, be as SMembersCommand, bf as SMoveCommand, bg as SPopCommand, bh as SRandMemberCommand, bi as SRemCommand, bj as SScanCommand, bk as SUnionCommand, bl as SUnionStoreCommand, bm as ScanCommand, bn as ScanCommandOptions, bo as ScoreMember, bp as ScriptExistsCommand, bq as ScriptFlushCommand, br as ScriptLoadCommand, bs as SetBitCommand, bt as SetCommand, bu as SetCommandOptions, bv as SetExCommand, bw as SetNxCommand, bx as SetRangeCommand, by as StrLenCommand, bz as TimeCommand, bA as TouchCommand, bB as TtlCommand, bC as Type, bD as TypeCommand, bE as UnlinkCommand, bF as UpstashRequest, bG as UpstashResponse, bH as XAckDelCommand, bI as XAddCommand, bJ as XDelExCommand, bK as XRangeCommand, bL as ZAddCommand, bM as ZAddCommandOptions, bN as ZCardCommand, bO as ZCountCommand, bP as ZDiffStoreCommand, bQ as ZIncrByCommand, bR as ZInterStoreCommand, bS as ZInterStoreCommandOptions, bT as ZLexCountCommand, bU as ZMScoreCommand, bV as ZPopMaxCommand, bW as ZPopMinCommand, bX as ZRangeCommand, bY as ZRangeCommandOptions, bZ as ZRankCommand, b_ as ZRemCommand, b$ as ZRemRangeByLexCommand, c0 as ZRemRangeByRankCommand, c1 as ZRemRangeByScoreCommand, c2 as ZRevRankCommand, c3 as ZScanCommand, c4 as ZScoreCommand, c5 as ZUnionCommand, c6 as ZUnionCommandOptions, c7 as ZUnionStoreCommand, c8 as ZUnionStoreCommandOptions, c9 as errors } from './error-8y4qG0W2.mjs';
3
3
 
4
4
  type Env = {
5
5
  UPSTASH_DISABLE_TELEMETRY?: string;
package/cloudflare.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { H as HttpClientConfig, R as RedisOptions, b as RequesterConfig, c as Redis$1 } from './zmscore-Bf80VjGQ.js';
2
- export { A as AppendCommand, B as BitCountCommand, g as BitOpCommand, h as BitPosCommand, i as ClientSetInfoAttribute, C as ClientSetInfoCommand, j as CopyCommand, D as DBSizeCommand, l as DecrByCommand, k as DecrCommand, m as DelCommand, E as EchoCommand, o as EvalCommand, n as EvalROCommand, q as EvalshaCommand, p as EvalshaROCommand, r as ExistsCommand, u as ExpireAtCommand, s as ExpireCommand, t as ExpireOption, F as FlushAllCommand, v as FlushDBCommand, G as GeoAddCommand, w as GeoAddCommandOptions, y as GeoDistCommand, z as GeoHashCommand, x as GeoMember, I as GeoPosCommand, J as GeoSearchCommand, K as GeoSearchStoreCommand, M as GetBitCommand, L as GetCommand, O as GetDelCommand, Q as GetExCommand, S as GetRangeCommand, T as GetSetCommand, V as HDelCommand, W as HExistsCommand, Y as HExpireAtCommand, X as HExpireCommand, Z as HExpireTimeCommand, a5 as HGetAllCommand, a4 as HGetCommand, a6 as HGetDelCommand, a7 as HGetExCommand, a8 as HIncrByCommand, a9 as HIncrByFloatCommand, aa as HKeysCommand, ab as HLenCommand, ac as HMGetCommand, ad as HMSetCommand, a0 as HPExpireAtCommand, $ as HPExpireCommand, a1 as HPExpireTimeCommand, a2 as HPTtlCommand, a3 as HPersistCommand, ae as HRandFieldCommand, af as HScanCommand, ag as HSetCommand, ah as HSetExCommand, ai as HSetNXCommand, aj as HStrLenCommand, _ as HTtlCommand, ak as HValsCommand, am as IncrByCommand, an as IncrByFloatCommand, al as IncrCommand, ao as JsonArrAppendCommand, ap as JsonArrIndexCommand, aq as JsonArrInsertCommand, ar as JsonArrLenCommand, as as JsonArrPopCommand, at as JsonArrTrimCommand, au as JsonClearCommand, av as JsonDelCommand, aw as JsonForgetCommand, ax as JsonGetCommand, az as JsonMGetCommand, ay as JsonMergeCommand, aA as JsonNumIncrByCommand, aB as JsonNumMultByCommand, aC as JsonObjKeysCommand, aD as JsonObjLenCommand, aE as JsonRespCommand, aF as JsonSetCommand, aG as JsonStrAppendCommand, aH as JsonStrLenCommand, aI as JsonToggleCommand, aJ as JsonTypeCommand, aK as KeysCommand, aL as LIndexCommand, aM as LInsertCommand, aN as LLenCommand, aO as LMoveCommand, aP as LPopCommand, aQ as LPushCommand, aR as LPushXCommand, aS as LRangeCommand, aT as LRemCommand, aU as LSetCommand, aV as LTrimCommand, aW as MGetCommand, aX as MSetCommand, aY as MSetNXCommand, a$ as PExpireAtCommand, a_ as PExpireCommand, b1 as PSetEXCommand, b2 as PTtlCommand, aZ as PersistCommand, b0 as PingCommand, P as Pipeline, b3 as PublishCommand, b7 as RPopCommand, b8 as RPushCommand, b9 as RPushXCommand, b4 as RandomKeyCommand, b5 as RenameCommand, b6 as RenameNXCommand, d as Requester, ba as SAddCommand, bd as SCardCommand, bh as SDiffCommand, bi as SDiffStoreCommand, bp as SInterCommand, bq as SInterStoreCommand, br as SIsMemberCommand, bt as SMIsMemberCommand, bs as SMembersCommand, bu as SMoveCommand, bv as SPopCommand, bw as SRandMemberCommand, bx as SRemCommand, by as SScanCommand, bA as SUnionCommand, bB as SUnionStoreCommand, bb as ScanCommand, bc as ScanCommandOptions, bM as ScoreMember, be as ScriptExistsCommand, bf as ScriptFlushCommand, bg as ScriptLoadCommand, bl as SetBitCommand, bj as SetCommand, bk as SetCommandOptions, bm as SetExCommand, bn as SetNxCommand, bo as SetRangeCommand, bz as StrLenCommand, bC as TimeCommand, bD as TouchCommand, bE as TtlCommand, bF as Type, bG as TypeCommand, bH as UnlinkCommand, U as UpstashRequest, f as UpstashResponse, bJ as XAckDelCommand, bI as XAddCommand, bK as XDelExCommand, bL as XRangeCommand, bO as ZAddCommand, bN as ZAddCommandOptions, bP as ZCardCommand, bQ as ZCountCommand, bR as ZDiffStoreCommand, bS as ZIncrByCommand, bT as ZInterStoreCommand, bU as ZInterStoreCommandOptions, bV as ZLexCountCommand, bW as ZMScoreCommand, bX as ZPopMaxCommand, bY as ZPopMinCommand, bZ as ZRangeCommand, b_ as ZRangeCommandOptions, b$ as ZRankCommand, c0 as ZRemCommand, c1 as ZRemRangeByLexCommand, c2 as ZRemRangeByRankCommand, c3 as ZRemRangeByScoreCommand, c4 as ZRevRankCommand, c5 as ZScanCommand, c6 as ZScoreCommand, c7 as ZUnionCommand, c8 as ZUnionCommandOptions, c9 as ZUnionStoreCommand, ca as ZUnionStoreCommandOptions, e as errors } from './zmscore-Bf80VjGQ.js';
1
+ import { R as Redis$1, H as HttpClientConfig, a as RedisOptions, b as RequesterConfig } from './error-8y4qG0W2.js';
2
+ export { A as AppendCommand, B as BitCountCommand, c as BitOpCommand, d as BitPosCommand, C as ClientSetInfoAttribute, e as ClientSetInfoCommand, f as CopyCommand, D as DBSizeCommand, g as DecrByCommand, h as DecrCommand, i as DelCommand, E as EchoCommand, j as EvalCommand, k as EvalROCommand, l as EvalshaCommand, m as EvalshaROCommand, n as ExistsCommand, o as ExpireAtCommand, p as ExpireCommand, q as ExpireOption, F as FlushAllCommand, r as FlushDBCommand, G as GeoAddCommand, s as GeoAddCommandOptions, t as GeoDistCommand, u as GeoHashCommand, v as GeoMember, w as GeoPosCommand, x as GeoSearchCommand, y as GeoSearchStoreCommand, z as GetBitCommand, I as GetCommand, J as GetDelCommand, K as GetExCommand, L as GetRangeCommand, M as GetSetCommand, N as HDelCommand, O as HExistsCommand, P as HExpireAtCommand, Q as HExpireCommand, S as HExpireTimeCommand, T as HGetAllCommand, U as HGetCommand, V as HGetDelCommand, W as HGetExCommand, X as HIncrByCommand, Y as HIncrByFloatCommand, Z as HKeysCommand, _ as HLenCommand, $ as HMGetCommand, a0 as HMSetCommand, a1 as HPExpireAtCommand, a2 as HPExpireCommand, a3 as HPExpireTimeCommand, a4 as HPTtlCommand, a5 as HPersistCommand, a6 as HRandFieldCommand, a7 as HScanCommand, a8 as HSetCommand, a9 as HSetExCommand, aa as HSetNXCommand, ab as HStrLenCommand, ac as HTtlCommand, ad as HValsCommand, ae as IncrByCommand, af as IncrByFloatCommand, ag as IncrCommand, ah as JsonArrAppendCommand, ai as JsonArrIndexCommand, aj as JsonArrInsertCommand, ak as JsonArrLenCommand, al as JsonArrPopCommand, am as JsonArrTrimCommand, an as JsonClearCommand, ao as JsonDelCommand, ap as JsonForgetCommand, aq as JsonGetCommand, ar as JsonMGetCommand, as as JsonMergeCommand, at as JsonNumIncrByCommand, au as JsonNumMultByCommand, av as JsonObjKeysCommand, aw as JsonObjLenCommand, ax as JsonRespCommand, ay as JsonSetCommand, az as JsonStrAppendCommand, aA as JsonStrLenCommand, aB as JsonToggleCommand, aC as JsonTypeCommand, aD as KeysCommand, aE as LIndexCommand, aF as LInsertCommand, aG as LLenCommand, aH as LMoveCommand, aI as LPopCommand, aJ as LPushCommand, aK as LPushXCommand, aL as LRangeCommand, aM as LRemCommand, aN as LSetCommand, aO as LTrimCommand, aP as MGetCommand, aQ as MSetCommand, aR as MSetNXCommand, aS as PExpireAtCommand, aT as PExpireCommand, aU as PSetEXCommand, aV as PTtlCommand, aW as PersistCommand, aX as PingCommand, aY as Pipeline, aZ as PublishCommand, a_ as RPopCommand, a$ as RPushCommand, b0 as RPushXCommand, b1 as RandomKeyCommand, b2 as RenameCommand, b3 as RenameNXCommand, b4 as Requester, b5 as SAddCommand, b6 as SCardCommand, b7 as SDiffCommand, b8 as SDiffStoreCommand, b9 as SInterCardCommand, ba as SInterCommand, bb as SInterStoreCommand, bc as SIsMemberCommand, bd as SMIsMemberCommand, be as SMembersCommand, bf as SMoveCommand, bg as SPopCommand, bh as SRandMemberCommand, bi as SRemCommand, bj as SScanCommand, bk as SUnionCommand, bl as SUnionStoreCommand, bm as ScanCommand, bn as ScanCommandOptions, bo as ScoreMember, bp as ScriptExistsCommand, bq as ScriptFlushCommand, br as ScriptLoadCommand, bs as SetBitCommand, bt as SetCommand, bu as SetCommandOptions, bv as SetExCommand, bw as SetNxCommand, bx as SetRangeCommand, by as StrLenCommand, bz as TimeCommand, bA as TouchCommand, bB as TtlCommand, bC as Type, bD as TypeCommand, bE as UnlinkCommand, bF as UpstashRequest, bG as UpstashResponse, bH as XAckDelCommand, bI as XAddCommand, bJ as XDelExCommand, bK as XRangeCommand, bL as ZAddCommand, bM as ZAddCommandOptions, bN as ZCardCommand, bO as ZCountCommand, bP as ZDiffStoreCommand, bQ as ZIncrByCommand, bR as ZInterStoreCommand, bS as ZInterStoreCommandOptions, bT as ZLexCountCommand, bU as ZMScoreCommand, bV as ZPopMaxCommand, bW as ZPopMinCommand, bX as ZRangeCommand, bY as ZRangeCommandOptions, bZ as ZRankCommand, b_ as ZRemCommand, b$ as ZRemRangeByLexCommand, c0 as ZRemRangeByRankCommand, c1 as ZRemRangeByScoreCommand, c2 as ZRevRankCommand, c3 as ZScanCommand, c4 as ZScoreCommand, c5 as ZUnionCommand, c6 as ZUnionCommandOptions, c7 as ZUnionStoreCommand, c8 as ZUnionStoreCommandOptions, c9 as errors } from './error-8y4qG0W2.js';
3
3
 
4
4
  type Env = {
5
5
  UPSTASH_DISABLE_TELEMETRY?: string;
package/cloudflare.js CHANGED
@@ -163,7 +163,6 @@ var HttpClient = class {
163
163
  const signal = req.signal ?? this.options.signal;
164
164
  const isSignalFunction = typeof signal === "function";
165
165
  const requestOptions = {
166
- //@ts-expect-error this should throw due to bun regression
167
166
  cache: this.options.cache,
168
167
  method: "POST",
169
168
  headers: requestHeaders,
@@ -2001,6 +2000,18 @@ var SInterCommand = class extends Command {
2001
2000
  }
2002
2001
  };
2003
2002
 
2003
+ // pkg/commands/sintercard.ts
2004
+ var SInterCardCommand = class extends Command {
2005
+ constructor(cmd, cmdOpts) {
2006
+ const [keys, opts] = cmd;
2007
+ const command = ["sintercard", keys.length, ...keys];
2008
+ if (opts?.limit !== void 0) {
2009
+ command.push("LIMIT", opts.limit);
2010
+ }
2011
+ super(command, cmdOpts);
2012
+ }
2013
+ };
2014
+
2004
2015
  // pkg/commands/sinterstore.ts
2005
2016
  var SInterStoreCommand = class extends Command {
2006
2017
  constructor(cmd, opts) {
@@ -2150,8 +2161,7 @@ var XAckCommand = class extends Command {
2150
2161
  var XAckDelCommand = class extends Command {
2151
2162
  constructor([key, group, opts, ...ids], cmdOpts) {
2152
2163
  const command = ["XACKDEL", key, group];
2153
- command.push(opts.toUpperCase());
2154
- command.push("IDS", ids.length, ...ids);
2164
+ command.push(opts.toUpperCase(), "IDS", ids.length, ...ids);
2155
2165
  super(command, cmdOpts);
2156
2166
  }
2157
2167
  };
@@ -2693,7 +2703,16 @@ var ZUnionStoreCommand = class extends Command {
2693
2703
  };
2694
2704
 
2695
2705
  // pkg/commands/search/types.ts
2696
- var FIELD_TYPES = ["TEXT", "U64", "I64", "F64", "BOOL", "DATE", "KEYWORD"];
2706
+ var FIELD_TYPES = [
2707
+ "TEXT",
2708
+ "U64",
2709
+ "I64",
2710
+ "F64",
2711
+ "BOOL",
2712
+ "DATE",
2713
+ "KEYWORD",
2714
+ "FACET"
2715
+ ];
2697
2716
 
2698
2717
  // pkg/commands/search/utils.ts
2699
2718
  function isFieldType(value) {
@@ -2748,7 +2767,7 @@ function deserializeQueryResponse(rawResponse) {
2748
2767
  const key2 = fieldRaw[0];
2749
2768
  const value = fieldRaw[1];
2750
2769
  const pathParts = key2.split(".");
2751
- if (pathParts.length == 1) {
2770
+ if (pathParts.length === 1) {
2752
2771
  data[key2] = value;
2753
2772
  } else {
2754
2773
  let currentObj = data;
@@ -2810,6 +2829,10 @@ function deserializeDescribeResponse(rawResponse) {
2810
2829
  fieldInfo.fast = true;
2811
2830
  break;
2812
2831
  }
2832
+ case "FROM": {
2833
+ fieldInfo.from = fieldDescription[++j];
2834
+ break;
2835
+ }
2813
2836
  }
2814
2837
  }
2815
2838
  }
@@ -2825,16 +2848,8 @@ function deserializeDescribeResponse(rawResponse) {
2825
2848
  function parseCountResponse(rawResponse) {
2826
2849
  return typeof rawResponse === "number" ? rawResponse : Number.parseInt(rawResponse, 10);
2827
2850
  }
2828
- function deserializeAggregateResponse(rawResponse, hasLimit) {
2829
- if (hasLimit && rawResponse.length === 2 && Array.isArray(rawResponse[0]) && Array.isArray(rawResponse[1])) {
2830
- const aggregationResult = parseAggregationArray(rawResponse[0]);
2831
- const searchResults = deserializeQueryResponse(rawResponse[1]);
2832
- return [aggregationResult, searchResults];
2833
- }
2834
- if (Array.isArray(rawResponse) && rawResponse.length === 1 && Array.isArray(rawResponse[0])) {
2835
- return parseAggregationArray(rawResponse[0]);
2836
- }
2837
- return rawResponse;
2851
+ function deserializeAggregateResponse(rawResponse) {
2852
+ return parseAggregationArray(rawResponse);
2838
2853
  }
2839
2854
  function parseAggregationArray(arr) {
2840
2855
  const result = {};
@@ -2853,6 +2868,12 @@ function parseAggregationArray(arr) {
2853
2868
  }
2854
2869
  return result;
2855
2870
  }
2871
+ function coerceNumericString(value) {
2872
+ if (typeof value === "string" && value !== "" && !Number.isNaN(Number(value))) {
2873
+ return Number(value);
2874
+ }
2875
+ return value;
2876
+ }
2856
2877
  function parseStatsValue(arr) {
2857
2878
  const result = {};
2858
2879
  for (let i = 0; i < arr.length; i += 2) {
@@ -2867,14 +2888,14 @@ function parseStatsValue(arr) {
2867
2888
  result[key] = value;
2868
2889
  }
2869
2890
  } else {
2870
- result[key] = value;
2891
+ result[key] = coerceNumericString(value);
2871
2892
  }
2872
2893
  }
2873
2894
  return result;
2874
2895
  }
2875
2896
  function parseBucketsValue(arr) {
2876
2897
  if (arr[0] === "buckets" && Array.isArray(arr[1])) {
2877
- return {
2898
+ const result = {
2878
2899
  buckets: arr[1].map((bucket) => {
2879
2900
  const bucketObj = {};
2880
2901
  for (let i = 0; i < bucket.length; i += 2) {
@@ -2885,6 +2906,10 @@ function parseBucketsValue(arr) {
2885
2906
  return bucketObj;
2886
2907
  })
2887
2908
  };
2909
+ for (let i = 2; i < arr.length; i += 2) {
2910
+ result[arr[i]] = arr[i + 1];
2911
+ }
2912
+ return result;
2888
2913
  }
2889
2914
  return arr;
2890
2915
  }
@@ -3008,11 +3033,7 @@ function buildCreateIndexCommand(params) {
3008
3033
  function buildAggregateCommand(name, options) {
3009
3034
  const query = JSON.stringify(options?.filter ?? {});
3010
3035
  const aggregations = JSON.stringify(options.aggregations);
3011
- const command = ["SEARCH.AGGREGATE", name, query, aggregations];
3012
- if (options?.limit !== void 0) {
3013
- command.push("LIMIT", options.limit.toString());
3014
- }
3015
- return command;
3036
+ return ["SEARCH.AGGREGATE", name, query, aggregations];
3016
3037
  }
3017
3038
 
3018
3039
  // pkg/commands/search/search.ts
@@ -3027,7 +3048,7 @@ var SearchIndex = class {
3027
3048
  }
3028
3049
  async waitIndexing() {
3029
3050
  const command = ["SEARCH.WAITINDEXING", this.name];
3030
- await new ExecCommand(command).exec(this.client);
3051
+ return await new ExecCommand(command).exec(this.client);
3031
3052
  }
3032
3053
  async describe() {
3033
3054
  const command = ["SEARCH.DESCRIBE", this.name];
@@ -3042,7 +3063,7 @@ var SearchIndex = class {
3042
3063
  const rawResult = await new ExecCommand(command).exec(
3043
3064
  this.client
3044
3065
  );
3045
- if (!rawResult) return [];
3066
+ if (!rawResult) return rawResult;
3046
3067
  return deserializeQueryResponse(rawResult);
3047
3068
  }
3048
3069
  async aggregate(options) {
@@ -3050,7 +3071,7 @@ var SearchIndex = class {
3050
3071
  const rawResult = await new ExecCommand(
3051
3072
  command
3052
3073
  ).exec(this.client);
3053
- return deserializeAggregateResponse(rawResult, Boolean(options.limit));
3074
+ return deserializeAggregateResponse(rawResult);
3054
3075
  }
3055
3076
  async count({ filter }) {
3056
3077
  const command = buildQueryCommand("SEARCH.COUNT", this.name, { filter });
@@ -3835,6 +3856,10 @@ var Pipeline = class {
3835
3856
  * @see https://redis.io/commands/sinter
3836
3857
  */
3837
3858
  sinter = (...args) => this.chain(new SInterCommand(args, this.commandOptions));
3859
+ /**
3860
+ * @see https://redis.io/commands/sintercard
3861
+ */
3862
+ sintercard = (...args) => this.chain(new SInterCardCommand(args, this.commandOptions));
3838
3863
  /**
3839
3864
  * @see https://redis.io/commands/sinterstore
3840
3865
  */
@@ -4204,6 +4229,7 @@ var Script = class {
4204
4229
  * future major release.
4205
4230
  */
4206
4231
  sha1;
4232
+ initPromise;
4207
4233
  redis;
4208
4234
  constructor(redis, script) {
4209
4235
  this.redis = redis;
@@ -4214,9 +4240,13 @@ var Script = class {
4214
4240
  /**
4215
4241
  * Initialize the script by computing its SHA-1 hash.
4216
4242
  */
4217
- async init(script) {
4218
- if (this.sha1) return;
4219
- this.sha1 = await this.digest(script);
4243
+ init(script) {
4244
+ if (!this.initPromise) {
4245
+ this.initPromise = this.digest(script).then((sha1) => {
4246
+ this.sha1 = sha1;
4247
+ });
4248
+ }
4249
+ return this.initPromise;
4220
4250
  }
4221
4251
  /**
4222
4252
  * Send an `EVAL` command to redis.
@@ -4271,6 +4301,7 @@ var ScriptRO = class {
4271
4301
  * future major release.
4272
4302
  */
4273
4303
  sha1;
4304
+ initPromise;
4274
4305
  redis;
4275
4306
  constructor(redis, script) {
4276
4307
  this.redis = redis;
@@ -4278,9 +4309,13 @@ var ScriptRO = class {
4278
4309
  this.script = script;
4279
4310
  void this.init(script);
4280
4311
  }
4281
- async init(script) {
4282
- if (this.sha1) return;
4283
- this.sha1 = await this.digest(script);
4312
+ init(script) {
4313
+ if (!this.initPromise) {
4314
+ this.initPromise = this.digest(script).then((sha1) => {
4315
+ this.sha1 = sha1;
4316
+ });
4317
+ }
4318
+ return this.initPromise;
4284
4319
  }
4285
4320
  /**
4286
4321
  * Send an `EVAL_RO` command to redis.
@@ -5051,6 +5086,10 @@ var Redis = class {
5051
5086
  * @see https://redis.io/commands/sinter
5052
5087
  */
5053
5088
  sinter = (...args) => new SInterCommand(args, this.opts).exec(this.client);
5089
+ /**
5090
+ * @see https://redis.io/commands/sintercard
5091
+ */
5092
+ sintercard = (...args) => new SInterCardCommand(args, this.opts).exec(this.client);
5054
5093
  /**
5055
5094
  * @see https://redis.io/commands/sinterstore
5056
5095
  */
@@ -5287,7 +5326,7 @@ var Redis = class {
5287
5326
  };
5288
5327
 
5289
5328
  // version.ts
5290
- var VERSION = "v1.37.0-rc.9";
5329
+ var VERSION = "v1.30.2";
5291
5330
 
5292
5331
  // platforms/cloudflare.ts
5293
5332
  var Redis2 = class _Redis extends Redis {
package/cloudflare.mjs CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  Redis,
4
4
  VERSION,
5
5
  error_exports
6
- } from "./chunk-36LGI43F.mjs";
6
+ } from "./chunk-IH7W44G6.mjs";
7
7
 
8
8
  // platforms/cloudflare.ts
9
9
  var Redis2 = class _Redis extends Redis {