@trigger.dev/redis-worker 4.5.0-rc.5 → 4.5.0-rc.7

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/dist/index.cjs CHANGED
@@ -3457,9 +3457,9 @@ var require_lodash2 = __commonJS({
3457
3457
  }
3458
3458
  });
3459
3459
 
3460
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/lodash.js
3460
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/lodash.js
3461
3461
  var require_lodash3 = __commonJS({
3462
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/lodash.js"(exports$1) {
3462
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/lodash.js"(exports$1) {
3463
3463
  Object.defineProperty(exports$1, "__esModule", { value: true });
3464
3464
  exports$1.isArguments = exports$1.defaults = exports$1.noop = void 0;
3465
3465
  var defaults = require_lodash();
@@ -3588,9 +3588,9 @@ var require_ms = __commonJS({
3588
3588
  }
3589
3589
  });
3590
3590
 
3591
- // ../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/common.js
3591
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/common.js
3592
3592
  var require_common = __commonJS({
3593
- "../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/common.js"(exports$1, module) {
3593
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/common.js"(exports$1, module) {
3594
3594
  function setup(env2) {
3595
3595
  createDebug.debug = createDebug;
3596
3596
  createDebug.default = createDebug;
@@ -3691,50 +3691,64 @@ var require_common = __commonJS({
3691
3691
  createDebug.namespaces = namespaces;
3692
3692
  createDebug.names = [];
3693
3693
  createDebug.skips = [];
3694
- let i;
3695
- const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
3696
- const len = split.length;
3697
- for (i = 0; i < len; i++) {
3698
- if (!split[i]) {
3699
- continue;
3694
+ const split = (typeof namespaces === "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean);
3695
+ for (const ns of split) {
3696
+ if (ns[0] === "-") {
3697
+ createDebug.skips.push(ns.slice(1));
3698
+ } else {
3699
+ createDebug.names.push(ns);
3700
3700
  }
3701
- namespaces = split[i].replace(/\*/g, ".*?");
3702
- if (namespaces[0] === "-") {
3703
- createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
3701
+ }
3702
+ }
3703
+ function matchesTemplate(search, template) {
3704
+ let searchIndex = 0;
3705
+ let templateIndex = 0;
3706
+ let starIndex = -1;
3707
+ let matchIndex = 0;
3708
+ while (searchIndex < search.length) {
3709
+ if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) {
3710
+ if (template[templateIndex] === "*") {
3711
+ starIndex = templateIndex;
3712
+ matchIndex = searchIndex;
3713
+ templateIndex++;
3714
+ } else {
3715
+ searchIndex++;
3716
+ templateIndex++;
3717
+ }
3718
+ } else if (starIndex !== -1) {
3719
+ templateIndex = starIndex + 1;
3720
+ matchIndex++;
3721
+ searchIndex = matchIndex;
3704
3722
  } else {
3705
- createDebug.names.push(new RegExp("^" + namespaces + "$"));
3723
+ return false;
3706
3724
  }
3707
3725
  }
3726
+ while (templateIndex < template.length && template[templateIndex] === "*") {
3727
+ templateIndex++;
3728
+ }
3729
+ return templateIndex === template.length;
3708
3730
  }
3709
3731
  function disable() {
3710
3732
  const namespaces = [
3711
- ...createDebug.names.map(toNamespace),
3712
- ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
3733
+ ...createDebug.names,
3734
+ ...createDebug.skips.map((namespace) => "-" + namespace)
3713
3735
  ].join(",");
3714
3736
  createDebug.enable("");
3715
3737
  return namespaces;
3716
3738
  }
3717
3739
  function enabled(name) {
3718
- if (name[name.length - 1] === "*") {
3719
- return true;
3720
- }
3721
- let i;
3722
- let len;
3723
- for (i = 0, len = createDebug.skips.length; i < len; i++) {
3724
- if (createDebug.skips[i].test(name)) {
3740
+ for (const skip of createDebug.skips) {
3741
+ if (matchesTemplate(name, skip)) {
3725
3742
  return false;
3726
3743
  }
3727
3744
  }
3728
- for (i = 0, len = createDebug.names.length; i < len; i++) {
3729
- if (createDebug.names[i].test(name)) {
3745
+ for (const ns of createDebug.names) {
3746
+ if (matchesTemplate(name, ns)) {
3730
3747
  return true;
3731
3748
  }
3732
3749
  }
3733
3750
  return false;
3734
3751
  }
3735
- function toNamespace(regexp) {
3736
- return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
3737
- }
3738
3752
  function coerce(val) {
3739
3753
  if (val instanceof Error) {
3740
3754
  return val.stack || val.message;
@@ -3751,9 +3765,9 @@ var require_common = __commonJS({
3751
3765
  }
3752
3766
  });
3753
3767
 
3754
- // ../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/browser.js
3768
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/browser.js
3755
3769
  var require_browser = __commonJS({
3756
- "../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/browser.js"(exports$1, module) {
3770
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/browser.js"(exports$1, module) {
3757
3771
  exports$1.formatArgs = formatArgs;
3758
3772
  exports$1.save = save;
3759
3773
  exports$1.load = load;
@@ -3895,7 +3909,7 @@ var require_browser = __commonJS({
3895
3909
  function load() {
3896
3910
  let r;
3897
3911
  try {
3898
- r = exports$1.storage.getItem("debug");
3912
+ r = exports$1.storage.getItem("debug") || exports$1.storage.getItem("DEBUG");
3899
3913
  } catch (error) {
3900
3914
  }
3901
3915
  if (!r && typeof process !== "undefined" && "env" in process) {
@@ -4061,9 +4075,9 @@ var init_supports_color = __esm({
4061
4075
  }
4062
4076
  });
4063
4077
 
4064
- // ../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/node.js
4078
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/node.js
4065
4079
  var require_node = __commonJS({
4066
- "../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/node.js"(exports$1, module) {
4080
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/node.js"(exports$1, module) {
4067
4081
  var tty2 = __require("tty");
4068
4082
  var util = __require("util");
4069
4083
  exports$1.init = init;
@@ -4235,9 +4249,9 @@ var require_node = __commonJS({
4235
4249
  }
4236
4250
  });
4237
4251
 
4238
- // ../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/index.js
4252
+ // ../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/index.js
4239
4253
  var require_src = __commonJS({
4240
- "../../node_modules/.pnpm/debug@4.3.7_supports-color@10.0.0/node_modules/debug/src/index.js"(exports$1, module) {
4254
+ "../../node_modules/.pnpm/debug@4.4.3_supports-color@10.0.0/node_modules/debug/src/index.js"(exports$1, module) {
4241
4255
  if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
4242
4256
  module.exports = require_browser();
4243
4257
  } else {
@@ -4246,9 +4260,9 @@ var require_src = __commonJS({
4246
4260
  }
4247
4261
  });
4248
4262
 
4249
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/debug.js
4263
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/debug.js
4250
4264
  var require_debug = __commonJS({
4251
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/debug.js"(exports$1) {
4265
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/debug.js"(exports$1) {
4252
4266
  Object.defineProperty(exports$1, "__esModule", { value: true });
4253
4267
  exports$1.genRedactedString = exports$1.getStringValue = exports$1.MAX_ARGUMENT_LENGTH = void 0;
4254
4268
  var debug_1 = require_src();
@@ -4331,9 +4345,9 @@ var require_debug = __commonJS({
4331
4345
  }
4332
4346
  });
4333
4347
 
4334
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/constants/TLSProfiles.js
4348
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/constants/TLSProfiles.js
4335
4349
  var require_TLSProfiles = __commonJS({
4336
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/constants/TLSProfiles.js"(exports$1) {
4350
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/constants/TLSProfiles.js"(exports$1) {
4337
4351
  Object.defineProperty(exports$1, "__esModule", { value: true });
4338
4352
  var RedisCloudCA = `-----BEGIN CERTIFICATE-----
4339
4353
  MIIDTzCCAjegAwIBAgIJAKSVpiDswLcwMA0GCSqGSIb3DQEBBQUAMD4xFjAUBgNV
@@ -4482,9 +4496,9 @@ WD9f
4482
4496
  }
4483
4497
  });
4484
4498
 
4485
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/index.js
4499
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/index.js
4486
4500
  var require_utils2 = __commonJS({
4487
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/index.js"(exports$1) {
4501
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/index.js"(exports$1) {
4488
4502
  Object.defineProperty(exports$1, "__esModule", { value: true });
4489
4503
  exports$1.noop = exports$1.defaults = exports$1.Debug = exports$1.zipMap = exports$1.CONNECTION_CLOSED_ERROR_MSG = exports$1.shuffle = exports$1.sample = exports$1.resolveTLSProfile = exports$1.parseURL = exports$1.optimizeErrorStack = exports$1.toArg = exports$1.convertMapToArray = exports$1.convertObjectToArray = exports$1.timeout = exports$1.packObject = exports$1.isInt = exports$1.wrapMultiResult = exports$1.convertBufferToString = void 0;
4490
4504
  var url_1 = __require("url");
@@ -4687,9 +4701,9 @@ var require_utils2 = __commonJS({
4687
4701
  }
4688
4702
  });
4689
4703
 
4690
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Command.js
4704
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Command.js
4691
4705
  var require_Command = __commonJS({
4692
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Command.js"(exports$1) {
4706
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Command.js"(exports$1) {
4693
4707
  Object.defineProperty(exports$1, "__esModule", { value: true });
4694
4708
  var commands_1 = require_built();
4695
4709
  var calculateSlot = require_lib();
@@ -4985,9 +4999,9 @@ var require_Command = __commonJS({
4985
4999
  }
4986
5000
  });
4987
5001
 
4988
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/errors/ClusterAllFailedError.js
5002
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/errors/ClusterAllFailedError.js
4989
5003
  var require_ClusterAllFailedError = __commonJS({
4990
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/errors/ClusterAllFailedError.js"(exports$1) {
5004
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/errors/ClusterAllFailedError.js"(exports$1) {
4991
5005
  Object.defineProperty(exports$1, "__esModule", { value: true });
4992
5006
  var redis_errors_1 = require_redis_errors();
4993
5007
  var ClusterAllFailedError = class extends redis_errors_1.RedisError {
@@ -5005,9 +5019,9 @@ var require_ClusterAllFailedError = __commonJS({
5005
5019
  }
5006
5020
  });
5007
5021
 
5008
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/ScanStream.js
5022
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/ScanStream.js
5009
5023
  var require_ScanStream = __commonJS({
5010
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/ScanStream.js"(exports$1) {
5024
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/ScanStream.js"(exports$1) {
5011
5025
  Object.defineProperty(exports$1, "__esModule", { value: true });
5012
5026
  var stream_1 = __require("stream");
5013
5027
  var ScanStream = class extends stream_1.Readable {
@@ -5035,6 +5049,9 @@ var require_ScanStream = __commonJS({
5035
5049
  if (this.opt.count) {
5036
5050
  args.push("COUNT", String(this.opt.count));
5037
5051
  }
5052
+ if (this.opt.noValues) {
5053
+ args.push("NOVALUES");
5054
+ }
5038
5055
  this.opt.redis[this.opt.command](args, (err, res) => {
5039
5056
  if (err) {
5040
5057
  this.emit("error", err);
@@ -5055,9 +5072,9 @@ var require_ScanStream = __commonJS({
5055
5072
  }
5056
5073
  });
5057
5074
 
5058
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/autoPipelining.js
5075
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/autoPipelining.js
5059
5076
  var require_autoPipelining = __commonJS({
5060
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/autoPipelining.js"(exports$1) {
5077
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/autoPipelining.js"(exports$1) {
5061
5078
  Object.defineProperty(exports$1, "__esModule", { value: true });
5062
5079
  exports$1.executeWithAutoPipelining = exports$1.getFirstValueInFlattenedArray = exports$1.shouldUseAutoPipelining = exports$1.notAllowedAutoPipelineCommands = exports$1.kCallbacks = exports$1.kExec = void 0;
5063
5080
  var lodash_1 = require_lodash3();
@@ -5176,9 +5193,9 @@ var require_autoPipelining = __commonJS({
5176
5193
  }
5177
5194
  });
5178
5195
 
5179
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Script.js
5196
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Script.js
5180
5197
  var require_Script = __commonJS({
5181
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Script.js"(exports$1) {
5198
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Script.js"(exports$1) {
5182
5199
  Object.defineProperty(exports$1, "__esModule", { value: true });
5183
5200
  var crypto_1 = __require("crypto");
5184
5201
  var Command_1 = require_Command();
@@ -5240,9 +5257,9 @@ var require_Script = __commonJS({
5240
5257
  }
5241
5258
  });
5242
5259
 
5243
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/Commander.js
5260
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/Commander.js
5244
5261
  var require_Commander = __commonJS({
5245
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/Commander.js"(exports$1) {
5262
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/Commander.js"(exports$1) {
5246
5263
  Object.defineProperty(exports$1, "__esModule", { value: true });
5247
5264
  var commands_1 = require_built();
5248
5265
  var autoPipelining_1 = require_autoPipelining();
@@ -5355,9 +5372,9 @@ var require_Commander = __commonJS({
5355
5372
  }
5356
5373
  });
5357
5374
 
5358
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Pipeline.js
5375
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Pipeline.js
5359
5376
  var require_Pipeline = __commonJS({
5360
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Pipeline.js"(exports$1) {
5377
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Pipeline.js"(exports$1) {
5361
5378
  Object.defineProperty(exports$1, "__esModule", { value: true });
5362
5379
  var calculateSlot = require_lib();
5363
5380
  var commands_1 = require_built();
@@ -5658,9 +5675,9 @@ var require_Pipeline = __commonJS({
5658
5675
  }
5659
5676
  });
5660
5677
 
5661
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/transaction.js
5678
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/transaction.js
5662
5679
  var require_transaction = __commonJS({
5663
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/transaction.js"(exports$1) {
5680
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/transaction.js"(exports$1) {
5664
5681
  Object.defineProperty(exports$1, "__esModule", { value: true });
5665
5682
  exports$1.addTransactionSupport = void 0;
5666
5683
  var utils_1 = require_utils2();
@@ -5750,9 +5767,9 @@ var require_transaction = __commonJS({
5750
5767
  }
5751
5768
  });
5752
5769
 
5753
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/applyMixin.js
5770
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/applyMixin.js
5754
5771
  var require_applyMixin = __commonJS({
5755
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/utils/applyMixin.js"(exports$1) {
5772
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/utils/applyMixin.js"(exports$1) {
5756
5773
  Object.defineProperty(exports$1, "__esModule", { value: true });
5757
5774
  function applyMixin(derivedConstructor, mixinConstructor) {
5758
5775
  Object.getOwnPropertyNames(mixinConstructor.prototype).forEach((name) => {
@@ -5763,9 +5780,9 @@ var require_applyMixin = __commonJS({
5763
5780
  }
5764
5781
  });
5765
5782
 
5766
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/ClusterOptions.js
5783
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ClusterOptions.js
5767
5784
  var require_ClusterOptions = __commonJS({
5768
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/ClusterOptions.js"(exports$1) {
5785
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ClusterOptions.js"(exports$1) {
5769
5786
  Object.defineProperty(exports$1, "__esModule", { value: true });
5770
5787
  exports$1.DEFAULT_CLUSTER_OPTIONS = void 0;
5771
5788
  var dns_1 = __require("dns");
@@ -5784,14 +5801,15 @@ var require_ClusterOptions = __commonJS({
5784
5801
  resolveSrv: dns_1.resolveSrv,
5785
5802
  dnsLookup: dns_1.lookup,
5786
5803
  enableAutoPipelining: false,
5787
- autoPipeliningIgnoredCommands: []
5804
+ autoPipeliningIgnoredCommands: [],
5805
+ shardedSubscribers: false
5788
5806
  };
5789
5807
  }
5790
5808
  });
5791
5809
 
5792
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/util.js
5810
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/util.js
5793
5811
  var require_util = __commonJS({
5794
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/util.js"(exports$1) {
5812
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/util.js"(exports$1) {
5795
5813
  Object.defineProperty(exports$1, "__esModule", { value: true });
5796
5814
  exports$1.getConnectionName = exports$1.weightSrvRecords = exports$1.groupSrvRecords = exports$1.getUniqueHostnamesFromOptions = exports$1.normalizeNodeOptions = exports$1.nodeKeyToRedisOptions = exports$1.getNodeKey = void 0;
5797
5815
  var utils_1 = require_utils2();
@@ -5888,20 +5906,22 @@ var require_util = __commonJS({
5888
5906
  }
5889
5907
  });
5890
5908
 
5891
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/ClusterSubscriber.js
5909
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ClusterSubscriber.js
5892
5910
  var require_ClusterSubscriber = __commonJS({
5893
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/ClusterSubscriber.js"(exports$1) {
5911
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ClusterSubscriber.js"(exports$1) {
5894
5912
  Object.defineProperty(exports$1, "__esModule", { value: true });
5895
5913
  var util_1 = require_util();
5896
5914
  var utils_1 = require_utils2();
5897
5915
  var Redis_1 = require_Redis();
5898
5916
  var debug = (0, utils_1.Debug)("cluster:subscriber");
5899
5917
  var ClusterSubscriber = class {
5900
- constructor(connectionPool, emitter) {
5918
+ constructor(connectionPool, emitter, isSharded = false) {
5901
5919
  this.connectionPool = connectionPool;
5902
5920
  this.emitter = emitter;
5921
+ this.isSharded = isSharded;
5903
5922
  this.started = false;
5904
5923
  this.subscriber = null;
5924
+ this.slotRange = [];
5905
5925
  this.onSubscriberEnd = () => {
5906
5926
  if (!this.started) {
5907
5927
  debug("subscriber has disconnected, but ClusterSubscriber is not started, so not reconnecting.");
@@ -5930,6 +5950,21 @@ var require_ClusterSubscriber = __commonJS({
5930
5950
  getInstance() {
5931
5951
  return this.subscriber;
5932
5952
  }
5953
+ /**
5954
+ * Associate this subscriber to a specific slot range.
5955
+ *
5956
+ * Returns the range or an empty array if the slot range couldn't be associated.
5957
+ *
5958
+ * BTW: This is more for debugging and testing purposes.
5959
+ *
5960
+ * @param range
5961
+ */
5962
+ associateSlotRange(range) {
5963
+ if (this.isSharded) {
5964
+ this.slotRange = range;
5965
+ }
5966
+ return this.slotRange;
5967
+ }
5933
5968
  start() {
5934
5969
  this.started = true;
5935
5970
  this.selectSubscriber();
@@ -5941,7 +5976,9 @@ var require_ClusterSubscriber = __commonJS({
5941
5976
  this.subscriber.disconnect();
5942
5977
  this.subscriber = null;
5943
5978
  }
5944
- debug("stopped");
5979
+ }
5980
+ isStarted() {
5981
+ return this.started;
5945
5982
  }
5946
5983
  selectSubscriber() {
5947
5984
  const lastActiveSubscriber = this.lastActiveSubscriber;
@@ -5961,13 +5998,16 @@ var require_ClusterSubscriber = __commonJS({
5961
5998
  }
5962
5999
  const { options } = sampleNode;
5963
6000
  debug("selected a subscriber %s:%s", options.host, options.port);
6001
+ let connectionPrefix = "subscriber";
6002
+ if (this.isSharded)
6003
+ connectionPrefix = "ssubscriber";
5964
6004
  this.subscriber = new Redis_1.default({
5965
6005
  port: options.port,
5966
6006
  host: options.host,
5967
6007
  username: options.username,
5968
6008
  password: options.password,
5969
6009
  enableReadyCheck: true,
5970
- connectionName: (0, util_1.getConnectionName)("subscriber", options.connectionName),
6010
+ connectionName: (0, util_1.getConnectionName)(connectionPrefix, options.connectionName),
5971
6011
  lazyConnect: true,
5972
6012
  tls: options.tls,
5973
6013
  // Don't try to reconnect the subscriber connection. If the connection fails
@@ -6007,9 +6047,7 @@ var require_ClusterSubscriber = __commonJS({
6007
6047
  }
6008
6048
  for (const event of [
6009
6049
  "message",
6010
- "messageBuffer",
6011
- "smessage",
6012
- "smessageBuffer"
6050
+ "messageBuffer"
6013
6051
  ]) {
6014
6052
  this.subscriber.on(event, (arg1, arg2) => {
6015
6053
  this.emitter.emit(event, arg1, arg2);
@@ -6020,15 +6058,25 @@ var require_ClusterSubscriber = __commonJS({
6020
6058
  this.emitter.emit(event, arg1, arg2, arg3);
6021
6059
  });
6022
6060
  }
6061
+ if (this.isSharded == true) {
6062
+ for (const event of [
6063
+ "smessage",
6064
+ "smessageBuffer"
6065
+ ]) {
6066
+ this.subscriber.on(event, (arg1, arg2) => {
6067
+ this.emitter.emit(event, arg1, arg2);
6068
+ });
6069
+ }
6070
+ }
6023
6071
  }
6024
6072
  };
6025
6073
  exports$1.default = ClusterSubscriber;
6026
6074
  }
6027
6075
  });
6028
6076
 
6029
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/ConnectionPool.js
6077
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ConnectionPool.js
6030
6078
  var require_ConnectionPool = __commonJS({
6031
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/ConnectionPool.js"(exports$1) {
6079
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ConnectionPool.js"(exports$1) {
6032
6080
  Object.defineProperty(exports$1, "__esModule", { value: true });
6033
6081
  var events_1 = __require("events");
6034
6082
  var utils_1 = require_utils2();
@@ -6058,6 +6106,39 @@ var require_ConnectionPool = __commonJS({
6058
6106
  const sampleKey = (0, utils_1.sample)(keys);
6059
6107
  return this.nodes[role][sampleKey];
6060
6108
  }
6109
+ /**
6110
+ * Add a master node to the pool
6111
+ * @param node
6112
+ */
6113
+ addMasterNode(node) {
6114
+ const key = (0, util_1.getNodeKey)(node.options);
6115
+ const redis = this.createRedisFromOptions(node, node.options.readOnly);
6116
+ if (!node.options.readOnly) {
6117
+ this.nodes.all[key] = redis;
6118
+ this.nodes.master[key] = redis;
6119
+ return true;
6120
+ }
6121
+ return false;
6122
+ }
6123
+ /**
6124
+ * Creates a Redis connection instance from the node options
6125
+ * @param node
6126
+ * @param readOnly
6127
+ */
6128
+ createRedisFromOptions(node, readOnly) {
6129
+ const redis = new Redis_1.default((0, utils_1.defaults)({
6130
+ // Never try to reconnect when a node is lose,
6131
+ // instead, waiting for a `MOVED` error and
6132
+ // fetch the slots again.
6133
+ retryStrategy: null,
6134
+ // Offline queue should be enabled so that
6135
+ // we don't need to wait for the `ready` event
6136
+ // before sending commands to the node.
6137
+ enableOfflineQueue: true,
6138
+ readOnly
6139
+ }, node, this.redisOptions, { lazyConnect: true }));
6140
+ return redis;
6141
+ }
6061
6142
  /**
6062
6143
  * Find or create a connection to the node
6063
6144
  */
@@ -6086,17 +6167,7 @@ var require_ConnectionPool = __commonJS({
6086
6167
  }
6087
6168
  } else {
6088
6169
  debug("Connecting to %s as %s", key, readOnly ? "slave" : "master");
6089
- redis = new Redis_1.default((0, utils_1.defaults)({
6090
- // Never try to reconnect when a node is lose,
6091
- // instead, waiting for a `MOVED` error and
6092
- // fetch the slots again.
6093
- retryStrategy: null,
6094
- // Offline queue should be enabled so that
6095
- // we don't need to wait for the `ready` event
6096
- // before sending commands to the node.
6097
- enableOfflineQueue: true,
6098
- readOnly
6099
- }, node, this.redisOptions, { lazyConnect: true }));
6170
+ redis = this.createRedisFromOptions(node, readOnly);
6100
6171
  this.nodes.all[key] = redis;
6101
6172
  this.nodes[readOnly ? "slave" : "master"][key] = redis;
6102
6173
  redis.once("end", () => {
@@ -6469,9 +6540,9 @@ var require_denque = __commonJS({
6469
6540
  }
6470
6541
  });
6471
6542
 
6472
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/DelayQueue.js
6543
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/DelayQueue.js
6473
6544
  var require_DelayQueue = __commonJS({
6474
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/DelayQueue.js"(exports$1) {
6545
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/DelayQueue.js"(exports$1) {
6475
6546
  Object.defineProperty(exports$1, "__esModule", { value: true });
6476
6547
  var utils_1 = require_utils2();
6477
6548
  var Deque = require_denque();
@@ -6524,9 +6595,210 @@ var require_DelayQueue = __commonJS({
6524
6595
  }
6525
6596
  });
6526
6597
 
6527
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/index.js
6598
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ClusterSubscriberGroup.js
6599
+ var require_ClusterSubscriberGroup = __commonJS({
6600
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/ClusterSubscriberGroup.js"(exports$1) {
6601
+ Object.defineProperty(exports$1, "__esModule", { value: true });
6602
+ var utils_1 = require_utils2();
6603
+ var ClusterSubscriber_1 = require_ClusterSubscriber();
6604
+ var ConnectionPool_1 = require_ConnectionPool();
6605
+ var util_1 = require_util();
6606
+ var calculateSlot = require_lib();
6607
+ var debug = (0, utils_1.Debug)("cluster:subscriberGroup");
6608
+ var ClusterSubscriberGroup = class {
6609
+ /**
6610
+ * Register callbacks
6611
+ *
6612
+ * @param cluster
6613
+ */
6614
+ constructor(cluster) {
6615
+ this.cluster = cluster;
6616
+ this.shardedSubscribers = /* @__PURE__ */ new Map();
6617
+ this.clusterSlots = [];
6618
+ this.subscriberToSlotsIndex = /* @__PURE__ */ new Map();
6619
+ this.channels = /* @__PURE__ */ new Map();
6620
+ cluster.on("+node", (redis) => {
6621
+ this._addSubscriber(redis);
6622
+ });
6623
+ cluster.on("-node", (redis) => {
6624
+ this._removeSubscriber(redis);
6625
+ });
6626
+ cluster.on("refresh", () => {
6627
+ this._refreshSlots(cluster);
6628
+ });
6629
+ }
6630
+ /**
6631
+ * Get the responsible subscriber.
6632
+ *
6633
+ * Returns null if no subscriber was found
6634
+ *
6635
+ * @param slot
6636
+ */
6637
+ getResponsibleSubscriber(slot) {
6638
+ const nodeKey = this.clusterSlots[slot][0];
6639
+ return this.shardedSubscribers.get(nodeKey);
6640
+ }
6641
+ /**
6642
+ * Adds a channel for which this subscriber group is responsible
6643
+ *
6644
+ * @param channels
6645
+ */
6646
+ addChannels(channels) {
6647
+ const slot = calculateSlot(channels[0]);
6648
+ channels.forEach((c) => {
6649
+ if (calculateSlot(c) != slot)
6650
+ return -1;
6651
+ });
6652
+ const currChannels = this.channels.get(slot);
6653
+ if (!currChannels) {
6654
+ this.channels.set(slot, channels);
6655
+ } else {
6656
+ this.channels.set(slot, currChannels.concat(channels));
6657
+ }
6658
+ return [...this.channels.values()].flatMap((v) => v).length;
6659
+ }
6660
+ /**
6661
+ * Removes channels for which the subscriber group is responsible by optionally unsubscribing
6662
+ * @param channels
6663
+ */
6664
+ removeChannels(channels) {
6665
+ const slot = calculateSlot(channels[0]);
6666
+ channels.forEach((c) => {
6667
+ if (calculateSlot(c) != slot)
6668
+ return -1;
6669
+ });
6670
+ const slotChannels = this.channels.get(slot);
6671
+ if (slotChannels) {
6672
+ const updatedChannels = slotChannels.filter((c) => !channels.includes(c));
6673
+ this.channels.set(slot, updatedChannels);
6674
+ }
6675
+ return [...this.channels.values()].flatMap((v) => v).length;
6676
+ }
6677
+ /**
6678
+ * Disconnect all subscribers
6679
+ */
6680
+ stop() {
6681
+ for (const s of this.shardedSubscribers.values()) {
6682
+ s.stop();
6683
+ }
6684
+ }
6685
+ /**
6686
+ * Start all not yet started subscribers
6687
+ */
6688
+ start() {
6689
+ for (const s of this.shardedSubscribers.values()) {
6690
+ if (!s.isStarted()) {
6691
+ s.start();
6692
+ }
6693
+ }
6694
+ }
6695
+ /**
6696
+ * Add a subscriber to the group of subscribers
6697
+ *
6698
+ * @param redis
6699
+ */
6700
+ _addSubscriber(redis) {
6701
+ const pool2 = new ConnectionPool_1.default(redis.options);
6702
+ if (pool2.addMasterNode(redis)) {
6703
+ const sub = new ClusterSubscriber_1.default(pool2, this.cluster, true);
6704
+ const nodeKey = (0, util_1.getNodeKey)(redis.options);
6705
+ this.shardedSubscribers.set(nodeKey, sub);
6706
+ sub.start();
6707
+ this._resubscribe();
6708
+ this.cluster.emit("+subscriber");
6709
+ return sub;
6710
+ }
6711
+ return null;
6712
+ }
6713
+ /**
6714
+ * Removes a subscriber from the group
6715
+ * @param redis
6716
+ */
6717
+ _removeSubscriber(redis) {
6718
+ const nodeKey = (0, util_1.getNodeKey)(redis.options);
6719
+ const sub = this.shardedSubscribers.get(nodeKey);
6720
+ if (sub) {
6721
+ sub.stop();
6722
+ this.shardedSubscribers.delete(nodeKey);
6723
+ this._resubscribe();
6724
+ this.cluster.emit("-subscriber");
6725
+ }
6726
+ return this.shardedSubscribers;
6727
+ }
6728
+ /**
6729
+ * Refreshes the subscriber-related slot ranges
6730
+ *
6731
+ * Returns false if no refresh was needed
6732
+ *
6733
+ * @param cluster
6734
+ */
6735
+ _refreshSlots(cluster) {
6736
+ if (this._slotsAreEqual(cluster.slots)) {
6737
+ debug("Nothing to refresh because the new cluster map is equal to the previous one.");
6738
+ } else {
6739
+ debug("Refreshing the slots of the subscriber group.");
6740
+ this.subscriberToSlotsIndex = /* @__PURE__ */ new Map();
6741
+ for (let slot = 0; slot < cluster.slots.length; slot++) {
6742
+ const node = cluster.slots[slot][0];
6743
+ if (!this.subscriberToSlotsIndex.has(node)) {
6744
+ this.subscriberToSlotsIndex.set(node, []);
6745
+ }
6746
+ this.subscriberToSlotsIndex.get(node).push(Number(slot));
6747
+ }
6748
+ this._resubscribe();
6749
+ this.clusterSlots = JSON.parse(JSON.stringify(cluster.slots));
6750
+ this.cluster.emit("subscribersReady");
6751
+ return true;
6752
+ }
6753
+ return false;
6754
+ }
6755
+ /**
6756
+ * Resubscribes to the previous channels
6757
+ *
6758
+ * @private
6759
+ */
6760
+ _resubscribe() {
6761
+ if (this.shardedSubscribers) {
6762
+ this.shardedSubscribers.forEach((s, nodeKey) => {
6763
+ const subscriberSlots = this.subscriberToSlotsIndex.get(nodeKey);
6764
+ if (subscriberSlots) {
6765
+ s.associateSlotRange(subscriberSlots);
6766
+ subscriberSlots.forEach((ss) => {
6767
+ const redis = s.getInstance();
6768
+ const channels = this.channels.get(ss);
6769
+ if (channels && channels.length > 0) {
6770
+ if (redis) {
6771
+ redis.ssubscribe(channels);
6772
+ redis.on("ready", () => {
6773
+ redis.ssubscribe(channels);
6774
+ });
6775
+ }
6776
+ }
6777
+ });
6778
+ }
6779
+ });
6780
+ }
6781
+ }
6782
+ /**
6783
+ * Deep equality of the cluster slots objects
6784
+ *
6785
+ * @param other
6786
+ * @private
6787
+ */
6788
+ _slotsAreEqual(other) {
6789
+ if (this.clusterSlots === void 0)
6790
+ return false;
6791
+ else
6792
+ return JSON.stringify(this.clusterSlots) === JSON.stringify(other);
6793
+ }
6794
+ };
6795
+ exports$1.default = ClusterSubscriberGroup;
6796
+ }
6797
+ });
6798
+
6799
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/index.js
6528
6800
  var require_cluster = __commonJS({
6529
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/cluster/index.js"(exports$1) {
6801
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/cluster/index.js"(exports$1) {
6530
6802
  Object.defineProperty(exports$1, "__esModule", { value: true });
6531
6803
  var commands_1 = require_built();
6532
6804
  var events_1 = __require("events");
@@ -6546,12 +6818,14 @@ var require_cluster = __commonJS({
6546
6818
  var DelayQueue_1 = require_DelayQueue();
6547
6819
  var util_1 = require_util();
6548
6820
  var Deque = require_denque();
6821
+ var ClusterSubscriberGroup_1 = require_ClusterSubscriberGroup();
6549
6822
  var debug = (0, utils_1.Debug)("cluster");
6550
6823
  var REJECT_OVERWRITTEN_COMMANDS = /* @__PURE__ */ new WeakSet();
6551
6824
  var Cluster = class _Cluster extends Commander_1.default {
6552
6825
  /**
6553
6826
  * Creates an instance of Cluster.
6554
6827
  */
6828
+ //TODO: Add an option that enables or disables sharded PubSub
6555
6829
  constructor(startupNodes, options = {}) {
6556
6830
  super();
6557
6831
  this.slots = [];
@@ -6562,6 +6836,7 @@ var require_cluster = __commonJS({
6562
6836
  this.delayQueue = new DelayQueue_1.default();
6563
6837
  this.offlineQueue = new Deque();
6564
6838
  this.isRefreshing = false;
6839
+ this._refreshSlotsCacheCallbacks = [];
6565
6840
  this._autoPipelines = /* @__PURE__ */ new Map();
6566
6841
  this._runningAutoPipelines = /* @__PURE__ */ new Set();
6567
6842
  this._readyDelayedCallbacks = [];
@@ -6569,6 +6844,8 @@ var require_cluster = __commonJS({
6569
6844
  events_1.EventEmitter.call(this);
6570
6845
  this.startupNodes = startupNodes;
6571
6846
  this.options = (0, utils_1.defaults)({}, options, ClusterOptions_1.DEFAULT_CLUSTER_OPTIONS, this.options);
6847
+ if (this.options.shardedSubscribers == true)
6848
+ this.shardedSubscribers = new ClusterSubscriberGroup_1.default(this);
6572
6849
  if (this.options.redisOptions && this.options.redisOptions.keyPrefix && !this.options.keyPrefix) {
6573
6850
  this.options.keyPrefix = this.options.redisOptions.keyPrefix;
6574
6851
  }
@@ -6669,6 +6946,9 @@ var require_cluster = __commonJS({
6669
6946
  }
6670
6947
  });
6671
6948
  this.subscriber.start();
6949
+ if (this.options.shardedSubscribers) {
6950
+ this.shardedSubscribers.start();
6951
+ }
6672
6952
  }).catch((err) => {
6673
6953
  this.setStatus("close");
6674
6954
  this.handleCloseEvent(err);
@@ -6693,6 +6973,9 @@ var require_cluster = __commonJS({
6693
6973
  }
6694
6974
  this.clearNodesRefreshInterval();
6695
6975
  this.subscriber.stop();
6976
+ if (this.options.shardedSubscribers) {
6977
+ this.shardedSubscribers.stop();
6978
+ }
6696
6979
  if (status === "wait") {
6697
6980
  this.setStatus("close");
6698
6981
  this.handleCloseEvent();
@@ -6713,6 +6996,9 @@ var require_cluster = __commonJS({
6713
6996
  }
6714
6997
  this.clearNodesRefreshInterval();
6715
6998
  this.subscriber.stop();
6999
+ if (this.options.shardedSubscribers) {
7000
+ this.shardedSubscribers.stop();
7001
+ }
6716
7002
  if (status === "wait") {
6717
7003
  const ret = (0, standard_as_callback_1.default)(Promise.resolve("OK"), callback);
6718
7004
  setImmediate(function() {
@@ -6777,19 +7063,20 @@ var require_cluster = __commonJS({
6777
7063
  * @ignore
6778
7064
  */
6779
7065
  refreshSlotsCache(callback) {
7066
+ if (callback) {
7067
+ this._refreshSlotsCacheCallbacks.push(callback);
7068
+ }
6780
7069
  if (this.isRefreshing) {
6781
- if (callback) {
6782
- process.nextTick(callback);
6783
- }
6784
7070
  return;
6785
7071
  }
6786
7072
  this.isRefreshing = true;
6787
7073
  const _this = this;
6788
7074
  const wrapper = (error) => {
6789
7075
  this.isRefreshing = false;
6790
- if (callback) {
6791
- callback(error);
7076
+ for (const callback2 of this._refreshSlotsCacheCallbacks) {
7077
+ callback2(error);
6792
7078
  }
7079
+ this._refreshSlotsCacheCallbacks = [];
6793
7080
  };
6794
7081
  const nodes = (0, utils_1.shuffle)(this.connectionPool.getNodes());
6795
7082
  let lastNodeError = null;
@@ -6891,7 +7178,21 @@ var require_cluster = __commonJS({
6891
7178
  if (node && node.redis) {
6892
7179
  redis = node.redis;
6893
7180
  } else if (Command_1.default.checkFlag("ENTER_SUBSCRIBER_MODE", command.name) || Command_1.default.checkFlag("EXIT_SUBSCRIBER_MODE", command.name)) {
6894
- redis = _this.subscriber.getInstance();
7181
+ if (_this.options.shardedSubscribers == true && (command.name == "ssubscribe" || command.name == "sunsubscribe")) {
7182
+ const sub = _this.shardedSubscribers.getResponsibleSubscriber(targetSlot);
7183
+ let status = -1;
7184
+ if (command.name == "ssubscribe")
7185
+ status = _this.shardedSubscribers.addChannels(command.getKeys());
7186
+ if (command.name == "sunsubscribe")
7187
+ status = _this.shardedSubscribers.removeChannels(command.getKeys());
7188
+ if (status !== -1) {
7189
+ redis = sub.getInstance();
7190
+ } else {
7191
+ command.reject(new redis_errors_1.AbortError("Can't add or remove the given channels. Are they in the same slot?"));
7192
+ }
7193
+ } else {
7194
+ redis = _this.subscriber.getInstance();
7195
+ }
6895
7196
  if (!redis) {
6896
7197
  command.reject(new redis_errors_1.AbortError("No subscriber for the cluster"));
6897
7198
  return;
@@ -7088,13 +7389,16 @@ var require_cluster = __commonJS({
7088
7389
  }
7089
7390
  }
7090
7391
  natMapper(nodeKey) {
7091
- if (this.options.natMap && typeof this.options.natMap === "object") {
7092
- const key = typeof nodeKey === "string" ? nodeKey : `${nodeKey.host}:${nodeKey.port}`;
7093
- const mapped = this.options.natMap[key];
7094
- if (mapped) {
7095
- debug("NAT mapping %s -> %O", key, mapped);
7096
- return Object.assign({}, mapped);
7097
- }
7392
+ const key = typeof nodeKey === "string" ? nodeKey : `${nodeKey.host}:${nodeKey.port}`;
7393
+ let mapped = null;
7394
+ if (this.options.natMap && typeof this.options.natMap === "function") {
7395
+ mapped = this.options.natMap(key);
7396
+ } else if (this.options.natMap && typeof this.options.natMap === "object") {
7397
+ mapped = this.options.natMap[key];
7398
+ }
7399
+ if (mapped) {
7400
+ debug("NAT mapping %s -> %O", key, mapped);
7401
+ return Object.assign({}, mapped);
7098
7402
  }
7099
7403
  return typeof nodeKey === "string" ? (0, util_1.nodeKeyToRedisOptions)(nodeKey) : nodeKey;
7100
7404
  }
@@ -7112,6 +7416,7 @@ var require_cluster = __commonJS({
7112
7416
  duplicatedConnection.cluster("SLOTS", (0, utils_1.timeout)((err, result) => {
7113
7417
  duplicatedConnection.disconnect();
7114
7418
  if (err) {
7419
+ debug("error encountered running CLUSTER.SLOTS: %s", err);
7115
7420
  return callback(err);
7116
7421
  }
7117
7422
  if (this.status === "disconnecting" || this.status === "close" || this.status === "end") {
@@ -7275,9 +7580,9 @@ var require_cluster = __commonJS({
7275
7580
  }
7276
7581
  });
7277
7582
 
7278
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/AbstractConnector.js
7583
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/AbstractConnector.js
7279
7584
  var require_AbstractConnector = __commonJS({
7280
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/AbstractConnector.js"(exports$1) {
7585
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/AbstractConnector.js"(exports$1) {
7281
7586
  Object.defineProperty(exports$1, "__esModule", { value: true });
7282
7587
  var utils_1 = require_utils2();
7283
7588
  var debug = (0, utils_1.Debug)("AbstractConnector");
@@ -7306,9 +7611,9 @@ var require_AbstractConnector = __commonJS({
7306
7611
  }
7307
7612
  });
7308
7613
 
7309
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/StandaloneConnector.js
7614
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/StandaloneConnector.js
7310
7615
  var require_StandaloneConnector = __commonJS({
7311
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/StandaloneConnector.js"(exports$1) {
7616
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/StandaloneConnector.js"(exports$1) {
7312
7617
  Object.defineProperty(exports$1, "__esModule", { value: true });
7313
7618
  var net_1 = __require("net");
7314
7619
  var tls_1 = __require("tls");
@@ -7370,9 +7675,9 @@ var require_StandaloneConnector = __commonJS({
7370
7675
  }
7371
7676
  });
7372
7677
 
7373
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.js
7678
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.js
7374
7679
  var require_SentinelIterator = __commonJS({
7375
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.js"(exports$1) {
7680
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/SentinelConnector/SentinelIterator.js"(exports$1) {
7376
7681
  Object.defineProperty(exports$1, "__esModule", { value: true });
7377
7682
  function isSentinelEql(a, b) {
7378
7683
  return (a.host || "127.0.0.1") === (b.host || "127.0.0.1") && (a.port || 26379) === (b.port || 26379);
@@ -7409,9 +7714,9 @@ var require_SentinelIterator = __commonJS({
7409
7714
  }
7410
7715
  });
7411
7716
 
7412
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/SentinelConnector/FailoverDetector.js
7717
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/SentinelConnector/FailoverDetector.js
7413
7718
  var require_FailoverDetector = __commonJS({
7414
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/SentinelConnector/FailoverDetector.js"(exports$1) {
7719
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/SentinelConnector/FailoverDetector.js"(exports$1) {
7415
7720
  Object.defineProperty(exports$1, "__esModule", { value: true });
7416
7721
  exports$1.FailoverDetector = void 0;
7417
7722
  var utils_1 = require_utils2();
@@ -7456,9 +7761,9 @@ var require_FailoverDetector = __commonJS({
7456
7761
  }
7457
7762
  });
7458
7763
 
7459
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/SentinelConnector/index.js
7764
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/SentinelConnector/index.js
7460
7765
  var require_SentinelConnector = __commonJS({
7461
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/SentinelConnector/index.js"(exports$1) {
7766
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/SentinelConnector/index.js"(exports$1) {
7462
7767
  Object.defineProperty(exports$1, "__esModule", { value: true });
7463
7768
  exports$1.SentinelIterator = void 0;
7464
7769
  var net_1 = __require("net");
@@ -7595,7 +7900,14 @@ var require_SentinelConnector = __commonJS({
7595
7900
  sentinelNatResolve(item) {
7596
7901
  if (!item || !this.options.natMap)
7597
7902
  return item;
7598
- return this.options.natMap[`${item.host}:${item.port}`] || item;
7903
+ const key = `${item.host}:${item.port}`;
7904
+ let result = item;
7905
+ if (typeof this.options.natMap === "function") {
7906
+ result = this.options.natMap(key) || item;
7907
+ } else if (typeof this.options.natMap === "object") {
7908
+ result = this.options.natMap[key] || item;
7909
+ }
7910
+ return result;
7599
7911
  }
7600
7912
  connectToSentinel(endpoint, options) {
7601
7913
  const redis = new Redis_1.default({
@@ -7714,9 +8026,9 @@ var require_SentinelConnector = __commonJS({
7714
8026
  }
7715
8027
  });
7716
8028
 
7717
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/index.js
8029
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/index.js
7718
8030
  var require_connectors = __commonJS({
7719
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/connectors/index.js"(exports$1) {
8031
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/connectors/index.js"(exports$1) {
7720
8032
  Object.defineProperty(exports$1, "__esModule", { value: true });
7721
8033
  exports$1.SentinelConnector = exports$1.StandaloneConnector = void 0;
7722
8034
  var StandaloneConnector_1 = require_StandaloneConnector();
@@ -7726,9 +8038,9 @@ var require_connectors = __commonJS({
7726
8038
  }
7727
8039
  });
7728
8040
 
7729
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/errors/MaxRetriesPerRequestError.js
8041
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/errors/MaxRetriesPerRequestError.js
7730
8042
  var require_MaxRetriesPerRequestError = __commonJS({
7731
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/errors/MaxRetriesPerRequestError.js"(exports$1) {
8043
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/errors/MaxRetriesPerRequestError.js"(exports$1) {
7732
8044
  Object.defineProperty(exports$1, "__esModule", { value: true });
7733
8045
  var redis_errors_1 = require_redis_errors();
7734
8046
  var MaxRetriesPerRequestError = class extends redis_errors_1.AbortError {
@@ -7745,9 +8057,9 @@ var require_MaxRetriesPerRequestError = __commonJS({
7745
8057
  }
7746
8058
  });
7747
8059
 
7748
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/errors/index.js
8060
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/errors/index.js
7749
8061
  var require_errors = __commonJS({
7750
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/errors/index.js"(exports$1) {
8062
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/errors/index.js"(exports$1) {
7751
8063
  Object.defineProperty(exports$1, "__esModule", { value: true });
7752
8064
  exports$1.MaxRetriesPerRequestError = void 0;
7753
8065
  var MaxRetriesPerRequestError_1 = require_MaxRetriesPerRequestError();
@@ -8162,9 +8474,9 @@ var require_redis_parser = __commonJS({
8162
8474
  }
8163
8475
  });
8164
8476
 
8165
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/SubscriptionSet.js
8477
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/SubscriptionSet.js
8166
8478
  var require_SubscriptionSet = __commonJS({
8167
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/SubscriptionSet.js"(exports$1) {
8479
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/SubscriptionSet.js"(exports$1) {
8168
8480
  Object.defineProperty(exports$1, "__esModule", { value: true });
8169
8481
  var SubscriptionSet = class {
8170
8482
  constructor() {
@@ -8203,9 +8515,9 @@ var require_SubscriptionSet = __commonJS({
8203
8515
  }
8204
8516
  });
8205
8517
 
8206
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/DataHandler.js
8518
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/DataHandler.js
8207
8519
  var require_DataHandler = __commonJS({
8208
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/DataHandler.js"(exports$1) {
8520
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/DataHandler.js"(exports$1) {
8209
8521
  Object.defineProperty(exports$1, "__esModule", { value: true });
8210
8522
  var Command_1 = require_Command();
8211
8523
  var utils_1 = require_utils2();
@@ -8228,9 +8540,10 @@ var require_DataHandler = __commonJS({
8228
8540
  this.returnReply(reply);
8229
8541
  }
8230
8542
  });
8231
- redis.stream.on("data", (data) => {
8543
+ redis.stream.prependListener("data", (data) => {
8232
8544
  parser.execute(data);
8233
8545
  });
8546
+ redis.stream.resume();
8234
8547
  }
8235
8548
  returnFatalError(err) {
8236
8549
  err.message += ". Please report this.";
@@ -8405,9 +8718,9 @@ var require_DataHandler = __commonJS({
8405
8718
  }
8406
8719
  });
8407
8720
 
8408
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/redis/event_handler.js
8721
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/redis/event_handler.js
8409
8722
  var require_event_handler = __commonJS({
8410
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/redis/event_handler.js"(exports$1) {
8723
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/redis/event_handler.js"(exports$1) {
8411
8724
  Object.defineProperty(exports$1, "__esModule", { value: true });
8412
8725
  exports$1.readyHandler = exports$1.errorHandler = exports$1.closeHandler = exports$1.connectHandler = void 0;
8413
8726
  var redis_errors_1 = require_redis_errors();
@@ -8671,9 +8984,9 @@ var require_event_handler = __commonJS({
8671
8984
  }
8672
8985
  });
8673
8986
 
8674
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/redis/RedisOptions.js
8987
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/redis/RedisOptions.js
8675
8988
  var require_RedisOptions = __commonJS({
8676
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/redis/RedisOptions.js"(exports$1) {
8989
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/redis/RedisOptions.js"(exports$1) {
8677
8990
  Object.defineProperty(exports$1, "__esModule", { value: true });
8678
8991
  exports$1.DEFAULT_REDIS_OPTIONS = void 0;
8679
8992
  exports$1.DEFAULT_REDIS_OPTIONS = {
@@ -8726,9 +9039,9 @@ var require_RedisOptions = __commonJS({
8726
9039
  }
8727
9040
  });
8728
9041
 
8729
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Redis.js
9042
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Redis.js
8730
9043
  var require_Redis = __commonJS({
8731
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/Redis.js"(exports$1) {
9044
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/Redis.js"(exports$1) {
8732
9045
  Object.defineProperty(exports$1, "__esModule", { value: true });
8733
9046
  var commands_1 = require_built();
8734
9047
  var events_1 = __require("events");
@@ -9065,6 +9378,9 @@ var require_Redis = __commonJS({
9065
9378
  if (Command_1.default.checkFlag("WILL_DISCONNECT", command.name)) {
9066
9379
  this.manuallyClosing = true;
9067
9380
  }
9381
+ if (this.options.socketTimeout !== void 0 && this.socketTimeoutTimer === void 0) {
9382
+ this.setSocketTimeout();
9383
+ }
9068
9384
  }
9069
9385
  if (command.name === "select" && (0, utils_1.isInt)(command.args[0])) {
9070
9386
  const db = parseInt(command.args[0], 10);
@@ -9076,6 +9392,19 @@ var require_Redis = __commonJS({
9076
9392
  }
9077
9393
  return command.promise;
9078
9394
  }
9395
+ setSocketTimeout() {
9396
+ this.socketTimeoutTimer = setTimeout(() => {
9397
+ this.stream.destroy(new Error(`Socket timeout. Expecting data, but didn't receive any in ${this.options.socketTimeout}ms.`));
9398
+ this.socketTimeoutTimer = void 0;
9399
+ }, this.options.socketTimeout);
9400
+ this.stream.once("data", () => {
9401
+ clearTimeout(this.socketTimeoutTimer);
9402
+ this.socketTimeoutTimer = void 0;
9403
+ if (this.commandQueue.length === 0)
9404
+ return;
9405
+ this.setSocketTimeout();
9406
+ });
9407
+ }
9079
9408
  scanStream(options) {
9080
9409
  return this.createScanStream("scan", { options });
9081
9410
  }
@@ -9319,9 +9648,9 @@ var require_Redis = __commonJS({
9319
9648
  }
9320
9649
  });
9321
9650
 
9322
- // ../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/index.js
9651
+ // ../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/index.js
9323
9652
  var require_built3 = __commonJS({
9324
- "../../node_modules/.pnpm/ioredis@5.3.2/node_modules/ioredis/built/index.js"(exports$1, module) {
9653
+ "../../node_modules/.pnpm/ioredis@5.6.1/node_modules/ioredis/built/index.js"(exports$1, module) {
9325
9654
  Object.defineProperty(exports$1, "__esModule", { value: true });
9326
9655
  exports$1.print = exports$1.ReplyError = exports$1.SentinelIterator = exports$1.SentinelConnector = exports$1.AbstractConnector = exports$1.Pipeline = exports$1.ScanStream = exports$1.Command = exports$1.Cluster = exports$1.Redis = exports$1.default = void 0;
9327
9656
  exports$1 = module.exports = require_Redis().default;