@warmhub/cli 0.54.0 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/wh.js +418 -1473
  2. package/package.json +2 -2
package/dist/wh.js CHANGED
@@ -4,7 +4,7 @@ import { createRequire } from "node:module";
4
4
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
5
5
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
6
6
 
7
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/symbols.js
7
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/symbols.js
8
8
  var require_symbols = __commonJS((exports, module) => {
9
9
  module.exports = {
10
10
  kClose: Symbol("close"),
@@ -75,7 +75,7 @@ var require_symbols = __commonJS((exports, module) => {
75
75
  };
76
76
  });
77
77
 
78
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/errors.js
78
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/errors.js
79
79
  var require_errors = __commonJS((exports, module) => {
80
80
  var kUndiciError = Symbol.for("undici.error.UND_ERR");
81
81
 
@@ -454,7 +454,7 @@ var require_errors = __commonJS((exports, module) => {
454
454
  };
455
455
  });
456
456
 
457
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/constants.js
457
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/constants.js
458
458
  var require_constants = __commonJS((exports, module) => {
459
459
  var headerNameLowerCasedRecord = {};
460
460
  var wellknownHeaderNames = [
@@ -566,7 +566,7 @@ var require_constants = __commonJS((exports, module) => {
566
566
  };
567
567
  });
568
568
 
569
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/tree.js
569
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/tree.js
570
570
  var require_tree = __commonJS((exports, module) => {
571
571
  var {
572
572
  wellknownHeaderNames,
@@ -678,7 +678,7 @@ var require_tree = __commonJS((exports, module) => {
678
678
  };
679
679
  });
680
680
 
681
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/util.js
681
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/util.js
682
682
  var require_util = __commonJS((exports, module) => {
683
683
  var assert2 = __require("node:assert");
684
684
  var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols();
@@ -1182,7 +1182,7 @@ var require_util = __commonJS((exports, module) => {
1182
1182
  };
1183
1183
  });
1184
1184
 
1185
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/diagnostics.js
1185
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/diagnostics.js
1186
1186
  var require_diagnostics = __commonJS((exports, module) => {
1187
1187
  var diagnosticsChannel = __require("node:diagnostics_channel");
1188
1188
  var util = __require("node:util");
@@ -1309,7 +1309,7 @@ var require_diagnostics = __commonJS((exports, module) => {
1309
1309
  };
1310
1310
  });
1311
1311
 
1312
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/request.js
1312
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/request.js
1313
1313
  var require_request = __commonJS((exports, module) => {
1314
1314
  var {
1315
1315
  InvalidArgumentError,
@@ -1640,7 +1640,7 @@ var require_request = __commonJS((exports, module) => {
1640
1640
  module.exports = Request;
1641
1641
  });
1642
1642
 
1643
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/dispatcher.js
1643
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/dispatcher.js
1644
1644
  var require_dispatcher = __commonJS((exports, module) => {
1645
1645
  var EventEmitter = __require("node:events");
1646
1646
 
@@ -1694,7 +1694,7 @@ var require_dispatcher = __commonJS((exports, module) => {
1694
1694
  module.exports = Dispatcher;
1695
1695
  });
1696
1696
 
1697
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/dispatcher-base.js
1697
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/dispatcher-base.js
1698
1698
  var require_dispatcher_base = __commonJS((exports, module) => {
1699
1699
  var Dispatcher = require_dispatcher();
1700
1700
  var {
@@ -1719,6 +1719,7 @@ var require_dispatcher_base = __commonJS((exports, module) => {
1719
1719
  }
1720
1720
  get webSocketOptions() {
1721
1721
  return {
1722
+ maxFragments: this[kWebSocketOptions].maxFragments ?? 131072,
1722
1723
  maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024
1723
1724
  };
1724
1725
  }
@@ -1857,7 +1858,7 @@ var require_dispatcher_base = __commonJS((exports, module) => {
1857
1858
  module.exports = DispatcherBase;
1858
1859
  });
1859
1860
 
1860
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/util/timers.js
1861
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/util/timers.js
1861
1862
  var require_timers = __commonJS((exports, module) => {
1862
1863
  var fastNow = 0;
1863
1864
  var RESOLUTION_MS = 1000;
@@ -1971,7 +1972,7 @@ var require_timers = __commonJS((exports, module) => {
1971
1972
  };
1972
1973
  });
1973
1974
 
1974
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/core/connect.js
1975
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/core/connect.js
1975
1976
  var require_connect = __commonJS((exports, module) => {
1976
1977
  var net = __require("node:net");
1977
1978
  var assert2 = __require("node:assert");
@@ -2143,7 +2144,7 @@ var require_connect = __commonJS((exports, module) => {
2143
2144
  module.exports = buildConnector;
2144
2145
  });
2145
2146
 
2146
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/llhttp/utils.js
2147
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/llhttp/utils.js
2147
2148
  var require_utils = __commonJS((exports) => {
2148
2149
  Object.defineProperty(exports, "__esModule", { value: true });
2149
2150
  exports.enumToMap = undefined;
@@ -2160,7 +2161,7 @@ var require_utils = __commonJS((exports) => {
2160
2161
  exports.enumToMap = enumToMap;
2161
2162
  });
2162
2163
 
2163
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/llhttp/constants.js
2164
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/llhttp/constants.js
2164
2165
  var require_constants2 = __commonJS((exports) => {
2165
2166
  Object.defineProperty(exports, "__esModule", { value: true });
2166
2167
  exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = undefined;
@@ -2476,19 +2477,19 @@ var require_constants2 = __commonJS((exports) => {
2476
2477
  };
2477
2478
  });
2478
2479
 
2479
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/llhttp/llhttp-wasm.js
2480
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/llhttp/llhttp-wasm.js
2480
2481
  var require_llhttp_wasm = __commonJS((exports, module) => {
2481
2482
  var { Buffer: Buffer3 } = __require("node:buffer");
2482
2483
  module.exports = Buffer3.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv", "base64");
2483
2484
  });
2484
2485
 
2485
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
2486
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js
2486
2487
  var require_llhttp_simd_wasm = __commonJS((exports, module) => {
2487
2488
  var { Buffer: Buffer3 } = __require("node:buffer");
2488
2489
  module.exports = Buffer3.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64");
2489
2490
  });
2490
2491
 
2491
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/constants.js
2492
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/constants.js
2492
2493
  var require_constants3 = __commonJS((exports, module) => {
2493
2494
  var corsSafeListedMethods = ["GET", "HEAD", "POST"];
2494
2495
  var corsSafeListedMethodsSet = new Set(corsSafeListedMethods);
@@ -2657,7 +2658,7 @@ var require_constants3 = __commonJS((exports, module) => {
2657
2658
  };
2658
2659
  });
2659
2660
 
2660
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/global.js
2661
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/global.js
2661
2662
  var require_global = __commonJS((exports, module) => {
2662
2663
  var globalOrigin = Symbol.for("undici.globalOrigin.1");
2663
2664
  function getGlobalOrigin() {
@@ -2690,7 +2691,7 @@ var require_global = __commonJS((exports, module) => {
2690
2691
  };
2691
2692
  });
2692
2693
 
2693
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/data-url.js
2694
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/data-url.js
2694
2695
  var require_data_url = __commonJS((exports, module) => {
2695
2696
  var assert2 = __require("node:assert");
2696
2697
  var encoder = new TextEncoder;
@@ -3003,7 +3004,7 @@ var require_data_url = __commonJS((exports, module) => {
3003
3004
  };
3004
3005
  });
3005
3006
 
3006
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/webidl.js
3007
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/webidl.js
3007
3008
  var require_webidl = __commonJS((exports, module) => {
3008
3009
  var { types, inspect } = __require("node:util");
3009
3010
  var { markAsUncloneable } = __require("node:worker_threads");
@@ -3409,7 +3410,7 @@ var require_webidl = __commonJS((exports, module) => {
3409
3410
  };
3410
3411
  });
3411
3412
 
3412
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/util.js
3413
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/util.js
3413
3414
  var require_util2 = __commonJS((exports, module) => {
3414
3415
  var { Transform } = __require("node:stream");
3415
3416
  var zlib = __require("node:zlib");
@@ -4221,7 +4222,7 @@ var require_util2 = __commonJS((exports, module) => {
4221
4222
  };
4222
4223
  });
4223
4224
 
4224
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/symbols.js
4225
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/symbols.js
4225
4226
  var require_symbols2 = __commonJS((exports, module) => {
4226
4227
  module.exports = {
4227
4228
  kUrl: Symbol("url"),
@@ -4232,7 +4233,7 @@ var require_symbols2 = __commonJS((exports, module) => {
4232
4233
  };
4233
4234
  });
4234
4235
 
4235
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/file.js
4236
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/file.js
4236
4237
  var require_file = __commonJS((exports, module) => {
4237
4238
  var { Blob: Blob2, File } = __require("node:buffer");
4238
4239
  var { kState } = require_symbols2();
@@ -4293,7 +4294,7 @@ var require_file = __commonJS((exports, module) => {
4293
4294
  module.exports = { FileLike, isFileLike };
4294
4295
  });
4295
4296
 
4296
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/formdata.js
4297
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/formdata.js
4297
4298
  var require_formdata = __commonJS((exports, module) => {
4298
4299
  var { isBlobLike, iteratorMixin } = require_util2();
4299
4300
  var { kState } = require_symbols2();
@@ -4433,7 +4434,7 @@ var require_formdata = __commonJS((exports, module) => {
4433
4434
  module.exports = { FormData: FormData2, makeEntry };
4434
4435
  });
4435
4436
 
4436
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/formdata-parser.js
4437
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/formdata-parser.js
4437
4438
  var require_formdata_parser = __commonJS((exports, module) => {
4438
4439
  var { isUSVString, bufferToLowerCasedHeaderName } = require_util();
4439
4440
  var { utf8DecodeBytes } = require_util2();
@@ -4661,7 +4662,7 @@ var require_formdata_parser = __commonJS((exports, module) => {
4661
4662
  };
4662
4663
  });
4663
4664
 
4664
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/body.js
4665
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/body.js
4665
4666
  var require_body = __commonJS((exports, module) => {
4666
4667
  var util = require_util();
4667
4668
  var {
@@ -4968,7 +4969,7 @@ ${normalizeLinefeeds(value)}\r
4968
4969
  };
4969
4970
  });
4970
4971
 
4971
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/client-h1.js
4972
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/client-h1.js
4972
4973
  var require_client_h1 = __commonJS((exports, module) => {
4973
4974
  var assert2 = __require("node:assert");
4974
4975
  var util = require_util();
@@ -5024,6 +5025,9 @@ var require_client_h1 = __commonJS((exports, module) => {
5024
5025
  var FastBuffer = Buffer[Symbol.species];
5025
5026
  var addListener = util.addListener;
5026
5027
  var removeAllListeners = util.removeAllListeners;
5028
+ var kIdleSocketValidation = Symbol("kIdleSocketValidation");
5029
+ var kIdleSocketValidationTimeout = Symbol("kIdleSocketValidationTimeout");
5030
+ var kSocketUsed = Symbol("kSocketUsed");
5027
5031
  var extractBody;
5028
5032
  async function lazyllhttp() {
5029
5033
  const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : undefined;
@@ -5185,24 +5189,55 @@ var require_client_h1 = __commonJS((exports, module) => {
5185
5189
  currentBufferRef = null;
5186
5190
  }
5187
5191
  const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr;
5188
- if (ret === constants.ERROR.PAUSED_UPGRADE) {
5189
- this.onUpgrade(data.slice(offset));
5190
- } else if (ret === constants.ERROR.PAUSED) {
5191
- this.paused = true;
5192
- socket.unshift(data.slice(offset));
5193
- } else if (ret !== constants.ERROR.OK) {
5194
- const ptr = llhttp.llhttp_get_error_reason(this.ptr);
5195
- let message = "";
5196
- if (ptr) {
5197
- const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
5198
- message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
5192
+ if (ret !== constants.ERROR.OK) {
5193
+ const body = data.subarray(offset);
5194
+ if (ret === constants.ERROR.PAUSED_UPGRADE) {
5195
+ this.onUpgrade(body);
5196
+ } else if (ret === constants.ERROR.PAUSED) {
5197
+ this.paused = true;
5198
+ socket.unshift(body);
5199
+ } else {
5200
+ throw this.createError(ret, body);
5199
5201
  }
5200
- throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset));
5201
5202
  }
5202
5203
  } catch (err) {
5203
5204
  util.destroy(socket, err);
5204
5205
  }
5205
5206
  }
5207
+ finish() {
5208
+ assert2(currentParser === null);
5209
+ assert2(this.ptr != null);
5210
+ assert2(!this.paused);
5211
+ const { llhttp } = this;
5212
+ let ret;
5213
+ try {
5214
+ currentParser = this;
5215
+ ret = llhttp.llhttp_finish(this.ptr);
5216
+ } finally {
5217
+ currentParser = null;
5218
+ }
5219
+ if (ret === constants.ERROR.OK) {
5220
+ return null;
5221
+ }
5222
+ if (ret === constants.ERROR.PAUSED || ret === constants.ERROR.PAUSED_UPGRADE) {
5223
+ this.paused = true;
5224
+ return null;
5225
+ }
5226
+ return this.createError(ret, EMPTY_BUF);
5227
+ }
5228
+ createError(ret, data) {
5229
+ const { llhttp, contentLength, bytesRead } = this;
5230
+ if (contentLength && bytesRead !== parseInt(contentLength, 10)) {
5231
+ return new ResponseContentLengthMismatchError;
5232
+ }
5233
+ const ptr = llhttp.llhttp_get_error_reason(this.ptr);
5234
+ let message = "";
5235
+ if (ptr) {
5236
+ const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0);
5237
+ message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")";
5238
+ }
5239
+ return new HTTPParserError(message, constants.ERROR[ret], data);
5240
+ }
5206
5241
  destroy() {
5207
5242
  assert2(this.ptr != null);
5208
5243
  assert2(currentParser == null);
@@ -5222,6 +5257,10 @@ var require_client_h1 = __commonJS((exports, module) => {
5222
5257
  if (socket.destroyed) {
5223
5258
  return -1;
5224
5259
  }
5260
+ if (client[kRunning] === 0) {
5261
+ util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
5262
+ return -1;
5263
+ }
5225
5264
  const request = client[kQueue][client[kRunningIdx]];
5226
5265
  if (!request) {
5227
5266
  return -1;
@@ -5301,6 +5340,10 @@ var require_client_h1 = __commonJS((exports, module) => {
5301
5340
  if (socket.destroyed) {
5302
5341
  return -1;
5303
5342
  }
5343
+ if (client[kRunning] === 0) {
5344
+ util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket)));
5345
+ return -1;
5346
+ }
5304
5347
  const request = client[kQueue][client[kRunningIdx]];
5305
5348
  if (!request) {
5306
5349
  return -1;
@@ -5422,6 +5465,7 @@ var require_client_h1 = __commonJS((exports, module) => {
5422
5465
  }
5423
5466
  request.onComplete(headers);
5424
5467
  client[kQueue][client[kRunningIdx]++] = null;
5468
+ socket[kSocketUsed] = true;
5425
5469
  if (socket[kWriting]) {
5426
5470
  assert2(client[kRunning] === 0);
5427
5471
  util.destroy(socket, new InformationalError("reset"));
@@ -5465,12 +5509,19 @@ var require_client_h1 = __commonJS((exports, module) => {
5465
5509
  socket[kWriting] = false;
5466
5510
  socket[kReset] = false;
5467
5511
  socket[kBlocking] = false;
5512
+ socket[kIdleSocketValidation] = 0;
5513
+ socket[kIdleSocketValidationTimeout] = null;
5514
+ socket[kSocketUsed] = false;
5468
5515
  socket[kParser] = new Parser(client, socket, llhttpInstance);
5469
5516
  addListener(socket, "error", function(err) {
5470
5517
  assert2(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID");
5471
5518
  const parser = this[kParser];
5472
5519
  if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) {
5473
- parser.onMessageComplete();
5520
+ const parserErr = parser.finish();
5521
+ if (parserErr) {
5522
+ this[kError] = parserErr;
5523
+ this[kClient][kOnError](parserErr);
5524
+ }
5474
5525
  return;
5475
5526
  }
5476
5527
  this[kError] = err;
@@ -5485,7 +5536,10 @@ var require_client_h1 = __commonJS((exports, module) => {
5485
5536
  addListener(socket, "end", function() {
5486
5537
  const parser = this[kParser];
5487
5538
  if (parser.statusCode && !parser.shouldKeepAlive) {
5488
- parser.onMessageComplete();
5539
+ const parserErr = parser.finish();
5540
+ if (parserErr) {
5541
+ util.destroy(this, parserErr);
5542
+ }
5489
5543
  return;
5490
5544
  }
5491
5545
  util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this)));
@@ -5493,9 +5547,10 @@ var require_client_h1 = __commonJS((exports, module) => {
5493
5547
  addListener(socket, "close", function() {
5494
5548
  const client2 = this[kClient];
5495
5549
  const parser = this[kParser];
5550
+ clearIdleSocketValidation(this);
5496
5551
  if (parser) {
5497
5552
  if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) {
5498
- parser.onMessageComplete();
5553
+ this[kError] = parser.finish() || this[kError];
5499
5554
  }
5500
5555
  this[kParser].destroy();
5501
5556
  this[kParser] = null;
@@ -5544,7 +5599,7 @@ var require_client_h1 = __commonJS((exports, module) => {
5544
5599
  return socket.destroyed;
5545
5600
  },
5546
5601
  busy(request) {
5547
- if (socket[kWriting] || socket[kReset] || socket[kBlocking]) {
5602
+ if (socket[kWriting] || socket[kReset] || socket[kBlocking] || socket[kIdleSocketValidation] === 1) {
5548
5603
  return true;
5549
5604
  }
5550
5605
  if (request) {
@@ -5562,6 +5617,24 @@ var require_client_h1 = __commonJS((exports, module) => {
5562
5617
  }
5563
5618
  };
5564
5619
  }
5620
+ function clearIdleSocketValidation(socket) {
5621
+ if (socket[kIdleSocketValidationTimeout]) {
5622
+ clearTimeout(socket[kIdleSocketValidationTimeout]);
5623
+ socket[kIdleSocketValidationTimeout] = null;
5624
+ }
5625
+ socket[kIdleSocketValidation] = 0;
5626
+ }
5627
+ function scheduleIdleSocketValidation(client, socket) {
5628
+ socket[kIdleSocketValidation] = 1;
5629
+ socket[kIdleSocketValidationTimeout] = setTimeout(() => {
5630
+ socket[kIdleSocketValidationTimeout] = null;
5631
+ socket[kIdleSocketValidation] = 2;
5632
+ if (client[kSocket] === socket && !socket.destroyed) {
5633
+ client[kResume]();
5634
+ }
5635
+ }, 0);
5636
+ socket[kIdleSocketValidationTimeout].unref?.();
5637
+ }
5565
5638
  function resumeH1(client) {
5566
5639
  const socket = client[kSocket];
5567
5640
  if (socket && !socket.destroyed) {
@@ -5574,6 +5647,29 @@ var require_client_h1 = __commonJS((exports, module) => {
5574
5647
  socket.ref();
5575
5648
  socket[kNoRef] = false;
5576
5649
  }
5650
+ if (client[kRunning] === 0 && client[kPending] > 0 && socket[kSocketUsed]) {
5651
+ if (socket[kIdleSocketValidation] === 0) {
5652
+ scheduleIdleSocketValidation(client, socket);
5653
+ socket[kParser].readMore();
5654
+ if (socket.destroyed) {
5655
+ return;
5656
+ }
5657
+ return;
5658
+ }
5659
+ if (socket[kIdleSocketValidation] === 1) {
5660
+ socket[kParser].readMore();
5661
+ if (socket.destroyed) {
5662
+ return;
5663
+ }
5664
+ return;
5665
+ }
5666
+ }
5667
+ if (client[kRunning] === 0) {
5668
+ socket[kParser].readMore();
5669
+ if (socket.destroyed) {
5670
+ return;
5671
+ }
5672
+ }
5577
5673
  if (client[kSize] === 0) {
5578
5674
  if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) {
5579
5675
  socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE);
@@ -5626,6 +5722,7 @@ var require_client_h1 = __commonJS((exports, module) => {
5626
5722
  process.emitWarning(new RequestContentLengthMismatchError);
5627
5723
  }
5628
5724
  const socket = client[kSocket];
5725
+ clearIdleSocketValidation(socket);
5629
5726
  const abort = (err) => {
5630
5727
  if (request.aborted || request.completed) {
5631
5728
  return;
@@ -5986,7 +6083,7 @@ ${len.toString(16)}\r
5986
6083
  module.exports = connectH1;
5987
6084
  });
5988
6085
 
5989
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/client-h2.js
6086
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/client-h2.js
5990
6087
  var require_client_h2 = __commonJS((exports, module) => {
5991
6088
  var assert2 = __require("node:assert");
5992
6089
  var { pipeline } = __require("node:stream");
@@ -6467,7 +6564,7 @@ var require_client_h2 = __commonJS((exports, module) => {
6467
6564
  module.exports = connectH2;
6468
6565
  });
6469
6566
 
6470
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/handler/redirect-handler.js
6567
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/handler/redirect-handler.js
6471
6568
  var require_redirect_handler = __commonJS((exports, module) => {
6472
6569
  var util = require_util();
6473
6570
  var { kBodyUsed } = require_symbols();
@@ -6624,7 +6721,7 @@ var require_redirect_handler = __commonJS((exports, module) => {
6624
6721
  module.exports = RedirectHandler;
6625
6722
  });
6626
6723
 
6627
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/interceptor/redirect-interceptor.js
6724
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/interceptor/redirect-interceptor.js
6628
6725
  var require_redirect_interceptor = __commonJS((exports, module) => {
6629
6726
  var RedirectHandler = require_redirect_handler();
6630
6727
  function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) {
@@ -6643,7 +6740,7 @@ var require_redirect_interceptor = __commonJS((exports, module) => {
6643
6740
  module.exports = createRedirectInterceptor;
6644
6741
  });
6645
6742
 
6646
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/client.js
6743
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/client.js
6647
6744
  var require_client = __commonJS((exports, module) => {
6648
6745
  var assert2 = __require("node:assert");
6649
6746
  var net = __require("node:net");
@@ -7131,7 +7228,7 @@ var require_client = __commonJS((exports, module) => {
7131
7228
  module.exports = Client;
7132
7229
  });
7133
7230
 
7134
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/fixed-queue.js
7231
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/fixed-queue.js
7135
7232
  var require_fixed_queue = __commonJS((exports, module) => {
7136
7233
  var kSize = 2048;
7137
7234
  var kMask = kSize - 1;
@@ -7186,7 +7283,7 @@ var require_fixed_queue = __commonJS((exports, module) => {
7186
7283
  };
7187
7284
  });
7188
7285
 
7189
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/pool-stats.js
7286
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/pool-stats.js
7190
7287
  var require_pool_stats = __commonJS((exports, module) => {
7191
7288
  var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols();
7192
7289
  var kPool = Symbol("pool");
@@ -7217,7 +7314,7 @@ var require_pool_stats = __commonJS((exports, module) => {
7217
7314
  module.exports = PoolStats;
7218
7315
  });
7219
7316
 
7220
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/pool-base.js
7317
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/pool-base.js
7221
7318
  var require_pool_base = __commonJS((exports, module) => {
7222
7319
  var DispatcherBase = require_dispatcher_base();
7223
7320
  var FixedQueue = require_fixed_queue();
@@ -7370,7 +7467,7 @@ var require_pool_base = __commonJS((exports, module) => {
7370
7467
  };
7371
7468
  });
7372
7469
 
7373
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/pool.js
7470
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/pool.js
7374
7471
  var require_pool = __commonJS((exports, module) => {
7375
7472
  var {
7376
7473
  PoolBase,
@@ -7459,7 +7556,7 @@ var require_pool = __commonJS((exports, module) => {
7459
7556
  module.exports = Pool;
7460
7557
  });
7461
7558
 
7462
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/balanced-pool.js
7559
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/balanced-pool.js
7463
7560
  var require_balanced_pool = __commonJS((exports, module) => {
7464
7561
  var {
7465
7562
  BalancedPoolMissingUpstreamError,
@@ -7602,7 +7699,7 @@ var require_balanced_pool = __commonJS((exports, module) => {
7602
7699
  module.exports = BalancedPool;
7603
7700
  });
7604
7701
 
7605
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/agent.js
7702
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/agent.js
7606
7703
  var require_agent = __commonJS((exports, module) => {
7607
7704
  var { InvalidArgumentError } = require_errors();
7608
7705
  var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols();
@@ -7697,7 +7794,7 @@ var require_agent = __commonJS((exports, module) => {
7697
7794
  module.exports = Agent;
7698
7795
  });
7699
7796
 
7700
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/proxy-agent.js
7797
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/proxy-agent.js
7701
7798
  var require_proxy_agent = __commonJS((exports, module) => {
7702
7799
  var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols();
7703
7800
  var { URL: URL2 } = __require("node:url");
@@ -7912,7 +8009,7 @@ var require_proxy_agent = __commonJS((exports, module) => {
7912
8009
  module.exports = ProxyAgent;
7913
8010
  });
7914
8011
 
7915
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
8012
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js
7916
8013
  var require_env_http_proxy_agent = __commonJS((exports, module) => {
7917
8014
  var DispatcherBase = require_dispatcher_base();
7918
8015
  var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols();
@@ -8046,7 +8143,7 @@ var require_env_http_proxy_agent = __commonJS((exports, module) => {
8046
8143
  module.exports = EnvHttpProxyAgent;
8047
8144
  });
8048
8145
 
8049
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/handler/retry-handler.js
8146
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/handler/retry-handler.js
8050
8147
  var require_retry_handler = __commonJS((exports, module) => {
8051
8148
  var assert2 = __require("node:assert");
8052
8149
  var { kRetryHandlerDefaultRetry } = require_symbols();
@@ -8303,7 +8400,7 @@ var require_retry_handler = __commonJS((exports, module) => {
8303
8400
  module.exports = RetryHandler;
8304
8401
  });
8305
8402
 
8306
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/dispatcher/retry-agent.js
8403
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/dispatcher/retry-agent.js
8307
8404
  var require_retry_agent = __commonJS((exports, module) => {
8308
8405
  var Dispatcher = require_dispatcher();
8309
8406
  var RetryHandler = require_retry_handler();
@@ -8336,7 +8433,7 @@ var require_retry_agent = __commonJS((exports, module) => {
8336
8433
  module.exports = RetryAgent;
8337
8434
  });
8338
8435
 
8339
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/readable.js
8436
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/readable.js
8340
8437
  var require_readable = __commonJS((exports, module) => {
8341
8438
  var assert2 = __require("node:assert");
8342
8439
  var { Readable } = __require("node:stream");
@@ -8616,7 +8713,7 @@ var require_readable = __commonJS((exports, module) => {
8616
8713
  module.exports = { Readable: BodyReadable, chunksDecode };
8617
8714
  });
8618
8715
 
8619
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/util.js
8716
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/util.js
8620
8717
  var require_util3 = __commonJS((exports, module) => {
8621
8718
  var assert2 = __require("node:assert");
8622
8719
  var {
@@ -8674,7 +8771,7 @@ var require_util3 = __commonJS((exports, module) => {
8674
8771
  };
8675
8772
  });
8676
8773
 
8677
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/api-request.js
8774
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/api-request.js
8678
8775
  var require_api_request = __commonJS((exports, module) => {
8679
8776
  var assert2 = __require("node:assert");
8680
8777
  var { Readable } = require_readable();
@@ -8854,7 +8951,7 @@ var require_api_request = __commonJS((exports, module) => {
8854
8951
  module.exports.RequestHandler = RequestHandler;
8855
8952
  });
8856
8953
 
8857
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/abort-signal.js
8954
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/abort-signal.js
8858
8955
  var require_abort_signal = __commonJS((exports, module) => {
8859
8956
  var { addAbortListener } = require_util();
8860
8957
  var { RequestAbortedError } = require_errors();
@@ -8903,7 +9000,7 @@ var require_abort_signal = __commonJS((exports, module) => {
8903
9000
  };
8904
9001
  });
8905
9002
 
8906
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/api-stream.js
9003
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/api-stream.js
8907
9004
  var require_api_stream = __commonJS((exports, module) => {
8908
9005
  var assert2 = __require("node:assert");
8909
9006
  var { finished, PassThrough } = __require("node:stream");
@@ -9070,7 +9167,7 @@ var require_api_stream = __commonJS((exports, module) => {
9070
9167
  module.exports = stream;
9071
9168
  });
9072
9169
 
9073
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/api-pipeline.js
9170
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/api-pipeline.js
9074
9171
  var require_api_pipeline = __commonJS((exports, module) => {
9075
9172
  var {
9076
9173
  Readable,
@@ -9270,7 +9367,7 @@ var require_api_pipeline = __commonJS((exports, module) => {
9270
9367
  module.exports = pipeline;
9271
9368
  });
9272
9369
 
9273
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/api-upgrade.js
9370
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/api-upgrade.js
9274
9371
  var require_api_upgrade = __commonJS((exports, module) => {
9275
9372
  var { InvalidArgumentError, SocketError } = require_errors();
9276
9373
  var { AsyncResource } = __require("node:async_hooks");
@@ -9360,7 +9457,7 @@ var require_api_upgrade = __commonJS((exports, module) => {
9360
9457
  module.exports = upgrade;
9361
9458
  });
9362
9459
 
9363
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/api-connect.js
9460
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/api-connect.js
9364
9461
  var require_api_connect = __commonJS((exports, module) => {
9365
9462
  var assert2 = __require("node:assert");
9366
9463
  var { AsyncResource } = __require("node:async_hooks");
@@ -9448,7 +9545,7 @@ var require_api_connect = __commonJS((exports, module) => {
9448
9545
  module.exports = connect;
9449
9546
  });
9450
9547
 
9451
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/api/index.js
9548
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/api/index.js
9452
9549
  var require_api = __commonJS((exports, module) => {
9453
9550
  exports.request = require_api_request();
9454
9551
  exports.stream = require_api_stream();
@@ -9457,7 +9554,7 @@ var require_api = __commonJS((exports, module) => {
9457
9554
  exports.connect = require_api_connect();
9458
9555
  });
9459
9556
 
9460
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-errors.js
9557
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-errors.js
9461
9558
  var require_mock_errors = __commonJS((exports, module) => {
9462
9559
  var { UndiciError } = require_errors();
9463
9560
  var kMockNotMatchedError = Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");
@@ -9480,7 +9577,7 @@ var require_mock_errors = __commonJS((exports, module) => {
9480
9577
  };
9481
9578
  });
9482
9579
 
9483
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-symbols.js
9580
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-symbols.js
9484
9581
  var require_mock_symbols = __commonJS((exports, module) => {
9485
9582
  module.exports = {
9486
9583
  kAgent: Symbol("agent"),
@@ -9505,7 +9602,7 @@ var require_mock_symbols = __commonJS((exports, module) => {
9505
9602
  };
9506
9603
  });
9507
9604
 
9508
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-utils.js
9605
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-utils.js
9509
9606
  var require_mock_utils = __commonJS((exports, module) => {
9510
9607
  var { MockNotMatchedError } = require_mock_errors();
9511
9608
  var {
@@ -9795,7 +9892,7 @@ var require_mock_utils = __commonJS((exports, module) => {
9795
9892
  };
9796
9893
  });
9797
9894
 
9798
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-interceptor.js
9895
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-interceptor.js
9799
9896
  var require_mock_interceptor = __commonJS((exports, module) => {
9800
9897
  var { getResponseData, buildKey, addMockDispatch } = require_mock_utils();
9801
9898
  var {
@@ -9932,7 +10029,7 @@ var require_mock_interceptor = __commonJS((exports, module) => {
9932
10029
  exports.MockScope = MockScope;
9933
10030
  });
9934
10031
 
9935
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-client.js
10032
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-client.js
9936
10033
  var require_mock_client = __commonJS((exports, module) => {
9937
10034
  var { promisify: promisify7 } = __require("node:util");
9938
10035
  var Client = require_client();
@@ -9980,7 +10077,7 @@ var require_mock_client = __commonJS((exports, module) => {
9980
10077
  module.exports = MockClient;
9981
10078
  });
9982
10079
 
9983
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-pool.js
10080
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-pool.js
9984
10081
  var require_mock_pool = __commonJS((exports, module) => {
9985
10082
  var { promisify: promisify7 } = __require("node:util");
9986
10083
  var Pool = require_pool();
@@ -10028,7 +10125,7 @@ var require_mock_pool = __commonJS((exports, module) => {
10028
10125
  module.exports = MockPool;
10029
10126
  });
10030
10127
 
10031
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/pluralizer.js
10128
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/pluralizer.js
10032
10129
  var require_pluralizer = __commonJS((exports, module) => {
10033
10130
  var singulars = {
10034
10131
  pronoun: "it",
@@ -10056,7 +10153,7 @@ var require_pluralizer = __commonJS((exports, module) => {
10056
10153
  };
10057
10154
  });
10058
10155
 
10059
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js
10156
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js
10060
10157
  var require_pending_interceptors_formatter = __commonJS((exports, module) => {
10061
10158
  var { Transform } = __require("node:stream");
10062
10159
  var { Console } = __require("node:console");
@@ -10092,7 +10189,7 @@ var require_pending_interceptors_formatter = __commonJS((exports, module) => {
10092
10189
  };
10093
10190
  });
10094
10191
 
10095
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/mock/mock-agent.js
10192
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/mock/mock-agent.js
10096
10193
  var require_mock_agent = __commonJS((exports, module) => {
10097
10194
  var { kClients } = require_symbols();
10098
10195
  var Agent = require_agent();
@@ -10218,7 +10315,7 @@ ${pendingInterceptorsFormatter.format(pending)}
10218
10315
  module.exports = MockAgent;
10219
10316
  });
10220
10317
 
10221
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/global.js
10318
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/global.js
10222
10319
  var require_global2 = __commonJS((exports, module) => {
10223
10320
  var globalDispatcher = Symbol.for("undici.globalDispatcher.1");
10224
10321
  var { InvalidArgumentError } = require_errors();
@@ -10246,7 +10343,7 @@ var require_global2 = __commonJS((exports, module) => {
10246
10343
  };
10247
10344
  });
10248
10345
 
10249
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/handler/decorator-handler.js
10346
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/handler/decorator-handler.js
10250
10347
  var require_decorator_handler = __commonJS((exports, module) => {
10251
10348
  module.exports = class DecoratorHandler {
10252
10349
  #handler;
@@ -10283,7 +10380,7 @@ var require_decorator_handler = __commonJS((exports, module) => {
10283
10380
  };
10284
10381
  });
10285
10382
 
10286
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/interceptor/redirect.js
10383
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/interceptor/redirect.js
10287
10384
  var require_redirect = __commonJS((exports, module) => {
10288
10385
  var RedirectHandler = require_redirect_handler();
10289
10386
  module.exports = (opts) => {
@@ -10301,7 +10398,7 @@ var require_redirect = __commonJS((exports, module) => {
10301
10398
  };
10302
10399
  });
10303
10400
 
10304
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/interceptor/retry.js
10401
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/interceptor/retry.js
10305
10402
  var require_retry = __commonJS((exports, module) => {
10306
10403
  var RetryHandler = require_retry_handler();
10307
10404
  module.exports = (globalOpts) => {
@@ -10316,7 +10413,7 @@ var require_retry = __commonJS((exports, module) => {
10316
10413
  };
10317
10414
  });
10318
10415
 
10319
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/interceptor/dump.js
10416
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/interceptor/dump.js
10320
10417
  var require_dump = __commonJS((exports, module) => {
10321
10418
  var util = require_util();
10322
10419
  var { InvalidArgumentError, RequestAbortedError } = require_errors();
@@ -10401,7 +10498,7 @@ var require_dump = __commonJS((exports, module) => {
10401
10498
  module.exports = createDumpInterceptor;
10402
10499
  });
10403
10500
 
10404
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/interceptor/dns.js
10501
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/interceptor/dns.js
10405
10502
  var require_dns = __commonJS((exports, module) => {
10406
10503
  var { isIP } = __require("node:net");
10407
10504
  var { lookup } = __require("node:dns");
@@ -10663,7 +10760,7 @@ var require_dns = __commonJS((exports, module) => {
10663
10760
  };
10664
10761
  });
10665
10762
 
10666
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/headers.js
10763
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/headers.js
10667
10764
  var require_headers = __commonJS((exports, module) => {
10668
10765
  var { kConstruct } = require_symbols();
10669
10766
  var { kEnumerableProperty } = require_util();
@@ -11070,7 +11167,7 @@ var require_headers = __commonJS((exports, module) => {
11070
11167
  };
11071
11168
  });
11072
11169
 
11073
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/response.js
11170
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/response.js
11074
11171
  var require_response = __commonJS((exports, module) => {
11075
11172
  var { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers();
11076
11173
  var { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body();
@@ -11440,7 +11537,7 @@ var require_response = __commonJS((exports, module) => {
11440
11537
  };
11441
11538
  });
11442
11539
 
11443
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/dispatcher-weakref.js
11540
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/dispatcher-weakref.js
11444
11541
  var require_dispatcher_weakref = __commonJS((exports, module) => {
11445
11542
  var { kConnected, kSize } = require_symbols();
11446
11543
 
@@ -11480,7 +11577,7 @@ var require_dispatcher_weakref = __commonJS((exports, module) => {
11480
11577
  };
11481
11578
  });
11482
11579
 
11483
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/request.js
11580
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/request.js
11484
11581
  var require_request2 = __commonJS((exports, module) => {
11485
11582
  var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body();
11486
11583
  var { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers();
@@ -12070,7 +12167,7 @@ var require_request2 = __commonJS((exports, module) => {
12070
12167
  module.exports = { Request, makeRequest, fromInnerRequest, cloneRequest };
12071
12168
  });
12072
12169
 
12073
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fetch/index.js
12170
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fetch/index.js
12074
12171
  var require_fetch = __commonJS((exports, module) => {
12075
12172
  var {
12076
12173
  makeNetworkError,
@@ -13067,7 +13164,7 @@ var require_fetch = __commonJS((exports, module) => {
13067
13164
  };
13068
13165
  });
13069
13166
 
13070
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fileapi/symbols.js
13167
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fileapi/symbols.js
13071
13168
  var require_symbols3 = __commonJS((exports, module) => {
13072
13169
  module.exports = {
13073
13170
  kState: Symbol("FileReader state"),
@@ -13079,7 +13176,7 @@ var require_symbols3 = __commonJS((exports, module) => {
13079
13176
  };
13080
13177
  });
13081
13178
 
13082
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fileapi/progressevent.js
13179
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fileapi/progressevent.js
13083
13180
  var require_progressevent = __commonJS((exports, module) => {
13084
13181
  var { webidl } = require_webidl();
13085
13182
  var kState = Symbol("ProgressEvent state");
@@ -13145,7 +13242,7 @@ var require_progressevent = __commonJS((exports, module) => {
13145
13242
  };
13146
13243
  });
13147
13244
 
13148
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fileapi/encoding.js
13245
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fileapi/encoding.js
13149
13246
  var require_encoding = __commonJS((exports, module) => {
13150
13247
  function getEncoding(label) {
13151
13248
  if (!label) {
@@ -13428,7 +13525,7 @@ var require_encoding = __commonJS((exports, module) => {
13428
13525
  };
13429
13526
  });
13430
13527
 
13431
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fileapi/util.js
13528
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fileapi/util.js
13432
13529
  var require_util4 = __commonJS((exports, module) => {
13433
13530
  var {
13434
13531
  kState,
@@ -13610,7 +13707,7 @@ var require_util4 = __commonJS((exports, module) => {
13610
13707
  };
13611
13708
  });
13612
13709
 
13613
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/fileapi/filereader.js
13710
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/fileapi/filereader.js
13614
13711
  var require_filereader = __commonJS((exports, module) => {
13615
13712
  var {
13616
13713
  staticPropertyDescriptors,
@@ -13838,14 +13935,14 @@ var require_filereader = __commonJS((exports, module) => {
13838
13935
  };
13839
13936
  });
13840
13937
 
13841
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cache/symbols.js
13938
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cache/symbols.js
13842
13939
  var require_symbols4 = __commonJS((exports, module) => {
13843
13940
  module.exports = {
13844
13941
  kConstruct: require_symbols().kConstruct
13845
13942
  };
13846
13943
  });
13847
13944
 
13848
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cache/util.js
13945
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cache/util.js
13849
13946
  var require_util5 = __commonJS((exports, module) => {
13850
13947
  var assert2 = __require("node:assert");
13851
13948
  var { URLSerializer } = require_data_url();
@@ -13872,7 +13969,7 @@ var require_util5 = __commonJS((exports, module) => {
13872
13969
  };
13873
13970
  });
13874
13971
 
13875
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cache/cache.js
13972
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cache/cache.js
13876
13973
  var require_cache = __commonJS((exports, module) => {
13877
13974
  var { kConstruct } = require_symbols4();
13878
13975
  var { urlEquals, getFieldValues } = require_util5();
@@ -14375,7 +14472,7 @@ var require_cache = __commonJS((exports, module) => {
14375
14472
  };
14376
14473
  });
14377
14474
 
14378
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cache/cachestorage.js
14475
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cache/cachestorage.js
14379
14476
  var require_cachestorage = __commonJS((exports, module) => {
14380
14477
  var { kConstruct } = require_symbols4();
14381
14478
  var { Cache } = require_cache();
@@ -14460,7 +14557,7 @@ var require_cachestorage = __commonJS((exports, module) => {
14460
14557
  };
14461
14558
  });
14462
14559
 
14463
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cookies/constants.js
14560
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cookies/constants.js
14464
14561
  var require_constants4 = __commonJS((exports, module) => {
14465
14562
  var maxAttributeValueSize = 1024;
14466
14563
  var maxNameValuePairSize = 4096;
@@ -14470,7 +14567,7 @@ var require_constants4 = __commonJS((exports, module) => {
14470
14567
  };
14471
14568
  });
14472
14569
 
14473
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cookies/util.js
14570
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cookies/util.js
14474
14571
  var require_util6 = __commonJS((exports, module) => {
14475
14572
  function isCTLExcludingHtab(value) {
14476
14573
  for (let i = 0;i < value.length; ++i) {
@@ -14612,7 +14709,7 @@ var require_util6 = __commonJS((exports, module) => {
14612
14709
  };
14613
14710
  });
14614
14711
 
14615
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cookies/parse.js
14712
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cookies/parse.js
14616
14713
  var require_parse = __commonJS((exports, module) => {
14617
14714
  var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4();
14618
14715
  var { isCTLExcludingHtab } = require_util6();
@@ -14713,18 +14810,14 @@ var require_parse = __commonJS((exports, module) => {
14713
14810
  } else if (attributeNameLowercase === "httponly") {
14714
14811
  cookieAttributeList.httpOnly = true;
14715
14812
  } else if (attributeNameLowercase === "samesite") {
14716
- let enforcement = "Default";
14717
14813
  const attributeValueLowercase = attributeValue.toLowerCase();
14718
- if (attributeValueLowercase.includes("none")) {
14719
- enforcement = "None";
14720
- }
14721
- if (attributeValueLowercase.includes("strict")) {
14722
- enforcement = "Strict";
14814
+ if (attributeValueLowercase === "none") {
14815
+ cookieAttributeList.sameSite = "None";
14816
+ } else if (attributeValueLowercase === "strict") {
14817
+ cookieAttributeList.sameSite = "Strict";
14818
+ } else if (attributeValueLowercase === "lax") {
14819
+ cookieAttributeList.sameSite = "Lax";
14723
14820
  }
14724
- if (attributeValueLowercase.includes("lax")) {
14725
- enforcement = "Lax";
14726
- }
14727
- cookieAttributeList.sameSite = enforcement;
14728
14821
  } else {
14729
14822
  cookieAttributeList.unparsed ??= [];
14730
14823
  cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`);
@@ -14737,7 +14830,7 @@ var require_parse = __commonJS((exports, module) => {
14737
14830
  };
14738
14831
  });
14739
14832
 
14740
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/cookies/index.js
14833
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/cookies/index.js
14741
14834
  var require_cookies = __commonJS((exports, module) => {
14742
14835
  var { parseSetCookie } = require_parse();
14743
14836
  var { stringify } = require_util6();
@@ -14863,7 +14956,7 @@ var require_cookies = __commonJS((exports, module) => {
14863
14956
  };
14864
14957
  });
14865
14958
 
14866
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/events.js
14959
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/events.js
14867
14960
  var require_events = __commonJS((exports, module) => {
14868
14961
  var { webidl } = require_webidl();
14869
14962
  var { kEnumerableProperty } = require_util();
@@ -15125,7 +15218,7 @@ var require_events = __commonJS((exports, module) => {
15125
15218
  };
15126
15219
  });
15127
15220
 
15128
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/constants.js
15221
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/constants.js
15129
15222
  var require_constants5 = __commonJS((exports, module) => {
15130
15223
  var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
15131
15224
  var staticPropertyDescriptors = {
@@ -15179,7 +15272,7 @@ var require_constants5 = __commonJS((exports, module) => {
15179
15272
  };
15180
15273
  });
15181
15274
 
15182
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/symbols.js
15275
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/symbols.js
15183
15276
  var require_symbols5 = __commonJS((exports, module) => {
15184
15277
  module.exports = {
15185
15278
  kWebSocketURL: Symbol("url"),
@@ -15193,7 +15286,7 @@ var require_symbols5 = __commonJS((exports, module) => {
15193
15286
  };
15194
15287
  });
15195
15288
 
15196
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/util.js
15289
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/util.js
15197
15290
  var require_util7 = __commonJS((exports, module) => {
15198
15291
  var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5();
15199
15292
  var { states, opcodes } = require_constants5();
@@ -15341,7 +15434,7 @@ var require_util7 = __commonJS((exports, module) => {
15341
15434
  };
15342
15435
  });
15343
15436
 
15344
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/frame.js
15437
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/frame.js
15345
15438
  var require_frame = __commonJS((exports, module) => {
15346
15439
  var { maxUnsigned16Bit } = require_constants5();
15347
15440
  var BUFFER_SIZE = 16386;
@@ -15413,7 +15506,7 @@ var require_frame = __commonJS((exports, module) => {
15413
15506
  };
15414
15507
  });
15415
15508
 
15416
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/connection.js
15509
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/connection.js
15417
15510
  var require_connection = __commonJS((exports, module) => {
15418
15511
  var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5();
15419
15512
  var {
@@ -15593,7 +15686,7 @@ var require_connection = __commonJS((exports, module) => {
15593
15686
  };
15594
15687
  });
15595
15688
 
15596
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/permessage-deflate.js
15689
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/permessage-deflate.js
15597
15690
  var require_permessage_deflate = __commonJS((exports, module) => {
15598
15691
  var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib");
15599
15692
  var { isValidClientWindowBits } = require_util7();
@@ -15662,7 +15755,7 @@ var require_permessage_deflate = __commonJS((exports, module) => {
15662
15755
  module.exports = { PerMessageDeflate };
15663
15756
  });
15664
15757
 
15665
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/receiver.js
15758
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/receiver.js
15666
15759
  var require_receiver = __commonJS((exports, module) => {
15667
15760
  var { Writable } = __require("node:stream");
15668
15761
  var assert2 = __require("node:assert");
@@ -15683,6 +15776,10 @@ var require_receiver = __commonJS((exports, module) => {
15683
15776
  var { closeWebSocketConnection } = require_connection();
15684
15777
  var { PerMessageDeflate } = require_permessage_deflate();
15685
15778
  var { MessageSizeExceededError } = require_errors();
15779
+ function failWebsocketConnectionWithCode(ws, code, reason) {
15780
+ closeWebSocketConnection(ws, code, reason, Buffer.byteLength(reason));
15781
+ failWebsocketConnection(ws, reason);
15782
+ }
15686
15783
 
15687
15784
  class ByteParser extends Writable {
15688
15785
  #buffers = [];
@@ -15693,11 +15790,13 @@ var require_receiver = __commonJS((exports, module) => {
15693
15790
  #info = {};
15694
15791
  #fragments = [];
15695
15792
  #extensions;
15793
+ #maxFragments;
15696
15794
  #maxPayloadSize;
15697
15795
  constructor(ws, extensions, options = {}) {
15698
15796
  super();
15699
15797
  this.ws = ws;
15700
15798
  this.#extensions = extensions == null ? new Map : extensions;
15799
+ this.#maxFragments = options.maxFragments ?? 0;
15701
15800
  this.#maxPayloadSize = options.maxPayloadSize ?? 0;
15702
15801
  if (this.#extensions.has("permessage-deflate")) {
15703
15802
  this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions, options));
@@ -15710,8 +15809,8 @@ var require_receiver = __commonJS((exports, module) => {
15710
15809
  this.run(callback);
15711
15810
  }
15712
15811
  #validatePayloadLength() {
15713
- if (this.#maxPayloadSize > 0 && !isControlFrame(this.#info.opcode) && this.#info.payloadLength > this.#maxPayloadSize) {
15714
- failWebsocketConnection(this.ws, "Payload size exceeds maximum allowed size");
15812
+ if (this.#maxPayloadSize > 0 && !isControlFrame(this.#info.opcode) && this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize) {
15813
+ failWebsocketConnectionWithCode(this.ws, 1009, "Payload size exceeds maximum allowed size");
15715
15814
  return false;
15716
15815
  }
15717
15816
  return true;
@@ -15822,9 +15921,11 @@ var require_receiver = __commonJS((exports, module) => {
15822
15921
  this.#state = parserStates.INFO;
15823
15922
  } else {
15824
15923
  if (!this.#info.compressed) {
15825
- this.writeFragments(body);
15924
+ if (!this.writeFragments(body)) {
15925
+ return;
15926
+ }
15826
15927
  if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {
15827
- failWebsocketConnection(this.ws, new MessageSizeExceededError().message);
15928
+ failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message);
15828
15929
  return;
15829
15930
  }
15830
15931
  if (!this.#info.fragmented && this.#info.fin) {
@@ -15834,12 +15935,15 @@ var require_receiver = __commonJS((exports, module) => {
15834
15935
  } else {
15835
15936
  this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error, data) => {
15836
15937
  if (error) {
15837
- failWebsocketConnection(this.ws, error.message);
15938
+ const code = error instanceof MessageSizeExceededError ? 1009 : 1007;
15939
+ failWebsocketConnectionWithCode(this.ws, code, error.message);
15940
+ return;
15941
+ }
15942
+ if (!this.writeFragments(data)) {
15838
15943
  return;
15839
15944
  }
15840
- this.writeFragments(data);
15841
15945
  if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) {
15842
- failWebsocketConnection(this.ws, new MessageSizeExceededError().message);
15946
+ failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message);
15843
15947
  return;
15844
15948
  }
15845
15949
  if (!this.#info.fin) {
@@ -15891,8 +15995,13 @@ var require_receiver = __commonJS((exports, module) => {
15891
15995
  return buffer;
15892
15996
  }
15893
15997
  writeFragments(fragment) {
15998
+ if (this.#maxFragments > 0 && this.#fragments.length === this.#maxFragments) {
15999
+ failWebsocketConnectionWithCode(this.ws, 1008, "Too many message fragments");
16000
+ return false;
16001
+ }
15894
16002
  this.#fragmentsBytes += fragment.length;
15895
16003
  this.#fragments.push(fragment);
16004
+ return true;
15896
16005
  }
15897
16006
  consumeFragments() {
15898
16007
  const fragments = this.#fragments;
@@ -15983,7 +16092,7 @@ var require_receiver = __commonJS((exports, module) => {
15983
16092
  };
15984
16093
  });
15985
16094
 
15986
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/sender.js
16095
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/sender.js
15987
16096
  var require_sender = __commonJS((exports, module) => {
15988
16097
  var { WebsocketFrameSend } = require_frame();
15989
16098
  var { opcodes, sendHints } = require_constants5();
@@ -16056,7 +16165,7 @@ var require_sender = __commonJS((exports, module) => {
16056
16165
  module.exports = { SendQueue };
16057
16166
  });
16058
16167
 
16059
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/websocket/websocket.js
16168
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/websocket/websocket.js
16060
16169
  var require_websocket = __commonJS((exports, module) => {
16061
16170
  var { webidl } = require_webidl();
16062
16171
  var { URLSerializer } = require_data_url();
@@ -16294,8 +16403,11 @@ var require_websocket = __commonJS((exports, module) => {
16294
16403
  }
16295
16404
  #onConnectionEstablished(response, parsedExtensions) {
16296
16405
  this[kResponse] = response;
16297
- const maxPayloadSize = this[kController]?.dispatcher?.webSocketOptions?.maxPayloadSize;
16406
+ const webSocketOptions = this[kController]?.dispatcher?.webSocketOptions;
16407
+ const maxFragments = webSocketOptions?.maxFragments;
16408
+ const maxPayloadSize = webSocketOptions?.maxPayloadSize;
16298
16409
  const parser = new ByteParser(this, parsedExtensions, {
16410
+ maxFragments,
16299
16411
  maxPayloadSize
16300
16412
  });
16301
16413
  parser.on("drain", onParserDrain);
@@ -16409,7 +16521,7 @@ var require_websocket = __commonJS((exports, module) => {
16409
16521
  };
16410
16522
  });
16411
16523
 
16412
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/eventsource/util.js
16524
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/eventsource/util.js
16413
16525
  var require_util8 = __commonJS((exports, module) => {
16414
16526
  function isValidLastEventId(value) {
16415
16527
  return value.indexOf("\x00") === -1;
@@ -16435,7 +16547,7 @@ var require_util8 = __commonJS((exports, module) => {
16435
16547
  };
16436
16548
  });
16437
16549
 
16438
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js
16550
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js
16439
16551
  var require_eventsource_stream = __commonJS((exports, module) => {
16440
16552
  var { Transform } = __require("node:stream");
16441
16553
  var { isASCIINumber, isValidLastEventId } = require_util8();
@@ -16629,7 +16741,7 @@ ${value}`;
16629
16741
  };
16630
16742
  });
16631
16743
 
16632
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/lib/web/eventsource/eventsource.js
16744
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/lib/web/eventsource/eventsource.js
16633
16745
  var require_eventsource = __commonJS((exports, module) => {
16634
16746
  var { pipeline } = __require("node:stream");
16635
16747
  var { fetching } = require_fetch();
@@ -18432,6 +18544,88 @@ function inferOperationKind(op) {
18432
18544
  const segments = op.name ? op.name.split("/").filter(Boolean) : [];
18433
18545
  return segments.length >= 3 ? "assertion" : "thing";
18434
18546
  }
18547
+ // ../../packages/rules/src/component-manifest-hash.ts
18548
+ function stableJson(value) {
18549
+ if (!value || typeof value !== "object") {
18550
+ return JSON.stringify(value);
18551
+ }
18552
+ if (Array.isArray(value)) {
18553
+ return `[${value.map((entry) => stableJson(entry)).join(",")}]`;
18554
+ }
18555
+ const record = value;
18556
+ return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(",")}}`;
18557
+ }
18558
+ function stableJsonEquals(left, right) {
18559
+ return stableJson(left) === stableJson(right);
18560
+ }
18561
+
18562
+ // ../../packages/rules/src/component-name-templates.ts
18563
+ var COMPONENT_TEMPLATE_VALUES = {
18564
+ "org-name": (ctx) => ctx.orgName,
18565
+ "repo-name": (ctx) => ctx.repoName
18566
+ };
18567
+ var TEMPLATE_TOKEN_RE = /<([a-z-]+)>/g;
18568
+ function listComponentTemplateTokens(value) {
18569
+ const tokens = new Set;
18570
+ for (const match of value.matchAll(TEMPLATE_TOKEN_RE)) {
18571
+ if (match[1]) {
18572
+ tokens.add(match[1]);
18573
+ }
18574
+ }
18575
+ return [...tokens];
18576
+ }
18577
+ function unsupportedComponentTemplateTokens(value) {
18578
+ return listComponentTemplateTokens(value).filter((token) => !(token in COMPONENT_TEMPLATE_VALUES));
18579
+ }
18580
+ function resolveComponentTemplate(value, ctx) {
18581
+ return value.replace(TEMPLATE_TOKEN_RE, (_match, token) => {
18582
+ const resolver = COMPONENT_TEMPLATE_VALUES[token];
18583
+ if (!resolver) {
18584
+ throw new Error(`Unsupported component template token <${token}>`);
18585
+ }
18586
+ return resolver(ctx);
18587
+ });
18588
+ }
18589
+
18590
+ // ../../packages/rules/src/component-install.ts
18591
+ function manifestShapeData(shape) {
18592
+ const data = { fields: shape.fields };
18593
+ if (shape.description !== undefined)
18594
+ data.description = shape.description;
18595
+ return data;
18596
+ }
18597
+ function shapeDataEquals(left, right) {
18598
+ return stableJsonEquals(left, right);
18599
+ }
18600
+ function describeShapeDataMismatch(expected, actual) {
18601
+ const actualData = actual && typeof actual === "object" && !Array.isArray(actual) ? actual : {};
18602
+ const missing = [];
18603
+ const different = [];
18604
+ for (const key of Object.keys(expected)) {
18605
+ if (!(key in actualData)) {
18606
+ missing.push(key);
18607
+ } else if (!shapeDataEquals(expected[key], actualData[key])) {
18608
+ different.push(key);
18609
+ }
18610
+ }
18611
+ for (const key of Object.keys(actualData)) {
18612
+ if (!(key in expected)) {
18613
+ different.push(key);
18614
+ }
18615
+ }
18616
+ const parts = [];
18617
+ if (missing.length > 0)
18618
+ parts.push(`missing ${missing.join(", ")}`);
18619
+ if (different.length > 0)
18620
+ parts.push(`different ${different.join(", ")}`);
18621
+ return parts.length > 0 ? parts.join("; ") : "data differs";
18622
+ }
18623
+ function resolveManifestCredentialName(name, ctx) {
18624
+ return resolveComponentTemplate(name, {
18625
+ orgName: ctx.orgName,
18626
+ repoName: ctx.repoName
18627
+ });
18628
+ }
18435
18629
  // ../../packages/rules/src/repo-auth-scopes.ts
18436
18630
  var REPO_AUTH_SCOPES = [
18437
18631
  "repo:read",
@@ -18799,53 +18993,6 @@ function validateComponentManifestCliContract(manifest) {
18799
18993
  }
18800
18994
  return findings;
18801
18995
  }
18802
- // ../../packages/rules/src/component-manifest-hash.ts
18803
- function stableJson(value) {
18804
- if (!value || typeof value !== "object") {
18805
- return JSON.stringify(value);
18806
- }
18807
- if (Array.isArray(value)) {
18808
- return `[${value.map((entry) => stableJson(entry)).join(",")}]`;
18809
- }
18810
- const record = value;
18811
- return `{${Object.keys(record).sort().map((key) => `${JSON.stringify(key)}:${stableJson(record[key])}`).join(",")}}`;
18812
- }
18813
- function stableJsonEquals(left, right) {
18814
- return stableJson(left) === stableJson(right);
18815
- }
18816
- async function computeComponentManifestHash(manifest) {
18817
- const { createHash } = await import("node:crypto");
18818
- const content = stableJson(manifest);
18819
- return createHash("sha256").update(content).digest("hex").slice(0, 16);
18820
- }
18821
- // ../../packages/rules/src/component-name-templates.ts
18822
- var COMPONENT_TEMPLATE_VALUES = {
18823
- "org-name": (ctx) => ctx.orgName,
18824
- "repo-name": (ctx) => ctx.repoName
18825
- };
18826
- var TEMPLATE_TOKEN_RE = /<([a-z-]+)>/g;
18827
- function listComponentTemplateTokens(value) {
18828
- const tokens = new Set;
18829
- for (const match of value.matchAll(TEMPLATE_TOKEN_RE)) {
18830
- if (match[1]) {
18831
- tokens.add(match[1]);
18832
- }
18833
- }
18834
- return [...tokens];
18835
- }
18836
- function unsupportedComponentTemplateTokens(value) {
18837
- return listComponentTemplateTokens(value).filter((token) => !(token in COMPONENT_TEMPLATE_VALUES));
18838
- }
18839
- function resolveComponentTemplate(value, ctx) {
18840
- return value.replace(TEMPLATE_TOKEN_RE, (_match, token) => {
18841
- const resolver = COMPONENT_TEMPLATE_VALUES[token];
18842
- if (!resolver) {
18843
- throw new Error(`Unsupported component template token <${token}>`);
18844
- }
18845
- return resolver(ctx);
18846
- });
18847
- }
18848
-
18849
18996
  // ../../packages/rules/src/component-version.ts
18850
18997
  var SEMVER_RE = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
18851
18998
  function isValidSemver(version) {
@@ -21294,7 +21441,7 @@ function findSystemComponent(componentId) {
21294
21441
  // ../../packages/sdk-ts/package.json
21295
21442
  var package_default = {
21296
21443
  name: "@warmhub/sdk-ts",
21297
- version: "0.53.0",
21444
+ version: "0.55.0",
21298
21445
  private: false,
21299
21446
  type: "module",
21300
21447
  description: "The TypeScript SDK for WarmHub — create repos, commit and query data, and compound knowledge with your AI agents.",
@@ -22206,6 +22353,28 @@ class WarmHubClient {
22206
22353
  throw toWarmHubError(error);
22207
22354
  }
22208
22355
  },
22356
+ install: async (orgName, repoName, componentRef) => {
22357
+ try {
22358
+ return await this.trpc.component.install.mutate({
22359
+ orgName,
22360
+ repoName,
22361
+ componentRef
22362
+ });
22363
+ } catch (error) {
22364
+ throw toWarmHubError(error);
22365
+ }
22366
+ },
22367
+ uninstall: async (orgName, repoName, componentRef) => {
22368
+ try {
22369
+ return await this.trpc.component.uninstall.mutate({
22370
+ orgName,
22371
+ repoName,
22372
+ componentRef
22373
+ });
22374
+ } catch (error) {
22375
+ throw toWarmHubError(error);
22376
+ }
22377
+ },
22209
22378
  registry: {
22210
22379
  register: async (orgName, componentName, input) => {
22211
22380
  try {
@@ -24027,32 +24196,6 @@ function toCliError(err) {
24027
24196
  const message = err instanceof Error ? err.message : String(err);
24028
24197
  return new CliError(1 /* Runtime */, "UNKNOWN", message, err);
24029
24198
  }
24030
- function isAlreadyExistsError(err, seen = new WeakSet) {
24031
- if (typeof err === "string") {
24032
- return err.includes("already exists") || err.includes("ALREADY_EXISTS");
24033
- }
24034
- if (err === null || typeof err !== "object") {
24035
- return false;
24036
- }
24037
- if (seen.has(err)) {
24038
- return false;
24039
- }
24040
- seen.add(err);
24041
- const payloadMessage = err.message;
24042
- const message = err instanceof Error ? err.message : typeof payloadMessage === "string" ? payloadMessage : undefined;
24043
- const isAlreadyExistsMessage = message !== undefined && (message.includes("already exists") || message.includes("ALREADY_EXISTS"));
24044
- const code = err.code;
24045
- if (code === "ALREADY_EXISTS") {
24046
- return true;
24047
- }
24048
- if (code === "CONFLICT") {
24049
- return isAlreadyExistsMessage;
24050
- }
24051
- if (isAlreadyExistsMessage) {
24052
- return true;
24053
- }
24054
- return isAlreadyExistsError(err.cause, seen);
24055
- }
24056
24199
  function generateSuggestions(code, message, context, errorCode) {
24057
24200
  const suggestions = [];
24058
24201
  if (code === "CONFIG" && (message.includes("repo") || message.includes("WARMHUB_REPO"))) {
@@ -31202,7 +31345,7 @@ async function fetchAllSummaries(client, org, repo) {
31202
31345
  return items;
31203
31346
  }
31204
31347
  function filterActiveItems(items) {
31205
- return items.filter((i) => i.active && i.state !== "paused" && i.state !== "error");
31348
+ return items.filter((i) => i.active && i.state !== "uninstalled" && i.state !== "paused" && i.state !== "error");
31206
31349
  }
31207
31350
  function extractRegisteredRef(data) {
31208
31351
  if (typeof data !== "object" || data === null)
@@ -31610,82 +31753,8 @@ async function runGlobalSearchCommand(ctx, args) {
31610
31753
  }
31611
31754
  });
31612
31755
  }
31613
-
31614
- // ../../packages/warmhub-cli/src/manifest/name-resolution.ts
31615
- function resolveManifestCredentialName(name, ctx) {
31616
- return resolveComponentTemplate(name, {
31617
- orgName: ctx.orgName,
31618
- repoName: ctx.repoName
31619
- });
31620
- }
31621
- function resolveManifestCredentialNames(names, ctx) {
31622
- return (names ?? []).map((name) => resolveManifestCredentialName(name, ctx));
31623
- }
31624
-
31625
- // ../../packages/warmhub-cli/src/manifest/shape-data.ts
31626
- function manifestShapeData(shape) {
31627
- const data = { fields: shape.fields };
31628
- if (shape.description !== undefined)
31629
- data.description = shape.description;
31630
- return data;
31631
- }
31632
- function shapeDataEquals(left, right) {
31633
- return stableJsonEquals(left, right);
31634
- }
31635
- function describeShapeDataMismatch(expected, actual) {
31636
- const actualData = actual && typeof actual === "object" && !Array.isArray(actual) ? actual : {};
31637
- const missing = [];
31638
- const different = [];
31639
- for (const key of Object.keys(expected)) {
31640
- if (!(key in actualData)) {
31641
- missing.push(key);
31642
- } else if (!shapeDataEquals(expected[key], actualData[key])) {
31643
- different.push(key);
31644
- }
31645
- }
31646
- for (const key of Object.keys(actualData)) {
31647
- if (!(key in expected)) {
31648
- different.push(key);
31649
- }
31650
- }
31651
- const parts = [];
31652
- if (missing.length > 0)
31653
- parts.push(`missing ${missing.join(", ")}`);
31654
- if (different.length > 0)
31655
- parts.push(`different ${different.join(", ")}`);
31656
- return parts.length > 0 ? parts.join("; ") : "data differs";
31657
- }
31658
-
31659
31756
  // ../../packages/warmhub-cli/src/manifest/shared-infra.ts
31660
31757
  var SHARED_INFRA_SHAPES = findSystemComponent(SYSTEM_COMPONENT_ID)?.shapes ?? [];
31661
- async function ensureSharedInfra(client, org, repo) {
31662
- for (const shape of SHARED_INFRA_SHAPES) {
31663
- try {
31664
- await client.commit.apply(org, repo, `Ensure ${shape.name} shape`, [
31665
- {
31666
- operation: "add",
31667
- kind: "shape",
31668
- name: shape.name,
31669
- data: { fields: shape.fields }
31670
- }
31671
- ], { componentRef: SYSTEM_REGISTERED_COMPONENT_REF });
31672
- } catch (err) {
31673
- if (!isAlreadyExistsError(err)) {
31674
- throw err;
31675
- }
31676
- try {
31677
- await client.commit.apply(org, repo, `Tag ${shape.name} with system componentId`, [
31678
- {
31679
- operation: "revise",
31680
- kind: "shape",
31681
- name: shape.name,
31682
- data: { fields: shape.fields }
31683
- }
31684
- ], { componentRef: SYSTEM_REGISTERED_COMPONENT_REF });
31685
- } catch {}
31686
- }
31687
- }
31688
- }
31689
31758
 
31690
31759
  // ../../packages/warmhub-cli/src/manifest/doctor.ts
31691
31760
  async function doctorComponent(client, org, repo, componentId) {
@@ -31732,6 +31801,14 @@ async function doctorComponent(client, org, repo, componentId) {
31732
31801
  });
31733
31802
  return { componentId, componentName, state: "error", findings };
31734
31803
  }
31804
+ if (existingState === "uninstalled") {
31805
+ findings.push({
31806
+ resource: "state",
31807
+ status: "inactive",
31808
+ message: "Component is uninstalled; reinstall to revive it"
31809
+ });
31810
+ return { componentId, componentName, state: "uninstalled", findings };
31811
+ }
31735
31812
  let manifest;
31736
31813
  try {
31737
31814
  const raw = typeof installData.manifest === "string" ? installData.manifest : undefined;
@@ -31969,129 +32046,6 @@ function parseComponentPackage(dirPath) {
31969
32046
  };
31970
32047
  }
31971
32048
 
31972
- // ../../packages/warmhub-cli/src/manifest/teardown.ts
31973
- async function teardownComponent(client, org, repo, componentId) {
31974
- const steps = [];
31975
- const errors = [];
31976
- let installData;
31977
- try {
31978
- const thing = await client.thing.get(org, repo, `ComponentInstall/${componentId}`);
31979
- installData = thing.data && typeof thing.data === "object" ? thing.data : {};
31980
- } catch {
31981
- return {
31982
- componentId,
31983
- componentName: componentId,
31984
- state: "error",
31985
- steps: [
31986
- {
31987
- step: "load-install",
31988
- status: "error",
31989
- message: `ComponentInstall/${componentId} not found`
31990
- }
31991
- ],
31992
- errors: [`ComponentInstall/${componentId} not found`]
31993
- };
31994
- }
31995
- const componentName = typeof installData.name === "string" ? installData.name : componentId;
31996
- const registeredComponentRef = typeof installData.registeredComponentRef === "string" && installData.registeredComponentRef.length > 0 ? installData.registeredComponentRef : undefined;
31997
- if (!registeredComponentRef) {
31998
- return {
31999
- componentId,
32000
- componentName,
32001
- state: "error",
32002
- steps: [
32003
- {
32004
- step: "load-install",
32005
- status: "error",
32006
- message: "Install record is missing registeredComponentRef"
32007
- }
32008
- ],
32009
- errors: ["Install record is missing registeredComponentRef"]
32010
- };
32011
- }
32012
- let subscriptionNames = [];
32013
- let teardownPolicy = {};
32014
- try {
32015
- const raw = typeof installData.manifest === "string" ? installData.manifest : undefined;
32016
- if (raw) {
32017
- const manifest = JSON.parse(raw);
32018
- subscriptionNames = (manifest.subscriptions ?? []).map((s) => s.name);
32019
- teardownPolicy = manifest.teardown ?? {};
32020
- }
32021
- } catch {
32022
- errors.push("Failed to parse manifest — cannot identify subscriptions");
32023
- steps.push({
32024
- step: "parse-manifest",
32025
- status: "error",
32026
- message: "Invalid manifest JSON"
32027
- });
32028
- }
32029
- const subPolicy = teardownPolicy.subscriptions?.onDisable ?? "pause";
32030
- if (subPolicy === "pause") {
32031
- for (const subName of subscriptionNames) {
32032
- try {
32033
- const sub = await client.subscription.get(org, repo, subName);
32034
- const ownerComponentRef = sub && typeof sub === "object" && "componentRef" in sub ? sub.componentRef : undefined;
32035
- if (typeof ownerComponentRef === "string" && ownerComponentRef !== registeredComponentRef) {
32036
- const msg = `Subscription "${subName}" is owned by "${ownerComponentRef}", not "${registeredComponentRef}"`;
32037
- errors.push(msg);
32038
- steps.push({
32039
- step: `pause-${subName}`,
32040
- status: "error",
32041
- message: msg
32042
- });
32043
- continue;
32044
- }
32045
- await client.subscription.pause(org, repo, subName);
32046
- steps.push({ step: `pause-${subName}`, status: "ok" });
32047
- } catch (err) {
32048
- const msg = err instanceof Error ? err.message : String(err);
32049
- if (msg.includes("already paused") || msg.includes("not active")) {
32050
- steps.push({
32051
- step: `pause-${subName}`,
32052
- status: "skipped",
32053
- message: "Already paused"
32054
- });
32055
- } else if (msg.includes("not found") || msg.includes("NOT_FOUND")) {
32056
- steps.push({
32057
- step: `pause-${subName}`,
32058
- status: "skipped",
32059
- message: "Subscription not found"
32060
- });
32061
- } else {
32062
- errors.push(`Failed to pause ${subName}: ${msg}`);
32063
- steps.push({
32064
- step: `pause-${subName}`,
32065
- status: "error",
32066
- message: msg
32067
- });
32068
- }
32069
- }
32070
- }
32071
- }
32072
- const state = errors.length > 0 ? "degraded" : "paused";
32073
- try {
32074
- await client.commit.apply(org, repo, `Teardown ${componentName}: ${state}`, [
32075
- {
32076
- operation: "revise",
32077
- kind: "thing",
32078
- name: `ComponentInstall/${componentId}`,
32079
- data: {
32080
- ...installData,
32081
- state,
32082
- updatedAt: new Date().toISOString()
32083
- }
32084
- }
32085
- ], { componentRef: SYSTEM_REGISTERED_COMPONENT_REF });
32086
- steps.push({ step: "update-state", status: "ok" });
32087
- } catch (err) {
32088
- const msg = err instanceof Error ? err.message : String(err);
32089
- errors.push(`Failed to update state: ${msg}`);
32090
- steps.push({ step: "update-state", status: "error", message: msg });
32091
- }
32092
- return { componentId, componentName, state, steps, errors };
32093
- }
32094
-
32095
32049
  // ../../packages/warmhub-cli/src/manifest/validate.ts
32096
32050
  function crossValidate(pkg) {
32097
32051
  const findings = [];
@@ -32619,31 +32573,25 @@ var handleTeardown = async (ctx, { args }) => {
32619
32573
  }
32620
32574
  const { org, repo } = parseOrgRepo(getRepoRef(ctx), ctx.config);
32621
32575
  const repoSlug = `${org}/${repo}`;
32622
- const componentId = await resolveInstalledComponentRefId(ctx.client, org, repo, name);
32623
32576
  let result;
32624
32577
  try {
32625
- result = await teardownComponent(ctx.client, org, repo, componentId);
32578
+ result = await ctx.client.component.uninstall(org, repo, name);
32626
32579
  } catch (error) {
32627
32580
  invalidateInstallSnapshotCache(repoSlug);
32628
32581
  throw error;
32629
32582
  }
32630
- const mutated = result.steps.some((step) => step.status === "ok" && (step.step === "update-state" || step.step.startsWith("pause-")));
32631
- if (mutated) {
32632
- invalidateInstallSnapshotCache(repoSlug);
32633
- try {
32634
- await refreshInstallSnapshotCache(repoSlug, ctx.client);
32635
- } catch {}
32636
- }
32583
+ invalidateInstallSnapshotCache(repoSlug);
32584
+ try {
32585
+ await refreshInstallSnapshotCache(repoSlug, ctx.client);
32586
+ } catch {}
32637
32587
  writeOutput(ctx, result, () => renderTeardownResult(ctx, result));
32638
- if (result.errors.length > 0) {
32639
- throw new CliError(1 /* Runtime */, "UNKNOWN", "Teardown had errors");
32640
- }
32641
32588
  };
32642
32589
  function stateToColor(c, state) {
32643
32590
  switch (state) {
32644
32591
  case "ready":
32645
32592
  return c.green;
32646
32593
  case "paused":
32594
+ case "uninstalled":
32647
32595
  return c.yellow;
32648
32596
  case "degraded":
32649
32597
  return c.red;
@@ -32669,12 +32617,15 @@ function renderTeardownResult(ctx, result) {
32669
32617
  const c = ctx.colors;
32670
32618
  const stateColor = stateToColor(c, result.state);
32671
32619
  ctx.out(`${c.bold}Teardown:${c.reset} ${c.cyan}${result.componentName}${c.reset} ${stateColor}${result.state}${c.reset}`);
32672
- for (const step of result.steps) {
32673
- const icon = step.status === "ok" ? `${c.green}ok` : step.status === "skipped" ? `${c.yellow}skip` : `${c.red}err`;
32674
- ctx.out(` ${icon}${c.reset} ${step.step}${step.message ? ` — ${step.message}` : ""}`);
32620
+ if (result.pausedSubscriptions.length > 0) {
32621
+ ctx.out(` ${c.green}paused${c.reset} ${result.pausedSubscriptions.length} subscription(s): ${result.pausedSubscriptions.join(", ")}`);
32622
+ }
32623
+ if (result.tokensRevoked > 0) {
32624
+ ctx.out(` ${c.green}revoked${c.reset} ${result.tokensRevoked} token(s)`);
32675
32625
  }
32676
- for (const err of result.errors) {
32677
- ctx.out(` ${c.red}error${c.reset}: ${err}`);
32626
+ ctx.out(` uninstall callback: ${result.uninstallDispatched ? `${c.green}dispatched${c.reset}` : `${c.dim}not dispatched${c.reset}`}`);
32627
+ for (const warning of result.warnings) {
32628
+ ctx.out(` ${c.yellow}warning${c.reset}: ${warning}`);
32678
32629
  }
32679
32630
  }
32680
32631
  function renderRegistryEntry(ctx, entry) {
@@ -38187,862 +38138,6 @@ async function dispatch(ctx) {
38187
38138
  const hint = ctx._domainHint ? ` ${ctx._domainHint}` : "";
38188
38139
  throw new CliError(2 /* UserInput */, "USER_INPUT", `Unknown command: ${command}`, undefined, hint.trim() || "Run 'wh help' for available commands.");
38189
38140
  }
38190
- // ../../packages/warmhub-cli/src/manifest/action-compiler.ts
38191
- function compileSubscription(subscription) {
38192
- if (!subscription.webhookUrl || subscription.webhookUrl.trim().length === 0) {
38193
- throw new Error(`Subscription "${subscription.name}" must declare a non-empty "webhookUrl".`);
38194
- }
38195
- if (subscription.trigger.kind === "cron") {
38196
- throw new Error(`Subscription "${subscription.name}" uses a cron trigger; cron subscriptions are no longer supported. Use an event trigger instead.`);
38197
- }
38198
- if (subscription.trigger.kind === "event") {
38199
- return {
38200
- name: subscription.name,
38201
- kind: "webhook",
38202
- shapeName: subscription.trigger.shape,
38203
- filterJson: subscription.trigger.filter ?? {
38204
- shape: subscription.trigger.shape
38205
- },
38206
- webhookUrl: subscription.webhookUrl,
38207
- fallbackWebhookUrl: subscription.fallbackWebhookUrl,
38208
- credentials: subscription.credentials ?? []
38209
- };
38210
- }
38211
- const triggerKind = subscription.trigger.kind;
38212
- throw new Error(`Subscription "${subscription.name}" has unsupported trigger kind "${triggerKind}".`);
38213
- }
38214
- // ../../packages/warmhub-cli/src/manifest/reconciler.ts
38215
- function normalizeCredentialBindings(names) {
38216
- return [...new Set(names)].sort();
38217
- }
38218
- async function reconcileComponent(client, org, repo, pkg, source, existingInstall) {
38219
- const steps = [];
38220
- const errors = [];
38221
- const { meta, manifest } = pkg;
38222
- const componentId = meta.id;
38223
- const componentRef = source.registeredComponentRef;
38224
- const validation = validateComponentPackage(pkg);
38225
- if (!validation.valid) {
38226
- const validationErrors = validation.findings.filter((f) => f.level === "error").map((f) => f.message);
38227
- return {
38228
- ok: false,
38229
- componentId,
38230
- componentName: meta.name,
38231
- version: meta.version,
38232
- state: "error",
38233
- steps: [
38234
- {
38235
- step: "validate",
38236
- status: "error",
38237
- message: validationErrors.join("; ")
38238
- }
38239
- ],
38240
- errors: validationErrors,
38241
- setupCreates: []
38242
- };
38243
- }
38244
- steps.push({ step: "validate", status: "ok" });
38245
- const partitionedShapes = partitionByProvisioning(manifest.shapes, "Shape");
38246
- const partitionedCreds = partitionByProvisioning(manifest.credentials, "CredentialSet");
38247
- const partitionedSubs = partitionByProvisioning(manifest.subscriptions, "Subscription");
38248
- const setupCreates = [
38249
- ...partitionedShapes.setupRefs,
38250
- ...partitionedCreds.setupRefs,
38251
- ...partitionedSubs.setupRefs
38252
- ];
38253
- const reconcileShapes = partitionedShapes.manifestEntries;
38254
- const reconcileCreds = partitionedCreds.manifestEntries;
38255
- const reconcileSubs = partitionedSubs.manifestEntries;
38256
- await ensureSharedInfra(client, org, repo);
38257
- steps.push({ step: "ensure-shared-infra", status: "ok" });
38258
- const existingData = existingInstall.data;
38259
- const persistedInstallId = typeof existingData?.installId === "string" ? existingData.installId : null;
38260
- let oldManifest;
38261
- if (existingData?.manifest && typeof existingData.manifest === "string") {
38262
- try {
38263
- oldManifest = JSON.parse(existingData.manifest);
38264
- } catch {}
38265
- }
38266
- const previousState = typeof existingData?.state === "string" ? existingData.state : "";
38267
- const isFailedInstallState = previousState === "error" || previousState === "installing";
38268
- const wasIncomplete = isFailedInstallState;
38269
- const oldShapeNames = wasIncomplete ? new Set : new Set(oldManifest?.shapes?.map((s) => s.name) ?? []);
38270
- const oldSubNames = wasIncomplete ? new Set : new Set(oldManifest?.subscriptions?.map((s) => s.name) ?? []);
38271
- const oldCredNames = wasIncomplete ? new Set : new Set(oldManifest?.credentials?.map((c) => c.name) ?? []);
38272
- const liveShapeNames = new Set;
38273
- const liveShapeDataByName = new Map;
38274
- const liveShapeComponentRefByName = new Map;
38275
- for (const shape of reconcileShapes) {
38276
- if (isFailedInstallState || previousState !== "degraded" && !oldShapeNames.has(shape.name)) {
38277
- continue;
38278
- }
38279
- try {
38280
- const liveThing = await client.thing.get(org, repo, shape.name, undefined, {
38281
- includeRetracted: true
38282
- });
38283
- if (liveThing.active === false)
38284
- continue;
38285
- liveShapeNames.add(shape.name);
38286
- try {
38287
- const liveShape = await client.shape.get(org, repo, shape.name, {
38288
- includeRetracted: true
38289
- });
38290
- liveShapeDataByName.set(shape.name, liveShape.version?.data);
38291
- liveShapeComponentRefByName.set(shape.name, liveShape.componentRef);
38292
- } catch {}
38293
- } catch {}
38294
- }
38295
- const liveSubNames = new Set;
38296
- for (const sub of reconcileSubs) {
38297
- if (wasIncomplete || !oldSubNames.has(sub.name))
38298
- continue;
38299
- try {
38300
- await client.subscription.get(org, repo, sub.name);
38301
- liveSubNames.add(sub.name);
38302
- } catch {}
38303
- }
38304
- const liveCredNames = new Set;
38305
- for (const cred of reconcileCreds) {
38306
- if (wasIncomplete || !oldCredNames.has(cred.name))
38307
- continue;
38308
- const credentialSetName = resolveManifestCredentialName(cred.name, {
38309
- orgName: org,
38310
- repoName: repo
38311
- });
38312
- try {
38313
- await client.credential.getSet(org, repo, credentialSetName);
38314
- liveCredNames.add(cred.name);
38315
- } catch {}
38316
- }
38317
- const newShapes = reconcileShapes.filter((s) => !liveShapeNames.has(s.name));
38318
- if (newShapes.length > 0) {
38319
- const shapeOps = newShapes.map((shape) => ({
38320
- operation: "add",
38321
- kind: "shape",
38322
- name: shape.name,
38323
- data: manifestShapeData(shape)
38324
- }));
38325
- try {
38326
- await client.commit.apply(org, repo, `Add new shapes for ${meta.name}`, shapeOps, { componentRef });
38327
- steps.push({ step: "add-new-shapes", status: "ok" });
38328
- } catch (err) {
38329
- const msg = err instanceof Error ? err.message : String(err);
38330
- if (isAlreadyExistsError(err)) {
38331
- steps.push({ step: "add-new-shapes", status: "skipped" });
38332
- } else {
38333
- errors.push(`Failed to add new shapes: ${msg}`);
38334
- steps.push({ step: "add-new-shapes", status: "error", message: msg });
38335
- }
38336
- }
38337
- }
38338
- const changedShapes = reconcileShapes.filter((shape) => {
38339
- if (!liveShapeNames.has(shape.name))
38340
- return false;
38341
- const liveData = liveShapeDataByName.get(shape.name);
38342
- const liveComponentRef = liveShapeComponentRefByName.get(shape.name);
38343
- return liveComponentRef !== componentRef || !shapeDataEquals(manifestShapeData(shape), liveData);
38344
- });
38345
- if (changedShapes.length > 0) {
38346
- const shapeOps = changedShapes.map((shape) => ({
38347
- operation: "revise",
38348
- kind: "shape",
38349
- name: shape.name,
38350
- data: manifestShapeData(shape)
38351
- }));
38352
- try {
38353
- await client.commit.apply(org, repo, `Reconcile shapes for ${meta.name}`, shapeOps, { componentRef });
38354
- steps.push({ step: "claim-existing-shapes", status: "ok" });
38355
- } catch (err) {
38356
- const msg = err instanceof Error ? err.message : String(err);
38357
- errors.push(`Failed to reconcile existing shapes: ${msg}`);
38358
- steps.push({
38359
- step: "claim-existing-shapes",
38360
- status: "error",
38361
- message: msg
38362
- });
38363
- }
38364
- }
38365
- const newCreds = reconcileCreds.filter((c) => !oldCredNames.has(c.name) || !liveCredNames.has(c.name));
38366
- for (const cred of newCreds) {
38367
- const credentialSetName = resolveManifestCredentialName(cred.name, {
38368
- orgName: org,
38369
- repoName: repo
38370
- });
38371
- try {
38372
- await client.credential.createSet(org, repo, credentialSetName, {
38373
- scope: "repo",
38374
- description: cred.description
38375
- });
38376
- steps.push({ step: `add-credential-${credentialSetName}`, status: "ok" });
38377
- } catch (err) {
38378
- const msg = err instanceof Error ? err.message : String(err);
38379
- if (isAlreadyExistsError(err)) {
38380
- steps.push({
38381
- step: `add-credential-${credentialSetName}`,
38382
- status: "skipped"
38383
- });
38384
- } else {
38385
- errors.push(`Failed to add credential ${credentialSetName}: ${msg}`);
38386
- steps.push({
38387
- step: `add-credential-${credentialSetName}`,
38388
- status: "error",
38389
- message: msg
38390
- });
38391
- }
38392
- }
38393
- }
38394
- const newSubs = reconcileSubs.filter((s) => !oldSubNames.has(s.name) || !liveSubNames.has(s.name));
38395
- for (const sub of newSubs) {
38396
- let compiled;
38397
- try {
38398
- compiled = compileSubscription(sub);
38399
- } catch (err) {
38400
- const msg = err instanceof Error ? err.message : String(err);
38401
- errors.push(`Failed to compile subscription ${sub.name}: ${msg}`);
38402
- steps.push({
38403
- step: `add-sub-${sub.name}`,
38404
- status: "error",
38405
- message: msg
38406
- });
38407
- continue;
38408
- }
38409
- try {
38410
- await client.subscription.create({
38411
- orgName: org,
38412
- repoName: repo,
38413
- name: compiled.name,
38414
- kind: compiled.kind,
38415
- shapeName: compiled.shapeName,
38416
- filterJson: compiled.filterJson,
38417
- webhookUrl: compiled.webhookUrl,
38418
- fallbackWebhookUrl: compiled.fallbackWebhookUrl,
38419
- componentRef
38420
- });
38421
- steps.push({ step: `add-sub-${sub.name}`, status: "ok" });
38422
- } catch (err) {
38423
- const msg = err instanceof Error ? err.message : String(err);
38424
- if (isAlreadyExistsError(err)) {
38425
- steps.push({ step: `add-sub-${sub.name}`, status: "skipped" });
38426
- } else {
38427
- errors.push(`Failed to add subscription ${sub.name}: ${msg}`);
38428
- steps.push({
38429
- step: `add-sub-${sub.name}`,
38430
- status: "error",
38431
- message: msg
38432
- });
38433
- }
38434
- }
38435
- for (const credName of resolveManifestCredentialNames(compiled.credentials, {
38436
- orgName: org,
38437
- repoName: repo
38438
- })) {
38439
- try {
38440
- await client.subscription.bindCredentials(org, repo, compiled.name, credName);
38441
- } catch {}
38442
- }
38443
- }
38444
- const existingSubs = reconcileSubs.filter((s) => oldSubNames.has(s.name) && liveSubNames.has(s.name));
38445
- for (const sub of existingSubs) {
38446
- const stepName = `update-sub-${sub.name}`;
38447
- let compiled;
38448
- try {
38449
- compiled = compileSubscription(sub);
38450
- } catch (err) {
38451
- const msg = err instanceof Error ? err.message : String(err);
38452
- errors.push(`Failed to compile subscription ${sub.name}: ${msg}`);
38453
- steps.push({ step: stepName, status: "error", message: msg });
38454
- continue;
38455
- }
38456
- try {
38457
- const liveSub = await client.subscription.get(org, repo, sub.name);
38458
- if (liveSub.componentRef && liveSub.componentRef !== componentRef) {
38459
- const msg = `Subscription "${sub.name}" is owned by component "${liveSub.componentRef}"`;
38460
- errors.push(msg);
38461
- steps.push({ step: stepName, status: "error", message: msg });
38462
- continue;
38463
- }
38464
- const replacedLegacyCron = liveSub.kind === "cron";
38465
- if (replacedLegacyCron) {
38466
- await client.subscription.remove(org, repo, sub.name);
38467
- try {
38468
- await client.subscription.create({
38469
- orgName: org,
38470
- repoName: repo,
38471
- name: compiled.name,
38472
- kind: compiled.kind,
38473
- shapeName: compiled.shapeName,
38474
- filterJson: compiled.filterJson,
38475
- webhookUrl: compiled.webhookUrl,
38476
- fallbackWebhookUrl: compiled.fallbackWebhookUrl,
38477
- componentRef
38478
- });
38479
- } catch (createErr) {
38480
- const createMsg = createErr instanceof Error ? createErr.message : String(createErr);
38481
- throw new Error(`Failed to create replacement webhook subscription: ${createMsg}; the deactivated legacy cron subscription was deleted — re-run reconcile to create the webhook subscription`);
38482
- }
38483
- if (liveSub.active === false) {
38484
- await client.subscription.pause(org, repo, sub.name);
38485
- }
38486
- } else {
38487
- await client.subscription.update({
38488
- orgName: org,
38489
- repoName: repo,
38490
- name: compiled.name,
38491
- shapeName: compiled.shapeName,
38492
- filterJson: compiled.filterJson,
38493
- webhookUrl: compiled.webhookUrl,
38494
- fallbackWebhookUrl: compiled.fallbackWebhookUrl
38495
- });
38496
- }
38497
- const desiredCredentials = normalizeCredentialBindings(resolveManifestCredentialNames(compiled.credentials, {
38498
- orgName: org,
38499
- repoName: repo
38500
- }));
38501
- const liveCredentials = replacedLegacyCron ? [] : normalizeCredentialBindings(liveSub.credentialSetNames);
38502
- const credentialsChanged = desiredCredentials.length !== liveCredentials.length || desiredCredentials.some((name, index) => name !== liveCredentials[index]);
38503
- if (credentialsChanged && liveCredentials.length > 0) {
38504
- await client.subscription.unbindCredentials(org, repo, compiled.name);
38505
- }
38506
- if (credentialsChanged) {
38507
- for (const credentialSetName of desiredCredentials) {
38508
- await client.subscription.bindCredentials(org, repo, compiled.name, credentialSetName);
38509
- }
38510
- }
38511
- steps.push({
38512
- step: stepName,
38513
- status: "ok",
38514
- ...replacedLegacyCron ? {
38515
- message: liveSub.active === false ? "replaced legacy cron subscription (kept paused — resume after verifying the webhook)" : "replaced legacy cron subscription"
38516
- } : {}
38517
- });
38518
- } catch (err) {
38519
- const msg = err instanceof Error ? err.message : String(err);
38520
- errors.push(`Failed to update subscription ${sub.name}: ${msg}`);
38521
- steps.push({ step: stepName, status: "error", message: msg });
38522
- }
38523
- }
38524
- if (manifest.seeds.length > 0) {
38525
- for (const seed of manifest.seeds) {
38526
- try {
38527
- await client.commit.apply(org, repo, `Seed ${seed.shape}/${seed.name} for ${meta.name}`, [
38528
- {
38529
- operation: "revise",
38530
- kind: "thing",
38531
- name: `${seed.shape}/${seed.name}`,
38532
- data: seed.data
38533
- }
38534
- ], { componentRef });
38535
- } catch (reviseErr) {
38536
- const reviseMsg = reviseErr instanceof Error ? reviseErr.message : String(reviseErr);
38537
- const reviseLooksMissing = reviseMsg.includes("not found") || reviseMsg.includes("NOT_FOUND");
38538
- if (!reviseLooksMissing) {
38539
- errors.push(`Failed to seed ${seed.shape}/${seed.name}: ${reviseMsg}`);
38540
- continue;
38541
- }
38542
- try {
38543
- await client.commit.apply(org, repo, `Seed ${seed.shape}/${seed.name} for ${meta.name}`, [
38544
- {
38545
- operation: "add",
38546
- kind: "thing",
38547
- name: `${seed.shape}/${seed.name}`,
38548
- data: seed.data
38549
- }
38550
- ], { componentRef });
38551
- } catch (addErr) {
38552
- const msg = addErr instanceof Error ? addErr.message : String(addErr);
38553
- if (!isAlreadyExistsError(addErr)) {
38554
- errors.push(`Failed to seed ${seed.shape}/${seed.name}: ${msg}`);
38555
- }
38556
- }
38557
- }
38558
- }
38559
- steps.push({
38560
- step: "reconcile-seeds",
38561
- status: errors.length === 0 ? "ok" : "error"
38562
- });
38563
- }
38564
- const state = errors.length > 0 ? "degraded" : "ready";
38565
- try {
38566
- await client.commit.apply(org, repo, `Reconcile ${meta.name}`, [
38567
- {
38568
- operation: "revise",
38569
- kind: "thing",
38570
- name: `ComponentInstall/${componentId}`,
38571
- data: {
38572
- componentId,
38573
- name: meta.name,
38574
- version: meta.version,
38575
- source: "registry",
38576
- sourceKind: "registered",
38577
- sourceRef: source.ref ?? "",
38578
- resolvedSha: source.resolvedSha ?? "",
38579
- ...source.registeredComponentRef ? { registeredComponentRef: source.registeredComponentRef } : {},
38580
- manifestHash: await computeComponentManifestHash(manifest),
38581
- state,
38582
- manifest: JSON.stringify(manifest),
38583
- installedAt: typeof existingData?.installedAt === "string" ? existingData.installedAt : new Date().toISOString(),
38584
- updatedAt: new Date().toISOString(),
38585
- ...source.installId ?? persistedInstallId ? { installId: source.installId ?? persistedInstallId } : {}
38586
- }
38587
- }
38588
- ], { componentRef: SYSTEM_REGISTERED_COMPONENT_REF });
38589
- steps.push({ step: "update-install-record", status: "ok" });
38590
- } catch (err) {
38591
- const msg = err instanceof Error ? err.message : String(err);
38592
- errors.push(`Failed to update install record: ${msg}`);
38593
- steps.push({ step: "update-install-record", status: "error", message: msg });
38594
- }
38595
- return {
38596
- ok: errors.length === 0,
38597
- componentId,
38598
- componentName: meta.name,
38599
- version: meta.version,
38600
- state,
38601
- steps,
38602
- errors,
38603
- setupCreates
38604
- };
38605
- }
38606
-
38607
- // ../../packages/warmhub-cli/src/manifest/installer.ts
38608
- async function installComponent(client, org, repo, pkg, source) {
38609
- const steps = [];
38610
- const errors = [];
38611
- const setupCreates = [];
38612
- const { meta, manifest } = pkg;
38613
- const componentId = meta.id;
38614
- assertCliMethodsAllowedForSource(pkg, source);
38615
- const partitionedShapes = partitionByProvisioning(manifest.shapes, "Shape");
38616
- const partitionedCreds = partitionByProvisioning(manifest.credentials, "CredentialSet");
38617
- const partitionedSubs = partitionByProvisioning(manifest.subscriptions, "Subscription");
38618
- setupCreates.push(...partitionedShapes.setupRefs, ...partitionedCreds.setupRefs, ...partitionedSubs.setupRefs);
38619
- const validation = validateComponentPackage(pkg);
38620
- if (!validation.valid) {
38621
- const validationErrors = validation.findings.filter((f) => f.level === "error").map((f) => f.message);
38622
- return {
38623
- ok: false,
38624
- componentId,
38625
- componentName: meta.name,
38626
- version: meta.version,
38627
- state: "error",
38628
- steps: [
38629
- {
38630
- step: "validate",
38631
- status: "error",
38632
- message: validationErrors.join("; ")
38633
- }
38634
- ],
38635
- errors: validationErrors,
38636
- setupCreates
38637
- };
38638
- }
38639
- steps.push({ step: "validate", status: "ok" });
38640
- try {
38641
- const existing = await client.thing.get(org, repo, `ComponentInstall/${componentId}`, undefined, { includeRetracted: true });
38642
- if (existing) {
38643
- const collision2 = await checkInstallNameCollision({
38644
- client,
38645
- org,
38646
- repo,
38647
- componentId,
38648
- componentName: meta.name
38649
- });
38650
- if (!collision2.ok) {
38651
- errors.push(collision2.message);
38652
- steps.push({
38653
- step: "check-name-collision",
38654
- status: "error",
38655
- message: collision2.message
38656
- });
38657
- return makeResult(componentId, meta, "error", steps, errors, setupCreates);
38658
- }
38659
- return reconcileComponent(client, org, repo, pkg, source, existing);
38660
- }
38661
- } catch (err) {
38662
- if (!isComponentInstallNotFound(err)) {
38663
- throw err;
38664
- }
38665
- }
38666
- const collision = await checkInstallNameCollision({
38667
- client,
38668
- org,
38669
- repo,
38670
- componentId,
38671
- componentName: meta.name
38672
- });
38673
- if (collision.ok) {
38674
- steps.push({ step: "check-name-collision", status: "ok" });
38675
- } else {
38676
- errors.push(collision.message);
38677
- steps.push({
38678
- step: "check-name-collision",
38679
- status: "error",
38680
- message: collision.message
38681
- });
38682
- return makeResult(componentId, meta, "error", steps, errors, setupCreates);
38683
- }
38684
- try {
38685
- await ensureSharedInfra(client, org, repo);
38686
- steps.push({ step: "ensure-shared-infra", status: "ok" });
38687
- } catch (err) {
38688
- const msg = err instanceof Error ? err.message : String(err);
38689
- errors.push(`Failed to ensure shared infra: ${msg}`);
38690
- steps.push({ step: "ensure-shared-infra", status: "error", message: msg });
38691
- return makeResult(componentId, meta, "error", steps, errors, setupCreates);
38692
- }
38693
- try {
38694
- await client.commit.apply(org, repo, `Install ${meta.name}`, [
38695
- {
38696
- operation: "add",
38697
- kind: "thing",
38698
- name: `ComponentInstall/${componentId}`,
38699
- data: {
38700
- componentId,
38701
- name: meta.name,
38702
- version: meta.version,
38703
- source: "registry",
38704
- sourceKind: "registered",
38705
- sourceRef: source.ref ?? "",
38706
- resolvedSha: source.resolvedSha ?? "",
38707
- ...source.registeredComponentRef ? { registeredComponentRef: source.registeredComponentRef } : {},
38708
- manifestHash: await computeComponentManifestHash(manifest),
38709
- state: "installing",
38710
- manifest: JSON.stringify(manifest),
38711
- installedAt: new Date().toISOString(),
38712
- ...source.installId ? { installId: source.installId } : {}
38713
- }
38714
- }
38715
- ], { componentRef: SYSTEM_REGISTERED_COMPONENT_REF });
38716
- steps.push({ step: "create-install-record", status: "ok" });
38717
- } catch (err) {
38718
- const msg = err instanceof Error ? err.message : String(err);
38719
- errors.push(`Failed to create install record: ${msg}`);
38720
- steps.push({ step: "create-install-record", status: "error", message: msg });
38721
- return makeResult(componentId, meta, "error", steps, errors, setupCreates);
38722
- }
38723
- if (partitionedShapes.manifestEntries.length > 0) {
38724
- const shapeOps = partitionedShapes.manifestEntries.map((shape) => ({
38725
- operation: "add",
38726
- kind: "shape",
38727
- name: shape.name,
38728
- data: manifestShapeData(shape)
38729
- }));
38730
- try {
38731
- await client.commit.apply(org, repo, `Add shapes for ${meta.name}`, shapeOps, { componentRef: source.registeredComponentRef });
38732
- steps.push({ step: "create-shapes", status: "ok" });
38733
- } catch (err) {
38734
- const msg = err instanceof Error ? err.message : String(err);
38735
- if (isAlreadyExistsError(err)) {
38736
- try {
38737
- await reconcileShapesAfterCreateConflict(client, org, repo, pkg, source);
38738
- steps.push({
38739
- step: "create-shapes",
38740
- status: "ok",
38741
- message: "reconciled existing shapes"
38742
- });
38743
- } catch (fallbackErr) {
38744
- const fallbackMsg = fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr);
38745
- errors.push(`Failed to reconcile existing shapes: ${fallbackMsg}`);
38746
- steps.push({
38747
- step: "create-shapes",
38748
- status: "error",
38749
- message: fallbackMsg
38750
- });
38751
- }
38752
- } else {
38753
- errors.push(`Failed to create shapes: ${msg}`);
38754
- steps.push({ step: "create-shapes", status: "error", message: msg });
38755
- }
38756
- }
38757
- }
38758
- for (const cred of partitionedCreds.manifestEntries) {
38759
- const credentialSetName = resolveManifestCredentialName(cred.name, {
38760
- orgName: org,
38761
- repoName: repo
38762
- });
38763
- try {
38764
- await client.credential.createSet(org, repo, credentialSetName, {
38765
- scope: "repo",
38766
- description: cred.description
38767
- });
38768
- steps.push({
38769
- step: `create-credential-${credentialSetName}`,
38770
- status: "ok"
38771
- });
38772
- } catch (err) {
38773
- const msg = err instanceof Error ? err.message : String(err);
38774
- if (isAlreadyExistsError(err)) {
38775
- steps.push({
38776
- step: `create-credential-${credentialSetName}`,
38777
- status: "skipped",
38778
- message: "already exists"
38779
- });
38780
- } else {
38781
- errors.push(`Failed to create credential set ${credentialSetName}: ${msg}`);
38782
- steps.push({
38783
- step: `create-credential-${credentialSetName}`,
38784
- status: "error",
38785
- message: msg
38786
- });
38787
- }
38788
- }
38789
- }
38790
- for (const sub of partitionedSubs.manifestEntries) {
38791
- let compiled;
38792
- try {
38793
- compiled = compileSubscription(sub);
38794
- } catch (err) {
38795
- const msg = err instanceof Error ? err.message : String(err);
38796
- errors.push(`Failed to compile subscription ${sub.name}: ${msg}`);
38797
- steps.push({
38798
- step: `create-sub-${sub.name}`,
38799
- status: "error",
38800
- message: msg
38801
- });
38802
- continue;
38803
- }
38804
- try {
38805
- await client.subscription.create({
38806
- orgName: org,
38807
- repoName: repo,
38808
- name: compiled.name,
38809
- kind: compiled.kind,
38810
- shapeName: compiled.shapeName,
38811
- filterJson: compiled.filterJson,
38812
- webhookUrl: compiled.webhookUrl,
38813
- fallbackWebhookUrl: compiled.fallbackWebhookUrl,
38814
- componentRef: source.registeredComponentRef
38815
- });
38816
- steps.push({ step: `create-sub-${sub.name}`, status: "ok" });
38817
- } catch (err) {
38818
- const msg = err instanceof Error ? err.message : String(err);
38819
- if (isAlreadyExistsError(err)) {
38820
- steps.push({
38821
- step: `create-sub-${sub.name}`,
38822
- status: "skipped",
38823
- message: "already exists"
38824
- });
38825
- } else {
38826
- errors.push(`Failed to create subscription ${sub.name}: ${msg}`);
38827
- steps.push({
38828
- step: `create-sub-${sub.name}`,
38829
- status: "error",
38830
- message: msg
38831
- });
38832
- }
38833
- }
38834
- for (const credName of resolveManifestCredentialNames(compiled.credentials, {
38835
- orgName: org,
38836
- repoName: repo
38837
- })) {
38838
- try {
38839
- await client.subscription.bindCredentials(org, repo, compiled.name, credName);
38840
- } catch {}
38841
- }
38842
- }
38843
- for (const seed of manifest.seeds) {
38844
- const seedName = `${seed.shape}/${seed.name}`;
38845
- try {
38846
- await client.commit.apply(org, repo, `Seed ${seedName} for ${meta.name}`, [
38847
- {
38848
- operation: "add",
38849
- kind: "thing",
38850
- name: seedName,
38851
- data: seed.data
38852
- }
38853
- ], { componentRef: source.registeredComponentRef });
38854
- steps.push({ step: `seed-${seedName}`, status: "ok" });
38855
- } catch (err) {
38856
- const msg = err instanceof Error ? err.message : String(err);
38857
- if (isAlreadyExistsError(err)) {
38858
- steps.push({
38859
- step: `seed-${seedName}`,
38860
- status: "skipped",
38861
- message: "already exists"
38862
- });
38863
- } else {
38864
- errors.push(`Failed to seed ${seedName}: ${msg}`);
38865
- steps.push({ step: `seed-${seedName}`, status: "error", message: msg });
38866
- }
38867
- }
38868
- }
38869
- const state = computeState(errors);
38870
- try {
38871
- await client.commit.apply(org, repo, `Finalize ${meta.name} install`, [
38872
- {
38873
- operation: "revise",
38874
- kind: "thing",
38875
- name: `ComponentInstall/${componentId}`,
38876
- data: {
38877
- componentId,
38878
- name: meta.name,
38879
- version: meta.version,
38880
- source: "registry",
38881
- sourceKind: "registered",
38882
- sourceRef: source.ref ?? "",
38883
- resolvedSha: source.resolvedSha ?? "",
38884
- ...source.registeredComponentRef ? { registeredComponentRef: source.registeredComponentRef } : {},
38885
- manifestHash: await computeComponentManifestHash(manifest),
38886
- state,
38887
- manifest: JSON.stringify(manifest),
38888
- installedAt: new Date().toISOString(),
38889
- updatedAt: new Date().toISOString(),
38890
- ...source.installId ? { installId: source.installId } : {}
38891
- }
38892
- }
38893
- ], { componentRef: SYSTEM_REGISTERED_COMPONENT_REF });
38894
- steps.push({ step: "finalize", status: "ok" });
38895
- } catch (err) {
38896
- const msg = err instanceof Error ? err.message : String(err);
38897
- errors.push(`Failed to finalize install: ${msg}`);
38898
- steps.push({ step: "finalize", status: "error", message: msg });
38899
- }
38900
- return makeResult(componentId, meta, state, steps, errors, setupCreates);
38901
- }
38902
- function computeState(errors) {
38903
- if (errors.length > 0)
38904
- return "degraded";
38905
- return "ready";
38906
- }
38907
- function assertCliMethodsAllowedForSource(pkg, source) {
38908
- const hasCliMethods = (pkg.manifest.cli?.methods?.length ?? 0) > 0;
38909
- if (!hasCliMethods)
38910
- return;
38911
- if (typeof source.registeredComponentRef === "string" && source.registeredComponentRef.length > 0) {
38912
- return;
38913
- }
38914
- throw new CliError(2 /* UserInput */, "USER_INPUT", "Components that declare manifest.cli.methods must be installed from the registry.", undefined, "Register the component, then install it as <org>/<name>. Local path and GitHub URL installs cannot expose CLI methods.");
38915
- }
38916
- async function reconcileShapesAfterCreateConflict(client, org, repo, pkg, source) {
38917
- const { meta, manifest } = pkg;
38918
- const existingShapes = new Map;
38919
- for (const shape of manifest.shapes) {
38920
- try {
38921
- const existingShape = await client.shape.get(org, repo, shape.name, {
38922
- includeRetracted: true
38923
- });
38924
- if (existingShape.componentRef !== source.registeredComponentRef) {
38925
- const owner = existingShape.componentRef ? `owned by component "${existingShape.componentRef}"` : "not owned by this component";
38926
- throw new Error(`Shape "${shape.name}" already exists and is ${owner}; cannot reconcile during fresh install`);
38927
- }
38928
- existingShapes.set(shape.name, existingShape);
38929
- } catch (err) {
38930
- if (!isNotFoundError(err)) {
38931
- throw err;
38932
- }
38933
- existingShapes.set(shape.name, undefined);
38934
- }
38935
- }
38936
- for (const shape of manifest.shapes) {
38937
- const data = manifestShapeData(shape);
38938
- const existingShape = existingShapes.get(shape.name);
38939
- if (existingShape && existingShape.active !== false) {
38940
- await client.commit.apply(org, repo, `Reconcile shape ${shape.name} for ${meta.name}`, [
38941
- {
38942
- operation: "revise",
38943
- kind: "shape",
38944
- name: shape.name,
38945
- data
38946
- }
38947
- ], { componentRef: source.registeredComponentRef });
38948
- continue;
38949
- }
38950
- try {
38951
- await client.commit.apply(org, repo, `Add shape ${shape.name} for ${meta.name}`, [
38952
- {
38953
- operation: "add",
38954
- kind: "shape",
38955
- name: shape.name,
38956
- data
38957
- }
38958
- ], { componentRef: source.registeredComponentRef });
38959
- } catch (err) {
38960
- if (isAlreadyExistsError(err)) {
38961
- throw new Error(`Shape "${shape.name}" already exists but ownership could not be verified; cannot reconcile during fresh install`);
38962
- }
38963
- throw err;
38964
- }
38965
- }
38966
- }
38967
- function makeResult(componentId, meta, state, steps, errors, setupCreates = []) {
38968
- return {
38969
- ok: errors.length === 0,
38970
- componentId,
38971
- componentName: meta.name,
38972
- version: meta.version,
38973
- state,
38974
- steps,
38975
- errors,
38976
- setupCreates
38977
- };
38978
- }
38979
- function partitionByProvisioning(entries, kind) {
38980
- const manifestEntries = [];
38981
- const setupRefs = [];
38982
- for (const entry of entries) {
38983
- if (entry.provisioning === "setup") {
38984
- setupRefs.push(`${kind}/${entry.name}`);
38985
- } else {
38986
- manifestEntries.push(entry);
38987
- }
38988
- }
38989
- return { manifestEntries, setupRefs };
38990
- }
38991
- function isComponentInstallNotFound(err) {
38992
- if (err instanceof WarmHubError) {
38993
- return err.kind === "NOT_FOUND";
38994
- }
38995
- const message = err instanceof Error ? err.message : typeof err === "string" ? err : "";
38996
- return message.includes("NOT_FOUND") || message.toLowerCase().includes("not found");
38997
- }
38998
- async function checkInstallNameCollision(args) {
38999
- try {
39000
- let cursor;
39001
- do {
39002
- const installs = await args.client.thing.query(args.org, args.repo, {
39003
- shape: "ComponentInstall",
39004
- kind: "thing",
39005
- limit: 500,
39006
- cursor
39007
- });
39008
- const colliding = installs.items.find((item) => {
39009
- const data = item.data ?? {};
39010
- return typeof data.name === "string" && data.name === args.componentName && typeof data.componentId === "string" && data.componentId !== args.componentId;
39011
- });
39012
- if (colliding) {
39013
- const otherData = colliding.data ?? {};
39014
- const otherId = typeof otherData.componentId === "string" ? otherData.componentId : "<unknown>";
39015
- return {
39016
- ok: false,
39017
- message: `Cannot install "${args.componentName}" (componentId ${args.componentId}) into ${args.org}/${args.repo}: ` + `another component with the same name is already installed there (componentId ${otherId}). ` + "Two components sharing a name collide on `wh <name>` resolution and on the " + "`ComponentConfig/<name>` dispatch-config thing. Remove the existing install record or pick a different name."
39018
- };
39019
- }
39020
- cursor = installs.nextCursor;
39021
- } while (cursor);
39022
- return { ok: true };
39023
- } catch (err) {
39024
- if (isComponentInstallNotFound(err)) {
39025
- return { ok: true };
39026
- }
39027
- const msg = err instanceof Error ? err.message : String(err);
39028
- return { ok: false, message: `Failed to check name collision: ${msg}` };
39029
- }
39030
- }
39031
- function isNotFoundError(err) {
39032
- return isComponentInstallNotFound(err);
39033
- }
39034
- async function installFromManifest(client, org, repo, manifest, source) {
39035
- const pkg = {
39036
- meta: {
39037
- id: manifest.component.id,
39038
- name: manifest.component.name,
39039
- version: manifest.component.version
39040
- },
39041
- manifest,
39042
- rootDir: ""
39043
- };
39044
- return installComponent(client, org, repo, pkg, source);
39045
- }
39046
38141
  // ../../packages/warmhub-cli/package.json
39047
38142
  var package_default2 = {
39048
38143
  name: "@warmhub/warmhub-cli",
@@ -39382,7 +38477,7 @@ function resolveLogLevel(flags, env) {
39382
38477
  // package.json
39383
38478
  var package_default3 = {
39384
38479
  name: "@warmhub/cli",
39385
- version: "0.54.0",
38480
+ version: "0.55.0",
39386
38481
  private: false,
39387
38482
  type: "module",
39388
38483
  description: "The wh CLI for WarmHub — create repos, commit and query data, and compound knowledge with your AI agents.",
@@ -39436,43 +38531,12 @@ var package_default3 = {
39436
38531
  devDependencies: {
39437
38532
  "@warmhub/warmhub-cli": "workspace:*",
39438
38533
  typescript: "5.9.3",
39439
- undici: "6.25.0",
38534
+ undici: "6.27.0",
39440
38535
  vitest: "4.1.5"
39441
38536
  }
39442
38537
  };
39443
38538
 
39444
- // ../../packages/warmhub-cli/src/component-update-source.ts
39445
- function resolveComponentUpdateSource(data) {
39446
- const sourceKind = typeof data.sourceKind === "string" ? data.sourceKind : "";
39447
- const registeredComponentRef = typeof data.registeredComponentRef === "string" ? data.registeredComponentRef : "";
39448
- const source = typeof data.source === "string" ? data.source : "";
39449
- const repoUrl = typeof data.repoUrl === "string" ? data.repoUrl : "";
39450
- const effectiveSource = source || repoUrl;
39451
- if (sourceKind === "system" || effectiveSource === "system") {
39452
- const componentId = typeof data.sourceRef === "string" && data.sourceRef ? data.sourceRef : typeof data.componentId === "string" && data.componentId ? data.componentId : "";
39453
- if (componentId) {
39454
- return { kind: "system", componentId };
39455
- }
39456
- return { kind: "invalid", source: effectiveSource || "system" };
39457
- }
39458
- if (sourceKind === "registered" && registeredComponentRef !== "") {
39459
- return {
39460
- kind: "registered",
39461
- componentRef: registeredComponentRef
39462
- };
39463
- }
39464
- if (effectiveSource === "" || effectiveSource === "local") {
39465
- return { kind: "local" };
39466
- }
39467
- return { kind: "invalid", source: effectiveSource };
39468
- }
39469
-
39470
38539
  // ../../packages/warmhub-cli/src/component-shell.ts
39471
- function rejectRefForRegistered(componentRef, refOverride) {
39472
- if (refOverride !== undefined) {
39473
- throw new CliError(2 /* UserInput */, "USER_INPUT", `'${componentRef}' is a registered component; --ref is not supported (manifest version pinning is unavailable).`, undefined, "Registered components always install the latest published manifest. Re-run without --ref.");
39474
- }
39475
- }
39476
38540
  async function maybeHandleComponentShellBoundary(argv, deps = {}) {
39477
38541
  const parsed = parseArgs(argv);
39478
38542
  const invocation = resolveInvocation(parsed);
@@ -39488,9 +38552,6 @@ async function maybeHandleComponentShellBoundary(argv, deps = {}) {
39488
38552
  const writeErr = deps.err ?? err;
39489
38553
  const debug = getBoolFlag(invocation.flags, "debug") || process.env.WARMHUB_DEBUG === "1";
39490
38554
  let format = "pretty";
39491
- const installFromManifestImpl = deps.installFromManifest ?? installFromManifest;
39492
- const resolveRegisteredInstallImpl = deps.resolveRegisteredInstall ?? resolveRegisteredInstall;
39493
- const callRegisteredSetupImpl = deps.callRegisteredSetup ?? callRegisteredSetup;
39494
38555
  try {
39495
38556
  canonicalizeGlobalFlags({ invocation });
39496
38557
  const formatFlag = getStringFlag(invocation.flags, "format");
@@ -39506,50 +38567,27 @@ async function maybeHandleComponentShellBoundary(argv, deps = {}) {
39506
38567
  config: deps.config,
39507
38568
  client: deps.client
39508
38569
  });
38570
+ const source = invocation.positional[1];
38571
+ if (!source) {
38572
+ return;
38573
+ }
39509
38574
  if (componentShellVerb === "install") {
39510
- const source = invocation.positional[1];
39511
- if (!source) {
39512
- return;
39513
- }
39514
38575
  if (!isRegisteredComponentSource(source)) {
39515
38576
  return;
39516
38577
  }
39517
- rejectRefForRegistered(source, getStringFlag(invocation.flags, "ref"));
39518
- const repoFlag2 = getStringFlag(invocation.flags, "repo") ?? config.defaultRepo;
39519
- return await handleRegisteredInstall({
39520
- componentRef: source,
39521
- repoFlag: repoFlag2,
39522
- client,
39523
- config,
39524
- format,
39525
- writeOut,
39526
- writeErr,
39527
- installFromManifest: installFromManifestImpl,
39528
- resolveRegisteredInstall: resolveRegisteredInstallImpl,
39529
- callRegisteredSetup: callRegisteredSetupImpl
39530
- });
39531
- }
39532
- const componentRef = invocation.positional[1];
39533
- if (!componentRef) {
39534
- return;
39535
- }
39536
- if (!isRegisteredComponentSource(componentRef)) {
39537
- throw new CliError(2 /* UserInput */, "USER_INPUT", `Invalid component reference '${componentRef}'. Expected '<org>/<name>' with no extra slashes and no empty parts.`, undefined, "Usage: wh component update <org/name> --repo org/repo");
38578
+ } else if (!isRegisteredComponentSource(source)) {
38579
+ throw new CliError(2 /* UserInput */, "USER_INPUT", `Invalid component reference '${source}'. Expected '<org>/<name>' with no extra slashes and no empty parts.`, undefined, "Usage: wh component update <org/name> --repo org/repo");
39538
38580
  }
39539
38581
  const repoFlag = getStringFlag(invocation.flags, "repo") ?? config.defaultRepo;
39540
- const refOverride = getStringFlag(invocation.flags, "ref");
39541
- return await handleComponentUpdate({
39542
- componentRef,
39543
- repoFlag,
39544
- refOverride,
38582
+ const parsedRepo = parseOrgRepo(repoFlag, config);
38583
+ return await performRegisteredInstall({
38584
+ componentRef: source,
38585
+ verb: componentShellVerb === "install" ? "Installed" : "Updated",
39545
38586
  client,
39546
- config,
38587
+ parsedRepo,
39547
38588
  format,
39548
38589
  writeOut,
39549
- writeErr,
39550
- installFromManifest: installFromManifestImpl,
39551
- resolveRegisteredInstall: resolveRegisteredInstallImpl,
39552
- callRegisteredSetup: callRegisteredSetupImpl
38590
+ writeErr
39553
38591
  });
39554
38592
  } catch (error) {
39555
38593
  return printCliError(toCliError2(error), writeErr, {
@@ -39558,91 +38596,40 @@ async function maybeHandleComponentShellBoundary(argv, deps = {}) {
39558
38596
  });
39559
38597
  }
39560
38598
  }
39561
- async function resolveRegisteredInstall(args) {
39562
- const [ownerOrg, componentName] = args.componentRef.split("/");
38599
+ async function performRegisteredInstall(args) {
38600
+ const installRepo = `${args.parsedRepo.org}/${args.parsedRepo.repo}`;
38601
+ let result;
39563
38602
  try {
39564
- return await args.client.component.registry.resolve(ownerOrg, componentName, args.installRepo);
38603
+ result = await args.client.component.install(args.parsedRepo.org, args.parsedRepo.repo, args.componentRef);
39565
38604
  } catch (error) {
39566
- const backendCode = warmHubErrorBackendCode(error);
39567
- const status = warmHubErrorStatus(error);
39568
- const message = error instanceof Error ? error.message : String(error);
39569
- if (backendCode === "NOT_FOUND" || warmHubErrorKind(error) === "NOT_FOUND" && message === "Registered component not found") {
39570
- throw new CliError(2 /* UserInput */, "USER_INPUT", `No component registered as ${args.componentRef}`, undefined, `Register it first with 'wh component register ${args.componentRef.split("/")[1] ?? args.componentRef} --org ${args.componentRef.split("/")[0] ?? "<org>"} --manifest <path>'.`, undefined, backendCode ?? "NOT_FOUND");
39571
- }
39572
- if (warmHubErrorKind(error) === "NOT_FOUND" && status === 404 && backendCode === undefined) {
39573
- throw new CliError(4 /* Backend */, "BACKEND", message, error, "The backend may not expose the component-registry routes. Confirm the API URL points at a deployment that supports `wh component install`, or check for a proxy/path mismatch.");
38605
+ if (!isMissingRegistrationError(error)) {
38606
+ invalidateInstallSnapshotCache(installRepo);
39574
38607
  }
39575
- throw toCliError2(error);
38608
+ throw mapInstallError(error, args.componentRef, args.verb);
39576
38609
  }
39577
- }
39578
- async function callRegisteredSetup(args) {
39579
- const [ownerOrg, componentName] = args.componentRef.split("/");
39580
- return await args.client.component.registry.setupCall(ownerOrg, componentName, {
39581
- installId: args.installId,
39582
- installRepo: args.installRepo,
39583
- expectedManifestHash: args.expectedManifestHash
39584
- });
39585
- }
39586
- async function handleRegisteredInstall(args) {
39587
- const parsedRepo = parseOrgRepo(args.repoFlag, args.config);
39588
- return performRegisteredInstall({
39589
- componentRef: args.componentRef,
39590
- verb: "Installed",
39591
- client: args.client,
39592
- parsedRepo,
39593
- format: args.format,
39594
- writeOut: args.writeOut,
39595
- writeErr: args.writeErr,
39596
- installFromManifest: args.installFromManifest,
39597
- resolveRegisteredInstall: args.resolveRegisteredInstall,
39598
- callRegisteredSetup: args.callRegisteredSetup
39599
- });
39600
- }
39601
- async function performRegisteredInstall(args) {
39602
- const installRepo = `${args.parsedRepo.org}/${args.parsedRepo.repo}`;
39603
- const resolved = await args.resolveRegisteredInstall({
39604
- componentRef: args.componentRef,
39605
- installRepo,
39606
- client: args.client
39607
- });
39608
- const persistedInstallId = readPersistedString(args.persistedInstallData, "installId");
39609
- const installId = persistedInstallId ?? resolved.installId;
39610
38610
  invalidateInstallSnapshotCache(installRepo);
39611
- const result = await args.installFromManifest(args.client, args.parsedRepo.org, args.parsedRepo.repo, resolved.manifest, {
39612
- installId,
39613
- registeredComponentRef: args.componentRef
39614
- });
39615
- if (!result.ok) {
39616
- await writeInstallResult(args.writeOut, args.writeErr, args.format, args.verb, result, installRepo, args.client);
39617
- return 1 /* Runtime */;
38611
+ await writeInstallResult(args.writeOut, args.writeErr, args.format, args.verb, result, installRepo, args.client);
38612
+ return 0 /* Ok */;
38613
+ }
38614
+ function mapInstallError(error, componentRef, verb) {
38615
+ if (isMissingRegistrationError(error)) {
38616
+ const [ownerOrg, name] = componentRef.split("/");
38617
+ const backendCode = warmHubErrorBackendCode(error);
38618
+ return new CliError(2 /* UserInput */, "USER_INPUT", `No component registered as ${componentRef}`, undefined, `Register it first with 'wh component register ${name ?? componentRef} --org ${ownerOrg ?? "<org>"} --manifest <path>'.`, undefined, backendCode ?? "NOT_FOUND");
39618
38619
  }
39619
- if (resolved.hasSetup) {
39620
- let setupResult;
39621
- try {
39622
- setupResult = await args.callRegisteredSetup({
39623
- componentRef: args.componentRef,
39624
- installRepo,
39625
- installId,
39626
- expectedManifestHash: resolved.manifestHash,
39627
- client: args.client
39628
- });
39629
- } catch (error) {
39630
- if (isMissingManifestPermissionError(error)) {
39631
- const backendCode = warmHubErrorBackendCode(error) ?? warmHubErrorKind(error);
39632
- throw new CliError(2 /* UserInput */, "USER_INPUT", error.message, undefined, `Ask an org owner/admin to grant the missing permissions on the install repo, then re-run ${args.verb === "Installed" ? "install" : "update"}.`, undefined, backendCode);
39633
- }
39634
- throw error;
39635
- }
39636
- if (!setupResult.ok) {
39637
- throw new CliError(1 /* Runtime */, "BACKEND", `Component setup failed with status ${setupResult.status}${setupResult.body ? `: ${setupResult.body}` : ""}`);
39638
- }
38620
+ if (isMissingManifestPermissionError(error)) {
38621
+ const backendCode = warmHubErrorBackendCode(error) ?? warmHubErrorKind(error);
38622
+ return new CliError(2 /* UserInput */, "USER_INPUT", error.message, undefined, `Ask an org owner/admin to grant the missing permissions on the install repo, then re-run ${verb === "Installed" ? "install" : "update"}.`, undefined, backendCode);
39639
38623
  }
39640
- await writeInstallResult(args.writeOut, args.writeErr, args.format, args.verb, result, installRepo, args.client);
39641
- return result.ok ? 0 /* Ok */ : 1 /* Runtime */;
38624
+ return error;
39642
38625
  }
39643
- function readPersistedString(data, key) {
39644
- const value = data?.[key];
39645
- return typeof value === "string" && value.length > 0 ? value : undefined;
38626
+ var REGISTRATION_NOT_FOUND_MESSAGE = "Registered component not found";
38627
+ function isMissingRegistrationError(error) {
38628
+ const message = error instanceof Error ? error.message : String(error);
38629
+ if (message !== REGISTRATION_NOT_FOUND_MESSAGE) {
38630
+ return false;
38631
+ }
38632
+ return warmHubErrorBackendCode(error) === "NOT_FOUND" || warmHubErrorKind(error) === "NOT_FOUND";
39646
38633
  }
39647
38634
  function isMissingManifestPermissionError(error) {
39648
38635
  return warmHubErrorKind(error) === "FORBIDDEN" && error instanceof Error && error.message.startsWith("Cannot install: caller is missing repo permissions required by the manifest:");
@@ -39655,14 +38642,6 @@ function warmHubErrorKind(error) {
39655
38642
  const record = error;
39656
38643
  return typeof record.kind === "string" ? record.kind : typeof record.code === "string" ? record.code : undefined;
39657
38644
  }
39658
- function warmHubErrorStatus(error) {
39659
- if (error instanceof WarmHubError)
39660
- return error.status;
39661
- if (!error || typeof error !== "object")
39662
- return;
39663
- const status = error.status;
39664
- return typeof status === "number" ? status : undefined;
39665
- }
39666
38645
  function warmHubErrorBackendCode(error) {
39667
38646
  if (error instanceof WarmHubError)
39668
38647
  return error.backendCode;
@@ -39671,56 +38650,22 @@ function warmHubErrorBackendCode(error) {
39671
38650
  const backendCode = error.backendCode;
39672
38651
  return typeof backendCode === "string" ? backendCode : undefined;
39673
38652
  }
39674
- async function handleComponentUpdate(args) {
39675
- const parsedRepo = parseOrgRepo(args.repoFlag, args.config);
39676
- const installRepo = `${parsedRepo.org}/${parsedRepo.repo}`;
39677
- const componentId = await resolveInstalledComponentRefId(args.client, parsedRepo.org, parsedRepo.repo, args.componentRef);
39678
- const installThing = await args.client.thing.get(parsedRepo.org, parsedRepo.repo, `ComponentInstall/${componentId}`);
39679
- const installData = installThing.data && typeof installThing.data === "object" ? installThing.data : {};
39680
- const source = resolveComponentUpdateSource(installData);
39681
- if (source.kind === "registered") {
39682
- rejectRefForRegistered(source.componentRef, args.refOverride);
39683
- if (source.componentRef !== args.componentRef) {
39684
- throw new CliError(2 /* UserInput */, "USER_INPUT", `Component '${args.componentRef}' resolved to an install for '${source.componentRef}', which is inconsistent with the install record.`);
39685
- }
39686
- return performRegisteredInstall({
39687
- componentRef: source.componentRef,
39688
- persistedInstallData: installData,
39689
- verb: "Updated",
39690
- client: args.client,
39691
- parsedRepo,
39692
- format: args.format,
39693
- writeOut: args.writeOut,
39694
- writeErr: args.writeErr,
39695
- installFromManifest: args.installFromManifest,
39696
- resolveRegisteredInstall: args.resolveRegisteredInstall,
39697
- callRegisteredSetup: args.callRegisteredSetup
39698
- });
39699
- }
39700
- if (source.kind === "system") {
39701
- throw new CliError(2 /* UserInput */, "USER_INPUT", `Component '${args.componentRef}' is a platform-managed system install and cannot be updated via the CLI; it is reconciled automatically by the WarmHub backend.`);
39702
- }
39703
- throw new CliError(2 /* UserInput */, "USER_INPUT", `Component '${args.componentRef}' was not installed from a registered component and can no longer be updated in place.`, undefined, "Register the component (`wh component register <name> --org <org> --manifest <path>`) and reinstall it with `wh component install <org>/<name>`.");
39704
- }
39705
38653
  async function writeInstallResult(writeOut, writeErr, format, verb, result, installRepo, client) {
39706
- if (result.ok) {
39707
- await rebuildInstallSnapshotCache(installRepo, client);
39708
- const reservedWarning = formatReservedNameWarning(result.componentName);
39709
- if (reservedWarning) {
39710
- writeErr(reservedWarning);
39711
- }
38654
+ await rebuildInstallSnapshotCache(installRepo, client);
38655
+ const reservedWarning = formatReservedNameWarning(result.componentName);
38656
+ if (reservedWarning) {
38657
+ writeErr(reservedWarning);
39712
38658
  }
39713
38659
  if (format === "json" || format === "jsonl") {
39714
38660
  writeOut(JSON.stringify(result));
39715
38661
  return;
39716
38662
  }
39717
- if (result.ok) {
39718
- writeOut(`${verb} ${result.componentName} v${result.version} [${result.state}]`);
39719
- return;
38663
+ writeOut(`${verb} ${result.componentName} v${result.version} [${result.state}]`);
38664
+ if (result.errors.length > 0) {
38665
+ writeErr(`Completed with warnings: ${result.errors.join("; ")}`);
39720
38666
  }
39721
- writeOut(`${verb === "Installed" ? "Install" : "Update"} failed: ${result.errors.join("; ")}`);
39722
38667
  }
39723
- // ../../node_modules/.bun/undici@6.25.0/node_modules/undici/index.js
38668
+ // ../../node_modules/.bun/undici@6.27.0/node_modules/undici/index.js
39724
38669
  var Client = require_client();
39725
38670
  var Dispatcher = require_dispatcher();
39726
38671
  var Pool = require_pool();
@@ -40173,4 +39118,4 @@ if (!updateCheckSuppressedByArgv && shouldRunUpdateCheck(updateEligibility)) {
40173
39118
  var interceptedExitCode = await maybeHandleComponentShellBoundary(dispatchArgv);
40174
39119
  process.exitCode = interceptedExitCode === undefined ? await runCli(dispatchArgv, { version: package_default3.version }) : interceptedExitCode;
40175
39120
 
40176
- //# debugId=194B08F51AA9569F64756E2164756E21
39121
+ //# debugId=DD2E54A9CAE4693764756E2164756E21