diff --git a/out/cli.cjs b/out/cli.cjs index 9628cd80..30a29c11 100755 --- a/out/cli.cjs +++ b/out/cli.cjs @@ -1545,7 +1545,7 @@ var require_signal_exit = __commonJS({ }; }; } else { - assert = require("assert"); + assert2 = require("assert"); signals = require_signals(); isWin = /^win/i.test(process9.platform); EE = require("events"); @@ -1568,7 +1568,7 @@ var require_signal_exit = __commonJS({ return function() { }; } - assert.equal(typeof cb, "function", "a callback must be provided for exit handler"); + assert2.equal(typeof cb, "function", "a callback must be provided for exit handler"); if (loaded === false) { load(); } @@ -1674,7 +1674,7 @@ var require_signal_exit = __commonJS({ } }; } - var assert; + var assert2; var signals; var isWin; var EE; @@ -2043,11 +2043,11 @@ var require_main = __commonJS({ function configDotenv(options) { const dotenvPath = path5.resolve(process.cwd(), ".env"); let encoding = "utf8"; - const debug3 = Boolean(options && options.debug); + const debug5 = Boolean(options && options.debug); if (options && options.encoding) { encoding = options.encoding; } else { - if (debug3) { + if (debug5) { _debug("No encoding is specified. UTF-8 is used by default"); } } @@ -2069,7 +2069,7 @@ var require_main = __commonJS({ const parsed = DotenvModule.parse(fs7.readFileSync(path6, { encoding })); DotenvModule.populate(parsedAll, parsed, options); } catch (e3) { - if (debug3) { + if (debug5) { _debug(`Failed to load ${path6} ${e3.message}`); } lastError = e3; @@ -2125,7 +2125,7 @@ var require_main = __commonJS({ } } function populate(processEnv, parsed, options = {}) { - const debug3 = Boolean(options && options.debug); + const debug5 = Boolean(options && options.debug); const override = Boolean(options && options.override); if (typeof parsed !== "object") { const err = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate"); @@ -2137,7 +2137,7 @@ var require_main = __commonJS({ if (override === true) { processEnv[key] = parsed[key]; } - if (debug3) { + if (debug5) { if (override === true) { _debug(`"${key}" is already defined and WAS overwritten`); } else { @@ -5581,7 +5581,7 @@ var require_URL = __commonJS({ return; } const ctorRegistry = utils.initCtorRegistry(globalObject); - class URL2 { + class URL3 { constructor(url2) { if (arguments.length < 1) { throw new globalObject.TypeError( @@ -5874,7 +5874,7 @@ var require_URL = __commonJS({ return Impl.implementation.canParse(...args); } } - Object.defineProperties(URL2.prototype, { + Object.defineProperties(URL3.prototype, { toJSON: { enumerable: true }, href: { enumerable: true }, toString: { enumerable: true }, @@ -5891,18 +5891,18 @@ var require_URL = __commonJS({ hash: { enumerable: true }, [Symbol.toStringTag]: { value: "URL", configurable: true } }); - Object.defineProperties(URL2, { parse: { enumerable: true }, canParse: { enumerable: true } }); - ctorRegistry[interfaceName] = URL2; + Object.defineProperties(URL3, { parse: { enumerable: true }, canParse: { enumerable: true } }); + ctorRegistry[interfaceName] = URL3; Object.defineProperty(globalObject, interfaceName, { configurable: true, writable: true, - value: URL2 + value: URL3 }); if (globalNames.includes("Window")) { Object.defineProperty(globalObject, "webkitURL", { configurable: true, writable: true, - value: URL2 + value: URL3 }); } }; @@ -5914,9 +5914,9 @@ var require_URL = __commonJS({ var require_webidl2js_wrapper = __commonJS({ "node_modules/whatwg-url/webidl2js-wrapper.js"(exports2) { "use strict"; - var URL2 = require_URL(); + var URL3 = require_URL(); var URLSearchParams2 = require_URLSearchParams(); - exports2.URL = URL2; + exports2.URL = URL3; exports2.URLSearchParams = URLSearchParams2; } }); @@ -5925,11 +5925,11 @@ var require_webidl2js_wrapper = __commonJS({ var require_whatwg_url = __commonJS({ "node_modules/whatwg-url/index.js"(exports2) { "use strict"; - var { URL: URL2, URLSearchParams: URLSearchParams2 } = require_webidl2js_wrapper(); + var { URL: URL3, URLSearchParams: URLSearchParams2 } = require_webidl2js_wrapper(); var urlStateMachine = require_url_state_machine(); var percentEncoding = require_percent_encoding(); var sharedGlobalObject = { Array, Object, Promise, String, TypeError }; - URL2.install(sharedGlobalObject, ["Window"]); + URL3.install(sharedGlobalObject, ["Window"]); URLSearchParams2.install(sharedGlobalObject, ["Window"]); exports2.URL = sharedGlobalObject.URL; exports2.URLSearchParams = sharedGlobalObject.URLSearchParams; @@ -5958,7 +5958,7 @@ var require_lib2 = __commonJS({ return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex; } var Stream3 = _interopDefault(require("stream")); - var http3 = _interopDefault(require("http")); + var http4 = _interopDefault(require("http")); var Url = _interopDefault(require("url")); var whatwgUrl = _interopDefault(require_whatwg_url()); var https3 = _interopDefault(require("https")); @@ -6628,10 +6628,10 @@ var require_lib2 = __commonJS({ return [k7.toLowerCase(), headers[MAP][k7].join(", ")]; }); } - var INTERNAL = Symbol("internal"); + var INTERNAL2 = Symbol("internal"); function createHeadersIterator(target, kind3) { const iterator2 = Object.create(HeadersIteratorPrototype); - iterator2[INTERNAL] = { + iterator2[INTERNAL2] = { target, kind: kind3, index: 0 @@ -6643,7 +6643,7 @@ var require_lib2 = __commonJS({ if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { throw new TypeError("Value of `this` is not a HeadersIterator"); } - var _INTERNAL = this[INTERNAL]; + var _INTERNAL = this[INTERNAL2]; const target = _INTERNAL.target, kind3 = _INTERNAL.kind, index = _INTERNAL.index; const values = getHeaders2(target, kind3); const len = values.length; @@ -6653,7 +6653,7 @@ var require_lib2 = __commonJS({ done: true }; } - this[INTERNAL].index = index + 1; + this[INTERNAL2].index = index + 1; return { value: values[index], done: false @@ -6698,7 +6698,7 @@ var require_lib2 = __commonJS({ return headers; } var INTERNALS$1 = Symbol("Response internals"); - var STATUS_CODES = http3.STATUS_CODES; + var STATUS_CODES = http4.STATUS_CODES; var Response6 = class _Response { constructor() { let body = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null; @@ -6774,12 +6774,12 @@ var require_lib2 = __commonJS({ configurable: true }); var INTERNALS$2 = Symbol("Request internals"); - var URL2 = Url.URL || whatwgUrl.URL; + var URL3 = Url.URL || whatwgUrl.URL; var parse_url = Url.parse; var format_url = Url.format; function parseURL(urlStr) { if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { - urlStr = new URL2(urlStr).toString(); + urlStr = new URL3(urlStr).toString(); } return parse_url(urlStr); } @@ -6951,7 +6951,7 @@ var require_lib2 = __commonJS({ return new fetch4.Promise(function(resolve, reject) { const request3 = new Request6(url2, opts); const options = getNodeRequestOptions(request3); - const send = (options.protocol === "https:" ? https3 : http3).request; + const send = (options.protocol === "https:" ? https3 : http4).request; const signal = request3.signal; let response = null; const abort = function abort2() { @@ -9409,7 +9409,7 @@ var require_agent = __commonJS({ "use strict"; var OriginalAgent = require("http").Agent; var ms = require_humanize_ms(); - var debug3 = require("util").debuglog("agentkeepalive"); + var debug5 = require("util").debuglog("agentkeepalive"); var { INIT_SOCKET, CURRENT_ID, @@ -9429,7 +9429,7 @@ var require_agent = __commonJS({ function deprecate2(message) { console.log("[agentkeepalive:deprecated] %s", message); } - var Agent3 = class extends OriginalAgent { + var Agent5 = class extends OriginalAgent { constructor(options) { options = options || {}; options.keepAlive = options.keepAlive !== false; @@ -9511,7 +9511,7 @@ var require_agent = __commonJS({ return true; } if (customTimeout <= 0) { - debug3( + debug5( "%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9534,10 +9534,10 @@ var require_agent = __commonJS({ const agentTimeout = this.options.timeout; if (getSocketTimeout(socket) !== agentTimeout) { socket.setTimeout(agentTimeout); - debug3("%s reset timeout to %sms", socket[SOCKET_NAME], agentTimeout); + debug5("%s reset timeout to %sms", socket[SOCKET_NAME], agentTimeout); } socket[SOCKET_REQUEST_COUNT]++; - debug3( + debug5( "%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9615,12 +9615,12 @@ var require_agent = __commonJS({ return socket.timeout || socket._idleTimeout; } function installListeners(agent, socket, options) { - debug3("%s create, timeout %sms", socket[SOCKET_NAME], getSocketTimeout(socket)); + debug5("%s create, timeout %sms", socket[SOCKET_NAME], getSocketTimeout(socket)); function onFree() { if (!socket._httpMessage && socket[SOCKET_REQUEST_COUNT] === 1) return; socket[SOCKET_REQUEST_FINISHED_COUNT]++; agent.requestCount++; - debug3( + debug5( "%s(requests: %s, finished: %s) free", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9629,7 +9629,7 @@ var require_agent = __commonJS({ const name = agent.getName(options); if (socket.writable && agent.requests[name] && agent.requests[name].length) { socket[SOCKET_REQUEST_COUNT]++; - debug3( + debug5( "%s(requests: %s, finished: %s) will be reuse on agent free event", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9639,7 +9639,7 @@ var require_agent = __commonJS({ } socket.on("free", onFree); function onClose(isError2) { - debug3( + debug5( "%s(requests: %s, finished: %s) close, isError: %s", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9654,7 +9654,7 @@ var require_agent = __commonJS({ const timeout = getSocketTimeout(socket); const req = socket._httpMessage; const reqTimeoutListenerCount = req && req.listeners("timeout").length || 0; - debug3( + debug5( "%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9665,15 +9665,15 @@ var require_agent = __commonJS({ !!req, reqTimeoutListenerCount ); - if (debug3.enabled) { - debug3("timeout listeners: %s", socket.listeners("timeout").map((f4) => f4.name).join(", ")); + if (debug5.enabled) { + debug5("timeout listeners: %s", socket.listeners("timeout").map((f4) => f4.name).join(", ")); } agent.timeoutSocketCount++; const name = agent.getName(options); if (agent.freeSockets[name] && agent.freeSockets[name].indexOf(socket) !== -1) { socket.destroy(); agent.removeSocket(socket, options); - debug3("%s is free, destroy quietly", socket[SOCKET_NAME]); + debug5("%s is free, destroy quietly", socket[SOCKET_NAME]); } else { if (reqTimeoutListenerCount === 0) { const error = new Error("Socket timeout"); @@ -9681,14 +9681,14 @@ var require_agent = __commonJS({ error.timeout = timeout; socket.destroy(error); agent.removeSocket(socket, options); - debug3("%s destroy with timeout error", socket[SOCKET_NAME]); + debug5("%s destroy with timeout error", socket[SOCKET_NAME]); } } } socket.on("timeout", onTimeout); function onError(err) { const listenerCount = socket.listeners("error").length; - debug3( + debug5( "%s(requests: %s, finished: %s) error: %s, listenerCount: %s", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9698,14 +9698,14 @@ var require_agent = __commonJS({ ); agent.errorSocketCount++; if (listenerCount === 1) { - debug3("%s emit uncaught error event", socket[SOCKET_NAME]); + debug5("%s emit uncaught error event", socket[SOCKET_NAME]); socket.removeListener("error", onError); socket.emit("error", err); } } socket.on("error", onError); function onRemove() { - debug3( + debug5( "%s(requests: %s, finished: %s) agentRemove", socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], @@ -9719,7 +9719,7 @@ var require_agent = __commonJS({ } socket.on("agentRemove", onRemove); } - module2.exports = Agent3; + module2.exports = Agent5; function inspect3(obj) { const res = {}; for (const key in obj) { @@ -9740,7 +9740,7 @@ var require_https_agent = __commonJS({ INIT_SOCKET, CREATE_HTTPS_CONNECTION } = require_constants(); - var HttpsAgent = class extends HttpAgent { + var HttpsAgent2 = class extends HttpAgent { constructor(options) { super(options); this.defaultPort = 443; @@ -9760,7 +9760,7 @@ var require_https_agent = __commonJS({ return socket; } }; - HttpsAgent.prototype[CREATE_HTTPS_CONNECTION] = OriginalHttpsAgent.prototype.createConnection; + HttpsAgent2.prototype[CREATE_HTTPS_CONNECTION] = OriginalHttpsAgent.prototype.createConnection; [ "getName", "_getSession", @@ -9769,10 +9769,10 @@ var require_https_agent = __commonJS({ "_evictSession" ].forEach(function(method) { if (typeof OriginalHttpsAgent.prototype[method] === "function") { - HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method]; + HttpsAgent2.prototype[method] = OriginalHttpsAgent.prototype[method]; } }); - module2.exports = HttpsAgent; + module2.exports = HttpsAgent2; } }); @@ -14857,46 +14857,46 @@ var init_fileFromPath = __esm({ var require_common = __commonJS({ "node_modules/debug/src/common.js"(exports2, module2) { function setup(env2) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable2; - createDebug.enable = enable2; - createDebug.enabled = enabled2; - createDebug.humanize = require_ms(); - createDebug.destroy = destroy2; + createDebug3.debug = createDebug3; + createDebug3.default = createDebug3; + createDebug3.coerce = coerce; + createDebug3.disable = disable2; + createDebug3.enable = enable2; + createDebug3.enabled = enabled2; + createDebug3.humanize = require_ms(); + createDebug3.destroy = destroy2; Object.keys(env2).forEach((key) => { - createDebug[key] = env2[key]; + createDebug3[key] = env2[key]; }); - createDebug.names = []; - createDebug.skips = []; - createDebug.formatters = {}; + createDebug3.names = []; + createDebug3.skips = []; + createDebug3.formatters = {}; function selectColor(namespace) { let hash = 0; for (let i3 = 0; i3 < namespace.length; i3++) { hash = (hash << 5) - hash + namespace.charCodeAt(i3); hash |= 0; } - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + return createDebug3.colors[Math.abs(hash) % createDebug3.colors.length]; } - createDebug.selectColor = selectColor; - function createDebug(namespace) { + createDebug3.selectColor = selectColor; + function createDebug3(namespace) { let prevTime; let enableOverride = null; let namespacesCache; let enabledCache; - function debug3(...args) { - if (!debug3.enabled) { + function debug5(...args) { + if (!debug5.enabled) { return; } - const self2 = debug3; + const self2 = debug5; const curr = Number(/* @__PURE__ */ new Date()); const ms = curr - (prevTime || curr); self2.diff = ms; self2.prev = prevTime; self2.curr = curr; prevTime = curr; - args[0] = createDebug.coerce(args[0]); + args[0] = createDebug3.coerce(args[0]); if (typeof args[0] !== "string") { args.unshift("%O"); } @@ -14906,7 +14906,7 @@ var require_common = __commonJS({ return "%"; } index++; - const formatter = createDebug.formatters[format]; + const formatter = createDebug3.formatters[format]; if (typeof formatter === "function") { const val = args[index]; match = formatter.call(self2, val); @@ -14915,25 +14915,25 @@ var require_common = __commonJS({ } return match; }); - createDebug.formatArgs.call(self2, args); - const logFn = self2.log || createDebug.log; + createDebug3.formatArgs.call(self2, args); + const logFn = self2.log || createDebug3.log; logFn.apply(self2, args); } - debug3.namespace = namespace; - debug3.useColors = createDebug.useColors(); - debug3.color = createDebug.selectColor(namespace); - debug3.extend = extend3; - debug3.destroy = createDebug.destroy; - Object.defineProperty(debug3, "enabled", { + debug5.namespace = namespace; + debug5.useColors = createDebug3.useColors(); + debug5.color = createDebug3.selectColor(namespace); + debug5.extend = extend3; + debug5.destroy = createDebug3.destroy; + Object.defineProperty(debug5, "enabled", { enumerable: true, configurable: false, get: () => { if (enableOverride !== null) { return enableOverride; } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); + if (namespacesCache !== createDebug3.namespaces) { + namespacesCache = createDebug3.namespaces; + enabledCache = createDebug3.enabled(namespace); } return enabledCache; }, @@ -14941,21 +14941,21 @@ var require_common = __commonJS({ enableOverride = v5; } }); - if (typeof createDebug.init === "function") { - createDebug.init(debug3); + if (typeof createDebug3.init === "function") { + createDebug3.init(debug5); } - return debug3; + return debug5; } function extend3(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + const newDebug = createDebug3(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); newDebug.log = this.log; return newDebug; } function enable2(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - createDebug.names = []; - createDebug.skips = []; + createDebug3.save(namespaces); + createDebug3.namespaces = namespaces; + createDebug3.names = []; + createDebug3.skips = []; let i3; const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); const len = split.length; @@ -14965,18 +14965,18 @@ var require_common = __commonJS({ } namespaces = split[i3].replace(/\*/g, ".*?"); if (namespaces[0] === "-") { - createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); + createDebug3.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); } else { - createDebug.names.push(new RegExp("^" + namespaces + "$")); + createDebug3.names.push(new RegExp("^" + namespaces + "$")); } } } function disable2() { const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) + ...createDebug3.names.map(toNamespace), + ...createDebug3.skips.map(toNamespace).map((namespace) => "-" + namespace) ].join(","); - createDebug.enable(""); + createDebug3.enable(""); return namespaces; } function enabled2(name) { @@ -14985,13 +14985,13 @@ var require_common = __commonJS({ } let i3; let len; - for (i3 = 0, len = createDebug.skips.length; i3 < len; i3++) { - if (createDebug.skips[i3].test(name)) { + for (i3 = 0, len = createDebug3.skips.length; i3 < len; i3++) { + if (createDebug3.skips[i3].test(name)) { return false; } } - for (i3 = 0, len = createDebug.names.length; i3 < len; i3++) { - if (createDebug.names[i3].test(name)) { + for (i3 = 0, len = createDebug3.names.length; i3 < len; i3++) { + if (createDebug3.names[i3].test(name)) { return true; } } @@ -15009,8 +15009,8 @@ var require_common = __commonJS({ function destroy2() { console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); } - createDebug.enable(createDebug.load()); - return createDebug; + createDebug3.enable(createDebug3.load()); + return createDebug3; } module2.exports = setup; } @@ -15454,11 +15454,11 @@ var require_node = __commonJS({ function load() { return process.env.DEBUG; } - function init(debug3) { - debug3.inspectOpts = {}; + function init(debug5) { + debug5.inspectOpts = {}; const keys = Object.keys(exports2.inspectOpts); for (let i3 = 0; i3 < keys.length; i3++) { - debug3.inspectOpts[keys[i3]] = exports2.inspectOpts[keys[i3]]; + debug5.inspectOpts[keys[i3]] = exports2.inspectOpts[keys[i3]]; } } module2.exports = require_common()(exports2); @@ -15485,471 +15485,6 @@ var require_src2 = __commonJS({ } }); -// node_modules/agent-base/dist/helpers.js -var require_helpers = __commonJS({ - "node_modules/agent-base/dist/helpers.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o3, m5, k7, k22) { - if (k22 === void 0) k22 = k7; - var desc = Object.getOwnPropertyDescriptor(m5, k7); - if (!desc || ("get" in desc ? !m5.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m5[k7]; - } }; - } - Object.defineProperty(o3, k22, desc); - } : function(o3, m5, k7, k22) { - if (k22 === void 0) k22 = k7; - o3[k22] = m5[k7]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v5) { - Object.defineProperty(o3, "default", { enumerable: true, value: v5 }); - } : function(o3, v5) { - o3["default"] = v5; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding(result, mod, k7); - } - __setModuleDefault(result, mod); - return result; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.req = exports2.json = exports2.toBuffer = void 0; - var http3 = __importStar(require("http")); - var https3 = __importStar(require("https")); - async function toBuffer(stream4) { - let length = 0; - const chunks = []; - for await (const chunk of stream4) { - length += chunk.length; - chunks.push(chunk); - } - return Buffer.concat(chunks, length); - } - exports2.toBuffer = toBuffer; - async function json(stream4) { - const buf = await toBuffer(stream4); - const str2 = buf.toString("utf8"); - try { - return JSON.parse(str2); - } catch (_err) { - const err = _err; - err.message += ` (input: ${str2})`; - throw err; - } - } - exports2.json = json; - function req(url2, opts = {}) { - const href = typeof url2 === "string" ? url2 : url2.href; - const req2 = (href.startsWith("https:") ? https3 : http3).request(url2, opts); - const promise = new Promise((resolve, reject) => { - req2.once("response", resolve).once("error", reject).end(); - }); - req2.then = promise.then.bind(promise); - return req2; - } - exports2.req = req; - } -}); - -// node_modules/agent-base/dist/index.js -var require_dist = __commonJS({ - "node_modules/agent-base/dist/index.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o3, m5, k7, k22) { - if (k22 === void 0) k22 = k7; - var desc = Object.getOwnPropertyDescriptor(m5, k7); - if (!desc || ("get" in desc ? !m5.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m5[k7]; - } }; - } - Object.defineProperty(o3, k22, desc); - } : function(o3, m5, k7, k22) { - if (k22 === void 0) k22 = k7; - o3[k22] = m5[k7]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v5) { - Object.defineProperty(o3, "default", { enumerable: true, value: v5 }); - } : function(o3, v5) { - o3["default"] = v5; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding(result, mod, k7); - } - __setModuleDefault(result, mod); - return result; - }; - var __exportStar = exports2 && exports2.__exportStar || function(m5, exports3) { - for (var p4 in m5) if (p4 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p4)) __createBinding(exports3, m5, p4); - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.Agent = void 0; - var net = __importStar(require("net")); - var http3 = __importStar(require("http")); - var https_1 = require("https"); - __exportStar(require_helpers(), exports2); - var INTERNAL = Symbol("AgentBaseInternalState"); - var Agent3 = class extends http3.Agent { - constructor(opts) { - super(opts); - this[INTERNAL] = {}; - } - /** - * Determine whether this is an `http` or `https` request. - */ - isSecureEndpoint(options) { - if (options) { - if (typeof options.secureEndpoint === "boolean") { - return options.secureEndpoint; - } - if (typeof options.protocol === "string") { - return options.protocol === "https:"; - } - } - const { stack } = new Error(); - if (typeof stack !== "string") - return false; - return stack.split("\n").some((l3) => l3.indexOf("(https.js:") !== -1 || l3.indexOf("node:https:") !== -1); - } - // In order to support async signatures in `connect()` and Node's native - // connection pooling in `http.Agent`, the array of sockets for each origin - // has to be updated synchronously. This is so the length of the array is - // accurate when `addRequest()` is next called. We achieve this by creating a - // fake socket and adding it to `sockets[origin]` and incrementing - // `totalSocketCount`. - incrementSockets(name) { - if (this.maxSockets === Infinity && this.maxTotalSockets === Infinity) { - return null; - } - if (!this.sockets[name]) { - this.sockets[name] = []; - } - const fakeSocket = new net.Socket({ writable: false }); - this.sockets[name].push(fakeSocket); - this.totalSocketCount++; - return fakeSocket; - } - decrementSockets(name, socket) { - if (!this.sockets[name] || socket === null) { - return; - } - const sockets = this.sockets[name]; - const index = sockets.indexOf(socket); - if (index !== -1) { - sockets.splice(index, 1); - this.totalSocketCount--; - if (sockets.length === 0) { - delete this.sockets[name]; - } - } - } - // In order to properly update the socket pool, we need to call `getName()` on - // the core `https.Agent` if it is a secureEndpoint. - getName(options) { - const secureEndpoint = typeof options.secureEndpoint === "boolean" ? options.secureEndpoint : this.isSecureEndpoint(options); - if (secureEndpoint) { - return https_1.Agent.prototype.getName.call(this, options); - } - return super.getName(options); - } - createSocket(req, options, cb) { - const connectOpts = { - ...options, - secureEndpoint: this.isSecureEndpoint(options) - }; - const name = this.getName(connectOpts); - const fakeSocket = this.incrementSockets(name); - Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => { - this.decrementSockets(name, fakeSocket); - if (socket instanceof http3.Agent) { - return socket.addRequest(req, connectOpts); - } - this[INTERNAL].currentSocket = socket; - super.createSocket(req, options, cb); - }, (err) => { - this.decrementSockets(name, fakeSocket); - cb(err); - }); - } - createConnection() { - const socket = this[INTERNAL].currentSocket; - this[INTERNAL].currentSocket = void 0; - if (!socket) { - throw new Error("No socket was returned in the `connect()` function"); - } - return socket; - } - get defaultPort() { - return this[INTERNAL].defaultPort ?? (this.protocol === "https:" ? 443 : 80); - } - set defaultPort(v5) { - if (this[INTERNAL]) { - this[INTERNAL].defaultPort = v5; - } - } - get protocol() { - return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:"); - } - set protocol(v5) { - if (this[INTERNAL]) { - this[INTERNAL].protocol = v5; - } - } - }; - exports2.Agent = Agent3; - } -}); - -// node_modules/https-proxy-agent/dist/parse-proxy-response.js -var require_parse_proxy_response = __commonJS({ - "node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports2) { - "use strict"; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.parseProxyResponse = void 0; - var debug_1 = __importDefault(require_src2()); - var debug3 = (0, debug_1.default)("https-proxy-agent:parse-proxy-response"); - function parseProxyResponse(socket) { - return new Promise((resolve, reject) => { - let buffersLength = 0; - const buffers = []; - function read() { - const b7 = socket.read(); - if (b7) - ondata(b7); - else - socket.once("readable", read); - } - function cleanup() { - socket.removeListener("end", onend); - socket.removeListener("error", onerror); - socket.removeListener("readable", read); - } - function onend() { - cleanup(); - debug3("onend"); - reject(new Error("Proxy connection ended before receiving CONNECT response")); - } - function onerror(err) { - cleanup(); - debug3("onerror %o", err); - reject(err); - } - function ondata(b7) { - buffers.push(b7); - buffersLength += b7.length; - const buffered = Buffer.concat(buffers, buffersLength); - const endOfHeaders = buffered.indexOf("\r\n\r\n"); - if (endOfHeaders === -1) { - debug3("have not received end of HTTP headers yet..."); - read(); - return; - } - const headerParts = buffered.slice(0, endOfHeaders).toString("ascii").split("\r\n"); - const firstLine = headerParts.shift(); - if (!firstLine) { - socket.destroy(); - return reject(new Error("No header received from proxy CONNECT response")); - } - const firstLineParts = firstLine.split(" "); - const statusCode = +firstLineParts[1]; - const statusText = firstLineParts.slice(2).join(" "); - const headers = {}; - for (const header of headerParts) { - if (!header) - continue; - const firstColon = header.indexOf(":"); - if (firstColon === -1) { - socket.destroy(); - return reject(new Error(`Invalid header from proxy CONNECT response: "${header}"`)); - } - const key = header.slice(0, firstColon).toLowerCase(); - const value = header.slice(firstColon + 1).trimStart(); - const current = headers[key]; - if (typeof current === "string") { - headers[key] = [current, value]; - } else if (Array.isArray(current)) { - current.push(value); - } else { - headers[key] = value; - } - } - debug3("got proxy server response: %o %o", firstLine, headers); - cleanup(); - resolve({ - connect: { - statusCode, - statusText, - headers - }, - buffered - }); - } - socket.on("error", onerror); - socket.on("end", onend); - read(); - }); - } - exports2.parseProxyResponse = parseProxyResponse; - } -}); - -// node_modules/https-proxy-agent/dist/index.js -var require_dist2 = __commonJS({ - "node_modules/https-proxy-agent/dist/index.js"(exports2) { - "use strict"; - var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o3, m5, k7, k22) { - if (k22 === void 0) k22 = k7; - var desc = Object.getOwnPropertyDescriptor(m5, k7); - if (!desc || ("get" in desc ? !m5.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { - return m5[k7]; - } }; - } - Object.defineProperty(o3, k22, desc); - } : function(o3, m5, k7, k22) { - if (k22 === void 0) k22 = k7; - o3[k22] = m5[k7]; - }); - var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v5) { - Object.defineProperty(o3, "default", { enumerable: true, value: v5 }); - } : function(o3, v5) { - o3["default"] = v5; - }); - var __importStar = exports2 && exports2.__importStar || function(mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) { - for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding(result, mod, k7); - } - __setModuleDefault(result, mod); - return result; - }; - var __importDefault = exports2 && exports2.__importDefault || function(mod) { - return mod && mod.__esModule ? mod : { "default": mod }; - }; - Object.defineProperty(exports2, "__esModule", { value: true }); - exports2.HttpsProxyAgent = void 0; - var net = __importStar(require("net")); - var tls = __importStar(require("tls")); - var assert_1 = __importDefault(require("assert")); - var debug_1 = __importDefault(require_src2()); - var agent_base_1 = require_dist(); - var url_1 = require("url"); - var parse_proxy_response_1 = require_parse_proxy_response(); - var debug3 = (0, debug_1.default)("https-proxy-agent"); - var HttpsProxyAgent5 = class extends agent_base_1.Agent { - constructor(proxy, opts) { - super(opts); - this.options = { path: void 0 }; - this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy; - this.proxyHeaders = opts?.headers ?? {}; - debug3("Creating new HttpsProxyAgent instance: %o", this.proxy.href); - const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, ""); - const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80; - this.connectOpts = { - // Attempt to negotiate http/1.1 for proxy servers that support http/2 - ALPNProtocols: ["http/1.1"], - ...opts ? omit(opts, "headers") : null, - host, - port - }; - } - /** - * Called when the node-core HTTP client library is creating a - * new HTTP request. - */ - async connect(req, opts) { - const { proxy } = this; - if (!opts.host) { - throw new TypeError('No "host" provided'); - } - let socket; - if (proxy.protocol === "https:") { - debug3("Creating `tls.Socket`: %o", this.connectOpts); - const servername = this.connectOpts.servername || this.connectOpts.host; - socket = tls.connect({ - ...this.connectOpts, - servername: servername && net.isIP(servername) ? void 0 : servername - }); - } else { - debug3("Creating `net.Socket`: %o", this.connectOpts); - socket = net.connect(this.connectOpts); - } - const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders }; - const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host; - let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\r -`; - if (proxy.username || proxy.password) { - const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`; - headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`; - } - headers.Host = `${host}:${opts.port}`; - if (!headers["Proxy-Connection"]) { - headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close"; - } - for (const name of Object.keys(headers)) { - payload += `${name}: ${headers[name]}\r -`; - } - const proxyResponsePromise = (0, parse_proxy_response_1.parseProxyResponse)(socket); - socket.write(`${payload}\r -`); - const { connect, buffered } = await proxyResponsePromise; - req.emit("proxyConnect", connect); - this.emit("proxyConnect", connect, req); - if (connect.statusCode === 200) { - req.once("socket", resume); - if (opts.secureEndpoint) { - debug3("Upgrading socket connection to TLS"); - const servername = opts.servername || opts.host; - return tls.connect({ - ...omit(opts, "host", "path", "port"), - socket, - servername: net.isIP(servername) ? void 0 : servername - }); - } - return socket; - } - socket.destroy(); - const fakeSocket = new net.Socket({ writable: false }); - fakeSocket.readable = true; - req.once("socket", (s2) => { - debug3("Replaying proxy buffer for failed request"); - (0, assert_1.default)(s2.listenerCount("data") > 0); - s2.push(buffered); - s2.push(null); - }); - return fakeSocket; - } - }; - HttpsProxyAgent5.protocols = ["http", "https"]; - exports2.HttpsProxyAgent = HttpsProxyAgent5; - function resume(socket) { - socket.resume(); - } - function omit(obj, ...keys) { - const ret = {}; - let key; - for (key in obj) { - if (!keys.includes(key)) { - ret[key] = obj[key]; - } - } - return ret; - } - } -}); - // node_modules/delayed-stream/lib/delayed_stream.js var require_delayed_stream = __commonJS({ "node_modules/delayed-stream/lib/delayed_stream.js"(exports2, module2) { @@ -25059,7 +24594,7 @@ var require_form_data = __commonJS({ var CombinedStream = require_combined_stream(); var util4 = require("util"); var path5 = require("path"); - var http3 = require("http"); + var http4 = require("http"); var https3 = require("https"); var parseUrl = require("url").parse; var fs7 = require("fs"); @@ -25329,7 +24864,7 @@ var require_form_data = __commonJS({ if (options.protocol == "https:") { request3 = https3.request(options); } else { - request3 = http3.request(options); + request3 = http4.request(options); } this.getLength(function(err, length) { if (err && err !== "Unknown stream") { @@ -25440,19 +24975,19 @@ var require_proxy_from_env = __commonJS({ // node_modules/follow-redirects/debug.js var require_debug = __commonJS({ "node_modules/follow-redirects/debug.js"(exports2, module2) { - var debug3; + var debug5; module2.exports = function() { - if (!debug3) { + if (!debug5) { try { - debug3 = require_src2()("follow-redirects"); + debug5 = require_src2()("follow-redirects"); } catch (error) { } - if (typeof debug3 !== "function") { - debug3 = function() { + if (typeof debug5 !== "function") { + debug5 = function() { }; } } - debug3.apply(null, arguments); + debug5.apply(null, arguments); }; } }); @@ -25461,15 +24996,15 @@ var require_debug = __commonJS({ var require_follow_redirects = __commonJS({ "node_modules/follow-redirects/index.js"(exports2, module2) { var url2 = require("url"); - var URL2 = url2.URL; - var http3 = require("http"); + var URL3 = url2.URL; + var http4 = require("http"); var https3 = require("https"); var Writable = require("stream").Writable; - var assert = require("assert"); - var debug3 = require_debug(); + var assert2 = require("assert"); + var debug5 = require_debug(); var useNativeURL = false; try { - assert(new URL2()); + assert2(new URL3()); } catch (error) { useNativeURL = error.code === "ERR_INVALID_URL"; } @@ -25775,7 +25310,7 @@ var require_follow_redirects = __commonJS({ var currentHost = currentHostHeader || currentUrlParts.host; var currentUrl = /^\w+:/.test(location) ? this._currentUrl : url2.format(Object.assign(currentUrlParts, { host: currentHost })); var redirectUrl = resolveUrl(location, currentUrl); - debug3("redirecting to", redirectUrl.href); + debug5("redirecting to", redirectUrl.href); this._isRedirect = true; spreadUrlObject(redirectUrl, this._options); if (redirectUrl.protocol !== currentUrlParts.protocol && redirectUrl.protocol !== "https:" || redirectUrl.host !== currentHost && !isSubdomain(redirectUrl.host, currentHost)) { @@ -25828,8 +25363,8 @@ var require_follow_redirects = __commonJS({ if (!isString2(options.host) && !isString2(options.hostname)) { options.hostname = "::1"; } - assert.equal(options.protocol, protocol, "protocol mismatch"); - debug3("options", options); + assert2.equal(options.protocol, protocol, "protocol mismatch"); + debug5("options", options); return new RedirectableRequest(options, callback); } function get(input, options, callback) { @@ -25849,7 +25384,7 @@ var require_follow_redirects = __commonJS({ function parseUrl(input) { var parsed; if (useNativeURL) { - parsed = new URL2(input); + parsed = new URL3(input); } else { parsed = validateUrl(url2.parse(input)); if (!isString2(parsed.protocol)) { @@ -25859,7 +25394,7 @@ var require_follow_redirects = __commonJS({ return parsed; } function resolveUrl(relative, base) { - return useNativeURL ? new URL2(relative, base) : parseUrl(url2.resolve(base, relative)); + return useNativeURL ? new URL3(relative, base) : parseUrl(url2.resolve(base, relative)); } function validateUrl(input) { if (/^\[/.test(input.hostname) && !/^\[[:0-9a-f]+\]$/i.test(input.hostname)) { @@ -25922,7 +25457,7 @@ var require_follow_redirects = __commonJS({ request3.destroy(error); } function isSubdomain(subdomain, domain) { - assert(isString2(subdomain) && isString2(domain)); + assert2(isString2(subdomain) && isString2(domain)); var dot = subdomain.length - domain.length - 1; return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); } @@ -25936,9 +25471,9 @@ var require_follow_redirects = __commonJS({ return typeof value === "object" && "length" in value; } function isURL(value) { - return URL2 && value instanceof URL2; + return URL3 && value instanceof URL3; } - module2.exports = wrap({ http: http3, https: https3 }); + module2.exports = wrap({ http: http4, https: https3 }); module2.exports.wrap = wrap; } }); @@ -26324,6 +25859,478 @@ var require_tiktoken = __commonJS({ } }); +// node_modules/agent-base/dist/helpers.js +var require_helpers = __commonJS({ + "node_modules/agent-base/dist/helpers.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o3, m5, k7, k22) { + if (k22 === void 0) k22 = k7; + var desc = Object.getOwnPropertyDescriptor(m5, k7); + if (!desc || ("get" in desc ? !m5.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m5[k7]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m5, k7, k22) { + if (k22 === void 0) k22 = k7; + o3[k22] = m5[k7]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v5) { + Object.defineProperty(o3, "default", { enumerable: true, value: v5 }); + } : function(o3, v5) { + o3["default"] = v5; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding(result, mod, k7); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.req = exports2.json = exports2.toBuffer = void 0; + var http4 = __importStar(require("http")); + var https3 = __importStar(require("https")); + async function toBuffer(stream4) { + let length = 0; + const chunks = []; + for await (const chunk of stream4) { + length += chunk.length; + chunks.push(chunk); + } + return Buffer.concat(chunks, length); + } + exports2.toBuffer = toBuffer; + async function json(stream4) { + const buf = await toBuffer(stream4); + const str2 = buf.toString("utf8"); + try { + return JSON.parse(str2); + } catch (_err) { + const err = _err; + err.message += ` (input: ${str2})`; + throw err; + } + } + exports2.json = json; + function req(url2, opts = {}) { + const href = typeof url2 === "string" ? url2 : url2.href; + const req2 = (href.startsWith("https:") ? https3 : http4).request(url2, opts); + const promise = new Promise((resolve, reject) => { + req2.once("response", resolve).once("error", reject).end(); + }); + req2.then = promise.then.bind(promise); + return req2; + } + exports2.req = req; + } +}); + +// node_modules/agent-base/dist/index.js +var require_dist = __commonJS({ + "node_modules/agent-base/dist/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o3, m5, k7, k22) { + if (k22 === void 0) k22 = k7; + var desc = Object.getOwnPropertyDescriptor(m5, k7); + if (!desc || ("get" in desc ? !m5.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m5[k7]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m5, k7, k22) { + if (k22 === void 0) k22 = k7; + o3[k22] = m5[k7]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v5) { + Object.defineProperty(o3, "default", { enumerable: true, value: v5 }); + } : function(o3, v5) { + o3["default"] = v5; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding(result, mod, k7); + } + __setModuleDefault(result, mod); + return result; + }; + var __exportStar = exports2 && exports2.__exportStar || function(m5, exports3) { + for (var p4 in m5) if (p4 !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p4)) __createBinding(exports3, m5, p4); + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.Agent = void 0; + var net3 = __importStar(require("net")); + var http4 = __importStar(require("http")); + var https_1 = require("https"); + __exportStar(require_helpers(), exports2); + var INTERNAL2 = Symbol("AgentBaseInternalState"); + var Agent5 = class extends http4.Agent { + constructor(opts) { + super(opts); + this[INTERNAL2] = {}; + } + /** + * Determine whether this is an `http` or `https` request. + */ + isSecureEndpoint(options) { + if (options) { + if (typeof options.secureEndpoint === "boolean") { + return options.secureEndpoint; + } + if (typeof options.protocol === "string") { + return options.protocol === "https:"; + } + } + const { stack } = new Error(); + if (typeof stack !== "string") + return false; + return stack.split("\n").some((l3) => l3.indexOf("(https.js:") !== -1 || l3.indexOf("node:https:") !== -1); + } + // In order to support async signatures in `connect()` and Node's native + // connection pooling in `http.Agent`, the array of sockets for each origin + // has to be updated synchronously. This is so the length of the array is + // accurate when `addRequest()` is next called. We achieve this by creating a + // fake socket and adding it to `sockets[origin]` and incrementing + // `totalSocketCount`. + incrementSockets(name) { + if (this.maxSockets === Infinity && this.maxTotalSockets === Infinity) { + return null; + } + if (!this.sockets[name]) { + this.sockets[name] = []; + } + const fakeSocket = new net3.Socket({ writable: false }); + this.sockets[name].push(fakeSocket); + this.totalSocketCount++; + return fakeSocket; + } + decrementSockets(name, socket) { + if (!this.sockets[name] || socket === null) { + return; + } + const sockets = this.sockets[name]; + const index = sockets.indexOf(socket); + if (index !== -1) { + sockets.splice(index, 1); + this.totalSocketCount--; + if (sockets.length === 0) { + delete this.sockets[name]; + } + } + } + // In order to properly update the socket pool, we need to call `getName()` on + // the core `https.Agent` if it is a secureEndpoint. + getName(options) { + const secureEndpoint = this.isSecureEndpoint(options); + if (secureEndpoint) { + return https_1.Agent.prototype.getName.call(this, options); + } + return super.getName(options); + } + createSocket(req, options, cb) { + const connectOpts = { + ...options, + secureEndpoint: this.isSecureEndpoint(options) + }; + const name = this.getName(connectOpts); + const fakeSocket = this.incrementSockets(name); + Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => { + this.decrementSockets(name, fakeSocket); + if (socket instanceof http4.Agent) { + try { + return socket.addRequest(req, connectOpts); + } catch (err) { + return cb(err); + } + } + this[INTERNAL2].currentSocket = socket; + super.createSocket(req, options, cb); + }, (err) => { + this.decrementSockets(name, fakeSocket); + cb(err); + }); + } + createConnection() { + const socket = this[INTERNAL2].currentSocket; + this[INTERNAL2].currentSocket = void 0; + if (!socket) { + throw new Error("No socket was returned in the `connect()` function"); + } + return socket; + } + get defaultPort() { + return this[INTERNAL2].defaultPort ?? (this.protocol === "https:" ? 443 : 80); + } + set defaultPort(v5) { + if (this[INTERNAL2]) { + this[INTERNAL2].defaultPort = v5; + } + } + get protocol() { + return this[INTERNAL2].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:"); + } + set protocol(v5) { + if (this[INTERNAL2]) { + this[INTERNAL2].protocol = v5; + } + } + }; + exports2.Agent = Agent5; + } +}); + +// node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent/dist/parse-proxy-response.js +var require_parse_proxy_response = __commonJS({ + "node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.parseProxyResponse = void 0; + var debug_1 = __importDefault(require_src2()); + var debug5 = (0, debug_1.default)("https-proxy-agent:parse-proxy-response"); + function parseProxyResponse2(socket) { + return new Promise((resolve, reject) => { + let buffersLength = 0; + const buffers = []; + function read() { + const b7 = socket.read(); + if (b7) + ondata(b7); + else + socket.once("readable", read); + } + function cleanup() { + socket.removeListener("end", onend); + socket.removeListener("error", onerror); + socket.removeListener("readable", read); + } + function onend() { + cleanup(); + debug5("onend"); + reject(new Error("Proxy connection ended before receiving CONNECT response")); + } + function onerror(err) { + cleanup(); + debug5("onerror %o", err); + reject(err); + } + function ondata(b7) { + buffers.push(b7); + buffersLength += b7.length; + const buffered = Buffer.concat(buffers, buffersLength); + const endOfHeaders = buffered.indexOf("\r\n\r\n"); + if (endOfHeaders === -1) { + debug5("have not received end of HTTP headers yet..."); + read(); + return; + } + const headerParts = buffered.slice(0, endOfHeaders).toString("ascii").split("\r\n"); + const firstLine = headerParts.shift(); + if (!firstLine) { + socket.destroy(); + return reject(new Error("No header received from proxy CONNECT response")); + } + const firstLineParts = firstLine.split(" "); + const statusCode = +firstLineParts[1]; + const statusText = firstLineParts.slice(2).join(" "); + const headers = {}; + for (const header of headerParts) { + if (!header) + continue; + const firstColon = header.indexOf(":"); + if (firstColon === -1) { + socket.destroy(); + return reject(new Error(`Invalid header from proxy CONNECT response: "${header}"`)); + } + const key = header.slice(0, firstColon).toLowerCase(); + const value = header.slice(firstColon + 1).trimStart(); + const current = headers[key]; + if (typeof current === "string") { + headers[key] = [current, value]; + } else if (Array.isArray(current)) { + current.push(value); + } else { + headers[key] = value; + } + } + debug5("got proxy server response: %o %o", firstLine, headers); + cleanup(); + resolve({ + connect: { + statusCode, + statusText, + headers + }, + buffered + }); + } + socket.on("error", onerror); + socket.on("end", onend); + read(); + }); + } + exports2.parseProxyResponse = parseProxyResponse2; + } +}); + +// node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/@azure/core-rest-pipeline/node_modules/https-proxy-agent/dist/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? function(o3, m5, k7, k22) { + if (k22 === void 0) k22 = k7; + var desc = Object.getOwnPropertyDescriptor(m5, k7); + if (!desc || ("get" in desc ? !m5.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { + return m5[k7]; + } }; + } + Object.defineProperty(o3, k22, desc); + } : function(o3, m5, k7, k22) { + if (k22 === void 0) k22 = k7; + o3[k22] = m5[k7]; + }); + var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o3, v5) { + Object.defineProperty(o3, "default", { enumerable: true, value: v5 }); + } : function(o3, v5) { + o3["default"] = v5; + }); + var __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) { + for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding(result, mod, k7); + } + __setModuleDefault(result, mod); + return result; + }; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.HttpsProxyAgent = void 0; + var net3 = __importStar(require("net")); + var tls2 = __importStar(require("tls")); + var assert_1 = __importDefault(require("assert")); + var debug_1 = __importDefault(require_src2()); + var agent_base_1 = require_dist(); + var url_1 = require("url"); + var parse_proxy_response_1 = require_parse_proxy_response(); + var debug5 = (0, debug_1.default)("https-proxy-agent"); + var setServernameFromNonIpHost2 = (options) => { + if (options.servername === void 0 && options.host && !net3.isIP(options.host)) { + return { + ...options, + servername: options.host + }; + } + return options; + }; + var HttpsProxyAgent3 = class extends agent_base_1.Agent { + constructor(proxy, opts) { + super(opts); + this.options = { path: void 0 }; + this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy; + this.proxyHeaders = opts?.headers ?? {}; + debug5("Creating new HttpsProxyAgent instance: %o", this.proxy.href); + const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, ""); + const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80; + this.connectOpts = { + // Attempt to negotiate http/1.1 for proxy servers that support http/2 + ALPNProtocols: ["http/1.1"], + ...opts ? omit2(opts, "headers") : null, + host, + port + }; + } + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + */ + async connect(req, opts) { + const { proxy } = this; + if (!opts.host) { + throw new TypeError('No "host" provided'); + } + let socket; + if (proxy.protocol === "https:") { + debug5("Creating `tls.Socket`: %o", this.connectOpts); + socket = tls2.connect(setServernameFromNonIpHost2(this.connectOpts)); + } else { + debug5("Creating `net.Socket`: %o", this.connectOpts); + socket = net3.connect(this.connectOpts); + } + const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders }; + const host = net3.isIPv6(opts.host) ? `[${opts.host}]` : opts.host; + let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\r +`; + if (proxy.username || proxy.password) { + const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`; + headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`; + } + headers.Host = `${host}:${opts.port}`; + if (!headers["Proxy-Connection"]) { + headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close"; + } + for (const name of Object.keys(headers)) { + payload += `${name}: ${headers[name]}\r +`; + } + const proxyResponsePromise = (0, parse_proxy_response_1.parseProxyResponse)(socket); + socket.write(`${payload}\r +`); + const { connect: connect3, buffered } = await proxyResponsePromise; + req.emit("proxyConnect", connect3); + this.emit("proxyConnect", connect3, req); + if (connect3.statusCode === 200) { + req.once("socket", resume2); + if (opts.secureEndpoint) { + debug5("Upgrading socket connection to TLS"); + return tls2.connect({ + ...omit2(setServernameFromNonIpHost2(opts), "host", "path", "port"), + socket + }); + } + return socket; + } + socket.destroy(); + const fakeSocket = new net3.Socket({ writable: false }); + fakeSocket.readable = true; + req.once("socket", (s2) => { + debug5("Replaying proxy buffer for failed request"); + (0, assert_1.default)(s2.listenerCount("data") > 0); + s2.push(buffered); + s2.push(null); + }); + return fakeSocket; + } + }; + HttpsProxyAgent3.protocols = ["http", "https"]; + exports2.HttpsProxyAgent = HttpsProxyAgent3; + function resume2(socket) { + socket.resume(); + } + function omit2(obj, ...keys) { + const ret = {}; + let key; + for (key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + } +}); + // node_modules/http-proxy-agent/dist/index.js var require_dist3 = __commonJS({ "node_modules/http-proxy-agent/dist/index.js"(exports2) { @@ -26360,23 +26367,23 @@ var require_dist3 = __commonJS({ }; Object.defineProperty(exports2, "__esModule", { value: true }); exports2.HttpProxyAgent = void 0; - var net = __importStar(require("net")); - var tls = __importStar(require("tls")); + var net3 = __importStar(require("net")); + var tls2 = __importStar(require("tls")); var debug_1 = __importDefault(require_src2()); var events_1 = require("events"); var agent_base_1 = require_dist(); var url_1 = require("url"); - var debug3 = (0, debug_1.default)("http-proxy-agent"); + var debug5 = (0, debug_1.default)("http-proxy-agent"); var HttpProxyAgent2 = class extends agent_base_1.Agent { constructor(proxy, opts) { super(opts); this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy; this.proxyHeaders = opts?.headers ?? {}; - debug3("Creating new HttpProxyAgent instance: %o", this.proxy.href); + debug5("Creating new HttpProxyAgent instance: %o", this.proxy.href); const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, ""); const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80; this.connectOpts = { - ...opts ? omit(opts, "headers") : null, + ...opts ? omit2(opts, "headers") : null, host, port }; @@ -26418,22 +26425,22 @@ var require_dist3 = __commonJS({ } let first; let endOfHeaders; - debug3("Regenerating stored HTTP header string for request"); + debug5("Regenerating stored HTTP header string for request"); req._implicitHeader(); if (req.outputData && req.outputData.length > 0) { - debug3("Patching connection write() output buffer with updated header"); + debug5("Patching connection write() output buffer with updated header"); first = req.outputData[0].data; endOfHeaders = first.indexOf("\r\n\r\n") + 4; req.outputData[0].data = req._header + first.substring(endOfHeaders); - debug3("Output buffer: %o", req.outputData[0].data); + debug5("Output buffer: %o", req.outputData[0].data); } let socket; if (this.proxy.protocol === "https:") { - debug3("Creating `tls.Socket`: %o", this.connectOpts); - socket = tls.connect(this.connectOpts); + debug5("Creating `tls.Socket`: %o", this.connectOpts); + socket = tls2.connect(this.connectOpts); } else { - debug3("Creating `net.Socket`: %o", this.connectOpts); - socket = net.connect(this.connectOpts); + debug5("Creating `net.Socket`: %o", this.connectOpts); + socket = net3.connect(this.connectOpts); } await (0, events_1.once)(socket, "connect"); return socket; @@ -26441,7 +26448,7 @@ var require_dist3 = __commonJS({ }; HttpProxyAgent2.protocols = ["http", "https"]; exports2.HttpProxyAgent = HttpProxyAgent2; - function omit(obj, ...keys) { + function omit2(obj, ...keys) { const ret = {}; let key; for (key in obj) { @@ -48240,11 +48247,11 @@ var require_constants2 = __commonJS({ var require_util2 = __commonJS({ "node_modules/undici/lib/core/util.js"(exports2, module2) { "use strict"; - var assert = require("assert"); + var assert2 = require("assert"); var { kDestroyed, kBodyUsed } = require_symbols(); var { IncomingMessage } = require("http"); var stream4 = require("stream"); - var net = require("net"); + var net3 = require("net"); var { InvalidArgumentError } = require_errors3(); var { Blob: Blob5 } = require("buffer"); var nodeUtil = require("util"); @@ -48322,7 +48329,7 @@ var require_util2 = __commonJS({ function getHostname(host) { if (host[0] === "[") { const idx2 = host.indexOf("]"); - assert(idx2 !== -1); + assert2(idx2 !== -1); return host.substring(1, idx2); } const idx = host.indexOf(":"); @@ -48333,9 +48340,9 @@ var require_util2 = __commonJS({ if (!host) { return null; } - assert.strictEqual(typeof host, "string"); + assert2.strictEqual(typeof host, "string"); const servername = getHostname(host); - if (net.isIP(servername)) { + if (net3.isIP(servername)) { return ""; } return servername; @@ -50936,7 +50943,7 @@ var require_util3 = __commonJS({ var { getGlobalOrigin } = require_global(); var { performance: performance2 } = require("perf_hooks"); var { isBlobLike: isBlobLike3, toUSVString, ReadableStreamFrom } = require_util2(); - var assert = require("assert"); + var assert2 = require("assert"); var { isUint8Array } = require("util/types"); var supportedHashes = []; var crypto3; @@ -51126,7 +51133,7 @@ var require_util3 = __commonJS({ } function determineRequestsReferrer(request3) { const policy = request3.referrerPolicy; - assert(policy); + assert2(policy); let referrerSource = null; if (request3.referrer === "client") { const globalOrigin = getGlobalOrigin(); @@ -51184,7 +51191,7 @@ var require_util3 = __commonJS({ } } function stripURLForReferrer(url2, originOnly) { - assert(url2 instanceof URL); + assert2(url2 instanceof URL); if (url2.protocol === "file:" || url2.protocol === "about:" || url2.protocol === "blank:") { return "no-referrer"; } @@ -51363,7 +51370,7 @@ var require_util3 = __commonJS({ if (result === void 0) { throw new TypeError("Value is not JSON serializable"); } - assert(typeof result === "string"); + assert2(typeof result === "string"); return result; } var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); @@ -51457,7 +51464,7 @@ var require_util3 = __commonJS({ } function isomorphicEncode(input) { for (let i3 = 0; i3 < input.length; i3++) { - assert(input.charCodeAt(i3) <= 255); + assert2(input.charCodeAt(i3) <= 255); } return input; } @@ -51477,7 +51484,7 @@ var require_util3 = __commonJS({ } } function urlIsLocal(url2) { - assert("protocol" in url2); + assert2("protocol" in url2); const protocol = url2.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } @@ -51488,7 +51495,7 @@ var require_util3 = __commonJS({ return url2.protocol === "https:"; } function urlIsHttpHttpsScheme(url2) { - assert("protocol" in url2); + assert2("protocol" in url2); const protocol = url2.protocol; return protocol === "http:" || protocol === "https:"; } @@ -51930,7 +51937,7 @@ var require_webidl = __commonJS({ // node_modules/undici/lib/fetch/dataURL.js var require_dataURL = __commonJS({ "node_modules/undici/lib/fetch/dataURL.js"(exports2, module2) { - var assert = require("assert"); + var assert2 = require("assert"); var { atob: atob2 } = require("buffer"); var { isomorphicDecode } = require_util3(); var encoder = new TextEncoder(); @@ -51938,7 +51945,7 @@ var require_dataURL = __commonJS({ var HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/; var HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/; function dataURLProcessor(dataURL) { - assert(dataURL.protocol === "data:"); + assert2(dataURL.protocol === "data:"); let input = URLSerializer(dataURL, true); input = input.slice(5); const position = { position: 0 }; @@ -52124,7 +52131,7 @@ var require_dataURL = __commonJS({ function collectAnHTTPQuotedString(input, position, extractValue) { const positionStart = position.position; let value = ""; - assert(input[position.position] === '"'); + assert2(input[position.position] === '"'); position.position++; while (true) { value += collectASequenceOfCodePoints( @@ -52145,7 +52152,7 @@ var require_dataURL = __commonJS({ value += input[position.position]; position.position++; } else { - assert(quoteOrBackslash === '"'); + assert2(quoteOrBackslash === '"'); break; } } @@ -52155,7 +52162,7 @@ var require_dataURL = __commonJS({ return input.slice(positionStart, position.position); } function serializeAMimeType(mimeType) { - assert(mimeType !== "failure"); + assert2(mimeType !== "failure"); const { parameters, essence } = mimeType; let serialization = essence; for (let [name, value] of parameters.entries()) { @@ -52574,7 +52581,7 @@ var require_body = __commonJS({ var { DOMException: DOMException3, structuredClone: structuredClone2 } = require_constants3(); var { Blob: Blob5, File: NativeFile } = require("buffer"); var { kBodyUsed } = require_symbols(); - var assert = require("assert"); + var assert2 = require("assert"); var { isErrored } = require_util2(); var { isUint8Array, isArrayBuffer: isArrayBuffer3 } = require("util/types"); var { File: UndiciFile } = require_file(); @@ -52612,7 +52619,7 @@ var require_body = __commonJS({ type: void 0 }); } - assert(isReadableStreamLike(stream4)); + assert2(isReadableStreamLike(stream4)); let action = null; let source = null; let length = null; @@ -52728,8 +52735,8 @@ Content-Type: ${value.type || "application/octet-stream"}\r ReadableStream7 = require("stream/web").ReadableStream; } if (object instanceof ReadableStream7) { - assert(!util4.isDisturbed(object), "The body has already been consumed."); - assert(!object.locked, "The stream is locked."); + assert2(!util4.isDisturbed(object), "The body has already been consumed."); + assert2(!object.locked, "The stream is locked."); } return extractBody(object, keepalive); } @@ -52940,7 +52947,7 @@ var require_request = __commonJS({ InvalidArgumentError, NotSupportedError } = require_errors3(); - var assert = require("assert"); + var assert2 = require("assert"); var { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = require_symbols(); var util4 = require_util2(); var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; @@ -53121,8 +53128,8 @@ var require_request = __commonJS({ } } onConnect(abort) { - assert(!this.aborted); - assert(!this.completed); + assert2(!this.aborted); + assert2(!this.completed); if (this.error) { abort(this.error); } else { @@ -53130,21 +53137,21 @@ var require_request = __commonJS({ return this[kHandler].onConnect(abort); } } - onHeaders(statusCode, headers, resume, statusText) { - assert(!this.aborted); - assert(!this.completed); + onHeaders(statusCode, headers, resume2, statusText) { + assert2(!this.aborted); + assert2(!this.completed); if (channels.headers.hasSubscribers) { channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); } try { - return this[kHandler].onHeaders(statusCode, headers, resume, statusText); + return this[kHandler].onHeaders(statusCode, headers, resume2, statusText); } catch (err) { this.abort(err); } } onData(chunk) { - assert(!this.aborted); - assert(!this.completed); + assert2(!this.aborted); + assert2(!this.completed); try { return this[kHandler].onData(chunk); } catch (err) { @@ -53153,13 +53160,13 @@ var require_request = __commonJS({ } } onUpgrade(statusCode, headers, socket) { - assert(!this.aborted); - assert(!this.completed); + assert2(!this.aborted); + assert2(!this.completed); return this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { this.onFinally(); - assert(!this.aborted); + assert2(!this.aborted); this.completed = true; if (channels.trailers.hasSubscribers) { channels.trailers.publish({ request: this, trailers }); @@ -53489,11 +53496,11 @@ var require_dispatcher_base = __commonJS({ var require_connect = __commonJS({ "node_modules/undici/lib/core/connect.js"(exports2, module2) { "use strict"; - var net = require("net"); - var assert = require("assert"); + var net3 = require("net"); + var assert2 = require("assert"); var util4 = require_util2(); var { InvalidArgumentError, ConnectTimeoutError } = require_errors3(); - var tls; + var tls2; var SessionCache; if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { SessionCache = class WeakSessionCache { @@ -53551,17 +53558,17 @@ var require_connect = __commonJS({ const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions); timeout = timeout == null ? 1e4 : timeout; allowH2 = allowH2 != null ? allowH2 : false; - return function connect({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { + return function connect3({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { let socket; if (protocol === "https:") { - if (!tls) { - tls = require("tls"); + if (!tls2) { + tls2 = require("tls"); } servername = servername || options.servername || util4.getServerName(host) || null; const sessionKey = servername || hostname; const session = sessionCache.get(sessionKey) || null; - assert(sessionKey); - socket = tls.connect({ + assert2(sessionKey); + socket = tls2.connect({ highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... ...options, @@ -53579,8 +53586,8 @@ var require_connect = __commonJS({ sessionCache.set(sessionKey, session2); }); } else { - assert(!httpSocket, "httpSocket can only be sent on TLS update"); - socket = net.connect({ + assert2(!httpSocket, "httpSocket can only be sent on TLS update"); + socket = net3.connect({ highWaterMark: 64 * 1024, // Same as nodejs fs streams. ...options, @@ -53988,7 +53995,7 @@ var require_RedirectHandler = __commonJS({ "use strict"; var util4 = require_util2(); var { kBodyUsed } = require_symbols(); - var assert = require("assert"); + var assert2 = require("assert"); var { InvalidArgumentError } = require_errors3(); var EE = require("events"); var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; @@ -53999,7 +54006,7 @@ var require_RedirectHandler = __commonJS({ this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], "disturbed"); + assert2(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } @@ -54020,7 +54027,7 @@ var require_RedirectHandler = __commonJS({ if (util4.isStream(this.opts.body)) { if (util4.bodyLength(this.opts.body) === 0) { this.opts.body.on("data", function() { - assert(false); + assert2(false); }); } if (typeof this.opts.body.readableDidRead !== "boolean") { @@ -54045,13 +54052,13 @@ var require_RedirectHandler = __commonJS({ onError(error) { this.handler.onError(error); } - onHeaders(statusCode, headers, resume, statusText) { + onHeaders(statusCode, headers, resume2, statusText) { this.location = this.history.length >= this.maxRedirections || util4.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); if (this.opts.origin) { this.history.push(new URL(this.opts.path, this.opts.origin)); } if (!this.location) { - return this.handler.onHeaders(statusCode, headers, resume, statusText); + return this.handler.onHeaders(statusCode, headers, resume2, statusText); } const { origin: origin2, pathname, search } = util4.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); const path5 = search ? `${pathname}${search}` : pathname; @@ -54124,7 +54131,7 @@ var require_RedirectHandler = __commonJS({ } } } else { - assert(headers == null, "headers must be an object or an array"); + assert2(headers == null, "headers must be an object or an array"); } return ret; } @@ -54172,9 +54179,9 @@ var require_llhttp_simd_wasm = __commonJS({ var require_client = __commonJS({ "node_modules/undici/lib/client.js"(exports2, module2) { "use strict"; - var assert = require("assert"); - var net = require("net"); - var http3 = require("http"); + var assert2 = require("assert"); + var net3 = require("net"); + var http4 = require("http"); var { pipeline } = require("stream"); var util4 = require_util2(); var timers = require_timers(); @@ -54302,11 +54309,11 @@ var require_client = __commonJS({ keepAliveTimeoutThreshold, socketPath, pipelining, - tls, + tls: tls2, strictContentLength, maxCachedSessions, maxRedirections, - connect: connect2, + connect: connect4, maxRequestsPerClient, localAddress, maxResponseSize, @@ -54356,7 +54363,7 @@ var require_client = __commonJS({ if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { throw new InvalidArgumentError("bodyTimeout must be a positive integer or zero"); } - if (connect2 != null && typeof connect2 !== "function" && typeof connect2 !== "object") { + if (connect4 != null && typeof connect4 !== "function" && typeof connect4 !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { @@ -54365,7 +54372,7 @@ var require_client = __commonJS({ if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); } - if (localAddress != null && (typeof localAddress !== "string" || net.isIP(localAddress) === 0)) { + if (localAddress != null && (typeof localAddress !== "string" || net3.isIP(localAddress) === 0)) { throw new InvalidArgumentError("localAddress must be valid string IP address"); } if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { @@ -54380,23 +54387,23 @@ var require_client = __commonJS({ if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) { throw new InvalidArgumentError("maxConcurrentStreams must be a possitive integer, greater than 0"); } - if (typeof connect2 !== "function") { - connect2 = buildConnector({ - ...tls, + if (typeof connect4 !== "function") { + connect4 = buildConnector({ + ...tls2, maxCachedSessions, allowH2, socketPath, timeout: connectTimeout, ...util4.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, - ...connect2 + ...connect4 }); } this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) ? interceptors.Client : [createRedirectInterceptor({ maxRedirections })]; this[kUrl] = util4.parseOrigin(url2); - this[kConnector] = connect2; + this[kConnector] = connect4; this[kSocket] = null; this[kPipelining] = pipelining != null ? pipelining : 1; - this[kMaxHeadersSize] = maxHeaderSize || http3.maxHeaderSize; + this[kMaxHeadersSize] = maxHeaderSize || http4.maxHeaderSize; this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold; @@ -54433,7 +54440,7 @@ var require_client = __commonJS({ } set pipelining(value) { this[kPipelining] = value; - resume(this, true); + resume2(this, true); } get [kPending]() { return this[kQueue].length - this[kPendingIdx]; @@ -54453,7 +54460,7 @@ var require_client = __commonJS({ } /* istanbul ignore: only used for test */ [kConnect](cb) { - connect(this); + connect3(this); this.once("connect", cb); } [kDispatch](opts, handler) { @@ -54463,9 +54470,9 @@ var require_client = __commonJS({ if (this[kResuming]) { } else if (util4.bodyLength(request3.body) == null && util4.isIterable(request3.body)) { this[kResuming] = 1; - process.nextTick(resume, this); + process.nextTick(resume2, this); } else { - resume(this, true); + resume2(this, true); } if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { this[kNeedDrain] = 2; @@ -54505,12 +54512,12 @@ var require_client = __commonJS({ } else { util4.destroy(this[kSocket].on("close", callback), err); } - resume(this); + resume2(this); }); } }; function onHttp2SessionError(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + assert2(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kSocket][kError] = err; onError(this[kClient], err); } @@ -54531,7 +54538,7 @@ var require_client = __commonJS({ client[kSocket] = null; client[kHTTP2Session] = null; if (client.destroyed) { - assert(this[kPending] === 0); + assert2(this[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i3 = 0; i3 < requests.length; i3++) { const request3 = requests[i3]; @@ -54543,14 +54550,14 @@ var require_client = __commonJS({ errorRequest(client, request3, err); } client[kPendingIdx] = client[kRunningIdx]; - assert(client[kRunning] === 0); + assert2(client[kRunning] === 0); client.emit( "disconnect", client[kUrl], [client], err ); - resume(client); + resume2(client); } var constants3 = require_constants4(); var createRedirectInterceptor = require_redirectInterceptor(); @@ -54570,35 +54577,35 @@ var require_client = __commonJS({ return 0; }, wasm_on_status: (p4, at2, len) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); const start = at2 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_begin: (p4) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); return currentParser.onMessageBegin() || 0; }, wasm_on_header_field: (p4, at2, len) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); const start = at2 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_header_value: (p4, at2, len) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); const start = at2 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_headers_complete: (p4, statusCode, upgrade, shouldKeepAlive) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; }, wasm_on_body: (p4, at2, len) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); const start = at2 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_message_complete: (p4) => { - assert.strictEqual(currentParser.ptr, p4); + assert2.strictEqual(currentParser.ptr, p4); return currentParser.onMessageComplete() || 0; } /* eslint-enable camelcase */ @@ -54617,7 +54624,7 @@ var require_client = __commonJS({ var TIMEOUT_IDLE = 3; var Parser = class { constructor(client, socket, { exports: exports3 }) { - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); + assert2(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); this.llhttp = exports3; this.ptr = this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE); this.client = client; @@ -54663,10 +54670,10 @@ var require_client = __commonJS({ if (this.socket.destroyed || !this.paused) { return; } - assert(this.ptr != null); - assert(currentParser == null); + assert2(this.ptr != null); + assert2(currentParser == null); this.llhttp.llhttp_resume(this.ptr); - assert(this.timeoutType === TIMEOUT_BODY); + assert2(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); @@ -54686,9 +54693,9 @@ var require_client = __commonJS({ } } execute(data) { - assert(this.ptr != null); - assert(currentParser == null); - assert(!this.paused); + assert2(this.ptr != null); + assert2(currentParser == null); + assert2(!this.paused); const { socket, llhttp } = this; if (data.length > currentBufferSize) { if (currentBufferPtr) { @@ -54730,8 +54737,8 @@ var require_client = __commonJS({ } } destroy() { - assert(this.ptr != null); - assert(currentParser == null); + assert2(this.ptr != null); + assert2(currentParser == null); this.llhttp.llhttp_free(this.ptr); this.ptr = null; timers.clearTimeout(this.timeout); @@ -54788,17 +54795,17 @@ var require_client = __commonJS({ } onUpgrade(head) { const { upgrade, client, socket, headers, statusCode } = this; - assert(upgrade); + assert2(upgrade); const request3 = client[kQueue][client[kRunningIdx]]; - assert(request3); - assert(!socket.destroyed); - assert(socket === client[kSocket]); - assert(!this.paused); - assert(request3.upgrade || request3.method === "CONNECT"); + assert2(request3); + assert2(!socket.destroyed); + assert2(socket === client[kSocket]); + assert2(!this.paused); + assert2(request3.upgrade || request3.method === "CONNECT"); this.statusCode = null; this.statusText = ""; this.shouldKeepAlive = null; - assert(this.headers.length % 2 === 0); + assert2(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; socket.unshift(head); @@ -54815,7 +54822,7 @@ var require_client = __commonJS({ } catch (err) { util4.destroy(socket, err); } - resume(client); + resume2(client); } onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { const { client, socket, headers, statusText } = this; @@ -54826,8 +54833,8 @@ var require_client = __commonJS({ if (!request3) { return -1; } - assert(!this.upgrade); - assert(this.statusCode < 200); + assert2(!this.upgrade); + assert2(this.statusCode < 200); if (statusCode === 100) { util4.destroy(socket, new SocketError("bad response", util4.getSocketInfo(socket))); return -1; @@ -54836,7 +54843,7 @@ var require_client = __commonJS({ util4.destroy(socket, new SocketError("bad upgrade", util4.getSocketInfo(socket))); return -1; } - assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS); + assert2.strictEqual(this.timeoutType, TIMEOUT_HEADERS); this.statusCode = statusCode; this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. request3.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; @@ -54849,16 +54856,16 @@ var require_client = __commonJS({ } } if (request3.method === "CONNECT") { - assert(client[kRunning] === 1); + assert2(client[kRunning] === 1); this.upgrade = true; return 2; } if (upgrade) { - assert(client[kRunning] === 1); + assert2(client[kRunning] === 1); this.upgrade = true; return 2; } - assert(this.headers.length % 2 === 0); + assert2(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; if (this.shouldKeepAlive && client[kPipelining]) { @@ -54891,7 +54898,7 @@ var require_client = __commonJS({ } if (socket[kBlocking]) { socket[kBlocking] = false; - resume(client); + resume2(client); } return pause ? constants3.ERROR.PAUSED : 0; } @@ -54901,14 +54908,14 @@ var require_client = __commonJS({ return -1; } const request3 = client[kQueue][client[kRunningIdx]]; - assert(request3); - assert.strictEqual(this.timeoutType, TIMEOUT_BODY); + assert2(request3); + assert2.strictEqual(this.timeoutType, TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } - assert(statusCode >= 200); + assert2(statusCode >= 200); if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { util4.destroy(socket, new ResponseExceededMaxSizeError()); return -1; @@ -54927,15 +54934,15 @@ var require_client = __commonJS({ return; } const request3 = client[kQueue][client[kRunningIdx]]; - assert(request3); - assert(statusCode >= 100); + assert2(request3); + assert2(statusCode >= 100); this.statusCode = null; this.statusText = ""; this.bytesRead = 0; this.contentLength = ""; this.keepAlive = ""; this.connection = ""; - assert(this.headers.length % 2 === 0); + assert2(this.headers.length % 2 === 0); this.headers = []; this.headersSize = 0; if (statusCode < 200) { @@ -54948,7 +54955,7 @@ var require_client = __commonJS({ request3.onComplete(headers); client[kQueue][client[kRunningIdx]++] = null; if (socket[kWriting]) { - assert.strictEqual(client[kRunning], 0); + assert2.strictEqual(client[kRunning], 0); util4.destroy(socket, new InformationalError("reset")); return constants3.ERROR.PAUSED; } else if (!shouldKeepAlive) { @@ -54958,9 +54965,9 @@ var require_client = __commonJS({ util4.destroy(socket, new InformationalError("reset")); return constants3.ERROR.PAUSED; } else if (client[kPipelining] === 1) { - setImmediate(resume, client); + setImmediate(resume2, client); } else { - resume(client); + resume2(client); } } }; @@ -54968,7 +54975,7 @@ var require_client = __commonJS({ const { socket, timeoutType, client } = parser; if (timeoutType === TIMEOUT_HEADERS) { if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert(!parser.paused, "cannot be paused while waiting for headers"); + assert2(!parser.paused, "cannot be paused while waiting for headers"); util4.destroy(socket, new HeadersTimeoutError()); } } else if (timeoutType === TIMEOUT_BODY) { @@ -54976,7 +54983,7 @@ var require_client = __commonJS({ util4.destroy(socket, new BodyTimeoutError()); } } else if (timeoutType === TIMEOUT_IDLE) { - assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); + assert2(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); util4.destroy(socket, new InformationalError("socket idle timeout")); } } @@ -54988,7 +54995,7 @@ var require_client = __commonJS({ } function onSocketError(err) { const { [kClient]: client, [kParser]: parser } = this; - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + assert2(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); if (client[kHTTPConnVersion] !== "h2") { if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); @@ -55000,13 +55007,13 @@ var require_client = __commonJS({ } function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { - assert(client[kPendingIdx] === client[kRunningIdx]); + assert2(client[kPendingIdx] === client[kRunningIdx]); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i3 = 0; i3 < requests.length; i3++) { const request3 = requests[i3]; errorRequest(client, request3, err); } - assert(client[kSize] === 0); + assert2(client[kSize] === 0); } } function onSocketEnd() { @@ -55031,7 +55038,7 @@ var require_client = __commonJS({ const err = this[kError] || new SocketError("closed", util4.getSocketInfo(this)); client[kSocket] = null; if (client.destroyed) { - assert(client[kPending] === 0); + assert2(client[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i3 = 0; i3 < requests.length; i3++) { const request3 = requests[i3]; @@ -55043,19 +55050,19 @@ var require_client = __commonJS({ errorRequest(client, request3, err); } client[kPendingIdx] = client[kRunningIdx]; - assert(client[kRunning] === 0); + assert2(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); - resume(client); + resume2(client); } - async function connect(client) { - assert(!client[kConnecting]); - assert(!client[kSocket]); + async function connect3(client) { + assert2(!client[kConnecting]); + assert2(!client[kSocket]); let { host, hostname, protocol, port } = client[kUrl]; if (hostname[0] === "[") { const idx = hostname.indexOf("]"); - assert(idx !== -1); + assert2(idx !== -1); const ip = hostname.substring(1, idx); - assert(net.isIP(ip)); + assert2(net3.isIP(ip)); hostname = ip; } client[kConnecting] = true; @@ -55095,7 +55102,7 @@ var require_client = __commonJS({ return; } client[kConnecting] = false; - assert(socket); + assert2(socket); const isH2 = socket.alpnProtocol === "h2"; if (isH2) { if (!h2ExperimentalWarned) { @@ -55171,7 +55178,7 @@ var require_client = __commonJS({ }); } if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { - assert(client[kRunning] === 0); + assert2(client[kRunning] === 0); while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { const request3 = client[kQueue][client[kPendingIdx]++]; errorRequest(client, request3, err); @@ -55181,13 +55188,13 @@ var require_client = __commonJS({ } client.emit("connectionError", client[kUrl], [client], err); } - resume(client); + resume2(client); } function emitDrain(client) { client[kNeedDrain] = 0; client.emit("drain", client[kUrl], [client]); } - function resume(client, sync) { + function resume2(client, sync) { if (client[kResuming] === 2) { return; } @@ -55203,7 +55210,7 @@ var require_client = __commonJS({ function _resume(client, sync) { while (true) { if (client.destroyed) { - assert(client[kPending] === 0); + assert2(client[kPending] === 0); return; } if (client[kClosedResolve] && !client[kSize]) { @@ -55266,7 +55273,7 @@ var require_client = __commonJS({ return; } if (!socket && !client[kHTTP2Session]) { - connect(client); + connect3(client); return; } if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { @@ -55375,13 +55382,13 @@ upgrade: ${upgrade}\r \r `, "latin1"); } else { - assert(contentLength === null, "no body must not have content length"); + assert2(contentLength === null, "no body must not have content length"); socket.write(`${header}\r `, "latin1"); } request3.onRequestSent(); } else if (util4.isBuffer(body)) { - assert(contentLength === body.byteLength, "buffer body must have content length"); + assert2(contentLength === body.byteLength, "buffer body must have content length"); socket.cork(); socket.write(`${header}content-length: ${contentLength}\r \r @@ -55404,7 +55411,7 @@ upgrade: ${upgrade}\r } else if (util4.isIterable(body)) { writeIterable({ body, client, request: request3, socket, contentLength, header, expectsPayload }); } else { - assert(false); + assert2(false); } return true; } @@ -55473,7 +55480,7 @@ upgrade: ${upgrade}\r process.emitWarning(new RequestContentLengthMismatchError()); } if (contentLength != null) { - assert(body, "no body must not have content length"); + assert2(body, "no body must not have content length"); headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; } session.ref(); @@ -55529,7 +55536,7 @@ upgrade: ${upgrade}\r if (!body) { request3.onRequestSent(); } else if (util4.isBuffer(body)) { - assert(contentLength === body.byteLength, "buffer body must have content length"); + assert2(contentLength === body.byteLength, "buffer body must have content length"); stream4.cork(); stream4.write(body); stream4.uncork(); @@ -55583,12 +55590,12 @@ upgrade: ${upgrade}\r socket: client[kSocket] }); } else { - assert(false); + assert2(false); } } } function writeStream({ h2stream, body, client, request: request3, socket, contentLength, header, expectsPayload }) { - assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); + assert2(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); if (client[kHTTPConnVersion] === "h2") { let onPipeData = function(chunk) { request3.onBodySent(chunk); @@ -55646,7 +55653,7 @@ upgrade: ${upgrade}\r return; } finished = true; - assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); + assert2(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); socket.off("drain", onDrain).off("error", onFinished); body.removeListener("data", onData).removeListener("end", onFinished).removeListener("error", onFinished).removeListener("close", onAbort); if (!err) { @@ -55670,7 +55677,7 @@ upgrade: ${upgrade}\r socket.on("drain", onDrain).on("error", onFinished); } async function writeBlob({ h2stream, body, client, request: request3, socket, contentLength, header, expectsPayload }) { - assert(contentLength === body.size, "blob body must have content length"); + assert2(contentLength === body.size, "blob body must have content length"); const isH2 = client[kHTTPConnVersion] === "h2"; try { if (contentLength != null && contentLength !== body.size) { @@ -55694,13 +55701,13 @@ upgrade: ${upgrade}\r if (!expectsPayload) { socket[kReset] = true; } - resume(client); + resume2(client); } catch (err) { util4.destroy(isH2 ? h2stream : socket, err); } } async function writeIterable({ h2stream, body, client, request: request3, socket, contentLength, header, expectsPayload }) { - assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); + assert2(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { @@ -55710,7 +55717,7 @@ upgrade: ${upgrade}\r } } const waitForDrain = () => new Promise((resolve, reject) => { - assert(callback === null); + assert2(callback === null); if (socket[kError]) { reject(socket[kError]); } else { @@ -55852,13 +55859,13 @@ ${len.toString(16)}\r socket[kParser].timeout.refresh(); } } - resume(client); + resume2(client); } destroy(err) { const { socket, client } = this; socket[kWriting] = false; if (err) { - assert(client[kRunning] <= 1, "pipeline should only contain this request"); + assert2(client[kRunning] <= 1, "pipeline should only contain this request"); util4.destroy(socket, err); } } @@ -55866,7 +55873,7 @@ ${len.toString(16)}\r function errorRequest(client, request3, err) { try { request3.onError(err); - assert(request3.aborted); + assert2(request3.aborted); } catch (err2) { client.emit("error", err2); } @@ -56147,9 +56154,9 @@ var require_pool = __commonJS({ constructor(origin2, { connections, factory = defaultFactory, - connect, + connect: connect3, connectTimeout, - tls, + tls: tls2, maxCachedSessions, socketPath, autoSelectFamily, @@ -56164,24 +56171,24 @@ var require_pool = __commonJS({ if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } - if (connect != null && typeof connect !== "function" && typeof connect !== "object") { + if (connect3 != null && typeof connect3 !== "function" && typeof connect3 !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } - if (typeof connect !== "function") { - connect = buildConnector({ - ...tls, + if (typeof connect3 !== "function") { + connect3 = buildConnector({ + ...tls2, maxCachedSessions, allowH2, socketPath, timeout: connectTimeout, ...util4.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, - ...connect + ...connect3 }); } this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; this[kConnections] = connections || null; this[kUrl] = util4.parseOrigin(origin2); - this[kOptions] = { ...util4.deepClone(options), connect, allowH2 }; + this[kOptions] = { ...util4.deepClone(options), connect: connect3, allowH2 }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; this.on("connectionError", (origin3, targets, error) => { @@ -56409,23 +56416,23 @@ var require_agent2 = __commonJS({ function defaultFactory(origin2, opts) { return opts && opts.connections === 1 ? new Client(origin2, opts) : new Pool(origin2, opts); } - var Agent3 = class extends DispatcherBase { - constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { + var Agent5 = class extends DispatcherBase { + constructor({ factory = defaultFactory, maxRedirections = 0, connect: connect3, ...options } = {}) { super(); if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } - if (connect != null && typeof connect !== "function" && typeof connect !== "object") { + if (connect3 != null && typeof connect3 !== "function" && typeof connect3 !== "object") { throw new InvalidArgumentError("connect must be a function or an object"); } if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } - if (connect && typeof connect !== "function") { - connect = { ...connect }; + if (connect3 && typeof connect3 !== "function") { + connect3 = { ...connect3 }; } this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; - this[kOptions] = { ...util4.deepClone(options), connect }; + this[kOptions] = { ...util4.deepClone(options), connect: connect3 }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kMaxRedirections] = maxRedirections; this[kFactory] = factory; @@ -56500,7 +56507,7 @@ var require_agent2 = __commonJS({ await Promise.all(destroyPromises); } }; - module2.exports = Agent3; + module2.exports = Agent5; } }); @@ -56508,7 +56515,7 @@ var require_agent2 = __commonJS({ var require_readable = __commonJS({ "node_modules/undici/lib/api/readable.js"(exports2, module2) { "use strict"; - var assert = require("assert"); + var assert2 = require("assert"); var { Readable: Readable5 } = require("stream"); var { RequestAbortedError, NotSupportedError, InvalidArgumentError } = require_errors3(); var util4 = require_util2(); @@ -56523,7 +56530,7 @@ var require_readable = __commonJS({ }; module2.exports = class BodyReadable extends Readable5 { constructor({ - resume, + resume: resume2, abort, contentType = "", highWaterMark = 64 * 1024 @@ -56531,7 +56538,7 @@ var require_readable = __commonJS({ }) { super({ autoDestroy: true, - read: resume, + read: resume2, highWaterMark }); this._readableState.dataEmitted = false; @@ -56617,7 +56624,7 @@ var require_readable = __commonJS({ this[kBody] = ReadableStreamFrom(this); if (this[kConsume]) { this[kBody].getReader(); - assert(this[kBody].locked); + assert2(this[kBody].locked); } } return this[kBody]; @@ -56668,7 +56675,7 @@ var require_readable = __commonJS({ if (isUnusable(stream4)) { throw new TypeError("unusable"); } - assert(!stream4[kConsume]); + assert2(!stream4[kConsume]); return new Promise((resolve, reject) => { stream4[kConsume] = { type: type2, @@ -56759,13 +56766,13 @@ var require_readable = __commonJS({ // node_modules/undici/lib/api/util.js var require_util4 = __commonJS({ "node_modules/undici/lib/api/util.js"(exports2, module2) { - var assert = require("assert"); + var assert2 = require("assert"); var { ResponseStatusCodeError } = require_errors3(); var { toUSVString } = require_util2(); async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body); + assert2(body); let chunks = []; let limit = 0; for await (const chunk of body) { @@ -56915,7 +56922,7 @@ var require_api_request = __commonJS({ this.abort = abort; this.context = context; } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { + onHeaders(statusCode, rawHeaders, resume2, statusMessage) { const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; const headers = responseHeaders === "raw" ? util4.parseRawHeaders(rawHeaders) : util4.parseHeaders(rawHeaders); if (statusCode < 200) { @@ -56926,7 +56933,7 @@ var require_api_request = __commonJS({ } const parsedHeaders = responseHeaders === "raw" ? util4.parseHeaders(rawHeaders) : headers; const contentType = parsedHeaders["content-type"]; - const body = new Readable5({ resume, abort, contentType, highWaterMark }); + const body = new Readable5({ resume: resume2, abort, contentType, highWaterMark }); this.callback = null; this.res = body; if (callback !== null) { @@ -57070,7 +57077,7 @@ var require_api_stream = __commonJS({ this.abort = abort; this.context = context; } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { + onHeaders(statusCode, rawHeaders, resume2, statusMessage) { const { factory, opaque, context, callback, responseHeaders } = this; const headers = responseHeaders === "raw" ? util4.parseRawHeaders(rawHeaders) : util4.parseHeaders(rawHeaders); if (statusCode < 200) { @@ -57117,7 +57124,7 @@ var require_api_stream = __commonJS({ } }); } - res.on("drain", resume); + res.on("drain", resume2); this.res = res; const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState && res._writableState.needDrain; return needDrain !== true; @@ -57193,7 +57200,7 @@ var require_api_pipeline = __commonJS({ var util4 = require_util2(); var { AsyncResource } = require("async_hooks"); var { addSignal, removeSignal } = require_abort_signal(); - var assert = require("assert"); + var assert2 = require("assert"); var kResume = Symbol("resume"); var PipelineRequest = class extends Readable5 { constructor() { @@ -57201,10 +57208,10 @@ var require_api_pipeline = __commonJS({ this[kResume] = null; } _read() { - const { [kResume]: resume } = this; - if (resume) { + const { [kResume]: resume2 } = this; + if (resume2) { this[kResume] = null; - resume(); + resume2(); } } _destroy(err, callback) { @@ -57213,9 +57220,9 @@ var require_api_pipeline = __commonJS({ } }; var PipelineResponse = class extends Readable5 { - constructor(resume) { + constructor(resume2) { super({ autoDestroy: true }); - this[kResume] = resume; + this[kResume] = resume2; } _read() { this[kResume](); @@ -57293,14 +57300,14 @@ var require_api_pipeline = __commonJS({ } onConnect(abort, context) { const { ret, res } = this; - assert(!res, "pipeline cannot be retried"); + assert2(!res, "pipeline cannot be retried"); if (ret.destroyed) { throw new RequestAbortedError(); } this.abort = abort; this.context = context; } - onHeaders(statusCode, rawHeaders, resume) { + onHeaders(statusCode, rawHeaders, resume2) { const { opaque, handler, context } = this; if (statusCode < 200) { if (this.onInfo) { @@ -57309,7 +57316,7 @@ var require_api_pipeline = __commonJS({ } return; } - this.res = new PipelineResponse(resume); + this.res = new PipelineResponse(resume2); let body; try { this.handler = null; @@ -57382,7 +57389,7 @@ var require_api_upgrade = __commonJS({ var { AsyncResource } = require("async_hooks"); var util4 = require_util2(); var { addSignal, removeSignal } = require_abort_signal(); - var assert = require("assert"); + var assert2 = require("assert"); var UpgradeHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts !== "object") { @@ -57415,7 +57422,7 @@ var require_api_upgrade = __commonJS({ } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context } = this; - assert.strictEqual(statusCode, 101); + assert2.strictEqual(statusCode, 101); removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util4.parseRawHeaders(rawHeaders) : util4.parseHeaders(rawHeaders); @@ -57528,10 +57535,10 @@ var require_api_connect = __commonJS({ } } }; - function connect(opts, callback) { + function connect3(opts, callback) { if (callback === void 0) { return new Promise((resolve, reject) => { - connect.call(this, opts, (err, data) => { + connect3.call(this, opts, (err, data) => { return err ? reject(err) : resolve(data); }); }); @@ -57547,7 +57554,7 @@ var require_api_connect = __commonJS({ queueMicrotask(() => callback(err, { opaque })); } } - module2.exports = connect; + module2.exports = connect3; } }); @@ -57820,12 +57827,12 @@ var require_mock_utils = __commonJS({ const responseHeaders = generateKeyValues(headers); const responseTrailers = generateKeyValues(trailers); handler.abort = nop; - handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)); + handler.onHeaders(statusCode, responseHeaders, resume2, getStatusText(statusCode)); handler.onData(Buffer.from(responseData)); handler.onComplete(responseTrailers); deleteMockDispatch(mockDispatches, key); } - function resume() { + function resume2() { } return true; } @@ -58233,7 +58240,7 @@ var require_mock_agent = __commonJS({ "node_modules/undici/lib/mock/mock-agent.js"(exports2, module2) { "use strict"; var { kClients } = require_symbols(); - var Agent3 = require_agent2(); + var Agent5 = require_agent2(); var { kAgent, kMockAgentSet, @@ -58268,7 +58275,7 @@ var require_mock_agent = __commonJS({ if (opts && opts.agent && typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } - const agent = opts && opts.agent ? opts.agent : new Agent3(opts); + const agent = opts && opts.agent ? opts.agent : new Agent5(opts); this[kAgent] = agent; this[kClients] = agent[kClients]; this[kOptions] = buildMockOptions(opts); @@ -58372,8 +58379,8 @@ var require_proxy_agent = __commonJS({ "node_modules/undici/lib/proxy-agent.js"(exports2, module2) { "use strict"; var { kProxy, kClose, kDestroy, kInterceptors } = require_symbols(); - var { URL: URL2 } = require("url"); - var Agent3 = require_agent2(); + var { URL: URL3 } = require("url"); + var Agent5 = require_agent2(); var Pool = require_pool(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, RequestAbortedError } = require_errors3(); @@ -58406,7 +58413,7 @@ var require_proxy_agent = __commonJS({ constructor(opts) { super(opts); this[kProxy] = buildProxyOptions(opts); - this[kAgent] = new Agent3(opts); + this[kAgent] = new Agent5(opts); this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; if (typeof opts === "string") { opts = { uri: opts }; @@ -58421,7 +58428,7 @@ var require_proxy_agent = __commonJS({ this[kRequestTls] = opts.requestTls; this[kProxyTls] = opts.proxyTls; this[kProxyHeaders] = opts.headers || {}; - const resolvedUrl = new URL2(opts.uri); + const resolvedUrl = new URL3(opts.uri); const { origin: origin2, port, host, username, password } = resolvedUrl; if (opts.auth && opts.token) { throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); @@ -58432,10 +58439,10 @@ var require_proxy_agent = __commonJS({ } else if (username && password) { this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`; } - const connect = buildConnector({ ...opts.proxyTls }); + const connect3 = buildConnector({ ...opts.proxyTls }); this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); - this[kClient] = clientFactory(resolvedUrl, { connect }); - this[kAgent] = new Agent3({ + this[kClient] = clientFactory(resolvedUrl, { connect: connect3 }); + this[kAgent] = new Agent5({ ...opts, connect: async (opts2, callback) => { let requestedHost = opts2.host; @@ -58476,7 +58483,7 @@ var require_proxy_agent = __commonJS({ }); } dispatch(opts, handler) { - const { host } = new URL2(opts.origin); + const { host } = new URL3(opts.origin); const headers = buildHeaders(opts.headers); throwIfProxyAuthIsSent(headers); return this[kAgent].dispatch( @@ -58522,7 +58529,7 @@ var require_proxy_agent = __commonJS({ // node_modules/undici/lib/handler/RetryHandler.js var require_RetryHandler = __commonJS({ "node_modules/undici/lib/handler/RetryHandler.js"(exports2, module2) { - var assert = require("assert"); + var assert2 = require("assert"); var { kRetryHandlerDefaultRetry } = require_symbols(); var { RequestRetryError } = require_errors3(); var { isDisturbed, parseHeaders, parseRangeHeader } = require_util2(); @@ -58650,7 +58657,7 @@ var require_RetryHandler = __commonJS({ state2.currentTimeout = retryTimeout; setTimeout(() => cb(null), retryTimeout); } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { + onHeaders(statusCode, rawHeaders, resume2, statusMessage) { const headers = parseHeaders(rawHeaders); this.retryCount += 1; if (statusCode >= 300) { @@ -58687,9 +58694,9 @@ var require_RetryHandler = __commonJS({ return false; } const { start, size, end = size } = contentRange; - assert(this.start === start, "content-range mismatch"); - assert(this.end == null || this.end === end, "content-range mismatch"); - this.resume = resume; + assert2(this.start === start, "content-range mismatch"); + assert2(this.end == null || this.end === end, "content-range mismatch"); + this.resume = resume2; return true; } if (this.end == null) { @@ -58699,17 +58706,17 @@ var require_RetryHandler = __commonJS({ return this.handler.onHeaders( statusCode, rawHeaders, - resume, + resume2, statusMessage ); } const { start, size, end = size } = range; - assert( + assert2( start != null && Number.isFinite(start) && this.start !== start, "content-range mismatch" ); - assert(Number.isFinite(start)); - assert( + assert2(Number.isFinite(start)); + assert2( end != null && Number.isFinite(end) && this.end !== end, "invalid content-length" ); @@ -58720,17 +58727,17 @@ var require_RetryHandler = __commonJS({ const contentLength = headers["content-length"]; this.end = contentLength != null ? Number(contentLength) : null; } - assert(Number.isFinite(this.start)); - assert( + assert2(Number.isFinite(this.start)); + assert2( this.end == null || Number.isFinite(this.end), "invalid content-length" ); - this.resume = resume; + this.resume = resume2; this.etag = headers.etag != null ? headers.etag : null; return this.handler.onHeaders( statusCode, rawHeaders, - resume, + resume2, statusMessage ); } @@ -58792,9 +58799,9 @@ var require_global2 = __commonJS({ "use strict"; var globalDispatcher = Symbol.for("undici.globalDispatcher.1"); var { InvalidArgumentError } = require_errors3(); - var Agent3 = require_agent2(); + var Agent5 = require_agent2(); if (getGlobalDispatcher() === void 0) { - setGlobalDispatcher2(new Agent3()); + setGlobalDispatcher2(new Agent5()); } function setGlobalDispatcher2(agent) { if (!agent || typeof agent.dispatch !== "function") { @@ -58864,7 +58871,7 @@ var require_headers = __commonJS({ } = require_util3(); var util4 = require("util"); var { webidl } = require_webidl(); - var assert = require("assert"); + var assert2 = require("assert"); var kHeadersMap = Symbol("headers map"); var kHeadersSortedMap = Symbol("headers map sorted"); function isHTTPWhiteSpaceCharCode(code) { @@ -59122,7 +59129,7 @@ var require_headers = __commonJS({ headers.push([name, cookies[j4]]); } } else { - assert(value !== null); + assert2(value !== null); headers.push([name, value]); } } @@ -59268,7 +59275,7 @@ var require_response = __commonJS({ var { getGlobalOrigin } = require_global(); var { URLSerializer } = require_dataURL(); var { kHeadersList, kConstruct } = require_symbols(); - var assert = require("assert"); + var assert2 = require("assert"); var { types } = require("util"); var ReadableStream7 = globalThis.ReadableStream || require("stream/web").ReadableStream; var textEncoder2 = new TextEncoder("utf-8"); @@ -59484,7 +59491,7 @@ var require_response = __commonJS({ return p4 in state2 ? state2[p4] : target[p4]; }, set(target, p4, value) { - assert(!(p4 in state2)); + assert2(!(p4 in state2)); target[p4] = value; return true; } @@ -59518,11 +59525,11 @@ var require_response = __commonJS({ body: null }); } else { - assert(false); + assert2(false); } } function makeAppropriateNetworkError(fetchParams, err = null) { - assert(isCancelled(fetchParams)); + assert2(isCancelled(fetchParams)); return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException3("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException3("Request was cancelled."), { cause: err })); } function initializeResponse(response, init, body) { @@ -59650,7 +59657,7 @@ var require_request2 = __commonJS({ var { getGlobalOrigin } = require_global(); var { URLSerializer } = require_dataURL(); var { kHeadersList, kConstruct } = require_symbols(); - var assert = require("assert"); + var assert2 = require("assert"); var { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = require("events"); var TransformStream3 = globalThis.TransformStream; var kAbortController = Symbol("abortController"); @@ -59694,7 +59701,7 @@ var require_request2 = __commonJS({ request3 = makeRequest2({ urlList: [parsedURL] }); fallbackMode = "cors"; } else { - assert(input instanceof _Request); + assert2(input instanceof _Request); request3 = input[kState]; signal = input[kSignal]; } @@ -60303,7 +60310,7 @@ var require_fetch = __commonJS({ urlHasHttpsScheme } = require_util3(); var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); - var assert = require("assert"); + var assert2 = require("assert"); var { safelyExtractBody } = require_body(); var { redirectStatusSet, @@ -60383,7 +60390,7 @@ var require_fetch = __commonJS({ requestObject.signal, () => { locallyAborted = true; - assert(controller != null); + assert2(controller != null); controller.abort(requestObject.signal.reason); abortFetch(p4, request3, responseObject, requestObject.signal.reason); } @@ -60516,7 +60523,7 @@ var require_fetch = __commonJS({ taskDestination, crossOriginIsolatedCapability }; - assert(!request3.body || request3.body.stream); + assert2(!request3.body || request3.body.stream); if (request3.window === "client") { request3.window = request3.client?.globalObject?.constructor?.name === "Window" ? request3.client : "no-window"; } @@ -60609,7 +60616,7 @@ var require_fetch = __commonJS({ } else if (request3.responseTainting === "opaque") { response = filterResponse(response, "opaque"); } else { - assert(false); + assert2(false); } } let internalResponse = response.status === 0 ? response : response.internalResponse; @@ -60801,7 +60808,7 @@ var require_fetch = __commonJS({ } else if (request3.redirect === "follow") { response = await httpRedirectFetch(fetchParams, response); } else { - assert(false); + assert2(false); } } response.timingInfo = timingInfo; @@ -60854,7 +60861,7 @@ var require_fetch = __commonJS({ request3.headersList.delete("host"); } if (request3.body != null) { - assert(request3.body.source != null); + assert2(request3.body.source != null); request3.body = safelyExtractBody(request3.body.source)[0]; } const timingInfo = fetchParams.timingInfo; @@ -60987,7 +60994,7 @@ var require_fetch = __commonJS({ return response; } async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); + assert2(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); fetchParams.controller.connection = { abort: null, destroyed: false, @@ -61176,7 +61183,7 @@ var require_fetch = __commonJS({ this.abort = connection.abort = abort; } }, - onHeaders(status, headersList, resume, statusText) { + onHeaders(status, headersList, resume2, statusText) { if (status < 200) { return; } @@ -61206,7 +61213,7 @@ var require_fetch = __commonJS({ headers[kHeadersList].append(key, val); } } - this.body = new Readable5({ read: resume }); + this.body = new Readable5({ read: resume2 }); const decoders = []; const willFollow = request3.redirect === "follow" && location && redirectStatusSet.has(status); if (request3.method !== "HEAD" && request3.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { @@ -62122,7 +62129,7 @@ var require_symbols4 = __commonJS({ var require_util6 = __commonJS({ "node_modules/undici/lib/cache/util.js"(exports2, module2) { "use strict"; - var assert = require("assert"); + var assert2 = require("assert"); var { URLSerializer } = require_dataURL(); var { isValidHeaderName: isValidHeaderName2 } = require_util3(); function urlEquals(A5, B3, excludeFragment = false) { @@ -62131,7 +62138,7 @@ var require_util6 = __commonJS({ return serializedA === serializedB; } function fieldValues(header) { - assert(header !== null); + assert2(header !== null); const values = []; for (let value of header.split(",")) { value = value.trim(); @@ -62165,7 +62172,7 @@ var require_cache = __commonJS({ var { kState, kHeaders, kGuard, kRealm } = require_symbols2(); var { fetching } = require_fetch(); var { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util3(); - var assert = require("assert"); + var assert2 = require("assert"); var { getGlobalDispatcher } = require_global2(); var Cache = class _Cache { /** @@ -62426,7 +62433,7 @@ var require_cache = __commonJS({ return false; } } else { - assert(typeof request3 === "string"); + assert2(typeof request3 === "string"); r3 = new Request6(request3)[kState]; } const operations = []; @@ -62535,7 +62542,7 @@ var require_cache = __commonJS({ } for (const requestResponse of requestResponses) { const idx = cache.indexOf(requestResponse); - assert(idx !== -1); + assert2(idx !== -1); cache.splice(idx, 1); } } else if (operation.type === "put") { @@ -62567,7 +62574,7 @@ var require_cache = __commonJS({ requestResponses = this.#queryCache(operation.request); for (const requestResponse of requestResponses) { const idx = cache.indexOf(requestResponse); - assert(idx !== -1); + assert2(idx !== -1); cache.splice(idx, 1); } cache.push([operation.request, operation.response]); @@ -62954,7 +62961,7 @@ var require_parse4 = __commonJS({ var { maxNameValuePairSize, maxAttributeValueSize } = require_constants5(); var { isCTLExcludingHtab } = require_util7(); var { collectASequenceOfCodePointsFast } = require_dataURL(); - var assert = require("assert"); + var assert2 = require("assert"); function parseSetCookie(header) { if (isCTLExcludingHtab(header)) { return null; @@ -62996,7 +63003,7 @@ var require_parse4 = __commonJS({ if (unparsedAttributes.length === 0) { return cookieAttributeList; } - assert(unparsedAttributes[0] === ";"); + assert2(unparsedAttributes[0] === ";"); unparsedAttributes = unparsedAttributes.slice(1); let cookieAv = ""; if (unparsedAttributes.includes(";")) { @@ -64464,7 +64471,7 @@ var require_undici = __commonJS({ var errors = require_errors3(); var Pool = require_pool(); var BalancedPool = require_balanced_pool(); - var Agent3 = require_agent2(); + var Agent5 = require_agent2(); var util4 = require_util2(); var { InvalidArgumentError } = errors; var api = require_api(); @@ -64491,7 +64498,7 @@ var require_undici = __commonJS({ module2.exports.Client = Client; module2.exports.Pool = Pool; module2.exports.BalancedPool = BalancedPool; - module2.exports.Agent = Agent3; + module2.exports.Agent = Agent5; module2.exports.ProxyAgent = ProxyAgent2; module2.exports.RetryHandler = RetryHandler; module2.exports.DecoratorHandler = DecoratorHandler; @@ -70684,8 +70691,321 @@ var { AnthropicError: AnthropicError2, APIError: APIError2, APIConnectionError: })(Anthropic || (Anthropic = {})); var sdk_default = Anthropic; -// src/engine/anthropic.ts -var import_https_proxy_agent = __toESM(require_dist2(), 1); +// node_modules/https-proxy-agent/dist/index.js +var net2 = __toESM(require("net"), 1); +var tls = __toESM(require("tls"), 1); +var import_assert = __toESM(require("assert"), 1); +var import_debug2 = __toESM(require_src2(), 1); + +// node_modules/https-proxy-agent/node_modules/agent-base/dist/index.js +var net = __toESM(require("net"), 1); +var http = __toESM(require("http"), 1); +var import_https = require("https"); +var INTERNAL = Symbol("AgentBaseInternalState"); +var Agent2 = class extends http.Agent { + constructor(opts) { + super(opts); + this[INTERNAL] = {}; + } + /** + * Determine whether this is an `http` or `https` request. + */ + isSecureEndpoint(options) { + if (options) { + if (typeof options.secureEndpoint === "boolean") { + return options.secureEndpoint; + } + if (typeof options.protocol === "string") { + return options.protocol === "https:"; + } + } + const { stack } = new Error(); + if (typeof stack !== "string") + return false; + return stack.split("\n").some((l3) => l3.indexOf("(https.js:") !== -1 || l3.indexOf("node:https:") !== -1); + } + // In order to support async signatures in `connect()` and Node's native + // connection pooling in `http.Agent`, the array of sockets for each origin + // has to be updated synchronously. This is so the length of the array is + // accurate when `addRequest()` is next called. We achieve this by creating a + // fake socket and adding it to `sockets[origin]` and incrementing + // `totalSocketCount`. + incrementSockets(name) { + if (this.maxSockets === Infinity && this.maxTotalSockets === Infinity) { + return null; + } + if (!this.sockets[name]) { + this.sockets[name] = []; + } + const fakeSocket = new net.Socket({ writable: false }); + this.sockets[name].push(fakeSocket); + this.totalSocketCount++; + return fakeSocket; + } + decrementSockets(name, socket) { + if (!this.sockets[name] || socket === null) { + return; + } + const sockets = this.sockets[name]; + const index = sockets.indexOf(socket); + if (index !== -1) { + sockets.splice(index, 1); + this.totalSocketCount--; + if (sockets.length === 0) { + delete this.sockets[name]; + } + } + } + // In order to properly update the socket pool, we need to call `getName()` on + // the core `https.Agent` if it is a secureEndpoint. + getName(options) { + const secureEndpoint = this.isSecureEndpoint(options); + if (secureEndpoint) { + return import_https.Agent.prototype.getName.call(this, options); + } + return super.getName(options); + } + createSocket(req, options, cb) { + const connectOpts = { + ...options, + secureEndpoint: this.isSecureEndpoint(options) + }; + const name = this.getName(connectOpts); + const fakeSocket = this.incrementSockets(name); + Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => { + this.decrementSockets(name, fakeSocket); + if (socket instanceof http.Agent) { + try { + return socket.addRequest(req, connectOpts); + } catch (err) { + return cb(err); + } + } + this[INTERNAL].currentSocket = socket; + super.createSocket(req, options, cb); + }, (err) => { + this.decrementSockets(name, fakeSocket); + cb(err); + }); + } + createConnection() { + const socket = this[INTERNAL].currentSocket; + this[INTERNAL].currentSocket = void 0; + if (!socket) { + throw new Error("No socket was returned in the `connect()` function"); + } + return socket; + } + get defaultPort() { + return this[INTERNAL].defaultPort ?? (this.protocol === "https:" ? 443 : 80); + } + set defaultPort(v5) { + if (this[INTERNAL]) { + this[INTERNAL].defaultPort = v5; + } + } + get protocol() { + return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:"); + } + set protocol(v5) { + if (this[INTERNAL]) { + this[INTERNAL].protocol = v5; + } + } +}; + +// node_modules/https-proxy-agent/dist/index.js +var import_url = require("url"); + +// node_modules/https-proxy-agent/dist/parse-proxy-response.js +var import_debug = __toESM(require_src2(), 1); +var debug2 = (0, import_debug.default)("https-proxy-agent:parse-proxy-response"); +function parseProxyResponse(socket) { + return new Promise((resolve, reject) => { + let buffersLength = 0; + const buffers = []; + function read() { + const b7 = socket.read(); + if (b7) + ondata(b7); + else + socket.once("readable", read); + } + function cleanup() { + socket.removeListener("end", onend); + socket.removeListener("error", onerror); + socket.removeListener("readable", read); + } + function onend() { + cleanup(); + debug2("onend"); + reject(new Error("Proxy connection ended before receiving CONNECT response")); + } + function onerror(err) { + cleanup(); + debug2("onerror %o", err); + reject(err); + } + function ondata(b7) { + buffers.push(b7); + buffersLength += b7.length; + const buffered = Buffer.concat(buffers, buffersLength); + const endOfHeaders = buffered.indexOf("\r\n\r\n"); + if (endOfHeaders === -1) { + debug2("have not received end of HTTP headers yet..."); + read(); + return; + } + const headerParts = buffered.slice(0, endOfHeaders).toString("ascii").split("\r\n"); + const firstLine = headerParts.shift(); + if (!firstLine) { + socket.destroy(); + return reject(new Error("No header received from proxy CONNECT response")); + } + const firstLineParts = firstLine.split(" "); + const statusCode = +firstLineParts[1]; + const statusText = firstLineParts.slice(2).join(" "); + const headers = {}; + for (const header of headerParts) { + if (!header) + continue; + const firstColon = header.indexOf(":"); + if (firstColon === -1) { + socket.destroy(); + return reject(new Error(`Invalid header from proxy CONNECT response: "${header}"`)); + } + const key = header.slice(0, firstColon).toLowerCase(); + const value = header.slice(firstColon + 1).trimStart(); + const current = headers[key]; + if (typeof current === "string") { + headers[key] = [current, value]; + } else if (Array.isArray(current)) { + current.push(value); + } else { + headers[key] = value; + } + } + debug2("got proxy server response: %o %o", firstLine, headers); + cleanup(); + resolve({ + connect: { + statusCode, + statusText, + headers + }, + buffered + }); + } + socket.on("error", onerror); + socket.on("end", onend); + read(); + }); +} + +// node_modules/https-proxy-agent/dist/index.js +var debug3 = (0, import_debug2.default)("https-proxy-agent"); +var setServernameFromNonIpHost = (options) => { + if (options.servername === void 0 && options.host && !net2.isIP(options.host)) { + return { + ...options, + servername: options.host + }; + } + return options; +}; +var HttpsProxyAgent = class extends Agent2 { + constructor(proxy, opts) { + super(opts); + this.options = { path: void 0 }; + this.proxy = typeof proxy === "string" ? new import_url.URL(proxy) : proxy; + this.proxyHeaders = opts?.headers ?? {}; + debug3("Creating new HttpsProxyAgent instance: %o", this.proxy.href); + const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, ""); + const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80; + this.connectOpts = { + // Attempt to negotiate http/1.1 for proxy servers that support http/2 + ALPNProtocols: ["http/1.1"], + ...opts ? omit(opts, "headers") : null, + host, + port + }; + } + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + */ + async connect(req, opts) { + const { proxy } = this; + if (!opts.host) { + throw new TypeError('No "host" provided'); + } + let socket; + if (proxy.protocol === "https:") { + debug3("Creating `tls.Socket`: %o", this.connectOpts); + socket = tls.connect(setServernameFromNonIpHost(this.connectOpts)); + } else { + debug3("Creating `net.Socket`: %o", this.connectOpts); + socket = net2.connect(this.connectOpts); + } + const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders }; + const host = net2.isIPv6(opts.host) ? `[${opts.host}]` : opts.host; + let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\r +`; + if (proxy.username || proxy.password) { + const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`; + headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`; + } + headers.Host = `${host}:${opts.port}`; + if (!headers["Proxy-Connection"]) { + headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close"; + } + for (const name of Object.keys(headers)) { + payload += `${name}: ${headers[name]}\r +`; + } + const proxyResponsePromise = parseProxyResponse(socket); + socket.write(`${payload}\r +`); + const { connect: connect3, buffered } = await proxyResponsePromise; + req.emit("proxyConnect", connect3); + this.emit("proxyConnect", connect3, req); + if (connect3.statusCode === 200) { + req.once("socket", resume); + if (opts.secureEndpoint) { + debug3("Upgrading socket connection to TLS"); + return tls.connect({ + ...omit(setServernameFromNonIpHost(opts), "host", "path", "port"), + socket + }); + } + return socket; + } + socket.destroy(); + const fakeSocket = new net2.Socket({ writable: false }); + fakeSocket.readable = true; + req.once("socket", (s2) => { + debug3("Replaying proxy buffer for failed request"); + (0, import_assert.default)(s2.listenerCount("data") > 0); + s2.push(buffered); + s2.push(null); + }); + return fakeSocket; + } +}; +HttpsProxyAgent.protocols = ["http", "https"]; +function resume(socket) { + socket.resume(); +} +function omit(obj, ...keys) { + const ret = {}; + let key; + for (key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; + } + } + return ret; +} // node_modules/axios/lib/helpers/bind.js function bind(fn, thisArg) { @@ -71389,8 +71709,8 @@ var transitional_default = { var import_crypto = __toESM(require("crypto"), 1); // node_modules/axios/lib/platform/node/classes/URLSearchParams.js -var import_url = __toESM(require("url"), 1); -var URLSearchParams_default = import_url.default.URLSearchParams; +var import_url2 = __toESM(require("url"), 1); +var URLSearchParams_default = import_url2.default.URLSearchParams; // node_modules/axios/lib/platform/node/index.js var ALPHA = "abcdefghijklmnopqrstuvwxyz"; @@ -71961,7 +72281,7 @@ function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) { // node_modules/axios/lib/adapters/http.js var import_proxy_from_env = __toESM(require_proxy_from_env(), 1); var import_http = __toESM(require("http"), 1); -var import_https = __toESM(require("https"), 1); +var import_https2 = __toESM(require("https"), 1); var import_util4 = __toESM(require("util"), 1); var import_follow_redirects = __toESM(require_follow_redirects(), 1); var import_zlib = __toESM(require("zlib"), 1); @@ -72674,7 +72994,7 @@ var http_default = isHttpAdapterSupported && function httpAdapter(config8) { if (config8.transport) { transport = config8.transport; } else if (config8.maxRedirects === 0) { - transport = isHttpsRequest ? import_https.default : import_http.default; + transport = isHttpsRequest ? import_https2.default : import_http.default; } else { if (config8.maxRedirects) { options.maxRedirects = config8.maxRedirects; @@ -74468,7 +74788,7 @@ var AnthropicEngine = class { const clientOptions = { apiKey: this.config.apiKey }; const proxy = config8.proxy || process.env.HTTPS_PROXY || process.env.HTTP_PROXY; if (proxy) { - clientOptions.httpAgent = new import_https_proxy_agent.HttpsProxyAgent(proxy); + clientOptions.httpAgent = new HttpsProxyAgent(proxy); } this.client = new sdk_default(clientOptions); } @@ -74622,11 +74942,11 @@ function __asyncGenerator(thisArg, _arguments, generator) { function verb(n2) { if (g5[n2]) i3[n2] = function(v5) { return new Promise(function(a4, b7) { - q6.push([n2, v5, a4, b7]) > 1 || resume(n2, v5); + q6.push([n2, v5, a4, b7]) > 1 || resume2(n2, v5); }); }; } - function resume(n2, v5) { + function resume2(n2, v5) { try { step(g5[n2](v5)); } catch (e3) { @@ -74637,13 +74957,13 @@ function __asyncGenerator(thisArg, _arguments, generator) { r3.value instanceof __await ? Promise.resolve(r3.value.v).then(fulfill, reject) : settle2(q6[0][2], r3); } function fulfill(value) { - resume("next", value); + resume2("next", value); } function reject(value) { - resume("throw", value); + resume2("throw", value); } function settle2(f4, v5) { - if (f4(v5), q6.shift(), q6.length) resume(q6[0][0], q6[0][1]); + if (f4(v5), q6.shift(), q6.length) resume2(q6[0][0], q6[0][1]); } } function __asyncValues(o3) { @@ -74911,14 +75231,14 @@ function disable() { return result; } function createDebugger(namespace) { - const newDebugger = Object.assign(debug3, { + const newDebugger = Object.assign(debug5, { enabled: enabled(namespace), destroy, log: debugObj.log, namespace, extend: extend2 }); - function debug3(...args) { + function debug5(...args) { if (!newDebugger.enabled) { return; } @@ -76279,7 +76599,7 @@ function createPipelineFromOptions(options) { } // node_modules/@azure/core-rest-pipeline/dist/esm/nodeHttpClient.js -var http2 = __toESM(require("node:http"), 1); +var http3 = __toESM(require("node:http"), 1); var https2 = __toESM(require("node:https"), 1); var zlib2 = __toESM(require("node:zlib"), 1); var import_node_stream3 = require("node:stream"); @@ -76436,7 +76756,7 @@ var NodeHttpClient = class { headers: request3.headers.toJSON({ preserveCase: true }) }; return new Promise((resolve, reject) => { - const req = isInsecure ? http2.request(options, resolve) : https2.request(options, resolve); + const req = isInsecure ? http3.request(options, resolve) : https2.request(options, resolve); req.once("error", (err) => { var _a6; reject(new RestError(err.message, { code: (_a6 = err.code) !== null && _a6 !== void 0 ? _a6 : RestError.REQUEST_SEND_ERROR, request: request3 })); @@ -76467,10 +76787,10 @@ var NodeHttpClient = class { const disableKeepAlive = request3.disableKeepAlive; if (isInsecure) { if (disableKeepAlive) { - return http2.globalAgent; + return http3.globalAgent; } if (!this.cachedHttpAgent) { - this.cachedHttpAgent = new http2.Agent({ keepAlive: true }); + this.cachedHttpAgent = new http3.Agent({ keepAlive: true }); } return this.cachedHttpAgent; } else { @@ -78342,6 +78662,27 @@ var FlowiseEngine = class { }; // node_modules/@google/generative-ai/dist/index.mjs +var SchemaType; +(function(SchemaType2) { + SchemaType2["STRING"] = "string"; + SchemaType2["NUMBER"] = "number"; + SchemaType2["INTEGER"] = "integer"; + SchemaType2["BOOLEAN"] = "boolean"; + SchemaType2["ARRAY"] = "array"; + SchemaType2["OBJECT"] = "object"; +})(SchemaType || (SchemaType = {})); +var ExecutableCodeLanguage; +(function(ExecutableCodeLanguage2) { + ExecutableCodeLanguage2["LANGUAGE_UNSPECIFIED"] = "language_unspecified"; + ExecutableCodeLanguage2["PYTHON"] = "python"; +})(ExecutableCodeLanguage || (ExecutableCodeLanguage = {})); +var Outcome; +(function(Outcome2) { + Outcome2["OUTCOME_UNSPECIFIED"] = "outcome_unspecified"; + Outcome2["OUTCOME_OK"] = "outcome_ok"; + Outcome2["OUTCOME_FAILED"] = "outcome_failed"; + Outcome2["OUTCOME_DEADLINE_EXCEEDED"] = "outcome_deadline_exceeded"; +})(Outcome || (Outcome = {})); var POSSIBLE_ROLES = ["user", "model", "function", "system"]; var HarmCategory; (function(HarmCategory2) { @@ -78350,6 +78691,7 @@ var HarmCategory; HarmCategory2["HARM_CATEGORY_SEXUALLY_EXPLICIT"] = "HARM_CATEGORY_SEXUALLY_EXPLICIT"; HarmCategory2["HARM_CATEGORY_HARASSMENT"] = "HARM_CATEGORY_HARASSMENT"; HarmCategory2["HARM_CATEGORY_DANGEROUS_CONTENT"] = "HARM_CATEGORY_DANGEROUS_CONTENT"; + HarmCategory2["HARM_CATEGORY_CIVIC_INTEGRITY"] = "HARM_CATEGORY_CIVIC_INTEGRITY"; })(HarmCategory || (HarmCategory = {})); var HarmBlockThreshold; (function(HarmBlockThreshold2) { @@ -78380,6 +78722,11 @@ var FinishReason; FinishReason2["MAX_TOKENS"] = "MAX_TOKENS"; FinishReason2["SAFETY"] = "SAFETY"; FinishReason2["RECITATION"] = "RECITATION"; + FinishReason2["LANGUAGE"] = "LANGUAGE"; + FinishReason2["BLOCKLIST"] = "BLOCKLIST"; + FinishReason2["PROHIBITED_CONTENT"] = "PROHIBITED_CONTENT"; + FinishReason2["SPII"] = "SPII"; + FinishReason2["MALFORMED_FUNCTION_CALL"] = "MALFORMED_FUNCTION_CALL"; FinishReason2["OTHER"] = "OTHER"; })(FinishReason || (FinishReason = {})); var TaskType; @@ -78398,15 +78745,11 @@ var FunctionCallingMode; FunctionCallingMode2["ANY"] = "ANY"; FunctionCallingMode2["NONE"] = "NONE"; })(FunctionCallingMode || (FunctionCallingMode = {})); -var FunctionDeclarationSchemaType; -(function(FunctionDeclarationSchemaType2) { - FunctionDeclarationSchemaType2["STRING"] = "STRING"; - FunctionDeclarationSchemaType2["NUMBER"] = "NUMBER"; - FunctionDeclarationSchemaType2["INTEGER"] = "INTEGER"; - FunctionDeclarationSchemaType2["BOOLEAN"] = "BOOLEAN"; - FunctionDeclarationSchemaType2["ARRAY"] = "ARRAY"; - FunctionDeclarationSchemaType2["OBJECT"] = "OBJECT"; -})(FunctionDeclarationSchemaType || (FunctionDeclarationSchemaType = {})); +var DynamicRetrievalMode; +(function(DynamicRetrievalMode2) { + DynamicRetrievalMode2["MODE_UNSPECIFIED"] = "MODE_UNSPECIFIED"; + DynamicRetrievalMode2["MODE_DYNAMIC"] = "MODE_DYNAMIC"; +})(DynamicRetrievalMode || (DynamicRetrievalMode = {})); var GoogleGenerativeAIError = class extends Error { constructor(message) { super(`[GoogleGenerativeAI Error]: ${message}`); @@ -78428,9 +78771,11 @@ var GoogleGenerativeAIFetchError = class extends GoogleGenerativeAIError { }; var GoogleGenerativeAIRequestInputError = class extends GoogleGenerativeAIError { }; +var GoogleGenerativeAIAbortError = class extends GoogleGenerativeAIError { +}; var DEFAULT_BASE_URL = "https://generativelanguage.googleapis.com"; var DEFAULT_API_VERSION = "v1beta"; -var PACKAGE_VERSION = "0.11.4"; +var PACKAGE_VERSION = "0.24.1"; var PACKAGE_LOG_HEADER = "genai-js"; var Task; (function(Task2) { @@ -78468,11 +78813,12 @@ function getClientHeaders(requestOptions) { return clientHeaders.join(" "); } async function getHeaders(url2) { + var _a5; const headers = new Headers(); headers.append("Content-Type", "application/json"); headers.append("x-goog-api-client", getClientHeaders(url2.requestOptions)); headers.append("x-goog-api-key", url2.apiKey); - let customHeaders = url2.requestOptions.customHeaders; + let customHeaders = (_a5 = url2.requestOptions) === null || _a5 === void 0 ? void 0 : _a5.customHeaders; if (customHeaders) { if (!(customHeaders instanceof Headers)) { try { @@ -78492,53 +78838,67 @@ async function getHeaders(url2) { } return headers; } -async function constructRequest(model, task, apiKey, stream4, body, requestOptions) { +async function constructModelRequest(model, task, apiKey, stream4, body, requestOptions) { const url2 = new RequestUrl(model, task, apiKey, stream4, requestOptions); return { url: url2.toString(), fetchOptions: Object.assign(Object.assign({}, buildFetchOptions(requestOptions)), { method: "POST", headers: await getHeaders(url2), body }) }; } -async function makeRequest(model, task, apiKey, stream4, body, requestOptions) { - return _makeRequestInternal(model, task, apiKey, stream4, body, requestOptions, fetch); +async function makeModelRequest(model, task, apiKey, stream4, body, requestOptions = {}, fetchFn = fetch) { + const { url: url2, fetchOptions } = await constructModelRequest(model, task, apiKey, stream4, body, requestOptions); + return makeRequest(url2, fetchOptions, fetchFn); } -async function _makeRequestInternal(model, task, apiKey, stream4, body, requestOptions, fetchFn = fetch) { - const url2 = new RequestUrl(model, task, apiKey, stream4, requestOptions); +async function makeRequest(url2, fetchOptions, fetchFn = fetch) { let response; try { - const request3 = await constructRequest(model, task, apiKey, stream4, body, requestOptions); - response = await fetchFn(request3.url, request3.fetchOptions); - if (!response.ok) { - let message = ""; - let errorDetails; - try { - const json = await response.json(); - message = json.error.message; - if (json.error.details) { - message += ` ${JSON.stringify(json.error.details)}`; - errorDetails = json.error.details; - } - } catch (e3) { - } - throw new GoogleGenerativeAIFetchError(`Error fetching from ${url2.toString()}: [${response.status} ${response.statusText}] ${message}`, response.status, response.statusText, errorDetails); - } + response = await fetchFn(url2, fetchOptions); } catch (e3) { - let err = e3; - if (!(e3 instanceof GoogleGenerativeAIFetchError || e3 instanceof GoogleGenerativeAIRequestInputError)) { - err = new GoogleGenerativeAIError(`Error fetching from ${url2.toString()}: ${e3.message}`); - err.stack = e3.stack; - } - throw err; + handleResponseError(e3, url2); + } + if (!response.ok) { + await handleResponseNotOk(response, url2); } return response; } +function handleResponseError(e3, url2) { + let err = e3; + if (err.name === "AbortError") { + err = new GoogleGenerativeAIAbortError(`Request aborted when fetching ${url2.toString()}: ${e3.message}`); + err.stack = e3.stack; + } else if (!(e3 instanceof GoogleGenerativeAIFetchError || e3 instanceof GoogleGenerativeAIRequestInputError)) { + err = new GoogleGenerativeAIError(`Error fetching from ${url2.toString()}: ${e3.message}`); + err.stack = e3.stack; + } + throw err; +} +async function handleResponseNotOk(response, url2) { + let message = ""; + let errorDetails; + try { + const json = await response.json(); + message = json.error.message; + if (json.error.details) { + message += ` ${JSON.stringify(json.error.details)}`; + errorDetails = json.error.details; + } + } catch (e3) { + } + throw new GoogleGenerativeAIFetchError(`Error fetching from ${url2.toString()}: [${response.status} ${response.statusText}] ${message}`, response.status, response.statusText, errorDetails); +} function buildFetchOptions(requestOptions) { const fetchOptions = {}; - if ((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeout) >= 0) { - const abortController = new AbortController(); - const signal = abortController.signal; - setTimeout(() => abortController.abort(), requestOptions.timeout); - fetchOptions.signal = signal; + if ((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.signal) !== void 0 || (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeout) >= 0) { + const controller = new AbortController(); + if ((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeout) >= 0) { + setTimeout(() => controller.abort(), requestOptions.timeout); + } + if (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.signal) { + requestOptions.signal.addEventListener("abort", () => { + controller.abort(); + }); + } + fetchOptions.signal = controller.signal; } return fetchOptions; } @@ -78596,6 +78956,12 @@ function getText(response) { if (part.text) { textStrings.push(part.text); } + if (part.executableCode) { + textStrings.push("\n```" + part.executableCode.language + "\n" + part.executableCode.code + "\n```\n"); + } + if (part.codeExecutionResult) { + textStrings.push("\n```\n" + part.codeExecutionResult.output + "\n```\n"); + } } } if (textStrings.length > 0) { @@ -78620,7 +78986,11 @@ function getFunctionCalls(response) { return void 0; } } -var badFinishReasons = [FinishReason.RECITATION, FinishReason.SAFETY]; +var badFinishReasons = [ + FinishReason.RECITATION, + FinishReason.SAFETY, + FinishReason.LANGUAGE +]; function hadBadFinishReason(candidate) { return !!candidate.finishReason && badFinishReasons.includes(candidate.finishReason); } @@ -78658,11 +79028,11 @@ function __asyncGenerator2(thisArg, _arguments, generator) { function verb(n2) { if (g5[n2]) i3[n2] = function(v5) { return new Promise(function(a4, b7) { - q6.push([n2, v5, a4, b7]) > 1 || resume(n2, v5); + q6.push([n2, v5, a4, b7]) > 1 || resume2(n2, v5); }); }; } - function resume(n2, v5) { + function resume2(n2, v5) { try { step(g5[n2](v5)); } catch (e3) { @@ -78673,13 +79043,13 @@ function __asyncGenerator2(thisArg, _arguments, generator) { r3.value instanceof __await2 ? Promise.resolve(r3.value.v).then(fulfill, reject) : settle2(q6[0][2], r3); } function fulfill(value) { - resume("next", value); + resume2("next", value); } function reject(value) { - resume("throw", value); + resume2("throw", value); } function settle2(f4, v5) { - if (f4(v5), q6.shift(), q6.length) resume(q6[0][0], q6[0][1]); + if (f4(v5), q6.shift(), q6.length) resume2(q6[0][0], q6[0][1]); } } var responseLineRE = /^data\: (.*)(?:\n\n|\r\r|\r\n\r\n)/; @@ -78746,6 +79116,15 @@ function getResponseStream(inputStream) { match = currentText.match(responseLineRE); } return pump(); + }).catch((e3) => { + let err = e3; + err.stack = e3.stack; + if (err.name === "AbortError") { + err = new GoogleGenerativeAIAbortError("Request aborted when reading from the stream"); + } else { + err = new GoogleGenerativeAIError("Error reading from the stream"); + } + throw err; }); } } @@ -78759,23 +79138,24 @@ function aggregateResponses(responses) { }; for (const response of responses) { if (response.candidates) { + let candidateIndex = 0; for (const candidate of response.candidates) { - const i3 = candidate.index; if (!aggregatedResponse.candidates) { aggregatedResponse.candidates = []; } - if (!aggregatedResponse.candidates[i3]) { - aggregatedResponse.candidates[i3] = { - index: candidate.index + if (!aggregatedResponse.candidates[candidateIndex]) { + aggregatedResponse.candidates[candidateIndex] = { + index: candidateIndex }; } - aggregatedResponse.candidates[i3].citationMetadata = candidate.citationMetadata; - aggregatedResponse.candidates[i3].finishReason = candidate.finishReason; - aggregatedResponse.candidates[i3].finishMessage = candidate.finishMessage; - aggregatedResponse.candidates[i3].safetyRatings = candidate.safetyRatings; + aggregatedResponse.candidates[candidateIndex].citationMetadata = candidate.citationMetadata; + aggregatedResponse.candidates[candidateIndex].groundingMetadata = candidate.groundingMetadata; + aggregatedResponse.candidates[candidateIndex].finishReason = candidate.finishReason; + aggregatedResponse.candidates[candidateIndex].finishMessage = candidate.finishMessage; + aggregatedResponse.candidates[candidateIndex].safetyRatings = candidate.safetyRatings; if (candidate.content && candidate.content.parts) { - if (!aggregatedResponse.candidates[i3].content) { - aggregatedResponse.candidates[i3].content = { + if (!aggregatedResponse.candidates[candidateIndex].content) { + aggregatedResponse.candidates[candidateIndex].content = { role: candidate.content.role || "user", parts: [] }; @@ -78788,19 +79168,29 @@ function aggregateResponses(responses) { if (part.functionCall) { newPart.functionCall = part.functionCall; } + if (part.executableCode) { + newPart.executableCode = part.executableCode; + } + if (part.codeExecutionResult) { + newPart.codeExecutionResult = part.codeExecutionResult; + } if (Object.keys(newPart).length === 0) { newPart.text = ""; } - aggregatedResponse.candidates[i3].content.parts.push(newPart); + aggregatedResponse.candidates[candidateIndex].content.parts.push(newPart); } } } + candidateIndex++; + } + if (response.usageMetadata) { + aggregatedResponse.usageMetadata = response.usageMetadata; } } return aggregatedResponse; } async function generateContentStream(apiKey, model, params, requestOptions) { - const response = await makeRequest( + const response = await makeModelRequest( model, Task.STREAM_GENERATE_CONTENT, apiKey, @@ -78812,7 +79202,7 @@ async function generateContentStream(apiKey, model, params, requestOptions) { return processStream(response); } async function generateContent(apiKey, model, params, requestOptions) { - const response = await makeRequest( + const response = await makeModelRequest( model, Task.GENERATE_CONTENT, apiKey, @@ -78882,6 +79272,32 @@ function assignRoleToPartsAndValidateSendMessageRequest(parts) { } return functionContent; } +function formatCountTokensInput(params, modelParams) { + var _a5; + let formattedGenerateContentRequest = { + model: modelParams === null || modelParams === void 0 ? void 0 : modelParams.model, + generationConfig: modelParams === null || modelParams === void 0 ? void 0 : modelParams.generationConfig, + safetySettings: modelParams === null || modelParams === void 0 ? void 0 : modelParams.safetySettings, + tools: modelParams === null || modelParams === void 0 ? void 0 : modelParams.tools, + toolConfig: modelParams === null || modelParams === void 0 ? void 0 : modelParams.toolConfig, + systemInstruction: modelParams === null || modelParams === void 0 ? void 0 : modelParams.systemInstruction, + cachedContent: (_a5 = modelParams === null || modelParams === void 0 ? void 0 : modelParams.cachedContent) === null || _a5 === void 0 ? void 0 : _a5.name, + contents: [] + }; + const containsGenerateContentRequest = params.generateContentRequest != null; + if (params.contents) { + if (containsGenerateContentRequest) { + throw new GoogleGenerativeAIRequestInputError("CountTokensRequest must have one of contents or generateContentRequest, not both."); + } + formattedGenerateContentRequest.contents = params.contents; + } else if (containsGenerateContentRequest) { + formattedGenerateContentRequest = Object.assign(Object.assign({}, formattedGenerateContentRequest), params.generateContentRequest); + } else { + const content = formatNewContent(params); + formattedGenerateContentRequest.contents = [content]; + } + return { generateContentRequest: formattedGenerateContentRequest }; +} function formatGenerateContentInput(params) { let formattedRequest; if (params.contents) { @@ -78906,12 +79322,14 @@ var VALID_PART_FIELDS = [ "text", "inlineData", "functionCall", - "functionResponse" + "functionResponse", + "executableCode", + "codeExecutionResult" ]; var VALID_PARTS_PER_ROLE = { user: ["text", "inlineData"], function: ["functionResponse"], - model: ["text", "functionCall"], + model: ["text", "functionCall", "executableCode", "codeExecutionResult"], // System instructions shouldn't be in history anyway. system: ["text"] }; @@ -78936,7 +79354,9 @@ function validateChatHistory(history) { inlineData: 0, functionCall: 0, functionResponse: 0, - fileData: 0 + fileData: 0, + executableCode: 0, + codeExecutionResult: 0 }; for (const part of parts) { for (const key of VALID_PART_FIELDS) { @@ -78954,12 +79374,34 @@ function validateChatHistory(history) { prevContent = true; } } +function isValidResponse(response) { + var _a5; + if (response.candidates === void 0 || response.candidates.length === 0) { + return false; + } + const content = (_a5 = response.candidates[0]) === null || _a5 === void 0 ? void 0 : _a5.content; + if (content === void 0) { + return false; + } + if (content.parts === void 0 || content.parts.length === 0) { + return false; + } + for (const part of content.parts) { + if (part === void 0 || Object.keys(part).length === 0) { + return false; + } + if (part.text !== void 0 && part.text === "") { + return false; + } + } + return true; +} var SILENT_ERROR = "SILENT_ERROR"; var ChatSession = class { - constructor(apiKey, model, params, requestOptions) { + constructor(apiKey, model, params, _requestOptions = {}) { this.model = model; this.params = params; - this.requestOptions = requestOptions; + this._requestOptions = _requestOptions; this._history = []; this._sendPromise = Promise.resolve(); this._apiKey = apiKey; @@ -78979,10 +79421,14 @@ var ChatSession = class { } /** * Sends a chat message and receives a non-streaming - * {@link GenerateContentResult} + * {@link GenerateContentResult}. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async sendMessage(request3) { - var _a5, _b2, _c2, _d2, _e2; + async sendMessage(request3, requestOptions = {}) { + var _a5, _b2, _c2, _d2, _e2, _f; await this._sendPromise; const newContent = formatNewContent(request3); const generateContentRequest = { @@ -78991,12 +79437,14 @@ var ChatSession = class { tools: (_c2 = this.params) === null || _c2 === void 0 ? void 0 : _c2.tools, toolConfig: (_d2 = this.params) === null || _d2 === void 0 ? void 0 : _d2.toolConfig, systemInstruction: (_e2 = this.params) === null || _e2 === void 0 ? void 0 : _e2.systemInstruction, + cachedContent: (_f = this.params) === null || _f === void 0 ? void 0 : _f.cachedContent, contents: [...this._history, newContent] }; + const chatSessionRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); let finalResult; - this._sendPromise = this._sendPromise.then(() => generateContent(this._apiKey, this.model, generateContentRequest, this.requestOptions)).then((result) => { + this._sendPromise = this._sendPromise.then(() => generateContent(this._apiKey, this.model, generateContentRequest, chatSessionRequestOptions)).then((result) => { var _a6; - if (result.response.candidates && result.response.candidates.length > 0) { + if (isValidResponse(result.response)) { this._history.push(newContent); const responseContent = Object.assign({ parts: [], @@ -79011,6 +79459,9 @@ var ChatSession = class { } } finalResult = result; + }).catch((e3) => { + this._sendPromise = Promise.resolve(); + throw e3; }); await this._sendPromise; return finalResult; @@ -79019,9 +79470,13 @@ var ChatSession = class { * Sends a chat message and receives the response as a * {@link GenerateContentStreamResult} containing an iterable stream * and a response promise. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async sendMessageStream(request3) { - var _a5, _b2, _c2, _d2, _e2; + async sendMessageStream(request3, requestOptions = {}) { + var _a5, _b2, _c2, _d2, _e2, _f; await this._sendPromise; const newContent = formatNewContent(request3); const generateContentRequest = { @@ -79030,13 +79485,15 @@ var ChatSession = class { tools: (_c2 = this.params) === null || _c2 === void 0 ? void 0 : _c2.tools, toolConfig: (_d2 = this.params) === null || _d2 === void 0 ? void 0 : _d2.toolConfig, systemInstruction: (_e2 = this.params) === null || _e2 === void 0 ? void 0 : _e2.systemInstruction, + cachedContent: (_f = this.params) === null || _f === void 0 ? void 0 : _f.cachedContent, contents: [...this._history, newContent] }; - const streamPromise = generateContentStream(this._apiKey, this.model, generateContentRequest, this.requestOptions); + const chatSessionRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); + const streamPromise = generateContentStream(this._apiKey, this.model, generateContentRequest, chatSessionRequestOptions); this._sendPromise = this._sendPromise.then(() => streamPromise).catch((_ignored) => { throw new Error(SILENT_ERROR); }).then((streamResult) => streamResult.response).then((response) => { - if (response.candidates && response.candidates.length > 0) { + if (isValidResponse(response)) { this._history.push(newContent); const responseContent = Object.assign({}, response.candidates[0].content); if (!responseContent.role) { @@ -79057,24 +79514,25 @@ var ChatSession = class { return streamPromise; } }; -async function countTokens(apiKey, model, params, requestOptions) { - const response = await makeRequest(model, Task.COUNT_TOKENS, apiKey, false, JSON.stringify(Object.assign(Object.assign({}, params), { model })), requestOptions); +async function countTokens(apiKey, model, params, singleRequestOptions) { + const response = await makeModelRequest(model, Task.COUNT_TOKENS, apiKey, false, JSON.stringify(params), singleRequestOptions); return response.json(); } async function embedContent(apiKey, model, params, requestOptions) { - const response = await makeRequest(model, Task.EMBED_CONTENT, apiKey, false, JSON.stringify(params), requestOptions); + const response = await makeModelRequest(model, Task.EMBED_CONTENT, apiKey, false, JSON.stringify(params), requestOptions); return response.json(); } async function batchEmbedContents(apiKey, model, params, requestOptions) { const requestsWithModel = params.requests.map((request3) => { return Object.assign(Object.assign({}, request3), { model }); }); - const response = await makeRequest(model, Task.BATCH_EMBED_CONTENTS, apiKey, false, JSON.stringify({ requests: requestsWithModel }), requestOptions); + const response = await makeModelRequest(model, Task.BATCH_EMBED_CONTENTS, apiKey, false, JSON.stringify({ requests: requestsWithModel }), requestOptions); return response.json(); } var GenerativeModel = class { - constructor(apiKey, modelParams, requestOptions) { + constructor(apiKey, modelParams, _requestOptions = {}) { this.apiKey = apiKey; + this._requestOptions = _requestOptions; if (modelParams.model.includes("/")) { this.model = modelParams.model; } else { @@ -79085,52 +79543,88 @@ var GenerativeModel = class { this.tools = modelParams.tools; this.toolConfig = modelParams.toolConfig; this.systemInstruction = formatSystemInstruction(modelParams.systemInstruction); - this.requestOptions = requestOptions || {}; + this.cachedContent = modelParams.cachedContent; } /** * Makes a single non-streaming call to the model * and returns an object containing a single {@link GenerateContentResponse}. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async generateContent(request3) { + async generateContent(request3, requestOptions = {}) { + var _a5; const formattedParams = formatGenerateContentInput(request3); - return generateContent(this.apiKey, this.model, Object.assign({ generationConfig: this.generationConfig, safetySettings: this.safetySettings, tools: this.tools, toolConfig: this.toolConfig, systemInstruction: this.systemInstruction }, formattedParams), this.requestOptions); + const generativeModelRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); + return generateContent(this.apiKey, this.model, Object.assign({ generationConfig: this.generationConfig, safetySettings: this.safetySettings, tools: this.tools, toolConfig: this.toolConfig, systemInstruction: this.systemInstruction, cachedContent: (_a5 = this.cachedContent) === null || _a5 === void 0 ? void 0 : _a5.name }, formattedParams), generativeModelRequestOptions); } /** - * Makes a single streaming call to the model - * and returns an object containing an iterable stream that iterates - * over all chunks in the streaming response as well as - * a promise that returns the final aggregated response. + * Makes a single streaming call to the model and returns an object + * containing an iterable stream that iterates over all chunks in the + * streaming response as well as a promise that returns the final + * aggregated response. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async generateContentStream(request3) { + async generateContentStream(request3, requestOptions = {}) { + var _a5; const formattedParams = formatGenerateContentInput(request3); - return generateContentStream(this.apiKey, this.model, Object.assign({ generationConfig: this.generationConfig, safetySettings: this.safetySettings, tools: this.tools, toolConfig: this.toolConfig, systemInstruction: this.systemInstruction }, formattedParams), this.requestOptions); + const generativeModelRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); + return generateContentStream(this.apiKey, this.model, Object.assign({ generationConfig: this.generationConfig, safetySettings: this.safetySettings, tools: this.tools, toolConfig: this.toolConfig, systemInstruction: this.systemInstruction, cachedContent: (_a5 = this.cachedContent) === null || _a5 === void 0 ? void 0 : _a5.name }, formattedParams), generativeModelRequestOptions); } /** * Gets a new {@link ChatSession} instance which can be used for * multi-turn chats. */ startChat(startChatParams) { - return new ChatSession(this.apiKey, this.model, Object.assign({ generationConfig: this.generationConfig, safetySettings: this.safetySettings, tools: this.tools, toolConfig: this.toolConfig, systemInstruction: this.systemInstruction }, startChatParams), this.requestOptions); + var _a5; + return new ChatSession(this.apiKey, this.model, Object.assign({ generationConfig: this.generationConfig, safetySettings: this.safetySettings, tools: this.tools, toolConfig: this.toolConfig, systemInstruction: this.systemInstruction, cachedContent: (_a5 = this.cachedContent) === null || _a5 === void 0 ? void 0 : _a5.name }, startChatParams), this._requestOptions); } /** * Counts the tokens in the provided request. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async countTokens(request3) { - const formattedParams = formatGenerateContentInput(request3); - return countTokens(this.apiKey, this.model, formattedParams, this.requestOptions); + async countTokens(request3, requestOptions = {}) { + const formattedParams = formatCountTokensInput(request3, { + model: this.model, + generationConfig: this.generationConfig, + safetySettings: this.safetySettings, + tools: this.tools, + toolConfig: this.toolConfig, + systemInstruction: this.systemInstruction, + cachedContent: this.cachedContent + }); + const generativeModelRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); + return countTokens(this.apiKey, this.model, formattedParams, generativeModelRequestOptions); } /** * Embeds the provided content. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async embedContent(request3) { + async embedContent(request3, requestOptions = {}) { const formattedParams = formatEmbedContentInput(request3); - return embedContent(this.apiKey, this.model, formattedParams, this.requestOptions); + const generativeModelRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); + return embedContent(this.apiKey, this.model, formattedParams, generativeModelRequestOptions); } /** * Embeds an array of {@link EmbedContentRequest}s. + * + * Fields set in the optional {@link SingleRequestOptions} parameter will + * take precedence over the {@link RequestOptions} values provided to + * {@link GoogleGenerativeAI.getGenerativeModel }. */ - async batchEmbedContents(batchEmbedContentRequest) { - return batchEmbedContents(this.apiKey, this.model, batchEmbedContentRequest, this.requestOptions); + async batchEmbedContents(batchEmbedContentRequest, requestOptions = {}) { + const generativeModelRequestOptions = Object.assign(Object.assign({}, this._requestOptions), requestOptions); + return batchEmbedContents(this.apiKey, this.model, batchEmbedContentRequest, generativeModelRequestOptions); } }; var GoogleGenerativeAI = class { @@ -79146,6 +79640,32 @@ var GoogleGenerativeAI = class { } return new GenerativeModel(this.apiKey, modelParams, requestOptions); } + /** + * Creates a {@link GenerativeModel} instance from provided content cache. + */ + getGenerativeModelFromCachedContent(cachedContent, modelParams, requestOptions) { + if (!cachedContent.name) { + throw new GoogleGenerativeAIRequestInputError("Cached content must contain a `name` field."); + } + if (!cachedContent.model) { + throw new GoogleGenerativeAIRequestInputError("Cached content must contain a `model` field."); + } + const disallowedDuplicates = ["model", "systemInstruction"]; + for (const key of disallowedDuplicates) { + if ((modelParams === null || modelParams === void 0 ? void 0 : modelParams[key]) && cachedContent[key] && (modelParams === null || modelParams === void 0 ? void 0 : modelParams[key]) !== cachedContent[key]) { + if (key === "model") { + const modelParamsComp = modelParams.model.startsWith("models/") ? modelParams.model.replace("models/", "") : modelParams.model; + const cachedContentComp = cachedContent.model.startsWith("models/") ? cachedContent.model.replace("models/", "") : cachedContent.model; + if (modelParamsComp === cachedContentComp) { + continue; + } + } + throw new GoogleGenerativeAIRequestInputError(`Different value for "${key}" specified in modelParams (${modelParams[key]}) and cachedContent (${cachedContent[key]})`); + } + } + const modelParamsFromCache = Object.assign(Object.assign({}, modelParams), { model: cachedContent.model, tools: cachedContent.tools, toolConfig: cachedContent.toolConfig, systemInstruction: cachedContent.systemInstruction, cachedContent }); + return new GenerativeModel(this.apiKey, modelParamsFromCache, requestOptions); + } }; // src/engine/gemini.ts @@ -79833,7 +80353,7 @@ var _AbstractPage_client2; async function defaultParseResponse2(props) { const { response } = props; if (props.options.stream) { - debug2("response", response.status, response.url, response.headers, response.body); + debug4("response", response.status, response.url, response.headers, response.body); if (props.options.__streamClass) { return props.options.__streamClass.fromSSEResponse(response, props.controller); } @@ -79849,11 +80369,11 @@ async function defaultParseResponse2(props) { const isJSON = contentType?.includes("application/json") || contentType?.includes("application/vnd.api+json"); if (isJSON) { const json = await response.json(); - debug2("response", response.status, response.url, response.headers, json); + debug4("response", response.status, response.url, response.headers, json); return json; } const text = await response.text(); - debug2("response", response.status, response.url, response.headers, text); + debug4("response", response.status, response.url, response.headers, text); return text; } var APIPromise2 = class _APIPromise extends Promise { @@ -80072,7 +80592,7 @@ var APIClient2 = class { await this.prepareOptions(options); const { req, url: url2, timeout } = this.buildRequest(options); await this.prepareRequest(req, { url: url2, options }); - debug2("request", url2, options, req.headers); + debug4("request", url2, options, req.headers); if (options.signal?.aborted) { throw new APIUserAbortError3(); } @@ -80094,14 +80614,14 @@ var APIClient2 = class { if (!response.ok) { if (retriesRemaining && this.shouldRetry(response)) { const retryMessage2 = `retrying, ${retriesRemaining} attempts remaining`; - debug2(`response (error; ${retryMessage2})`, response.status, url2, responseHeaders); + debug4(`response (error; ${retryMessage2})`, response.status, url2, responseHeaders); return this.retryRequest(options, retriesRemaining, responseHeaders); } const errText = await response.text().catch((e3) => castToError2(e3).message); const errJSON = safeJSON2(errText); const errMessage = errJSON ? void 0 : errText; const retryMessage = retriesRemaining ? `(error; no more retries left)` : `(error; not retryable)`; - debug2(`response (error; ${retryMessage})`, response.status, url2, responseHeaders, errMessage); + debug4(`response (error; ${retryMessage})`, response.status, url2, responseHeaders, errMessage); const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders); throw err; } @@ -80465,7 +80985,7 @@ function applyHeadersMut2(targetHeaders, newHeaders) { } } } -function debug2(action, ...args) { +function debug4(action, ...args) { if (typeof process !== "undefined" && process?.env?.["DEBUG"] === "true") { console.log(`OpenAI:DEBUG:${action}`, ...args); } @@ -83943,7 +84463,6 @@ var { OpenAIError: OpenAIError2, APIError: APIError4, APIConnectionError: APICon })(OpenAI || (OpenAI = {})); // src/engine/openAi.ts -var import_https_proxy_agent3 = __toESM(require_dist2(), 1); var OpenAiEngine = class { constructor(config8) { this.generateCommitMessage = async (messages) => { @@ -83980,7 +84499,7 @@ var OpenAiEngine = class { } const proxy = config8.proxy || process.env.HTTPS_PROXY || process.env.HTTP_PROXY; if (proxy) { - clientOptions.httpAgent = new import_https_proxy_agent3.HttpsProxyAgent(proxy); + clientOptions.httpAgent = new HttpsProxyAgent(proxy); } if (config8.customHeaders) { const headers = parseCustomHeaders(config8.customHeaders); @@ -84599,30 +85118,29 @@ var FULL_GITMOJI_SPEC = `${GITMOJI_HELP} \u{1F9F5}, Add or update code related to multithreading or concurrency; \u{1F9BA}, Add or update code related to validation.`; var CONVENTIONAL_COMMIT_KEYWORDS = "Do not preface the commit with anything, except for the conventional commit keywords: fix, feat, build, chore, ci, docs, style, refactor, perf, test."; -var getCommitConvention = (fullGitMojiSpec) => config4.OCO_EMOJI ? fullGitMojiSpec ? FULL_GITMOJI_SPEC : GITMOJI_HELP : CONVENTIONAL_COMMIT_KEYWORDS; +var getCommitConvention = (fullGitMojiSpec) => fullGitMojiSpec ? FULL_GITMOJI_SPEC : config4.OCO_EMOJI ? GITMOJI_HELP : CONVENTIONAL_COMMIT_KEYWORDS; var getDescriptionInstruction = () => config4.OCO_DESCRIPTION ? `Add a short description of WHY the changes are done after the commit message. Don't start it with "This commit", just describe the changes.` : "Don't add any descriptions to the commit, only commit message."; var getOneLineCommitInstruction = () => config4.OCO_ONE_LINE_COMMIT ? "Craft a concise, single sentence, commit message that encapsulates all changes made, with an emphasis on the primary updates. If the modifications share a common theme or scope, mention it succinctly; otherwise, leave the scope out to maintain focus. The goal is to provide a clear and unified overview of the changes in one single message." : ""; var getScopeInstruction = () => config4.OCO_OMIT_SCOPE ? "Do not include a scope in the commit message format. Use the format: : " : ""; var userInputCodeContext = (context) => { - if (context !== "" && context !== " ") { - return `Additional context provided by the user: ${context} -Consider this context when generating the commit message, incorporating relevant information when appropriate.`; + const trimmed = (context ?? "").trim(); + if (trimmed === "") { + return ""; } - return ""; + return `Additional context provided by the user: ${trimmed} +Consider this context when generating the commit message, incorporating relevant information when appropriate.`; }; -var INIT_MAIN_PROMPT2 = (language, fullGitMojiSpec, context) => ({ - role: "system", - content: (() => { - const commitConvention = fullGitMojiSpec ? "GitMoji specification" : "Conventional Commit Convention"; - const missionStatement = `${IDENTITY} Your mission is to create clean and comprehensive commit messages as per the ${commitConvention} and explain WHAT were the changes and mainly WHY the changes were done.`; - const diffInstruction = "I'll send you an output of 'git diff --staged' command, and you are to convert it into a commit message."; - const conventionGuidelines = getCommitConvention(fullGitMojiSpec); - const descriptionGuideline = getDescriptionInstruction(); - const oneLineCommitGuideline = getOneLineCommitInstruction(); - const scopeInstruction = getScopeInstruction(); - const generalGuidelines = `Use the present tense. Lines must not be longer than 74 characters. Use ${language} for the commit message.`; - const userInputContext = userInputCodeContext(context); - return `${missionStatement} +var INIT_MAIN_PROMPT2 = (language, fullGitMojiSpec, context) => { + const commitConvention = fullGitMojiSpec ? "GitMoji specification" : "Conventional Commit Convention"; + const missionStatement = `${IDENTITY} Your mission is to create clean and comprehensive commit messages as per the ${commitConvention} and explain WHAT were the changes and mainly WHY the changes were done.`; + const diffInstruction = "I'll send you an output of 'git diff --staged' command, and you are to convert it into a commit message."; + const conventionGuidelines = getCommitConvention(fullGitMojiSpec); + const descriptionGuideline = getDescriptionInstruction(); + const oneLineCommitGuideline = getOneLineCommitInstruction(); + const scopeInstruction = getScopeInstruction(); + const generalGuidelines = `Use the present tense. Lines must not be longer than 74 characters. Use ${language} for the commit message.`; + const userInputContext = userInputCodeContext(context); + const content = `${missionStatement} ${diffInstruction} ${conventionGuidelines} ${descriptionGuideline} @@ -84630,8 +85148,8 @@ ${oneLineCommitGuideline} ${scopeInstruction} ${generalGuidelines} ${userInputContext}`; - })() -}); + return { role: "system", content }; +}; var INIT_DIFF_PROMPT = { role: "user", content: `diff --git a/src/server.ts b/src/server.ts @@ -84749,7 +85267,7 @@ var GenerateCommitMessageErrorEnum = ((GenerateCommitMessageErrorEnum2) => { })(GenerateCommitMessageErrorEnum || {}); async function handleModelNotFoundError(error, provider, currentModel) { console.log(source_default.red(` -\u2716 Model '${currentModel}' not found +\xD7 Model '${currentModel}' not found `)); const suggestedModels = getSuggestedModels(provider, currentModel); const recommended = RECOMMENDED_MODELS[provider]; @@ -84807,7 +85325,7 @@ async function handleModelNotFoundError(error, provider, currentModel) { ...existingConfig, OCO_MODEL: newModel }); - console.log(source_default.green("\u2714") + " Model saved as default\n"); + console.log(source_default.green("\u221A") + " Model saved as default\n"); } return newModel; } @@ -84829,7 +85347,8 @@ var generateCommitMessageByDiff = async (diff, fullGitMojiSpec = false, context const commitMessagePromises = await getCommitMsgsPromisesFromFileDiffs( diff, MAX_REQUEST_TOKENS, - fullGitMojiSpec + fullGitMojiSpec, + context ); const commitMessages = []; for (const promise of commitMessagePromises) { @@ -84874,7 +85393,7 @@ var generateCommitMessageByDiff = async (diff, fullGitMojiSpec = false, context throw error; } }; -function getMessagesPromisesByChangesInFile(fileDiff, separator, maxChangeLength, fullGitMojiSpec) { +function getMessagesPromisesByChangesInFile(fileDiff, separator, maxChangeLength, fullGitMojiSpec, context) { const hunkHeaderSeparator = "@@ "; const [fileHeader, ...fileDiffByLines] = fileDiff.split(hunkHeaderSeparator); const mergedChanges = mergeDiffs( @@ -84896,7 +85415,8 @@ function getMessagesPromisesByChangesInFile(fileDiff, separator, maxChangeLength async (lineDiff) => { const messages = await generateCommitMessageChatCompletionPrompt( separator + lineDiff, - fullGitMojiSpec + fullGitMojiSpec, + context ); return engine.generateCommitMessage(messages); } @@ -84928,7 +85448,7 @@ function splitDiff(diff, maxChangeLength) { } return splitDiffs; } -var getCommitMsgsPromisesFromFileDiffs = async (diff, maxDiffLength, fullGitMojiSpec) => { +var getCommitMsgsPromisesFromFileDiffs = async (diff, maxDiffLength, fullGitMojiSpec, context) => { const separator = "diff --git "; const diffByFiles = diff.split(separator).slice(1); const mergedFilesDiffs = mergeDiffs(diffByFiles, maxDiffLength); @@ -84939,13 +85459,15 @@ var getCommitMsgsPromisesFromFileDiffs = async (diff, maxDiffLength, fullGitMoji fileDiff, separator, maxDiffLength, - fullGitMojiSpec + fullGitMojiSpec, + context ); commitMessagePromises.push(...messagesPromises); } else { const messages = await generateCommitMessageChatCompletionPrompt( separator + fileDiff, - fullGitMojiSpec + fullGitMojiSpec, + context ); const engine = getEngine(); commitMessagePromises.push(engine.generateCommitMessage(messages)); @@ -85136,7 +85658,7 @@ ${source_default.grey("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2 ...extraArgs2 ]); committingChangesSpinner.stop( - `${source_default.green("\u2714")} Successfully committed` + `${source_default.green("\u221A")} Successfully committed` ); ce(stdout); const remotes = await getGitRemotes(); @@ -85160,7 +85682,7 @@ ${source_default.grey("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2 remotes[0] ]); pushSpinner.stop( - `${source_default.green("\u2714")} Successfully pushed all commits to ${remotes[0]}` + `${source_default.green("\u221A")} Successfully pushed all commits to ${remotes[0]}` ); if (stdout2) ce(stdout2); } else { @@ -85184,7 +85706,7 @@ ${source_default.grey("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2 if (stdout2) ce(stdout2); pushSpinner.stop( `${source_default.green( - "\u2714" + "\u221A" )} successfully pushed all commits to ${selectedRemote}` ); } @@ -85198,13 +85720,15 @@ ${source_default.grey("\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2 await generateCommitMessageFromGitDiff({ diff, extraArgs: extraArgs2, - fullGitMojiSpec + context, + fullGitMojiSpec, + skipCommitConfirmation }); } } } catch (error) { commitGenerationSpinner.stop( - `${source_default.red("\u2716")} Failed to generate the commit message` + `${source_default.red("\xD7")} Failed to generate the commit message` ); const errorConfig = getConfig(); const provider = errorConfig.OCO_AI_PROVIDER || "openai"; @@ -85230,7 +85754,7 @@ async function commit(extraArgs2 = [], context = "", isStageAllFlag = false, ful } ae("open-commit"); if (errorChangedFiles ?? errorStagedFiles) { - ce(`${source_default.red("\u2716")} ${errorChangedFiles ?? errorStagedFiles}`); + ce(`${source_default.red("\xD7")} ${errorChangedFiles ?? errorStagedFiles}`); process.exit(1); } const stagedFilesSpinner = le(); @@ -85273,7 +85797,7 @@ ${stagedFiles.map((file) => ` ${file}`).join("\n")}` }) ); if (generateCommitError) { - ce(`${source_default.red("\u2716")} ${generateCommitError}`); + ce(`${source_default.red("\xD7")} ${generateCommitError}`); process.exit(1); } process.exit(0); @@ -85449,14 +85973,13 @@ ${fileContent.toString()}`; // src/utils/proxy.ts var import_undici = __toESM(require_undici(), 1); -var import_https_proxy_agent4 = __toESM(require_dist2(), 1); function setupProxy(proxyUrl) { const proxy = proxyUrl || process.env.HTTPS_PROXY || process.env.HTTP_PROXY; if (proxy) { try { const dispatcher = new import_undici.ProxyAgent(proxy); (0, import_undici.setGlobalDispatcher)(dispatcher); - const agent = new import_https_proxy_agent4.HttpsProxyAgent(proxy); + const agent = new HttpsProxyAgent(proxy); axios_default.defaults.httpsAgent = agent; axios_default.defaults.proxy = false; } catch (error) { @@ -86389,9 +86912,38 @@ var runMigrations = async () => { }; // src/cli.ts +var __origEmit = process.emit.bind(process); +process.emit = function(name, ...args) { + if (name === "warning" && args[0]?.code === "DEP0169") { + return false; + } + return __origEmit(name, ...args); +}; var config7 = getConfig(); setupProxy(config7.OCO_PROXY); -var extraArgs = process.argv.slice(2); +var OCO_FLAGS_WITH_VALUE = /* @__PURE__ */ new Set(["-c", "--context"]); +var OCO_BOOLEAN_FLAGS = /* @__PURE__ */ new Set(["-y", "--yes", "--fgm"]); +var OCO_EQUALS_PREFIXES = ["-c=", "--context=", "-y=", "--yes=", "--fgm="]; +var stripOcoFlags = (argv) => { + const out = []; + for (let i3 = 0; i3 < argv.length; i3++) { + const a4 = argv[i3]; + if (OCO_FLAGS_WITH_VALUE.has(a4)) { + i3++; + continue; + } + if (OCO_BOOLEAN_FLAGS.has(a4)) { + continue; + } + if (OCO_EQUALS_PREFIXES.some((prefix) => a4.startsWith(prefix))) { + continue; + } + out.push(a4); + } + return out; +}; +var rawArgv = process.argv.slice(2); +var extraArgs = stripOcoFlags(rawArgv); Z2( { version: package_default.version, @@ -86444,7 +86996,7 @@ Z2( } commit(extraArgs, flags.context, false, flags.fgm, flags.yes); }, - extraArgs + rawArgv ); /*! Bundled license information: diff --git a/src/cli.ts b/src/cli.ts index f83f3ad5..80b1e227 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -22,7 +22,34 @@ import { runMigrations } from './migrations/_run.js'; const config = getConfig(); setupProxy(config.OCO_PROXY); -const extraArgs = process.argv.slice(2); +const OCO_FLAGS_WITH_VALUE = new Set(['-c', '--context']); +const OCO_BOOLEAN_FLAGS = new Set(['-y', '--yes', '--fgm']); +const OCO_EQUALS_PREFIXES = ['-c=', '--context=', '-y=', '--yes=', '--fgm=']; + +const stripOcoFlags = (argv: string[]): string[] => { + const out: string[] = []; + for (let i = 0; i < argv.length; i++) { + const a = argv[i]; + // String flags with a separate value token: -c , --context + if (OCO_FLAGS_WITH_VALUE.has(a)) { + i++; // skip the value token too + continue; + } + // Boolean flags: -y, --yes, --fgm + if (OCO_BOOLEAN_FLAGS.has(a)) { + continue; + } + // Equals form: -c=…, --context=…, -y=…, --yes=…, --fgm=… + if (OCO_EQUALS_PREFIXES.some((prefix) => a.startsWith(prefix))) { + continue; + } + out.push(a); + } + return out; +}; + +const rawArgv = process.argv.slice(2); +const extraArgs = stripOcoFlags(rawArgv); cli( { @@ -82,5 +109,5 @@ cli( commit(extraArgs, flags.context, false, flags.fgm, flags.yes); }, - extraArgs + rawArgv ); diff --git a/src/commands/commit.ts b/src/commands/commit.ts index 6cd70485..08c47604 100644 --- a/src/commands/commit.ts +++ b/src/commands/commit.ts @@ -203,7 +203,9 @@ ${chalk.grey('——————————————————')}` await generateCommitMessageFromGitDiff({ diff, extraArgs, - fullGitMojiSpec + context, + fullGitMojiSpec, + skipCommitConfirmation }); } } diff --git a/src/generateCommitMessageFromGitDiff.ts b/src/generateCommitMessageFromGitDiff.ts index fa2c403c..9e5f071c 100644 --- a/src/generateCommitMessageFromGitDiff.ts +++ b/src/generateCommitMessageFromGitDiff.ts @@ -130,7 +130,7 @@ async function handleModelNotFoundError( ...existingConfig, OCO_MODEL: newModel } as any); - console.log(chalk.green('✔') + ' Model saved as default\n'); + console.log(chalk.green('√') + ' Model saved as default\n'); } return newModel; @@ -168,7 +168,8 @@ export const generateCommitMessageByDiff = async ( const commitMessagePromises = await getCommitMsgsPromisesFromFileDiffs( diff, MAX_REQUEST_TOKENS, - fullGitMojiSpec + fullGitMojiSpec, + context ); const commitMessages = [] as string[]; @@ -228,7 +229,8 @@ function getMessagesPromisesByChangesInFile( fileDiff: string, separator: string, maxChangeLength: number, - fullGitMojiSpec: boolean + fullGitMojiSpec: boolean, + context: string ) { const hunkHeaderSeparator = '@@ '; const [fileHeader, ...fileDiffByLines] = fileDiff.split(hunkHeaderSeparator); @@ -256,7 +258,8 @@ function getMessagesPromisesByChangesInFile( async (lineDiff) => { const messages = await generateCommitMessageChatCompletionPrompt( separator + lineDiff, - fullGitMojiSpec + fullGitMojiSpec, + context ); return engine.generateCommitMessage(messages); @@ -305,7 +308,8 @@ function splitDiff(diff: string, maxChangeLength: number) { export const getCommitMsgsPromisesFromFileDiffs = async ( diff: string, maxDiffLength: number, - fullGitMojiSpec: boolean + fullGitMojiSpec: boolean, + context: string ) => { const separator = 'diff --git '; @@ -323,14 +327,16 @@ export const getCommitMsgsPromisesFromFileDiffs = async ( fileDiff, separator, maxDiffLength, - fullGitMojiSpec + fullGitMojiSpec, + context ); commitMessagePromises.push(...messagesPromises); } else { const messages = await generateCommitMessageChatCompletionPrompt( separator + fileDiff, - fullGitMojiSpec + fullGitMojiSpec, + context ); const engine = getEngine(); diff --git a/src/prompts.ts b/src/prompts.ts index 7967a58f..8d831ad3 100644 --- a/src/prompts.ts +++ b/src/prompts.ts @@ -95,11 +95,11 @@ const CONVENTIONAL_COMMIT_KEYWORDS = 'Do not preface the commit with anything, except for the conventional commit keywords: fix, feat, build, chore, ci, docs, style, refactor, perf, test.'; const getCommitConvention = (fullGitMojiSpec: boolean) => - config.OCO_EMOJI - ? fullGitMojiSpec - ? FULL_GITMOJI_SPEC - : GITMOJI_HELP - : CONVENTIONAL_COMMIT_KEYWORDS; + fullGitMojiSpec + ? FULL_GITMOJI_SPEC + : config.OCO_EMOJI + ? GITMOJI_HELP + : CONVENTIONAL_COMMIT_KEYWORDS; const getDescriptionInstruction = () => config.OCO_DESCRIPTION @@ -123,36 +123,36 @@ const getScopeInstruction = () => * $ oco -- This is a context used to generate the commit message * @returns - The context of the user input */ -const userInputCodeContext = (context: string) => { - if (context !== '' && context !== ' ') { - return `Additional context provided by the user: ${context}\nConsider this context when generating the commit message, incorporating relevant information when appropriate.`; +const userInputCodeContext = (context: string | undefined | null) => { + const trimmed = (context ?? '').trim(); + if (trimmed === '') { + return ''; } - return ''; + return `Additional context provided by the user: ${trimmed}\nConsider this context when generating the commit message, incorporating relevant information when appropriate.`; }; const INIT_MAIN_PROMPT = ( language: string, fullGitMojiSpec: boolean, context: string -): OpenAI.Chat.Completions.ChatCompletionMessageParam => ({ - role: 'system', - content: (() => { - const commitConvention = fullGitMojiSpec - ? 'GitMoji specification' - : 'Conventional Commit Convention'; - const missionStatement = `${IDENTITY} Your mission is to create clean and comprehensive commit messages as per the ${commitConvention} and explain WHAT were the changes and mainly WHY the changes were done.`; - const diffInstruction = - "I'll send you an output of 'git diff --staged' command, and you are to convert it into a commit message."; - const conventionGuidelines = getCommitConvention(fullGitMojiSpec); - const descriptionGuideline = getDescriptionInstruction(); - const oneLineCommitGuideline = getOneLineCommitInstruction(); - const scopeInstruction = getScopeInstruction(); - const generalGuidelines = `Use the present tense. Lines must not be longer than 74 characters. Use ${language} for the commit message.`; - const userInputContext = userInputCodeContext(context); +): OpenAI.Chat.Completions.ChatCompletionMessageParam => { + const commitConvention = fullGitMojiSpec + ? 'GitMoji specification' + : 'Conventional Commit Convention'; + const missionStatement = `${IDENTITY} Your mission is to create clean and comprehensive commit messages as per the ${commitConvention} and explain WHAT were the changes and mainly WHY the changes were done.`; + const diffInstruction = + "I'll send you an output of 'git diff --staged' command, and you are to convert it into a commit message."; + const conventionGuidelines = getCommitConvention(fullGitMojiSpec); + const descriptionGuideline = getDescriptionInstruction(); + const oneLineCommitGuideline = getOneLineCommitInstruction(); + const scopeInstruction = getScopeInstruction(); + const generalGuidelines = `Use the present tense. Lines must not be longer than 74 characters. Use ${language} for the commit message.`; + const userInputContext = userInputCodeContext(context); - return `${missionStatement}\n${diffInstruction}\n${conventionGuidelines}\n${descriptionGuideline}\n${oneLineCommitGuideline}\n${scopeInstruction}\n${generalGuidelines}\n${userInputContext}`; - })() -}); + const content = `${missionStatement}\n${diffInstruction}\n${conventionGuidelines}\n${descriptionGuideline}\n${oneLineCommitGuideline}\n${scopeInstruction}\n${generalGuidelines}\n${userInputContext}`; + + return { role: 'system', content }; +}; export const INIT_DIFF_PROMPT: OpenAI.Chat.Completions.ChatCompletionMessageParam = {