@telepath-computer/television 1.4.11 → 1.4.12

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/cli.cjs CHANGED
@@ -7,7 +7,11 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __commonJS = (cb, mod) => function __require() {
10
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ try {
11
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
+ } catch (e) {
13
+ throw mod = 0, e;
14
+ }
11
15
  };
12
16
  var __export = (target, all) => {
13
17
  for (var name in all)
@@ -3524,7 +3528,7 @@ var require_implementation = __commonJS({
3524
3528
  $webkitStorageInfo: true,
3525
3529
  $window: true
3526
3530
  };
3527
- hasAutomationEqualityBug = function() {
3531
+ hasAutomationEqualityBug = (function() {
3528
3532
  if (typeof window === "undefined") {
3529
3533
  return false;
3530
3534
  }
@@ -3542,7 +3546,7 @@ var require_implementation = __commonJS({
3542
3546
  }
3543
3547
  }
3544
3548
  return false;
3545
- }();
3549
+ })();
3546
3550
  equalsConstructorPrototypeIfNotBuggy = function(o) {
3547
3551
  if (typeof window === "undefined" || !hasAutomationEqualityBug) {
3548
3552
  return equalsConstructorPrototype(o);
@@ -3618,10 +3622,10 @@ var require_object_keys = __commonJS({
3618
3622
  var originalKeys = Object.keys;
3619
3623
  keysShim.shim = function shimObjectKeys() {
3620
3624
  if (Object.keys) {
3621
- var keysWorksWithArguments = function() {
3625
+ var keysWorksWithArguments = (function() {
3622
3626
  var args = Object.keys(arguments);
3623
3627
  return args && args.length === arguments.length;
3624
- }(1, 2);
3628
+ })(1, 2);
3625
3629
  if (!keysWorksWithArguments) {
3626
3630
  Object.keys = function keys(object2) {
3627
3631
  if (isArgs(object2)) {
@@ -3770,7 +3774,7 @@ var require_define_properties = __commonJS({
3770
3774
  "../../node_modules/define-properties/index.js"(exports2, module2) {
3771
3775
  "use strict";
3772
3776
  var keys = require_object_keys();
3773
- var hasSymbols = typeof Symbol === "function" && typeof Symbol("foo") === "symbol";
3777
+ var hasSymbols = typeof Symbol === "function" && typeof /* @__PURE__ */ Symbol("foo") === "symbol";
3774
3778
  var toStr = Object.prototype.toString;
3775
3779
  var concat = Array.prototype.concat;
3776
3780
  var defineDataProperty = require_define_data_property();
@@ -4021,7 +4025,7 @@ var require_shams = __commonJS({
4021
4025
  return true;
4022
4026
  }
4023
4027
  var obj = {};
4024
- var sym = Symbol("test");
4028
+ var sym = /* @__PURE__ */ Symbol("test");
4025
4029
  var symObj = Object(sym);
4026
4030
  if (typeof sym === "string") {
4027
4031
  return false;
@@ -4080,7 +4084,7 @@ var require_has_symbols = __commonJS({
4080
4084
  if (typeof origSymbol("foo") !== "symbol") {
4081
4085
  return false;
4082
4086
  }
4083
- if (typeof Symbol("bar") !== "symbol") {
4087
+ if (typeof /* @__PURE__ */ Symbol("bar") !== "symbol") {
4084
4088
  return false;
4085
4089
  }
4086
4090
  return hasSymbolSham();
@@ -4337,7 +4341,7 @@ var require_get_intrinsic = __commonJS({
4337
4341
  var throwTypeError = function() {
4338
4342
  throw new $TypeError();
4339
4343
  };
4340
- var ThrowTypeError = $gOPD ? function() {
4344
+ var ThrowTypeError = $gOPD ? (function() {
4341
4345
  try {
4342
4346
  arguments.callee;
4343
4347
  return throwTypeError;
@@ -4348,7 +4352,7 @@ var require_get_intrinsic = __commonJS({
4348
4352
  return throwTypeError;
4349
4353
  }
4350
4354
  }
4351
- }() : throwTypeError;
4355
+ })() : throwTypeError;
4352
4356
  var hasSymbols = require_has_symbols()();
4353
4357
  var getProto = require_get_proto();
4354
4358
  var $ObjectGPO = require_Object_getPrototypeOf();
@@ -4612,7 +4616,7 @@ var require_get_intrinsic = __commonJS({
4612
4616
  if (!allowMissing) {
4613
4617
  throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
4614
4618
  }
4615
- return void 0;
4619
+ return void undefined2;
4616
4620
  }
4617
4621
  if ($gOPD && i + 1 >= parts.length) {
4618
4622
  var desc = $gOPD(value, part);
@@ -5465,7 +5469,7 @@ var require_implementation5 = __commonJS({
5465
5469
  "../../node_modules/disposablestack/Symbol.dispose/implementation.js"(exports2, module2) {
5466
5470
  "use strict";
5467
5471
  var hasSymbols = require_shams()();
5468
- module2.exports = hasSymbols ? Symbol.dispose || Symbol("Symbol.dispose") : null;
5472
+ module2.exports = hasSymbols ? Symbol.dispose || /* @__PURE__ */ Symbol("Symbol.dispose") : null;
5469
5473
  }
5470
5474
  });
5471
5475
 
@@ -5508,7 +5512,7 @@ var require_implementation6 = __commonJS({
5508
5512
  "../../node_modules/disposablestack/Symbol.asyncDispose/implementation.js"(exports2, module2) {
5509
5513
  "use strict";
5510
5514
  var hasSymbols = require_shams()();
5511
- module2.exports = hasSymbols ? Symbol.asyncDispose || Symbol("Symbol.asyncDispose") : null;
5515
+ module2.exports = hasSymbols ? Symbol.asyncDispose || /* @__PURE__ */ Symbol("Symbol.asyncDispose") : null;
5512
5516
  }
5513
5517
  });
5514
5518
 
@@ -21882,9 +21886,9 @@ var require_text = __commonJS({
21882
21886
  }
21883
21887
  });
21884
21888
 
21885
- // ../../node_modules/body-parser/node_modules/qs/lib/formats.js
21889
+ // ../../node_modules/qs/lib/formats.js
21886
21890
  var require_formats = __commonJS({
21887
- "../../node_modules/body-parser/node_modules/qs/lib/formats.js"(exports2, module2) {
21891
+ "../../node_modules/qs/lib/formats.js"(exports2, module2) {
21888
21892
  "use strict";
21889
21893
  var replace = String.prototype.replace;
21890
21894
  var percentTwenties = /%20/g;
@@ -21908,9 +21912,9 @@ var require_formats = __commonJS({
21908
21912
  }
21909
21913
  });
21910
21914
 
21911
- // ../../node_modules/body-parser/node_modules/qs/lib/utils.js
21915
+ // ../../node_modules/qs/lib/utils.js
21912
21916
  var require_utils = __commonJS({
21913
- "../../node_modules/body-parser/node_modules/qs/lib/utils.js"(exports2, module2) {
21917
+ "../../node_modules/qs/lib/utils.js"(exports2, module2) {
21914
21918
  "use strict";
21915
21919
  var formats = require_formats();
21916
21920
  var getSideChannel = require_side_channel();
@@ -21931,13 +21935,13 @@ var require_utils = __commonJS({
21931
21935
  var setMaxIndex = function setMaxIndex2(obj, maxIndex) {
21932
21936
  overflowChannel.set(obj, maxIndex);
21933
21937
  };
21934
- var hexTable = function() {
21938
+ var hexTable = (function() {
21935
21939
  var array2 = [];
21936
21940
  for (var i = 0; i < 256; ++i) {
21937
21941
  array2[array2.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase();
21938
21942
  }
21939
21943
  return array2;
21940
- }();
21944
+ })();
21941
21945
  var compactQueue = function compactQueue2(queue) {
21942
21946
  while (queue.length > 1) {
21943
21947
  var item = queue.pop();
@@ -22162,15 +22166,19 @@ var require_utils = __commonJS({
22162
22166
  if (!obj || typeof obj !== "object") {
22163
22167
  return false;
22164
22168
  }
22165
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
22169
+ return !!(obj.constructor && typeof obj.constructor.isBuffer === "function" && obj.constructor.isBuffer(obj));
22166
22170
  };
22167
22171
  var combine = function combine2(a, b2, arrayLimit, plainObjects, throwOnLimitExceeded) {
22168
22172
  if (isOverflow(a)) {
22169
22173
  if (throwOnLimitExceeded) {
22170
22174
  throw new RangeError("Array limit exceeded. Only " + arrayLimit + " element" + (arrayLimit === 1 ? "" : "s") + " allowed in an array.");
22171
22175
  }
22172
- var newIndex = getMaxIndex(a) + 1;
22173
- a[newIndex] = b2;
22176
+ var bValues = isArray(b2) ? b2 : [b2];
22177
+ var newIndex = getMaxIndex(a);
22178
+ for (var i = 0; i < bValues.length; ++i) {
22179
+ newIndex += 1;
22180
+ a[newIndex] = bValues[i];
22181
+ }
22174
22182
  setMaxIndex(a, newIndex);
22175
22183
  return a;
22176
22184
  }
@@ -22210,9 +22218,9 @@ var require_utils = __commonJS({
22210
22218
  }
22211
22219
  });
22212
22220
 
22213
- // ../../node_modules/body-parser/node_modules/qs/lib/stringify.js
22221
+ // ../../node_modules/qs/lib/stringify.js
22214
22222
  var require_stringify = __commonJS({
22215
- "../../node_modules/body-parser/node_modules/qs/lib/stringify.js"(exports2, module2) {
22223
+ "../../node_modules/qs/lib/stringify.js"(exports2, module2) {
22216
22224
  "use strict";
22217
22225
  var getSideChannel = require_side_channel();
22218
22226
  var utils = require_utils();
@@ -22246,6 +22254,7 @@ var require_stringify = __commonJS({
22246
22254
  charsetSentinel: false,
22247
22255
  commaRoundTrip: false,
22248
22256
  delimiter: "&",
22257
+ depth: Infinity,
22249
22258
  encode: true,
22250
22259
  encodeDotInKeys: false,
22251
22260
  encoder: utils.encode,
@@ -22265,8 +22274,11 @@ var require_stringify = __commonJS({
22265
22274
  return typeof v2 === "string" || typeof v2 === "number" || typeof v2 === "boolean" || typeof v2 === "symbol" || typeof v2 === "bigint";
22266
22275
  };
22267
22276
  var sentinel = {};
22268
- var stringify = function stringify2(object2, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {
22277
+ var stringify = function stringify2(object2, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel, depth, currentDepth) {
22269
22278
  var obj = object2;
22279
+ if (currentDepth > depth) {
22280
+ throw new RangeError("Input depth exceeded depth option of " + depth);
22281
+ }
22270
22282
  var tmpSc = sideChannel;
22271
22283
  var step = 0;
22272
22284
  var findFlag = false;
@@ -22284,9 +22296,8 @@ var require_stringify = __commonJS({
22284
22296
  step = 0;
22285
22297
  }
22286
22298
  }
22287
- if (typeof filter === "function") {
22288
- obj = filter(prefix, obj);
22289
- } else if (obj instanceof Date) {
22299
+ obj = typeof filter === "function" ? filter(prefix, obj) : obj;
22300
+ if (obj instanceof Date) {
22290
22301
  obj = serializeDate(obj);
22291
22302
  } else if (generateArrayPrefix === "comma" && isArray(obj)) {
22292
22303
  obj = utils.maybeMap(obj, function(value2) {
@@ -22329,7 +22340,7 @@ var require_stringify = __commonJS({
22329
22340
  }
22330
22341
  var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix);
22331
22342
  var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
22332
- if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
22343
+ if (allowEmptyArrays && isArray(obj) && obj.length === 0 && Object.keys(obj).length === 0) {
22333
22344
  return adjustedPrefix + "[]";
22334
22345
  }
22335
22346
  for (var j2 = 0; j2 < objKeys.length; ++j2) {
@@ -22361,7 +22372,9 @@ var require_stringify = __commonJS({
22361
22372
  formatter,
22362
22373
  encodeValuesOnly,
22363
22374
  charset,
22364
- valueSideChannel
22375
+ valueSideChannel,
22376
+ depth,
22377
+ currentDepth + 1
22365
22378
  ));
22366
22379
  }
22367
22380
  return values;
@@ -22416,6 +22429,7 @@ var require_stringify = __commonJS({
22416
22429
  charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
22417
22430
  commaRoundTrip: !!opts.commaRoundTrip,
22418
22431
  delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter,
22432
+ depth: typeof opts.depth === "number" ? opts.depth : defaults.depth,
22419
22433
  encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode,
22420
22434
  encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
22421
22435
  encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder,
@@ -22463,9 +22477,10 @@ var require_stringify = __commonJS({
22463
22477
  if (options.skipNulls && value === null) {
22464
22478
  continue;
22465
22479
  }
22480
+ var encodedKey = options.encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
22466
22481
  pushToArray(keys, stringify(
22467
22482
  value,
22468
- key,
22483
+ encodedKey,
22469
22484
  generateArrayPrefix,
22470
22485
  commaRoundTrip,
22471
22486
  options.allowEmptyArrays,
@@ -22481,7 +22496,9 @@ var require_stringify = __commonJS({
22481
22496
  options.formatter,
22482
22497
  options.encodeValuesOnly,
22483
22498
  options.charset,
22484
- sideChannel
22499
+ sideChannel,
22500
+ options.depth,
22501
+ 0
22485
22502
  ));
22486
22503
  }
22487
22504
  var joined = keys.join(options.delimiter);
@@ -22498,9 +22515,9 @@ var require_stringify = __commonJS({
22498
22515
  }
22499
22516
  });
22500
22517
 
22501
- // ../../node_modules/body-parser/node_modules/qs/lib/parse.js
22518
+ // ../../node_modules/qs/lib/parse.js
22502
22519
  var require_parse = __commonJS({
22503
- "../../node_modules/body-parser/node_modules/qs/lib/parse.js"(exports2, module2) {
22520
+ "../../node_modules/qs/lib/parse.js"(exports2, module2) {
22504
22521
  "use strict";
22505
22522
  var utils = require_utils();
22506
22523
  var has = Object.prototype.hasOwnProperty;
@@ -22534,9 +22551,9 @@ var require_parse = __commonJS({
22534
22551
  return String.fromCharCode(parseInt(numberStr, 10));
22535
22552
  });
22536
22553
  };
22537
- var parseArrayValue = function(val, options, currentArrayLength, isFlatArrayValue) {
22554
+ var parseArrayValue = function(val, options, currentArrayLength) {
22538
22555
  if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
22539
- if (isFlatArrayValue && options.throwOnLimitExceeded) {
22556
+ if (options.throwOnLimitExceeded) {
22540
22557
  var commaCount = 0;
22541
22558
  var commaIndex = val.indexOf(",");
22542
22559
  while (commaIndex > -1) {
@@ -22603,8 +22620,7 @@ var require_parse = __commonJS({
22603
22620
  parseArrayValue(
22604
22621
  part.slice(pos + 1),
22605
22622
  options,
22606
- isArray(obj[key]) ? obj[key].length : 0,
22607
- part.indexOf("[]=") === -1
22623
+ isArray(obj[key]) ? obj[key].length : 0
22608
22624
  ),
22609
22625
  function(encodedVal) {
22610
22626
  return options.decoder(encodedVal, defaults.decoder, charset, "value");
@@ -22827,9 +22843,9 @@ var require_parse = __commonJS({
22827
22843
  }
22828
22844
  });
22829
22845
 
22830
- // ../../node_modules/body-parser/node_modules/qs/lib/index.js
22846
+ // ../../node_modules/qs/lib/index.js
22831
22847
  var require_lib2 = __commonJS({
22832
- "../../node_modules/body-parser/node_modules/qs/lib/index.js"(exports2, module2) {
22848
+ "../../node_modules/qs/lib/index.js"(exports2, module2) {
22833
22849
  "use strict";
22834
22850
  var stringify = require_stringify();
22835
22851
  var parse3 = require_parse();
@@ -24803,1161 +24819,278 @@ var require_router = __commonJS({
24803
24819
  var method = req.method;
24804
24820
  var has_method = route._handles_method(method);
24805
24821
  if (!has_method && method === "OPTIONS") {
24806
- appendMethods(options, route._options());
24807
- }
24808
- if (!has_method && method !== "HEAD") {
24809
- match = false;
24810
- }
24811
- }
24812
- if (match !== true) {
24813
- return done(layerError);
24814
- }
24815
- if (route) {
24816
- req.route = route;
24817
- }
24818
- req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params;
24819
- var layerPath = layer.path;
24820
- self2.process_params(layer, paramcalled, req, res, function(err2) {
24821
- if (err2) {
24822
- next(layerError || err2);
24823
- } else if (route) {
24824
- layer.handle_request(req, res, next);
24825
- } else {
24826
- trim_prefix(layer, layerError, layerPath, path20);
24827
- }
24828
- sync = 0;
24829
- });
24830
- }
24831
- function trim_prefix(layer, layerError, layerPath, path20) {
24832
- if (layerPath.length !== 0) {
24833
- if (layerPath !== path20.slice(0, layerPath.length)) {
24834
- next(layerError);
24835
- return;
24836
- }
24837
- var c = path20[layerPath.length];
24838
- if (c && c !== "/" && c !== ".") return next(layerError);
24839
- debug("trim prefix (%s) from url %s", layerPath, req.url);
24840
- removed = layerPath;
24841
- req.url = protohost + req.url.slice(protohost.length + removed.length);
24842
- if (!protohost && req.url[0] !== "/") {
24843
- req.url = "/" + req.url;
24844
- slashAdded = true;
24845
- }
24846
- req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed);
24847
- }
24848
- debug("%s %s : %s", layer.name, layerPath, req.originalUrl);
24849
- if (layerError) {
24850
- layer.handle_error(layerError, req, res, next);
24851
- } else {
24852
- layer.handle_request(req, res, next);
24853
- }
24854
- }
24855
- };
24856
- proto.process_params = function process_params(layer, called, req, res, done) {
24857
- var params = this.params;
24858
- var keys = layer.keys;
24859
- if (!keys || keys.length === 0) {
24860
- return done();
24861
- }
24862
- var i = 0;
24863
- var name;
24864
- var paramIndex = 0;
24865
- var key;
24866
- var paramVal;
24867
- var paramCallbacks;
24868
- var paramCalled;
24869
- function param(err) {
24870
- if (err) {
24871
- return done(err);
24872
- }
24873
- if (i >= keys.length) {
24874
- return done();
24875
- }
24876
- paramIndex = 0;
24877
- key = keys[i++];
24878
- name = key.name;
24879
- paramVal = req.params[name];
24880
- paramCallbacks = params[name];
24881
- paramCalled = called[name];
24882
- if (paramVal === void 0 || !paramCallbacks) {
24883
- return param();
24884
- }
24885
- if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) {
24886
- req.params[name] = paramCalled.value;
24887
- return param(paramCalled.error);
24888
- }
24889
- called[name] = paramCalled = {
24890
- error: null,
24891
- match: paramVal,
24892
- value: paramVal
24893
- };
24894
- paramCallback();
24895
- }
24896
- function paramCallback(err) {
24897
- var fn = paramCallbacks[paramIndex++];
24898
- paramCalled.value = req.params[key.name];
24899
- if (err) {
24900
- paramCalled.error = err;
24901
- param(err);
24902
- return;
24903
- }
24904
- if (!fn) return param();
24905
- try {
24906
- fn(req, res, paramCallback, paramVal, key.name);
24907
- } catch (e) {
24908
- paramCallback(e);
24909
- }
24910
- }
24911
- param();
24912
- };
24913
- proto.use = function use(fn) {
24914
- var offset = 0;
24915
- var path20 = "/";
24916
- if (typeof fn !== "function") {
24917
- var arg = fn;
24918
- while (Array.isArray(arg) && arg.length !== 0) {
24919
- arg = arg[0];
24920
- }
24921
- if (typeof arg !== "function") {
24922
- offset = 1;
24923
- path20 = fn;
24924
- }
24925
- }
24926
- var callbacks = flatten(slice.call(arguments, offset));
24927
- if (callbacks.length === 0) {
24928
- throw new TypeError("Router.use() requires a middleware function");
24929
- }
24930
- for (var i = 0; i < callbacks.length; i++) {
24931
- var fn = callbacks[i];
24932
- if (typeof fn !== "function") {
24933
- throw new TypeError("Router.use() requires a middleware function but got a " + gettype(fn));
24934
- }
24935
- debug("use %o %s", path20, fn.name || "<anonymous>");
24936
- var layer = new Layer(path20, {
24937
- sensitive: this.caseSensitive,
24938
- strict: false,
24939
- end: false
24940
- }, fn);
24941
- layer.route = void 0;
24942
- this.stack.push(layer);
24943
- }
24944
- return this;
24945
- };
24946
- proto.route = function route(path20) {
24947
- var route2 = new Route(path20);
24948
- var layer = new Layer(path20, {
24949
- sensitive: this.caseSensitive,
24950
- strict: this.strict,
24951
- end: true
24952
- }, route2.dispatch.bind(route2));
24953
- layer.route = route2;
24954
- this.stack.push(layer);
24955
- return route2;
24956
- };
24957
- methods.concat("all").forEach(function(method) {
24958
- proto[method] = function(path20) {
24959
- var route = this.route(path20);
24960
- route[method].apply(route, slice.call(arguments, 1));
24961
- return this;
24962
- };
24963
- });
24964
- function appendMethods(list, addition) {
24965
- for (var i = 0; i < addition.length; i++) {
24966
- var method = addition[i];
24967
- if (list.indexOf(method) === -1) {
24968
- list.push(method);
24969
- }
24970
- }
24971
- }
24972
- function getPathname(req) {
24973
- try {
24974
- return parseUrl(req).pathname;
24975
- } catch (err) {
24976
- return void 0;
24977
- }
24978
- }
24979
- function getProtohost(url2) {
24980
- if (typeof url2 !== "string" || url2.length === 0 || url2[0] === "/") {
24981
- return void 0;
24982
- }
24983
- var searchIndex = url2.indexOf("?");
24984
- var pathLength = searchIndex !== -1 ? searchIndex : url2.length;
24985
- var fqdnIndex = url2.slice(0, pathLength).indexOf("://");
24986
- return fqdnIndex !== -1 ? url2.substring(0, url2.indexOf("/", 3 + fqdnIndex)) : void 0;
24987
- }
24988
- function gettype(obj) {
24989
- var type = typeof obj;
24990
- if (type !== "object") {
24991
- return type;
24992
- }
24993
- return toString.call(obj).replace(objectRegExp, "$1");
24994
- }
24995
- function matchLayer(layer, path20) {
24996
- try {
24997
- return layer.match(path20);
24998
- } catch (err) {
24999
- return err;
25000
- }
25001
- }
25002
- function mergeParams(params, parent) {
25003
- if (typeof parent !== "object" || !parent) {
25004
- return params;
25005
- }
25006
- var obj = mixin({}, parent);
25007
- if (!(0 in params) || !(0 in parent)) {
25008
- return mixin(obj, params);
25009
- }
25010
- var i = 0;
25011
- var o = 0;
25012
- while (i in params) {
25013
- i++;
25014
- }
25015
- while (o in parent) {
25016
- o++;
25017
- }
25018
- for (i--; i >= 0; i--) {
25019
- params[i + o] = params[i];
25020
- if (i < o) {
25021
- delete params[i];
25022
- }
25023
- }
25024
- return mixin(obj, params);
25025
- }
25026
- function restore(fn, obj) {
25027
- var props = new Array(arguments.length - 2);
25028
- var vals = new Array(arguments.length - 2);
25029
- for (var i = 0; i < props.length; i++) {
25030
- props[i] = arguments[i + 2];
25031
- vals[i] = obj[props[i]];
25032
- }
25033
- return function() {
25034
- for (var i2 = 0; i2 < props.length; i2++) {
25035
- obj[props[i2]] = vals[i2];
25036
- }
25037
- return fn.apply(this, arguments);
25038
- };
25039
- }
25040
- function sendOptionsResponse(res, options, next) {
25041
- try {
25042
- var body = options.join(",");
25043
- res.set("Allow", body);
25044
- res.send(body);
25045
- } catch (err) {
25046
- next(err);
25047
- }
25048
- }
25049
- function wrap(old, fn) {
25050
- return function proxy() {
25051
- var args = new Array(arguments.length + 1);
25052
- args[0] = old;
25053
- for (var i = 0, len = arguments.length; i < len; i++) {
25054
- args[i + 1] = arguments[i];
25055
- }
25056
- fn.apply(this, args);
25057
- };
25058
- }
25059
- }
25060
- });
25061
-
25062
- // ../../node_modules/express/lib/middleware/init.js
25063
- var require_init = __commonJS({
25064
- "../../node_modules/express/lib/middleware/init.js"(exports2) {
25065
- "use strict";
25066
- var setPrototypeOf = require_setprototypeof();
25067
- exports2.init = function(app) {
25068
- return function expressInit(req, res, next) {
25069
- if (app.enabled("x-powered-by")) res.setHeader("X-Powered-By", "Express");
25070
- req.res = res;
25071
- res.req = req;
25072
- req.next = next;
25073
- setPrototypeOf(req, app.request);
25074
- setPrototypeOf(res, app.response);
25075
- res.locals = res.locals || /* @__PURE__ */ Object.create(null);
25076
- next();
25077
- };
25078
- };
25079
- }
25080
- });
25081
-
25082
- // ../../node_modules/qs/lib/formats.js
25083
- var require_formats2 = __commonJS({
25084
- "../../node_modules/qs/lib/formats.js"(exports2, module2) {
25085
- "use strict";
25086
- var replace = String.prototype.replace;
25087
- var percentTwenties = /%20/g;
25088
- var Format = {
25089
- RFC1738: "RFC1738",
25090
- RFC3986: "RFC3986"
25091
- };
25092
- module2.exports = {
25093
- "default": Format.RFC3986,
25094
- formatters: {
25095
- RFC1738: function(value) {
25096
- return replace.call(value, percentTwenties, "+");
25097
- },
25098
- RFC3986: function(value) {
25099
- return String(value);
25100
- }
25101
- },
25102
- RFC1738: Format.RFC1738,
25103
- RFC3986: Format.RFC3986
25104
- };
25105
- }
25106
- });
25107
-
25108
- // ../../node_modules/qs/lib/utils.js
25109
- var require_utils2 = __commonJS({
25110
- "../../node_modules/qs/lib/utils.js"(exports2, module2) {
25111
- "use strict";
25112
- var formats = require_formats2();
25113
- var getSideChannel = require_side_channel();
25114
- var has = Object.prototype.hasOwnProperty;
25115
- var isArray = Array.isArray;
25116
- var overflowChannel = getSideChannel();
25117
- var markOverflow = function markOverflow2(obj, maxIndex) {
25118
- overflowChannel.set(obj, maxIndex);
25119
- return obj;
25120
- };
25121
- var isOverflow = function isOverflow2(obj) {
25122
- return overflowChannel.has(obj);
25123
- };
25124
- var getMaxIndex = function getMaxIndex2(obj) {
25125
- return overflowChannel.get(obj);
25126
- };
25127
- var setMaxIndex = function setMaxIndex2(obj, maxIndex) {
25128
- overflowChannel.set(obj, maxIndex);
25129
- };
25130
- var hexTable = function() {
25131
- var array2 = [];
25132
- for (var i = 0; i < 256; ++i) {
25133
- array2[array2.length] = "%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase();
25134
- }
25135
- return array2;
25136
- }();
25137
- var compactQueue = function compactQueue2(queue) {
25138
- while (queue.length > 1) {
25139
- var item = queue.pop();
25140
- var obj = item.obj[item.prop];
25141
- if (isArray(obj)) {
25142
- var compacted = [];
25143
- for (var j2 = 0; j2 < obj.length; ++j2) {
25144
- if (typeof obj[j2] !== "undefined") {
25145
- compacted[compacted.length] = obj[j2];
25146
- }
25147
- }
25148
- item.obj[item.prop] = compacted;
25149
- }
25150
- }
25151
- };
25152
- var arrayToObject = function arrayToObject2(source, options) {
25153
- var obj = options && options.plainObjects ? { __proto__: null } : {};
25154
- for (var i = 0; i < source.length; ++i) {
25155
- if (typeof source[i] !== "undefined") {
25156
- obj[i] = source[i];
25157
- }
25158
- }
25159
- return obj;
25160
- };
25161
- var merge2 = function merge3(target, source, options) {
25162
- if (!source) {
25163
- return target;
25164
- }
25165
- if (typeof source !== "object" && typeof source !== "function") {
25166
- if (isArray(target)) {
25167
- var nextIndex = target.length;
25168
- if (options && typeof options.arrayLimit === "number" && nextIndex > options.arrayLimit) {
25169
- return markOverflow(arrayToObject(target.concat(source), options), nextIndex);
25170
- }
25171
- target[nextIndex] = source;
25172
- } else if (target && typeof target === "object") {
25173
- if (isOverflow(target)) {
25174
- var newIndex = getMaxIndex(target) + 1;
25175
- target[newIndex] = source;
25176
- setMaxIndex(target, newIndex);
25177
- } else if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {
25178
- target[source] = true;
25179
- }
25180
- } else {
25181
- return [target, source];
25182
- }
25183
- return target;
25184
- }
25185
- if (!target || typeof target !== "object") {
25186
- if (isOverflow(source)) {
25187
- var sourceKeys = Object.keys(source);
25188
- var result = options && options.plainObjects ? { __proto__: null, 0: target } : { 0: target };
25189
- for (var m2 = 0; m2 < sourceKeys.length; m2++) {
25190
- var oldKey = parseInt(sourceKeys[m2], 10);
25191
- result[oldKey + 1] = source[sourceKeys[m2]];
25192
- }
25193
- return markOverflow(result, getMaxIndex(source) + 1);
25194
- }
25195
- var combined = [target].concat(source);
25196
- if (options && typeof options.arrayLimit === "number" && combined.length > options.arrayLimit) {
25197
- return markOverflow(arrayToObject(combined, options), combined.length - 1);
25198
- }
25199
- return combined;
25200
- }
25201
- var mergeTarget = target;
25202
- if (isArray(target) && !isArray(source)) {
25203
- mergeTarget = arrayToObject(target, options);
25204
- }
25205
- if (isArray(target) && isArray(source)) {
25206
- source.forEach(function(item, i) {
25207
- if (has.call(target, i)) {
25208
- var targetItem = target[i];
25209
- if (targetItem && typeof targetItem === "object" && item && typeof item === "object") {
25210
- target[i] = merge3(targetItem, item, options);
25211
- } else {
25212
- target[target.length] = item;
25213
- }
25214
- } else {
25215
- target[i] = item;
25216
- }
25217
- });
25218
- return target;
25219
- }
25220
- return Object.keys(source).reduce(function(acc, key) {
25221
- var value = source[key];
25222
- if (has.call(acc, key)) {
25223
- acc[key] = merge3(acc[key], value, options);
25224
- } else {
25225
- acc[key] = value;
25226
- }
25227
- if (isOverflow(source) && !isOverflow(acc)) {
25228
- markOverflow(acc, getMaxIndex(source));
25229
- }
25230
- if (isOverflow(acc)) {
25231
- var keyNum = parseInt(key, 10);
25232
- if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {
25233
- setMaxIndex(acc, keyNum);
25234
- }
25235
- }
25236
- return acc;
25237
- }, mergeTarget);
25238
- };
25239
- var assign = function assignSingleSource(target, source) {
25240
- return Object.keys(source).reduce(function(acc, key) {
25241
- acc[key] = source[key];
25242
- return acc;
25243
- }, target);
25244
- };
25245
- var decode3 = function(str, defaultDecoder, charset) {
25246
- var strWithoutPlus = str.replace(/\+/g, " ");
25247
- if (charset === "iso-8859-1") {
25248
- return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
25249
- }
25250
- try {
25251
- return decodeURIComponent(strWithoutPlus);
25252
- } catch (e) {
25253
- return strWithoutPlus;
25254
- }
25255
- };
25256
- var limit = 1024;
25257
- var encode3 = function encode4(str, defaultEncoder, charset, kind, format) {
25258
- if (str.length === 0) {
25259
- return str;
25260
- }
25261
- var string4 = str;
25262
- if (typeof str === "symbol") {
25263
- string4 = Symbol.prototype.toString.call(str);
25264
- } else if (typeof str !== "string") {
25265
- string4 = String(str);
25266
- }
25267
- if (charset === "iso-8859-1") {
25268
- return escape(string4).replace(/%u[0-9a-f]{4}/gi, function($0) {
25269
- return "%26%23" + parseInt($0.slice(2), 16) + "%3B";
25270
- });
25271
- }
25272
- var out = "";
25273
- for (var j2 = 0; j2 < string4.length; j2 += limit) {
25274
- var segment = string4.length >= limit ? string4.slice(j2, j2 + limit) : string4;
25275
- var arr = [];
25276
- for (var i = 0; i < segment.length; ++i) {
25277
- var c = segment.charCodeAt(i);
25278
- if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) {
25279
- arr[arr.length] = segment.charAt(i);
25280
- continue;
25281
- }
25282
- if (c < 128) {
25283
- arr[arr.length] = hexTable[c];
25284
- continue;
25285
- }
25286
- if (c < 2048) {
25287
- arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
25288
- continue;
25289
- }
25290
- if (c < 55296 || c >= 57344) {
25291
- arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
25292
- continue;
25293
- }
25294
- i += 1;
25295
- c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
25296
- arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
25297
- }
25298
- out += arr.join("");
25299
- }
25300
- return out;
25301
- };
25302
- var compact = function compact2(value) {
25303
- var queue = [{ obj: { o: value }, prop: "o" }];
25304
- var refs = [];
25305
- for (var i = 0; i < queue.length; ++i) {
25306
- var item = queue[i];
25307
- var obj = item.obj[item.prop];
25308
- var keys = Object.keys(obj);
25309
- for (var j2 = 0; j2 < keys.length; ++j2) {
25310
- var key = keys[j2];
25311
- var val = obj[key];
25312
- if (typeof val === "object" && val !== null && refs.indexOf(val) === -1) {
25313
- queue[queue.length] = { obj, prop: key };
25314
- refs[refs.length] = val;
25315
- }
25316
- }
25317
- }
25318
- compactQueue(queue);
25319
- return value;
25320
- };
25321
- var isRegExp = function isRegExp2(obj) {
25322
- return Object.prototype.toString.call(obj) === "[object RegExp]";
25323
- };
25324
- var isBuffer = function isBuffer2(obj) {
25325
- if (!obj || typeof obj !== "object") {
25326
- return false;
25327
- }
25328
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
25329
- };
25330
- var combine = function combine2(a, b2, arrayLimit, plainObjects) {
25331
- if (isOverflow(a)) {
25332
- var newIndex = getMaxIndex(a) + 1;
25333
- a[newIndex] = b2;
25334
- setMaxIndex(a, newIndex);
25335
- return a;
25336
- }
25337
- var result = [].concat(a, b2);
25338
- if (result.length > arrayLimit) {
25339
- return markOverflow(arrayToObject(result, { plainObjects }), result.length - 1);
25340
- }
25341
- return result;
25342
- };
25343
- var maybeMap = function maybeMap2(val, fn) {
25344
- if (isArray(val)) {
25345
- var mapped = [];
25346
- for (var i = 0; i < val.length; i += 1) {
25347
- mapped[mapped.length] = fn(val[i]);
25348
- }
25349
- return mapped;
25350
- }
25351
- return fn(val);
25352
- };
25353
- module2.exports = {
25354
- arrayToObject,
25355
- assign,
25356
- combine,
25357
- compact,
25358
- decode: decode3,
25359
- encode: encode3,
25360
- isBuffer,
25361
- isOverflow,
25362
- isRegExp,
25363
- markOverflow,
25364
- maybeMap,
25365
- merge: merge2
25366
- };
25367
- }
25368
- });
25369
-
25370
- // ../../node_modules/qs/lib/stringify.js
25371
- var require_stringify2 = __commonJS({
25372
- "../../node_modules/qs/lib/stringify.js"(exports2, module2) {
25373
- "use strict";
25374
- var getSideChannel = require_side_channel();
25375
- var utils = require_utils2();
25376
- var formats = require_formats2();
25377
- var has = Object.prototype.hasOwnProperty;
25378
- var arrayPrefixGenerators = {
25379
- brackets: function brackets(prefix) {
25380
- return prefix + "[]";
25381
- },
25382
- comma: "comma",
25383
- indices: function indices(prefix, key) {
25384
- return prefix + "[" + key + "]";
25385
- },
25386
- repeat: function repeat(prefix) {
25387
- return prefix;
25388
- }
25389
- };
25390
- var isArray = Array.isArray;
25391
- var push = Array.prototype.push;
25392
- var pushToArray = function(arr, valueOrArray) {
25393
- push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
25394
- };
25395
- var toISO = Date.prototype.toISOString;
25396
- var defaultFormat = formats["default"];
25397
- var defaults = {
25398
- addQueryPrefix: false,
25399
- allowDots: false,
25400
- allowEmptyArrays: false,
25401
- arrayFormat: "indices",
25402
- charset: "utf-8",
25403
- charsetSentinel: false,
25404
- commaRoundTrip: false,
25405
- delimiter: "&",
25406
- encode: true,
25407
- encodeDotInKeys: false,
25408
- encoder: utils.encode,
25409
- encodeValuesOnly: false,
25410
- filter: void 0,
25411
- format: defaultFormat,
25412
- formatter: formats.formatters[defaultFormat],
25413
- // deprecated
25414
- indices: false,
25415
- serializeDate: function serializeDate(date5) {
25416
- return toISO.call(date5);
25417
- },
25418
- skipNulls: false,
25419
- strictNullHandling: false
25420
- };
25421
- var isNonNullishPrimitive = function isNonNullishPrimitive2(v2) {
25422
- return typeof v2 === "string" || typeof v2 === "number" || typeof v2 === "boolean" || typeof v2 === "symbol" || typeof v2 === "bigint";
25423
- };
25424
- var sentinel = {};
25425
- var stringify = function stringify2(object2, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {
25426
- var obj = object2;
25427
- var tmpSc = sideChannel;
25428
- var step = 0;
25429
- var findFlag = false;
25430
- while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) {
25431
- var pos = tmpSc.get(object2);
25432
- step += 1;
25433
- if (typeof pos !== "undefined") {
25434
- if (pos === step) {
25435
- throw new RangeError("Cyclic object value");
25436
- } else {
25437
- findFlag = true;
25438
- }
25439
- }
25440
- if (typeof tmpSc.get(sentinel) === "undefined") {
25441
- step = 0;
25442
- }
25443
- }
25444
- if (typeof filter === "function") {
25445
- obj = filter(prefix, obj);
25446
- } else if (obj instanceof Date) {
25447
- obj = serializeDate(obj);
25448
- } else if (generateArrayPrefix === "comma" && isArray(obj)) {
25449
- obj = utils.maybeMap(obj, function(value2) {
25450
- if (value2 instanceof Date) {
25451
- return serializeDate(value2);
25452
- }
25453
- return value2;
25454
- });
25455
- }
25456
- if (obj === null) {
25457
- if (strictNullHandling) {
25458
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix;
25459
- }
25460
- obj = "";
25461
- }
25462
- if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
25463
- if (encoder) {
25464
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format);
25465
- return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))];
25466
- }
25467
- return [formatter(prefix) + "=" + formatter(String(obj))];
25468
- }
25469
- var values = [];
25470
- if (typeof obj === "undefined") {
25471
- return values;
25472
- }
25473
- var objKeys;
25474
- if (generateArrayPrefix === "comma" && isArray(obj)) {
25475
- if (encodeValuesOnly && encoder) {
25476
- obj = utils.maybeMap(obj, encoder);
25477
- }
25478
- objKeys = [{ value: obj.length > 0 ? obj.join(",") || null : void 0 }];
25479
- } else if (isArray(filter)) {
25480
- objKeys = filter;
25481
- } else {
25482
- var keys = Object.keys(obj);
25483
- objKeys = sort ? keys.sort(sort) : keys;
25484
- }
25485
- var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\./g, "%2E") : String(prefix);
25486
- var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
25487
- if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
25488
- return adjustedPrefix + "[]";
25489
- }
25490
- for (var j2 = 0; j2 < objKeys.length; ++j2) {
25491
- var key = objKeys[j2];
25492
- var value = typeof key === "object" && key && typeof key.value !== "undefined" ? key.value : obj[key];
25493
- if (skipNulls && value === null) {
25494
- continue;
25495
- }
25496
- var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\./g, "%2E") : String(key);
25497
- var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
25498
- sideChannel.set(object2, step);
25499
- var valueSideChannel = getSideChannel();
25500
- valueSideChannel.set(sentinel, sideChannel);
25501
- pushToArray(values, stringify2(
25502
- value,
25503
- keyPrefix,
25504
- generateArrayPrefix,
25505
- commaRoundTrip,
25506
- allowEmptyArrays,
25507
- strictNullHandling,
25508
- skipNulls,
25509
- encodeDotInKeys,
25510
- generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder,
25511
- filter,
25512
- sort,
25513
- allowDots,
25514
- serializeDate,
25515
- format,
25516
- formatter,
25517
- encodeValuesOnly,
25518
- charset,
25519
- valueSideChannel
25520
- ));
25521
- }
25522
- return values;
25523
- };
25524
- var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
25525
- if (!opts) {
25526
- return defaults;
25527
- }
25528
- if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
25529
- throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
25530
- }
25531
- if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
25532
- throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
25533
- }
25534
- if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
25535
- throw new TypeError("Encoder has to be a function.");
25536
- }
25537
- var charset = opts.charset || defaults.charset;
25538
- if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
25539
- throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
25540
- }
25541
- var format = formats["default"];
25542
- if (typeof opts.format !== "undefined") {
25543
- if (!has.call(formats.formatters, opts.format)) {
25544
- throw new TypeError("Unknown format option provided.");
25545
- }
25546
- format = opts.format;
25547
- }
25548
- var formatter = formats.formatters[format];
25549
- var filter = defaults.filter;
25550
- if (typeof opts.filter === "function" || isArray(opts.filter)) {
25551
- filter = opts.filter;
25552
- }
25553
- var arrayFormat;
25554
- if (opts.arrayFormat in arrayPrefixGenerators) {
25555
- arrayFormat = opts.arrayFormat;
25556
- } else if ("indices" in opts) {
25557
- arrayFormat = opts.indices ? "indices" : "repeat";
25558
- } else {
25559
- arrayFormat = defaults.arrayFormat;
25560
- }
25561
- if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
25562
- throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
25563
- }
25564
- var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
25565
- return {
25566
- addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix,
25567
- allowDots,
25568
- allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
25569
- arrayFormat,
25570
- charset,
25571
- charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
25572
- commaRoundTrip: !!opts.commaRoundTrip,
25573
- delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter,
25574
- encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode,
25575
- encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
25576
- encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder,
25577
- encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
25578
- filter,
25579
- format,
25580
- formatter,
25581
- serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate,
25582
- skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls,
25583
- sort: typeof opts.sort === "function" ? opts.sort : null,
25584
- strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
25585
- };
25586
- };
25587
- module2.exports = function(object2, opts) {
25588
- var obj = object2;
25589
- var options = normalizeStringifyOptions(opts);
25590
- var objKeys;
25591
- var filter;
25592
- if (typeof options.filter === "function") {
25593
- filter = options.filter;
25594
- obj = filter("", obj);
25595
- } else if (isArray(options.filter)) {
25596
- filter = options.filter;
25597
- objKeys = filter;
25598
- }
25599
- var keys = [];
25600
- if (typeof obj !== "object" || obj === null) {
25601
- return "";
25602
- }
25603
- var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
25604
- var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
25605
- if (!objKeys) {
25606
- objKeys = Object.keys(obj);
25607
- }
25608
- if (options.sort) {
25609
- objKeys.sort(options.sort);
25610
- }
25611
- var sideChannel = getSideChannel();
25612
- for (var i = 0; i < objKeys.length; ++i) {
25613
- var key = objKeys[i];
25614
- var value = obj[key];
25615
- if (options.skipNulls && value === null) {
25616
- continue;
25617
- }
25618
- pushToArray(keys, stringify(
25619
- value,
25620
- key,
25621
- generateArrayPrefix,
25622
- commaRoundTrip,
25623
- options.allowEmptyArrays,
25624
- options.strictNullHandling,
25625
- options.skipNulls,
25626
- options.encodeDotInKeys,
25627
- options.encode ? options.encoder : null,
25628
- options.filter,
25629
- options.sort,
25630
- options.allowDots,
25631
- options.serializeDate,
25632
- options.format,
25633
- options.formatter,
25634
- options.encodeValuesOnly,
25635
- options.charset,
25636
- sideChannel
25637
- ));
25638
- }
25639
- var joined = keys.join(options.delimiter);
25640
- var prefix = options.addQueryPrefix === true ? "?" : "";
25641
- if (options.charsetSentinel) {
25642
- if (options.charset === "iso-8859-1") {
25643
- prefix += "utf8=%26%2310003%3B&";
25644
- } else {
25645
- prefix += "utf8=%E2%9C%93&";
25646
- }
25647
- }
25648
- return joined.length > 0 ? prefix + joined : "";
25649
- };
25650
- }
25651
- });
25652
-
25653
- // ../../node_modules/qs/lib/parse.js
25654
- var require_parse2 = __commonJS({
25655
- "../../node_modules/qs/lib/parse.js"(exports2, module2) {
25656
- "use strict";
25657
- var utils = require_utils2();
25658
- var has = Object.prototype.hasOwnProperty;
25659
- var isArray = Array.isArray;
25660
- var defaults = {
25661
- allowDots: false,
25662
- allowEmptyArrays: false,
25663
- allowPrototypes: false,
25664
- allowSparse: false,
25665
- arrayLimit: 20,
25666
- charset: "utf-8",
25667
- charsetSentinel: false,
25668
- comma: false,
25669
- decodeDotInKeys: false,
25670
- decoder: utils.decode,
25671
- delimiter: "&",
25672
- depth: 5,
25673
- duplicates: "combine",
25674
- ignoreQueryPrefix: false,
25675
- interpretNumericEntities: false,
25676
- parameterLimit: 1e3,
25677
- parseArrays: true,
25678
- plainObjects: false,
25679
- strictDepth: false,
25680
- strictNullHandling: false,
25681
- throwOnLimitExceeded: false
25682
- };
25683
- var interpretNumericEntities = function(str) {
25684
- return str.replace(/&#(\d+);/g, function($0, numberStr) {
25685
- return String.fromCharCode(parseInt(numberStr, 10));
25686
- });
25687
- };
25688
- var parseArrayValue = function(val, options, currentArrayLength) {
25689
- if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
25690
- return val.split(",");
25691
- }
25692
- if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {
25693
- throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
25694
- }
25695
- return val;
25696
- };
25697
- var isoSentinel = "utf8=%26%2310003%3B";
25698
- var charsetSentinel = "utf8=%E2%9C%93";
25699
- var parseValues = function parseQueryStringValues(str, options) {
25700
- var obj = { __proto__: null };
25701
- var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
25702
- cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
25703
- var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
25704
- var parts = cleanStr.split(
25705
- options.delimiter,
25706
- options.throwOnLimitExceeded ? limit + 1 : limit
25707
- );
25708
- if (options.throwOnLimitExceeded && parts.length > limit) {
25709
- throw new RangeError("Parameter limit exceeded. Only " + limit + " parameter" + (limit === 1 ? "" : "s") + " allowed.");
25710
- }
25711
- var skipIndex = -1;
25712
- var i;
25713
- var charset = options.charset;
25714
- if (options.charsetSentinel) {
25715
- for (i = 0; i < parts.length; ++i) {
25716
- if (parts[i].indexOf("utf8=") === 0) {
25717
- if (parts[i] === charsetSentinel) {
25718
- charset = "utf-8";
25719
- } else if (parts[i] === isoSentinel) {
25720
- charset = "iso-8859-1";
25721
- }
25722
- skipIndex = i;
25723
- i = parts.length;
25724
- }
25725
- }
25726
- }
25727
- for (i = 0; i < parts.length; ++i) {
25728
- if (i === skipIndex) {
25729
- continue;
25730
- }
25731
- var part = parts[i];
25732
- var bracketEqualsPos = part.indexOf("]=");
25733
- var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
25734
- var key;
25735
- var val;
25736
- if (pos === -1) {
25737
- key = options.decoder(part, defaults.decoder, charset, "key");
25738
- val = options.strictNullHandling ? null : "";
25739
- } else {
25740
- key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key");
25741
- if (key !== null) {
25742
- val = utils.maybeMap(
25743
- parseArrayValue(
25744
- part.slice(pos + 1),
25745
- options,
25746
- isArray(obj[key]) ? obj[key].length : 0
25747
- ),
25748
- function(encodedVal) {
25749
- return options.decoder(encodedVal, defaults.decoder, charset, "value");
25750
- }
25751
- );
25752
- }
25753
- }
25754
- if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
25755
- val = interpretNumericEntities(String(val));
25756
- }
25757
- if (part.indexOf("[]=") > -1) {
25758
- val = isArray(val) ? [val] : val;
25759
- }
25760
- if (options.comma && isArray(val) && val.length > options.arrayLimit) {
25761
- if (options.throwOnLimitExceeded) {
25762
- throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
25763
- }
25764
- val = utils.combine([], val, options.arrayLimit, options.plainObjects);
25765
- }
25766
- if (key !== null) {
25767
- var existing = has.call(obj, key);
25768
- if (existing && options.duplicates === "combine") {
25769
- obj[key] = utils.combine(
25770
- obj[key],
25771
- val,
25772
- options.arrayLimit,
25773
- options.plainObjects
25774
- );
25775
- } else if (!existing || options.duplicates === "last") {
25776
- obj[key] = val;
25777
- }
25778
- }
25779
- }
25780
- return obj;
25781
- };
25782
- var parseObject = function(chain, val, options, valuesParsed) {
25783
- var currentArrayLength = 0;
25784
- if (chain.length > 0 && chain[chain.length - 1] === "[]") {
25785
- var parentKey = chain.slice(0, -1).join("");
25786
- currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;
25787
- }
25788
- var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);
25789
- for (var i = chain.length - 1; i >= 0; --i) {
25790
- var obj;
25791
- var root = chain[i];
25792
- if (root === "[]" && options.parseArrays) {
25793
- if (utils.isOverflow(leaf)) {
25794
- obj = leaf;
25795
- } else {
25796
- obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : utils.combine(
25797
- [],
25798
- leaf,
25799
- options.arrayLimit,
25800
- options.plainObjects
25801
- );
25802
- }
25803
- } else {
25804
- obj = options.plainObjects ? { __proto__: null } : {};
25805
- var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
25806
- var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
25807
- var index = parseInt(decodedRoot, 10);
25808
- var isValidArrayIndex = !isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays;
25809
- if (!options.parseArrays && decodedRoot === "") {
25810
- obj = { 0: leaf };
25811
- } else if (isValidArrayIndex && index < options.arrayLimit) {
25812
- obj = [];
25813
- obj[index] = leaf;
25814
- } else if (isValidArrayIndex && options.throwOnLimitExceeded) {
25815
- throw new RangeError("Array limit exceeded. Only " + options.arrayLimit + " element" + (options.arrayLimit === 1 ? "" : "s") + " allowed in an array.");
25816
- } else if (isValidArrayIndex) {
25817
- obj[index] = leaf;
25818
- utils.markOverflow(obj, index);
25819
- } else if (decodedRoot !== "__proto__") {
25820
- obj[decodedRoot] = leaf;
24822
+ appendMethods(options, route._options());
25821
24823
  }
25822
- }
25823
- leaf = obj;
25824
- }
25825
- return leaf;
25826
- };
25827
- var splitKeyIntoSegments = function splitKeyIntoSegments2(givenKey, options) {
25828
- var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey;
25829
- if (options.depth <= 0) {
25830
- if (!options.plainObjects && has.call(Object.prototype, key)) {
25831
- if (!options.allowPrototypes) {
25832
- return;
24824
+ if (!has_method && method !== "HEAD") {
24825
+ match = false;
25833
24826
  }
25834
24827
  }
25835
- return [key];
24828
+ if (match !== true) {
24829
+ return done(layerError);
24830
+ }
24831
+ if (route) {
24832
+ req.route = route;
24833
+ }
24834
+ req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params;
24835
+ var layerPath = layer.path;
24836
+ self2.process_params(layer, paramcalled, req, res, function(err2) {
24837
+ if (err2) {
24838
+ next(layerError || err2);
24839
+ } else if (route) {
24840
+ layer.handle_request(req, res, next);
24841
+ } else {
24842
+ trim_prefix(layer, layerError, layerPath, path20);
24843
+ }
24844
+ sync = 0;
24845
+ });
25836
24846
  }
25837
- var brackets = /(\[[^[\]]*])/;
25838
- var child = /(\[[^[\]]*])/g;
25839
- var segment = brackets.exec(key);
25840
- var parent = segment ? key.slice(0, segment.index) : key;
25841
- var keys = [];
25842
- if (parent) {
25843
- if (!options.plainObjects && has.call(Object.prototype, parent)) {
25844
- if (!options.allowPrototypes) {
24847
+ function trim_prefix(layer, layerError, layerPath, path20) {
24848
+ if (layerPath.length !== 0) {
24849
+ if (layerPath !== path20.slice(0, layerPath.length)) {
24850
+ next(layerError);
25845
24851
  return;
25846
24852
  }
24853
+ var c = path20[layerPath.length];
24854
+ if (c && c !== "/" && c !== ".") return next(layerError);
24855
+ debug("trim prefix (%s) from url %s", layerPath, req.url);
24856
+ removed = layerPath;
24857
+ req.url = protohost + req.url.slice(protohost.length + removed.length);
24858
+ if (!protohost && req.url[0] !== "/") {
24859
+ req.url = "/" + req.url;
24860
+ slashAdded = true;
24861
+ }
24862
+ req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed);
24863
+ }
24864
+ debug("%s %s : %s", layer.name, layerPath, req.originalUrl);
24865
+ if (layerError) {
24866
+ layer.handle_error(layerError, req, res, next);
24867
+ } else {
24868
+ layer.handle_request(req, res, next);
25847
24869
  }
25848
- keys[keys.length] = parent;
24870
+ }
24871
+ };
24872
+ proto.process_params = function process_params(layer, called, req, res, done) {
24873
+ var params = this.params;
24874
+ var keys = layer.keys;
24875
+ if (!keys || keys.length === 0) {
24876
+ return done();
25849
24877
  }
25850
24878
  var i = 0;
25851
- while ((segment = child.exec(key)) !== null && i < options.depth) {
25852
- i += 1;
25853
- var segmentContent = segment[1].slice(1, -1);
25854
- if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {
25855
- if (!options.allowPrototypes) {
25856
- return;
25857
- }
24879
+ var name;
24880
+ var paramIndex = 0;
24881
+ var key;
24882
+ var paramVal;
24883
+ var paramCallbacks;
24884
+ var paramCalled;
24885
+ function param(err) {
24886
+ if (err) {
24887
+ return done(err);
24888
+ }
24889
+ if (i >= keys.length) {
24890
+ return done();
24891
+ }
24892
+ paramIndex = 0;
24893
+ key = keys[i++];
24894
+ name = key.name;
24895
+ paramVal = req.params[name];
24896
+ paramCallbacks = params[name];
24897
+ paramCalled = called[name];
24898
+ if (paramVal === void 0 || !paramCallbacks) {
24899
+ return param();
24900
+ }
24901
+ if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) {
24902
+ req.params[name] = paramCalled.value;
24903
+ return param(paramCalled.error);
25858
24904
  }
25859
- keys[keys.length] = segment[1];
24905
+ called[name] = paramCalled = {
24906
+ error: null,
24907
+ match: paramVal,
24908
+ value: paramVal
24909
+ };
24910
+ paramCallback();
25860
24911
  }
25861
- if (segment) {
25862
- if (options.strictDepth === true) {
25863
- throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
24912
+ function paramCallback(err) {
24913
+ var fn = paramCallbacks[paramIndex++];
24914
+ paramCalled.value = req.params[key.name];
24915
+ if (err) {
24916
+ paramCalled.error = err;
24917
+ param(err);
24918
+ return;
24919
+ }
24920
+ if (!fn) return param();
24921
+ try {
24922
+ fn(req, res, paramCallback, paramVal, key.name);
24923
+ } catch (e) {
24924
+ paramCallback(e);
25864
24925
  }
25865
- keys[keys.length] = "[" + key.slice(segment.index) + "]";
25866
24926
  }
25867
- return keys;
24927
+ param();
25868
24928
  };
25869
- var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
25870
- if (!givenKey) {
25871
- return;
24929
+ proto.use = function use(fn) {
24930
+ var offset = 0;
24931
+ var path20 = "/";
24932
+ if (typeof fn !== "function") {
24933
+ var arg = fn;
24934
+ while (Array.isArray(arg) && arg.length !== 0) {
24935
+ arg = arg[0];
24936
+ }
24937
+ if (typeof arg !== "function") {
24938
+ offset = 1;
24939
+ path20 = fn;
24940
+ }
25872
24941
  }
25873
- var keys = splitKeyIntoSegments(givenKey, options);
25874
- if (!keys) {
25875
- return;
24942
+ var callbacks = flatten(slice.call(arguments, offset));
24943
+ if (callbacks.length === 0) {
24944
+ throw new TypeError("Router.use() requires a middleware function");
25876
24945
  }
25877
- return parseObject(keys, val, options, valuesParsed);
24946
+ for (var i = 0; i < callbacks.length; i++) {
24947
+ var fn = callbacks[i];
24948
+ if (typeof fn !== "function") {
24949
+ throw new TypeError("Router.use() requires a middleware function but got a " + gettype(fn));
24950
+ }
24951
+ debug("use %o %s", path20, fn.name || "<anonymous>");
24952
+ var layer = new Layer(path20, {
24953
+ sensitive: this.caseSensitive,
24954
+ strict: false,
24955
+ end: false
24956
+ }, fn);
24957
+ layer.route = void 0;
24958
+ this.stack.push(layer);
24959
+ }
24960
+ return this;
25878
24961
  };
25879
- var normalizeParseOptions = function normalizeParseOptions2(opts) {
25880
- if (!opts) {
25881
- return defaults;
24962
+ proto.route = function route(path20) {
24963
+ var route2 = new Route(path20);
24964
+ var layer = new Layer(path20, {
24965
+ sensitive: this.caseSensitive,
24966
+ strict: this.strict,
24967
+ end: true
24968
+ }, route2.dispatch.bind(route2));
24969
+ layer.route = route2;
24970
+ this.stack.push(layer);
24971
+ return route2;
24972
+ };
24973
+ methods.concat("all").forEach(function(method) {
24974
+ proto[method] = function(path20) {
24975
+ var route = this.route(path20);
24976
+ route[method].apply(route, slice.call(arguments, 1));
24977
+ return this;
24978
+ };
24979
+ });
24980
+ function appendMethods(list, addition) {
24981
+ for (var i = 0; i < addition.length; i++) {
24982
+ var method = addition[i];
24983
+ if (list.indexOf(method) === -1) {
24984
+ list.push(method);
24985
+ }
25882
24986
  }
25883
- if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
25884
- throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
24987
+ }
24988
+ function getPathname(req) {
24989
+ try {
24990
+ return parseUrl(req).pathname;
24991
+ } catch (err) {
24992
+ return void 0;
25885
24993
  }
25886
- if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
25887
- throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
24994
+ }
24995
+ function getProtohost(url2) {
24996
+ if (typeof url2 !== "string" || url2.length === 0 || url2[0] === "/") {
24997
+ return void 0;
25888
24998
  }
25889
- if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
25890
- throw new TypeError("Decoder has to be a function.");
24999
+ var searchIndex = url2.indexOf("?");
25000
+ var pathLength = searchIndex !== -1 ? searchIndex : url2.length;
25001
+ var fqdnIndex = url2.slice(0, pathLength).indexOf("://");
25002
+ return fqdnIndex !== -1 ? url2.substring(0, url2.indexOf("/", 3 + fqdnIndex)) : void 0;
25003
+ }
25004
+ function gettype(obj) {
25005
+ var type = typeof obj;
25006
+ if (type !== "object") {
25007
+ return type;
25891
25008
  }
25892
- if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
25893
- throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
25009
+ return toString.call(obj).replace(objectRegExp, "$1");
25010
+ }
25011
+ function matchLayer(layer, path20) {
25012
+ try {
25013
+ return layer.match(path20);
25014
+ } catch (err) {
25015
+ return err;
25894
25016
  }
25895
- if (typeof opts.throwOnLimitExceeded !== "undefined" && typeof opts.throwOnLimitExceeded !== "boolean") {
25896
- throw new TypeError("`throwOnLimitExceeded` option must be a boolean");
25017
+ }
25018
+ function mergeParams(params, parent) {
25019
+ if (typeof parent !== "object" || !parent) {
25020
+ return params;
25897
25021
  }
25898
- var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset;
25899
- var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates;
25900
- if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
25901
- throw new TypeError("The duplicates option must be either combine, first, or last");
25022
+ var obj = mixin({}, parent);
25023
+ if (!(0 in params) || !(0 in parent)) {
25024
+ return mixin(obj, params);
25902
25025
  }
25903
- var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
25904
- return {
25905
- allowDots,
25906
- allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
25907
- allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes,
25908
- allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse,
25909
- arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit,
25910
- charset,
25911
- charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
25912
- comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma,
25913
- decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
25914
- decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder,
25915
- delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
25916
- // eslint-disable-next-line no-implicit-coercion, no-extra-parens
25917
- depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth,
25918
- duplicates,
25919
- ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
25920
- interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
25921
- parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit,
25922
- parseArrays: opts.parseArrays !== false,
25923
- plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects,
25924
- strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth,
25925
- strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling,
25926
- throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === "boolean" ? opts.throwOnLimitExceeded : false
25927
- };
25928
- };
25929
- module2.exports = function(str, opts) {
25930
- var options = normalizeParseOptions(opts);
25931
- if (str === "" || str === null || typeof str === "undefined") {
25932
- return options.plainObjects ? { __proto__: null } : {};
25026
+ var i = 0;
25027
+ var o = 0;
25028
+ while (i in params) {
25029
+ i++;
25933
25030
  }
25934
- var tempObj = typeof str === "string" ? parseValues(str, options) : str;
25935
- var obj = options.plainObjects ? { __proto__: null } : {};
25936
- var keys = Object.keys(tempObj);
25937
- for (var i = 0; i < keys.length; ++i) {
25938
- var key = keys[i];
25939
- var newObj = parseKeys(key, tempObj[key], options, typeof str === "string");
25940
- obj = utils.merge(obj, newObj, options);
25031
+ while (o in parent) {
25032
+ o++;
25941
25033
  }
25942
- if (options.allowSparse === true) {
25943
- return obj;
25034
+ for (i--; i >= 0; i--) {
25035
+ params[i + o] = params[i];
25036
+ if (i < o) {
25037
+ delete params[i];
25038
+ }
25944
25039
  }
25945
- return utils.compact(obj);
25946
- };
25040
+ return mixin(obj, params);
25041
+ }
25042
+ function restore(fn, obj) {
25043
+ var props = new Array(arguments.length - 2);
25044
+ var vals = new Array(arguments.length - 2);
25045
+ for (var i = 0; i < props.length; i++) {
25046
+ props[i] = arguments[i + 2];
25047
+ vals[i] = obj[props[i]];
25048
+ }
25049
+ return function() {
25050
+ for (var i2 = 0; i2 < props.length; i2++) {
25051
+ obj[props[i2]] = vals[i2];
25052
+ }
25053
+ return fn.apply(this, arguments);
25054
+ };
25055
+ }
25056
+ function sendOptionsResponse(res, options, next) {
25057
+ try {
25058
+ var body = options.join(",");
25059
+ res.set("Allow", body);
25060
+ res.send(body);
25061
+ } catch (err) {
25062
+ next(err);
25063
+ }
25064
+ }
25065
+ function wrap(old, fn) {
25066
+ return function proxy() {
25067
+ var args = new Array(arguments.length + 1);
25068
+ args[0] = old;
25069
+ for (var i = 0, len = arguments.length; i < len; i++) {
25070
+ args[i + 1] = arguments[i];
25071
+ }
25072
+ fn.apply(this, args);
25073
+ };
25074
+ }
25947
25075
  }
25948
25076
  });
25949
25077
 
25950
- // ../../node_modules/qs/lib/index.js
25951
- var require_lib3 = __commonJS({
25952
- "../../node_modules/qs/lib/index.js"(exports2, module2) {
25078
+ // ../../node_modules/express/lib/middleware/init.js
25079
+ var require_init = __commonJS({
25080
+ "../../node_modules/express/lib/middleware/init.js"(exports2) {
25953
25081
  "use strict";
25954
- var stringify = require_stringify2();
25955
- var parse3 = require_parse2();
25956
- var formats = require_formats2();
25957
- module2.exports = {
25958
- formats,
25959
- parse: parse3,
25960
- stringify
25082
+ var setPrototypeOf = require_setprototypeof();
25083
+ exports2.init = function(app) {
25084
+ return function expressInit(req, res, next) {
25085
+ if (app.enabled("x-powered-by")) res.setHeader("X-Powered-By", "Express");
25086
+ req.res = res;
25087
+ res.req = req;
25088
+ req.next = next;
25089
+ setPrototypeOf(req, app.request);
25090
+ setPrototypeOf(res, app.response);
25091
+ res.locals = res.locals || /* @__PURE__ */ Object.create(null);
25092
+ next();
25093
+ };
25961
25094
  };
25962
25095
  }
25963
25096
  });
@@ -25968,7 +25101,7 @@ var require_query = __commonJS({
25968
25101
  "use strict";
25969
25102
  var merge2 = require_utils_merge();
25970
25103
  var parseUrl = require_parseurl();
25971
- var qs = require_lib3();
25104
+ var qs = require_lib2();
25972
25105
  module2.exports = function query(options) {
25973
25106
  var opts = merge2({}, options);
25974
25107
  var queryparse = qs.parse;
@@ -27732,7 +26865,7 @@ var require_ipaddr = __commonJS({
27732
26865
  }
27733
26866
  return defaultName;
27734
26867
  };
27735
- ipaddr.IPv4 = function() {
26868
+ ipaddr.IPv4 = (function() {
27736
26869
  function IPv4(octets) {
27737
26870
  var k2, len, octet;
27738
26871
  if (octets.length !== 4) {
@@ -27817,7 +26950,7 @@ var require_ipaddr = __commonJS({
27817
26950
  return 32 - cidr;
27818
26951
  };
27819
26952
  return IPv4;
27820
- }();
26953
+ })();
27821
26954
  ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
27822
26955
  ipv4Regexes = {
27823
26956
  fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"),
@@ -27833,7 +26966,7 @@ var require_ipaddr = __commonJS({
27833
26966
  }
27834
26967
  };
27835
26968
  if (match = string4.match(ipv4Regexes.fourOctet)) {
27836
- return function() {
26969
+ return (function() {
27837
26970
  var k2, len, ref, results;
27838
26971
  ref = match.slice(1, 6);
27839
26972
  results = [];
@@ -27842,25 +26975,25 @@ var require_ipaddr = __commonJS({
27842
26975
  results.push(parseIntAuto(part));
27843
26976
  }
27844
26977
  return results;
27845
- }();
26978
+ })();
27846
26979
  } else if (match = string4.match(ipv4Regexes.longValue)) {
27847
26980
  value = parseIntAuto(match[1]);
27848
26981
  if (value > 4294967295 || value < 0) {
27849
26982
  throw new Error("ipaddr: address outside defined range");
27850
26983
  }
27851
- return function() {
26984
+ return (function() {
27852
26985
  var k2, results;
27853
26986
  results = [];
27854
26987
  for (shift = k2 = 0; k2 <= 24; shift = k2 += 8) {
27855
26988
  results.push(value >> shift & 255);
27856
26989
  }
27857
26990
  return results;
27858
- }().reverse();
26991
+ })().reverse();
27859
26992
  } else {
27860
26993
  return null;
27861
26994
  }
27862
26995
  };
27863
- ipaddr.IPv6 = function() {
26996
+ ipaddr.IPv6 = (function() {
27864
26997
  function IPv6(parts, zoneId) {
27865
26998
  var i, k2, l, len, part, ref;
27866
26999
  if (parts.length === 16) {
@@ -27920,7 +27053,7 @@ var require_ipaddr = __commonJS({
27920
27053
  };
27921
27054
  IPv6.prototype.toNormalizedString = function() {
27922
27055
  var addr, part, suffix;
27923
- addr = function() {
27056
+ addr = (function() {
27924
27057
  var k2, len, ref, results;
27925
27058
  ref = this.parts;
27926
27059
  results = [];
@@ -27929,7 +27062,7 @@ var require_ipaddr = __commonJS({
27929
27062
  results.push(part.toString(16));
27930
27063
  }
27931
27064
  return results;
27932
- }.call(this).join(":");
27065
+ }).call(this).join(":");
27933
27066
  suffix = "";
27934
27067
  if (this.zoneId) {
27935
27068
  suffix = "%" + this.zoneId;
@@ -27938,7 +27071,7 @@ var require_ipaddr = __commonJS({
27938
27071
  };
27939
27072
  IPv6.prototype.toFixedLengthString = function() {
27940
27073
  var addr, part, suffix;
27941
- addr = function() {
27074
+ addr = (function() {
27942
27075
  var k2, len, ref, results;
27943
27076
  ref = this.parts;
27944
27077
  results = [];
@@ -27947,7 +27080,7 @@ var require_ipaddr = __commonJS({
27947
27080
  results.push(part.toString(16).padStart(4, "0"));
27948
27081
  }
27949
27082
  return results;
27950
- }.call(this).join(":");
27083
+ }).call(this).join(":");
27951
27084
  suffix = "";
27952
27085
  if (this.zoneId) {
27953
27086
  suffix = "%" + this.zoneId;
@@ -28032,7 +27165,7 @@ var require_ipaddr = __commonJS({
28032
27165
  return 128 - cidr;
28033
27166
  };
28034
27167
  return IPv6;
28035
- }();
27168
+ })();
28036
27169
  ipv6Part = "(?:[0-9a-f]+::?)+";
28037
27170
  zoneIndex = "%[0-9a-z]{1,}";
28038
27171
  ipv6Regexes = {
@@ -28076,7 +27209,7 @@ var require_ipaddr = __commonJS({
28076
27209
  if (string4[string4.length - 1] === ":") {
28077
27210
  string4 = string4.slice(0, -1);
28078
27211
  }
28079
- parts = function() {
27212
+ parts = (function() {
28080
27213
  var k2, len, ref, results;
28081
27214
  ref = string4.split(":");
28082
27215
  results = [];
@@ -28085,7 +27218,7 @@ var require_ipaddr = __commonJS({
28085
27218
  results.push(parseInt(part, 16));
28086
27219
  }
28087
27220
  return results;
28088
- }();
27221
+ })();
28089
27222
  return {
28090
27223
  parts,
28091
27224
  zoneId
@@ -28462,7 +27595,7 @@ var require_proxy_addr = __commonJS({
28462
27595
  });
28463
27596
 
28464
27597
  // ../../node_modules/express/lib/utils.js
28465
- var require_utils3 = __commonJS({
27598
+ var require_utils2 = __commonJS({
28466
27599
  "../../node_modules/express/lib/utils.js"(exports2) {
28467
27600
  "use strict";
28468
27601
  var Buffer2 = require_safe_buffer().Buffer;
@@ -28473,7 +27606,7 @@ var require_utils3 = __commonJS({
28473
27606
  var mime = require_send().mime;
28474
27607
  var etag = require_etag();
28475
27608
  var proxyaddr = require_proxy_addr();
28476
- var qs = require_lib3();
27609
+ var qs = require_lib2();
28477
27610
  var querystring = require("querystring");
28478
27611
  exports2.etag = createETagGenerator({ weak: false });
28479
27612
  exports2.wetag = createETagGenerator({ weak: true });
@@ -28589,7 +27722,8 @@ var require_utils3 = __commonJS({
28589
27722
  }
28590
27723
  function parseExtendedQueryString(str) {
28591
27724
  return qs.parse(str, {
28592
- allowPrototypes: true
27725
+ allowPrototypes: true,
27726
+ arrayLimit: 1e3
28593
27727
  });
28594
27728
  }
28595
27729
  function newObject() {
@@ -28610,9 +27744,9 @@ var require_application = __commonJS({
28610
27744
  var debug = require_src3()("express:application");
28611
27745
  var View = require_view();
28612
27746
  var http2 = require("http");
28613
- var compileETag = require_utils3().compileETag;
28614
- var compileQueryParser = require_utils3().compileQueryParser;
28615
- var compileTrust = require_utils3().compileTrust;
27747
+ var compileETag = require_utils2().compileETag;
27748
+ var compileQueryParser = require_utils2().compileQueryParser;
27749
+ var compileTrust = require_utils2().compileTrust;
28616
27750
  var deprecate = require_depd()("express");
28617
27751
  var flatten = require_array_flatten();
28618
27752
  var merge2 = require_utils_merge();
@@ -29590,7 +28724,7 @@ var require_request = __commonJS({
29590
28724
  var method = this.method;
29591
28725
  var res = this.res;
29592
28726
  var status = res.statusCode;
29593
- if ("GET" !== method && "HEAD" !== method) return false;
28727
+ if ("GET" !== method && "HEAD" !== method && "QUERY" !== method) return false;
29594
28728
  if (status >= 200 && status < 300 || 304 === status) {
29595
28729
  return fresh(this.headers, {
29596
28730
  "etag": res.get("ETag"),
@@ -29887,15 +29021,15 @@ var require_response = __commonJS({
29887
29021
  var encodeUrl = require_encodeurl();
29888
29022
  var escapeHtml = require_escape_html();
29889
29023
  var http2 = require("http");
29890
- var isAbsolute = require_utils3().isAbsolute;
29024
+ var isAbsolute = require_utils2().isAbsolute;
29891
29025
  var onFinished = require_on_finished();
29892
29026
  var path20 = require("path");
29893
29027
  var statuses = require_statuses();
29894
29028
  var merge2 = require_utils_merge();
29895
29029
  var sign = require_cookie_signature().sign;
29896
- var normalizeType = require_utils3().normalizeType;
29897
- var normalizeTypes = require_utils3().normalizeTypes;
29898
- var setCharset = require_utils3().setCharset;
29030
+ var normalizeType = require_utils2().normalizeType;
29031
+ var normalizeTypes = require_utils2().normalizeTypes;
29032
+ var setCharset = require_utils2().setCharset;
29899
29033
  var cookie = require_cookie();
29900
29034
  var send2 = require_send();
29901
29035
  var extname = path20.extname;
@@ -30613,10 +29747,10 @@ var require_constants = __commonJS({
30613
29747
  EMPTY_BUFFER: Buffer.alloc(0),
30614
29748
  GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11",
30615
29749
  hasBlob,
30616
- kForOnEventAttribute: Symbol("kIsForOnEventAttribute"),
30617
- kListener: Symbol("kListener"),
30618
- kStatusCode: Symbol("status-code"),
30619
- kWebSocket: Symbol("websocket"),
29750
+ kForOnEventAttribute: /* @__PURE__ */ Symbol("kIsForOnEventAttribute"),
29751
+ kListener: /* @__PURE__ */ Symbol("kListener"),
29752
+ kStatusCode: /* @__PURE__ */ Symbol("status-code"),
29753
+ kWebSocket: /* @__PURE__ */ Symbol("websocket"),
30620
29754
  NOOP: () => {
30621
29755
  }
30622
29756
  };
@@ -30702,8 +29836,8 @@ var require_buffer_util = __commonJS({
30702
29836
  var require_limiter = __commonJS({
30703
29837
  "../../node_modules/ws/lib/limiter.js"(exports2, module2) {
30704
29838
  "use strict";
30705
- var kDone = Symbol("kDone");
30706
- var kRun = Symbol("kRun");
29839
+ var kDone = /* @__PURE__ */ Symbol("kDone");
29840
+ var kRun = /* @__PURE__ */ Symbol("kRun");
30707
29841
  var Limiter = class {
30708
29842
  /**
30709
29843
  * Creates a new `Limiter`.
@@ -30758,11 +29892,11 @@ var require_permessage_deflate = __commonJS({
30758
29892
  var { kStatusCode } = require_constants();
30759
29893
  var FastBuffer = Buffer[Symbol.species];
30760
29894
  var TRAILER = Buffer.from([0, 0, 255, 255]);
30761
- var kPerMessageDeflate = Symbol("permessage-deflate");
30762
- var kTotalLength = Symbol("total-length");
30763
- var kCallback = Symbol("callback");
30764
- var kBuffers = Symbol("buffers");
30765
- var kError = Symbol("error");
29895
+ var kPerMessageDeflate = /* @__PURE__ */ Symbol("permessage-deflate");
29896
+ var kTotalLength = /* @__PURE__ */ Symbol("total-length");
29897
+ var kCallback = /* @__PURE__ */ Symbol("callback");
29898
+ var kBuffers = /* @__PURE__ */ Symbol("buffers");
29899
+ var kError = /* @__PURE__ */ Symbol("error");
30766
29900
  var zlibLimiter;
30767
29901
  var PerMessageDeflate2 = class {
30768
29902
  /**
@@ -30877,7 +30011,7 @@ var require_permessage_deflate = __commonJS({
30877
30011
  acceptAsServer(offers) {
30878
30012
  const opts = this._options;
30879
30013
  const accepted = offers.find((params) => {
30880
- if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && !params.client_max_window_bits) {
30014
+ if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && (typeof params.client_max_window_bits === "number" ? opts.clientMaxWindowBits > params.client_max_window_bits : !params.client_max_window_bits)) {
30881
30015
  return false;
30882
30016
  }
30883
30017
  return true;
@@ -31367,6 +30501,10 @@ var require_receiver = __commonJS({
31367
30501
  * extensions
31368
30502
  * @param {Boolean} [options.isServer=false] Specifies whether to operate in
31369
30503
  * client or server mode
30504
+ * @param {Number} [options.maxBufferedChunks=0] The maximum number of
30505
+ * buffered data chunks
30506
+ * @param {Number} [options.maxFragments=0] The maximum number of message
30507
+ * fragments
31370
30508
  * @param {Number} [options.maxPayload=0] The maximum allowed message length
31371
30509
  * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
31372
30510
  * not to skip UTF-8 validation for text and close messages
@@ -31377,6 +30515,8 @@ var require_receiver = __commonJS({
31377
30515
  this._binaryType = options.binaryType || BINARY_TYPES[0];
31378
30516
  this._extensions = options.extensions || {};
31379
30517
  this._isServer = !!options.isServer;
30518
+ this._maxBufferedChunks = options.maxBufferedChunks | 0;
30519
+ this._maxFragments = options.maxFragments | 0;
31380
30520
  this._maxPayload = options.maxPayload | 0;
31381
30521
  this._skipUTF8Validation = !!options.skipUTF8Validation;
31382
30522
  this[kWebSocket] = void 0;
@@ -31391,6 +30531,7 @@ var require_receiver = __commonJS({
31391
30531
  this._opcode = 0;
31392
30532
  this._totalPayloadLength = 0;
31393
30533
  this._messageLength = 0;
30534
+ this._numFragments = 0;
31394
30535
  this._fragments = [];
31395
30536
  this._errored = false;
31396
30537
  this._loop = false;
@@ -31406,6 +30547,18 @@ var require_receiver = __commonJS({
31406
30547
  */
31407
30548
  _write(chunk, encoding, cb) {
31408
30549
  if (this._opcode === 8 && this._state == GET_INFO) return cb();
30550
+ if (this._maxBufferedChunks > 0 && this._buffers.length >= this._maxBufferedChunks) {
30551
+ cb(
30552
+ this.createError(
30553
+ RangeError,
30554
+ "Too many buffered chunks",
30555
+ false,
30556
+ 1008,
30557
+ "WS_ERR_TOO_MANY_BUFFERED_PARTS"
30558
+ )
30559
+ );
30560
+ return;
30561
+ }
31409
30562
  this._bufferedBytes += chunk.length;
31410
30563
  this._buffers.push(chunk);
31411
30564
  this.startLoop(cb);
@@ -31729,6 +30882,17 @@ var require_receiver = __commonJS({
31729
30882
  this.controlMessage(data, cb);
31730
30883
  return;
31731
30884
  }
30885
+ if (this._maxFragments > 0 && ++this._numFragments > this._maxFragments) {
30886
+ const error48 = this.createError(
30887
+ RangeError,
30888
+ "Too many message fragments",
30889
+ false,
30890
+ 1008,
30891
+ "WS_ERR_TOO_MANY_BUFFERED_PARTS"
30892
+ );
30893
+ cb(error48);
30894
+ return;
30895
+ }
31732
30896
  if (this._compressed) {
31733
30897
  this._state = INFLATING;
31734
30898
  this.decompress(data, cb);
@@ -31786,6 +30950,7 @@ var require_receiver = __commonJS({
31786
30950
  this._totalPayloadLength = 0;
31787
30951
  this._messageLength = 0;
31788
30952
  this._fragmented = 0;
30953
+ this._numFragments = 0;
31789
30954
  this._fragments = [];
31790
30955
  if (this._opcode === 2) {
31791
30956
  let data;
@@ -31930,11 +31095,14 @@ var require_sender = __commonJS({
31930
31095
  "use strict";
31931
31096
  var { Duplex } = require("stream");
31932
31097
  var { randomFillSync } = require("crypto");
31098
+ var {
31099
+ types: { isUint8Array }
31100
+ } = require("util");
31933
31101
  var PerMessageDeflate2 = require_permessage_deflate();
31934
31102
  var { EMPTY_BUFFER, kWebSocket, NOOP } = require_constants();
31935
31103
  var { isBlob, isValidStatusCode } = require_validation();
31936
31104
  var { mask: applyMask, toBuffer } = require_buffer_util();
31937
- var kByteLength = Symbol("kByteLength");
31105
+ var kByteLength = /* @__PURE__ */ Symbol("kByteLength");
31938
31106
  var maskBuffer = Buffer.alloc(4);
31939
31107
  var RANDOM_POOL_SIZE = 8 * 1024;
31940
31108
  var randomPool;
@@ -32083,8 +31251,10 @@ var require_sender = __commonJS({
32083
31251
  buf.writeUInt16BE(code, 0);
32084
31252
  if (typeof data === "string") {
32085
31253
  buf.write(data, 2);
32086
- } else {
31254
+ } else if (isUint8Array(data)) {
32087
31255
  buf.set(data, 2);
31256
+ } else {
31257
+ throw new TypeError("Second argument must be a string or a Uint8Array");
32088
31258
  }
32089
31259
  }
32090
31260
  const options = {
@@ -32417,14 +31587,14 @@ var require_event_target = __commonJS({
32417
31587
  "../../node_modules/ws/lib/event-target.js"(exports2, module2) {
32418
31588
  "use strict";
32419
31589
  var { kForOnEventAttribute, kListener } = require_constants();
32420
- var kCode = Symbol("kCode");
32421
- var kData = Symbol("kData");
32422
- var kError = Symbol("kError");
32423
- var kMessage = Symbol("kMessage");
32424
- var kReason = Symbol("kReason");
32425
- var kTarget = Symbol("kTarget");
32426
- var kType = Symbol("kType");
32427
- var kWasClean = Symbol("kWasClean");
31590
+ var kCode = /* @__PURE__ */ Symbol("kCode");
31591
+ var kData = /* @__PURE__ */ Symbol("kData");
31592
+ var kError = /* @__PURE__ */ Symbol("kError");
31593
+ var kMessage = /* @__PURE__ */ Symbol("kMessage");
31594
+ var kReason = /* @__PURE__ */ Symbol("kReason");
31595
+ var kTarget = /* @__PURE__ */ Symbol("kTarget");
31596
+ var kType = /* @__PURE__ */ Symbol("kType");
31597
+ var kWasClean = /* @__PURE__ */ Symbol("kWasClean");
32428
31598
  var Event2 = class {
32429
31599
  /**
32430
31600
  * Create a new `Event`.
@@ -32826,7 +31996,7 @@ var require_websocket = __commonJS({
32826
31996
  } = require_event_target();
32827
31997
  var { format, parse: parse3 } = require_extension();
32828
31998
  var { toBuffer } = require_buffer_util();
32829
- var kAborted = Symbol("kAborted");
31999
+ var kAborted = /* @__PURE__ */ Symbol("kAborted");
32830
32000
  var protocolVersions = [8, 13];
32831
32001
  var readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];
32832
32002
  var subprotocolRegex = /^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;
@@ -32859,11 +32029,23 @@ var require_websocket = __commonJS({
32859
32029
  this._isServer = false;
32860
32030
  this._redirects = 0;
32861
32031
  if (protocols === void 0) {
32862
- protocols = [];
32032
+ if (!options || options.protocols === void 0) {
32033
+ protocols = [];
32034
+ } else if (Array.isArray(options.protocols)) {
32035
+ protocols = options.protocols;
32036
+ } else {
32037
+ protocols = [options.protocols];
32038
+ }
32863
32039
  } else if (!Array.isArray(protocols)) {
32864
32040
  if (typeof protocols === "object" && protocols !== null) {
32865
32041
  options = protocols;
32866
- protocols = [];
32042
+ if (options.protocols === void 0) {
32043
+ protocols = [];
32044
+ } else if (Array.isArray(options.protocols)) {
32045
+ protocols = options.protocols;
32046
+ } else {
32047
+ protocols = [options.protocols];
32048
+ }
32867
32049
  } else {
32868
32050
  protocols = [protocols];
32869
32051
  }
@@ -32965,6 +32147,10 @@ var require_websocket = __commonJS({
32965
32147
  * multiple times in the same tick
32966
32148
  * @param {Function} [options.generateMask] The function used to generate the
32967
32149
  * masking key
32150
+ * @param {Number} [options.maxBufferedChunks=0] The maximum number of
32151
+ * buffered data chunks
32152
+ * @param {Number} [options.maxFragments=0] The maximum number of message
32153
+ * fragments
32968
32154
  * @param {Number} [options.maxPayload=0] The maximum allowed message size
32969
32155
  * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or
32970
32156
  * not to skip UTF-8 validation for text and close messages
@@ -32976,6 +32162,8 @@ var require_websocket = __commonJS({
32976
32162
  binaryType: this.binaryType,
32977
32163
  extensions: this._extensions,
32978
32164
  isServer: this._isServer,
32165
+ maxBufferedChunks: options.maxBufferedChunks,
32166
+ maxFragments: options.maxFragments,
32979
32167
  maxPayload: options.maxPayload,
32980
32168
  skipUTF8Validation: options.skipUTF8Validation
32981
32169
  });
@@ -33054,7 +32242,6 @@ var require_websocket = __commonJS({
33054
32242
  }
33055
32243
  return;
33056
32244
  }
33057
- this._readyState = _WebSocket.CLOSING;
33058
32245
  this._sender.close(code, data, !this._isServer, (err) => {
33059
32246
  if (err) return;
33060
32247
  this._closeFrameSent = true;
@@ -33062,6 +32249,7 @@ var require_websocket = __commonJS({
33062
32249
  this._socket.end();
33063
32250
  }
33064
32251
  });
32252
+ this._readyState = _WebSocket.CLOSING;
33065
32253
  setCloseTimer(this);
33066
32254
  }
33067
32255
  /**
@@ -33275,6 +32463,8 @@ var require_websocket = __commonJS({
33275
32463
  autoPong: true,
33276
32464
  closeTimeout: CLOSE_TIMEOUT,
33277
32465
  protocolVersion: protocolVersions[1],
32466
+ maxBufferedChunks: 256 * 1024,
32467
+ maxFragments: 16 * 1024,
33278
32468
  maxPayload: 100 * 1024 * 1024,
33279
32469
  skipUTF8Validation: false,
33280
32470
  perMessageDeflate: true,
@@ -33284,6 +32474,7 @@ var require_websocket = __commonJS({
33284
32474
  socketPath: void 0,
33285
32475
  hostname: void 0,
33286
32476
  protocol: void 0,
32477
+ protocols: void 0,
33287
32478
  timeout: void 0,
33288
32479
  method: "GET",
33289
32480
  host: void 0,
@@ -33517,6 +32708,8 @@ var require_websocket = __commonJS({
33517
32708
  websocket.setSocket(socket, head, {
33518
32709
  allowSynchronousEvents: opts.allowSynchronousEvents,
33519
32710
  generateMask: opts.generateMask,
32711
+ maxBufferedChunks: opts.maxBufferedChunks,
32712
+ maxFragments: opts.maxFragments,
33520
32713
  maxPayload: opts.maxPayload,
33521
32714
  skipUTF8Validation: opts.skipUTF8Validation
33522
32715
  });
@@ -33859,6 +33052,10 @@ var require_websocket_server = __commonJS({
33859
33052
  * called
33860
33053
  * @param {Function} [options.handleProtocols] A hook to handle protocols
33861
33054
  * @param {String} [options.host] The hostname where to bind the server
33055
+ * @param {Number} [options.maxBufferedChunks=262144] The maximum number of
33056
+ * buffered data chunks
33057
+ * @param {Number} [options.maxFragments=16384] The maximum number of message
33058
+ * fragments
33862
33059
  * @param {Number} [options.maxPayload=104857600] The maximum allowed message
33863
33060
  * size
33864
33061
  * @param {Boolean} [options.noServer=false] Enable no server mode
@@ -33880,6 +33077,8 @@ var require_websocket_server = __commonJS({
33880
33077
  options = {
33881
33078
  allowSynchronousEvents: true,
33882
33079
  autoPong: true,
33080
+ maxBufferedChunks: 256 * 1024,
33081
+ maxFragments: 16 * 1024,
33883
33082
  maxPayload: 100 * 1024 * 1024,
33884
33083
  skipUTF8Validation: false,
33885
33084
  perMessageDeflate: false,
@@ -34159,6 +33358,8 @@ var require_websocket_server = __commonJS({
34159
33358
  socket.removeListener("error", socketOnError);
34160
33359
  ws.setSocket(socket, head, {
34161
33360
  allowSynchronousEvents: this.options.allowSynchronousEvents,
33361
+ maxBufferedChunks: this.options.maxBufferedChunks,
33362
+ maxFragments: this.options.maxFragments,
34162
33363
  maxPayload: this.options.maxPayload,
34163
33364
  skipUTF8Validation: this.options.skipUTF8Validation
34164
33365
  });
@@ -34486,8 +33687,7 @@ var MAX_PORT = 65535;
34486
33687
  var TELEMETRY_CONTROL_ENV_VARS = [
34487
33688
  "DO_NOT_TRACK",
34488
33689
  "CI",
34489
- "TV_TELEMETRY_DEV",
34490
- "TELEVISION_TELEMETRY_BUILD"
33690
+ "TV_TELEMETRY_TEST"
34491
33691
  ];
34492
33692
  var UPDATE_CHANNEL_ENV_VARS = [
34493
33693
  "TV_UPDATE_CHANNEL_URL",
@@ -35305,7 +34505,7 @@ function $constructor(name, initializer3, params) {
35305
34505
  Object.defineProperty(_2, "name", { value: name });
35306
34506
  return _2;
35307
34507
  }
35308
- var $brand = Symbol("zod_brand");
34508
+ var $brand = /* @__PURE__ */ Symbol("zod_brand");
35309
34509
  var $ZodAsyncError = class extends Error {
35310
34510
  constructor() {
35311
34511
  super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);
@@ -35452,7 +34652,7 @@ function floatSafeRemainder(val, step) {
35452
34652
  const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", ""));
35453
34653
  return valInt % stepInt / 10 ** decCount;
35454
34654
  }
35455
- var EVALUATING = Symbol("evaluating");
34655
+ var EVALUATING = /* @__PURE__ */ Symbol("evaluating");
35456
34656
  function defineLazy(object2, key, getter) {
35457
34657
  let value = void 0;
35458
34658
  Object.defineProperty(object2, key, {
@@ -44525,8 +43725,8 @@ function yo_default() {
44525
43725
 
44526
43726
  // ../../node_modules/zod/v4/core/registries.js
44527
43727
  var _a;
44528
- var $output = Symbol("ZodOutput");
44529
- var $input = Symbol("ZodInput");
43728
+ var $output = /* @__PURE__ */ Symbol("ZodOutput");
43729
+ var $input = /* @__PURE__ */ Symbol("ZodInput");
44530
43730
  var $ZodRegistry = class {
44531
43731
  constructor() {
44532
43732
  this._map = /* @__PURE__ */ new WeakMap();
@@ -45563,7 +44763,7 @@ function _stringbool(Classes, _params) {
45563
44763
  type: "pipe",
45564
44764
  in: stringSchema,
45565
44765
  out: booleanSchema,
45566
- transform: (input, payload) => {
44766
+ transform: ((input, payload) => {
45567
44767
  let data = input;
45568
44768
  if (params.case !== "sensitive")
45569
44769
  data = data.toLowerCase();
@@ -45582,14 +44782,14 @@ function _stringbool(Classes, _params) {
45582
44782
  });
45583
44783
  return {};
45584
44784
  }
45585
- },
45586
- reverseTransform: (input, _payload) => {
44785
+ }),
44786
+ reverseTransform: ((input, _payload) => {
45587
44787
  if (input === true) {
45588
44788
  return truthyArray[0] || "true";
45589
44789
  } else {
45590
44790
  return falsyArray[0] || "false";
45591
44791
  }
45592
- },
44792
+ }),
45593
44793
  error: params.error
45594
44794
  });
45595
44795
  return codec2;
@@ -46917,10 +46117,10 @@ var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
46917
46117
  inst.with = inst.check;
46918
46118
  inst.clone = (def2, params) => clone(inst, def2, params);
46919
46119
  inst.brand = () => inst;
46920
- inst.register = (reg, meta3) => {
46120
+ inst.register = ((reg, meta3) => {
46921
46121
  reg.add(inst, meta3);
46922
46122
  return inst;
46923
- };
46123
+ });
46924
46124
  inst.parse = (data, params) => parse2(inst, data, params, { callee: inst.parse });
46925
46125
  inst.safeParse = (data, params) => safeParse2(inst, data, params);
46926
46126
  inst.parseAsync = async (data, params) => parseAsync2(inst, data, params, { callee: inst.parseAsync });
@@ -49886,7 +49086,6 @@ function describeError(error48) {
49886
49086
  }
49887
49087
 
49888
49088
  // ../server/src/telemetry/types.ts
49889
- var telemetryVersionBrand = Symbol("telemetryVersion");
49890
49089
  function telemetryVersion(value) {
49891
49090
  return value;
49892
49091
  }
@@ -50077,6 +49276,15 @@ function isTailnetIPv4(hostname3) {
50077
49276
  const [a, b2] = hostname3.split(".").map((part) => Number.parseInt(part, 10));
50078
49277
  return a === TAILNET_FIRST_OCTET && b2 !== void 0 && b2 >= TAILNET_MIN_SECOND_OCTET && b2 <= TAILNET_MAX_SECOND_OCTET;
50079
49278
  }
49279
+ function classifyTelemetryVersion(value) {
49280
+ const match = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/.exec(value);
49281
+ if (!match) return telemetryVersion("0.0.0");
49282
+ const [, major, minor, patch, prerelease] = match;
49283
+ if (prerelease?.split(".").some((part) => /^0\d+$/.test(part))) {
49284
+ return telemetryVersion("0.0.0");
49285
+ }
49286
+ return telemetryVersion(`${major}.${minor}.${patch}`);
49287
+ }
50080
49288
 
50081
49289
  // ../server/src/telemetry/client-meta.ts
50082
49290
  function parseClientTelemetryMetaHeader(value) {
@@ -51370,13 +50578,13 @@ function appearanceResolverScriptSource(preferenceExpression) {
51370
50578
  // ../utils/src/disposable.ts
51371
50579
  function wrapDispose(target, isDisposed, setDisposed) {
51372
50580
  const disposeImpl = target.dispose.bind(target);
51373
- target.dispose = () => {
50581
+ target.dispose = (() => {
51374
50582
  if (isDisposed()) {
51375
50583
  return;
51376
50584
  }
51377
50585
  setDisposed();
51378
50586
  return disposeImpl();
51379
- };
50587
+ });
51380
50588
  }
51381
50589
  function withDisposable(Base) {
51382
50590
  class WithDisposable extends Base {
@@ -52834,7 +52042,7 @@ var import_node_path8 = __toESM(require("node:path"), 1);
52834
52042
  var launchACPProcess = (command, args, options) => {
52835
52043
  const child = (0, import_node_child_process2.spawn)(command, args, options);
52836
52044
  const directKill = child.kill.bind(child);
52837
- child.kill = (signal) => {
52045
+ child.kill = ((signal) => {
52838
52046
  const pid = child.pid;
52839
52047
  const sig = signal ?? "SIGTERM";
52840
52048
  if (pid != null) {
@@ -52848,7 +52056,7 @@ var launchACPProcess = (command, args, options) => {
52848
52056
  }
52849
52057
  }
52850
52058
  return directKill(sig);
52851
- };
52059
+ });
52852
52060
  return child;
52853
52061
  };
52854
52062
  var ACP_STOP_TIMEOUT_MS = 5e3;
@@ -53631,36 +52839,35 @@ async function setTelemetryOptedOut(storagePath, state, optedOut) {
53631
52839
  await writeTelemetryState(storagePath, nextState);
53632
52840
  return nextState;
53633
52841
  }
53634
- function telemetryEnabled(env, state) {
53635
- if (state.optedOut) return false;
53636
- return telemetryEnvironmentSuppressionReason(env) === null;
52842
+ function telemetryDecision(env, state, developerHost) {
52843
+ if (isEnabledEnvFlag(env.DO_NOT_TRACK)) return { state: "suppressed", reason: "do-not-track", destination: null };
52844
+ if (isEnabledEnvFlag(env.CI)) return { state: "suppressed", reason: "ci", destination: null };
52845
+ if (!isTelemetryTestMode(env)) {
52846
+ if (telemetryBuildMarker() !== "production") return { state: "suppressed", reason: "development", destination: null };
52847
+ if (developerHost) return { state: "suppressed", reason: "developer-host", destination: null };
52848
+ }
52849
+ if (state.optedOut) return { state: "opted-out", reason: null, destination: null };
52850
+ return { state: "active", reason: null, destination: isTelemetryTestMode(env) ? "test" : "production" };
52851
+ }
52852
+ function telemetryDestination(env, state, developerHost) {
52853
+ return telemetryDecision(env, state, developerHost).destination;
53637
52854
  }
53638
- function telemetryEnvironmentSuppressionReason(env) {
53639
- if (isEnabledEnvFlag(env.DO_NOT_TRACK)) return "do-not-track";
53640
- if (isEnabledEnvFlag(env.CI)) return "ci";
53641
- if (!isProductionTelemetryBuild(env) && !isTelemetryDevMode(env)) return "development";
53642
- return null;
52855
+ function telemetryEnabled(env, state, developerHost) {
52856
+ return telemetryDestination(env, state, developerHost) !== null;
53643
52857
  }
53644
- function telemetryStatus(env, state) {
52858
+ function telemetryEnvironmentSuppressionReason(env, developerHost = false) {
52859
+ return telemetryDecision(env, { optedOut: false }, developerHost).reason;
52860
+ }
52861
+ function telemetryStatus(env, state, developerHost = false) {
53645
52862
  if (!state) return { state: "unavailable", reason: null, guidPresent: false, region: "us" };
53646
- const reason = telemetryEnvironmentSuppressionReason(env);
53647
- if (reason) return { state: "suppressed", reason, guidPresent: true, region: "us" };
53648
- if (state.optedOut) return { state: "opted-out", reason: null, guidPresent: true, region: "us" };
53649
- return { state: "active", reason: null, guidPresent: true, region: "us" };
53650
- }
53651
- function isTelemetryDevMode(env) {
53652
- return isEnabledEnvFlag(env.TV_TELEMETRY_DEV);
53653
- }
53654
- function telemetryBuildMarker(env) {
53655
- const explicitBuild = env.TELEVISION_TELEMETRY_BUILD?.trim().toLowerCase();
53656
- if (explicitBuild) return explicitBuild;
53657
- const bundledBuild = bundledTelemetryBuildMarker()?.trim().toLowerCase();
53658
- if (bundledBuild) return bundledBuild;
53659
- if (env.NODE_ENV === "production") return "production";
53660
- return null;
52863
+ const decision = telemetryDecision(env, state, developerHost);
52864
+ return { state: decision.state, reason: decision.reason, guidPresent: true, region: "us" };
53661
52865
  }
53662
- function isProductionTelemetryBuild(env) {
53663
- return telemetryBuildMarker(env) === "production";
52866
+ function isTelemetryTestMode(env) {
52867
+ return isEnabledEnvFlag(env.TV_TELEMETRY_TEST);
52868
+ }
52869
+ function telemetryBuildMarker() {
52870
+ return bundledTelemetryBuildMarker() ?? null;
53664
52871
  }
53665
52872
  function isTelemetryVersionOlder(previousVersion, runningVersion) {
53666
52873
  const previous = parseSemanticVersion2(previousVersion);
@@ -53737,7 +52944,7 @@ function isNodeError(error48) {
53737
52944
 
53738
52945
  // ../server/src/telemetry/capture.ts
53739
52946
  function capture(event, context) {
53740
- if (!telemetryEnabled(context.env, context.state)) return;
52947
+ if (!telemetryEnabled(context.env, context.state, context.developerHost)) return;
53741
52948
  try {
53742
52949
  context.sink.enqueue(buildTelemetryEvent(event, context));
53743
52950
  } catch {
@@ -53746,16 +52953,24 @@ function capture(event, context) {
53746
52953
  function buildTelemetryEvent(event, context) {
53747
52954
  const properties = {
53748
52955
  distinct_id: context.state.userId,
53749
- ...event.properties ?? {}
52956
+ ...classifyVersions(event.properties)
53750
52957
  };
53751
52958
  if (context.sessionId) properties.$session_id = context.sessionId;
53752
- if (event.personProperties && Object.keys(event.personProperties).length > 0) properties.$set = event.personProperties;
52959
+ if (event.personProperties && Object.keys(event.personProperties).length > 0) properties.$set = classifyVersions(event.personProperties);
53753
52960
  return {
53754
52961
  name: event.name,
53755
52962
  distinctId: context.state.userId,
53756
52963
  properties
53757
52964
  };
53758
52965
  }
52966
+ function classifyVersions(properties = {}) {
52967
+ const classified = { ...properties };
52968
+ for (const key of ["server_version", "old_version", "new_version", "desktop_app_version", "from_version", "to_version", "channel_version", "required_desktop_version"]) {
52969
+ const value = properties[key];
52970
+ if (value !== void 0) classified[key] = classifyTelemetryVersion(value);
52971
+ }
52972
+ return classified;
52973
+ }
53759
52974
 
53760
52975
  // ../server/src/telemetry/posthog-config.ts
53761
52976
  var import_node_fs10 = require("node:fs");
@@ -53780,7 +52995,8 @@ var POSTHOG_TEST_PROJECT = {
53780
52995
  apiHost: POSTHOG_US_API_HOST
53781
52996
  };
53782
52997
  function resolvePostHogProject(env, options = {}) {
53783
- return isTelemetryDevMode(env) || options.developerHost === true ? POSTHOG_TEST_PROJECT : POSTHOG_PRODUCTION_PROJECT;
52998
+ const destination = telemetryDestination(env, { optedOut: options.optedOut ?? false }, options.developerHost ?? false);
52999
+ return destination === "test" ? POSTHOG_TEST_PROJECT : destination === "production" ? POSTHOG_PRODUCTION_PROJECT : null;
53784
53000
  }
53785
53001
  function resolveTelemetryDeveloperHome(env = process.env) {
53786
53002
  const capturedHome = env.TELEVISION_DEVELOPER_HOME;
@@ -53902,7 +53118,7 @@ function createPostHogTransport(options = {}) {
53902
53118
  api_key: project.projectToken,
53903
53119
  event: event.name,
53904
53120
  distinct_id: event.distinctId,
53905
- properties: event.properties
53121
+ properties: { ...event.properties, $ip: "0.0.0.0", $geoip_disable: true }
53906
53122
  }),
53907
53123
  signal: controller.signal
53908
53124
  });
@@ -53978,9 +53194,11 @@ var SKILL_INSTALL_TELEMETRY_TIMEOUT_MS = 500;
53978
53194
  async function emitSkillInstalledTelemetry(options) {
53979
53195
  const env = options.env ?? process.env;
53980
53196
  const developerHost = options.developerHost ?? detectTelemetryDeveloperHost(resolveTelemetryDeveloperHome(env));
53981
- const sink = options.sink ?? createTelemetrySink({
53982
- transport: createPostHogTransport({ project: resolvePostHogProject(env, { developerHost }), timeoutMs: SKILL_INSTALL_TELEMETRY_TIMEOUT_MS })
53983
- });
53197
+ const project = resolvePostHogProject(env, { developerHost });
53198
+ const sink = options.sink ?? (project ? createTelemetrySink({
53199
+ transport: createPostHogTransport({ project, timeoutMs: SKILL_INSTALL_TELEMETRY_TIMEOUT_MS })
53200
+ }) : { enqueue() {
53201
+ } });
53984
53202
  try {
53985
53203
  const loaded = await loadOrMintTelemetryState(options.storagePath, { lastVersion: "" });
53986
53204
  capture({
@@ -53990,7 +53208,7 @@ async function emitSkillInstalledTelemetry(options) {
53990
53208
  agent_type: options.agentType,
53991
53209
  ...normalizeInstalledByAgent(options.installedByAgent)
53992
53210
  }
53993
- }, { state: loaded.state, env, sink });
53211
+ }, { state: loaded.state, env, sink, developerHost });
53994
53212
  } catch {
53995
53213
  } finally {
53996
53214
  await bestEffortWithinTimeout(sink.shutdown?.(), SKILL_INSTALL_TELEMETRY_TIMEOUT_MS);
@@ -54019,7 +53237,9 @@ async function createTelemetryRuntime(options) {
54019
53237
  const boot = await deriveBootTelemetry(options.storagePath, options.version, { dataDirCreated: options.dataDirCreated });
54020
53238
  const env = options.env ?? process.env;
54021
53239
  const developerHost = options.developerHost ?? detectTelemetryDeveloperHost(resolveTelemetryDeveloperHome(env));
54022
- const sink = options.sink ?? createTelemetrySink({ project: resolvePostHogProject(env, { developerHost }) });
53240
+ const project = resolvePostHogProject(env, { developerHost });
53241
+ const sink = options.sink ?? (project ? createTelemetrySink({ project }) : { enqueue() {
53242
+ } });
54023
53243
  const sessions = options.sessions ?? createTelemetrySessionManager();
54024
53244
  const nowMs = options.nowMs ?? Date.now;
54025
53245
  let currentState = boot.state;
@@ -54028,7 +53248,7 @@ async function createTelemetryRuntime(options) {
54028
53248
  return sessions.sessionIdFor(clientContext?.clientId ?? null, nowMs());
54029
53249
  };
54030
53250
  const captureWithCurrentProperties = (event, sessionId) => {
54031
- if (!telemetryEnabled(env, currentState)) return;
53251
+ if (!telemetryEnabled(env, currentState, developerHost)) return;
54032
53252
  try {
54033
53253
  const settings = options.readThemeSettings();
54034
53254
  const { appearance_mode, ...themeSettings } = settings;
@@ -54037,7 +53257,7 @@ async function createTelemetryRuntime(options) {
54037
53257
  ...event,
54038
53258
  properties: { ...event.properties, ...settingsForEvent },
54039
53259
  personProperties: { ...pendingPersonProperties, ...event.personProperties, ...settings }
54040
- }, { state: currentState, env, sink, sessionId });
53260
+ }, { state: currentState, env, sink, sessionId, developerHost });
54041
53261
  pendingPersonProperties = null;
54042
53262
  } catch {
54043
53263
  }
@@ -54049,7 +53269,7 @@ async function createTelemetryRuntime(options) {
54049
53269
  },
54050
53270
  enabled: true,
54051
53271
  status() {
54052
- return telemetryStatus(env, currentState);
53272
+ return telemetryStatus(env, currentState, developerHost);
54053
53273
  },
54054
53274
  async disable() {
54055
53275
  if (!currentState.optedOut) {
@@ -54059,14 +53279,14 @@ async function createTelemetryRuntime(options) {
54059
53279
  });
54060
53280
  currentState = await setTelemetryOptedOut(options.storagePath, currentState, true);
54061
53281
  }
54062
- return telemetryStatus(env, currentState);
53282
+ return telemetryStatus(env, currentState, developerHost);
54063
53283
  },
54064
53284
  async enable() {
54065
53285
  if (currentState.optedOut) {
54066
53286
  currentState = await setTelemetryOptedOut(options.storagePath, currentState, false);
54067
53287
  pendingPersonProperties = { telemetry_opted_out: false };
54068
53288
  }
54069
- return telemetryStatus(env, currentState);
53289
+ return telemetryStatus(env, currentState, developerHost);
54070
53290
  },
54071
53291
  capture(event, clientContext) {
54072
53292
  captureWithCurrentProperties(event, sessionIdFor(clientContext));
@@ -54125,7 +53345,7 @@ function disabledTelemetryRuntime() {
54125
53345
 
54126
53346
  // ../server/src/updates/version.ts
54127
53347
  function readVersionStamp() {
54128
- if ("1.4.11".length > 0) return "1.4.11";
53348
+ if ("1.4.12".length > 0) return "1.4.12";
54129
53349
  return void 0;
54130
53350
  }
54131
53351
  function resolveUpdateReleaseVersion(env = process.env, stamp = readVersionStamp()) {
@@ -54667,8 +53887,8 @@ var Server = class {
54667
53887
  };
54668
53888
  };
54669
53889
  function readServerPackageVersion() {
54670
- if ("1.4.11".length > 0) {
54671
- return telemetryVersion("1.4.11");
53890
+ if ("1.4.12".length > 0) {
53891
+ return telemetryVersion("1.4.12");
54672
53892
  }
54673
53893
  const packageJsonPath = import_node_path13.default.resolve(import_node_path13.default.dirname((0, import_node_url.fileURLToPath)(import_meta.url)), "..", "package.json");
54674
53894
  if (!(0, import_node_fs11.existsSync)(packageJsonPath)) return telemetryVersion("0.0.0");
@@ -56810,6 +56030,7 @@ function assertPreservesPageMembership(existing, proposed, channelID) {
56810
56030
  var import_meta2 = {};
56811
56031
  var DAEMON_NAME = "com.television.server";
56812
56032
  var TELEMETRY_LAUNCH_MODE_ENV = "TELEVISION_LAUNCH_MODE";
56033
+ var DEVELOPER_MARKER = ".tv-developer";
56813
56034
  var SKILL_INSTALL_TELEMETRY_TIMEOUT_MS2 = 1e3;
56814
56035
  var MIN_CLIENT_PORT = 1;
56815
56036
  var MAX_PORT2 = 65535;
@@ -56819,6 +56040,7 @@ var CONFIG_KEYS2 = ["port", "listen", "auth", "installedByAgent"];
56819
56040
  var HTTP_UNAUTHORIZED_STATUS2 = 401;
56820
56041
  var HELP_POINTER = "Television ships bundled skills. The main skill is `television` \u2014 keep its guidance available for channels, lifecycle, the `tv` CLI, artifact workflow, and theming. Re-read it only if it is not already in context or you know the installed skill changed. Additional `tv-*` skills cover specialized artifact types. Install all bundled skills with `tv skills install <path>` (e.g. ~/.openclaw/skills) or `tv skills install -i`.";
56821
56042
  var PORT_ZERO_WARNING = "WARNING: config port 0 lets the operating system choose this server's port. Commands that contact this server must pass --port <port>, using the port from the startup URL.";
56043
+ var TELEMETRY_NOTICE = "Fully anonymized telemetry is enabled by default. Opt out: tv telemetry disable.";
56822
56044
  var TOKENLESS_WARNING = "WARNING: running without an auth token. Tokenless mode is insecure for typical setups \u2014 be sure you mean to run without authentication. Run `tv config set auth true` and restart to require the bearer token.";
56823
56045
  var SAFE_ARG_PATTERN = /^[A-Za-z0-9_./:@%+=,-]+$/;
56824
56046
  var RETIRED_SERVE_OPTIONS = ["--port", "--listen", "--auth", "--no-auth", "--installed-by-agent"];
@@ -56897,8 +56119,8 @@ function resolveVercelSkillsInstallerBin() {
56897
56119
  return localRequire.resolve("skills/bin/cli.mjs");
56898
56120
  }
56899
56121
  function readCLIVersion() {
56900
- if ("1.4.11".length > 0) {
56901
- return "1.4.11";
56122
+ if ("1.4.12".length > 0) {
56123
+ return "1.4.12";
56902
56124
  }
56903
56125
  const devPackageJsonPath = import_node_path20.default.join(getDevPackageDir(), "package.json");
56904
56126
  if (!(0, import_node_fs18.existsSync)(devPackageJsonPath)) {
@@ -56917,12 +56139,12 @@ function inspectTelemetryBuildConfig(env = {}, options = {}) {
56917
56139
  const project = resolvePostHogProject(env, options);
56918
56140
  return {
56919
56141
  telemetryBuild: true ? "production" : null,
56920
- telemetrySuppressionReason: telemetryEnvironmentSuppressionReason(env),
56921
- posthogProject: {
56142
+ telemetrySuppressionReason: telemetryEnvironmentSuppressionReason(env, options.developerHost ?? false),
56143
+ posthogProject: project ? {
56922
56144
  projectId: project.projectId,
56923
56145
  projectToken: project.projectToken,
56924
56146
  ingestionHost: project.ingestionHost
56925
- }
56147
+ } : null
56926
56148
  };
56927
56149
  }
56928
56150
  var FRONTMATTER_DELIMITER = "---\n";
@@ -57386,7 +56608,14 @@ function createProgram(env, invocation = { argv: [] }) {
57386
56608
  const serverURL = resolveServerURL(options.port);
57387
56609
  return env.createClient(serverURL, readAuthToken(resolveHome()));
57388
56610
  };
56611
+ const shouldDiscloseTelemetry = (home, telemetryEnv) => {
56612
+ if ((0, import_node_fs18.existsSync)(getTelemetryStatePath(home))) return false;
56613
+ const developerHome = telemetryEnv.TELEVISION_DEVELOPER_HOME || env.resolveHomeDir();
56614
+ const developerHost = (0, import_node_fs18.existsSync)(import_node_path20.default.join(developerHome, DEVELOPER_MARKER));
56615
+ return telemetryDestination(telemetryEnv, { optedOut: false }, developerHost) === "production";
56616
+ };
57389
56617
  const emitSkillInstallTelemetry = async (input) => {
56618
+ const disclose = shouldDiscloseTelemetry(input.home, process.env);
57390
56619
  await bestEffortWithinTimeout2(env.emitSkillInstalledTelemetry({
57391
56620
  storagePath: input.home,
57392
56621
  version: telemetryVersion(readCLIVersion()),
@@ -57394,6 +56623,7 @@ function createProgram(env, invocation = { argv: [] }) {
57394
56623
  ...input.installedByAgent === void 0 ? {} : { installedByAgent: input.installedByAgent },
57395
56624
  env: process.env
57396
56625
  }), SKILL_INSTALL_TELEMETRY_TIMEOUT_MS2);
56626
+ if (disclose) writeLine(env.stderr, TELEMETRY_NOTICE);
57397
56627
  };
57398
56628
  const uninstallPersistedService = async (home) => {
57399
56629
  const daemon = env.createDaemon();
@@ -57425,6 +56655,7 @@ function createProgram(env, invocation = { argv: [] }) {
57425
56655
  log(home, "server startup refused before binding", { argv, error: error48 });
57426
56656
  throw error48;
57427
56657
  }
56658
+ const disclose = shouldDiscloseTelemetry(home, daemonEnv);
57428
56659
  const token = settings.auth ? readOrCreateAuthToken(home) : null;
57429
56660
  const daemonOptions = { home, env: daemonEnv };
57430
56661
  const execStart = [process.execPath, ...buildDaemonServeArgs(home)];
@@ -57454,6 +56685,7 @@ function createProgram(env, invocation = { argv: [] }) {
57454
56685
  }
57455
56686
  const serverURLs = resolveBindAddresses(settings.listen).map((address) => buildServerURL(address, settings.port));
57456
56687
  writeConnectURLs(env.stdout, serverURLs, { installed: true, token });
56688
+ if (disclose) writeLine(env.stderr, TELEMETRY_NOTICE);
57457
56689
  };
57458
56690
  const serveInForeground = async (home, settings) => {
57459
56691
  const profile = resolveACPAgentProfile(process.env);
@@ -57467,6 +56699,7 @@ function createProgram(env, invocation = { argv: [] }) {
57467
56699
  if (settings.port === 0) {
57468
56700
  writeLine(env.stderr, PORT_ZERO_WARNING);
57469
56701
  }
56702
+ const disclose = resolveTelemetryLaunchMode(process.env) !== "daemon" && shouldDiscloseTelemetry(home, process.env);
57470
56703
  const onboardingContentPath = env.resolveOnboardingContentPath();
57471
56704
  const bundledThemesPath = env.resolveBundledThemesPath();
57472
56705
  const server = env.createServer({
@@ -57495,6 +56728,7 @@ function createProgram(env, invocation = { argv: [] }) {
57495
56728
  writeConnectURLs(env.stdout, serverURLs, {
57496
56729
  token: settings.auth ? server.getAuthToken() : null
57497
56730
  });
56731
+ if (disclose) writeLine(env.stderr, TELEMETRY_NOTICE);
57498
56732
  await new Promise((resolve, reject) => {
57499
56733
  let shuttingDown = false;
57500
56734
  const shutdown = async (signal) => {
@@ -57983,6 +57217,9 @@ on-finished/index.js:
57983
57217
  *)
57984
57218
 
57985
57219
  body-parser/lib/read.js:
57220
+ body-parser/lib/types/raw.js:
57221
+ body-parser/lib/types/text.js:
57222
+ body-parser/index.js:
57986
57223
  (*!
57987
57224
  * body-parser
57988
57225
  * Copyright(c) 2014-2015 Douglas Christopher Wilson
@@ -58021,27 +57258,6 @@ type-is/index.js:
58021
57258
  *)
58022
57259
 
58023
57260
  body-parser/lib/types/json.js:
58024
- (*!
58025
- * body-parser
58026
- * Copyright(c) 2014 Jonathan Ong
58027
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58028
- * MIT Licensed
58029
- *)
58030
-
58031
- body-parser/lib/types/raw.js:
58032
- (*!
58033
- * body-parser
58034
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58035
- * MIT Licensed
58036
- *)
58037
-
58038
- body-parser/lib/types/text.js:
58039
- (*!
58040
- * body-parser
58041
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58042
- * MIT Licensed
58043
- *)
58044
-
58045
57261
  body-parser/lib/types/urlencoded.js:
58046
57262
  (*!
58047
57263
  * body-parser
@@ -58050,13 +57266,6 @@ body-parser/lib/types/urlencoded.js:
58050
57266
  * MIT Licensed
58051
57267
  *)
58052
57268
 
58053
- body-parser/index.js:
58054
- (*!
58055
- * body-parser
58056
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58057
- * MIT Licensed
58058
- *)
58059
-
58060
57269
  merge-descriptors/index.js:
58061
57270
  (*!
58062
57271
  * merge-descriptors
@@ -58097,50 +57306,15 @@ finalhandler/index.js:
58097
57306
  *)
58098
57307
 
58099
57308
  express/lib/router/layer.js:
58100
- (*!
58101
- * express
58102
- * Copyright(c) 2009-2013 TJ Holowaychuk
58103
- * Copyright(c) 2013 Roman Shtylman
58104
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58105
- * MIT Licensed
58106
- *)
58107
-
58108
- methods/index.js:
58109
- (*!
58110
- * methods
58111
- * Copyright(c) 2013-2014 TJ Holowaychuk
58112
- * Copyright(c) 2015-2016 Douglas Christopher Wilson
58113
- * MIT Licensed
58114
- *)
58115
-
58116
57309
  express/lib/router/route.js:
58117
- (*!
58118
- * express
58119
- * Copyright(c) 2009-2013 TJ Holowaychuk
58120
- * Copyright(c) 2013 Roman Shtylman
58121
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58122
- * MIT Licensed
58123
- *)
58124
-
58125
57310
  express/lib/router/index.js:
58126
- (*!
58127
- * express
58128
- * Copyright(c) 2009-2013 TJ Holowaychuk
58129
- * Copyright(c) 2013 Roman Shtylman
58130
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58131
- * MIT Licensed
58132
- *)
58133
-
58134
57311
  express/lib/middleware/init.js:
58135
- (*!
58136
- * express
58137
- * Copyright(c) 2009-2013 TJ Holowaychuk
58138
- * Copyright(c) 2013 Roman Shtylman
58139
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58140
- * MIT Licensed
58141
- *)
58142
-
58143
57312
  express/lib/middleware/query.js:
57313
+ express/lib/view.js:
57314
+ express/lib/application.js:
57315
+ express/lib/request.js:
57316
+ express/lib/express.js:
57317
+ express/index.js:
58144
57318
  (*!
58145
57319
  * express
58146
57320
  * Copyright(c) 2009-2013 TJ Holowaychuk
@@ -58149,12 +57323,11 @@ express/lib/middleware/query.js:
58149
57323
  * MIT Licensed
58150
57324
  *)
58151
57325
 
58152
- express/lib/view.js:
57326
+ methods/index.js:
58153
57327
  (*!
58154
- * express
58155
- * Copyright(c) 2009-2013 TJ Holowaychuk
58156
- * Copyright(c) 2013 Roman Shtylman
58157
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
57328
+ * methods
57329
+ * Copyright(c) 2013-2014 TJ Holowaychuk
57330
+ * Copyright(c) 2015-2016 Douglas Christopher Wilson
58158
57331
  * MIT Licensed
58159
57332
  *)
58160
57333
 
@@ -58214,6 +57387,7 @@ proxy-addr/index.js:
58214
57387
  *)
58215
57388
 
58216
57389
  express/lib/utils.js:
57390
+ express/lib/response.js:
58217
57391
  (*!
58218
57392
  * express
58219
57393
  * Copyright(c) 2009-2013 TJ Holowaychuk
@@ -58221,15 +57395,6 @@ express/lib/utils.js:
58221
57395
  * MIT Licensed
58222
57396
  *)
58223
57397
 
58224
- express/lib/application.js:
58225
- (*!
58226
- * express
58227
- * Copyright(c) 2009-2013 TJ Holowaychuk
58228
- * Copyright(c) 2013 Roman Shtylman
58229
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58230
- * MIT Licensed
58231
- *)
58232
-
58233
57398
  negotiator/index.js:
58234
57399
  (*!
58235
57400
  * negotiator
@@ -58247,15 +57412,6 @@ accepts/index.js:
58247
57412
  * MIT Licensed
58248
57413
  *)
58249
57414
 
58250
- express/lib/request.js:
58251
- (*!
58252
- * express
58253
- * Copyright(c) 2009-2013 TJ Holowaychuk
58254
- * Copyright(c) 2013 Roman Shtylman
58255
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58256
- * MIT Licensed
58257
- *)
58258
-
58259
57415
  cookie/index.js:
58260
57416
  (*!
58261
57417
  * cookie
@@ -58271,14 +57427,6 @@ vary/index.js:
58271
57427
  * MIT Licensed
58272
57428
  *)
58273
57429
 
58274
- express/lib/response.js:
58275
- (*!
58276
- * express
58277
- * Copyright(c) 2009-2013 TJ Holowaychuk
58278
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58279
- * MIT Licensed
58280
- *)
58281
-
58282
57430
  serve-static/index.js:
58283
57431
  (*!
58284
57432
  * serve-static
@@ -58287,22 +57435,4 @@ serve-static/index.js:
58287
57435
  * Copyright(c) 2014-2016 Douglas Christopher Wilson
58288
57436
  * MIT Licensed
58289
57437
  *)
58290
-
58291
- express/lib/express.js:
58292
- (*!
58293
- * express
58294
- * Copyright(c) 2009-2013 TJ Holowaychuk
58295
- * Copyright(c) 2013 Roman Shtylman
58296
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58297
- * MIT Licensed
58298
- *)
58299
-
58300
- express/index.js:
58301
- (*!
58302
- * express
58303
- * Copyright(c) 2009-2013 TJ Holowaychuk
58304
- * Copyright(c) 2013 Roman Shtylman
58305
- * Copyright(c) 2014-2015 Douglas Christopher Wilson
58306
- * MIT Licensed
58307
- *)
58308
57438
  */