diff --git a/dist/index.js b/dist/index.js index d38f0c3..5146e92 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,22781 +1,3400 @@ import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, { - get: (a, b) => (typeof require !== "undefined" ? require : a)[b] -}) : x)(function(x) { - if (typeof require !== "undefined") return require.apply(this, arguments); - throw Error('Dynamic require of "' + x + '" is not supported'); -}); -var __commonJS = (cb, mod) => function __require2() { - try { - return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; - } catch (e) { - throw mod = 0, e; - } -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); - -// node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js -var require_tunnel = __commonJS({ - "node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js"(exports) { - "use strict"; - var net = __require("net"); - var tls = __require("tls"); - var http = __require("http"); - var https = __require("https"); - var events = __require("events"); - var assert = __require("assert"); - var util = __require("util"); - exports.httpOverHttp = httpOverHttp2; - exports.httpsOverHttp = httpsOverHttp2; - exports.httpOverHttps = httpOverHttps2; - exports.httpsOverHttps = httpsOverHttps2; - function httpOverHttp2(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - return agent; - } - function httpsOverHttp2(options) { - var agent = new TunnelingAgent(options); - agent.request = http.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; - } - function httpOverHttps2(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - return agent; - } - function httpsOverHttps2(options) { - var agent = new TunnelingAgent(options); - agent.request = https.request; - agent.createSocket = createSecureSocket; - agent.defaultPort = 443; - return agent; - } - function TunnelingAgent(options) { - var self = this; - self.options = options || {}; - self.proxyOptions = self.options.proxy || {}; - self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; - self.requests = []; - self.sockets = []; - self.on("free", function onFree(socket, host, port, localAddress) { - var options2 = toOptions(host, port, localAddress); - for (var i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; - if (pending.host === options2.host && pending.port === options2.port) { - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; - } - } - socket.destroy(); - self.removeSocket(socket); - }); - } - util.inherits(TunnelingAgent, events.EventEmitter); - TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { - var self = this; - var options = mergeOptions({ request: req }, self.options, toOptions(host, port, localAddress)); - if (self.sockets.length >= this.maxSockets) { - self.requests.push(options); - return; - } - self.createSocket(options, function(socket) { - socket.on("free", onFree); - socket.on("close", onCloseOrRemove); - socket.on("agentRemove", onCloseOrRemove); - req.onSocket(socket); - function onFree() { - self.emit("free", socket, options); - } - function onCloseOrRemove(err) { - self.removeSocket(socket); - socket.removeListener("free", onFree); - socket.removeListener("close", onCloseOrRemove); - socket.removeListener("agentRemove", onCloseOrRemove); - } - }); - }; - TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { - var self = this; - var placeholder = {}; - self.sockets.push(placeholder); - var connectOptions = mergeOptions({}, self.proxyOptions, { - method: "CONNECT", - path: options.host + ":" + options.port, - agent: false, - headers: { - host: options.host + ":" + options.port - } - }); - if (options.localAddress) { - connectOptions.localAddress = options.localAddress; - } - if (connectOptions.proxyAuth) { - connectOptions.headers = connectOptions.headers || {}; - connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64"); - } - debug2("making CONNECT request"); - var connectReq = self.request(connectOptions); - connectReq.useChunkedEncodingByDefault = false; - connectReq.once("response", onResponse); - connectReq.once("upgrade", onUpgrade); - connectReq.once("connect", onConnect); - connectReq.once("error", onError); - connectReq.end(); - function onResponse(res) { - res.upgrade = true; - } - function onUpgrade(res, socket, head) { - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - if (res.statusCode !== 200) { - debug2( - "tunneling socket could not be established, statusCode=%d", - res.statusCode - ); - socket.destroy(); - var error2 = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); - error2.code = "ECONNRESET"; - options.request.emit("error", error2); - self.removeSocket(placeholder); - return; - } - if (head.length > 0) { - debug2("got illegal response body from proxy"); - socket.destroy(); - var error2 = new Error("got illegal response body from proxy"); - error2.code = "ECONNRESET"; - options.request.emit("error", error2); - self.removeSocket(placeholder); - return; - } - debug2("tunneling connection has established"); - self.sockets[self.sockets.indexOf(placeholder)] = socket; - return cb(socket); - } - function onError(cause) { - connectReq.removeAllListeners(); - debug2( - "tunneling socket could not be established, cause=%s\n", - cause.message, - cause.stack - ); - var error2 = new Error("tunneling socket could not be established, cause=" + cause.message); - error2.code = "ECONNRESET"; - options.request.emit("error", error2); - self.removeSocket(placeholder); - } - }; - TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { - var pos = this.sockets.indexOf(socket); - if (pos === -1) { - return; - } - this.sockets.splice(pos, 1); - var pending = this.requests.shift(); - if (pending) { - this.createSocket(pending, function(socket2) { - pending.request.onSocket(socket2); - }); - } - }; - function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader("host"); - var tlsOptions = mergeOptions({}, self.options, { - socket, - servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host - }); - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); - } - function toOptions(host, port, localAddress) { - if (typeof host === "string") { - return { - host, - port, - localAddress - }; - } - return host; - } - function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i]; - if (typeof overrides === "object") { - var keys = Object.keys(overrides); - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j]; - if (overrides[k] !== void 0) { - target[k] = overrides[k]; - } - } - } - } - return target; - } - var debug2; - if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug2 = function() { - var args = Array.prototype.slice.call(arguments); - if (typeof args[0] === "string") { - args[0] = "TUNNEL: " + args[0]; - } else { - args.unshift("TUNNEL:"); - } - console.error.apply(console, args); - }; - } else { - debug2 = function() { - }; - } - exports.debug = debug2; - } -}); - -// node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js -var require_tunnel2 = __commonJS({ - "node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/index.js"(exports, module) { - module.exports = require_tunnel(); - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/symbols.js -var require_symbols = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/symbols.js"(exports, module) { - module.exports = { - kClose: /* @__PURE__ */ Symbol("close"), - kDestroy: /* @__PURE__ */ Symbol("destroy"), - kDispatch: /* @__PURE__ */ Symbol("dispatch"), - kUrl: /* @__PURE__ */ Symbol("url"), - kWriting: /* @__PURE__ */ Symbol("writing"), - kResuming: /* @__PURE__ */ Symbol("resuming"), - kQueue: /* @__PURE__ */ Symbol("queue"), - kConnect: /* @__PURE__ */ Symbol("connect"), - kConnecting: /* @__PURE__ */ Symbol("connecting"), - kKeepAliveDefaultTimeout: /* @__PURE__ */ Symbol("default keep alive timeout"), - kKeepAliveMaxTimeout: /* @__PURE__ */ Symbol("max keep alive timeout"), - kKeepAliveTimeoutThreshold: /* @__PURE__ */ Symbol("keep alive timeout threshold"), - kKeepAliveTimeoutValue: /* @__PURE__ */ Symbol("keep alive timeout"), - kKeepAlive: /* @__PURE__ */ Symbol("keep alive"), - kHeadersTimeout: /* @__PURE__ */ Symbol("headers timeout"), - kBodyTimeout: /* @__PURE__ */ Symbol("body timeout"), - kServerName: /* @__PURE__ */ Symbol("server name"), - kLocalAddress: /* @__PURE__ */ Symbol("local address"), - kHost: /* @__PURE__ */ Symbol("host"), - kNoRef: /* @__PURE__ */ Symbol("no ref"), - kBodyUsed: /* @__PURE__ */ Symbol("used"), - kBody: /* @__PURE__ */ Symbol("abstracted request body"), - kRunning: /* @__PURE__ */ Symbol("running"), - kBlocking: /* @__PURE__ */ Symbol("blocking"), - kPending: /* @__PURE__ */ Symbol("pending"), - kSize: /* @__PURE__ */ Symbol("size"), - kBusy: /* @__PURE__ */ Symbol("busy"), - kQueued: /* @__PURE__ */ Symbol("queued"), - kFree: /* @__PURE__ */ Symbol("free"), - kConnected: /* @__PURE__ */ Symbol("connected"), - kClosed: /* @__PURE__ */ Symbol("closed"), - kNeedDrain: /* @__PURE__ */ Symbol("need drain"), - kReset: /* @__PURE__ */ Symbol("reset"), - kDestroyed: /* @__PURE__ */ Symbol.for("nodejs.stream.destroyed"), - kResume: /* @__PURE__ */ Symbol("resume"), - kOnError: /* @__PURE__ */ Symbol("on error"), - kMaxHeadersSize: /* @__PURE__ */ Symbol("max headers size"), - kRunningIdx: /* @__PURE__ */ Symbol("running index"), - kPendingIdx: /* @__PURE__ */ Symbol("pending index"), - kError: /* @__PURE__ */ Symbol("error"), - kClients: /* @__PURE__ */ Symbol("clients"), - kClient: /* @__PURE__ */ Symbol("client"), - kParser: /* @__PURE__ */ Symbol("parser"), - kOnDestroyed: /* @__PURE__ */ Symbol("destroy callbacks"), - kPipelining: /* @__PURE__ */ Symbol("pipelining"), - kSocket: /* @__PURE__ */ Symbol("socket"), - kHostHeader: /* @__PURE__ */ Symbol("host header"), - kConnector: /* @__PURE__ */ Symbol("connector"), - kStrictContentLength: /* @__PURE__ */ Symbol("strict content length"), - kMaxRedirections: /* @__PURE__ */ Symbol("maxRedirections"), - kMaxRequests: /* @__PURE__ */ Symbol("maxRequestsPerClient"), - kProxy: /* @__PURE__ */ Symbol("proxy agent options"), - kCounter: /* @__PURE__ */ Symbol("socket request counter"), - kInterceptors: /* @__PURE__ */ Symbol("dispatch interceptors"), - kMaxResponseSize: /* @__PURE__ */ Symbol("max response size"), - kHTTP2Session: /* @__PURE__ */ Symbol("http2Session"), - kHTTP2SessionState: /* @__PURE__ */ Symbol("http2Session state"), - kRetryHandlerDefaultRetry: /* @__PURE__ */ Symbol("retry agent default retry"), - kConstruct: /* @__PURE__ */ Symbol("constructable"), - kListeners: /* @__PURE__ */ Symbol("listeners"), - kHTTPContext: /* @__PURE__ */ Symbol("http context"), - kMaxConcurrentStreams: /* @__PURE__ */ Symbol("max concurrent streams"), - kNoProxyAgent: /* @__PURE__ */ Symbol("no proxy agent"), - kHttpProxyAgent: /* @__PURE__ */ Symbol("http proxy agent"), - kHttpsProxyAgent: /* @__PURE__ */ Symbol("https proxy agent") - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/errors.js -var require_errors = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/errors.js"(exports, module) { - "use strict"; - var kUndiciError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR"); - var UndiciError = class extends Error { - constructor(message) { - super(message); - this.name = "UndiciError"; - this.code = "UND_ERR"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kUndiciError] === true; - } - [kUndiciError] = true; - }; - var kConnectTimeoutError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"); - var ConnectTimeoutError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "ConnectTimeoutError"; - this.message = message || "Connect Timeout Error"; - this.code = "UND_ERR_CONNECT_TIMEOUT"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kConnectTimeoutError] === true; - } - [kConnectTimeoutError] = true; - }; - var kHeadersTimeoutError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"); - var HeadersTimeoutError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "HeadersTimeoutError"; - this.message = message || "Headers Timeout Error"; - this.code = "UND_ERR_HEADERS_TIMEOUT"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kHeadersTimeoutError] === true; - } - [kHeadersTimeoutError] = true; - }; - var kHeadersOverflowError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"); - var HeadersOverflowError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "HeadersOverflowError"; - this.message = message || "Headers Overflow Error"; - this.code = "UND_ERR_HEADERS_OVERFLOW"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kHeadersOverflowError] === true; - } - [kHeadersOverflowError] = true; - }; - var kBodyTimeoutError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"); - var BodyTimeoutError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "BodyTimeoutError"; - this.message = message || "Body Timeout Error"; - this.code = "UND_ERR_BODY_TIMEOUT"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kBodyTimeoutError] === true; - } - [kBodyTimeoutError] = true; - }; - var kResponseStatusCodeError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"); - var ResponseStatusCodeError = class extends UndiciError { - constructor(message, statusCode, headers, body) { - super(message); - this.name = "ResponseStatusCodeError"; - this.message = message || "Response Status Code Error"; - this.code = "UND_ERR_RESPONSE_STATUS_CODE"; - this.body = body; - this.status = statusCode; - this.statusCode = statusCode; - this.headers = headers; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kResponseStatusCodeError] === true; - } - [kResponseStatusCodeError] = true; - }; - var kInvalidArgumentError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_INVALID_ARG"); - var InvalidArgumentError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "InvalidArgumentError"; - this.message = message || "Invalid Argument Error"; - this.code = "UND_ERR_INVALID_ARG"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kInvalidArgumentError] === true; - } - [kInvalidArgumentError] = true; - }; - var kInvalidReturnValueError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"); - var InvalidReturnValueError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "InvalidReturnValueError"; - this.message = message || "Invalid Return Value Error"; - this.code = "UND_ERR_INVALID_RETURN_VALUE"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kInvalidReturnValueError] === true; - } - [kInvalidReturnValueError] = true; - }; - var kAbortError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORT"); - var AbortError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "AbortError"; - this.message = message || "The operation was aborted"; - this.code = "UND_ERR_ABORT"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kAbortError] === true; - } - [kAbortError] = true; - }; - var kRequestAbortedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORTED"); - var RequestAbortedError = class extends AbortError { - constructor(message) { - super(message); - this.name = "AbortError"; - this.message = message || "Request aborted"; - this.code = "UND_ERR_ABORTED"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kRequestAbortedError] === true; - } - [kRequestAbortedError] = true; - }; - var kInformationalError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_INFO"); - var InformationalError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "InformationalError"; - this.message = message || "Request information"; - this.code = "UND_ERR_INFO"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kInformationalError] === true; - } - [kInformationalError] = true; - }; - var kRequestContentLengthMismatchError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"); - var RequestContentLengthMismatchError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "RequestContentLengthMismatchError"; - this.message = message || "Request body length does not match content-length header"; - this.code = "UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kRequestContentLengthMismatchError] === true; - } - [kRequestContentLengthMismatchError] = true; - }; - var kResponseContentLengthMismatchError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"); - var ResponseContentLengthMismatchError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "ResponseContentLengthMismatchError"; - this.message = message || "Response body length does not match content-length header"; - this.code = "UND_ERR_RES_CONTENT_LENGTH_MISMATCH"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kResponseContentLengthMismatchError] === true; - } - [kResponseContentLengthMismatchError] = true; - }; - var kClientDestroyedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_DESTROYED"); - var ClientDestroyedError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "ClientDestroyedError"; - this.message = message || "The client is destroyed"; - this.code = "UND_ERR_DESTROYED"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kClientDestroyedError] === true; - } - [kClientDestroyedError] = true; - }; - var kClientClosedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_CLOSED"); - var ClientClosedError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "ClientClosedError"; - this.message = message || "The client is closed"; - this.code = "UND_ERR_CLOSED"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kClientClosedError] === true; - } - [kClientClosedError] = true; - }; - var kSocketError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_SOCKET"); - var SocketError = class extends UndiciError { - constructor(message, socket) { - super(message); - this.name = "SocketError"; - this.message = message || "Socket error"; - this.code = "UND_ERR_SOCKET"; - this.socket = socket; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kSocketError] === true; - } - [kSocketError] = true; - }; - var kNotSupportedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"); - var NotSupportedError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "NotSupportedError"; - this.message = message || "Not supported error"; - this.code = "UND_ERR_NOT_SUPPORTED"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kNotSupportedError] === true; - } - [kNotSupportedError] = true; - }; - var kBalancedPoolMissingUpstreamError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"); - var BalancedPoolMissingUpstreamError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "MissingUpstreamError"; - this.message = message || "No upstream has been added to the BalancedPool"; - this.code = "UND_ERR_BPL_MISSING_UPSTREAM"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kBalancedPoolMissingUpstreamError] === true; - } - [kBalancedPoolMissingUpstreamError] = true; - }; - var kHTTPParserError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_HTTP_PARSER"); - var HTTPParserError = class extends Error { - constructor(message, code, data) { - super(message); - this.name = "HTTPParserError"; - this.code = code ? `HPE_${code}` : void 0; - this.data = data ? data.toString() : void 0; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kHTTPParserError] === true; - } - [kHTTPParserError] = true; - }; - var kResponseExceededMaxSizeError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"); - var ResponseExceededMaxSizeError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "ResponseExceededMaxSizeError"; - this.message = message || "Response content exceeded max size"; - this.code = "UND_ERR_RES_EXCEEDED_MAX_SIZE"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kResponseExceededMaxSizeError] === true; - } - [kResponseExceededMaxSizeError] = true; - }; - var kRequestRetryError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_REQ_RETRY"); - var RequestRetryError = class extends UndiciError { - constructor(message, code, { headers, data }) { - super(message); - this.name = "RequestRetryError"; - this.message = message || "Request retry error"; - this.code = "UND_ERR_REQ_RETRY"; - this.statusCode = code; - this.data = data; - this.headers = headers; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kRequestRetryError] === true; - } - [kRequestRetryError] = true; - }; - var kResponseError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RESPONSE"); - var ResponseError = class extends UndiciError { - constructor(message, code, { headers, data }) { - super(message); - this.name = "ResponseError"; - this.message = message || "Response error"; - this.code = "UND_ERR_RESPONSE"; - this.statusCode = code; - this.data = data; - this.headers = headers; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kResponseError] === true; - } - [kResponseError] = true; - }; - var kSecureProxyConnectionError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_PRX_TLS"); - var SecureProxyConnectionError = class extends UndiciError { - constructor(cause, message, options) { - super(message, { cause, ...options ?? {} }); - this.name = "SecureProxyConnectionError"; - this.message = message || "Secure Proxy Connection failed"; - this.code = "UND_ERR_PRX_TLS"; - this.cause = cause; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kSecureProxyConnectionError] === true; - } - [kSecureProxyConnectionError] = true; - }; - var kMessageSizeExceededError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"); - var MessageSizeExceededError = class extends UndiciError { - constructor(message) { - super(message); - this.name = "MessageSizeExceededError"; - this.message = message || "Max decompressed message size exceeded"; - this.code = "UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kMessageSizeExceededError] === true; - } - get [kMessageSizeExceededError]() { - return true; - } - }; - module.exports = { - AbortError, - HTTPParserError, - UndiciError, - HeadersTimeoutError, - HeadersOverflowError, - BodyTimeoutError, - RequestContentLengthMismatchError, - ConnectTimeoutError, - ResponseStatusCodeError, - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError, - ClientDestroyedError, - ClientClosedError, - InformationalError, - SocketError, - NotSupportedError, - ResponseContentLengthMismatchError, - BalancedPoolMissingUpstreamError, - ResponseExceededMaxSizeError, - RequestRetryError, - ResponseError, - SecureProxyConnectionError, - MessageSizeExceededError - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/constants.js -var require_constants = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/constants.js"(exports, module) { - "use strict"; - var headerNameLowerCasedRecord = {}; - var wellknownHeaderNames = [ - "Accept", - "Accept-Encoding", - "Accept-Language", - "Accept-Ranges", - "Access-Control-Allow-Credentials", - "Access-Control-Allow-Headers", - "Access-Control-Allow-Methods", - "Access-Control-Allow-Origin", - "Access-Control-Expose-Headers", - "Access-Control-Max-Age", - "Access-Control-Request-Headers", - "Access-Control-Request-Method", - "Age", - "Allow", - "Alt-Svc", - "Alt-Used", - "Authorization", - "Cache-Control", - "Clear-Site-Data", - "Connection", - "Content-Disposition", - "Content-Encoding", - "Content-Language", - "Content-Length", - "Content-Location", - "Content-Range", - "Content-Security-Policy", - "Content-Security-Policy-Report-Only", - "Content-Type", - "Cookie", - "Cross-Origin-Embedder-Policy", - "Cross-Origin-Opener-Policy", - "Cross-Origin-Resource-Policy", - "Date", - "Device-Memory", - "Downlink", - "ECT", - "ETag", - "Expect", - "Expect-CT", - "Expires", - "Forwarded", - "From", - "Host", - "If-Match", - "If-Modified-Since", - "If-None-Match", - "If-Range", - "If-Unmodified-Since", - "Keep-Alive", - "Last-Modified", - "Link", - "Location", - "Max-Forwards", - "Origin", - "Permissions-Policy", - "Pragma", - "Proxy-Authenticate", - "Proxy-Authorization", - "RTT", - "Range", - "Referer", - "Referrer-Policy", - "Refresh", - "Retry-After", - "Sec-WebSocket-Accept", - "Sec-WebSocket-Extensions", - "Sec-WebSocket-Key", - "Sec-WebSocket-Protocol", - "Sec-WebSocket-Version", - "Server", - "Server-Timing", - "Service-Worker-Allowed", - "Service-Worker-Navigation-Preload", - "Set-Cookie", - "SourceMap", - "Strict-Transport-Security", - "Supports-Loading-Mode", - "TE", - "Timing-Allow-Origin", - "Trailer", - "Transfer-Encoding", - "Upgrade", - "Upgrade-Insecure-Requests", - "User-Agent", - "Vary", - "Via", - "WWW-Authenticate", - "X-Content-Type-Options", - "X-DNS-Prefetch-Control", - "X-Frame-Options", - "X-Permitted-Cross-Domain-Policies", - "X-Powered-By", - "X-Requested-With", - "X-XSS-Protection" - ]; - for (let i = 0; i < wellknownHeaderNames.length; ++i) { - const key = wellknownHeaderNames[i]; - const lowerCasedKey = key.toLowerCase(); - headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; - } - Object.setPrototypeOf(headerNameLowerCasedRecord, null); - module.exports = { - wellknownHeaderNames, - headerNameLowerCasedRecord - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/tree.js -var require_tree = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/tree.js"(exports, module) { - "use strict"; - var { - wellknownHeaderNames, - headerNameLowerCasedRecord - } = require_constants(); - var TstNode = class _TstNode { - /** @type {any} */ - value = null; - /** @type {null | TstNode} */ - left = null; - /** @type {null | TstNode} */ - middle = null; - /** @type {null | TstNode} */ - right = null; - /** @type {number} */ - code; - /** - * @param {string} key - * @param {any} value - * @param {number} index - */ - constructor(key, value, index) { - if (index === void 0 || index >= key.length) { - throw new TypeError("Unreachable"); - } - const code = this.code = key.charCodeAt(index); - if (code > 127) { - throw new TypeError("key must be ascii string"); - } - if (key.length !== ++index) { - this.middle = new _TstNode(key, value, index); - } else { - this.value = value; - } - } - /** - * @param {string} key - * @param {any} value - */ - add(key, value) { - const length = key.length; - if (length === 0) { - throw new TypeError("Unreachable"); - } - let index = 0; - let node = this; - while (true) { - const code = key.charCodeAt(index); - if (code > 127) { - throw new TypeError("key must be ascii string"); - } - if (node.code === code) { - if (length === ++index) { - node.value = value; - break; - } else if (node.middle !== null) { - node = node.middle; - } else { - node.middle = new _TstNode(key, value, index); - break; - } - } else if (node.code < code) { - if (node.left !== null) { - node = node.left; - } else { - node.left = new _TstNode(key, value, index); - break; - } - } else if (node.right !== null) { - node = node.right; - } else { - node.right = new _TstNode(key, value, index); - break; - } - } - } - /** - * @param {Uint8Array} key - * @return {TstNode | null} - */ - search(key) { - const keylength = key.length; - let index = 0; - let node = this; - while (node !== null && index < keylength) { - let code = key[index]; - if (code <= 90 && code >= 65) { - code |= 32; - } - while (node !== null) { - if (code === node.code) { - if (keylength === ++index) { - return node; - } - node = node.middle; - break; - } - node = node.code < code ? node.left : node.right; - } - } - return null; - } - }; - var TernarySearchTree = class { - /** @type {TstNode | null} */ - node = null; - /** - * @param {string} key - * @param {any} value - * */ - insert(key, value) { - if (this.node === null) { - this.node = new TstNode(key, value, 0); - } else { - this.node.add(key, value); - } - } - /** - * @param {Uint8Array} key - * @return {any} - */ - lookup(key) { - return this.node?.search(key)?.value ?? null; - } - }; - var tree = new TernarySearchTree(); - for (let i = 0; i < wellknownHeaderNames.length; ++i) { - const key = headerNameLowerCasedRecord[wellknownHeaderNames[i]]; - tree.insert(key, key); - } - module.exports = { - TernarySearchTree, - tree - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/util.js -var require_util = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/util.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols(); - var { IncomingMessage } = __require("node:http"); - var stream = __require("node:stream"); - var net = __require("node:net"); - var { Blob: Blob2 } = __require("node:buffer"); - var nodeUtil = __require("node:util"); - var { stringify } = __require("node:querystring"); - var { EventEmitter: EE } = __require("node:events"); - var { InvalidArgumentError } = require_errors(); - var { headerNameLowerCasedRecord } = require_constants(); - var { tree } = require_tree(); - var [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)); - var BodyAsyncIterable = class { - constructor(body) { - this[kBody] = body; - this[kBodyUsed] = false; - } - async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], "disturbed"); - this[kBodyUsed] = true; - yield* this[kBody]; - } - }; - function wrapRequestBody(body) { - if (isStream(body)) { - if (bodyLength(body) === 0) { - body.on("data", function() { - assert(false); - }); - } - if (typeof body.readableDidRead !== "boolean") { - body[kBodyUsed] = false; - EE.prototype.on.call(body, "data", function() { - this[kBodyUsed] = true; - }); - } - return body; - } else if (body && typeof body.pipeTo === "function") { - return new BodyAsyncIterable(body); - } else if (body && typeof body !== "string" && !ArrayBuffer.isView(body) && isIterable(body)) { - return new BodyAsyncIterable(body); - } else { - return body; - } - } - function nop() { - } - function isStream(obj) { - return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; - } - function isBlobLike(object2) { - if (object2 === null) { - return false; - } else if (object2 instanceof Blob2) { - return true; - } else if (typeof object2 !== "object") { - return false; - } else { - const sTag = object2[Symbol.toStringTag]; - return (sTag === "Blob" || sTag === "File") && ("stream" in object2 && typeof object2.stream === "function" || "arrayBuffer" in object2 && typeof object2.arrayBuffer === "function"); - } - } - function buildURL(url, queryParams) { - if (url.includes("?") || url.includes("#")) { - throw new Error('Query params cannot be passed when url already contains "?" or "#".'); - } - const stringified = stringify(queryParams); - if (stringified) { - url += "?" + stringified; - } - return url; - } - function isValidPort(port) { - const value = parseInt(port, 10); - return value === Number(port) && value >= 0 && value <= 65535; - } - function isHttpOrHttpsPrefixed(value) { - return value != null && value[0] === "h" && value[1] === "t" && value[2] === "t" && value[3] === "p" && (value[4] === ":" || value[4] === "s" && value[5] === ":"); - } - function parseURL(url) { - if (typeof url === "string") { - url = new URL(url); - if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { - throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); - } - return url; - } - if (!url || typeof url !== "object") { - throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); - } - if (!(url instanceof URL)) { - if (url.port != null && url.port !== "" && isValidPort(url.port) === false) { - throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); - } - if (url.path != null && typeof url.path !== "string") { - throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); - } - if (url.pathname != null && typeof url.pathname !== "string") { - throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); - } - if (url.hostname != null && typeof url.hostname !== "string") { - throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); - } - if (url.origin != null && typeof url.origin !== "string") { - throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); - } - if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { - throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); - } - const port = url.port != null ? url.port : url.protocol === "https:" ? 443 : 80; - let origin = url.origin != null ? url.origin : `${url.protocol || ""}//${url.hostname || ""}:${port}`; - let path2 = url.path != null ? url.path : `${url.pathname || ""}${url.search || ""}`; - if (origin[origin.length - 1] === "/") { - origin = origin.slice(0, origin.length - 1); - } - if (path2 && path2[0] !== "/") { - path2 = `/${path2}`; - } - return new URL(`${origin}${path2}`); - } - if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) { - throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); - } - return url; - } - function parseOrigin(url) { - url = parseURL(url); - if (url.pathname !== "/" || url.search || url.hash) { - throw new InvalidArgumentError("invalid url"); - } - return url; - } - function getHostname(host) { - if (host[0] === "[") { - const idx2 = host.indexOf("]"); - assert(idx2 !== -1); - return host.substring(1, idx2); - } - const idx = host.indexOf(":"); - if (idx === -1) return host; - return host.substring(0, idx); - } - function getServerName(host) { - if (!host) { - return null; - } - assert(typeof host === "string"); - const servername = getHostname(host); - if (net.isIP(servername)) { - return ""; - } - return servername; - } - function deepClone(obj) { - return JSON.parse(JSON.stringify(obj)); - } - function isAsyncIterable(obj) { - return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); - } - function isIterable(obj) { - return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); - } - function bodyLength(body) { - if (body == null) { - return 0; - } else if (isStream(body)) { - const state = body._readableState; - return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) ? state.length : null; - } else if (isBlobLike(body)) { - return body.size != null ? body.size : null; - } else if (isBuffer(body)) { - return body.byteLength; - } - return null; - } - function isDestroyed(body) { - return body && !!(body.destroyed || body[kDestroyed] || stream.isDestroyed?.(body)); - } - function destroy(stream2, err) { - if (stream2 == null || !isStream(stream2) || isDestroyed(stream2)) { - return; - } - if (typeof stream2.destroy === "function") { - if (Object.getPrototypeOf(stream2).constructor === IncomingMessage) { - stream2.socket = null; - } - stream2.destroy(err); - } else if (err) { - queueMicrotask(() => { - stream2.emit("error", err); - }); - } - if (stream2.destroyed !== true) { - stream2[kDestroyed] = true; - } - } - var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; - function parseKeepAliveTimeout(val) { - const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR); - return m ? parseInt(m[1], 10) * 1e3 : null; - } - function headerNameToString(value) { - return typeof value === "string" ? headerNameLowerCasedRecord[value] ?? value.toLowerCase() : tree.lookup(value) ?? value.toString("latin1").toLowerCase(); - } - function bufferToLowerCasedHeaderName(value) { - return tree.lookup(value) ?? value.toString("latin1").toLowerCase(); - } - function parseHeaders(headers, obj) { - if (obj === void 0) obj = {}; - for (let i = 0; i < headers.length; i += 2) { - const key = headerNameToString(headers[i]); - let val = obj[key]; - if (val) { - if (typeof val === "string") { - val = [val]; - obj[key] = val; - } - val.push(headers[i + 1].toString("utf8")); - } else { - const headersValue = headers[i + 1]; - if (typeof headersValue === "string") { - obj[key] = headersValue; - } else { - obj[key] = Array.isArray(headersValue) ? headersValue.map((x) => x.toString("utf8")) : headersValue.toString("utf8"); - } - } - } - if ("content-length" in obj && "content-disposition" in obj) { - obj["content-disposition"] = Buffer.from(obj["content-disposition"]).toString("latin1"); - } - return obj; - } - function parseRawHeaders(headers) { - const len = headers.length; - const ret = new Array(len); - let hasContentLength = false; - let contentDispositionIdx = -1; - let key; - let val; - let kLen = 0; - for (let n = 0; n < headers.length; n += 2) { - key = headers[n]; - val = headers[n + 1]; - typeof key !== "string" && (key = key.toString()); - typeof val !== "string" && (val = val.toString("utf8")); - kLen = key.length; - if (kLen === 14 && key[7] === "-" && (key === "content-length" || key.toLowerCase() === "content-length")) { - hasContentLength = true; - } else if (kLen === 19 && key[7] === "-" && (key === "content-disposition" || key.toLowerCase() === "content-disposition")) { - contentDispositionIdx = n + 1; - } - ret[n] = key; - ret[n + 1] = val; - } - if (hasContentLength && contentDispositionIdx !== -1) { - ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1"); - } - return ret; - } - function isBuffer(buffer) { - return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); - } - function validateHandler(handler, method, upgrade) { - if (!handler || typeof handler !== "object") { - throw new InvalidArgumentError("handler must be an object"); - } - if (typeof handler.onConnect !== "function") { - throw new InvalidArgumentError("invalid onConnect method"); - } - if (typeof handler.onError !== "function") { - throw new InvalidArgumentError("invalid onError method"); - } - if (typeof handler.onBodySent !== "function" && handler.onBodySent !== void 0) { - throw new InvalidArgumentError("invalid onBodySent method"); - } - if (upgrade || method === "CONNECT") { - if (typeof handler.onUpgrade !== "function") { - throw new InvalidArgumentError("invalid onUpgrade method"); - } - } else { - if (typeof handler.onHeaders !== "function") { - throw new InvalidArgumentError("invalid onHeaders method"); - } - if (typeof handler.onData !== "function") { - throw new InvalidArgumentError("invalid onData method"); - } - if (typeof handler.onComplete !== "function") { - throw new InvalidArgumentError("invalid onComplete method"); - } - } - } - function isDisturbed(body) { - return !!(body && (stream.isDisturbed(body) || body[kBodyUsed])); - } - function isErrored(body) { - return !!(body && stream.isErrored(body)); - } - function isReadable(body) { - return !!(body && stream.isReadable(body)); - } - function getSocketInfo(socket) { - return { - localAddress: socket.localAddress, - localPort: socket.localPort, - remoteAddress: socket.remoteAddress, - remotePort: socket.remotePort, - remoteFamily: socket.remoteFamily, - timeout: socket.timeout, - bytesWritten: socket.bytesWritten, - bytesRead: socket.bytesRead - }; - } - function ReadableStreamFrom(iterable) { - let iterator; - return new ReadableStream( - { - async start() { - iterator = iterable[Symbol.asyncIterator](); - }, - async pull(controller) { - const { done, value } = await iterator.next(); - if (done) { - queueMicrotask(() => { - controller.close(); - controller.byobRequest?.respond(0); - }); - } else { - const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); - if (buf.byteLength) { - controller.enqueue(new Uint8Array(buf)); - } - } - return controller.desiredSize > 0; - }, - async cancel(reason) { - await iterator.return(); - }, - type: "bytes" - } - ); - } - function isFormDataLike(object2) { - return object2 && typeof object2 === "object" && typeof object2.append === "function" && typeof object2.delete === "function" && typeof object2.get === "function" && typeof object2.getAll === "function" && typeof object2.has === "function" && typeof object2.set === "function" && object2[Symbol.toStringTag] === "FormData"; - } - function addAbortListener(signal, listener) { - if ("addEventListener" in signal) { - signal.addEventListener("abort", listener, { once: true }); - return () => signal.removeEventListener("abort", listener); - } - signal.addListener("abort", listener); - return () => signal.removeListener("abort", listener); - } - var hasToWellFormed = typeof String.prototype.toWellFormed === "function"; - var hasIsWellFormed = typeof String.prototype.isWellFormed === "function"; - function toUSVString(val) { - return hasToWellFormed ? `${val}`.toWellFormed() : nodeUtil.toUSVString(val); - } - function isUSVString(val) { - return hasIsWellFormed ? `${val}`.isWellFormed() : toUSVString(val) === `${val}`; - } - function isTokenCharCode(c) { - switch (c) { - case 34: - case 40: - case 41: - case 44: - case 47: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 91: - case 92: - case 93: - case 123: - case 125: - return false; - default: - return c >= 33 && c <= 126; - } - } - function isValidHTTPToken(characters) { - if (characters.length === 0) { - return false; - } - for (let i = 0; i < characters.length; ++i) { - if (!isTokenCharCode(characters.charCodeAt(i))) { - return false; - } - } - return true; - } - var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; - function isValidHeaderValue(characters) { - return !headerCharRegex.test(characters); - } - function parseRangeHeader(range) { - if (range == null || range === "") return { start: 0, end: null, size: null }; - const m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; - return m ? { - start: parseInt(m[1]), - end: m[2] ? parseInt(m[2]) : null, - size: m[3] ? parseInt(m[3]) : null - } : null; - } - function addListener(obj, name, listener) { - const listeners = obj[kListeners] ??= []; - listeners.push([name, listener]); - obj.on(name, listener); - return obj; - } - function removeAllListeners(obj) { - for (const [name, listener] of obj[kListeners] ?? []) { - obj.removeListener(name, listener); - } - obj[kListeners] = null; - } - function errorRequest(client, request, err) { - try { - request.onError(err); - assert(request.aborted); - } catch (err2) { - client.emit("error", err2); - } - } - var kEnumerableProperty = /* @__PURE__ */ Object.create(null); - kEnumerableProperty.enumerable = true; - var normalizedMethodRecordsBase = { - delete: "DELETE", - DELETE: "DELETE", - get: "GET", - GET: "GET", - head: "HEAD", - HEAD: "HEAD", - options: "OPTIONS", - OPTIONS: "OPTIONS", - post: "POST", - POST: "POST", - put: "PUT", - PUT: "PUT" - }; - var normalizedMethodRecords = { - ...normalizedMethodRecordsBase, - patch: "patch", - PATCH: "PATCH" - }; - Object.setPrototypeOf(normalizedMethodRecordsBase, null); - Object.setPrototypeOf(normalizedMethodRecords, null); - module.exports = { - kEnumerableProperty, - nop, - isDisturbed, - isErrored, - isReadable, - toUSVString, - isUSVString, - isBlobLike, - parseOrigin, - parseURL, - getServerName, - isStream, - isIterable, - isAsyncIterable, - isDestroyed, - headerNameToString, - bufferToLowerCasedHeaderName, - addListener, - removeAllListeners, - errorRequest, - parseRawHeaders, - parseHeaders, - parseKeepAliveTimeout, - destroy, - bodyLength, - deepClone, - ReadableStreamFrom, - isBuffer, - validateHandler, - getSocketInfo, - isFormDataLike, - buildURL, - addAbortListener, - isValidHTTPToken, - isValidHeaderValue, - isTokenCharCode, - parseRangeHeader, - normalizedMethodRecordsBase, - normalizedMethodRecords, - isValidPort, - isHttpOrHttpsPrefixed, - nodeMajor, - nodeMinor, - safeHTTPMethods: ["GET", "HEAD", "OPTIONS", "TRACE"], - wrapRequestBody - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/diagnostics.js -var require_diagnostics = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/diagnostics.js"(exports, module) { - "use strict"; - var diagnosticsChannel = __require("node:diagnostics_channel"); - var util = __require("node:util"); - var undiciDebugLog = util.debuglog("undici"); - var fetchDebuglog = util.debuglog("fetch"); - var websocketDebuglog = util.debuglog("websocket"); - var isClientSet = false; - var channels = { - // Client - beforeConnect: diagnosticsChannel.channel("undici:client:beforeConnect"), - connected: diagnosticsChannel.channel("undici:client:connected"), - connectError: diagnosticsChannel.channel("undici:client:connectError"), - sendHeaders: diagnosticsChannel.channel("undici:client:sendHeaders"), - // Request - create: diagnosticsChannel.channel("undici:request:create"), - bodySent: diagnosticsChannel.channel("undici:request:bodySent"), - headers: diagnosticsChannel.channel("undici:request:headers"), - trailers: diagnosticsChannel.channel("undici:request:trailers"), - error: diagnosticsChannel.channel("undici:request:error"), - // WebSocket - open: diagnosticsChannel.channel("undici:websocket:open"), - close: diagnosticsChannel.channel("undici:websocket:close"), - socketError: diagnosticsChannel.channel("undici:websocket:socket_error"), - ping: diagnosticsChannel.channel("undici:websocket:ping"), - pong: diagnosticsChannel.channel("undici:websocket:pong") - }; - if (undiciDebugLog.enabled || fetchDebuglog.enabled) { - const debuglog = fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog; - diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { - const { - connectParams: { version: version2, protocol, port, host } - } = evt; - debuglog( - "connecting to %s using %s%s", - `${host}${port ? `:${port}` : ""}`, - protocol, - version2 - ); - }); - diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { - const { - connectParams: { version: version2, protocol, port, host } - } = evt; - debuglog( - "connected to %s using %s%s", - `${host}${port ? `:${port}` : ""}`, - protocol, - version2 - ); - }); - diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { - const { - connectParams: { version: version2, protocol, port, host }, - error: error2 - } = evt; - debuglog( - "connection to %s using %s%s errored - %s", - `${host}${port ? `:${port}` : ""}`, - protocol, - version2, - error2.message - ); - }); - diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { - const { - request: { method, path: path2, origin } - } = evt; - debuglog("sending request to %s %s/%s", method, origin, path2); - }); - diagnosticsChannel.channel("undici:request:headers").subscribe((evt) => { - const { - request: { method, path: path2, origin }, - response: { statusCode } - } = evt; - debuglog( - "received response to %s %s/%s - HTTP %d", - method, - origin, - path2, - statusCode - ); - }); - diagnosticsChannel.channel("undici:request:trailers").subscribe((evt) => { - const { - request: { method, path: path2, origin } - } = evt; - debuglog("trailers received from %s %s/%s", method, origin, path2); - }); - diagnosticsChannel.channel("undici:request:error").subscribe((evt) => { - const { - request: { method, path: path2, origin }, - error: error2 - } = evt; - debuglog( - "request to %s %s/%s errored - %s", - method, - origin, - path2, - error2.message - ); - }); - isClientSet = true; - } - if (websocketDebuglog.enabled) { - if (!isClientSet) { - const debuglog = undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog; - diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { - const { - connectParams: { version: version2, protocol, port, host } - } = evt; - debuglog( - "connecting to %s%s using %s%s", - host, - port ? `:${port}` : "", - protocol, - version2 - ); - }); - diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { - const { - connectParams: { version: version2, protocol, port, host } - } = evt; - debuglog( - "connected to %s%s using %s%s", - host, - port ? `:${port}` : "", - protocol, - version2 - ); - }); - diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { - const { - connectParams: { version: version2, protocol, port, host }, - error: error2 - } = evt; - debuglog( - "connection to %s%s using %s%s errored - %s", - host, - port ? `:${port}` : "", - protocol, - version2, - error2.message - ); - }); - diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { - const { - request: { method, path: path2, origin } - } = evt; - debuglog("sending request to %s %s/%s", method, origin, path2); - }); - } - diagnosticsChannel.channel("undici:websocket:open").subscribe((evt) => { - const { - address: { address, port } - } = evt; - websocketDebuglog("connection opened %s%s", address, port ? `:${port}` : ""); - }); - diagnosticsChannel.channel("undici:websocket:close").subscribe((evt) => { - const { websocket, code, reason } = evt; - websocketDebuglog( - "closed connection to %s - %s %s", - websocket.url, - code, - reason - ); - }); - diagnosticsChannel.channel("undici:websocket:socket_error").subscribe((err) => { - websocketDebuglog("connection errored - %s", err.message); - }); - diagnosticsChannel.channel("undici:websocket:ping").subscribe((evt) => { - websocketDebuglog("ping received"); - }); - diagnosticsChannel.channel("undici:websocket:pong").subscribe((evt) => { - websocketDebuglog("pong received"); - }); - } - module.exports = { - channels - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/request.js -var require_request = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/request.js"(exports, module) { - "use strict"; - var { - InvalidArgumentError, - NotSupportedError - } = require_errors(); - var assert = __require("node:assert"); - var { - isValidHTTPToken, - isValidHeaderValue, - isStream, - destroy, - isBuffer, - isFormDataLike, - isIterable, - isBlobLike, - buildURL, - validateHandler, - getServerName, - normalizedMethodRecords - } = require_util(); - var { channels } = require_diagnostics(); - var { headerNameLowerCasedRecord } = require_constants(); - var invalidPathRegex = /[^\u0021-\u00ff]/; - var kHandler = /* @__PURE__ */ Symbol("handler"); - var Request = class { - constructor(origin, { - path: path2, - method, - body, - headers, - query, - idempotent, - blocking, - upgrade, - headersTimeout, - bodyTimeout, - reset, - throwOnError, - expectContinue, - servername - }, handler) { - if (typeof path2 !== "string") { - throw new InvalidArgumentError("path must be a string"); - } else if (path2[0] !== "/" && !(path2.startsWith("http://") || path2.startsWith("https://")) && method !== "CONNECT") { - throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); - } else if (invalidPathRegex.test(path2)) { - throw new InvalidArgumentError("invalid request path"); - } - if (typeof method !== "string") { - throw new InvalidArgumentError("method must be a string"); - } else if (normalizedMethodRecords[method] === void 0 && !isValidHTTPToken(method)) { - throw new InvalidArgumentError("invalid request method"); - } - if (upgrade && typeof upgrade !== "string") { - throw new InvalidArgumentError("upgrade must be a string"); - } - if (upgrade && !isValidHeaderValue(upgrade)) { - throw new InvalidArgumentError("invalid upgrade header"); - } - if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { - throw new InvalidArgumentError("invalid headersTimeout"); - } - if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { - throw new InvalidArgumentError("invalid bodyTimeout"); - } - if (reset != null && typeof reset !== "boolean") { - throw new InvalidArgumentError("invalid reset"); - } - if (expectContinue != null && typeof expectContinue !== "boolean") { - throw new InvalidArgumentError("invalid expectContinue"); - } - this.headersTimeout = headersTimeout; - this.bodyTimeout = bodyTimeout; - this.throwOnError = throwOnError === true; - this.method = method; - this.abort = null; - if (body == null) { - this.body = null; - } else if (isStream(body)) { - this.body = body; - const rState = this.body._readableState; - if (!rState || !rState.autoDestroy) { - this.endHandler = function autoDestroy() { - destroy(this); - }; - this.body.on("end", this.endHandler); - } - this.errorHandler = (err) => { - if (this.abort) { - this.abort(err); - } else { - this.error = err; - } - }; - this.body.on("error", this.errorHandler); - } else if (isBuffer(body)) { - this.body = body.byteLength ? body : null; - } else if (ArrayBuffer.isView(body)) { - this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; - } else if (body instanceof ArrayBuffer) { - this.body = body.byteLength ? Buffer.from(body) : null; - } else if (typeof body === "string") { - this.body = body.length ? Buffer.from(body) : null; - } else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) { - this.body = body; - } else { - throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable"); - } - this.completed = false; - this.aborted = false; - this.upgrade = upgrade || null; - this.path = query ? buildURL(path2, query) : path2; - this.origin = origin; - this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent; - this.blocking = blocking == null ? false : blocking; - this.reset = reset == null ? null : reset; - this.host = null; - this.contentLength = null; - this.contentType = null; - this.headers = []; - this.expectContinue = expectContinue != null ? expectContinue : false; - if (Array.isArray(headers)) { - if (headers.length % 2 !== 0) { - throw new InvalidArgumentError("headers array must be even"); - } - for (let i = 0; i < headers.length; i += 2) { - processHeader(this, headers[i], headers[i + 1]); - } - } else if (headers && typeof headers === "object") { - if (headers[Symbol.iterator]) { - for (const header of headers) { - if (!Array.isArray(header) || header.length !== 2) { - throw new InvalidArgumentError("headers must be in key-value pair format"); - } - processHeader(this, header[0], header[1]); - } - } else { - const keys = Object.keys(headers); - for (let i = 0; i < keys.length; ++i) { - processHeader(this, keys[i], headers[keys[i]]); - } - } - } else if (headers != null) { - throw new InvalidArgumentError("headers must be an object or an array"); - } - validateHandler(handler, method, upgrade); - this.servername = servername || getServerName(this.host); - this[kHandler] = handler; - if (channels.create.hasSubscribers) { - channels.create.publish({ request: this }); - } - } - onBodySent(chunk) { - if (this[kHandler].onBodySent) { - try { - return this[kHandler].onBodySent(chunk); - } catch (err) { - this.abort(err); - } - } - } - onRequestSent() { - if (channels.bodySent.hasSubscribers) { - channels.bodySent.publish({ request: this }); - } - if (this[kHandler].onRequestSent) { - try { - return this[kHandler].onRequestSent(); - } catch (err) { - this.abort(err); - } - } - } - onConnect(abort) { - assert(!this.aborted); - assert(!this.completed); - if (this.error) { - abort(this.error); - } else { - this.abort = abort; - return this[kHandler].onConnect(abort); - } - } - onResponseStarted() { - return this[kHandler].onResponseStarted?.(); - } - onHeaders(statusCode, headers, resume, statusText) { - assert(!this.aborted); - assert(!this.completed); - if (channels.headers.hasSubscribers) { - channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); - } - try { - return this[kHandler].onHeaders(statusCode, headers, resume, statusText); - } catch (err) { - this.abort(err); - } - } - onData(chunk) { - assert(!this.aborted); - assert(!this.completed); - try { - return this[kHandler].onData(chunk); - } catch (err) { - this.abort(err); - return false; - } - } - onUpgrade(statusCode, headers, socket) { - assert(!this.aborted); - assert(!this.completed); - return this[kHandler].onUpgrade(statusCode, headers, socket); - } - onComplete(trailers) { - this.onFinally(); - assert(!this.aborted); - this.completed = true; - if (channels.trailers.hasSubscribers) { - channels.trailers.publish({ request: this, trailers }); - } - try { - return this[kHandler].onComplete(trailers); - } catch (err) { - this.onError(err); - } - } - onError(error2) { - this.onFinally(); - if (channels.error.hasSubscribers) { - channels.error.publish({ request: this, error: error2 }); - } - if (this.aborted) { - return; - } - this.aborted = true; - return this[kHandler].onError(error2); - } - onFinally() { - if (this.errorHandler) { - this.body.off("error", this.errorHandler); - this.errorHandler = null; - } - if (this.endHandler) { - this.body.off("end", this.endHandler); - this.endHandler = null; - } - } - addHeader(key, value) { - processHeader(this, key, value); - return this; - } - }; - function processHeader(request, key, val) { - if (val && (typeof val === "object" && !Array.isArray(val))) { - throw new InvalidArgumentError(`invalid ${key} header`); - } else if (val === void 0) { - return; - } - let headerName = headerNameLowerCasedRecord[key]; - if (headerName === void 0) { - headerName = key.toLowerCase(); - if (headerNameLowerCasedRecord[headerName] === void 0 && !isValidHTTPToken(headerName)) { - throw new InvalidArgumentError("invalid header key"); - } - } - if (Array.isArray(val)) { - const arr = []; - for (let i = 0; i < val.length; i++) { - if (typeof val[i] === "string") { - if (!isValidHeaderValue(val[i])) { - throw new InvalidArgumentError(`invalid ${key} header`); - } - arr.push(val[i]); - } else if (val[i] === null) { - arr.push(""); - } else if (typeof val[i] === "object") { - throw new InvalidArgumentError(`invalid ${key} header`); - } else { - const str = `${val[i]}`; - if (!isValidHeaderValue(str)) { - throw new InvalidArgumentError(`invalid ${key} header`); - } - arr.push(str); - } - } - val = arr; - } else if (typeof val === "string") { - if (!isValidHeaderValue(val)) { - throw new InvalidArgumentError(`invalid ${key} header`); - } - } else if (val === null) { - val = ""; - } else { - val = `${val}`; - if (!isValidHeaderValue(val)) { - throw new InvalidArgumentError(`invalid ${key} header`); - } - } - if (headerName === "host") { - if (request.host !== null) { - throw new InvalidArgumentError("duplicate host header"); - } - if (typeof val !== "string") { - throw new InvalidArgumentError("invalid host header"); - } - request.host = val; - } else if (headerName === "content-length") { - if (request.contentLength !== null) { - throw new InvalidArgumentError("duplicate content-length header"); - } - request.contentLength = parseInt(val, 10); - if (!Number.isFinite(request.contentLength)) { - throw new InvalidArgumentError("invalid content-length header"); - } - } else if (request.contentType === null && headerName === "content-type") { - request.contentType = val; - request.headers.push(key, val); - } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") { - throw new InvalidArgumentError(`invalid ${headerName} header`); - } else if (headerName === "connection") { - const value = typeof val === "string" ? val.toLowerCase() : null; - if (value !== "close" && value !== "keep-alive") { - throw new InvalidArgumentError("invalid connection header"); - } - if (value === "close") { - request.reset = true; - } - } else if (headerName === "expect") { - throw new NotSupportedError("expect header not supported"); - } else { - request.headers.push(key, val); - } - } - module.exports = Request; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/dispatcher.js -var require_dispatcher = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/dispatcher.js"(exports, module) { - "use strict"; - var EventEmitter = __require("node:events"); - var Dispatcher = class extends EventEmitter { - dispatch() { - throw new Error("not implemented"); - } - close() { - throw new Error("not implemented"); - } - destroy() { - throw new Error("not implemented"); - } - compose(...args) { - const interceptors = Array.isArray(args[0]) ? args[0] : args; - let dispatch = this.dispatch.bind(this); - for (const interceptor of interceptors) { - if (interceptor == null) { - continue; - } - if (typeof interceptor !== "function") { - throw new TypeError(`invalid interceptor, expected function received ${typeof interceptor}`); - } - dispatch = interceptor(dispatch); - if (dispatch == null || typeof dispatch !== "function" || dispatch.length !== 2) { - throw new TypeError("invalid interceptor"); - } - } - return new ComposedDispatcher(this, dispatch); - } - }; - var ComposedDispatcher = class extends Dispatcher { - #dispatcher = null; - #dispatch = null; - constructor(dispatcher, dispatch) { - super(); - this.#dispatcher = dispatcher; - this.#dispatch = dispatch; - } - dispatch(...args) { - this.#dispatch(...args); - } - close(...args) { - return this.#dispatcher.close(...args); - } - destroy(...args) { - return this.#dispatcher.destroy(...args); - } - }; - module.exports = Dispatcher; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/dispatcher-base.js -var require_dispatcher_base = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports, module) { - "use strict"; - var Dispatcher = require_dispatcher(); - var { - ClientDestroyedError, - ClientClosedError, - InvalidArgumentError - } = require_errors(); - var { kDestroy, kClose, kClosed, kDestroyed, kDispatch, kInterceptors } = require_symbols(); - var kOnDestroyed = /* @__PURE__ */ Symbol("onDestroyed"); - var kOnClosed = /* @__PURE__ */ Symbol("onClosed"); - var kInterceptedDispatch = /* @__PURE__ */ Symbol("Intercepted Dispatch"); - var kWebSocketOptions = /* @__PURE__ */ Symbol("webSocketOptions"); - var DispatcherBase = class extends Dispatcher { - constructor(opts) { - super(); - this[kDestroyed] = false; - this[kOnDestroyed] = null; - this[kClosed] = false; - this[kOnClosed] = []; - this[kWebSocketOptions] = opts?.webSocket ?? {}; - } - get webSocketOptions() { - return { - maxFragments: this[kWebSocketOptions].maxFragments ?? 131072, - maxPayloadSize: this[kWebSocketOptions].maxPayloadSize ?? 128 * 1024 * 1024 - }; - } - get destroyed() { - return this[kDestroyed]; - } - get closed() { - return this[kClosed]; - } - get interceptors() { - return this[kInterceptors]; - } - set interceptors(newInterceptors) { - if (newInterceptors) { - for (let i = newInterceptors.length - 1; i >= 0; i--) { - const interceptor = this[kInterceptors][i]; - if (typeof interceptor !== "function") { - throw new InvalidArgumentError("interceptor must be an function"); - } - } - } - this[kInterceptors] = newInterceptors; - } - close(callback) { - if (callback === void 0) { - return new Promise((resolve, reject) => { - this.close((err, data) => { - return err ? reject(err) : resolve(data); - }); - }); - } - if (typeof callback !== "function") { - throw new InvalidArgumentError("invalid callback"); - } - if (this[kDestroyed]) { - queueMicrotask(() => callback(new ClientDestroyedError(), null)); - return; - } - if (this[kClosed]) { - if (this[kOnClosed]) { - this[kOnClosed].push(callback); - } else { - queueMicrotask(() => callback(null, null)); - } - return; - } - this[kClosed] = true; - this[kOnClosed].push(callback); - const onClosed = () => { - const callbacks = this[kOnClosed]; - this[kOnClosed] = null; - for (let i = 0; i < callbacks.length; i++) { - callbacks[i](null, null); - } - }; - this[kClose]().then(() => this.destroy()).then(() => { - queueMicrotask(onClosed); - }); - } - destroy(err, callback) { - if (typeof err === "function") { - callback = err; - err = null; - } - if (callback === void 0) { - return new Promise((resolve, reject) => { - this.destroy(err, (err2, data) => { - return err2 ? ( - /* istanbul ignore next: should never error */ - reject(err2) - ) : resolve(data); - }); - }); - } - if (typeof callback !== "function") { - throw new InvalidArgumentError("invalid callback"); - } - if (this[kDestroyed]) { - if (this[kOnDestroyed]) { - this[kOnDestroyed].push(callback); - } else { - queueMicrotask(() => callback(null, null)); - } - return; - } - if (!err) { - err = new ClientDestroyedError(); - } - this[kDestroyed] = true; - this[kOnDestroyed] = this[kOnDestroyed] || []; - this[kOnDestroyed].push(callback); - const onDestroyed = () => { - const callbacks = this[kOnDestroyed]; - this[kOnDestroyed] = null; - for (let i = 0; i < callbacks.length; i++) { - callbacks[i](null, null); - } - }; - this[kDestroy](err).then(() => { - queueMicrotask(onDestroyed); - }); - } - [kInterceptedDispatch](opts, handler) { - if (!this[kInterceptors] || this[kInterceptors].length === 0) { - this[kInterceptedDispatch] = this[kDispatch]; - return this[kDispatch](opts, handler); - } - let dispatch = this[kDispatch].bind(this); - for (let i = this[kInterceptors].length - 1; i >= 0; i--) { - dispatch = this[kInterceptors][i](dispatch); - } - this[kInterceptedDispatch] = dispatch; - return dispatch(opts, handler); - } - dispatch(opts, handler) { - if (!handler || typeof handler !== "object") { - throw new InvalidArgumentError("handler must be an object"); - } - try { - if (!opts || typeof opts !== "object") { - throw new InvalidArgumentError("opts must be an object."); - } - if (this[kDestroyed] || this[kOnDestroyed]) { - throw new ClientDestroyedError(); - } - if (this[kClosed]) { - throw new ClientClosedError(); - } - return this[kInterceptedDispatch](opts, handler); - } catch (err) { - if (typeof handler.onError !== "function") { - throw new InvalidArgumentError("invalid onError method"); - } - handler.onError(err); - return false; - } - } - }; - module.exports = DispatcherBase; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/util/timers.js -var require_timers = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/util/timers.js"(exports, module) { - "use strict"; - var fastNow = 0; - var RESOLUTION_MS = 1e3; - var TICK_MS = (RESOLUTION_MS >> 1) - 1; - var fastNowTimeout; - var kFastTimer = /* @__PURE__ */ Symbol("kFastTimer"); - var fastTimers = []; - var NOT_IN_LIST = -2; - var TO_BE_CLEARED = -1; - var PENDING = 0; - var ACTIVE = 1; - function onTick() { - fastNow += TICK_MS; - let idx = 0; - let len = fastTimers.length; - while (idx < len) { - const timer = fastTimers[idx]; - if (timer._state === PENDING) { - timer._idleStart = fastNow - TICK_MS; - timer._state = ACTIVE; - } else if (timer._state === ACTIVE && fastNow >= timer._idleStart + timer._idleTimeout) { - timer._state = TO_BE_CLEARED; - timer._idleStart = -1; - timer._onTimeout(timer._timerArg); - } - if (timer._state === TO_BE_CLEARED) { - timer._state = NOT_IN_LIST; - if (--len !== 0) { - fastTimers[idx] = fastTimers[len]; - } - } else { - ++idx; - } - } - fastTimers.length = len; - if (fastTimers.length !== 0) { - refreshTimeout(); - } - } - function refreshTimeout() { - if (fastNowTimeout) { - fastNowTimeout.refresh(); - } else { - clearTimeout(fastNowTimeout); - fastNowTimeout = setTimeout(onTick, TICK_MS); - if (fastNowTimeout.unref) { - fastNowTimeout.unref(); - } - } - } - var FastTimer = class { - [kFastTimer] = true; - /** - * The state of the timer, which can be one of the following: - * - NOT_IN_LIST (-2) - * - TO_BE_CLEARED (-1) - * - PENDING (0) - * - ACTIVE (1) - * - * @type {-2|-1|0|1} - * @private - */ - _state = NOT_IN_LIST; - /** - * The number of milliseconds to wait before calling the callback. - * - * @type {number} - * @private - */ - _idleTimeout = -1; - /** - * The time in milliseconds when the timer was started. This value is used to - * calculate when the timer should expire. - * - * @type {number} - * @default -1 - * @private - */ - _idleStart = -1; - /** - * The function to be executed when the timer expires. - * @type {Function} - * @private - */ - _onTimeout; - /** - * The argument to be passed to the callback when the timer expires. - * - * @type {*} - * @private - */ - _timerArg; - /** - * @constructor - * @param {Function} callback A function to be executed after the timer - * expires. - * @param {number} delay The time, in milliseconds that the timer should wait - * before the specified function or code is executed. - * @param {*} arg - */ - constructor(callback, delay, arg) { - this._onTimeout = callback; - this._idleTimeout = delay; - this._timerArg = arg; - this.refresh(); - } - /** - * Sets the timer's start time to the current time, and reschedules the timer - * to call its callback at the previously specified duration adjusted to the - * current time. - * Using this on a timer that has already called its callback will reactivate - * the timer. - * - * @returns {void} - */ - refresh() { - if (this._state === NOT_IN_LIST) { - fastTimers.push(this); - } - if (!fastNowTimeout || fastTimers.length === 1) { - refreshTimeout(); - } - this._state = PENDING; - } - /** - * The `clear` method cancels the timer, preventing it from executing. - * - * @returns {void} - * @private - */ - clear() { - this._state = TO_BE_CLEARED; - this._idleStart = -1; - } - }; - module.exports = { - /** - * The setTimeout() method sets a timer which executes a function once the - * timer expires. - * @param {Function} callback A function to be executed after the timer - * expires. - * @param {number} delay The time, in milliseconds that the timer should - * wait before the specified function or code is executed. - * @param {*} [arg] An optional argument to be passed to the callback function - * when the timer expires. - * @returns {NodeJS.Timeout|FastTimer} - */ - setTimeout(callback, delay, arg) { - return delay <= RESOLUTION_MS ? setTimeout(callback, delay, arg) : new FastTimer(callback, delay, arg); - }, - /** - * The clearTimeout method cancels an instantiated Timer previously created - * by calling setTimeout. - * - * @param {NodeJS.Timeout|FastTimer} timeout - */ - clearTimeout(timeout) { - if (timeout[kFastTimer]) { - timeout.clear(); - } else { - clearTimeout(timeout); - } - }, - /** - * The setFastTimeout() method sets a fastTimer which executes a function once - * the timer expires. - * @param {Function} callback A function to be executed after the timer - * expires. - * @param {number} delay The time, in milliseconds that the timer should - * wait before the specified function or code is executed. - * @param {*} [arg] An optional argument to be passed to the callback function - * when the timer expires. - * @returns {FastTimer} - */ - setFastTimeout(callback, delay, arg) { - return new FastTimer(callback, delay, arg); - }, - /** - * The clearTimeout method cancels an instantiated FastTimer previously - * created by calling setFastTimeout. - * - * @param {FastTimer} timeout - */ - clearFastTimeout(timeout) { - timeout.clear(); - }, - /** - * The now method returns the value of the internal fast timer clock. - * - * @returns {number} - */ - now() { - return fastNow; - }, - /** - * Trigger the onTick function to process the fastTimers array. - * Exported for testing purposes only. - * Marking as deprecated to discourage any use outside of testing. - * @deprecated - * @param {number} [delay=0] The delay in milliseconds to add to the now value. - */ - tick(delay = 0) { - fastNow += delay - RESOLUTION_MS + 1; - onTick(); - onTick(); - }, - /** - * Reset FastTimers. - * Exported for testing purposes only. - * Marking as deprecated to discourage any use outside of testing. - * @deprecated - */ - reset() { - fastNow = 0; - fastTimers.length = 0; - clearTimeout(fastNowTimeout); - fastNowTimeout = null; - }, - /** - * Exporting for testing purposes only. - * Marking as deprecated to discourage any use outside of testing. - * @deprecated - */ - kFastTimer - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/connect.js -var require_connect = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/connect.js"(exports, module) { - "use strict"; - var net = __require("node:net"); - var assert = __require("node:assert"); - var util = require_util(); - var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); - var timers = require_timers(); - function noop() { - } - var tls; - var SessionCache; - if (global.FinalizationRegistry && !(process.env.NODE_V8_COVERAGE || process.env.UNDICI_NO_FG)) { - SessionCache = class WeakSessionCache { - constructor(maxCachedSessions) { - this._maxCachedSessions = maxCachedSessions; - this._sessionCache = /* @__PURE__ */ new Map(); - this._sessionRegistry = new global.FinalizationRegistry((key) => { - if (this._sessionCache.size < this._maxCachedSessions) { - return; - } - const ref = this._sessionCache.get(key); - if (ref !== void 0 && ref.deref() === void 0) { - this._sessionCache.delete(key); - } - }); - } - get(sessionKey) { - const ref = this._sessionCache.get(sessionKey); - return ref ? ref.deref() : null; - } - set(sessionKey, session) { - if (this._maxCachedSessions === 0) { - return; - } - this._sessionCache.set(sessionKey, new WeakRef(session)); - this._sessionRegistry.register(session, sessionKey); - } - }; - } else { - SessionCache = class SimpleSessionCache { - constructor(maxCachedSessions) { - this._maxCachedSessions = maxCachedSessions; - this._sessionCache = /* @__PURE__ */ new Map(); - } - get(sessionKey) { - return this._sessionCache.get(sessionKey); - } - set(sessionKey, session) { - if (this._maxCachedSessions === 0) { - return; - } - if (this._sessionCache.size >= this._maxCachedSessions) { - const { value: oldestKey } = this._sessionCache.keys().next(); - this._sessionCache.delete(oldestKey); - } - this._sessionCache.set(sessionKey, session); - } - }; - } - function buildConnector({ allowH2, maxCachedSessions, socketPath, timeout, session: customSession, ...opts }) { - if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { - throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero"); - } - const options = { path: socketPath, ...opts }; - 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) { - let socket; - if (protocol === "https:") { - if (!tls) { - tls = __require("node:tls"); - } - servername = servername || options.servername || util.getServerName(host) || null; - const sessionKey = servername || hostname; - assert(sessionKey); - const session = customSession || sessionCache.get(sessionKey) || null; - port = port || 443; - socket = tls.connect({ - highWaterMark: 16384, - // TLS in node can't have bigger HWM anyway... - ...options, - servername, - session, - localAddress, - // TODO(HTTP/2): Add support for h2c - ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"], - socket: httpSocket, - // upgrade socket connection - port, - host: hostname - }); - socket.on("session", function(session2) { - sessionCache.set(sessionKey, session2); - }); - } else { - assert(!httpSocket, "httpSocket can only be sent on TLS update"); - port = port || 80; - socket = net.connect({ - highWaterMark: 64 * 1024, - // Same as nodejs fs streams. - ...options, - localAddress, - port, - host: hostname - }); - } - if (options.keepAlive == null || options.keepAlive) { - const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay; - socket.setKeepAlive(true, keepAliveInitialDelay); - } - const clearConnectTimeout = setupConnectTimeout(new WeakRef(socket), { timeout, hostname, port }); - socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { - queueMicrotask(clearConnectTimeout); - if (callback) { - const cb = callback; - callback = null; - cb(null, this); - } - }).on("error", function(err) { - queueMicrotask(clearConnectTimeout); - if (callback) { - const cb = callback; - callback = null; - cb(err); - } - }); - return socket; - }; - } - var setupConnectTimeout = process.platform === "win32" ? (socketWeakRef, opts) => { - if (!opts.timeout) { - return noop; - } - let s1 = null; - let s2 = null; - const fastTimer = timers.setFastTimeout(() => { - s1 = setImmediate(() => { - s2 = setImmediate(() => onConnectTimeout(socketWeakRef.deref(), opts)); - }); - }, opts.timeout); - return () => { - timers.clearFastTimeout(fastTimer); - clearImmediate(s1); - clearImmediate(s2); - }; - } : (socketWeakRef, opts) => { - if (!opts.timeout) { - return noop; - } - let s1 = null; - const fastTimer = timers.setFastTimeout(() => { - s1 = setImmediate(() => { - onConnectTimeout(socketWeakRef.deref(), opts); - }); - }, opts.timeout); - return () => { - timers.clearFastTimeout(fastTimer); - clearImmediate(s1); - }; - }; - function onConnectTimeout(socket, opts) { - if (socket == null) { - return; - } - let message = "Connect Timeout Error"; - if (Array.isArray(socket.autoSelectFamilyAttemptedAddresses)) { - message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`; - } else { - message += ` (attempted address: ${opts.hostname}:${opts.port},`; - } - message += ` timeout: ${opts.timeout}ms)`; - util.destroy(socket, new ConnectTimeoutError(message)); - } - module.exports = buildConnector; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/utils.js -var require_utils = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/utils.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.enumToMap = void 0; - function enumToMap(obj) { - const res = {}; - Object.keys(obj).forEach((key) => { - const value = obj[key]; - if (typeof value === "number") { - res[key] = value; - } - }); - return res; - } - exports.enumToMap = enumToMap; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/constants.js -var require_constants2 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/constants.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; - var utils_1 = require_utils(); - var ERROR; - (function(ERROR2) { - ERROR2[ERROR2["OK"] = 0] = "OK"; - ERROR2[ERROR2["INTERNAL"] = 1] = "INTERNAL"; - ERROR2[ERROR2["STRICT"] = 2] = "STRICT"; - ERROR2[ERROR2["LF_EXPECTED"] = 3] = "LF_EXPECTED"; - ERROR2[ERROR2["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; - ERROR2[ERROR2["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; - ERROR2[ERROR2["INVALID_METHOD"] = 6] = "INVALID_METHOD"; - ERROR2[ERROR2["INVALID_URL"] = 7] = "INVALID_URL"; - ERROR2[ERROR2["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; - ERROR2[ERROR2["INVALID_VERSION"] = 9] = "INVALID_VERSION"; - ERROR2[ERROR2["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; - ERROR2[ERROR2["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; - ERROR2[ERROR2["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; - ERROR2[ERROR2["INVALID_STATUS"] = 13] = "INVALID_STATUS"; - ERROR2[ERROR2["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; - ERROR2[ERROR2["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; - ERROR2[ERROR2["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; - ERROR2[ERROR2["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; - ERROR2[ERROR2["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; - ERROR2[ERROR2["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; - ERROR2[ERROR2["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; - ERROR2[ERROR2["PAUSED"] = 21] = "PAUSED"; - ERROR2[ERROR2["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; - ERROR2[ERROR2["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; - ERROR2[ERROR2["USER"] = 24] = "USER"; - })(ERROR = exports.ERROR || (exports.ERROR = {})); - var TYPE; - (function(TYPE2) { - TYPE2[TYPE2["BOTH"] = 0] = "BOTH"; - TYPE2[TYPE2["REQUEST"] = 1] = "REQUEST"; - TYPE2[TYPE2["RESPONSE"] = 2] = "RESPONSE"; - })(TYPE = exports.TYPE || (exports.TYPE = {})); - var FLAGS; - (function(FLAGS2) { - FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; - FLAGS2[FLAGS2["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; - FLAGS2[FLAGS2["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; - FLAGS2[FLAGS2["CHUNKED"] = 8] = "CHUNKED"; - FLAGS2[FLAGS2["UPGRADE"] = 16] = "UPGRADE"; - FLAGS2[FLAGS2["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; - FLAGS2[FLAGS2["SKIPBODY"] = 64] = "SKIPBODY"; - FLAGS2[FLAGS2["TRAILING"] = 128] = "TRAILING"; - FLAGS2[FLAGS2["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; - })(FLAGS = exports.FLAGS || (exports.FLAGS = {})); - var LENIENT_FLAGS; - (function(LENIENT_FLAGS2) { - LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"] = 1] = "HEADERS"; - LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; - LENIENT_FLAGS2[LENIENT_FLAGS2["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; - })(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); - var METHODS; - (function(METHODS2) { - METHODS2[METHODS2["DELETE"] = 0] = "DELETE"; - METHODS2[METHODS2["GET"] = 1] = "GET"; - METHODS2[METHODS2["HEAD"] = 2] = "HEAD"; - METHODS2[METHODS2["POST"] = 3] = "POST"; - METHODS2[METHODS2["PUT"] = 4] = "PUT"; - METHODS2[METHODS2["CONNECT"] = 5] = "CONNECT"; - METHODS2[METHODS2["OPTIONS"] = 6] = "OPTIONS"; - METHODS2[METHODS2["TRACE"] = 7] = "TRACE"; - METHODS2[METHODS2["COPY"] = 8] = "COPY"; - METHODS2[METHODS2["LOCK"] = 9] = "LOCK"; - METHODS2[METHODS2["MKCOL"] = 10] = "MKCOL"; - METHODS2[METHODS2["MOVE"] = 11] = "MOVE"; - METHODS2[METHODS2["PROPFIND"] = 12] = "PROPFIND"; - METHODS2[METHODS2["PROPPATCH"] = 13] = "PROPPATCH"; - METHODS2[METHODS2["SEARCH"] = 14] = "SEARCH"; - METHODS2[METHODS2["UNLOCK"] = 15] = "UNLOCK"; - METHODS2[METHODS2["BIND"] = 16] = "BIND"; - METHODS2[METHODS2["REBIND"] = 17] = "REBIND"; - METHODS2[METHODS2["UNBIND"] = 18] = "UNBIND"; - METHODS2[METHODS2["ACL"] = 19] = "ACL"; - METHODS2[METHODS2["REPORT"] = 20] = "REPORT"; - METHODS2[METHODS2["MKACTIVITY"] = 21] = "MKACTIVITY"; - METHODS2[METHODS2["CHECKOUT"] = 22] = "CHECKOUT"; - METHODS2[METHODS2["MERGE"] = 23] = "MERGE"; - METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH"; - METHODS2[METHODS2["NOTIFY"] = 25] = "NOTIFY"; - METHODS2[METHODS2["SUBSCRIBE"] = 26] = "SUBSCRIBE"; - METHODS2[METHODS2["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; - METHODS2[METHODS2["PATCH"] = 28] = "PATCH"; - METHODS2[METHODS2["PURGE"] = 29] = "PURGE"; - METHODS2[METHODS2["MKCALENDAR"] = 30] = "MKCALENDAR"; - METHODS2[METHODS2["LINK"] = 31] = "LINK"; - METHODS2[METHODS2["UNLINK"] = 32] = "UNLINK"; - METHODS2[METHODS2["SOURCE"] = 33] = "SOURCE"; - METHODS2[METHODS2["PRI"] = 34] = "PRI"; - METHODS2[METHODS2["DESCRIBE"] = 35] = "DESCRIBE"; - METHODS2[METHODS2["ANNOUNCE"] = 36] = "ANNOUNCE"; - METHODS2[METHODS2["SETUP"] = 37] = "SETUP"; - METHODS2[METHODS2["PLAY"] = 38] = "PLAY"; - METHODS2[METHODS2["PAUSE"] = 39] = "PAUSE"; - METHODS2[METHODS2["TEARDOWN"] = 40] = "TEARDOWN"; - METHODS2[METHODS2["GET_PARAMETER"] = 41] = "GET_PARAMETER"; - METHODS2[METHODS2["SET_PARAMETER"] = 42] = "SET_PARAMETER"; - METHODS2[METHODS2["REDIRECT"] = 43] = "REDIRECT"; - METHODS2[METHODS2["RECORD"] = 44] = "RECORD"; - METHODS2[METHODS2["FLUSH"] = 45] = "FLUSH"; - })(METHODS = exports.METHODS || (exports.METHODS = {})); - exports.METHODS_HTTP = [ - METHODS.DELETE, - METHODS.GET, - METHODS.HEAD, - METHODS.POST, - METHODS.PUT, - METHODS.CONNECT, - METHODS.OPTIONS, - METHODS.TRACE, - METHODS.COPY, - METHODS.LOCK, - METHODS.MKCOL, - METHODS.MOVE, - METHODS.PROPFIND, - METHODS.PROPPATCH, - METHODS.SEARCH, - METHODS.UNLOCK, - METHODS.BIND, - METHODS.REBIND, - METHODS.UNBIND, - METHODS.ACL, - METHODS.REPORT, - METHODS.MKACTIVITY, - METHODS.CHECKOUT, - METHODS.MERGE, - METHODS["M-SEARCH"], - METHODS.NOTIFY, - METHODS.SUBSCRIBE, - METHODS.UNSUBSCRIBE, - METHODS.PATCH, - METHODS.PURGE, - METHODS.MKCALENDAR, - METHODS.LINK, - METHODS.UNLINK, - METHODS.PRI, - // TODO(indutny): should we allow it with HTTP? - METHODS.SOURCE - ]; - exports.METHODS_ICE = [ - METHODS.SOURCE - ]; - exports.METHODS_RTSP = [ - METHODS.OPTIONS, - METHODS.DESCRIBE, - METHODS.ANNOUNCE, - METHODS.SETUP, - METHODS.PLAY, - METHODS.PAUSE, - METHODS.TEARDOWN, - METHODS.GET_PARAMETER, - METHODS.SET_PARAMETER, - METHODS.REDIRECT, - METHODS.RECORD, - METHODS.FLUSH, - // For AirPlay - METHODS.GET, - METHODS.POST - ]; - exports.METHOD_MAP = utils_1.enumToMap(METHODS); - exports.H_METHOD_MAP = {}; - Object.keys(exports.METHOD_MAP).forEach((key) => { - if (/^H/.test(key)) { - exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; - } - }); - var FINISH; - (function(FINISH2) { - FINISH2[FINISH2["SAFE"] = 0] = "SAFE"; - FINISH2[FINISH2["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; - FINISH2[FINISH2["UNSAFE"] = 2] = "UNSAFE"; - })(FINISH = exports.FINISH || (exports.FINISH = {})); - exports.ALPHA = []; - for (let i = "A".charCodeAt(0); i <= "Z".charCodeAt(0); i++) { - exports.ALPHA.push(String.fromCharCode(i)); - exports.ALPHA.push(String.fromCharCode(i + 32)); - } - exports.NUM_MAP = { - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9 - }; - exports.HEX_MAP = { - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9, - A: 10, - B: 11, - C: 12, - D: 13, - E: 14, - F: 15, - a: 10, - b: 11, - c: 12, - d: 13, - e: 14, - f: 15 - }; - exports.NUM = [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9" - ]; - exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); - exports.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; - exports.USERINFO_CHARS = exports.ALPHANUM.concat(exports.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); - exports.STRICT_URL_CHAR = [ - "!", - '"', - "$", - "%", - "&", - "'", - "(", - ")", - "*", - "+", - ",", - "-", - ".", - "/", - ":", - ";", - "<", - "=", - ">", - "@", - "[", - "\\", - "]", - "^", - "_", - "`", - "{", - "|", - "}", - "~" - ].concat(exports.ALPHANUM); - exports.URL_CHAR = exports.STRICT_URL_CHAR.concat([" ", "\f"]); - for (let i = 128; i <= 255; i++) { - exports.URL_CHAR.push(i); - } - exports.HEX = exports.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); - exports.STRICT_TOKEN = [ - "!", - "#", - "$", - "%", - "&", - "'", - "*", - "+", - "-", - ".", - "^", - "_", - "`", - "|", - "~" - ].concat(exports.ALPHANUM); - exports.TOKEN = exports.STRICT_TOKEN.concat([" "]); - exports.HEADER_CHARS = [" "]; - for (let i = 32; i <= 255; i++) { - if (i !== 127) { - exports.HEADER_CHARS.push(i); - } - } - exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); - exports.MAJOR = exports.NUM_MAP; - exports.MINOR = exports.MAJOR; - var HEADER_STATE; - (function(HEADER_STATE2) { - HEADER_STATE2[HEADER_STATE2["GENERAL"] = 0] = "GENERAL"; - HEADER_STATE2[HEADER_STATE2["CONNECTION"] = 1] = "CONNECTION"; - HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; - HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; - HEADER_STATE2[HEADER_STATE2["UPGRADE"] = 4] = "UPGRADE"; - HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; - HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; - HEADER_STATE2[HEADER_STATE2["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; - HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; - })(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); - exports.SPECIAL_HEADERS = { - "connection": HEADER_STATE.CONNECTION, - "content-length": HEADER_STATE.CONTENT_LENGTH, - "proxy-connection": HEADER_STATE.CONNECTION, - "transfer-encoding": HEADER_STATE.TRANSFER_ENCODING, - "upgrade": HEADER_STATE.UPGRADE - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/llhttp-wasm.js -var require_llhttp_wasm = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module) { - "use strict"; - var { Buffer: Buffer2 } = __require("node:buffer"); - module.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv", "base64"); - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js -var require_llhttp_simd_wasm = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module) { - "use strict"; - var { Buffer: Buffer2 } = __require("node:buffer"); - module.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64"); - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/constants.js -var require_constants3 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/constants.js"(exports, module) { - "use strict"; - var corsSafeListedMethods = ( - /** @type {const} */ - ["GET", "HEAD", "POST"] - ); - var corsSafeListedMethodsSet = new Set(corsSafeListedMethods); - var nullBodyStatus = ( - /** @type {const} */ - [101, 204, 205, 304] - ); - var redirectStatus = ( - /** @type {const} */ - [301, 302, 303, 307, 308] - ); - var redirectStatusSet = new Set(redirectStatus); - var badPorts = ( - /** @type {const} */ - [ - "1", - "7", - "9", - "11", - "13", - "15", - "17", - "19", - "20", - "21", - "22", - "23", - "25", - "37", - "42", - "43", - "53", - "69", - "77", - "79", - "87", - "95", - "101", - "102", - "103", - "104", - "109", - "110", - "111", - "113", - "115", - "117", - "119", - "123", - "135", - "137", - "139", - "143", - "161", - "179", - "389", - "427", - "465", - "512", - "513", - "514", - "515", - "526", - "530", - "531", - "532", - "540", - "548", - "554", - "556", - "563", - "587", - "601", - "636", - "989", - "990", - "993", - "995", - "1719", - "1720", - "1723", - "2049", - "3659", - "4045", - "4190", - "5060", - "5061", - "6000", - "6566", - "6665", - "6666", - "6667", - "6668", - "6669", - "6679", - "6697", - "10080" - ] - ); - var badPortsSet = new Set(badPorts); - var referrerPolicy = ( - /** @type {const} */ - [ - "", - "no-referrer", - "no-referrer-when-downgrade", - "same-origin", - "origin", - "strict-origin", - "origin-when-cross-origin", - "strict-origin-when-cross-origin", - "unsafe-url" - ] - ); - var referrerPolicySet = new Set(referrerPolicy); - var requestRedirect = ( - /** @type {const} */ - ["follow", "manual", "error"] - ); - var safeMethods = ( - /** @type {const} */ - ["GET", "HEAD", "OPTIONS", "TRACE"] - ); - var safeMethodsSet = new Set(safeMethods); - var requestMode = ( - /** @type {const} */ - ["navigate", "same-origin", "no-cors", "cors"] - ); - var requestCredentials = ( - /** @type {const} */ - ["omit", "same-origin", "include"] - ); - var requestCache = ( - /** @type {const} */ - [ - "default", - "no-store", - "reload", - "no-cache", - "force-cache", - "only-if-cached" - ] - ); - var requestBodyHeader = ( - /** @type {const} */ - [ - "content-encoding", - "content-language", - "content-location", - "content-type", - // See https://github.com/nodejs/undici/issues/2021 - // 'Content-Length' is a forbidden header name, which is typically - // removed in the Headers implementation. However, undici doesn't - // filter out headers, so we add it here. - "content-length" - ] - ); - var requestDuplex = ( - /** @type {const} */ - [ - "half" - ] - ); - var forbiddenMethods = ( - /** @type {const} */ - ["CONNECT", "TRACE", "TRACK"] - ); - var forbiddenMethodsSet = new Set(forbiddenMethods); - var subresource = ( - /** @type {const} */ - [ - "audio", - "audioworklet", - "font", - "image", - "manifest", - "paintworklet", - "script", - "style", - "track", - "video", - "xslt", - "" - ] - ); - var subresourceSet = new Set(subresource); - module.exports = { - subresource, - forbiddenMethods, - requestBodyHeader, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - redirectStatus, - corsSafeListedMethods, - nullBodyStatus, - safeMethods, - badPorts, - requestDuplex, - subresourceSet, - badPortsSet, - redirectStatusSet, - corsSafeListedMethodsSet, - safeMethodsSet, - forbiddenMethodsSet, - referrerPolicySet - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/global.js -var require_global = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/global.js"(exports, module) { - "use strict"; - var globalOrigin = /* @__PURE__ */ Symbol.for("undici.globalOrigin.1"); - function getGlobalOrigin() { - return globalThis[globalOrigin]; - } - function setGlobalOrigin(newOrigin) { - if (newOrigin === void 0) { - Object.defineProperty(globalThis, globalOrigin, { - value: void 0, - writable: true, - enumerable: false, - configurable: false - }); - return; - } - const parsedURL = new URL(newOrigin); - if (parsedURL.protocol !== "http:" && parsedURL.protocol !== "https:") { - throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`); - } - Object.defineProperty(globalThis, globalOrigin, { - value: parsedURL, - writable: true, - enumerable: false, - configurable: false - }); - } - module.exports = { - getGlobalOrigin, - setGlobalOrigin - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/data-url.js -var require_data_url = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/data-url.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var encoder = new TextEncoder(); - var HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/; - var HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/; - var ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g; - var HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; - function dataURLProcessor(dataURL) { - assert(dataURL.protocol === "data:"); - let input = URLSerializer(dataURL, true); - input = input.slice(5); - const position = { position: 0 }; - let mimeType = collectASequenceOfCodePointsFast( - ",", - input, - position - ); - const mimeTypeLength = mimeType.length; - mimeType = removeASCIIWhitespace(mimeType, true, true); - if (position.position >= input.length) { - return "failure"; - } - position.position++; - const encodedBody = input.slice(mimeTypeLength + 1); - let body = stringPercentDecode(encodedBody); - if (/;(\u0020){0,}base64$/i.test(mimeType)) { - const stringBody = isomorphicDecode(body); - body = forgivingBase64(stringBody); - if (body === "failure") { - return "failure"; - } - mimeType = mimeType.slice(0, -6); - mimeType = mimeType.replace(/(\u0020)+$/, ""); - mimeType = mimeType.slice(0, -1); - } - if (mimeType.startsWith(";")) { - mimeType = "text/plain" + mimeType; - } - let mimeTypeRecord = parseMIMEType(mimeType); - if (mimeTypeRecord === "failure") { - mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII"); - } - return { mimeType: mimeTypeRecord, body }; - } - function URLSerializer(url, excludeFragment = false) { - if (!excludeFragment) { - return url.href; - } - const href = url.href; - const hashLength = url.hash.length; - const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); - if (!hashLength && href.endsWith("#")) { - return serialized.slice(0, -1); - } - return serialized; - } - function collectASequenceOfCodePoints(condition, input, position) { - let result = ""; - while (position.position < input.length && condition(input[position.position])) { - result += input[position.position]; - position.position++; - } - return result; - } - function collectASequenceOfCodePointsFast(char, input, position) { - const idx = input.indexOf(char, position.position); - const start = position.position; - if (idx === -1) { - position.position = input.length; - return input.slice(start); - } - position.position = idx; - return input.slice(start, position.position); - } - function stringPercentDecode(input) { - const bytes = encoder.encode(input); - return percentDecode(bytes); - } - function isHexCharByte(byte) { - return byte >= 48 && byte <= 57 || byte >= 65 && byte <= 70 || byte >= 97 && byte <= 102; - } - function hexByteToNumber(byte) { - return ( - // 0-9 - byte >= 48 && byte <= 57 ? byte - 48 : (byte & 223) - 55 - ); - } - function percentDecode(input) { - const length = input.length; - const output = new Uint8Array(length); - let j = 0; - for (let i = 0; i < length; ++i) { - const byte = input[i]; - if (byte !== 37) { - output[j++] = byte; - } else if (byte === 37 && !(isHexCharByte(input[i + 1]) && isHexCharByte(input[i + 2]))) { - output[j++] = 37; - } else { - output[j++] = hexByteToNumber(input[i + 1]) << 4 | hexByteToNumber(input[i + 2]); - i += 2; - } - } - return length === j ? output : output.subarray(0, j); - } - function parseMIMEType(input) { - input = removeHTTPWhitespace(input, true, true); - const position = { position: 0 }; - const type = collectASequenceOfCodePointsFast( - "/", - input, - position - ); - if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { - return "failure"; - } - if (position.position > input.length) { - return "failure"; - } - position.position++; - let subtype = collectASequenceOfCodePointsFast( - ";", - input, - position - ); - subtype = removeHTTPWhitespace(subtype, false, true); - if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { - return "failure"; - } - const typeLowercase = type.toLowerCase(); - const subtypeLowercase = subtype.toLowerCase(); - const mimeType = { - type: typeLowercase, - subtype: subtypeLowercase, - /** @type {Map} */ - parameters: /* @__PURE__ */ new Map(), - // https://mimesniff.spec.whatwg.org/#mime-type-essence - essence: `${typeLowercase}/${subtypeLowercase}` - }; - while (position.position < input.length) { - position.position++; - collectASequenceOfCodePoints( - // https://fetch.spec.whatwg.org/#http-whitespace - (char) => HTTP_WHITESPACE_REGEX.test(char), - input, - position - ); - let parameterName = collectASequenceOfCodePoints( - (char) => char !== ";" && char !== "=", - input, - position - ); - parameterName = parameterName.toLowerCase(); - if (position.position < input.length) { - if (input[position.position] === ";") { - continue; - } - position.position++; - } - if (position.position > input.length) { - break; - } - let parameterValue = null; - if (input[position.position] === '"') { - parameterValue = collectAnHTTPQuotedString(input, position, true); - collectASequenceOfCodePointsFast( - ";", - input, - position - ); - } else { - parameterValue = collectASequenceOfCodePointsFast( - ";", - input, - position - ); - parameterValue = removeHTTPWhitespace(parameterValue, false, true); - if (parameterValue.length === 0) { - continue; - } - } - if (parameterName.length !== 0 && HTTP_TOKEN_CODEPOINTS.test(parameterName) && (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && !mimeType.parameters.has(parameterName)) { - mimeType.parameters.set(parameterName, parameterValue); - } - } - return mimeType; - } - function forgivingBase64(data) { - data = data.replace(ASCII_WHITESPACE_REPLACE_REGEX, ""); - let dataLength = data.length; - if (dataLength % 4 === 0) { - if (data.charCodeAt(dataLength - 1) === 61) { - --dataLength; - if (data.charCodeAt(dataLength - 1) === 61) { - --dataLength; - } - } - } - if (dataLength % 4 === 1) { - return "failure"; - } - if (/[^+/0-9A-Za-z]/.test(data.length === dataLength ? data : data.substring(0, dataLength))) { - return "failure"; - } - const buffer = Buffer.from(data, "base64"); - return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); - } - function collectAnHTTPQuotedString(input, position, extractValue) { - const positionStart = position.position; - let value = ""; - assert(input[position.position] === '"'); - position.position++; - while (true) { - value += collectASequenceOfCodePoints( - (char) => char !== '"' && char !== "\\", - input, - position - ); - if (position.position >= input.length) { - break; - } - const quoteOrBackslash = input[position.position]; - position.position++; - if (quoteOrBackslash === "\\") { - if (position.position >= input.length) { - value += "\\"; - break; - } - value += input[position.position]; - position.position++; - } else { - assert(quoteOrBackslash === '"'); - break; - } - } - if (extractValue) { - return value; - } - return input.slice(positionStart, position.position); - } - function serializeAMimeType(mimeType) { - assert(mimeType !== "failure"); - const { parameters, essence } = mimeType; - let serialization = essence; - for (let [name, value] of parameters.entries()) { - serialization += ";"; - serialization += name; - serialization += "="; - if (!HTTP_TOKEN_CODEPOINTS.test(value)) { - value = value.replace(/(\\|")/g, "\\$1"); - value = '"' + value; - value += '"'; - } - serialization += value; - } - return serialization; - } - function isHTTPWhiteSpace(char) { - return char === 13 || char === 10 || char === 9 || char === 32; - } - function removeHTTPWhitespace(str, leading = true, trailing = true) { - return removeChars(str, leading, trailing, isHTTPWhiteSpace); - } - function isASCIIWhitespace(char) { - return char === 13 || char === 10 || char === 9 || char === 12 || char === 32; - } - function removeASCIIWhitespace(str, leading = true, trailing = true) { - return removeChars(str, leading, trailing, isASCIIWhitespace); - } - function removeChars(str, leading, trailing, predicate) { - let lead = 0; - let trail = str.length - 1; - if (leading) { - while (lead < str.length && predicate(str.charCodeAt(lead))) lead++; - } - if (trailing) { - while (trail > 0 && predicate(str.charCodeAt(trail))) trail--; - } - return lead === 0 && trail === str.length - 1 ? str : str.slice(lead, trail + 1); - } - function isomorphicDecode(input) { - const length = input.length; - if ((2 << 15) - 1 > length) { - return String.fromCharCode.apply(null, input); - } - let result = ""; - let i = 0; - let addition = (2 << 15) - 1; - while (i < length) { - if (i + addition > length) { - addition = length - i; - } - result += String.fromCharCode.apply(null, input.subarray(i, i += addition)); - } - return result; - } - function minimizeSupportedMimeType(mimeType) { - switch (mimeType.essence) { - case "application/ecmascript": - case "application/javascript": - case "application/x-ecmascript": - case "application/x-javascript": - case "text/ecmascript": - case "text/javascript": - case "text/javascript1.0": - case "text/javascript1.1": - case "text/javascript1.2": - case "text/javascript1.3": - case "text/javascript1.4": - case "text/javascript1.5": - case "text/jscript": - case "text/livescript": - case "text/x-ecmascript": - case "text/x-javascript": - return "text/javascript"; - case "application/json": - case "text/json": - return "application/json"; - case "image/svg+xml": - return "image/svg+xml"; - case "text/xml": - case "application/xml": - return "application/xml"; - } - if (mimeType.subtype.endsWith("+json")) { - return "application/json"; - } - if (mimeType.subtype.endsWith("+xml")) { - return "application/xml"; - } - return ""; - } - module.exports = { - dataURLProcessor, - URLSerializer, - collectASequenceOfCodePoints, - collectASequenceOfCodePointsFast, - stringPercentDecode, - parseMIMEType, - collectAnHTTPQuotedString, - serializeAMimeType, - removeChars, - removeHTTPWhitespace, - minimizeSupportedMimeType, - HTTP_TOKEN_CODEPOINTS, - isomorphicDecode - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/webidl.js -var require_webidl = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/webidl.js"(exports, module) { - "use strict"; - var { types, inspect } = __require("node:util"); - var { markAsUncloneable } = __require("node:worker_threads"); - var { toUSVString } = require_util(); - var webidl = {}; - webidl.converters = {}; - webidl.util = {}; - webidl.errors = {}; - webidl.errors.exception = function(message) { - return new TypeError(`${message.header}: ${message.message}`); - }; - webidl.errors.conversionFailed = function(context) { - const plural = context.types.length === 1 ? "" : " one of"; - const message = `${context.argument} could not be converted to${plural}: ${context.types.join(", ")}.`; - return webidl.errors.exception({ - header: context.prefix, - message - }); - }; - webidl.errors.invalidArgument = function(context) { - return webidl.errors.exception({ - header: context.prefix, - message: `"${context.value}" is an invalid ${context.type}.` - }); - }; - webidl.brandCheck = function(V, I, opts) { - if (opts?.strict !== false) { - if (!(V instanceof I)) { - const err = new TypeError("Illegal invocation"); - err.code = "ERR_INVALID_THIS"; - throw err; - } - } else { - if (V?.[Symbol.toStringTag] !== I.prototype[Symbol.toStringTag]) { - const err = new TypeError("Illegal invocation"); - err.code = "ERR_INVALID_THIS"; - throw err; - } - } - }; - webidl.argumentLengthCheck = function({ length }, min, ctx) { - if (length < min) { - throw webidl.errors.exception({ - message: `${min} argument${min !== 1 ? "s" : ""} required, but${length ? " only" : ""} ${length} found.`, - header: ctx - }); - } - }; - webidl.illegalConstructor = function() { - throw webidl.errors.exception({ - header: "TypeError", - message: "Illegal constructor" - }); - }; - webidl.util.Type = function(V) { - switch (typeof V) { - case "undefined": - return "Undefined"; - case "boolean": - return "Boolean"; - case "string": - return "String"; - case "symbol": - return "Symbol"; - case "number": - return "Number"; - case "bigint": - return "BigInt"; - case "function": - case "object": { - if (V === null) { - return "Null"; - } - return "Object"; - } - } - }; - webidl.util.markAsUncloneable = markAsUncloneable || (() => { - }); - webidl.util.ConvertToInt = function(V, bitLength, signedness, opts) { - let upperBound; - let lowerBound; - if (bitLength === 64) { - upperBound = Math.pow(2, 53) - 1; - if (signedness === "unsigned") { - lowerBound = 0; - } else { - lowerBound = Math.pow(-2, 53) + 1; - } - } else if (signedness === "unsigned") { - lowerBound = 0; - upperBound = Math.pow(2, bitLength) - 1; - } else { - lowerBound = Math.pow(-2, bitLength) - 1; - upperBound = Math.pow(2, bitLength - 1) - 1; - } - let x = Number(V); - if (x === 0) { - x = 0; - } - if (opts?.enforceRange === true) { - if (Number.isNaN(x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { - throw webidl.errors.exception({ - header: "Integer conversion", - message: `Could not convert ${webidl.util.Stringify(V)} to an integer.` - }); - } - x = webidl.util.IntegerPart(x); - if (x < lowerBound || x > upperBound) { - throw webidl.errors.exception({ - header: "Integer conversion", - message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` - }); - } - return x; - } - if (!Number.isNaN(x) && opts?.clamp === true) { - x = Math.min(Math.max(x, lowerBound), upperBound); - if (Math.floor(x) % 2 === 0) { - x = Math.floor(x); - } else { - x = Math.ceil(x); - } - return x; - } - if (Number.isNaN(x) || x === 0 && Object.is(0, x) || x === Number.POSITIVE_INFINITY || x === Number.NEGATIVE_INFINITY) { - return 0; - } - x = webidl.util.IntegerPart(x); - x = x % Math.pow(2, bitLength); - if (signedness === "signed" && x >= Math.pow(2, bitLength) - 1) { - return x - Math.pow(2, bitLength); - } - return x; - }; - webidl.util.IntegerPart = function(n) { - const r = Math.floor(Math.abs(n)); - if (n < 0) { - return -1 * r; - } - return r; - }; - webidl.util.Stringify = function(V) { - const type = webidl.util.Type(V); - switch (type) { - case "Symbol": - return `Symbol(${V.description})`; - case "Object": - return inspect(V); - case "String": - return `"${V}"`; - default: - return `${V}`; - } - }; - webidl.sequenceConverter = function(converter) { - return (V, prefix, argument, Iterable) => { - if (webidl.util.Type(V) !== "Object") { - throw webidl.errors.exception({ - header: prefix, - message: `${argument} (${webidl.util.Stringify(V)}) is not iterable.` - }); - } - const method = typeof Iterable === "function" ? Iterable() : V?.[Symbol.iterator]?.(); - const seq = []; - let index = 0; - if (method === void 0 || typeof method.next !== "function") { - throw webidl.errors.exception({ - header: prefix, - message: `${argument} is not iterable.` - }); - } - while (true) { - const { done, value } = method.next(); - if (done) { - break; - } - seq.push(converter(value, prefix, `${argument}[${index++}]`)); - } - return seq; - }; - }; - webidl.recordConverter = function(keyConverter, valueConverter) { - return (O, prefix, argument) => { - if (webidl.util.Type(O) !== "Object") { - throw webidl.errors.exception({ - header: prefix, - message: `${argument} ("${webidl.util.Type(O)}") is not an Object.` - }); - } - const result = {}; - if (!types.isProxy(O)) { - const keys2 = [...Object.getOwnPropertyNames(O), ...Object.getOwnPropertySymbols(O)]; - for (const key of keys2) { - const typedKey = keyConverter(key, prefix, argument); - const typedValue = valueConverter(O[key], prefix, argument); - result[typedKey] = typedValue; - } - return result; - } - const keys = Reflect.ownKeys(O); - for (const key of keys) { - const desc = Reflect.getOwnPropertyDescriptor(O, key); - if (desc?.enumerable) { - const typedKey = keyConverter(key, prefix, argument); - const typedValue = valueConverter(O[key], prefix, argument); - result[typedKey] = typedValue; - } - } - return result; - }; - }; - webidl.interfaceConverter = function(i) { - return (V, prefix, argument, opts) => { - if (opts?.strict !== false && !(V instanceof i)) { - throw webidl.errors.exception({ - header: prefix, - message: `Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${i.name}.` - }); - } - return V; - }; - }; - webidl.dictionaryConverter = function(converters) { - return (dictionary, prefix, argument) => { - const type = webidl.util.Type(dictionary); - const dict = {}; - if (type === "Null" || type === "Undefined") { - return dict; - } else if (type !== "Object") { - throw webidl.errors.exception({ - header: prefix, - message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` - }); - } - for (const options of converters) { - const { key, defaultValue, required: required2, converter } = options; - if (required2 === true) { - if (!Object.hasOwn(dictionary, key)) { - throw webidl.errors.exception({ - header: prefix, - message: `Missing required key "${key}".` - }); - } - } - let value = dictionary[key]; - const hasDefault = Object.hasOwn(options, "defaultValue"); - if (hasDefault && value !== null) { - value ??= defaultValue(); - } - if (required2 || hasDefault || value !== void 0) { - value = converter(value, prefix, `${argument}.${key}`); - if (options.allowedValues && !options.allowedValues.includes(value)) { - throw webidl.errors.exception({ - header: prefix, - message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` - }); - } - dict[key] = value; - } - } - return dict; - }; - }; - webidl.nullableConverter = function(converter) { - return (V, prefix, argument) => { - if (V === null) { - return V; - } - return converter(V, prefix, argument); - }; - }; - webidl.converters.DOMString = function(V, prefix, argument, opts) { - if (V === null && opts?.legacyNullToEmptyString) { - return ""; - } - if (typeof V === "symbol") { - throw webidl.errors.exception({ - header: prefix, - message: `${argument} is a symbol, which cannot be converted to a DOMString.` - }); - } - return String(V); - }; - webidl.converters.ByteString = function(V, prefix, argument) { - const x = webidl.converters.DOMString(V, prefix, argument); - for (let index = 0; index < x.length; index++) { - if (x.charCodeAt(index) > 255) { - throw new TypeError( - `Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x.charCodeAt(index)} which is greater than 255.` - ); - } - } - return x; - }; - webidl.converters.USVString = toUSVString; - webidl.converters.boolean = function(V) { - const x = Boolean(V); - return x; - }; - webidl.converters.any = function(V) { - return V; - }; - webidl.converters["long long"] = function(V, prefix, argument) { - const x = webidl.util.ConvertToInt(V, 64, "signed", void 0, prefix, argument); - return x; - }; - webidl.converters["unsigned long long"] = function(V, prefix, argument) { - const x = webidl.util.ConvertToInt(V, 64, "unsigned", void 0, prefix, argument); - return x; - }; - webidl.converters["unsigned long"] = function(V, prefix, argument) { - const x = webidl.util.ConvertToInt(V, 32, "unsigned", void 0, prefix, argument); - return x; - }; - webidl.converters["unsigned short"] = function(V, prefix, argument, opts) { - const x = webidl.util.ConvertToInt(V, 16, "unsigned", opts, prefix, argument); - return x; - }; - webidl.converters.ArrayBuffer = function(V, prefix, argument, opts) { - if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) { - throw webidl.errors.conversionFailed({ - prefix, - argument: `${argument} ("${webidl.util.Stringify(V)}")`, - types: ["ArrayBuffer"] - }); - } - if (opts?.allowShared === false && types.isSharedArrayBuffer(V)) { - throw webidl.errors.exception({ - header: "ArrayBuffer", - message: "SharedArrayBuffer is not allowed." - }); - } - if (V.resizable || V.growable) { - throw webidl.errors.exception({ - header: "ArrayBuffer", - message: "Received a resizable ArrayBuffer." - }); - } - return V; - }; - webidl.converters.TypedArray = function(V, T, prefix, name, opts) { - if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) { - throw webidl.errors.conversionFailed({ - prefix, - argument: `${name} ("${webidl.util.Stringify(V)}")`, - types: [T.name] - }); - } - if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { - throw webidl.errors.exception({ - header: "ArrayBuffer", - message: "SharedArrayBuffer is not allowed." - }); - } - if (V.buffer.resizable || V.buffer.growable) { - throw webidl.errors.exception({ - header: "ArrayBuffer", - message: "Received a resizable ArrayBuffer." - }); - } - return V; - }; - webidl.converters.DataView = function(V, prefix, name, opts) { - if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) { - throw webidl.errors.exception({ - header: prefix, - message: `${name} is not a DataView.` - }); - } - if (opts?.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { - throw webidl.errors.exception({ - header: "ArrayBuffer", - message: "SharedArrayBuffer is not allowed." - }); - } - if (V.buffer.resizable || V.buffer.growable) { - throw webidl.errors.exception({ - header: "ArrayBuffer", - message: "Received a resizable ArrayBuffer." - }); - } - return V; - }; - webidl.converters.BufferSource = function(V, prefix, name, opts) { - if (types.isAnyArrayBuffer(V)) { - return webidl.converters.ArrayBuffer(V, prefix, name, { ...opts, allowShared: false }); - } - if (types.isTypedArray(V)) { - return webidl.converters.TypedArray(V, V.constructor, prefix, name, { ...opts, allowShared: false }); - } - if (types.isDataView(V)) { - return webidl.converters.DataView(V, prefix, name, { ...opts, allowShared: false }); - } - throw webidl.errors.conversionFailed({ - prefix, - argument: `${name} ("${webidl.util.Stringify(V)}")`, - types: ["BufferSource"] - }); - }; - webidl.converters["sequence"] = webidl.sequenceConverter( - webidl.converters.ByteString - ); - webidl.converters["sequence>"] = webidl.sequenceConverter( - webidl.converters["sequence"] - ); - webidl.converters["record"] = webidl.recordConverter( - webidl.converters.ByteString, - webidl.converters.ByteString - ); - module.exports = { - webidl - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/util.js -var require_util2 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/util.js"(exports, module) { - "use strict"; - var { Transform } = __require("node:stream"); - var zlib = __require("node:zlib"); - var { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants3(); - var { getGlobalOrigin } = require_global(); - var { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require_data_url(); - var { performance: performance2 } = __require("node:perf_hooks"); - var { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util(); - var assert = __require("node:assert"); - var { isUint8Array } = __require("node:util/types"); - var { webidl } = require_webidl(); - var supportedHashes = []; - var crypto2; - try { - crypto2 = __require("node:crypto"); - const possibleRelevantHashes = ["sha256", "sha384", "sha512"]; - supportedHashes = crypto2.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)); - } catch { - } - function responseURL(response) { - const urlList = response.urlList; - const length = urlList.length; - return length === 0 ? null : urlList[length - 1].toString(); - } - function responseLocationURL(response, requestFragment) { - if (!redirectStatusSet.has(response.status)) { - return null; - } - let location = response.headersList.get("location", true); - if (location !== null && isValidHeaderValue(location)) { - if (!isValidEncodedURL(location)) { - location = normalizeBinaryStringToUtf8(location); - } - location = new URL(location, responseURL(response)); - } - if (location && !location.hash) { - location.hash = requestFragment; - } - return location; - } - function isValidEncodedURL(url) { - for (let i = 0; i < url.length; ++i) { - const code = url.charCodeAt(i); - if (code > 126 || // Non-US-ASCII + DEL - code < 32) { - return false; - } - } - return true; - } - function normalizeBinaryStringToUtf8(value) { - return Buffer.from(value, "binary").toString("utf8"); - } - function requestCurrentURL(request) { - return request.urlList[request.urlList.length - 1]; - } - function requestBadPort(request) { - const url = requestCurrentURL(request); - if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { - return "blocked"; - } - return "allowed"; - } - function isErrorLike(object2) { - return object2 instanceof Error || (object2?.constructor?.name === "Error" || object2?.constructor?.name === "DOMException"); - } - function isValidReasonPhrase(statusText) { - for (let i = 0; i < statusText.length; ++i) { - const c = statusText.charCodeAt(i); - if (!(c === 9 || // HTAB - c >= 32 && c <= 126 || // SP / VCHAR - c >= 128 && c <= 255)) { - return false; - } - } - return true; - } - var isValidHeaderName = isValidHTTPToken; - function isValidHeaderValue(potentialValue) { - return (potentialValue[0] === " " || potentialValue[0] === " " || potentialValue[potentialValue.length - 1] === " " || potentialValue[potentialValue.length - 1] === " " || potentialValue.includes("\n") || potentialValue.includes("\r") || potentialValue.includes("\0")) === false; - } - function setRequestReferrerPolicyOnRedirect(request, actualResponse) { - const { headersList } = actualResponse; - const policyHeader = (headersList.get("referrer-policy", true) ?? "").split(","); - let policy = ""; - if (policyHeader.length > 0) { - for (let i = policyHeader.length; i !== 0; i--) { - const token = policyHeader[i - 1].trim(); - if (referrerPolicyTokens.has(token)) { - policy = token; - break; - } - } - } - if (policy !== "") { - request.referrerPolicy = policy; - } - } - function crossOriginResourcePolicyCheck() { - return "allowed"; - } - function corsCheck() { - return "success"; - } - function TAOCheck() { - return "success"; - } - function appendFetchMetadata(httpRequest2) { - let header = null; - header = httpRequest2.mode; - httpRequest2.headersList.set("sec-fetch-mode", header, true); - } - function appendRequestOriginHeader(request) { - let serializedOrigin = request.origin; - if (serializedOrigin === "client" || serializedOrigin === void 0) { - return; - } - if (request.responseTainting === "cors" || request.mode === "websocket") { - request.headersList.append("origin", serializedOrigin, true); - } else if (request.method !== "GET" && request.method !== "HEAD") { - switch (request.referrerPolicy) { - case "no-referrer": - serializedOrigin = null; - break; - case "no-referrer-when-downgrade": - case "strict-origin": - case "strict-origin-when-cross-origin": - if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { - serializedOrigin = null; - } - break; - case "same-origin": - if (!sameOrigin(request, requestCurrentURL(request))) { - serializedOrigin = null; - } - break; - default: - } - request.headersList.append("origin", serializedOrigin, true); - } - } - function coarsenTime(timestamp, crossOriginIsolatedCapability) { - return timestamp; - } - function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo, defaultStartTime, crossOriginIsolatedCapability) { - if (!connectionTimingInfo?.startTime || connectionTimingInfo.startTime < defaultStartTime) { - return { - domainLookupStartTime: defaultStartTime, - domainLookupEndTime: defaultStartTime, - connectionStartTime: defaultStartTime, - connectionEndTime: defaultStartTime, - secureConnectionStartTime: defaultStartTime, - ALPNNegotiatedProtocol: connectionTimingInfo?.ALPNNegotiatedProtocol - }; - } - return { - domainLookupStartTime: coarsenTime(connectionTimingInfo.domainLookupStartTime, crossOriginIsolatedCapability), - domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime, crossOriginIsolatedCapability), - connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime, crossOriginIsolatedCapability), - connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime, crossOriginIsolatedCapability), - secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime, crossOriginIsolatedCapability), - ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol - }; - } - function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { - return coarsenTime(performance2.now(), crossOriginIsolatedCapability); - } - function createOpaqueTimingInfo(timingInfo) { - return { - startTime: timingInfo.startTime ?? 0, - redirectStartTime: 0, - redirectEndTime: 0, - postRedirectStartTime: timingInfo.startTime ?? 0, - finalServiceWorkerStartTime: 0, - finalNetworkResponseStartTime: 0, - finalNetworkRequestStartTime: 0, - endTime: 0, - encodedBodySize: 0, - decodedBodySize: 0, - finalConnectionTimingInfo: null - }; - } - function makePolicyContainer() { - return { - referrerPolicy: "strict-origin-when-cross-origin" - }; - } - function clonePolicyContainer(policyContainer) { - return { - referrerPolicy: policyContainer.referrerPolicy - }; - } - function determineRequestsReferrer(request) { - const policy = request.referrerPolicy; - assert(policy); - let referrerSource = null; - if (request.referrer === "client") { - const globalOrigin = getGlobalOrigin(); - if (!globalOrigin || globalOrigin.origin === "null") { - return "no-referrer"; - } - referrerSource = new URL(globalOrigin); - } else if (request.referrer instanceof URL) { - referrerSource = request.referrer; - } - let referrerURL = stripURLForReferrer(referrerSource); - const referrerOrigin = stripURLForReferrer(referrerSource, true); - if (referrerURL.toString().length > 4096) { - referrerURL = referrerOrigin; - } - const areSameOrigin = sameOrigin(request, referrerURL); - const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(request.url); - switch (policy) { - case "origin": - return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true); - case "unsafe-url": - return referrerURL; - case "same-origin": - return areSameOrigin ? referrerOrigin : "no-referrer"; - case "origin-when-cross-origin": - return areSameOrigin ? referrerURL : referrerOrigin; - case "strict-origin-when-cross-origin": { - const currentURL = requestCurrentURL(request); - if (sameOrigin(referrerURL, currentURL)) { - return referrerURL; - } - if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { - return "no-referrer"; - } - return referrerOrigin; - } - case "strict-origin": - // eslint-disable-line - /** - * 1. If referrerURL is a potentially trustworthy URL and - * request’s current URL is not a potentially trustworthy URL, - * then return no referrer. - * 2. Return referrerOrigin - */ - case "no-referrer-when-downgrade": - // eslint-disable-line - /** - * 1. If referrerURL is a potentially trustworthy URL and - * request’s current URL is not a potentially trustworthy URL, - * then return no referrer. - * 2. Return referrerOrigin - */ - default: - return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; - } - } - function stripURLForReferrer(url, originOnly) { - assert(url instanceof URL); - url = new URL(url); - if (url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:") { - return "no-referrer"; - } - url.username = ""; - url.password = ""; - url.hash = ""; - if (originOnly) { - url.pathname = ""; - url.search = ""; - } - return url; - } - function isURLPotentiallyTrustworthy(url) { - if (!(url instanceof URL)) { - return false; - } - if (url.href === "about:blank" || url.href === "about:srcdoc") { - return true; - } - if (url.protocol === "data:") return true; - if (url.protocol === "file:") return true; - return isOriginPotentiallyTrustworthy(url.origin); - function isOriginPotentiallyTrustworthy(origin) { - if (origin == null || origin === "null") return false; - const originAsURL = new URL(origin); - if (originAsURL.protocol === "https:" || originAsURL.protocol === "wss:") { - return true; - } - if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || (originAsURL.hostname === "localhost" || originAsURL.hostname.includes("localhost.")) || originAsURL.hostname.endsWith(".localhost")) { - return true; - } - return false; - } - } - function bytesMatch(bytes, metadataList) { - if (crypto2 === void 0) { - return true; - } - const parsedMetadata = parseMetadata(metadataList); - if (parsedMetadata === "no metadata") { - return true; - } - if (parsedMetadata.length === 0) { - return true; - } - const strongest = getStrongestMetadata(parsedMetadata); - const metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); - for (const item of metadata) { - const algorithm = item.algo; - const expectedValue = item.hash; - let actualValue = crypto2.createHash(algorithm).update(bytes).digest("base64"); - if (actualValue[actualValue.length - 1] === "=") { - if (actualValue[actualValue.length - 2] === "=") { - actualValue = actualValue.slice(0, -2); - } else { - actualValue = actualValue.slice(0, -1); - } - } - if (compareBase64Mixed(actualValue, expectedValue)) { - return true; - } - } - return false; - } - var parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; - function parseMetadata(metadata) { - const result = []; - let empty = true; - for (const token of metadata.split(" ")) { - empty = false; - const parsedToken = parseHashWithOptions.exec(token); - if (parsedToken === null || parsedToken.groups === void 0 || parsedToken.groups.algo === void 0) { - continue; - } - const algorithm = parsedToken.groups.algo.toLowerCase(); - if (supportedHashes.includes(algorithm)) { - result.push(parsedToken.groups); - } - } - if (empty === true) { - return "no metadata"; - } - return result; - } - function getStrongestMetadata(metadataList) { - let algorithm = metadataList[0].algo; - if (algorithm[3] === "5") { - return algorithm; - } - for (let i = 1; i < metadataList.length; ++i) { - const metadata = metadataList[i]; - if (metadata.algo[3] === "5") { - algorithm = "sha512"; - break; - } else if (algorithm[3] === "3") { - continue; - } else if (metadata.algo[3] === "3") { - algorithm = "sha384"; - } - } - return algorithm; - } - function filterMetadataListByAlgorithm(metadataList, algorithm) { - if (metadataList.length === 1) { - return metadataList; - } - let pos = 0; - for (let i = 0; i < metadataList.length; ++i) { - if (metadataList[i].algo === algorithm) { - metadataList[pos++] = metadataList[i]; - } - } - metadataList.length = pos; - return metadataList; - } - function compareBase64Mixed(actualValue, expectedValue) { - if (actualValue.length !== expectedValue.length) { - return false; - } - for (let i = 0; i < actualValue.length; ++i) { - if (actualValue[i] !== expectedValue[i]) { - if (actualValue[i] === "+" && expectedValue[i] === "-" || actualValue[i] === "/" && expectedValue[i] === "_") { - continue; - } - return false; - } - } - return true; - } - function tryUpgradeRequestToAPotentiallyTrustworthyURL(request) { - } - function sameOrigin(A, B) { - if (A.origin === B.origin && A.origin === "null") { - return true; - } - if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { - return true; - } - return false; - } - function createDeferredPromise() { - let res; - let rej; - const promise = new Promise((resolve, reject) => { - res = resolve; - rej = reject; - }); - return { promise, resolve: res, reject: rej }; - } - function isAborted(fetchParams) { - return fetchParams.controller.state === "aborted"; - } - function isCancelled(fetchParams) { - return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; - } - function normalizeMethod(method) { - return normalizedMethodRecordsBase[method.toLowerCase()] ?? method; - } - function serializeJavascriptValueToJSONString(value) { - const result = JSON.stringify(value); - if (result === void 0) { - throw new TypeError("Value is not JSON serializable"); - } - assert(typeof result === "string"); - return result; - } - var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); - function createIterator(name, kInternalIterator, keyIndex = 0, valueIndex = 1) { - class FastIterableIterator { - /** @type {any} */ - #target; - /** @type {'key' | 'value' | 'key+value'} */ - #kind; - /** @type {number} */ - #index; - /** - * @see https://webidl.spec.whatwg.org/#dfn-default-iterator-object - * @param {unknown} target - * @param {'key' | 'value' | 'key+value'} kind - */ - constructor(target, kind) { - this.#target = target; - this.#kind = kind; - this.#index = 0; - } - next() { - if (typeof this !== "object" || this === null || !(#target in this)) { - throw new TypeError( - `'next' called on an object that does not implement interface ${name} Iterator.` - ); - } - const index = this.#index; - const values = this.#target[kInternalIterator]; - const len = values.length; - if (index >= len) { - return { - value: void 0, - done: true - }; - } - const { [keyIndex]: key, [valueIndex]: value } = values[index]; - this.#index = index + 1; - let result; - switch (this.#kind) { - case "key": - result = key; - break; - case "value": - result = value; - break; - case "key+value": - result = [key, value]; - break; - } - return { - value: result, - done: false - }; - } - } - delete FastIterableIterator.prototype.constructor; - Object.setPrototypeOf(FastIterableIterator.prototype, esIteratorPrototype); - Object.defineProperties(FastIterableIterator.prototype, { - [Symbol.toStringTag]: { - writable: false, - enumerable: false, - configurable: true, - value: `${name} Iterator` - }, - next: { writable: true, enumerable: true, configurable: true } - }); - return function(target, kind) { - return new FastIterableIterator(target, kind); - }; - } - function iteratorMixin(name, object2, kInternalIterator, keyIndex = 0, valueIndex = 1) { - const makeIterator = createIterator(name, kInternalIterator, keyIndex, valueIndex); - const properties = { - keys: { - writable: true, - enumerable: true, - configurable: true, - value: function keys() { - webidl.brandCheck(this, object2); - return makeIterator(this, "key"); - } - }, - values: { - writable: true, - enumerable: true, - configurable: true, - value: function values() { - webidl.brandCheck(this, object2); - return makeIterator(this, "value"); - } - }, - entries: { - writable: true, - enumerable: true, - configurable: true, - value: function entries() { - webidl.brandCheck(this, object2); - return makeIterator(this, "key+value"); - } - }, - forEach: { - writable: true, - enumerable: true, - configurable: true, - value: function forEach(callbackfn, thisArg = globalThis) { - webidl.brandCheck(this, object2); - webidl.argumentLengthCheck(arguments, 1, `${name}.forEach`); - if (typeof callbackfn !== "function") { - throw new TypeError( - `Failed to execute 'forEach' on '${name}': parameter 1 is not of type 'Function'.` - ); - } - for (const { 0: key, 1: value } of makeIterator(this, "key+value")) { - callbackfn.call(thisArg, value, key, this); - } - } - } - }; - return Object.defineProperties(object2.prototype, { - ...properties, - [Symbol.iterator]: { - writable: true, - enumerable: false, - configurable: true, - value: properties.entries.value - } - }); - } - async function fullyReadBody(body, processBody, processBodyError) { - const successSteps = processBody; - const errorSteps = processBodyError; - let reader; - try { - reader = body.stream.getReader(); - } catch (e) { - errorSteps(e); - return; - } - try { - successSteps(await readAllBytes(reader)); - } catch (e) { - errorSteps(e); - } - } - function isReadableStreamLike(stream) { - return stream instanceof ReadableStream || stream[Symbol.toStringTag] === "ReadableStream" && typeof stream.tee === "function"; - } - function readableStreamClose(controller) { - try { - controller.close(); - controller.byobRequest?.respond(0); - } catch (err) { - if (!err.message.includes("Controller is already closed") && !err.message.includes("ReadableStream is already closed")) { - throw err; - } - } - } - var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/; - function isomorphicEncode(input) { - assert(!invalidIsomorphicEncodeValueRegex.test(input)); - return input; - } - async function readAllBytes(reader) { - const bytes = []; - let byteLength = 0; - while (true) { - const { done, value: chunk } = await reader.read(); - if (done) { - return Buffer.concat(bytes, byteLength); - } - if (!isUint8Array(chunk)) { - throw new TypeError("Received non-Uint8Array chunk"); - } - bytes.push(chunk); - byteLength += chunk.length; - } - } - function urlIsLocal(url) { - assert("protocol" in url); - const protocol = url.protocol; - return protocol === "about:" || protocol === "blob:" || protocol === "data:"; - } - function urlHasHttpsScheme(url) { - return typeof url === "string" && url[5] === ":" && url[0] === "h" && url[1] === "t" && url[2] === "t" && url[3] === "p" && url[4] === "s" || url.protocol === "https:"; - } - function urlIsHttpHttpsScheme(url) { - assert("protocol" in url); - const protocol = url.protocol; - return protocol === "http:" || protocol === "https:"; - } - function simpleRangeHeaderValue(value, allowWhitespace) { - const data = value; - if (!data.startsWith("bytes")) { - return "failure"; - } - const position = { position: 5 }; - if (allowWhitespace) { - collectASequenceOfCodePoints( - (char) => char === " " || char === " ", - data, - position - ); - } - if (data.charCodeAt(position.position) !== 61) { - return "failure"; - } - position.position++; - if (allowWhitespace) { - collectASequenceOfCodePoints( - (char) => char === " " || char === " ", - data, - position - ); - } - const rangeStart = collectASequenceOfCodePoints( - (char) => { - const code = char.charCodeAt(0); - return code >= 48 && code <= 57; - }, - data, - position - ); - const rangeStartValue = rangeStart.length ? Number(rangeStart) : null; - if (allowWhitespace) { - collectASequenceOfCodePoints( - (char) => char === " " || char === " ", - data, - position - ); - } - if (data.charCodeAt(position.position) !== 45) { - return "failure"; - } - position.position++; - if (allowWhitespace) { - collectASequenceOfCodePoints( - (char) => char === " " || char === " ", - data, - position - ); - } - const rangeEnd = collectASequenceOfCodePoints( - (char) => { - const code = char.charCodeAt(0); - return code >= 48 && code <= 57; - }, - data, - position - ); - const rangeEndValue = rangeEnd.length ? Number(rangeEnd) : null; - if (position.position < data.length) { - return "failure"; - } - if (rangeEndValue === null && rangeStartValue === null) { - return "failure"; - } - if (rangeStartValue > rangeEndValue) { - return "failure"; - } - return { rangeStartValue, rangeEndValue }; - } - function buildContentRange(rangeStart, rangeEnd, fullLength) { - let contentRange = "bytes "; - contentRange += isomorphicEncode(`${rangeStart}`); - contentRange += "-"; - contentRange += isomorphicEncode(`${rangeEnd}`); - contentRange += "/"; - contentRange += isomorphicEncode(`${fullLength}`); - return contentRange; - } - var InflateStream = class extends Transform { - #zlibOptions; - /** @param {zlib.ZlibOptions} [zlibOptions] */ - constructor(zlibOptions) { - super(); - this.#zlibOptions = zlibOptions; - } - _transform(chunk, encoding, callback) { - if (!this._inflateStream) { - if (chunk.length === 0) { - callback(); - return; - } - this._inflateStream = (chunk[0] & 15) === 8 ? zlib.createInflate(this.#zlibOptions) : zlib.createInflateRaw(this.#zlibOptions); - this._inflateStream.on("data", this.push.bind(this)); - this._inflateStream.on("end", () => this.push(null)); - this._inflateStream.on("error", (err) => this.destroy(err)); - } - this._inflateStream.write(chunk, encoding, callback); - } - _final(callback) { - if (this._inflateStream) { - this._inflateStream.end(); - this._inflateStream = null; - } - callback(); - } - }; - function createInflate(zlibOptions) { - return new InflateStream(zlibOptions); - } - function extractMimeType(headers) { - let charset = null; - let essence = null; - let mimeType = null; - const values = getDecodeSplit("content-type", headers); - if (values === null) { - return "failure"; - } - for (const value of values) { - const temporaryMimeType = parseMIMEType(value); - if (temporaryMimeType === "failure" || temporaryMimeType.essence === "*/*") { - continue; - } - mimeType = temporaryMimeType; - if (mimeType.essence !== essence) { - charset = null; - if (mimeType.parameters.has("charset")) { - charset = mimeType.parameters.get("charset"); - } - essence = mimeType.essence; - } else if (!mimeType.parameters.has("charset") && charset !== null) { - mimeType.parameters.set("charset", charset); - } - } - if (mimeType == null) { - return "failure"; - } - return mimeType; - } - function gettingDecodingSplitting(value) { - const input = value; - const position = { position: 0 }; - const values = []; - let temporaryValue = ""; - while (position.position < input.length) { - temporaryValue += collectASequenceOfCodePoints( - (char) => char !== '"' && char !== ",", - input, - position - ); - if (position.position < input.length) { - if (input.charCodeAt(position.position) === 34) { - temporaryValue += collectAnHTTPQuotedString( - input, - position - ); - if (position.position < input.length) { - continue; - } - } else { - assert(input.charCodeAt(position.position) === 44); - position.position++; - } - } - temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 9 || char === 32); - values.push(temporaryValue); - temporaryValue = ""; - } - return values; - } - function getDecodeSplit(name, list) { - const value = list.get(name, true); - if (value === null) { - return null; - } - return gettingDecodingSplitting(value); - } - var textDecoder = new TextDecoder(); - function utf8DecodeBytes(buffer) { - if (buffer.length === 0) { - return ""; - } - if (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) { - buffer = buffer.subarray(3); - } - const output = textDecoder.decode(buffer); - return output; - } - var EnvironmentSettingsObjectBase = class { - get baseUrl() { - return getGlobalOrigin(); - } - get origin() { - return this.baseUrl?.origin; - } - policyContainer = makePolicyContainer(); - }; - var EnvironmentSettingsObject = class { - settingsObject = new EnvironmentSettingsObjectBase(); - }; - var environmentSettingsObject = new EnvironmentSettingsObject(); - module.exports = { - isAborted, - isCancelled, - isValidEncodedURL, - createDeferredPromise, - ReadableStreamFrom, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - clampAndCoarsenConnectionTimingInfo, - coarsenedSharedCurrentTime, - determineRequestsReferrer, - makePolicyContainer, - clonePolicyContainer, - appendFetchMetadata, - appendRequestOriginHeader, - TAOCheck, - corsCheck, - crossOriginResourcePolicyCheck, - createOpaqueTimingInfo, - setRequestReferrerPolicyOnRedirect, - isValidHTTPToken, - requestBadPort, - requestCurrentURL, - responseURL, - responseLocationURL, - isBlobLike, - isURLPotentiallyTrustworthy, - isValidReasonPhrase, - sameOrigin, - normalizeMethod, - serializeJavascriptValueToJSONString, - iteratorMixin, - createIterator, - isValidHeaderName, - isValidHeaderValue, - isErrorLike, - fullyReadBody, - bytesMatch, - isReadableStreamLike, - readableStreamClose, - isomorphicEncode, - urlIsLocal, - urlHasHttpsScheme, - urlIsHttpHttpsScheme, - readAllBytes, - simpleRangeHeaderValue, - buildContentRange, - parseMetadata, - createInflate, - extractMimeType, - getDecodeSplit, - utf8DecodeBytes, - environmentSettingsObject - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/symbols.js -var require_symbols2 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/symbols.js"(exports, module) { - "use strict"; - module.exports = { - kUrl: /* @__PURE__ */ Symbol("url"), - kHeaders: /* @__PURE__ */ Symbol("headers"), - kSignal: /* @__PURE__ */ Symbol("signal"), - kState: /* @__PURE__ */ Symbol("state"), - kDispatcher: /* @__PURE__ */ Symbol("dispatcher") - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/file.js -var require_file = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/file.js"(exports, module) { - "use strict"; - var { Blob: Blob2, File: File2 } = __require("node:buffer"); - var { kState } = require_symbols2(); - var { webidl } = require_webidl(); - var FileLike = class _FileLike { - constructor(blobLike, fileName, options = {}) { - const n = fileName; - const t = options.type; - const d = options.lastModified ?? Date.now(); - this[kState] = { - blobLike, - name: n, - type: t, - lastModified: d - }; - } - stream(...args) { - webidl.brandCheck(this, _FileLike); - return this[kState].blobLike.stream(...args); - } - arrayBuffer(...args) { - webidl.brandCheck(this, _FileLike); - return this[kState].blobLike.arrayBuffer(...args); - } - slice(...args) { - webidl.brandCheck(this, _FileLike); - return this[kState].blobLike.slice(...args); - } - text(...args) { - webidl.brandCheck(this, _FileLike); - return this[kState].blobLike.text(...args); - } - get size() { - webidl.brandCheck(this, _FileLike); - return this[kState].blobLike.size; - } - get type() { - webidl.brandCheck(this, _FileLike); - return this[kState].blobLike.type; - } - get name() { - webidl.brandCheck(this, _FileLike); - return this[kState].name; - } - get lastModified() { - webidl.brandCheck(this, _FileLike); - return this[kState].lastModified; - } - get [Symbol.toStringTag]() { - return "File"; - } - }; - webidl.converters.Blob = webidl.interfaceConverter(Blob2); - function isFileLike(object2) { - return object2 instanceof File2 || object2 && (typeof object2.stream === "function" || typeof object2.arrayBuffer === "function") && object2[Symbol.toStringTag] === "File"; - } - module.exports = { FileLike, isFileLike }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/formdata.js -var require_formdata = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/formdata.js"(exports, module) { - "use strict"; - var { isBlobLike, iteratorMixin } = require_util2(); - var { kState } = require_symbols2(); - var { kEnumerableProperty } = require_util(); - var { FileLike, isFileLike } = require_file(); - var { webidl } = require_webidl(); - var { File: NativeFile } = __require("node:buffer"); - var nodeUtil = __require("node:util"); - var File2 = globalThis.File ?? NativeFile; - var FormData = class _FormData { - constructor(form) { - webidl.util.markAsUncloneable(this); - if (form !== void 0) { - throw webidl.errors.conversionFailed({ - prefix: "FormData constructor", - argument: "Argument 1", - types: ["undefined"] - }); - } - this[kState] = []; - } - append(name, value, filename = void 0) { - webidl.brandCheck(this, _FormData); - const prefix = "FormData.append"; - webidl.argumentLengthCheck(arguments, 2, prefix); - if (arguments.length === 3 && !isBlobLike(value)) { - throw new TypeError( - "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" - ); - } - name = webidl.converters.USVString(name, prefix, "name"); - value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "value", { strict: false }) : webidl.converters.USVString(value, prefix, "value"); - filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "filename") : void 0; - const entry = makeEntry(name, value, filename); - this[kState].push(entry); - } - delete(name) { - webidl.brandCheck(this, _FormData); - const prefix = "FormData.delete"; - webidl.argumentLengthCheck(arguments, 1, prefix); - name = webidl.converters.USVString(name, prefix, "name"); - this[kState] = this[kState].filter((entry) => entry.name !== name); - } - get(name) { - webidl.brandCheck(this, _FormData); - const prefix = "FormData.get"; - webidl.argumentLengthCheck(arguments, 1, prefix); - name = webidl.converters.USVString(name, prefix, "name"); - const idx = this[kState].findIndex((entry) => entry.name === name); - if (idx === -1) { - return null; - } - return this[kState][idx].value; - } - getAll(name) { - webidl.brandCheck(this, _FormData); - const prefix = "FormData.getAll"; - webidl.argumentLengthCheck(arguments, 1, prefix); - name = webidl.converters.USVString(name, prefix, "name"); - return this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); - } - has(name) { - webidl.brandCheck(this, _FormData); - const prefix = "FormData.has"; - webidl.argumentLengthCheck(arguments, 1, prefix); - name = webidl.converters.USVString(name, prefix, "name"); - return this[kState].findIndex((entry) => entry.name === name) !== -1; - } - set(name, value, filename = void 0) { - webidl.brandCheck(this, _FormData); - const prefix = "FormData.set"; - webidl.argumentLengthCheck(arguments, 2, prefix); - if (arguments.length === 3 && !isBlobLike(value)) { - throw new TypeError( - "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" - ); - } - name = webidl.converters.USVString(name, prefix, "name"); - value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "name", { strict: false }) : webidl.converters.USVString(value, prefix, "name"); - filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "name") : void 0; - const entry = makeEntry(name, value, filename); - const idx = this[kState].findIndex((entry2) => entry2.name === name); - if (idx !== -1) { - this[kState] = [ - ...this[kState].slice(0, idx), - entry, - ...this[kState].slice(idx + 1).filter((entry2) => entry2.name !== name) - ]; - } else { - this[kState].push(entry); - } - } - [nodeUtil.inspect.custom](depth, options) { - const state = this[kState].reduce((a, b) => { - if (a[b.name]) { - if (Array.isArray(a[b.name])) { - a[b.name].push(b.value); - } else { - a[b.name] = [a[b.name], b.value]; - } - } else { - a[b.name] = b.value; - } - return a; - }, { __proto__: null }); - options.depth ??= depth; - options.colors ??= true; - const output = nodeUtil.formatWithOptions(options, state); - return `FormData ${output.slice(output.indexOf("]") + 2)}`; - } - }; - iteratorMixin("FormData", FormData, kState, "name", "value"); - Object.defineProperties(FormData.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - getAll: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - [Symbol.toStringTag]: { - value: "FormData", - configurable: true - } - }); - function makeEntry(name, value, filename) { - if (typeof value === "string") { - } else { - if (!isFileLike(value)) { - value = value instanceof Blob ? new File2([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type }); - } - if (filename !== void 0) { - const options = { - type: value.type, - lastModified: value.lastModified - }; - value = value instanceof NativeFile ? new File2([value], filename, options) : new FileLike(value, filename, options); - } - } - return { name, value }; - } - module.exports = { FormData, makeEntry }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/formdata-parser.js -var require_formdata_parser = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports, module) { - "use strict"; - var { isUSVString, bufferToLowerCasedHeaderName } = require_util(); - var { utf8DecodeBytes } = require_util2(); - var { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = require_data_url(); - var { isFileLike } = require_file(); - var { makeEntry } = require_formdata(); - var assert = __require("node:assert"); - var { File: NodeFile } = __require("node:buffer"); - var File2 = globalThis.File ?? NodeFile; - var formDataNameBuffer = Buffer.from('form-data; name="'); - var filenameBuffer = Buffer.from("; filename"); - var dd = Buffer.from("--"); - var ddcrlf = Buffer.from("--\r\n"); - function isAsciiString(chars) { - for (let i = 0; i < chars.length; ++i) { - if ((chars.charCodeAt(i) & ~127) !== 0) { - return false; - } - } - return true; - } - function validateBoundary(boundary) { - const length = boundary.length; - if (length < 27 || length > 70) { - return false; - } - for (let i = 0; i < length; ++i) { - const cp = boundary.charCodeAt(i); - if (!(cp >= 48 && cp <= 57 || cp >= 65 && cp <= 90 || cp >= 97 && cp <= 122 || cp === 39 || cp === 45 || cp === 95)) { - return false; - } - } - return true; - } - function multipartFormDataParser(input, mimeType) { - assert(mimeType !== "failure" && mimeType.essence === "multipart/form-data"); - const boundaryString = mimeType.parameters.get("boundary"); - if (boundaryString === void 0) { - return "failure"; - } - const boundary = Buffer.from(`--${boundaryString}`, "utf8"); - const entryList = []; - const position = { position: 0 }; - while (input[position.position] === 13 && input[position.position + 1] === 10) { - position.position += 2; - } - let trailing = input.length; - while (input[trailing - 1] === 10 && input[trailing - 2] === 13) { - trailing -= 2; - } - if (trailing !== input.length) { - input = input.subarray(0, trailing); - } - while (true) { - if (input.subarray(position.position, position.position + boundary.length).equals(boundary)) { - position.position += boundary.length; - } else { - return "failure"; - } - if (position.position === input.length - 2 && bufferStartsWith(input, dd, position) || position.position === input.length - 4 && bufferStartsWith(input, ddcrlf, position)) { - return entryList; - } - if (input[position.position] !== 13 || input[position.position + 1] !== 10) { - return "failure"; - } - position.position += 2; - const result = parseMultipartFormDataHeaders(input, position); - if (result === "failure") { - return "failure"; - } - let { name, filename, contentType, encoding } = result; - position.position += 2; - let body; - { - const boundaryIndex = input.indexOf(boundary.subarray(2), position.position); - if (boundaryIndex === -1) { - return "failure"; - } - body = input.subarray(position.position, boundaryIndex - 4); - position.position += body.length; - if (encoding === "base64") { - body = Buffer.from(body.toString(), "base64"); - } - } - if (input[position.position] !== 13 || input[position.position + 1] !== 10) { - return "failure"; - } else { - position.position += 2; - } - let value; - if (filename !== null) { - contentType ??= "text/plain"; - if (!isAsciiString(contentType)) { - contentType = ""; - } - value = new File2([body], filename, { type: contentType }); - } else { - value = utf8DecodeBytes(Buffer.from(body)); - } - assert(isUSVString(name)); - assert(typeof value === "string" && isUSVString(value) || isFileLike(value)); - entryList.push(makeEntry(name, value, filename)); - } - } - function parseMultipartFormDataHeaders(input, position) { - let name = null; - let filename = null; - let contentType = null; - let encoding = null; - while (true) { - if (input[position.position] === 13 && input[position.position + 1] === 10) { - if (name === null) { - return "failure"; - } - return { name, filename, contentType, encoding }; - } - let headerName = collectASequenceOfBytes( - (char) => char !== 10 && char !== 13 && char !== 58, - input, - position - ); - headerName = removeChars(headerName, true, true, (char) => char === 9 || char === 32); - if (!HTTP_TOKEN_CODEPOINTS.test(headerName.toString())) { - return "failure"; - } - if (input[position.position] !== 58) { - return "failure"; - } - position.position++; - collectASequenceOfBytes( - (char) => char === 32 || char === 9, - input, - position - ); - switch (bufferToLowerCasedHeaderName(headerName)) { - case "content-disposition": { - name = filename = null; - if (!bufferStartsWith(input, formDataNameBuffer, position)) { - return "failure"; - } - position.position += 17; - name = parseMultipartFormDataName(input, position); - if (name === null) { - return "failure"; - } - if (bufferStartsWith(input, filenameBuffer, position)) { - let check = position.position + filenameBuffer.length; - if (input[check] === 42) { - position.position += 1; - check += 1; - } - if (input[check] !== 61 || input[check + 1] !== 34) { - return "failure"; - } - position.position += 12; - filename = parseMultipartFormDataName(input, position); - if (filename === null) { - return "failure"; - } - } - break; - } - case "content-type": { - let headerValue = collectASequenceOfBytes( - (char) => char !== 10 && char !== 13, - input, - position - ); - headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32); - contentType = isomorphicDecode(headerValue); - break; - } - case "content-transfer-encoding": { - let headerValue = collectASequenceOfBytes( - (char) => char !== 10 && char !== 13, - input, - position - ); - headerValue = removeChars(headerValue, false, true, (char) => char === 9 || char === 32); - encoding = isomorphicDecode(headerValue); - break; - } - default: { - collectASequenceOfBytes( - (char) => char !== 10 && char !== 13, - input, - position - ); - } - } - if (input[position.position] !== 13 && input[position.position + 1] !== 10) { - return "failure"; - } else { - position.position += 2; - } - } - } - function parseMultipartFormDataName(input, position) { - assert(input[position.position - 1] === 34); - let name = collectASequenceOfBytes( - (char) => char !== 10 && char !== 13 && char !== 34, - input, - position - ); - if (input[position.position] !== 34) { - return null; - } else { - position.position++; - } - name = new TextDecoder().decode(name).replace(/%0A/ig, "\n").replace(/%0D/ig, "\r").replace(/%22/g, '"'); - return name; - } - function collectASequenceOfBytes(condition, input, position) { - let start = position.position; - while (start < input.length && condition(input[start])) { - ++start; - } - return input.subarray(position.position, position.position = start); - } - function removeChars(buf, leading, trailing, predicate) { - let lead = 0; - let trail = buf.length - 1; - if (leading) { - while (lead < buf.length && predicate(buf[lead])) lead++; - } - if (trailing) { - while (trail > 0 && predicate(buf[trail])) trail--; - } - return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1); - } - function bufferStartsWith(buffer, start, position) { - if (buffer.length < start.length) { - return false; - } - for (let i = 0; i < start.length; i++) { - if (start[i] !== buffer[position.position + i]) { - return false; - } - } - return true; - } - module.exports = { - multipartFormDataParser, - validateBoundary - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/body.js -var require_body = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/body.js"(exports, module) { - "use strict"; - var util = require_util(); - var { - ReadableStreamFrom, - isBlobLike, - isReadableStreamLike, - readableStreamClose, - createDeferredPromise, - fullyReadBody, - extractMimeType, - utf8DecodeBytes - } = require_util2(); - var { FormData } = require_formdata(); - var { kState } = require_symbols2(); - var { webidl } = require_webidl(); - var { Blob: Blob2 } = __require("node:buffer"); - var assert = __require("node:assert"); - var { isErrored, isDisturbed } = __require("node:stream"); - var { isArrayBuffer } = __require("node:util/types"); - var { serializeAMimeType } = require_data_url(); - var { multipartFormDataParser } = require_formdata_parser(); - var random; - try { - const crypto2 = __require("node:crypto"); - random = (max) => crypto2.randomInt(0, max); - } catch { - random = (max) => Math.floor(Math.random(max)); - } - var textEncoder = new TextEncoder(); - function noop() { - } - var hasFinalizationRegistry = globalThis.FinalizationRegistry && process.version.indexOf("v18") !== 0; - var streamRegistry; - if (hasFinalizationRegistry) { - streamRegistry = new FinalizationRegistry((weakRef) => { - const stream = weakRef.deref(); - if (stream && !stream.locked && !isDisturbed(stream) && !isErrored(stream)) { - stream.cancel("Response object has been garbage collected").catch(noop); - } - }); - } - function extractBody(object2, keepalive = false) { - let stream = null; - if (object2 instanceof ReadableStream) { - stream = object2; - } else if (isBlobLike(object2)) { - stream = object2.stream(); - } else { - stream = new ReadableStream({ - async pull(controller) { - const buffer = typeof source === "string" ? textEncoder.encode(source) : source; - if (buffer.byteLength) { - controller.enqueue(buffer); - } - queueMicrotask(() => readableStreamClose(controller)); - }, - start() { - }, - type: "bytes" - }); - } - assert(isReadableStreamLike(stream)); - let action = null; - let source = null; - let length = null; - let type = null; - if (typeof object2 === "string") { - source = object2; - type = "text/plain;charset=UTF-8"; - } else if (object2 instanceof URLSearchParams) { - source = object2.toString(); - type = "application/x-www-form-urlencoded;charset=UTF-8"; - } else if (isArrayBuffer(object2)) { - source = new Uint8Array(object2.slice()); - } else if (ArrayBuffer.isView(object2)) { - source = new Uint8Array(object2.buffer.slice(object2.byteOffset, object2.byteOffset + object2.byteLength)); - } else if (util.isFormDataLike(object2)) { - const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`; - const prefix = `--${boundary}\r -Content-Disposition: form-data`; - const escape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"); - const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, "\r\n"); - const blobParts = []; - const rn = new Uint8Array([13, 10]); - length = 0; - let hasUnknownSizeValue = false; - for (const [name, value] of object2) { - if (typeof value === "string") { - const chunk2 = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"\r -\r -${normalizeLinefeeds(value)}\r -`); - blobParts.push(chunk2); - length += chunk2.byteLength; - } else { - const chunk2 = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : "") + `\r -Content-Type: ${value.type || "application/octet-stream"}\r -\r -`); - blobParts.push(chunk2, value, rn); - if (typeof value.size === "number") { - length += chunk2.byteLength + value.size + rn.byteLength; - } else { - hasUnknownSizeValue = true; - } - } - } - const chunk = textEncoder.encode(`--${boundary}--\r -`); - blobParts.push(chunk); - length += chunk.byteLength; - if (hasUnknownSizeValue) { - length = null; - } - source = object2; - action = async function* () { - for (const part of blobParts) { - if (part.stream) { - yield* part.stream(); - } else { - yield part; - } - } - }; - type = `multipart/form-data; boundary=${boundary}`; - } else if (isBlobLike(object2)) { - source = object2; - length = object2.size; - if (object2.type) { - type = object2.type; - } - } else if (typeof object2[Symbol.asyncIterator] === "function") { - if (keepalive) { - throw new TypeError("keepalive"); - } - if (util.isDisturbed(object2) || object2.locked) { - throw new TypeError( - "Response body object should not be disturbed or locked" - ); - } - stream = object2 instanceof ReadableStream ? object2 : ReadableStreamFrom(object2); - } - if (typeof source === "string" || util.isBuffer(source)) { - length = Buffer.byteLength(source); - } - if (action != null) { - let iterator; - stream = new ReadableStream({ - async start() { - iterator = action(object2)[Symbol.asyncIterator](); - }, - async pull(controller) { - const { value, done } = await iterator.next(); - if (done) { - queueMicrotask(() => { - controller.close(); - controller.byobRequest?.respond(0); - }); - } else { - if (!isErrored(stream)) { - const buffer = new Uint8Array(value); - if (buffer.byteLength) { - controller.enqueue(buffer); - } - } - } - return controller.desiredSize > 0; - }, - async cancel(reason) { - await iterator.return(); - }, - type: "bytes" - }); - } - const body = { stream, source, length }; - return [body, type]; - } - function safelyExtractBody(object2, keepalive = false) { - if (object2 instanceof ReadableStream) { - assert(!util.isDisturbed(object2), "The body has already been consumed."); - assert(!object2.locked, "The stream is locked."); - } - return extractBody(object2, keepalive); - } - function cloneBody(instance, body) { - const [out1, out2] = body.stream.tee(); - body.stream = out1; - return { - stream: out2, - length: body.length, - source: body.source - }; - } - function throwIfAborted(state) { - if (state.aborted) { - throw new DOMException("The operation was aborted.", "AbortError"); - } - } - function bodyMixinMethods(instance) { - const methods = { - blob() { - return consumeBody(this, (bytes) => { - let mimeType = bodyMimeType(this); - if (mimeType === null) { - mimeType = ""; - } else if (mimeType) { - mimeType = serializeAMimeType(mimeType); - } - return new Blob2([bytes], { type: mimeType }); - }, instance); - }, - arrayBuffer() { - return consumeBody(this, (bytes) => { - return new Uint8Array(bytes).buffer; - }, instance); - }, - text() { - return consumeBody(this, utf8DecodeBytes, instance); - }, - json() { - return consumeBody(this, parseJSONFromBytes, instance); - }, - formData() { - return consumeBody(this, (value) => { - const mimeType = bodyMimeType(this); - if (mimeType !== null) { - switch (mimeType.essence) { - case "multipart/form-data": { - const parsed = multipartFormDataParser(value, mimeType); - if (parsed === "failure") { - throw new TypeError("Failed to parse body as FormData."); - } - const fd = new FormData(); - fd[kState] = parsed; - return fd; - } - case "application/x-www-form-urlencoded": { - const entries = new URLSearchParams(value.toString()); - const fd = new FormData(); - for (const [name, value2] of entries) { - fd.append(name, value2); - } - return fd; - } - } - } - throw new TypeError( - 'Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".' - ); - }, instance); - }, - bytes() { - return consumeBody(this, (bytes) => { - return new Uint8Array(bytes); - }, instance); - } - }; - return methods; - } - function mixinBody(prototype) { - Object.assign(prototype.prototype, bodyMixinMethods(prototype)); - } - async function consumeBody(object2, convertBytesToJSValue, instance) { - webidl.brandCheck(object2, instance); - if (bodyUnusable(object2)) { - throw new TypeError("Body is unusable: Body has already been read"); - } - throwIfAborted(object2[kState]); - const promise = createDeferredPromise(); - const errorSteps = (error2) => promise.reject(error2); - const successSteps = (data) => { - try { - promise.resolve(convertBytesToJSValue(data)); - } catch (e) { - errorSteps(e); - } - }; - if (object2[kState].body == null) { - successSteps(Buffer.allocUnsafe(0)); - return promise.promise; - } - await fullyReadBody(object2[kState].body, successSteps, errorSteps); - return promise.promise; - } - function bodyUnusable(object2) { - const body = object2[kState].body; - return body != null && (body.stream.locked || util.isDisturbed(body.stream)); - } - function parseJSONFromBytes(bytes) { - return JSON.parse(utf8DecodeBytes(bytes)); - } - function bodyMimeType(requestOrResponse) { - const headers = requestOrResponse[kState].headersList; - const mimeType = extractMimeType(headers); - if (mimeType === "failure") { - return null; - } - return mimeType; - } - module.exports = { - extractBody, - safelyExtractBody, - cloneBody, - mixinBody, - streamRegistry, - hasFinalizationRegistry, - bodyUnusable - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client-h1.js -var require_client_h1 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client-h1.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var util = require_util(); - var { channels } = require_diagnostics(); - var timers = require_timers(); - var { - RequestContentLengthMismatchError, - ResponseContentLengthMismatchError, - RequestAbortedError, - InvalidArgumentError, - HeadersTimeoutError, - HeadersOverflowError, - SocketError, - InformationalError, - BodyTimeoutError, - HTTPParserError, - ResponseExceededMaxSizeError - } = require_errors(); - var { - kUrl, - kReset, - kClient, - kParser, - kBlocking, - kRunning, - kPending, - kSize, - kWriting, - kQueue, - kNoRef, - kKeepAliveDefaultTimeout, - kHostHeader, - kPendingIdx, - kRunningIdx, - kError, - kPipelining, - kSocket, - kKeepAliveTimeoutValue, - kMaxHeadersSize, - kKeepAliveMaxTimeout, - kKeepAliveTimeoutThreshold, - kHeadersTimeout, - kBodyTimeout, - kStrictContentLength, - kMaxRequests, - kCounter, - kMaxResponseSize, - kOnError, - kResume, - kHTTPContext - } = require_symbols(); - var constants3 = require_constants2(); - var EMPTY_BUF = Buffer.alloc(0); - var FastBuffer = Buffer[Symbol.species]; - var addListener = util.addListener; - var removeAllListeners = util.removeAllListeners; - var kIdleSocketValidation = /* @__PURE__ */ Symbol("kIdleSocketValidation"); - var kIdleSocketValidationTimeout = /* @__PURE__ */ Symbol("kIdleSocketValidationTimeout"); - var kSocketUsed = /* @__PURE__ */ Symbol("kSocketUsed"); - var extractBody; - async function lazyllhttp() { - const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; - let mod; - try { - mod = await WebAssembly.compile(require_llhttp_simd_wasm()); - } catch (e) { - mod = await WebAssembly.compile(llhttpWasmData || require_llhttp_wasm()); - } - return await WebAssembly.instantiate(mod, { - env: { - /* eslint-disable camelcase */ - wasm_on_url: (p, at, len) => { - return 0; - }, - wasm_on_status: (p, at, len) => { - assert(currentParser.ptr === p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_message_begin: (p) => { - assert(currentParser.ptr === p); - return currentParser.onMessageBegin() || 0; - }, - wasm_on_header_field: (p, at, len) => { - assert(currentParser.ptr === p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_header_value: (p, at, len) => { - assert(currentParser.ptr === p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { - assert(currentParser.ptr === p); - return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0; - }, - wasm_on_body: (p, at, len) => { - assert(currentParser.ptr === p); - const start = at - currentBufferPtr + currentBufferRef.byteOffset; - return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; - }, - wasm_on_message_complete: (p) => { - assert(currentParser.ptr === p); - return currentParser.onMessageComplete() || 0; - } - /* eslint-enable camelcase */ - } - }); - } - var llhttpInstance = null; - var llhttpPromise = lazyllhttp(); - llhttpPromise.catch(); - var currentParser = null; - var currentBufferRef = null; - var currentBufferSize = 0; - var currentBufferPtr = null; - var USE_NATIVE_TIMER = 0; - var USE_FAST_TIMER = 1; - var TIMEOUT_HEADERS = 2 | USE_FAST_TIMER; - var TIMEOUT_BODY = 4 | USE_FAST_TIMER; - var TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER; - var Parser = class { - constructor(client, socket, { exports: exports2 }) { - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0); - this.llhttp = exports2; - this.ptr = this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE); - this.client = client; - this.socket = socket; - this.timeout = null; - this.timeoutValue = null; - this.timeoutType = null; - this.statusCode = null; - this.statusText = ""; - this.upgrade = false; - this.headers = []; - this.headersSize = 0; - this.headersMaxSize = client[kMaxHeadersSize]; - this.shouldKeepAlive = false; - this.paused = false; - this.resume = this.resume.bind(this); - this.bytesRead = 0; - this.keepAlive = ""; - this.contentLength = ""; - this.connection = ""; - this.maxResponseSize = client[kMaxResponseSize]; - } - setTimeout(delay, type) { - if (delay !== this.timeoutValue || type & USE_FAST_TIMER ^ this.timeoutType & USE_FAST_TIMER) { - if (this.timeout) { - timers.clearTimeout(this.timeout); - this.timeout = null; - } - if (delay) { - if (type & USE_FAST_TIMER) { - this.timeout = timers.setFastTimeout(onParserTimeout, delay, new WeakRef(this)); - } else { - this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this)); - this.timeout.unref(); - } - } - this.timeoutValue = delay; - } else if (this.timeout) { - if (this.timeout.refresh) { - this.timeout.refresh(); - } - } - this.timeoutType = type; - } - resume() { - if (this.socket.destroyed || !this.paused) { - return; - } - assert(this.ptr != null); - assert(currentParser == null); - this.llhttp.llhttp_resume(this.ptr); - assert(this.timeoutType === TIMEOUT_BODY); - if (this.timeout) { - if (this.timeout.refresh) { - this.timeout.refresh(); - } - } - this.paused = false; - this.execute(this.socket.read() || EMPTY_BUF); - this.readMore(); - } - readMore() { - while (!this.paused && this.ptr) { - const chunk = this.socket.read(); - if (chunk === null) { - break; - } - this.execute(chunk); - } - } - execute(data) { - assert(this.ptr != null); - assert(currentParser == null); - assert(!this.paused); - const { socket, llhttp } = this; - if (data.length > currentBufferSize) { - if (currentBufferPtr) { - llhttp.free(currentBufferPtr); - } - currentBufferSize = Math.ceil(data.length / 4096) * 4096; - currentBufferPtr = llhttp.malloc(currentBufferSize); - } - new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); - try { - let ret; - try { - currentBufferRef = data; - currentParser = this; - ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length); - } catch (err) { - throw err; - } finally { - currentParser = null; - currentBufferRef = null; - } - const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; - if (ret !== constants3.ERROR.OK) { - const body = data.subarray(offset); - if (ret === constants3.ERROR.PAUSED_UPGRADE) { - this.onUpgrade(body); - } else if (ret === constants3.ERROR.PAUSED) { - this.paused = true; - socket.unshift(body); - } else { - throw this.createError(ret, body); - } - } - } catch (err) { - util.destroy(socket, err); - } - } - finish() { - assert(currentParser === null); - assert(this.ptr != null); - assert(!this.paused); - const { llhttp } = this; - let ret; - try { - currentParser = this; - ret = llhttp.llhttp_finish(this.ptr); - } finally { - currentParser = null; - } - if (ret === constants3.ERROR.OK) { - return null; - } - if (ret === constants3.ERROR.PAUSED || ret === constants3.ERROR.PAUSED_UPGRADE) { - this.paused = true; - return null; - } - return this.createError(ret, EMPTY_BUF); - } - createError(ret, data) { - const { llhttp, contentLength, bytesRead } = this; - if (contentLength && bytesRead !== parseInt(contentLength, 10)) { - return new ResponseContentLengthMismatchError(); - } - const ptr = llhttp.llhttp_get_error_reason(this.ptr); - let message = ""; - if (ptr) { - const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); - message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")"; - } - return new HTTPParserError(message, constants3.ERROR[ret], data); - } - destroy() { - assert(this.ptr != null); - assert(currentParser == null); - this.llhttp.llhttp_free(this.ptr); - this.ptr = null; - this.timeout && timers.clearTimeout(this.timeout); - this.timeout = null; - this.timeoutValue = null; - this.timeoutType = null; - this.paused = false; - } - onStatus(buf) { - this.statusText = buf.toString(); - } - onMessageBegin() { - const { socket, client } = this; - if (socket.destroyed) { - return -1; - } - if (client[kRunning] === 0) { - util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))); - return -1; - } - const request = client[kQueue][client[kRunningIdx]]; - if (!request) { - return -1; - } - request.onResponseStarted(); - } - onHeaderField(buf) { - const len = this.headers.length; - if ((len & 1) === 0) { - this.headers.push(buf); - } else { - this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); - } - this.trackHeader(buf.length); - } - onHeaderValue(buf) { - let len = this.headers.length; - if ((len & 1) === 1) { - this.headers.push(buf); - len += 1; - } else { - this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); - } - const key = this.headers[len - 2]; - if (key.length === 10) { - const headerName = util.bufferToLowerCasedHeaderName(key); - if (headerName === "keep-alive") { - this.keepAlive += buf.toString(); - } else if (headerName === "connection") { - this.connection += buf.toString(); - } - } else if (key.length === 14 && util.bufferToLowerCasedHeaderName(key) === "content-length") { - this.contentLength += buf.toString(); - } - this.trackHeader(buf.length); - } - trackHeader(len) { - this.headersSize += len; - if (this.headersSize >= this.headersMaxSize) { - util.destroy(this.socket, new HeadersOverflowError()); - } - } - onUpgrade(head) { - const { upgrade, client, socket, headers, statusCode } = this; - assert(upgrade); - assert(client[kSocket] === socket); - assert(!socket.destroyed); - assert(!this.paused); - assert((headers.length & 1) === 0); - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert(request.upgrade || request.method === "CONNECT"); - this.statusCode = null; - this.statusText = ""; - this.shouldKeepAlive = null; - this.headers = []; - this.headersSize = 0; - socket.unshift(head); - socket[kParser].destroy(); - socket[kParser] = null; - socket[kClient] = null; - socket[kError] = null; - removeAllListeners(socket); - client[kSocket] = null; - client[kHTTPContext] = null; - client[kQueue][client[kRunningIdx]++] = null; - client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); - try { - request.onUpgrade(statusCode, headers, socket); - } catch (err) { - util.destroy(socket, err); - } - client[kResume](); - } - onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { - const { client, socket, headers, statusText } = this; - if (socket.destroyed) { - return -1; - } - if (client[kRunning] === 0) { - util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))); - return -1; - } - const request = client[kQueue][client[kRunningIdx]]; - if (!request) { - return -1; - } - assert(!this.upgrade); - assert(this.statusCode < 200); - if (statusCode === 100) { - util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))); - return -1; - } - if (upgrade && !request.upgrade) { - util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket))); - return -1; - } - assert(this.timeoutType === TIMEOUT_HEADERS); - this.statusCode = statusCode; - this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. - request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive"; - if (this.statusCode >= 200) { - const bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout]; - this.setTimeout(bodyTimeout, TIMEOUT_BODY); - } else if (this.timeout) { - if (this.timeout.refresh) { - this.timeout.refresh(); - } - } - if (request.method === "CONNECT") { - assert(client[kRunning] === 1); - this.upgrade = true; - return 2; - } - if (upgrade) { - assert(client[kRunning] === 1); - this.upgrade = true; - return 2; - } - assert((this.headers.length & 1) === 0); - this.headers = []; - this.headersSize = 0; - if (this.shouldKeepAlive && client[kPipelining]) { - const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null; - if (keepAliveTimeout != null) { - const timeout = Math.min( - keepAliveTimeout - client[kKeepAliveTimeoutThreshold], - client[kKeepAliveMaxTimeout] - ); - if (timeout <= 0) { - socket[kReset] = true; - } else { - client[kKeepAliveTimeoutValue] = timeout; - } - } else { - client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; - } - } else { - socket[kReset] = true; - } - const pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false; - if (request.aborted) { - return -1; - } - if (request.method === "HEAD") { - return 1; - } - if (statusCode < 200) { - return 1; - } - if (socket[kBlocking]) { - socket[kBlocking] = false; - client[kResume](); - } - return pause ? constants3.ERROR.PAUSED : 0; - } - onBody(buf) { - const { client, socket, statusCode, maxResponseSize } = this; - if (socket.destroyed) { - return -1; - } - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - assert(this.timeoutType === TIMEOUT_BODY); - if (this.timeout) { - if (this.timeout.refresh) { - this.timeout.refresh(); - } - } - assert(statusCode >= 200); - if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { - util.destroy(socket, new ResponseExceededMaxSizeError()); - return -1; - } - this.bytesRead += buf.length; - if (request.onData(buf) === false) { - return constants3.ERROR.PAUSED; - } - } - onMessageComplete() { - const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; - if (socket.destroyed && (!statusCode || shouldKeepAlive)) { - return -1; - } - if (upgrade) { - return; - } - assert(statusCode >= 100); - assert((this.headers.length & 1) === 0); - const request = client[kQueue][client[kRunningIdx]]; - assert(request); - this.statusCode = null; - this.statusText = ""; - this.bytesRead = 0; - this.contentLength = ""; - this.keepAlive = ""; - this.connection = ""; - this.headers = []; - this.headersSize = 0; - if (statusCode < 200) { - return; - } - if (request.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { - util.destroy(socket, new ResponseContentLengthMismatchError()); - return -1; - } - request.onComplete(headers); - client[kQueue][client[kRunningIdx]++] = null; - socket[kSocketUsed] = true; - if (socket[kWriting]) { - assert(client[kRunning] === 0); - util.destroy(socket, new InformationalError("reset")); - return constants3.ERROR.PAUSED; - } else if (!shouldKeepAlive) { - util.destroy(socket, new InformationalError("reset")); - return constants3.ERROR.PAUSED; - } else if (socket[kReset] && client[kRunning] === 0) { - util.destroy(socket, new InformationalError("reset")); - return constants3.ERROR.PAUSED; - } else if (client[kPipelining] == null || client[kPipelining] === 1) { - setImmediate(() => client[kResume]()); - } else { - client[kResume](); - } - } - }; - function onParserTimeout(parser) { - const { socket, timeoutType, client, paused } = parser.deref(); - if (timeoutType === TIMEOUT_HEADERS) { - if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { - assert(!paused, "cannot be paused while waiting for headers"); - util.destroy(socket, new HeadersTimeoutError()); - } - } else if (timeoutType === TIMEOUT_BODY) { - if (!paused) { - util.destroy(socket, new BodyTimeoutError()); - } - } else if (timeoutType === TIMEOUT_KEEP_ALIVE) { - assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); - util.destroy(socket, new InformationalError("socket idle timeout")); - } - } - async function connectH1(client, socket) { - client[kSocket] = socket; - if (!llhttpInstance) { - llhttpInstance = await llhttpPromise; - llhttpPromise = null; - } - socket[kNoRef] = false; - socket[kWriting] = false; - socket[kReset] = false; - socket[kBlocking] = false; - socket[kIdleSocketValidation] = 0; - socket[kIdleSocketValidationTimeout] = null; - socket[kSocketUsed] = false; - socket[kParser] = new Parser(client, socket, llhttpInstance); - addListener(socket, "error", function(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); - const parser = this[kParser]; - if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { - const parserErr = parser.finish(); - if (parserErr) { - this[kError] = parserErr; - this[kClient][kOnError](parserErr); - } - return; - } - this[kError] = err; - this[kClient][kOnError](err); - }); - addListener(socket, "readable", function() { - const parser = this[kParser]; - if (parser) { - parser.readMore(); - } - }); - addListener(socket, "end", function() { - const parser = this[kParser]; - if (parser.statusCode && !parser.shouldKeepAlive) { - const parserErr = parser.finish(); - if (parserErr) { - util.destroy(this, parserErr); - } - return; - } - util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); - }); - addListener(socket, "close", function() { - const client2 = this[kClient]; - const parser = this[kParser]; - clearIdleSocketValidation(this); - if (parser) { - if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { - this[kError] = parser.finish() || this[kError]; - } - this[kParser].destroy(); - this[kParser] = null; - } - const err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); - client2[kSocket] = null; - client2[kHTTPContext] = null; - if (client2.destroyed) { - assert(client2[kPending] === 0); - const requests = client2[kQueue].splice(client2[kRunningIdx]); - for (let i = 0; i < requests.length; i++) { - const request = requests[i]; - util.errorRequest(client2, request, err); - } - } else if (client2[kRunning] > 0 && err.code !== "UND_ERR_INFO") { - const request = client2[kQueue][client2[kRunningIdx]]; - client2[kQueue][client2[kRunningIdx]++] = null; - util.errorRequest(client2, request, err); - } - client2[kPendingIdx] = client2[kRunningIdx]; - assert(client2[kRunning] === 0); - client2.emit("disconnect", client2[kUrl], [client2], err); - client2[kResume](); - }); - let closed = false; - socket.on("close", () => { - closed = true; - }); - return { - version: "h1", - defaultPipelining: 1, - write(...args) { - return writeH1(client, ...args); - }, - resume() { - resumeH1(client); - }, - destroy(err, callback) { - if (closed) { - queueMicrotask(callback); - } else { - socket.destroy(err).on("close", callback); - } - }, - get destroyed() { - return socket.destroyed; - }, - busy(request) { - if (socket[kWriting] || socket[kReset] || socket[kBlocking] || socket[kIdleSocketValidation] === 1) { - return true; - } - if (request) { - if (client[kRunning] > 0 && !request.idempotent) { - return true; - } - if (client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT")) { - return true; - } - if (client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && (util.isStream(request.body) || util.isAsyncIterable(request.body) || util.isFormDataLike(request.body))) { - return true; - } - } - return false; - } - }; - } - function clearIdleSocketValidation(socket) { - if (socket[kIdleSocketValidationTimeout]) { - clearTimeout(socket[kIdleSocketValidationTimeout]); - socket[kIdleSocketValidationTimeout] = null; - } - socket[kIdleSocketValidation] = 0; - } - function scheduleIdleSocketValidation(client, socket) { - socket[kIdleSocketValidation] = 1; - socket[kIdleSocketValidationTimeout] = setTimeout(() => { - socket[kIdleSocketValidationTimeout] = null; - socket[kIdleSocketValidation] = 2; - if (client[kSocket] === socket && !socket.destroyed) { - client[kResume](); - } - }, 0); - socket[kIdleSocketValidationTimeout].unref?.(); - } - function resumeH1(client) { - const socket = client[kSocket]; - if (socket && !socket.destroyed) { - if (client[kSize] === 0) { - if (!socket[kNoRef] && socket.unref) { - socket.unref(); - socket[kNoRef] = true; - } - } else if (socket[kNoRef] && socket.ref) { - socket.ref(); - socket[kNoRef] = false; - } - if (client[kRunning] === 0 && client[kPending] > 0 && socket[kSocketUsed]) { - if (socket[kIdleSocketValidation] === 0) { - scheduleIdleSocketValidation(client, socket); - socket[kParser].readMore(); - if (socket.destroyed) { - return; - } - return; - } - if (socket[kIdleSocketValidation] === 1) { - socket[kParser].readMore(); - if (socket.destroyed) { - return; - } - return; - } - } - if (client[kRunning] === 0) { - socket[kParser].readMore(); - if (socket.destroyed) { - return; - } - } - if (client[kSize] === 0) { - if (socket[kParser].timeoutType !== TIMEOUT_KEEP_ALIVE) { - socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_KEEP_ALIVE); - } - } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { - if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { - const request = client[kQueue][client[kRunningIdx]]; - const headersTimeout = request.headersTimeout != null ? request.headersTimeout : client[kHeadersTimeout]; - socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); - } - } - } - } - function shouldSendContentLength(method) { - return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; - } - function writeH1(client, request) { - const { method, path: path2, host, upgrade, blocking, reset } = request; - let { body, headers, contentLength } = request; - const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH"; - if (util.isFormDataLike(body)) { - if (!extractBody) { - extractBody = require_body().extractBody; - } - const [bodyStream, contentType] = extractBody(body); - if (request.contentType == null) { - headers.push("content-type", contentType); - } - body = bodyStream.stream; - contentLength = bodyStream.length; - } else if (util.isBlobLike(body) && request.contentType == null) { - const contentType = body.type; - if (contentType) { - const contentTypeValue = `${contentType}`; - if (!util.isValidHeaderValue(contentTypeValue)) { - util.errorRequest(client, request, new InvalidArgumentError("invalid content-type header")); - return false; - } - headers.push("content-type", contentTypeValue); - } - } - if (body && typeof body.read === "function") { - body.read(0); - } - const bodyLength = util.bodyLength(body); - contentLength = bodyLength ?? contentLength; - if (contentLength === null) { - contentLength = request.contentLength; - } - if (contentLength === 0 && !expectsPayload) { - contentLength = null; - } - if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - util.errorRequest(client, request, new RequestContentLengthMismatchError()); - return false; - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - const socket = client[kSocket]; - clearIdleSocketValidation(socket); - const abort = (err) => { - if (request.aborted || request.completed) { - return; - } - util.errorRequest(client, request, err || new RequestAbortedError()); - util.destroy(body); - util.destroy(socket, new InformationalError("aborted")); - }; - try { - request.onConnect(abort); - } catch (err) { - util.errorRequest(client, request, err); - } - if (request.aborted) { - return false; - } - if (method === "HEAD") { - socket[kReset] = true; - } - if (upgrade || method === "CONNECT") { - socket[kReset] = true; - } - if (reset != null) { - socket[kReset] = reset; - } - if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { - socket[kReset] = true; - } - if (blocking) { - socket[kBlocking] = true; - } - let header = `${method} ${path2} HTTP/1.1\r -`; - if (typeof host === "string") { - header += `host: ${host}\r -`; - } else { - header += client[kHostHeader]; - } - if (upgrade) { - header += `connection: upgrade\r -upgrade: ${upgrade}\r -`; - } else if (client[kPipelining] && !socket[kReset]) { - header += "connection: keep-alive\r\n"; - } else { - header += "connection: close\r\n"; - } - if (Array.isArray(headers)) { - for (let n = 0; n < headers.length; n += 2) { - const key = headers[n + 0]; - const val = headers[n + 1]; - if (Array.isArray(val)) { - for (let i = 0; i < val.length; i++) { - header += `${key}: ${val[i]}\r -`; - } - } else { - header += `${key}: ${val}\r -`; - } - } - } - if (channels.sendHeaders.hasSubscribers) { - channels.sendHeaders.publish({ request, headers: header, socket }); - } - if (!body || bodyLength === 0) { - writeBuffer(abort, null, client, request, socket, contentLength, header, expectsPayload); - } else if (util.isBuffer(body)) { - writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload); - } else if (util.isBlobLike(body)) { - if (typeof body.stream === "function") { - writeIterable(abort, body.stream(), client, request, socket, contentLength, header, expectsPayload); - } else { - writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload); - } - } else if (util.isStream(body)) { - writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload); - } else if (util.isIterable(body)) { - writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload); - } else { - assert(false); - } - return true; - } - function writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload) { - assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); - let finished = false; - const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }); - const onData = function(chunk) { - if (finished) { - return; - } - try { - if (!writer.write(chunk) && this.pause) { - this.pause(); - } - } catch (err) { - util.destroy(this, err); - } - }; - const onDrain = function() { - if (finished) { - return; - } - if (body.resume) { - body.resume(); - } - }; - const onClose = function() { - queueMicrotask(() => { - body.removeListener("error", onFinished); - }); - if (!finished) { - const err = new RequestAbortedError(); - queueMicrotask(() => onFinished(err)); - } - }; - const onFinished = function(err) { - if (finished) { - return; - } - finished = true; - assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1); - socket.off("drain", onDrain).off("error", onFinished); - body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose); - if (!err) { - try { - writer.end(); - } catch (er) { - err = er; - } - } - writer.destroy(err); - if (err && (err.code !== "UND_ERR_INFO" || err.message !== "reset")) { - util.destroy(body, err); - } else { - util.destroy(body); - } - }; - body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose); - if (body.resume) { - body.resume(); - } - socket.on("drain", onDrain).on("error", onFinished); - if (body.errorEmitted ?? body.errored) { - setImmediate(() => onFinished(body.errored)); - } else if (body.endEmitted ?? body.readableEnded) { - setImmediate(() => onFinished(null)); - } - if (body.closeEmitted ?? body.closed) { - setImmediate(onClose); - } - } - function writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload) { - try { - if (!body) { - if (contentLength === 0) { - socket.write(`${header}content-length: 0\r -\r -`, "latin1"); - } else { - assert(contentLength === null, "no body must not have content length"); - socket.write(`${header}\r -`, "latin1"); - } - } else if (util.isBuffer(body)) { - assert(contentLength === body.byteLength, "buffer body must have content length"); - socket.cork(); - socket.write(`${header}content-length: ${contentLength}\r -\r -`, "latin1"); - socket.write(body); - socket.uncork(); - request.onBodySent(body); - if (!expectsPayload && request.reset !== false) { - socket[kReset] = true; - } - } - request.onRequestSent(); - client[kResume](); - } catch (err) { - abort(err); - } - } - async function writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload) { - assert(contentLength === body.size, "blob body must have content length"); - try { - if (contentLength != null && contentLength !== body.size) { - throw new RequestContentLengthMismatchError(); - } - const buffer = Buffer.from(await body.arrayBuffer()); - socket.cork(); - socket.write(`${header}content-length: ${contentLength}\r -\r -`, "latin1"); - socket.write(buffer); - socket.uncork(); - request.onBodySent(buffer); - request.onRequestSent(); - if (!expectsPayload && request.reset !== false) { - socket[kReset] = true; - } - client[kResume](); - } catch (err) { - abort(err); - } - } - async function writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload) { - assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); - let callback = null; - function onDrain() { - if (callback) { - const cb = callback; - callback = null; - cb(); - } - } - const waitForDrain = () => new Promise((resolve, reject) => { - assert(callback === null); - if (socket[kError]) { - reject(socket[kError]); - } else { - callback = resolve; - } - }); - socket.on("close", onDrain).on("drain", onDrain); - const writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }); - try { - for await (const chunk of body) { - if (socket[kError]) { - throw socket[kError]; - } - if (!writer.write(chunk)) { - await waitForDrain(); - } - } - writer.end(); - } catch (err) { - writer.destroy(err); - } finally { - socket.off("close", onDrain).off("drain", onDrain); - } - } - var AsyncWriter = class { - constructor({ abort, socket, request, contentLength, client, expectsPayload, header }) { - this.socket = socket; - this.request = request; - this.contentLength = contentLength; - this.client = client; - this.bytesWritten = 0; - this.expectsPayload = expectsPayload; - this.header = header; - this.abort = abort; - socket[kWriting] = true; - } - write(chunk) { - const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; - if (socket[kError]) { - throw socket[kError]; - } - if (socket.destroyed) { - return false; - } - const len = Buffer.byteLength(chunk); - if (!len) { - return true; - } - if (contentLength !== null && bytesWritten + len > contentLength) { - if (client[kStrictContentLength]) { - throw new RequestContentLengthMismatchError(); - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - socket.cork(); - if (bytesWritten === 0) { - if (!expectsPayload && request.reset !== false) { - socket[kReset] = true; - } - if (contentLength === null) { - socket.write(`${header}transfer-encoding: chunked\r -`, "latin1"); - } else { - socket.write(`${header}content-length: ${contentLength}\r -\r -`, "latin1"); - } - } - if (contentLength === null) { - socket.write(`\r -${len.toString(16)}\r -`, "latin1"); - } - this.bytesWritten += len; - const ret = socket.write(chunk); - socket.uncork(); - request.onBodySent(chunk); - if (!ret) { - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - if (socket[kParser].timeout.refresh) { - socket[kParser].timeout.refresh(); - } - } - } - return ret; - } - end() { - const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; - request.onRequestSent(); - socket[kWriting] = false; - if (socket[kError]) { - throw socket[kError]; - } - if (socket.destroyed) { - return; - } - if (bytesWritten === 0) { - if (expectsPayload) { - socket.write(`${header}content-length: 0\r -\r -`, "latin1"); - } else { - socket.write(`${header}\r -`, "latin1"); - } - } else if (contentLength === null) { - socket.write("\r\n0\r\n\r\n", "latin1"); - } - if (contentLength !== null && bytesWritten !== contentLength) { - if (client[kStrictContentLength]) { - throw new RequestContentLengthMismatchError(); - } else { - process.emitWarning(new RequestContentLengthMismatchError()); - } - } - if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { - if (socket[kParser].timeout.refresh) { - socket[kParser].timeout.refresh(); - } - } - client[kResume](); - } - destroy(err) { - const { socket, client, abort } = this; - socket[kWriting] = false; - if (err) { - assert(client[kRunning] <= 1, "pipeline should only contain this request"); - abort(err); - } - } - }; - module.exports = connectH1; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client-h2.js -var require_client_h2 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client-h2.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { pipeline } = __require("node:stream"); - var util = require_util(); - var { - RequestContentLengthMismatchError, - RequestAbortedError, - SocketError, - InformationalError - } = require_errors(); - var { - kUrl, - kReset, - kClient, - kRunning, - kPending, - kQueue, - kPendingIdx, - kRunningIdx, - kError, - kSocket, - kStrictContentLength, - kOnError, - kMaxConcurrentStreams, - kHTTP2Session, - kResume, - kSize, - kHTTPContext - } = require_symbols(); - var kOpenStreams = /* @__PURE__ */ Symbol("open streams"); - var extractBody; - var h2ExperimentalWarned = false; - var http2; - try { - http2 = __require("node:http2"); - } catch { - http2 = { constants: {} }; - } - var { - constants: { - HTTP2_HEADER_AUTHORITY, - HTTP2_HEADER_METHOD, - HTTP2_HEADER_PATH, - HTTP2_HEADER_SCHEME, - HTTP2_HEADER_CONTENT_LENGTH, - HTTP2_HEADER_EXPECT, - HTTP2_HEADER_STATUS - } - } = http2; - function parseH2Headers(headers) { - const result = []; - for (const [name, value] of Object.entries(headers)) { - if (Array.isArray(value)) { - for (const subvalue of value) { - result.push(Buffer.from(name), Buffer.from(subvalue)); - } - } else { - result.push(Buffer.from(name), Buffer.from(value)); - } - } - return result; - } - async function connectH2(client, socket) { - client[kSocket] = socket; - if (!h2ExperimentalWarned) { - h2ExperimentalWarned = true; - process.emitWarning("H2 support is experimental, expect them to change at any time.", { - code: "UNDICI-H2" - }); - } - const session = http2.connect(client[kUrl], { - createConnection: () => socket, - peerMaxConcurrentStreams: client[kMaxConcurrentStreams] - }); - session[kOpenStreams] = 0; - session[kClient] = client; - session[kSocket] = socket; - util.addListener(session, "error", onHttp2SessionError); - util.addListener(session, "frameError", onHttp2FrameError); - util.addListener(session, "end", onHttp2SessionEnd); - util.addListener(session, "goaway", onHTTP2GoAway); - util.addListener(session, "close", function() { - const { [kClient]: client2 } = this; - const { [kSocket]: socket2 } = client2; - const err = this[kSocket][kError] || this[kError] || new SocketError("closed", util.getSocketInfo(socket2)); - client2[kHTTP2Session] = null; - if (client2.destroyed) { - assert(client2[kPending] === 0); - const requests = client2[kQueue].splice(client2[kRunningIdx]); - for (let i = 0; i < requests.length; i++) { - const request = requests[i]; - util.errorRequest(client2, request, err); - } - } - }); - session.unref(); - client[kHTTP2Session] = session; - socket[kHTTP2Session] = session; - util.addListener(socket, "error", function(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); - this[kError] = err; - this[kClient][kOnError](err); - }); - util.addListener(socket, "end", function() { - util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); - }); - util.addListener(socket, "close", function() { - const err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); - client[kSocket] = null; - if (this[kHTTP2Session] != null) { - this[kHTTP2Session].destroy(err); - } - client[kPendingIdx] = client[kRunningIdx]; - assert(client[kRunning] === 0); - client.emit("disconnect", client[kUrl], [client], err); - client[kResume](); - }); - let closed = false; - socket.on("close", () => { - closed = true; - }); - return { - version: "h2", - defaultPipelining: Infinity, - write(...args) { - return writeH2(client, ...args); - }, - resume() { - resumeH2(client); - }, - destroy(err, callback) { - if (closed) { - queueMicrotask(callback); - } else { - socket.destroy(err).on("close", callback); - } - }, - get destroyed() { - return socket.destroyed; - }, - busy() { - return false; - } - }; - } - function resumeH2(client) { - const socket = client[kSocket]; - if (socket?.destroyed === false) { - if (client[kSize] === 0 && client[kMaxConcurrentStreams] === 0) { - socket.unref(); - client[kHTTP2Session].unref(); - } else { - socket.ref(); - client[kHTTP2Session].ref(); - } - } - } - function onHttp2SessionError(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); - this[kSocket][kError] = err; - this[kClient][kOnError](err); - } - function onHttp2FrameError(type, code, id) { - if (id === 0) { - const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`); - this[kSocket][kError] = err; - this[kClient][kOnError](err); - } - } - function onHttp2SessionEnd() { - const err = new SocketError("other side closed", util.getSocketInfo(this[kSocket])); - this.destroy(err); - util.destroy(this[kSocket], err); - } - function onHTTP2GoAway(code) { - const err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util.getSocketInfo(this)); - const client = this[kClient]; - client[kSocket] = null; - client[kHTTPContext] = null; - if (this[kHTTP2Session] != null) { - this[kHTTP2Session].destroy(err); - this[kHTTP2Session] = null; - } - util.destroy(this[kSocket], err); - if (client[kRunningIdx] < client[kQueue].length) { - const request = client[kQueue][client[kRunningIdx]]; - client[kQueue][client[kRunningIdx]++] = null; - util.errorRequest(client, request, err); - client[kPendingIdx] = client[kRunningIdx]; - } - assert(client[kRunning] === 0); - client.emit("disconnect", client[kUrl], [client], err); - client[kResume](); - } - function shouldSendContentLength(method) { - return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; - } - function writeH2(client, request) { - const session = client[kHTTP2Session]; - const { method, path: path2, host, upgrade, expectContinue, signal, headers: reqHeaders } = request; - let { body } = request; - if (upgrade) { - util.errorRequest(client, request, new Error("Upgrade not supported for H2")); - return false; - } - const headers = {}; - for (let n = 0; n < reqHeaders.length; n += 2) { - const key = reqHeaders[n + 0]; - const val = reqHeaders[n + 1]; - if (Array.isArray(val)) { - for (let i = 0; i < val.length; i++) { - if (headers[key]) { - headers[key] += `,${val[i]}`; - } else { - headers[key] = val[i]; - } - } - } else { - headers[key] = val; - } - } - let stream; - const { hostname, port } = client[kUrl]; - headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname}${port ? `:${port}` : ""}`; - headers[HTTP2_HEADER_METHOD] = method; - const abort = (err) => { - if (request.aborted || request.completed) { - return; - } - err = err || new RequestAbortedError(); - util.errorRequest(client, request, err); - if (stream != null) { - util.destroy(stream, err); - } - util.destroy(body, err); - client[kQueue][client[kRunningIdx]++] = null; - client[kResume](); - }; - try { - request.onConnect(abort); - } catch (err) { - util.errorRequest(client, request, err); - } - if (request.aborted) { - return false; - } - if (method === "CONNECT") { - session.ref(); - stream = session.request(headers, { endStream: false, signal }); - if (stream.id && !stream.pending) { - request.onUpgrade(null, null, stream); - ++session[kOpenStreams]; - client[kQueue][client[kRunningIdx]++] = null; - } else { - stream.once("ready", () => { - request.onUpgrade(null, null, stream); - ++session[kOpenStreams]; - client[kQueue][client[kRunningIdx]++] = null; - }); - } - stream.once("close", () => { - session[kOpenStreams] -= 1; - if (session[kOpenStreams] === 0) session.unref(); - }); - return true; - } - headers[HTTP2_HEADER_PATH] = path2; - headers[HTTP2_HEADER_SCHEME] = "https"; - const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; - if (body && typeof body.read === "function") { - body.read(0); - } - let contentLength = util.bodyLength(body); - if (util.isFormDataLike(body)) { - extractBody ??= require_body().extractBody; - const [bodyStream, contentType] = extractBody(body); - headers["content-type"] = contentType; - body = bodyStream.stream; - contentLength = bodyStream.length; - } - if (contentLength == null) { - contentLength = request.contentLength; - } - if (contentLength === 0 || !expectsPayload) { - contentLength = null; - } - if (shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { - if (client[kStrictContentLength]) { - util.errorRequest(client, request, new RequestContentLengthMismatchError()); - return false; - } - process.emitWarning(new RequestContentLengthMismatchError()); - } - if (contentLength != null) { - assert(body, "no body must not have content length"); - headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; - } - session.ref(); - const shouldEndStream = method === "GET" || method === "HEAD" || body === null; - if (expectContinue) { - headers[HTTP2_HEADER_EXPECT] = "100-continue"; - stream = session.request(headers, { endStream: shouldEndStream, signal }); - stream.once("continue", writeBodyH2); - } else { - stream = session.request(headers, { - endStream: shouldEndStream, - signal - }); - writeBodyH2(); - } - ++session[kOpenStreams]; - stream.once("response", (headers2) => { - const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; - request.onResponseStarted(); - if (request.aborted) { - const err = new RequestAbortedError(); - util.errorRequest(client, request, err); - util.destroy(stream, err); - return; - } - if (request.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === false) { - stream.pause(); - } - stream.on("data", (chunk) => { - if (request.onData(chunk) === false) { - stream.pause(); - } - }); - }); - stream.once("end", () => { - if (stream.state?.state == null || stream.state.state < 6) { - request.onComplete([]); - } - if (session[kOpenStreams] === 0) { - session.unref(); - } - abort(new InformationalError("HTTP/2: stream half-closed (remote)")); - client[kQueue][client[kRunningIdx]++] = null; - client[kPendingIdx] = client[kRunningIdx]; - client[kResume](); - }); - stream.once("close", () => { - session[kOpenStreams] -= 1; - if (session[kOpenStreams] === 0) { - session.unref(); - } - }); - stream.once("error", function(err) { - abort(err); - }); - stream.once("frameError", (type, code) => { - abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)); - }); - return true; - function writeBodyH2() { - if (!body || contentLength === 0) { - writeBuffer( - abort, - stream, - null, - client, - request, - client[kSocket], - contentLength, - expectsPayload - ); - } else if (util.isBuffer(body)) { - writeBuffer( - abort, - stream, - body, - client, - request, - client[kSocket], - contentLength, - expectsPayload - ); - } else if (util.isBlobLike(body)) { - if (typeof body.stream === "function") { - writeIterable( - abort, - stream, - body.stream(), - client, - request, - client[kSocket], - contentLength, - expectsPayload - ); - } else { - writeBlob( - abort, - stream, - body, - client, - request, - client[kSocket], - contentLength, - expectsPayload - ); - } - } else if (util.isStream(body)) { - writeStream( - abort, - client[kSocket], - expectsPayload, - stream, - body, - client, - request, - contentLength - ); - } else if (util.isIterable(body)) { - writeIterable( - abort, - stream, - body, - client, - request, - client[kSocket], - contentLength, - expectsPayload - ); - } else { - assert(false); - } - } - } - function writeBuffer(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { - try { - if (body != null && util.isBuffer(body)) { - assert(contentLength === body.byteLength, "buffer body must have content length"); - h2stream.cork(); - h2stream.write(body); - h2stream.uncork(); - h2stream.end(); - request.onBodySent(body); - } - if (!expectsPayload) { - socket[kReset] = true; - } - request.onRequestSent(); - client[kResume](); - } catch (error2) { - abort(error2); - } - } - function writeStream(abort, socket, expectsPayload, h2stream, body, client, request, contentLength) { - assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); - const pipe2 = pipeline( - body, - h2stream, - (err) => { - if (err) { - util.destroy(pipe2, err); - abort(err); - } else { - util.removeAllListeners(pipe2); - request.onRequestSent(); - if (!expectsPayload) { - socket[kReset] = true; - } - client[kResume](); - } - } - ); - util.addListener(pipe2, "data", onPipeData); - function onPipeData(chunk) { - request.onBodySent(chunk); - } - } - async function writeBlob(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { - assert(contentLength === body.size, "blob body must have content length"); - try { - if (contentLength != null && contentLength !== body.size) { - throw new RequestContentLengthMismatchError(); - } - const buffer = Buffer.from(await body.arrayBuffer()); - h2stream.cork(); - h2stream.write(buffer); - h2stream.uncork(); - h2stream.end(); - request.onBodySent(buffer); - request.onRequestSent(); - if (!expectsPayload) { - socket[kReset] = true; - } - client[kResume](); - } catch (err) { - abort(err); - } - } - async function writeIterable(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { - assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); - let callback = null; - function onDrain() { - if (callback) { - const cb = callback; - callback = null; - cb(); - } - } - const waitForDrain = () => new Promise((resolve, reject) => { - assert(callback === null); - if (socket[kError]) { - reject(socket[kError]); - } else { - callback = resolve; - } - }); - h2stream.on("close", onDrain).on("drain", onDrain); - try { - for await (const chunk of body) { - if (socket[kError]) { - throw socket[kError]; - } - const res = h2stream.write(chunk); - request.onBodySent(chunk); - if (!res) { - await waitForDrain(); - } - } - h2stream.end(); - request.onRequestSent(); - if (!expectsPayload) { - socket[kReset] = true; - } - client[kResume](); - } catch (err) { - abort(err); - } finally { - h2stream.off("close", onDrain).off("drain", onDrain); - } - } - module.exports = connectH2; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/redirect-handler.js -var require_redirect_handler = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/redirect-handler.js"(exports, module) { - "use strict"; - var util = require_util(); - var { kBodyUsed } = require_symbols(); - var assert = __require("node:assert"); - var { InvalidArgumentError } = require_errors(); - var EE = __require("node:events"); - var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; - var kBody = /* @__PURE__ */ Symbol("body"); - var BodyAsyncIterable = class { - constructor(body) { - this[kBody] = body; - this[kBodyUsed] = false; - } - async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], "disturbed"); - this[kBodyUsed] = true; - yield* this[kBody]; - } - }; - var RedirectHandler = class { - constructor(dispatch, maxRedirections, opts, handler) { - if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { - throw new InvalidArgumentError("maxRedirections must be a positive number"); - } - util.validateHandler(handler, opts.method, opts.upgrade); - this.dispatch = dispatch; - this.location = null; - this.abort = null; - this.opts = { ...opts, maxRedirections: 0 }; - this.maxRedirections = maxRedirections; - this.handler = handler; - this.history = []; - this.redirectionLimitReached = false; - if (util.isStream(this.opts.body)) { - if (util.bodyLength(this.opts.body) === 0) { - this.opts.body.on("data", function() { - assert(false); - }); - } - if (typeof this.opts.body.readableDidRead !== "boolean") { - this.opts.body[kBodyUsed] = false; - EE.prototype.on.call(this.opts.body, "data", function() { - this[kBodyUsed] = true; - }); - } - } else if (this.opts.body && typeof this.opts.body.pipeTo === "function") { - this.opts.body = new BodyAsyncIterable(this.opts.body); - } else if (this.opts.body && typeof this.opts.body !== "string" && !ArrayBuffer.isView(this.opts.body) && util.isIterable(this.opts.body)) { - this.opts.body = new BodyAsyncIterable(this.opts.body); - } - } - onConnect(abort) { - this.abort = abort; - this.handler.onConnect(abort, { history: this.history }); - } - onUpgrade(statusCode, headers, socket) { - this.handler.onUpgrade(statusCode, headers, socket); - } - onError(error2) { - this.handler.onError(error2); - } - onHeaders(statusCode, headers, resume, statusText) { - this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers); - if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { - if (this.request) { - this.request.abort(new Error("max redirects")); - } - this.redirectionLimitReached = true; - this.abort(new Error("max redirects")); - return; - } - 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); - } - const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); - const path2 = search ? `${pathname}${search}` : pathname; - this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin); - this.opts.path = path2; - this.opts.origin = origin; - this.opts.maxRedirections = 0; - this.opts.query = null; - if (statusCode === 303 && this.opts.method !== "HEAD") { - this.opts.method = "GET"; - this.opts.body = null; - } - } - onData(chunk) { - if (this.location) { - } else { - return this.handler.onData(chunk); - } - } - onComplete(trailers) { - if (this.location) { - this.location = null; - this.abort = null; - this.dispatch(this.opts, this); - } else { - this.handler.onComplete(trailers); - } - } - onBodySent(chunk) { - if (this.handler.onBodySent) { - this.handler.onBodySent(chunk); - } - } - }; - function parseLocation(statusCode, headers) { - if (redirectableStatusCodes.indexOf(statusCode) === -1) { - return null; - } - for (let i = 0; i < headers.length; i += 2) { - if (headers[i].length === 8 && util.headerNameToString(headers[i]) === "location") { - return headers[i + 1]; - } - } - } - function shouldRemoveHeader(header, removeContent, unknownOrigin) { - if (header.length === 4) { - return util.headerNameToString(header) === "host"; - } - if (removeContent && util.headerNameToString(header).startsWith("content-")) { - return true; - } - if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { - const name = util.headerNameToString(header); - return name === "authorization" || name === "cookie" || name === "proxy-authorization"; - } - return false; - } - function cleanRequestHeaders(headers, removeContent, unknownOrigin) { - const ret = []; - if (Array.isArray(headers)) { - for (let i = 0; i < headers.length; i += 2) { - if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { - ret.push(headers[i], headers[i + 1]); - } - } - } else if (headers && typeof headers === "object") { - for (const key of Object.keys(headers)) { - if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { - ret.push(key, headers[key]); - } - } - } else { - assert(headers == null, "headers must be an object or an array"); - } - return ret; - } - module.exports = RedirectHandler; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/redirect-interceptor.js -var require_redirect_interceptor = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/redirect-interceptor.js"(exports, module) { - "use strict"; - var RedirectHandler = require_redirect_handler(); - function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { - return (dispatch) => { - return function Intercept(opts, handler) { - const { maxRedirections = defaultMaxRedirections } = opts; - if (!maxRedirections) { - return dispatch(opts, handler); - } - const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler); - opts = { ...opts, maxRedirections: 0 }; - return dispatch(opts, redirectHandler); - }; - }; - } - module.exports = createRedirectInterceptor; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client.js -var require_client = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var net = __require("node:net"); - var http = __require("node:http"); - var util = require_util(); - var { channels } = require_diagnostics(); - var Request = require_request(); - var DispatcherBase = require_dispatcher_base(); - var { - InvalidArgumentError, - InformationalError, - ClientDestroyedError - } = require_errors(); - var buildConnector = require_connect(); - var { - kUrl, - kServerName, - kClient, - kBusy, - kConnect, - kResuming, - kRunning, - kPending, - kSize, - kQueue, - kConnected, - kConnecting, - kNeedDrain, - kKeepAliveDefaultTimeout, - kHostHeader, - kPendingIdx, - kRunningIdx, - kError, - kPipelining, - kKeepAliveTimeoutValue, - kMaxHeadersSize, - kKeepAliveMaxTimeout, - kKeepAliveTimeoutThreshold, - kHeadersTimeout, - kBodyTimeout, - kStrictContentLength, - kConnector, - kMaxRedirections, - kMaxRequests, - kCounter, - kClose, - kDestroy, - kDispatch, - kInterceptors, - kLocalAddress, - kMaxResponseSize, - kOnError, - kHTTPContext, - kMaxConcurrentStreams, - kResume - } = require_symbols(); - var connectH1 = require_client_h1(); - var connectH2 = require_client_h2(); - var deprecatedInterceptorWarned = false; - var kClosedResolve = /* @__PURE__ */ Symbol("kClosedResolve"); - var noop = () => { - }; - function getPipelining(client) { - return client[kPipelining] ?? client[kHTTPContext]?.defaultPipelining ?? 1; - } - var Client = class extends DispatcherBase { - /** - * - * @param {string|URL} url - * @param {import('../../types/client.js').Client.Options} options - */ - constructor(url, { - interceptors, - maxHeaderSize, - headersTimeout, - socketTimeout, - requestTimeout, - connectTimeout, - bodyTimeout, - idleTimeout, - keepAlive, - keepAliveTimeout, - maxKeepAliveTimeout, - keepAliveMaxTimeout, - keepAliveTimeoutThreshold, - socketPath, - pipelining, - tls, - strictContentLength, - maxCachedSessions, - maxRedirections, - connect: connect2, - maxRequestsPerClient, - localAddress, - maxResponseSize, - autoSelectFamily, - autoSelectFamilyAttemptTimeout, - // h2 - maxConcurrentStreams, - allowH2, - webSocket - } = {}) { - super({ webSocket }); - if (keepAlive !== void 0) { - throw new InvalidArgumentError("unsupported keepAlive, use pipelining=0 instead"); - } - if (socketTimeout !== void 0) { - throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead"); - } - if (requestTimeout !== void 0) { - throw new InvalidArgumentError("unsupported requestTimeout, use headersTimeout & bodyTimeout instead"); - } - if (idleTimeout !== void 0) { - throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead"); - } - if (maxKeepAliveTimeout !== void 0) { - throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead"); - } - if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { - throw new InvalidArgumentError("invalid maxHeaderSize"); - } - if (socketPath != null && typeof socketPath !== "string") { - throw new InvalidArgumentError("invalid socketPath"); - } - if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { - throw new InvalidArgumentError("invalid connectTimeout"); - } - if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { - throw new InvalidArgumentError("invalid keepAliveTimeout"); - } - if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { - throw new InvalidArgumentError("invalid keepAliveMaxTimeout"); - } - if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { - throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold"); - } - if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { - throw new InvalidArgumentError("headersTimeout must be a positive integer or zero"); - } - 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") { - throw new InvalidArgumentError("connect must be a function or an object"); - } - if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { - throw new InvalidArgumentError("maxRedirections must be a positive number"); - } - 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)) { - throw new InvalidArgumentError("localAddress must be valid string IP address"); - } - if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { - throw new InvalidArgumentError("maxResponseSize must be a positive number"); - } - if (autoSelectFamilyAttemptTimeout != null && (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1)) { - throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout must be a positive number"); - } - if (allowH2 != null && typeof allowH2 !== "boolean") { - throw new InvalidArgumentError("allowH2 must be a valid boolean value"); - } - if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== "number" || maxConcurrentStreams < 1)) { - throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0"); - } - if (typeof connect2 !== "function") { - connect2 = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, - ...connect2 - }); - } - if (interceptors?.Client && Array.isArray(interceptors.Client)) { - this[kInterceptors] = interceptors.Client; - if (!deprecatedInterceptorWarned) { - deprecatedInterceptorWarned = true; - process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.", { - code: "UNDICI-CLIENT-INTERCEPTOR-DEPRECATED" - }); - } - } else { - this[kInterceptors] = [createRedirectInterceptor({ maxRedirections })]; - } - this[kUrl] = util.parseOrigin(url); - this[kConnector] = connect2; - this[kPipelining] = pipelining != null ? pipelining : 1; - this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize; - this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout; - this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 6e5 : keepAliveMaxTimeout; - this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 2e3 : keepAliveTimeoutThreshold; - this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout]; - this[kServerName] = null; - this[kLocalAddress] = localAddress != null ? localAddress : null; - this[kResuming] = 0; - this[kNeedDrain] = 0; - this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r -`; - this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 3e5; - this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 3e5; - this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength; - this[kMaxRedirections] = maxRedirections; - this[kMaxRequests] = maxRequestsPerClient; - this[kClosedResolve] = null; - this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1; - this[kMaxConcurrentStreams] = maxConcurrentStreams != null ? maxConcurrentStreams : 100; - this[kHTTPContext] = null; - this[kQueue] = []; - this[kRunningIdx] = 0; - this[kPendingIdx] = 0; - this[kResume] = (sync) => resume(this, sync); - this[kOnError] = (err) => onError(this, err); - } - get pipelining() { - return this[kPipelining]; - } - set pipelining(value) { - this[kPipelining] = value; - this[kResume](true); - } - get [kPending]() { - return this[kQueue].length - this[kPendingIdx]; - } - get [kRunning]() { - return this[kPendingIdx] - this[kRunningIdx]; - } - get [kSize]() { - return this[kQueue].length - this[kRunningIdx]; - } - get [kConnected]() { - return !!this[kHTTPContext] && !this[kConnecting] && !this[kHTTPContext].destroyed; - } - get [kBusy]() { - return Boolean( - this[kHTTPContext]?.busy(null) || this[kSize] >= (getPipelining(this) || 1) || this[kPending] > 0 - ); - } - /* istanbul ignore: only used for test */ - [kConnect](cb) { - connect(this); - this.once("connect", cb); - } - [kDispatch](opts, handler) { - const origin = opts.origin || this[kUrl].origin; - const request = new Request(origin, opts, handler); - this[kQueue].push(request); - if (this[kResuming]) { - } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { - this[kResuming] = 1; - queueMicrotask(() => resume(this)); - } else { - this[kResume](true); - } - if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { - this[kNeedDrain] = 2; - } - return this[kNeedDrain] < 2; - } - async [kClose]() { - return new Promise((resolve) => { - if (this[kSize]) { - this[kClosedResolve] = resolve; - } else { - resolve(null); - } - }); - } - async [kDestroy](err) { - return new Promise((resolve) => { - const requests = this[kQueue].splice(this[kPendingIdx]); - for (let i = 0; i < requests.length; i++) { - const request = requests[i]; - util.errorRequest(this, request, err); - } - const callback = () => { - if (this[kClosedResolve]) { - this[kClosedResolve](); - this[kClosedResolve] = null; - } - resolve(null); - }; - if (this[kHTTPContext]) { - this[kHTTPContext].destroy(err, callback); - this[kHTTPContext] = null; - } else { - queueMicrotask(callback); - } - this[kResume](); - }); - } - }; - var createRedirectInterceptor = require_redirect_interceptor(); - function onError(client, err) { - if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { - assert(client[kPendingIdx] === client[kRunningIdx]); - const requests = client[kQueue].splice(client[kRunningIdx]); - for (let i = 0; i < requests.length; i++) { - const request = requests[i]; - util.errorRequest(client, request, err); - } - assert(client[kSize] === 0); - } - } - async function connect(client) { - assert(!client[kConnecting]); - assert(!client[kHTTPContext]); - let { host, hostname, protocol, port } = client[kUrl]; - if (hostname[0] === "[") { - const idx = hostname.indexOf("]"); - assert(idx !== -1); - const ip = hostname.substring(1, idx); - assert(net.isIP(ip)); - hostname = ip; - } - client[kConnecting] = true; - if (channels.beforeConnect.hasSubscribers) { - channels.beforeConnect.publish({ - connectParams: { - host, - hostname, - protocol, - port, - version: client[kHTTPContext]?.version, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector] - }); - } - try { - const socket = await new Promise((resolve, reject) => { - client[kConnector]({ - host, - hostname, - protocol, - port, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, (err, socket2) => { - if (err) { - reject(err); - } else { - resolve(socket2); - } - }); - }); - if (client.destroyed) { - util.destroy(socket.on("error", noop), new ClientDestroyedError()); - return; - } - assert(socket); - try { - client[kHTTPContext] = socket.alpnProtocol === "h2" ? await connectH2(client, socket) : await connectH1(client, socket); - } catch (err) { - socket.destroy().on("error", noop); - throw err; - } - client[kConnecting] = false; - socket[kCounter] = 0; - socket[kMaxRequests] = client[kMaxRequests]; - socket[kClient] = client; - socket[kError] = null; - if (channels.connected.hasSubscribers) { - channels.connected.publish({ - connectParams: { - host, - hostname, - protocol, - port, - version: client[kHTTPContext]?.version, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - socket - }); - } - client.emit("connect", client[kUrl], [client]); - } catch (err) { - if (client.destroyed) { - return; - } - client[kConnecting] = false; - if (channels.connectError.hasSubscribers) { - channels.connectError.publish({ - connectParams: { - host, - hostname, - protocol, - port, - version: client[kHTTPContext]?.version, - servername: client[kServerName], - localAddress: client[kLocalAddress] - }, - connector: client[kConnector], - error: err - }); - } - if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { - assert(client[kRunning] === 0); - while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { - const request = client[kQueue][client[kPendingIdx]++]; - util.errorRequest(client, request, err); - } - } else { - onError(client, err); - } - client.emit("connectionError", client[kUrl], [client], err); - } - client[kResume](); - } - function emitDrain(client) { - client[kNeedDrain] = 0; - client.emit("drain", client[kUrl], [client]); - } - function resume(client, sync) { - if (client[kResuming] === 2) { - return; - } - client[kResuming] = 2; - _resume(client, sync); - client[kResuming] = 0; - if (client[kRunningIdx] > 256) { - client[kQueue].splice(0, client[kRunningIdx]); - client[kPendingIdx] -= client[kRunningIdx]; - client[kRunningIdx] = 0; - } - } - function _resume(client, sync) { - while (true) { - if (client.destroyed) { - assert(client[kPending] === 0); - return; - } - if (client[kClosedResolve] && !client[kSize]) { - client[kClosedResolve](); - client[kClosedResolve] = null; - return; - } - if (client[kHTTPContext]) { - client[kHTTPContext].resume(); - } - if (client[kBusy]) { - client[kNeedDrain] = 2; - } else if (client[kNeedDrain] === 2) { - if (sync) { - client[kNeedDrain] = 1; - queueMicrotask(() => emitDrain(client)); - } else { - emitDrain(client); - } - continue; - } - if (client[kPending] === 0) { - return; - } - if (client[kRunning] >= (getPipelining(client) || 1)) { - return; - } - const request = client[kQueue][client[kPendingIdx]]; - if (client[kUrl].protocol === "https:" && client[kServerName] !== request.servername) { - if (client[kRunning] > 0) { - return; - } - client[kServerName] = request.servername; - client[kHTTPContext]?.destroy(new InformationalError("servername changed"), () => { - client[kHTTPContext] = null; - resume(client); - }); - } - if (client[kConnecting]) { - return; - } - if (!client[kHTTPContext]) { - connect(client); - return; - } - if (client[kHTTPContext].destroyed) { - return; - } - if (client[kHTTPContext].busy(request)) { - return; - } - if (!request.aborted && client[kHTTPContext].write(request)) { - client[kPendingIdx]++; - } else { - client[kQueue].splice(client[kPendingIdx], 1); - } - } - } - module.exports = Client; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/fixed-queue.js -var require_fixed_queue = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/fixed-queue.js"(exports, module) { - "use strict"; - var kSize = 2048; - var kMask = kSize - 1; - var FixedCircularBuffer = class { - constructor() { - this.bottom = 0; - this.top = 0; - this.list = new Array(kSize); - this.next = null; - } - isEmpty() { - return this.top === this.bottom; - } - isFull() { - return (this.top + 1 & kMask) === this.bottom; - } - push(data) { - this.list[this.top] = data; - this.top = this.top + 1 & kMask; - } - shift() { - const nextItem = this.list[this.bottom]; - if (nextItem === void 0) - return null; - this.list[this.bottom] = void 0; - this.bottom = this.bottom + 1 & kMask; - return nextItem; - } - }; - module.exports = class FixedQueue { - constructor() { - this.head = this.tail = new FixedCircularBuffer(); - } - isEmpty() { - return this.head.isEmpty(); - } - push(data) { - if (this.head.isFull()) { - this.head = this.head.next = new FixedCircularBuffer(); - } - this.head.push(data); - } - shift() { - const tail = this.tail; - const next = tail.shift(); - if (tail.isEmpty() && tail.next !== null) { - this.tail = tail.next; - } - return next; - } - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool-stats.js -var require_pool_stats = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool-stats.js"(exports, module) { - var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(); - var kPool = /* @__PURE__ */ Symbol("pool"); - var PoolStats = class { - constructor(pool) { - this[kPool] = pool; - } - get connected() { - return this[kPool][kConnected]; - } - get free() { - return this[kPool][kFree]; - } - get pending() { - return this[kPool][kPending]; - } - get queued() { - return this[kPool][kQueued]; - } - get running() { - return this[kPool][kRunning]; - } - get size() { - return this[kPool][kSize]; - } - }; - module.exports = PoolStats; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool-base.js -var require_pool_base = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool-base.js"(exports, module) { - "use strict"; - var DispatcherBase = require_dispatcher_base(); - var FixedQueue = require_fixed_queue(); - var { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(); - var PoolStats = require_pool_stats(); - var kClients = /* @__PURE__ */ Symbol("clients"); - var kNeedDrain = /* @__PURE__ */ Symbol("needDrain"); - var kQueue = /* @__PURE__ */ Symbol("queue"); - var kClosedResolve = /* @__PURE__ */ Symbol("closed resolve"); - var kOnDrain = /* @__PURE__ */ Symbol("onDrain"); - var kOnConnect = /* @__PURE__ */ Symbol("onConnect"); - var kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"); - var kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"); - var kGetDispatcher = /* @__PURE__ */ Symbol("get dispatcher"); - var kAddClient = /* @__PURE__ */ Symbol("add client"); - var kRemoveClient = /* @__PURE__ */ Symbol("remove client"); - var kStats = /* @__PURE__ */ Symbol("stats"); - var PoolBase = class extends DispatcherBase { - constructor(opts) { - super(opts); - this[kQueue] = new FixedQueue(); - this[kClients] = []; - this[kQueued] = 0; - const pool = this; - this[kOnDrain] = function onDrain(origin, targets) { - const queue = pool[kQueue]; - let needDrain = false; - while (!needDrain) { - const item = queue.shift(); - if (!item) { - break; - } - pool[kQueued]--; - needDrain = !this.dispatch(item.opts, item.handler); - } - this[kNeedDrain] = needDrain; - if (!this[kNeedDrain] && pool[kNeedDrain]) { - pool[kNeedDrain] = false; - pool.emit("drain", origin, [pool, ...targets]); - } - if (pool[kClosedResolve] && queue.isEmpty()) { - Promise.all(pool[kClients].map((c) => c.close())).then(pool[kClosedResolve]); - } - }; - this[kOnConnect] = (origin, targets) => { - pool.emit("connect", origin, [pool, ...targets]); - }; - this[kOnDisconnect] = (origin, targets, err) => { - pool.emit("disconnect", origin, [pool, ...targets], err); - }; - this[kOnConnectionError] = (origin, targets, err) => { - pool.emit("connectionError", origin, [pool, ...targets], err); - }; - this[kStats] = new PoolStats(this); - } - get [kBusy]() { - return this[kNeedDrain]; - } - get [kConnected]() { - return this[kClients].filter((client) => client[kConnected]).length; - } - get [kFree]() { - return this[kClients].filter((client) => client[kConnected] && !client[kNeedDrain]).length; - } - get [kPending]() { - let ret = this[kQueued]; - for (const { [kPending]: pending } of this[kClients]) { - ret += pending; - } - return ret; - } - get [kRunning]() { - let ret = 0; - for (const { [kRunning]: running } of this[kClients]) { - ret += running; - } - return ret; - } - get [kSize]() { - let ret = this[kQueued]; - for (const { [kSize]: size } of this[kClients]) { - ret += size; - } - return ret; - } - get stats() { - return this[kStats]; - } - async [kClose]() { - if (this[kQueue].isEmpty()) { - await Promise.all(this[kClients].map((c) => c.close())); - } else { - await new Promise((resolve) => { - this[kClosedResolve] = resolve; - }); - } - } - async [kDestroy](err) { - while (true) { - const item = this[kQueue].shift(); - if (!item) { - break; - } - item.handler.onError(err); - } - await Promise.all(this[kClients].map((c) => c.destroy(err))); - } - [kDispatch](opts, handler) { - const dispatcher = this[kGetDispatcher](); - if (!dispatcher) { - this[kNeedDrain] = true; - this[kQueue].push({ opts, handler }); - this[kQueued]++; - } else if (!dispatcher.dispatch(opts, handler)) { - dispatcher[kNeedDrain] = true; - this[kNeedDrain] = !this[kGetDispatcher](); - } - return !this[kNeedDrain]; - } - [kAddClient](client) { - client.on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); - this[kClients].push(client); - if (this[kNeedDrain]) { - queueMicrotask(() => { - if (this[kNeedDrain]) { - this[kOnDrain](client[kUrl], [this, client]); - } - }); - } - return this; - } - [kRemoveClient](client) { - client.close(() => { - const idx = this[kClients].indexOf(client); - if (idx !== -1) { - this[kClients].splice(idx, 1); - } - }); - this[kNeedDrain] = this[kClients].some((dispatcher) => !dispatcher[kNeedDrain] && dispatcher.closed !== true && dispatcher.destroyed !== true); - } - }; - module.exports = { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool.js -var require_pool = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool.js"(exports, module) { - "use strict"; - var { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kGetDispatcher - } = require_pool_base(); - var Client = require_client(); - var { - InvalidArgumentError - } = require_errors(); - var util = require_util(); - var { kUrl, kInterceptors } = require_symbols(); - var buildConnector = require_connect(); - var kOptions = /* @__PURE__ */ Symbol("options"); - var kConnections = /* @__PURE__ */ Symbol("connections"); - var kFactory = /* @__PURE__ */ Symbol("factory"); - function defaultFactory(origin, opts) { - return new Client(origin, opts); - } - var Pool = class extends PoolBase { - constructor(origin, { - connections, - factory = defaultFactory, - connect, - connectTimeout, - tls, - maxCachedSessions, - socketPath, - autoSelectFamily, - autoSelectFamilyAttemptTimeout, - allowH2, - ...options - } = {}) { - if (connections != null && (!Number.isFinite(connections) || connections < 0)) { - throw new InvalidArgumentError("invalid connections"); - } - if (typeof factory !== "function") { - throw new InvalidArgumentError("factory must be a function."); - } - if (connect != null && typeof connect !== "function" && typeof connect !== "object") { - throw new InvalidArgumentError("connect must be a function or an object"); - } - if (typeof connect !== "function") { - connect = buildConnector({ - ...tls, - maxCachedSessions, - allowH2, - socketPath, - timeout: connectTimeout, - ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, - ...connect - }); - } - super(options); - this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : []; - this[kConnections] = connections || null; - this[kUrl] = util.parseOrigin(origin); - this[kOptions] = { ...util.deepClone(options), connect, allowH2 }; - this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; - this[kFactory] = factory; - this.on("connectionError", (origin2, targets, error2) => { - for (const target of targets) { - const idx = this[kClients].indexOf(target); - if (idx !== -1) { - this[kClients].splice(idx, 1); - } - } - }); - } - [kGetDispatcher]() { - for (const client of this[kClients]) { - if (!client[kNeedDrain]) { - return client; - } - } - if (!this[kConnections] || this[kClients].length < this[kConnections]) { - const dispatcher = this[kFactory](this[kUrl], this[kOptions]); - this[kAddClient](dispatcher); - return dispatcher; - } - } - }; - module.exports = Pool; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/balanced-pool.js -var require_balanced_pool = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/balanced-pool.js"(exports, module) { - "use strict"; - var { - BalancedPoolMissingUpstreamError, - InvalidArgumentError - } = require_errors(); - var { - PoolBase, - kClients, - kNeedDrain, - kAddClient, - kRemoveClient, - kGetDispatcher - } = require_pool_base(); - var Pool = require_pool(); - var { kUrl, kInterceptors } = require_symbols(); - var { parseOrigin } = require_util(); - var kFactory = /* @__PURE__ */ Symbol("factory"); - var kOptions = /* @__PURE__ */ Symbol("options"); - var kGreatestCommonDivisor = /* @__PURE__ */ Symbol("kGreatestCommonDivisor"); - var kCurrentWeight = /* @__PURE__ */ Symbol("kCurrentWeight"); - var kIndex = /* @__PURE__ */ Symbol("kIndex"); - var kWeight = /* @__PURE__ */ Symbol("kWeight"); - var kMaxWeightPerServer = /* @__PURE__ */ Symbol("kMaxWeightPerServer"); - var kErrorPenalty = /* @__PURE__ */ Symbol("kErrorPenalty"); - function getGreatestCommonDivisor(a, b) { - if (a === 0) return b; - while (b !== 0) { - const t = b; - b = a % b; - a = t; - } - return a; - } - function defaultFactory(origin, opts) { - return new Pool(origin, opts); - } - var BalancedPool = class extends PoolBase { - constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}) { - super(); - this[kOptions] = opts; - this[kIndex] = -1; - this[kCurrentWeight] = 0; - this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100; - this[kErrorPenalty] = this[kOptions].errorPenalty || 15; - if (!Array.isArray(upstreams)) { - upstreams = [upstreams]; - } - if (typeof factory !== "function") { - throw new InvalidArgumentError("factory must be a function."); - } - this[kInterceptors] = opts.interceptors?.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) ? opts.interceptors.BalancedPool : []; - this[kFactory] = factory; - for (const upstream of upstreams) { - this.addUpstream(upstream); - } - this._updateBalancedPoolStats(); - } - addUpstream(upstream) { - const upstreamOrigin = parseOrigin(upstream).origin; - if (this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true)) { - return this; - } - const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])); - this[kAddClient](pool); - pool.on("connect", () => { - pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]); - }); - pool.on("connectionError", () => { - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); - this._updateBalancedPoolStats(); - }); - pool.on("disconnect", (...args) => { - const err = args[2]; - if (err && err.code === "UND_ERR_SOCKET") { - pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]); - this._updateBalancedPoolStats(); - } - }); - for (const client of this[kClients]) { - client[kWeight] = this[kMaxWeightPerServer]; - } - this._updateBalancedPoolStats(); - return this; - } - _updateBalancedPoolStats() { - let result = 0; - for (let i = 0; i < this[kClients].length; i++) { - result = getGreatestCommonDivisor(this[kClients][i][kWeight], result); - } - this[kGreatestCommonDivisor] = result; - } - removeUpstream(upstream) { - const upstreamOrigin = parseOrigin(upstream).origin; - const pool = this[kClients].find((pool2) => pool2[kUrl].origin === upstreamOrigin && pool2.closed !== true && pool2.destroyed !== true); - if (pool) { - this[kRemoveClient](pool); - } - return this; - } - get upstreams() { - return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p) => p[kUrl].origin); - } - [kGetDispatcher]() { - if (this[kClients].length === 0) { - throw new BalancedPoolMissingUpstreamError(); - } - const dispatcher = this[kClients].find((dispatcher2) => !dispatcher2[kNeedDrain] && dispatcher2.closed !== true && dispatcher2.destroyed !== true); - if (!dispatcher) { - return; - } - const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b) => a && b, true); - if (allClientsBusy) { - return; - } - let counter = 0; - let maxWeightIndex = this[kClients].findIndex((pool) => !pool[kNeedDrain]); - while (counter++ < this[kClients].length) { - this[kIndex] = (this[kIndex] + 1) % this[kClients].length; - const pool = this[kClients][this[kIndex]]; - if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { - maxWeightIndex = this[kIndex]; - } - if (this[kIndex] === 0) { - this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor]; - if (this[kCurrentWeight] <= 0) { - this[kCurrentWeight] = this[kMaxWeightPerServer]; - } - } - if (pool[kWeight] >= this[kCurrentWeight] && !pool[kNeedDrain]) { - return pool; - } - } - this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight]; - this[kIndex] = maxWeightIndex; - return this[kClients][maxWeightIndex]; - } - }; - module.exports = BalancedPool; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/agent.js -var require_agent = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/agent.js"(exports, module) { - "use strict"; - var { InvalidArgumentError } = require_errors(); - var { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); - var DispatcherBase = require_dispatcher_base(); - var Pool = require_pool(); - var Client = require_client(); - var util = require_util(); - var createRedirectInterceptor = require_redirect_interceptor(); - var kOnConnect = /* @__PURE__ */ Symbol("onConnect"); - var kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"); - var kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"); - var kMaxRedirections = /* @__PURE__ */ Symbol("maxRedirections"); - var kOnDrain = /* @__PURE__ */ Symbol("onDrain"); - var kFactory = /* @__PURE__ */ Symbol("factory"); - var kOptions = /* @__PURE__ */ Symbol("options"); - function defaultFactory(origin, opts) { - return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); - } - var Agent = class extends DispatcherBase { - constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { - if (typeof factory !== "function") { - throw new InvalidArgumentError("factory must be a function."); - } - if (connect != null && typeof connect !== "function" && typeof connect !== "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"); - } - super(options); - if (connect && typeof connect !== "function") { - connect = { ...connect }; - } - this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })]; - this[kOptions] = { ...util.deepClone(options), connect }; - this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; - this[kMaxRedirections] = maxRedirections; - this[kFactory] = factory; - this[kClients] = /* @__PURE__ */ new Map(); - this[kOnDrain] = (origin, targets) => { - this.emit("drain", origin, [this, ...targets]); - }; - this[kOnConnect] = (origin, targets) => { - this.emit("connect", origin, [this, ...targets]); - }; - this[kOnDisconnect] = (origin, targets, err) => { - this.emit("disconnect", origin, [this, ...targets], err); - }; - this[kOnConnectionError] = (origin, targets, err) => { - this.emit("connectionError", origin, [this, ...targets], err); - }; - } - get [kRunning]() { - let ret = 0; - for (const client of this[kClients].values()) { - ret += client[kRunning]; - } - return ret; - } - [kDispatch](opts, handler) { - let key; - if (opts.origin && (typeof opts.origin === "string" || opts.origin instanceof URL)) { - key = String(opts.origin); - } else { - throw new InvalidArgumentError("opts.origin must be a non-empty string or URL."); - } - let dispatcher = this[kClients].get(key); - if (!dispatcher) { - dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", this[kOnConnect]).on("disconnect", this[kOnDisconnect]).on("connectionError", this[kOnConnectionError]); - this[kClients].set(key, dispatcher); - } - return dispatcher.dispatch(opts, handler); - } - async [kClose]() { - const closePromises = []; - for (const client of this[kClients].values()) { - closePromises.push(client.close()); - } - this[kClients].clear(); - await Promise.all(closePromises); - } - async [kDestroy](err) { - const destroyPromises = []; - for (const client of this[kClients].values()) { - destroyPromises.push(client.destroy(err)); - } - this[kClients].clear(); - await Promise.all(destroyPromises); - } - }; - module.exports = Agent; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/proxy-agent.js -var require_proxy_agent = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/proxy-agent.js"(exports, module) { - "use strict"; - var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(); - var { URL: URL2 } = __require("node:url"); - var Agent = require_agent(); - var Pool = require_pool(); - var DispatcherBase = require_dispatcher_base(); - var { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors(); - var buildConnector = require_connect(); - var Client = require_client(); - var kAgent = /* @__PURE__ */ Symbol("proxy agent"); - var kClient = /* @__PURE__ */ Symbol("proxy client"); - var kProxyHeaders = /* @__PURE__ */ Symbol("proxy headers"); - var kRequestTls = /* @__PURE__ */ Symbol("request tls settings"); - var kProxyTls = /* @__PURE__ */ Symbol("proxy tls settings"); - var kConnectEndpoint = /* @__PURE__ */ Symbol("connect endpoint function"); - var kTunnelProxy = /* @__PURE__ */ Symbol("tunnel proxy"); - function defaultProtocolPort(protocol) { - return protocol === "https:" ? 443 : 80; - } - function defaultFactory(origin, opts) { - return new Pool(origin, opts); - } - var noop = () => { - }; - function defaultAgentFactory(origin, opts) { - if (opts.connections === 1) { - return new Client(origin, opts); - } - return new Pool(origin, opts); - } - var Http1ProxyWrapper = class extends DispatcherBase { - #client; - constructor(proxyUrl, { headers = {}, connect, factory }) { - super(); - if (!proxyUrl) { - throw new InvalidArgumentError("Proxy URL is mandatory"); - } - this[kProxyHeaders] = headers; - if (factory) { - this.#client = factory(proxyUrl, { connect }); - } else { - this.#client = new Client(proxyUrl, { connect }); - } - } - [kDispatch](opts, handler) { - const onHeaders = handler.onHeaders; - handler.onHeaders = function(statusCode, data, resume) { - if (statusCode === 407) { - if (typeof handler.onError === "function") { - handler.onError(new InvalidArgumentError("Proxy Authentication Required (407)")); - } - return; - } - if (onHeaders) onHeaders.call(this, statusCode, data, resume); - }; - const { - origin, - path: path2 = "/", - headers = {} - } = opts; - opts.path = origin + path2; - if (!("host" in headers) && !("Host" in headers)) { - const { host } = new URL2(origin); - headers.host = host; - } - opts.headers = { ...this[kProxyHeaders], ...headers }; - return this.#client[kDispatch](opts, handler); - } - async [kClose]() { - return this.#client.close(); - } - async [kDestroy](err) { - return this.#client.destroy(err); - } - }; - var ProxyAgent2 = class extends DispatcherBase { - constructor(opts) { - super(); - if (!opts || typeof opts === "object" && !(opts instanceof URL2) && !opts.uri) { - throw new InvalidArgumentError("Proxy uri is mandatory"); - } - const { clientFactory = defaultFactory } = opts; - if (typeof clientFactory !== "function") { - throw new InvalidArgumentError("Proxy opts.clientFactory must be a function."); - } - const { proxyTunnel = true } = opts; - const url = this.#getUrl(opts); - const { href, origin, port, protocol, username, password, hostname: proxyHostname } = url; - this[kProxy] = { uri: href, protocol }; - this[kInterceptors] = opts.interceptors?.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : []; - this[kRequestTls] = opts.requestTls; - this[kProxyTls] = opts.proxyTls; - this[kProxyHeaders] = opts.headers || {}; - this[kTunnelProxy] = proxyTunnel; - if (opts.auth && opts.token) { - throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); - } else if (opts.auth) { - this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}`; - } else if (opts.token) { - this[kProxyHeaders]["proxy-authorization"] = opts.token; - } else if (username && password) { - this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`; - } - const connect = buildConnector({ ...opts.proxyTls }); - this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); - const agentFactory = opts.factory || defaultAgentFactory; - const factory = (origin2, options) => { - const { protocol: protocol2 } = new URL2(origin2); - if (!this[kTunnelProxy] && protocol2 === "http:" && this[kProxy].protocol === "http:") { - return new Http1ProxyWrapper(this[kProxy].uri, { - headers: this[kProxyHeaders], - connect, - factory: agentFactory - }); - } - return agentFactory(origin2, options); - }; - this[kClient] = clientFactory(url, { connect }); - this[kAgent] = new Agent({ - ...opts, - factory, - connect: async (opts2, callback) => { - let requestedPath = opts2.host; - if (!opts2.port) { - requestedPath += `:${defaultProtocolPort(opts2.protocol)}`; - } - try { - const { socket, statusCode } = await this[kClient].connect({ - origin, - port, - path: requestedPath, - signal: opts2.signal, - headers: { - ...this[kProxyHeaders], - host: opts2.host - }, - servername: this[kProxyTls]?.servername || proxyHostname - }); - if (statusCode !== 200) { - socket.on("error", noop).destroy(); - callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); - } - if (opts2.protocol !== "https:") { - callback(null, socket); - return; - } - let servername; - if (this[kRequestTls]) { - servername = this[kRequestTls].servername; - } else { - servername = opts2.servername; - } - this[kConnectEndpoint]({ ...opts2, servername, httpSocket: socket }, callback); - } catch (err) { - if (err.code === "ERR_TLS_CERT_ALTNAME_INVALID") { - callback(new SecureProxyConnectionError(err)); - } else { - callback(err); - } - } - } - }); - } - dispatch(opts, handler) { - const headers = buildHeaders(opts.headers); - throwIfProxyAuthIsSent(headers); - if (headers && !("host" in headers) && !("Host" in headers)) { - const { host } = new URL2(opts.origin); - headers.host = host; - } - return this[kAgent].dispatch( - { - ...opts, - headers - }, - handler - ); - } - /** - * @param {import('../types/proxy-agent').ProxyAgent.Options | string | URL} opts - * @returns {URL} - */ - #getUrl(opts) { - if (typeof opts === "string") { - return new URL2(opts); - } else if (opts instanceof URL2) { - return opts; - } else { - return new URL2(opts.uri); - } - } - async [kClose]() { - await this[kAgent].close(); - await this[kClient].close(); - } - async [kDestroy]() { - await this[kAgent].destroy(); - await this[kClient].destroy(); - } - }; - function buildHeaders(headers) { - if (Array.isArray(headers)) { - const headersPair = {}; - for (let i = 0; i < headers.length; i += 2) { - headersPair[headers[i]] = headers[i + 1]; - } - return headersPair; - } - return headers; - } - function throwIfProxyAuthIsSent(headers) { - const existProxyAuth = headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization"); - if (existProxyAuth) { - throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); - } - } - module.exports = ProxyAgent2; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js -var require_env_http_proxy_agent = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports, module) { - "use strict"; - var DispatcherBase = require_dispatcher_base(); - var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(); - var ProxyAgent2 = require_proxy_agent(); - var Agent = require_agent(); - var DEFAULT_PORTS = { - "http:": 80, - "https:": 443 - }; - var experimentalWarned = false; - var EnvHttpProxyAgent = class extends DispatcherBase { - #noProxyValue = null; - #noProxyEntries = null; - #opts = null; - constructor(opts = {}) { - super(); - this.#opts = opts; - if (!experimentalWarned) { - experimentalWarned = true; - process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.", { - code: "UNDICI-EHPA" - }); - } - const { httpProxy, httpsProxy, noProxy, ...agentOpts } = opts; - this[kNoProxyAgent] = new Agent(agentOpts); - const HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; - if (HTTP_PROXY) { - this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY }); - } else { - this[kHttpProxyAgent] = this[kNoProxyAgent]; - } - const HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; - if (HTTPS_PROXY) { - this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY }); - } else { - this[kHttpsProxyAgent] = this[kHttpProxyAgent]; - } - this.#parseNoProxy(); - } - [kDispatch](opts, handler) { - const url = new URL(opts.origin); - const agent = this.#getProxyAgentForUrl(url); - return agent.dispatch(opts, handler); - } - async [kClose]() { - await this[kNoProxyAgent].close(); - if (!this[kHttpProxyAgent][kClosed]) { - await this[kHttpProxyAgent].close(); - } - if (!this[kHttpsProxyAgent][kClosed]) { - await this[kHttpsProxyAgent].close(); - } - } - async [kDestroy](err) { - await this[kNoProxyAgent].destroy(err); - if (!this[kHttpProxyAgent][kDestroyed]) { - await this[kHttpProxyAgent].destroy(err); - } - if (!this[kHttpsProxyAgent][kDestroyed]) { - await this[kHttpsProxyAgent].destroy(err); - } - } - #getProxyAgentForUrl(url) { - let { protocol, host: hostname, port } = url; - hostname = hostname.replace(/:\d*$/, "").toLowerCase(); - port = Number.parseInt(port, 10) || DEFAULT_PORTS[protocol] || 0; - if (!this.#shouldProxy(hostname, port)) { - return this[kNoProxyAgent]; - } - if (protocol === "https:") { - return this[kHttpsProxyAgent]; - } - return this[kHttpProxyAgent]; - } - #shouldProxy(hostname, port) { - if (this.#noProxyChanged) { - this.#parseNoProxy(); - } - if (this.#noProxyEntries.length === 0) { - return true; - } - if (this.#noProxyValue === "*") { - return false; - } - for (let i = 0; i < this.#noProxyEntries.length; i++) { - const entry = this.#noProxyEntries[i]; - if (entry.port && entry.port !== port) { - continue; - } - if (!/^[.*]/.test(entry.hostname)) { - if (hostname === entry.hostname) { - return false; - } - } else { - if (hostname.endsWith(entry.hostname.replace(/^\*/, ""))) { - return false; - } - } - } - return true; - } - #parseNoProxy() { - const noProxyValue = this.#opts.noProxy ?? this.#noProxyEnv; - const noProxySplit = noProxyValue.split(/[,\s]/); - const noProxyEntries = []; - for (let i = 0; i < noProxySplit.length; i++) { - const entry = noProxySplit[i]; - if (!entry) { - continue; - } - const parsed = entry.match(/^(.+):(\d+)$/); - noProxyEntries.push({ - hostname: (parsed ? parsed[1] : entry).toLowerCase(), - port: parsed ? Number.parseInt(parsed[2], 10) : 0 - }); - } - this.#noProxyValue = noProxyValue; - this.#noProxyEntries = noProxyEntries; - } - get #noProxyChanged() { - if (this.#opts.noProxy !== void 0) { - return false; - } - return this.#noProxyValue !== this.#noProxyEnv; - } - get #noProxyEnv() { - return process.env.no_proxy ?? process.env.NO_PROXY ?? ""; - } - }; - module.exports = EnvHttpProxyAgent; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/retry-handler.js -var require_retry_handler = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/retry-handler.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { kRetryHandlerDefaultRetry } = require_symbols(); - var { RequestRetryError } = require_errors(); - var { - isDisturbed, - parseHeaders, - parseRangeHeader, - wrapRequestBody - } = require_util(); - function calculateRetryAfterHeader(retryAfter) { - const current = Date.now(); - return new Date(retryAfter).getTime() - current; - } - function validatePartialResponseContentLength(headers, range, statusCode, retryCount) { - const contentLength = headers["content-length"]; - if (contentLength == null) { - return null; - } - if (!Number.isFinite(range.start) || !Number.isFinite(range.end)) { - return null; - } - const length = Number(contentLength); - const expectedLength = range.end - range.start + 1; - if (!Number.isFinite(length) || length !== expectedLength) { - return new RequestRetryError("Content-Length mismatch", statusCode, { - headers, - data: { count: retryCount } - }); - } - return null; - } - var RetryHandler = class _RetryHandler { - constructor(opts, handlers) { - const { retryOptions, ...dispatchOpts } = opts; - const { - // Retry scoped - retry: retryFn, - maxRetries, - maxTimeout, - minTimeout, - timeoutFactor, - // Response scoped - methods, - errorCodes, - retryAfter, - statusCodes - } = retryOptions ?? {}; - this.dispatch = handlers.dispatch; - this.handler = handlers.handler; - this.opts = { ...dispatchOpts, body: wrapRequestBody(opts.body) }; - this.abort = null; - this.aborted = false; - this.retryOpts = { - retry: retryFn ?? _RetryHandler[kRetryHandlerDefaultRetry], - retryAfter: retryAfter ?? true, - maxTimeout: maxTimeout ?? 30 * 1e3, - // 30s, - minTimeout: minTimeout ?? 500, - // .5s - timeoutFactor: timeoutFactor ?? 2, - maxRetries: maxRetries ?? 5, - // What errors we should retry - methods: methods ?? ["GET", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE"], - // Indicates which errors to retry - statusCodes: statusCodes ?? [500, 502, 503, 504, 429], - // List of errors to retry - errorCodes: errorCodes ?? [ - "ECONNRESET", - "ECONNREFUSED", - "ENOTFOUND", - "ENETDOWN", - "ENETUNREACH", - "EHOSTDOWN", - "EHOSTUNREACH", - "EPIPE", - "UND_ERR_SOCKET" - ] - }; - this.retryCount = 0; - this.retryCountCheckpoint = 0; - this.start = 0; - this.end = null; - this.etag = null; - this.resume = null; - this.handler.onConnect((reason) => { - this.aborted = true; - if (this.abort) { - this.abort(reason); - } else { - this.reason = reason; - } - }); - } - onRequestSent() { - if (this.handler.onRequestSent) { - this.handler.onRequestSent(); - } - } - onUpgrade(statusCode, headers, socket) { - if (this.handler.onUpgrade) { - this.handler.onUpgrade(statusCode, headers, socket); - } - } - onConnect(abort) { - if (this.aborted) { - abort(this.reason); - } else { - this.abort = abort; - } - } - onBodySent(chunk) { - if (this.handler.onBodySent) return this.handler.onBodySent(chunk); - } - static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { - const { statusCode, code, headers } = err; - const { method, retryOptions } = opts; - const { - maxRetries, - minTimeout, - maxTimeout, - timeoutFactor, - statusCodes, - errorCodes, - methods - } = retryOptions; - const { counter } = state; - if (code && code !== "UND_ERR_REQ_RETRY" && !errorCodes.includes(code)) { - cb(err); - return; - } - if (Array.isArray(methods) && !methods.includes(method)) { - cb(err); - return; - } - if (statusCode != null && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) { - cb(err); - return; - } - if (counter > maxRetries) { - cb(err); - return; - } - let retryAfterHeader = headers?.["retry-after"]; - if (retryAfterHeader) { - retryAfterHeader = Number(retryAfterHeader); - retryAfterHeader = Number.isNaN(retryAfterHeader) ? calculateRetryAfterHeader(retryAfterHeader) : retryAfterHeader * 1e3; - } - const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout); - setTimeout(() => cb(null), retryTimeout); - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const headers = parseHeaders(rawHeaders); - this.retryCount += 1; - if (statusCode >= 300) { - if (this.retryOpts.statusCodes.includes(statusCode) === false) { - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ); - } else { - this.abort( - new RequestRetryError("Request failed", statusCode, { - headers, - data: { - count: this.retryCount - } - }) - ); - return false; - } - } - if (this.resume != null) { - this.resume = null; - if (statusCode !== 206 && (this.start > 0 || statusCode !== 200)) { - this.abort( - new RequestRetryError("server does not support the range header and the payload was partially consumed", statusCode, { - headers, - data: { count: this.retryCount } - }) - ); - return false; - } - const contentRange = parseRangeHeader(headers["content-range"]); - if (!contentRange) { - this.abort( - new RequestRetryError("Content-Range mismatch", statusCode, { - headers, - data: { count: this.retryCount } - }) - ); - return false; - } - if (this.etag != null && this.etag !== headers.etag) { - this.abort( - new RequestRetryError("ETag mismatch", statusCode, { - headers, - data: { count: this.retryCount } - }) - ); - return false; - } - const contentLengthError = validatePartialResponseContentLength(headers, contentRange, statusCode, this.retryCount); - if (contentLengthError != null) { - this.abort(contentLengthError); - return false; - } - const { start, size, end = size - 1 } = contentRange; - assert(this.start === start, "content-range mismatch"); - assert(this.end == null || this.end === end, "content-range mismatch"); - this.resume = resume; - return true; - } - if (this.end == null) { - if (statusCode === 206) { - const range = parseRangeHeader(headers["content-range"]); - if (range == null) { - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ); - } - const contentLengthError = validatePartialResponseContentLength(headers, range, statusCode, this.retryCount); - if (contentLengthError != null) { - this.abort(contentLengthError); - return false; - } - const { start, size, end = size - 1 } = range; - assert( - start != null && Number.isFinite(start), - "content-range mismatch" - ); - assert(end != null && Number.isFinite(end), "invalid content-length"); - this.start = start; - this.end = end; - } - if (this.end == null) { - const contentLength = headers["content-length"]; - this.end = contentLength != null ? Number(contentLength) - 1 : null; - } - assert(Number.isFinite(this.start)); - assert( - this.end == null || Number.isFinite(this.end), - "invalid content-length" - ); - this.resume = resume; - this.etag = headers.etag != null ? headers.etag : null; - if (this.etag != null && this.etag.startsWith("W/")) { - this.etag = null; - } - return this.handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ); - } - const err = new RequestRetryError("Request failed", statusCode, { - headers, - data: { count: this.retryCount } - }); - this.abort(err); - return false; - } - onData(chunk) { - this.start += chunk.length; - return this.handler.onData(chunk); - } - onComplete(rawTrailers) { - this.retryCount = 0; - return this.handler.onComplete(rawTrailers); - } - onError(err) { - if (this.aborted || isDisturbed(this.opts.body)) { - return this.handler.onError(err); - } - if (this.retryCount - this.retryCountCheckpoint > 0) { - this.retryCount = this.retryCountCheckpoint + (this.retryCount - this.retryCountCheckpoint); - } else { - this.retryCount += 1; - } - this.retryOpts.retry( - err, - { - state: { counter: this.retryCount }, - opts: { retryOptions: this.retryOpts, ...this.opts } - }, - onRetry.bind(this) - ); - function onRetry(err2) { - if (err2 != null || this.aborted || isDisturbed(this.opts.body)) { - return this.handler.onError(err2); - } - if (this.start !== 0) { - const headers = { range: `bytes=${this.start}-${this.end ?? ""}` }; - if (this.etag != null) { - headers["if-match"] = this.etag; - } - this.opts = { - ...this.opts, - headers: { - ...this.opts.headers, - ...headers - } - }; - } - try { - this.retryCountCheckpoint = this.retryCount; - this.dispatch(this.opts, this); - } catch (err3) { - this.handler.onError(err3); - } - } - } - }; - module.exports = RetryHandler; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/retry-agent.js -var require_retry_agent = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/retry-agent.js"(exports, module) { - "use strict"; - var Dispatcher = require_dispatcher(); - var RetryHandler = require_retry_handler(); - var RetryAgent = class extends Dispatcher { - #agent = null; - #options = null; - constructor(agent, options = {}) { - super(options); - this.#agent = agent; - this.#options = options; - } - dispatch(opts, handler) { - const retry = new RetryHandler({ - ...opts, - retryOptions: this.#options - }, { - dispatch: this.#agent.dispatch.bind(this.#agent), - handler - }); - return this.#agent.dispatch(opts, retry); - } - close() { - return this.#agent.close(); - } - destroy() { - return this.#agent.destroy(); - } - }; - module.exports = RetryAgent; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/readable.js -var require_readable = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/readable.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { Readable } = __require("node:stream"); - var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = require_errors(); - var util = require_util(); - var { ReadableStreamFrom } = require_util(); - var kConsume = /* @__PURE__ */ Symbol("kConsume"); - var kReading = /* @__PURE__ */ Symbol("kReading"); - var kBody = /* @__PURE__ */ Symbol("kBody"); - var kAbort = /* @__PURE__ */ Symbol("kAbort"); - var kContentType = /* @__PURE__ */ Symbol("kContentType"); - var kContentLength = /* @__PURE__ */ Symbol("kContentLength"); - var noop = () => { - }; - var BodyReadable = class extends Readable { - constructor({ - resume, - abort, - contentType = "", - contentLength, - highWaterMark = 64 * 1024 - // Same as nodejs fs streams. - }) { - super({ - autoDestroy: true, - read: resume, - highWaterMark - }); - this._readableState.dataEmitted = false; - this[kAbort] = abort; - this[kConsume] = null; - this[kBody] = null; - this[kContentType] = contentType; - this[kContentLength] = contentLength; - this[kReading] = false; - } - destroy(err) { - if (!err && !this._readableState.endEmitted) { - err = new RequestAbortedError(); - } - if (err) { - this[kAbort](); - } - return super.destroy(err); - } - _destroy(err, callback) { - if (!this[kReading]) { - setImmediate(() => { - callback(err); - }); - } else { - callback(err); - } - } - on(ev, ...args) { - if (ev === "data" || ev === "readable") { - this[kReading] = true; - } - return super.on(ev, ...args); - } - addListener(ev, ...args) { - return this.on(ev, ...args); - } - off(ev, ...args) { - const ret = super.off(ev, ...args); - if (ev === "data" || ev === "readable") { - this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0; - } - return ret; - } - removeListener(ev, ...args) { - return this.off(ev, ...args); - } - push(chunk) { - if (this[kConsume] && chunk !== null) { - consumePush(this[kConsume], chunk); - return this[kReading] ? super.push(chunk) : true; - } - return super.push(chunk); - } - // https://fetch.spec.whatwg.org/#dom-body-text - async text() { - return consume(this, "text"); - } - // https://fetch.spec.whatwg.org/#dom-body-json - async json() { - return consume(this, "json"); - } - // https://fetch.spec.whatwg.org/#dom-body-blob - async blob() { - return consume(this, "blob"); - } - // https://fetch.spec.whatwg.org/#dom-body-bytes - async bytes() { - return consume(this, "bytes"); - } - // https://fetch.spec.whatwg.org/#dom-body-arraybuffer - async arrayBuffer() { - return consume(this, "arrayBuffer"); - } - // https://fetch.spec.whatwg.org/#dom-body-formdata - async formData() { - throw new NotSupportedError(); - } - // https://fetch.spec.whatwg.org/#dom-body-bodyused - get bodyUsed() { - return util.isDisturbed(this); - } - // https://fetch.spec.whatwg.org/#dom-body-body - get body() { - if (!this[kBody]) { - this[kBody] = ReadableStreamFrom(this); - if (this[kConsume]) { - this[kBody].getReader(); - assert(this[kBody].locked); - } - } - return this[kBody]; - } - async dump(opts) { - let limit = Number.isFinite(opts?.limit) ? opts.limit : 128 * 1024; - const signal = opts?.signal; - if (signal != null && (typeof signal !== "object" || !("aborted" in signal))) { - throw new InvalidArgumentError("signal must be an AbortSignal"); - } - signal?.throwIfAborted(); - if (this._readableState.closeEmitted) { - return null; - } - return await new Promise((resolve, reject) => { - if (this[kContentLength] > limit) { - this.destroy(new AbortError()); - } - const onAbort = () => { - this.destroy(signal.reason ?? new AbortError()); - }; - signal?.addEventListener("abort", onAbort); - this.on("close", function() { - signal?.removeEventListener("abort", onAbort); - if (signal?.aborted) { - reject(signal.reason ?? new AbortError()); - } else { - resolve(null); - } - }).on("error", noop).on("data", function(chunk) { - limit -= chunk.length; - if (limit <= 0) { - this.destroy(); - } - }).resume(); - }); - } - }; - function isLocked(self) { - return self[kBody] && self[kBody].locked === true || self[kConsume]; - } - function isUnusable(self) { - return util.isDisturbed(self) || isLocked(self); - } - async function consume(stream, type) { - assert(!stream[kConsume]); - return new Promise((resolve, reject) => { - if (isUnusable(stream)) { - const rState = stream._readableState; - if (rState.destroyed && rState.closeEmitted === false) { - stream.on("error", (err) => { - reject(err); - }).on("close", () => { - reject(new TypeError("unusable")); - }); - } else { - reject(rState.errored ?? new TypeError("unusable")); - } - } else { - queueMicrotask(() => { - stream[kConsume] = { - type, - stream, - resolve, - reject, - length: 0, - body: [] - }; - stream.on("error", function(err) { - consumeFinish(this[kConsume], err); - }).on("close", function() { - if (this[kConsume].body !== null) { - consumeFinish(this[kConsume], new RequestAbortedError()); - } - }); - consumeStart(stream[kConsume]); - }); - } - }); - } - function consumeStart(consume2) { - if (consume2.body === null) { - return; - } - const { _readableState: state } = consume2.stream; - if (state.bufferIndex) { - const start = state.bufferIndex; - const end = state.buffer.length; - for (let n = start; n < end; n++) { - consumePush(consume2, state.buffer[n]); - } - } else { - for (const chunk of state.buffer) { - consumePush(consume2, chunk); - } - } - if (state.endEmitted) { - consumeEnd(this[kConsume]); - } else { - consume2.stream.on("end", function() { - consumeEnd(this[kConsume]); - }); - } - consume2.stream.resume(); - while (consume2.stream.read() != null) { - } - } - function chunksDecode(chunks, length) { - if (chunks.length === 0 || length === 0) { - return ""; - } - const buffer = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length); - const bufferLength = buffer.length; - const start = bufferLength > 2 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 ? 3 : 0; - return buffer.utf8Slice(start, bufferLength); - } - function chunksConcat(chunks, length) { - if (chunks.length === 0 || length === 0) { - return new Uint8Array(0); - } - if (chunks.length === 1) { - return new Uint8Array(chunks[0]); - } - const buffer = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer); - let offset = 0; - for (let i = 0; i < chunks.length; ++i) { - const chunk = chunks[i]; - buffer.set(chunk, offset); - offset += chunk.length; - } - return buffer; - } - function consumeEnd(consume2) { - const { type, body, resolve, stream, length } = consume2; - try { - if (type === "text") { - resolve(chunksDecode(body, length)); - } else if (type === "json") { - resolve(JSON.parse(chunksDecode(body, length))); - } else if (type === "arrayBuffer") { - resolve(chunksConcat(body, length).buffer); - } else if (type === "blob") { - resolve(new Blob(body, { type: stream[kContentType] })); - } else if (type === "bytes") { - resolve(chunksConcat(body, length)); - } - consumeFinish(consume2); - } catch (err) { - stream.destroy(err); - } - } - function consumePush(consume2, chunk) { - consume2.length += chunk.length; - consume2.body.push(chunk); - } - function consumeFinish(consume2, err) { - if (consume2.body === null) { - return; - } - if (err) { - consume2.reject(err); - } else { - consume2.resolve(); - } - consume2.type = null; - consume2.stream = null; - consume2.resolve = null; - consume2.reject = null; - consume2.length = 0; - consume2.body = null; - } - module.exports = { Readable: BodyReadable, chunksDecode }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/util.js -var require_util3 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/util.js"(exports, module) { - var assert = __require("node:assert"); - var { - ResponseStatusCodeError - } = require_errors(); - var { chunksDecode } = require_readable(); - var CHUNK_LIMIT = 128 * 1024; - async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body); - let chunks = []; - let length = 0; - try { - for await (const chunk of body) { - chunks.push(chunk); - length += chunk.length; - if (length > CHUNK_LIMIT) { - chunks = []; - length = 0; - break; - } - } - } catch { - chunks = []; - length = 0; - } - const message = `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`; - if (statusCode === 204 || !contentType || !length) { - queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers))); - return; - } - const stackTraceLimit = Error.stackTraceLimit; - Error.stackTraceLimit = 0; - let payload; - try { - if (isContentTypeApplicationJson(contentType)) { - payload = JSON.parse(chunksDecode(chunks, length)); - } else if (isContentTypeText(contentType)) { - payload = chunksDecode(chunks, length); - } - } catch { - } finally { - Error.stackTraceLimit = stackTraceLimit; - } - queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers, payload))); - } - var isContentTypeApplicationJson = (contentType) => { - return contentType.length > 15 && contentType[11] === "/" && contentType[0] === "a" && contentType[1] === "p" && contentType[2] === "p" && contentType[3] === "l" && contentType[4] === "i" && contentType[5] === "c" && contentType[6] === "a" && contentType[7] === "t" && contentType[8] === "i" && contentType[9] === "o" && contentType[10] === "n" && contentType[12] === "j" && contentType[13] === "s" && contentType[14] === "o" && contentType[15] === "n"; - }; - var isContentTypeText = (contentType) => { - return contentType.length > 4 && contentType[4] === "/" && contentType[0] === "t" && contentType[1] === "e" && contentType[2] === "x" && contentType[3] === "t"; - }; - module.exports = { - getResolveErrorBodyCallback, - isContentTypeApplicationJson, - isContentTypeText - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-request.js -var require_api_request = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-request.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { Readable } = require_readable(); - var { InvalidArgumentError, RequestAbortedError } = require_errors(); - var util = require_util(); - var { getResolveErrorBodyCallback } = require_util3(); - var { AsyncResource } = __require("node:async_hooks"); - var RequestHandler = class extends AsyncResource { - constructor(opts, callback) { - if (!opts || typeof opts !== "object") { - throw new InvalidArgumentError("invalid opts"); - } - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; - try { - if (typeof callback !== "function") { - throw new InvalidArgumentError("invalid callback"); - } - if (highWaterMark && (typeof highWaterMark !== "number" || highWaterMark < 0)) { - throw new InvalidArgumentError("invalid highWaterMark"); - } - if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { - throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); - } - if (method === "CONNECT") { - throw new InvalidArgumentError("invalid method"); - } - if (onInfo && typeof onInfo !== "function") { - throw new InvalidArgumentError("invalid onInfo callback"); - } - super("UNDICI_REQUEST"); - } catch (err) { - if (util.isStream(body)) { - util.destroy(body.on("error", util.nop), err); - } - throw err; - } - this.method = method; - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.callback = callback; - this.res = null; - this.abort = null; - this.body = body; - this.trailers = {}; - this.context = null; - this.onInfo = onInfo || null; - this.throwOnError = throwOnError; - this.highWaterMark = highWaterMark; - this.signal = signal; - this.reason = null; - this.removeAbortListener = null; - if (util.isStream(body)) { - body.on("error", (err) => { - this.onError(err); - }); - } - if (this.signal) { - if (this.signal.aborted) { - this.reason = this.signal.reason ?? new RequestAbortedError(); - } else { - this.removeAbortListener = util.addAbortListener(this.signal, () => { - this.reason = this.signal.reason ?? new RequestAbortedError(); - if (this.res) { - util.destroy(this.res.on("error", util.nop), this.reason); - } else if (this.abort) { - this.abort(this.reason); - } - if (this.removeAbortListener) { - this.res?.off("close", this.removeAbortListener); - this.removeAbortListener(); - this.removeAbortListener = null; - } - }); - } - } - } - onConnect(abort, context) { - if (this.reason) { - abort(this.reason); - return; - } - assert(this.callback); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this; - const headers = responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - if (statusCode < 200) { - if (this.onInfo) { - this.onInfo({ statusCode, headers }); - } - return; - } - const parsedHeaders = responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers; - const contentType = parsedHeaders["content-type"]; - const contentLength = parsedHeaders["content-length"]; - const res = new Readable({ - resume, - abort, - contentType, - contentLength: this.method !== "HEAD" && contentLength ? Number(contentLength) : null, - highWaterMark - }); - if (this.removeAbortListener) { - res.on("close", this.removeAbortListener); - } - this.callback = null; - this.res = res; - if (callback !== null) { - if (this.throwOnError && statusCode >= 400) { - this.runInAsyncScope( - getResolveErrorBodyCallback, - null, - { callback, body: res, contentType, statusCode, statusMessage, headers } - ); - } else { - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - trailers: this.trailers, - opaque, - body: res, - context - }); - } - } - } - onData(chunk) { - return this.res.push(chunk); - } - onComplete(trailers) { - util.parseHeaders(trailers, this.trailers); - this.res.push(null); - } - onError(err) { - const { res, callback, body, opaque } = this; - if (callback) { - this.callback = null; - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }); - }); - } - if (res) { - this.res = null; - queueMicrotask(() => { - util.destroy(res, err); - }); - } - if (body) { - this.body = null; - util.destroy(body, err); - } - if (this.removeAbortListener) { - res?.off("close", this.removeAbortListener); - this.removeAbortListener(); - this.removeAbortListener = null; - } - } - }; - function request(opts, callback) { - if (callback === void 0) { - return new Promise((resolve, reject) => { - request.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data); - }); - }); - } - try { - this.dispatch(opts, new RequestHandler(opts, callback)); - } catch (err) { - if (typeof callback !== "function") { - throw err; - } - const opaque = opts?.opaque; - queueMicrotask(() => callback(err, { opaque })); - } - } - module.exports = request; - module.exports.RequestHandler = RequestHandler; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/abort-signal.js -var require_abort_signal = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/abort-signal.js"(exports, module) { - var { addAbortListener } = require_util(); - var { RequestAbortedError } = require_errors(); - var kListener = /* @__PURE__ */ Symbol("kListener"); - var kSignal = /* @__PURE__ */ Symbol("kSignal"); - function abort(self) { - if (self.abort) { - self.abort(self[kSignal]?.reason); - } else { - self.reason = self[kSignal]?.reason ?? new RequestAbortedError(); - } - removeSignal(self); - } - function addSignal(self, signal) { - self.reason = null; - self[kSignal] = null; - self[kListener] = null; - if (!signal) { - return; - } - if (signal.aborted) { - abort(self); - return; - } - self[kSignal] = signal; - self[kListener] = () => { - abort(self); - }; - addAbortListener(self[kSignal], self[kListener]); - } - function removeSignal(self) { - if (!self[kSignal]) { - return; - } - if ("removeEventListener" in self[kSignal]) { - self[kSignal].removeEventListener("abort", self[kListener]); - } else { - self[kSignal].removeListener("abort", self[kListener]); - } - self[kSignal] = null; - self[kListener] = null; - } - module.exports = { - addSignal, - removeSignal - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-stream.js -var require_api_stream = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-stream.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { finished, PassThrough } = __require("node:stream"); - var { InvalidArgumentError, InvalidReturnValueError } = require_errors(); - var util = require_util(); - var { getResolveErrorBodyCallback } = require_util3(); - var { AsyncResource } = __require("node:async_hooks"); - var { addSignal, removeSignal } = require_abort_signal(); - var StreamHandler = class extends AsyncResource { - constructor(opts, factory, callback) { - if (!opts || typeof opts !== "object") { - throw new InvalidArgumentError("invalid opts"); - } - const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; - try { - if (typeof callback !== "function") { - throw new InvalidArgumentError("invalid callback"); - } - if (typeof factory !== "function") { - throw new InvalidArgumentError("invalid factory"); - } - if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { - throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); - } - if (method === "CONNECT") { - throw new InvalidArgumentError("invalid method"); - } - if (onInfo && typeof onInfo !== "function") { - throw new InvalidArgumentError("invalid onInfo callback"); - } - super("UNDICI_STREAM"); - } catch (err) { - if (util.isStream(body)) { - util.destroy(body.on("error", util.nop), err); - } - throw err; - } - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.factory = factory; - this.callback = callback; - this.res = null; - this.abort = null; - this.context = null; - this.trailers = null; - this.body = body; - this.onInfo = onInfo || null; - this.throwOnError = throwOnError || false; - if (util.isStream(body)) { - body.on("error", (err) => { - this.onError(err); - }); - } - addSignal(this, signal); - } - onConnect(abort, context) { - if (this.reason) { - abort(this.reason); - return; - } - assert(this.callback); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const { factory, opaque, context, callback, responseHeaders } = this; - const headers = responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - if (statusCode < 200) { - if (this.onInfo) { - this.onInfo({ statusCode, headers }); - } - return; - } - this.factory = null; - let res; - if (this.throwOnError && statusCode >= 400) { - const parsedHeaders = responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers; - const contentType = parsedHeaders["content-type"]; - res = new PassThrough(); - this.callback = null; - this.runInAsyncScope( - getResolveErrorBodyCallback, - null, - { callback, body: res, contentType, statusCode, statusMessage, headers } - ); - } else { - if (factory === null) { - return; - } - res = this.runInAsyncScope(factory, null, { - statusCode, - headers, - opaque, - context - }); - if (!res || typeof res.write !== "function" || typeof res.end !== "function" || typeof res.on !== "function") { - throw new InvalidReturnValueError("expected Writable"); - } - finished(res, { readable: false }, (err) => { - const { callback: callback2, res: res2, opaque: opaque2, trailers, abort } = this; - this.res = null; - if (err || !res2.readable) { - util.destroy(res2, err); - } - this.callback = null; - this.runInAsyncScope(callback2, null, err || null, { opaque: opaque2, trailers }); - if (err) { - abort(); - } - }); - } - res.on("drain", resume); - this.res = res; - const needDrain = res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState?.needDrain; - return needDrain !== true; - } - onData(chunk) { - const { res } = this; - return res ? res.write(chunk) : true; - } - onComplete(trailers) { - const { res } = this; - removeSignal(this); - if (!res) { - return; - } - this.trailers = util.parseHeaders(trailers); - res.end(); - } - onError(err) { - const { res, callback, opaque, body } = this; - removeSignal(this); - this.factory = null; - if (res) { - this.res = null; - util.destroy(res, err); - } else if (callback) { - this.callback = null; - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }); - }); - } - if (body) { - this.body = null; - util.destroy(body, err); - } - } - }; - function stream(opts, factory, callback) { - if (callback === void 0) { - return new Promise((resolve, reject) => { - stream.call(this, opts, factory, (err, data) => { - return err ? reject(err) : resolve(data); - }); - }); - } - try { - this.dispatch(opts, new StreamHandler(opts, factory, callback)); - } catch (err) { - if (typeof callback !== "function") { - throw err; - } - const opaque = opts?.opaque; - queueMicrotask(() => callback(err, { opaque })); - } - } - module.exports = stream; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-pipeline.js -var require_api_pipeline = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-pipeline.js"(exports, module) { - "use strict"; - var { - Readable, - Duplex, - PassThrough - } = __require("node:stream"); - var { - InvalidArgumentError, - InvalidReturnValueError, - RequestAbortedError - } = require_errors(); - var util = require_util(); - var { AsyncResource } = __require("node:async_hooks"); - var { addSignal, removeSignal } = require_abort_signal(); - var assert = __require("node:assert"); - var kResume = /* @__PURE__ */ Symbol("resume"); - var PipelineRequest = class extends Readable { - constructor() { - super({ autoDestroy: true }); - this[kResume] = null; - } - _read() { - const { [kResume]: resume } = this; - if (resume) { - this[kResume] = null; - resume(); - } - } - _destroy(err, callback) { - this._read(); - callback(err); - } - }; - var PipelineResponse = class extends Readable { - constructor(resume) { - super({ autoDestroy: true }); - this[kResume] = resume; - } - _read() { - this[kResume](); - } - _destroy(err, callback) { - if (!err && !this._readableState.endEmitted) { - err = new RequestAbortedError(); - } - callback(err); - } - }; - var PipelineHandler = class extends AsyncResource { - constructor(opts, handler) { - if (!opts || typeof opts !== "object") { - throw new InvalidArgumentError("invalid opts"); - } - if (typeof handler !== "function") { - throw new InvalidArgumentError("invalid handler"); - } - const { signal, method, opaque, onInfo, responseHeaders } = opts; - if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { - throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); - } - if (method === "CONNECT") { - throw new InvalidArgumentError("invalid method"); - } - if (onInfo && typeof onInfo !== "function") { - throw new InvalidArgumentError("invalid onInfo callback"); - } - super("UNDICI_PIPELINE"); - this.opaque = opaque || null; - this.responseHeaders = responseHeaders || null; - this.handler = handler; - this.abort = null; - this.context = null; - this.onInfo = onInfo || null; - this.req = new PipelineRequest().on("error", util.nop); - this.ret = new Duplex({ - readableObjectMode: opts.objectMode, - autoDestroy: true, - read: () => { - const { body } = this; - if (body?.resume) { - body.resume(); - } - }, - write: (chunk, encoding, callback) => { - const { req } = this; - if (req.push(chunk, encoding) || req._readableState.destroyed) { - callback(); - } else { - req[kResume] = callback; - } - }, - destroy: (err, callback) => { - const { body, req, res, ret, abort } = this; - if (!err && !ret._readableState.endEmitted) { - err = new RequestAbortedError(); - } - if (abort && err) { - abort(); - } - util.destroy(body, err); - util.destroy(req, err); - util.destroy(res, err); - removeSignal(this); - callback(err); - } - }).on("prefinish", () => { - const { req } = this; - req.push(null); - }); - this.res = null; - addSignal(this, signal); - } - onConnect(abort, context) { - const { ret, res } = this; - if (this.reason) { - abort(this.reason); - return; - } - assert(!res, "pipeline cannot be retried"); - assert(!ret.destroyed); - this.abort = abort; - this.context = context; - } - onHeaders(statusCode, rawHeaders, resume) { - const { opaque, handler, context } = this; - if (statusCode < 200) { - if (this.onInfo) { - const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.onInfo({ statusCode, headers }); - } - return; - } - this.res = new PipelineResponse(resume); - let body; - try { - this.handler = null; - const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - body = this.runInAsyncScope(handler, null, { - statusCode, - headers, - opaque, - body: this.res, - context - }); - } catch (err) { - this.res.on("error", util.nop); - throw err; - } - if (!body || typeof body.on !== "function") { - throw new InvalidReturnValueError("expected Readable"); - } - body.on("data", (chunk) => { - const { ret, body: body2 } = this; - if (!ret.push(chunk) && body2.pause) { - body2.pause(); - } - }).on("error", (err) => { - const { ret } = this; - util.destroy(ret, err); - }).on("end", () => { - const { ret } = this; - ret.push(null); - }).on("close", () => { - const { ret } = this; - if (!ret._readableState.ended) { - util.destroy(ret, new RequestAbortedError()); - } - }); - this.body = body; - } - onData(chunk) { - const { res } = this; - return res.push(chunk); - } - onComplete(trailers) { - const { res } = this; - res.push(null); - } - onError(err) { - const { ret } = this; - this.handler = null; - util.destroy(ret, err); - } - }; - function pipeline(opts, handler) { - try { - const pipelineHandler = new PipelineHandler(opts, handler); - this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler); - return pipelineHandler.ret; - } catch (err) { - return new PassThrough().destroy(err); - } - } - module.exports = pipeline; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-upgrade.js -var require_api_upgrade = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-upgrade.js"(exports, module) { - "use strict"; - var { InvalidArgumentError, SocketError } = require_errors(); - var { AsyncResource } = __require("node:async_hooks"); - var util = require_util(); - var { addSignal, removeSignal } = require_abort_signal(); - var assert = __require("node:assert"); - var UpgradeHandler = class extends AsyncResource { - constructor(opts, callback) { - if (!opts || typeof opts !== "object") { - throw new InvalidArgumentError("invalid opts"); - } - if (typeof callback !== "function") { - throw new InvalidArgumentError("invalid callback"); - } - const { signal, opaque, responseHeaders } = opts; - if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { - throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); - } - super("UNDICI_UPGRADE"); - this.responseHeaders = responseHeaders || null; - this.opaque = opaque || null; - this.callback = callback; - this.abort = null; - this.context = null; - addSignal(this, signal); - } - onConnect(abort, context) { - if (this.reason) { - abort(this.reason); - return; - } - assert(this.callback); - this.abort = abort; - this.context = null; - } - onHeaders() { - throw new SocketError("bad upgrade", null); - } - onUpgrade(statusCode, rawHeaders, socket) { - assert(statusCode === 101); - const { callback, opaque, context } = this; - removeSignal(this); - this.callback = null; - const headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - this.runInAsyncScope(callback, null, null, { - headers, - socket, - opaque, - context - }); - } - onError(err) { - const { callback, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }); - }); - } - } - }; - function upgrade(opts, callback) { - if (callback === void 0) { - return new Promise((resolve, reject) => { - upgrade.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data); - }); - }); - } - try { - const upgradeHandler = new UpgradeHandler(opts, callback); - this.dispatch({ - ...opts, - method: opts.method || "GET", - upgrade: opts.protocol || "Websocket" - }, upgradeHandler); - } catch (err) { - if (typeof callback !== "function") { - throw err; - } - const opaque = opts?.opaque; - queueMicrotask(() => callback(err, { opaque })); - } - } - module.exports = upgrade; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-connect.js -var require_api_connect = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-connect.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { AsyncResource } = __require("node:async_hooks"); - var { InvalidArgumentError, SocketError } = require_errors(); - var util = require_util(); - var { addSignal, removeSignal } = require_abort_signal(); - var ConnectHandler = class extends AsyncResource { - constructor(opts, callback) { - if (!opts || typeof opts !== "object") { - throw new InvalidArgumentError("invalid opts"); - } - if (typeof callback !== "function") { - throw new InvalidArgumentError("invalid callback"); - } - const { signal, opaque, responseHeaders } = opts; - if (signal && typeof signal.on !== "function" && typeof signal.addEventListener !== "function") { - throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); - } - super("UNDICI_CONNECT"); - this.opaque = opaque || null; - this.responseHeaders = responseHeaders || null; - this.callback = callback; - this.abort = null; - addSignal(this, signal); - } - onConnect(abort, context) { - if (this.reason) { - abort(this.reason); - return; - } - assert(this.callback); - this.abort = abort; - this.context = context; - } - onHeaders() { - throw new SocketError("bad connect", null); - } - onUpgrade(statusCode, rawHeaders, socket) { - const { callback, opaque, context } = this; - removeSignal(this); - this.callback = null; - let headers = rawHeaders; - if (headers != null) { - headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - } - this.runInAsyncScope(callback, null, null, { - statusCode, - headers, - socket, - opaque, - context - }); - } - onError(err) { - const { callback, opaque } = this; - removeSignal(this); - if (callback) { - this.callback = null; - queueMicrotask(() => { - this.runInAsyncScope(callback, null, err, { opaque }); - }); - } - } - }; - function connect(opts, callback) { - if (callback === void 0) { - return new Promise((resolve, reject) => { - connect.call(this, opts, (err, data) => { - return err ? reject(err) : resolve(data); - }); - }); - } - try { - const connectHandler = new ConnectHandler(opts, callback); - this.dispatch({ ...opts, method: "CONNECT" }, connectHandler); - } catch (err) { - if (typeof callback !== "function") { - throw err; - } - const opaque = opts?.opaque; - queueMicrotask(() => callback(err, { opaque })); - } - } - module.exports = connect; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/index.js -var require_api = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/index.js"(exports, module) { - "use strict"; - module.exports.request = require_api_request(); - module.exports.stream = require_api_stream(); - module.exports.pipeline = require_api_pipeline(); - module.exports.upgrade = require_api_upgrade(); - module.exports.connect = require_api_connect(); - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-errors.js -var require_mock_errors = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-errors.js"(exports, module) { - "use strict"; - var { UndiciError } = require_errors(); - var kMockNotMatchedError = /* @__PURE__ */ Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"); - var MockNotMatchedError = class _MockNotMatchedError extends UndiciError { - constructor(message) { - super(message); - Error.captureStackTrace(this, _MockNotMatchedError); - this.name = "MockNotMatchedError"; - this.message = message || "The request does not match any registered mock dispatches"; - this.code = "UND_MOCK_ERR_MOCK_NOT_MATCHED"; - } - static [Symbol.hasInstance](instance) { - return instance && instance[kMockNotMatchedError] === true; - } - [kMockNotMatchedError] = true; - }; - module.exports = { - MockNotMatchedError - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-symbols.js -var require_mock_symbols = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-symbols.js"(exports, module) { - "use strict"; - module.exports = { - kAgent: /* @__PURE__ */ Symbol("agent"), - kOptions: /* @__PURE__ */ Symbol("options"), - kFactory: /* @__PURE__ */ Symbol("factory"), - kDispatches: /* @__PURE__ */ Symbol("dispatches"), - kDispatchKey: /* @__PURE__ */ Symbol("dispatch key"), - kDefaultHeaders: /* @__PURE__ */ Symbol("default headers"), - kDefaultTrailers: /* @__PURE__ */ Symbol("default trailers"), - kContentLength: /* @__PURE__ */ Symbol("content length"), - kMockAgent: /* @__PURE__ */ Symbol("mock agent"), - kMockAgentSet: /* @__PURE__ */ Symbol("mock agent set"), - kMockAgentGet: /* @__PURE__ */ Symbol("mock agent get"), - kMockDispatch: /* @__PURE__ */ Symbol("mock dispatch"), - kClose: /* @__PURE__ */ Symbol("close"), - kOriginalClose: /* @__PURE__ */ Symbol("original agent close"), - kOrigin: /* @__PURE__ */ Symbol("origin"), - kIsMockActive: /* @__PURE__ */ Symbol("is mock active"), - kNetConnect: /* @__PURE__ */ Symbol("net connect"), - kGetNetConnect: /* @__PURE__ */ Symbol("get net connect"), - kConnected: /* @__PURE__ */ Symbol("connected") - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-utils.js -var require_mock_utils = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-utils.js"(exports, module) { - "use strict"; - var { MockNotMatchedError } = require_mock_errors(); - var { - kDispatches, - kMockAgent, - kOriginalDispatch, - kOrigin, - kGetNetConnect - } = require_mock_symbols(); - var { buildURL } = require_util(); - var { STATUS_CODES } = __require("node:http"); - var { - types: { - isPromise - } - } = __require("node:util"); - function matchValue(match, value) { - if (typeof match === "string") { - return match === value; - } - if (match instanceof RegExp) { - return match.test(value); - } - if (typeof match === "function") { - return match(value) === true; - } - return false; - } - function lowerCaseEntries(headers) { - return Object.fromEntries( - Object.entries(headers).map(([headerName, headerValue]) => { - return [headerName.toLocaleLowerCase(), headerValue]; - }) - ); - } - function getHeaderByName(headers, key) { - if (Array.isArray(headers)) { - for (let i = 0; i < headers.length; i += 2) { - if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { - return headers[i + 1]; - } - } - return void 0; - } else if (typeof headers.get === "function") { - return headers.get(key); - } else { - return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; - } - } - function buildHeadersFromArray(headers) { - const clone2 = headers.slice(); - const entries = []; - for (let index = 0; index < clone2.length; index += 2) { - entries.push([clone2[index], clone2[index + 1]]); - } - return Object.fromEntries(entries); - } - function matchHeaders(mockDispatch2, headers) { - if (typeof mockDispatch2.headers === "function") { - if (Array.isArray(headers)) { - headers = buildHeadersFromArray(headers); - } - return mockDispatch2.headers(headers ? lowerCaseEntries(headers) : {}); - } - if (typeof mockDispatch2.headers === "undefined") { - return true; - } - if (typeof headers !== "object" || typeof mockDispatch2.headers !== "object") { - return false; - } - for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch2.headers)) { - const headerValue = getHeaderByName(headers, matchHeaderName); - if (!matchValue(matchHeaderValue, headerValue)) { - return false; - } - } - return true; - } - function safeUrl(path2) { - if (typeof path2 !== "string") { - return path2; - } - const pathSegments = path2.split("?"); - if (pathSegments.length !== 2) { - return path2; - } - const qp = new URLSearchParams(pathSegments.pop()); - qp.sort(); - return [...pathSegments, qp.toString()].join("?"); - } - function matchKey(mockDispatch2, { path: path2, method, body, headers }) { - const pathMatch = matchValue(mockDispatch2.path, path2); - const methodMatch = matchValue(mockDispatch2.method, method); - const bodyMatch = typeof mockDispatch2.body !== "undefined" ? matchValue(mockDispatch2.body, body) : true; - const headersMatch = matchHeaders(mockDispatch2, headers); - return pathMatch && methodMatch && bodyMatch && headersMatch; - } - function getResponseData(data) { - if (Buffer.isBuffer(data)) { - return data; - } else if (data instanceof Uint8Array) { - return data; - } else if (data instanceof ArrayBuffer) { - return data; - } else if (typeof data === "object") { - return JSON.stringify(data); - } else { - return data.toString(); - } - } - function getMockDispatch(mockDispatches, key) { - const basePath = key.query ? buildURL(key.path, key.query) : key.path; - const resolvedPath = typeof basePath === "string" ? safeUrl(basePath) : basePath; - let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path2 }) => matchValue(safeUrl(path2), resolvedPath)); - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); - } - matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)); - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`); - } - matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true); - if (matchedMockDispatches.length === 0) { - throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`); - } - matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers)); - if (matchedMockDispatches.length === 0) { - const headers = typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers; - throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`); - } - return matchedMockDispatches[0]; - } - function addMockDispatch(mockDispatches, key, data) { - const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false }; - const replyData = typeof data === "function" ? { callback: data } : { ...data }; - const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }; - mockDispatches.push(newMockDispatch); - return newMockDispatch; - } - function deleteMockDispatch(mockDispatches, key) { - const index = mockDispatches.findIndex((dispatch) => { - if (!dispatch.consumed) { - return false; - } - return matchKey(dispatch, key); - }); - if (index !== -1) { - mockDispatches.splice(index, 1); - } - } - function buildKey(opts) { - const { path: path2, method, body, headers, query } = opts; - return { - path: path2, - method, - body, - headers, - query - }; - } - function generateKeyValues(data) { - const keys = Object.keys(data); - const result = []; - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - const value = data[key]; - const name = Buffer.from(`${key}`); - if (Array.isArray(value)) { - for (let j = 0; j < value.length; ++j) { - result.push(name, Buffer.from(`${value[j]}`)); - } - } else { - result.push(name, Buffer.from(`${value}`)); - } - } - return result; - } - function getStatusText(statusCode) { - return STATUS_CODES[statusCode] || "unknown"; - } - async function getResponse(body) { - const buffers = []; - for await (const data of body) { - buffers.push(data); - } - return Buffer.concat(buffers).toString("utf8"); - } - function mockDispatch(opts, handler) { - const key = buildKey(opts); - const mockDispatch2 = getMockDispatch(this[kDispatches], key); - mockDispatch2.timesInvoked++; - if (mockDispatch2.data.callback) { - mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }; - } - const { data: { statusCode, data, headers, trailers, error: error2 }, delay, persist } = mockDispatch2; - const { timesInvoked, times } = mockDispatch2; - mockDispatch2.consumed = !persist && timesInvoked >= times; - mockDispatch2.pending = timesInvoked < times; - if (error2 !== null) { - deleteMockDispatch(this[kDispatches], key); - handler.onError(error2); - return true; - } - if (typeof delay === "number" && delay > 0) { - setTimeout(() => { - handleReply(this[kDispatches]); - }, delay); - } else { - handleReply(this[kDispatches]); - } - function handleReply(mockDispatches, _data = data) { - const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; - const body = typeof _data === "function" ? _data({ ...opts, headers: optsHeaders }) : _data; - if (isPromise(body)) { - body.then((newData) => handleReply(mockDispatches, newData)); - return; - } - const responseData = getResponseData(body); - const responseHeaders = generateKeyValues(headers); - const responseTrailers = generateKeyValues(trailers); - handler.onConnect?.((err) => handler.onError(err), null); - handler.onHeaders?.(statusCode, responseHeaders, resume, getStatusText(statusCode)); - handler.onData?.(Buffer.from(responseData)); - handler.onComplete?.(responseTrailers); - deleteMockDispatch(mockDispatches, key); - } - function resume() { - } - return true; - } - function buildMockDispatch() { - const agent = this[kMockAgent]; - const origin = this[kOrigin]; - const originalDispatch = this[kOriginalDispatch]; - return function dispatch(opts, handler) { - if (agent.isMockActive) { - try { - mockDispatch.call(this, opts, handler); - } catch (error2) { - if (error2 instanceof MockNotMatchedError) { - const netConnect = agent[kGetNetConnect](); - if (netConnect === false) { - throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); - } - if (checkNetConnect(netConnect, origin)) { - originalDispatch.call(this, opts, handler); - } else { - throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); - } - } else { - throw error2; - } - } - } else { - originalDispatch.call(this, opts, handler); - } - }; - } - function checkNetConnect(netConnect, origin) { - const url = new URL(origin); - if (netConnect === true) { - return true; - } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { - return true; - } - return false; - } - function buildMockOptions(opts) { - if (opts) { - const { agent, ...mockOptions } = opts; - return mockOptions; - } - } - module.exports = { - getResponseData, - getMockDispatch, - addMockDispatch, - deleteMockDispatch, - buildKey, - generateKeyValues, - matchValue, - getResponse, - getStatusText, - mockDispatch, - buildMockDispatch, - checkNetConnect, - buildMockOptions, - getHeaderByName, - buildHeadersFromArray - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-interceptor.js -var require_mock_interceptor = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-interceptor.js"(exports, module) { - "use strict"; - var { getResponseData, buildKey, addMockDispatch } = require_mock_utils(); - var { - kDispatches, - kDispatchKey, - kDefaultHeaders, - kDefaultTrailers, - kContentLength, - kMockDispatch - } = require_mock_symbols(); - var { InvalidArgumentError } = require_errors(); - var { buildURL } = require_util(); - var MockScope = class { - constructor(mockDispatch) { - this[kMockDispatch] = mockDispatch; - } - /** - * Delay a reply by a set amount in ms. - */ - delay(waitInMs) { - if (typeof waitInMs !== "number" || !Number.isInteger(waitInMs) || waitInMs <= 0) { - throw new InvalidArgumentError("waitInMs must be a valid integer > 0"); - } - this[kMockDispatch].delay = waitInMs; - return this; - } - /** - * For a defined reply, never mark as consumed. - */ - persist() { - this[kMockDispatch].persist = true; - return this; - } - /** - * Allow one to define a reply for a set amount of matching requests. - */ - times(repeatTimes) { - if (typeof repeatTimes !== "number" || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { - throw new InvalidArgumentError("repeatTimes must be a valid integer > 0"); - } - this[kMockDispatch].times = repeatTimes; - return this; - } - }; - var MockInterceptor = class { - constructor(opts, mockDispatches) { - if (typeof opts !== "object") { - throw new InvalidArgumentError("opts must be an object"); - } - if (typeof opts.path === "undefined") { - throw new InvalidArgumentError("opts.path must be defined"); - } - if (typeof opts.method === "undefined") { - opts.method = "GET"; - } - if (typeof opts.path === "string") { - if (opts.query) { - opts.path = buildURL(opts.path, opts.query); - } else { - const parsedURL = new URL(opts.path, "data://"); - opts.path = parsedURL.pathname + parsedURL.search; - } - } - if (typeof opts.method === "string") { - opts.method = opts.method.toUpperCase(); - } - this[kDispatchKey] = buildKey(opts); - this[kDispatches] = mockDispatches; - this[kDefaultHeaders] = {}; - this[kDefaultTrailers] = {}; - this[kContentLength] = false; - } - createMockScopeDispatchData({ statusCode, data, responseOptions }) { - const responseData = getResponseData(data); - const contentLength = this[kContentLength] ? { "content-length": responseData.length } : {}; - const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }; - const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; - return { statusCode, data, headers, trailers }; - } - validateReplyParameters(replyParameters) { - if (typeof replyParameters.statusCode === "undefined") { - throw new InvalidArgumentError("statusCode must be defined"); - } - if (typeof replyParameters.responseOptions !== "object" || replyParameters.responseOptions === null) { - throw new InvalidArgumentError("responseOptions must be an object"); - } - } - /** - * Mock an undici request with a defined reply. - */ - reply(replyOptionsCallbackOrStatusCode) { - if (typeof replyOptionsCallbackOrStatusCode === "function") { - const wrappedDefaultsCallback = (opts) => { - const resolvedData = replyOptionsCallbackOrStatusCode(opts); - if (typeof resolvedData !== "object" || resolvedData === null) { - throw new InvalidArgumentError("reply options callback must return an object"); - } - const replyParameters2 = { data: "", responseOptions: {}, ...resolvedData }; - this.validateReplyParameters(replyParameters2); - return { - ...this.createMockScopeDispatchData(replyParameters2) - }; - }; - const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback); - return new MockScope(newMockDispatch2); - } - const replyParameters = { - statusCode: replyOptionsCallbackOrStatusCode, - data: arguments[1] === void 0 ? "" : arguments[1], - responseOptions: arguments[2] === void 0 ? {} : arguments[2] - }; - this.validateReplyParameters(replyParameters); - const dispatchData = this.createMockScopeDispatchData(replyParameters); - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData); - return new MockScope(newMockDispatch); - } - /** - * Mock an undici request with a defined error. - */ - replyWithError(error2) { - if (typeof error2 === "undefined") { - throw new InvalidArgumentError("error must be defined"); - } - const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error: error2 }); - return new MockScope(newMockDispatch); - } - /** - * Set default reply headers on the interceptor for subsequent replies - */ - defaultReplyHeaders(headers) { - if (typeof headers === "undefined") { - throw new InvalidArgumentError("headers must be defined"); - } - this[kDefaultHeaders] = headers; - return this; - } - /** - * Set default reply trailers on the interceptor for subsequent replies - */ - defaultReplyTrailers(trailers) { - if (typeof trailers === "undefined") { - throw new InvalidArgumentError("trailers must be defined"); - } - this[kDefaultTrailers] = trailers; - return this; - } - /** - * Set reply content length header for replies on the interceptor - */ - replyContentLength() { - this[kContentLength] = true; - return this; - } - }; - module.exports.MockInterceptor = MockInterceptor; - module.exports.MockScope = MockScope; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-client.js -var require_mock_client = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-client.js"(exports, module) { - "use strict"; - var { promisify } = __require("node:util"); - var Client = require_client(); - var { buildMockDispatch } = require_mock_utils(); - var { - kDispatches, - kMockAgent, - kClose, - kOriginalClose, - kOrigin, - kOriginalDispatch, - kConnected - } = require_mock_symbols(); - var { MockInterceptor } = require_mock_interceptor(); - var Symbols = require_symbols(); - var { InvalidArgumentError } = require_errors(); - var MockClient = class extends Client { - constructor(origin, opts) { - super(origin, opts); - if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { - throw new InvalidArgumentError("Argument opts.agent must implement Agent"); - } - this[kMockAgent] = opts.agent; - this[kOrigin] = origin; - this[kDispatches] = []; - this[kConnected] = 1; - this[kOriginalDispatch] = this.dispatch; - this[kOriginalClose] = this.close.bind(this); - this.dispatch = buildMockDispatch.call(this); - this.close = this[kClose]; - } - get [Symbols.kConnected]() { - return this[kConnected]; - } - /** - * Sets up the base interceptor for mocking replies from undici. - */ - intercept(opts) { - return new MockInterceptor(opts, this[kDispatches]); - } - async [kClose]() { - await promisify(this[kOriginalClose])(); - this[kConnected] = 0; - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); - } - }; - module.exports = MockClient; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-pool.js -var require_mock_pool = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-pool.js"(exports, module) { - "use strict"; - var { promisify } = __require("node:util"); - var Pool = require_pool(); - var { buildMockDispatch } = require_mock_utils(); - var { - kDispatches, - kMockAgent, - kClose, - kOriginalClose, - kOrigin, - kOriginalDispatch, - kConnected - } = require_mock_symbols(); - var { MockInterceptor } = require_mock_interceptor(); - var Symbols = require_symbols(); - var { InvalidArgumentError } = require_errors(); - var MockPool = class extends Pool { - constructor(origin, opts) { - super(origin, opts); - if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { - throw new InvalidArgumentError("Argument opts.agent must implement Agent"); - } - this[kMockAgent] = opts.agent; - this[kOrigin] = origin; - this[kDispatches] = []; - this[kConnected] = 1; - this[kOriginalDispatch] = this.dispatch; - this[kOriginalClose] = this.close.bind(this); - this.dispatch = buildMockDispatch.call(this); - this.close = this[kClose]; - } - get [Symbols.kConnected]() { - return this[kConnected]; - } - /** - * Sets up the base interceptor for mocking replies from undici. - */ - intercept(opts) { - return new MockInterceptor(opts, this[kDispatches]); - } - async [kClose]() { - await promisify(this[kOriginalClose])(); - this[kConnected] = 0; - this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); - } - }; - module.exports = MockPool; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/pluralizer.js -var require_pluralizer = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/pluralizer.js"(exports, module) { - "use strict"; - var singulars = { - pronoun: "it", - is: "is", - was: "was", - this: "this" - }; - var plurals = { - pronoun: "they", - is: "are", - was: "were", - this: "these" - }; - module.exports = class Pluralizer { - constructor(singular, plural) { - this.singular = singular; - this.plural = plural; - } - pluralize(count) { - const one = count === 1; - const keys = one ? singulars : plurals; - const noun = one ? this.singular : this.plural; - return { ...keys, count, noun }; - } - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js -var require_pending_interceptors_formatter = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module) { - "use strict"; - var { Transform } = __require("node:stream"); - var { Console } = __require("node:console"); - var PERSISTENT = process.versions.icu ? "\u2705" : "Y "; - var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N "; - module.exports = class PendingInterceptorsFormatter { - constructor({ disableColors } = {}) { - this.transform = new Transform({ - transform(chunk, _enc, cb) { - cb(null, chunk); - } - }); - this.logger = new Console({ - stdout: this.transform, - inspectOptions: { - colors: !disableColors && !process.env.CI - } - }); - } - format(pendingInterceptors) { - const withPrettyHeaders = pendingInterceptors.map( - ({ method, path: path2, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ - Method: method, - Origin: origin, - Path: path2, - "Status code": statusCode, - Persistent: persist ? PERSISTENT : NOT_PERSISTENT, - Invocations: timesInvoked, - Remaining: persist ? Infinity : times - timesInvoked - }) - ); - this.logger.table(withPrettyHeaders); - return this.transform.read().toString(); - } - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-agent.js -var require_mock_agent = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-agent.js"(exports, module) { - "use strict"; - var { kClients } = require_symbols(); - var Agent = require_agent(); - var { - kAgent, - kMockAgentSet, - kMockAgentGet, - kDispatches, - kIsMockActive, - kNetConnect, - kGetNetConnect, - kOptions, - kFactory - } = require_mock_symbols(); - var MockClient = require_mock_client(); - var MockPool = require_mock_pool(); - var { matchValue, buildMockOptions } = require_mock_utils(); - var { InvalidArgumentError, UndiciError } = require_errors(); - var Dispatcher = require_dispatcher(); - var Pluralizer = require_pluralizer(); - var PendingInterceptorsFormatter = require_pending_interceptors_formatter(); - var MockAgent = class extends Dispatcher { - constructor(opts) { - super(opts); - this[kNetConnect] = true; - this[kIsMockActive] = true; - if (opts?.agent && typeof opts.agent.dispatch !== "function") { - throw new InvalidArgumentError("Argument opts.agent must implement Agent"); - } - const agent = opts?.agent ? opts.agent : new Agent(opts); - this[kAgent] = agent; - this[kClients] = agent[kClients]; - this[kOptions] = buildMockOptions(opts); - } - get(origin) { - let dispatcher = this[kMockAgentGet](origin); - if (!dispatcher) { - dispatcher = this[kFactory](origin); - this[kMockAgentSet](origin, dispatcher); - } - return dispatcher; - } - dispatch(opts, handler) { - this.get(opts.origin); - return this[kAgent].dispatch(opts, handler); - } - async close() { - await this[kAgent].close(); - this[kClients].clear(); - } - deactivate() { - this[kIsMockActive] = false; - } - activate() { - this[kIsMockActive] = true; - } - enableNetConnect(matcher) { - if (typeof matcher === "string" || typeof matcher === "function" || matcher instanceof RegExp) { - if (Array.isArray(this[kNetConnect])) { - this[kNetConnect].push(matcher); - } else { - this[kNetConnect] = [matcher]; - } - } else if (typeof matcher === "undefined") { - this[kNetConnect] = true; - } else { - throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp."); - } - } - disableNetConnect() { - this[kNetConnect] = false; - } - // This is required to bypass issues caused by using global symbols - see: - // https://github.com/nodejs/undici/issues/1447 - get isMockActive() { - return this[kIsMockActive]; - } - [kMockAgentSet](origin, dispatcher) { - this[kClients].set(origin, dispatcher); - } - [kFactory](origin) { - const mockOptions = Object.assign({ agent: this }, this[kOptions]); - return this[kOptions] && this[kOptions].connections === 1 ? new MockClient(origin, mockOptions) : new MockPool(origin, mockOptions); - } - [kMockAgentGet](origin) { - const client = this[kClients].get(origin); - if (client) { - return client; - } - if (typeof origin !== "string") { - const dispatcher = this[kFactory]("http://localhost:9999"); - this[kMockAgentSet](origin, dispatcher); - return dispatcher; - } - for (const [keyMatcher, nonExplicitDispatcher] of Array.from(this[kClients])) { - if (nonExplicitDispatcher && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin)) { - const dispatcher = this[kFactory](origin); - this[kMockAgentSet](origin, dispatcher); - dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches]; - return dispatcher; - } - } - } - [kGetNetConnect]() { - return this[kNetConnect]; - } - pendingInterceptors() { - const mockAgentClients = this[kClients]; - return Array.from(mockAgentClients.entries()).flatMap(([origin, scope]) => scope[kDispatches].map((dispatch) => ({ ...dispatch, origin }))).filter(({ pending }) => pending); - } - assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { - const pending = this.pendingInterceptors(); - if (pending.length === 0) { - return; - } - const pluralizer = new Pluralizer("interceptor", "interceptors").pluralize(pending.length); - throw new UndiciError(` -${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: - -${pendingInterceptorsFormatter.format(pending)} -`.trim()); - } - }; - module.exports = MockAgent; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/global.js -var require_global2 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/global.js"(exports, module) { - "use strict"; - var globalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.1"); - var { InvalidArgumentError } = require_errors(); - var Agent = require_agent(); - if (getGlobalDispatcher() === void 0) { - setGlobalDispatcher(new Agent()); - } - function setGlobalDispatcher(agent) { - if (!agent || typeof agent.dispatch !== "function") { - throw new InvalidArgumentError("Argument agent must implement Agent"); - } - Object.defineProperty(globalThis, globalDispatcher, { - value: agent, - writable: true, - enumerable: false, - configurable: false - }); - } - function getGlobalDispatcher() { - return globalThis[globalDispatcher]; - } - module.exports = { - setGlobalDispatcher, - getGlobalDispatcher - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/decorator-handler.js -var require_decorator_handler = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/decorator-handler.js"(exports, module) { - "use strict"; - module.exports = class DecoratorHandler { - #handler; - constructor(handler) { - if (typeof handler !== "object" || handler === null) { - throw new TypeError("handler must be an object"); - } - this.#handler = handler; - } - onConnect(...args) { - return this.#handler.onConnect?.(...args); - } - onError(...args) { - return this.#handler.onError?.(...args); - } - onUpgrade(...args) { - return this.#handler.onUpgrade?.(...args); - } - onResponseStarted(...args) { - return this.#handler.onResponseStarted?.(...args); - } - onHeaders(...args) { - return this.#handler.onHeaders?.(...args); - } - onData(...args) { - return this.#handler.onData?.(...args); - } - onComplete(...args) { - return this.#handler.onComplete?.(...args); - } - onBodySent(...args) { - return this.#handler.onBodySent?.(...args); - } - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/redirect.js -var require_redirect = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/redirect.js"(exports, module) { - "use strict"; - var RedirectHandler = require_redirect_handler(); - module.exports = (opts) => { - const globalMaxRedirections = opts?.maxRedirections; - return (dispatch) => { - return function redirectInterceptor(opts2, handler) { - const { maxRedirections = globalMaxRedirections, ...baseOpts } = opts2; - if (!maxRedirections) { - return dispatch(opts2, handler); - } - const redirectHandler = new RedirectHandler( - dispatch, - maxRedirections, - opts2, - handler - ); - return dispatch(baseOpts, redirectHandler); - }; - }; - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/retry.js -var require_retry = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/retry.js"(exports, module) { - "use strict"; - var RetryHandler = require_retry_handler(); - module.exports = (globalOpts) => { - return (dispatch) => { - return function retryInterceptor(opts, handler) { - return dispatch( - opts, - new RetryHandler( - { ...opts, retryOptions: { ...globalOpts, ...opts.retryOptions } }, - { - handler, - dispatch - } - ) - ); - }; - }; - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/dump.js -var require_dump = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/dump.js"(exports, module) { - "use strict"; - var util = require_util(); - var { InvalidArgumentError, RequestAbortedError } = require_errors(); - var DecoratorHandler = require_decorator_handler(); - var DumpHandler = class extends DecoratorHandler { - #maxSize = 1024 * 1024; - #abort = null; - #dumped = false; - #aborted = false; - #size = 0; - #reason = null; - #handler = null; - constructor({ maxSize }, handler) { - super(handler); - if (maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) { - throw new InvalidArgumentError("maxSize must be a number greater than 0"); - } - this.#maxSize = maxSize ?? this.#maxSize; - this.#handler = handler; - } - onConnect(abort) { - this.#abort = abort; - this.#handler.onConnect(this.#customAbort.bind(this)); - } - #customAbort(reason) { - this.#aborted = true; - this.#reason = reason; - } - // TODO: will require adjustment after new hooks are out - onHeaders(statusCode, rawHeaders, resume, statusMessage) { - const headers = util.parseHeaders(rawHeaders); - const contentLength = headers["content-length"]; - if (contentLength != null && contentLength > this.#maxSize) { - throw new RequestAbortedError( - `Response size (${contentLength}) larger than maxSize (${this.#maxSize})` - ); - } - if (this.#aborted) { - return true; - } - return this.#handler.onHeaders( - statusCode, - rawHeaders, - resume, - statusMessage - ); - } - onError(err) { - if (this.#dumped) { - return; - } - err = this.#reason ?? err; - this.#handler.onError(err); - } - onData(chunk) { - this.#size = this.#size + chunk.length; - if (this.#size >= this.#maxSize) { - this.#dumped = true; - if (this.#aborted) { - this.#handler.onError(this.#reason); - } else { - this.#handler.onComplete([]); - } - } - return true; - } - onComplete(trailers) { - if (this.#dumped) { - return; - } - if (this.#aborted) { - this.#handler.onError(this.reason); - return; - } - this.#handler.onComplete(trailers); - } - }; - function createDumpInterceptor({ maxSize: defaultMaxSize } = { - maxSize: 1024 * 1024 - }) { - return (dispatch) => { - return function Intercept(opts, handler) { - const { dumpMaxSize = defaultMaxSize } = opts; - const dumpHandler = new DumpHandler( - { maxSize: dumpMaxSize }, - handler - ); - return dispatch(opts, dumpHandler); - }; - }; - } - module.exports = createDumpInterceptor; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/dns.js -var require_dns = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/dns.js"(exports, module) { - "use strict"; - var { isIP } = __require("node:net"); - var { lookup } = __require("node:dns"); - var DecoratorHandler = require_decorator_handler(); - var { InvalidArgumentError, InformationalError } = require_errors(); - var maxInt = Math.pow(2, 31) - 1; - var DNSInstance = class { - #maxTTL = 0; - #maxItems = 0; - #records = /* @__PURE__ */ new Map(); - dualStack = true; - affinity = null; - lookup = null; - pick = null; - constructor(opts) { - this.#maxTTL = opts.maxTTL; - this.#maxItems = opts.maxItems; - this.dualStack = opts.dualStack; - this.affinity = opts.affinity; - this.lookup = opts.lookup ?? this.#defaultLookup; - this.pick = opts.pick ?? this.#defaultPick; - } - get full() { - return this.#records.size === this.#maxItems; - } - runLookup(origin, opts, cb) { - const ips = this.#records.get(origin.hostname); - if (ips == null && this.full) { - cb(null, origin.origin); - return; - } - const newOpts = { - affinity: this.affinity, - dualStack: this.dualStack, - lookup: this.lookup, - pick: this.pick, - ...opts.dns, - maxTTL: this.#maxTTL, - maxItems: this.#maxItems - }; - if (ips == null) { - this.lookup(origin, newOpts, (err, addresses) => { - if (err || addresses == null || addresses.length === 0) { - cb(err ?? new InformationalError("No DNS entries found")); - return; - } - this.setRecords(origin, addresses); - const records = this.#records.get(origin.hostname); - const ip = this.pick( - origin, - records, - newOpts.affinity - ); - let port; - if (typeof ip.port === "number") { - port = `:${ip.port}`; - } else if (origin.port !== "") { - port = `:${origin.port}`; - } else { - port = ""; - } - cb( - null, - `${origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` - ); - }); - } else { - const ip = this.pick( - origin, - ips, - newOpts.affinity - ); - if (ip == null) { - this.#records.delete(origin.hostname); - this.runLookup(origin, opts, cb); - return; - } - let port; - if (typeof ip.port === "number") { - port = `:${ip.port}`; - } else if (origin.port !== "") { - port = `:${origin.port}`; - } else { - port = ""; - } - cb( - null, - `${origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` - ); - } - } - #defaultLookup(origin, opts, cb) { - lookup( - origin.hostname, - { - all: true, - family: this.dualStack === false ? this.affinity : 0, - order: "ipv4first" - }, - (err, addresses) => { - if (err) { - return cb(err); - } - const results = /* @__PURE__ */ new Map(); - for (const addr of addresses) { - results.set(`${addr.address}:${addr.family}`, addr); - } - cb(null, results.values()); - } - ); - } - #defaultPick(origin, hostnameRecords, affinity) { - let ip = null; - const { records, offset } = hostnameRecords; - let family; - if (this.dualStack) { - if (affinity == null) { - if (offset == null || offset === maxInt) { - hostnameRecords.offset = 0; - affinity = 4; - } else { - hostnameRecords.offset++; - affinity = (hostnameRecords.offset & 1) === 1 ? 6 : 4; - } - } - if (records[affinity] != null && records[affinity].ips.length > 0) { - family = records[affinity]; - } else { - family = records[affinity === 4 ? 6 : 4]; - } - } else { - family = records[affinity]; - } - if (family == null || family.ips.length === 0) { - return ip; - } - if (family.offset == null || family.offset === maxInt) { - family.offset = 0; - } else { - family.offset++; - } - const position = family.offset % family.ips.length; - ip = family.ips[position] ?? null; - if (ip == null) { - return ip; - } - if (Date.now() - ip.timestamp > ip.ttl) { - family.ips.splice(position, 1); - return this.pick(origin, hostnameRecords, affinity); - } - return ip; - } - setRecords(origin, addresses) { - const timestamp = Date.now(); - const records = { records: { 4: null, 6: null } }; - for (const record of addresses) { - record.timestamp = timestamp; - if (typeof record.ttl === "number") { - record.ttl = Math.min(record.ttl, this.#maxTTL); - } else { - record.ttl = this.#maxTTL; - } - const familyRecords = records.records[record.family] ?? { ips: [] }; - familyRecords.ips.push(record); - records.records[record.family] = familyRecords; - } - this.#records.set(origin.hostname, records); - } - getHandler(meta2, opts) { - return new DNSDispatchHandler(this, meta2, opts); - } - }; - var DNSDispatchHandler = class extends DecoratorHandler { - #state = null; - #opts = null; - #dispatch = null; - #handler = null; - #origin = null; - constructor(state, { origin, handler, dispatch }, opts) { - super(handler); - this.#origin = origin; - this.#handler = handler; - this.#opts = { ...opts }; - this.#state = state; - this.#dispatch = dispatch; - } - onError(err) { - switch (err.code) { - case "ETIMEDOUT": - case "ECONNREFUSED": { - if (this.#state.dualStack) { - this.#state.runLookup(this.#origin, this.#opts, (err2, newOrigin) => { - if (err2) { - return this.#handler.onError(err2); - } - const dispatchOpts = { - ...this.#opts, - origin: newOrigin - }; - this.#dispatch(dispatchOpts, this); - }); - return; - } - this.#handler.onError(err); - return; - } - case "ENOTFOUND": - this.#state.deleteRecord(this.#origin); - // eslint-disable-next-line no-fallthrough - default: - this.#handler.onError(err); - break; - } - } - }; - module.exports = (interceptorOpts) => { - if (interceptorOpts?.maxTTL != null && (typeof interceptorOpts?.maxTTL !== "number" || interceptorOpts?.maxTTL < 0)) { - throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number"); - } - if (interceptorOpts?.maxItems != null && (typeof interceptorOpts?.maxItems !== "number" || interceptorOpts?.maxItems < 1)) { - throw new InvalidArgumentError( - "Invalid maxItems. Must be a positive number and greater than zero" - ); - } - if (interceptorOpts?.affinity != null && interceptorOpts?.affinity !== 4 && interceptorOpts?.affinity !== 6) { - throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6"); - } - if (interceptorOpts?.dualStack != null && typeof interceptorOpts?.dualStack !== "boolean") { - throw new InvalidArgumentError("Invalid dualStack. Must be a boolean"); - } - if (interceptorOpts?.lookup != null && typeof interceptorOpts?.lookup !== "function") { - throw new InvalidArgumentError("Invalid lookup. Must be a function"); - } - if (interceptorOpts?.pick != null && typeof interceptorOpts?.pick !== "function") { - throw new InvalidArgumentError("Invalid pick. Must be a function"); - } - const dualStack = interceptorOpts?.dualStack ?? true; - let affinity; - if (dualStack) { - affinity = interceptorOpts?.affinity ?? null; - } else { - affinity = interceptorOpts?.affinity ?? 4; - } - const opts = { - maxTTL: interceptorOpts?.maxTTL ?? 1e4, - // Expressed in ms - lookup: interceptorOpts?.lookup ?? null, - pick: interceptorOpts?.pick ?? null, - dualStack, - affinity, - maxItems: interceptorOpts?.maxItems ?? Infinity - }; - const instance = new DNSInstance(opts); - return (dispatch) => { - return function dnsInterceptor(origDispatchOpts, handler) { - const origin = origDispatchOpts.origin.constructor === URL ? origDispatchOpts.origin : new URL(origDispatchOpts.origin); - if (isIP(origin.hostname) !== 0) { - return dispatch(origDispatchOpts, handler); - } - instance.runLookup(origin, origDispatchOpts, (err, newOrigin) => { - if (err) { - return handler.onError(err); - } - let dispatchOpts = null; - dispatchOpts = { - ...origDispatchOpts, - servername: origin.hostname, - // For SNI on TLS - origin: newOrigin, - headers: { - host: origin.hostname, - ...origDispatchOpts.headers - } - }; - dispatch( - dispatchOpts, - instance.getHandler({ origin, dispatch, handler }, origDispatchOpts) - ); - }); - return true; - }; - }; - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/headers.js -var require_headers = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/headers.js"(exports, module) { - "use strict"; - var { kConstruct } = require_symbols(); - var { kEnumerableProperty } = require_util(); - var { - iteratorMixin, - isValidHeaderName, - isValidHeaderValue - } = require_util2(); - var { webidl } = require_webidl(); - var assert = __require("node:assert"); - var util = __require("node:util"); - var kHeadersMap = /* @__PURE__ */ Symbol("headers map"); - var kHeadersSortedMap = /* @__PURE__ */ Symbol("headers map sorted"); - function isHTTPWhiteSpaceCharCode(code) { - return code === 10 || code === 13 || code === 9 || code === 32; - } - function headerValueNormalize(potentialValue) { - let i = 0; - let j = potentialValue.length; - while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j - 1))) --j; - while (j > i && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i))) ++i; - return i === 0 && j === potentialValue.length ? potentialValue : potentialValue.substring(i, j); - } - function fill(headers, object2) { - if (Array.isArray(object2)) { - for (let i = 0; i < object2.length; ++i) { - const header = object2[i]; - if (header.length !== 2) { - throw webidl.errors.exception({ - header: "Headers constructor", - message: `expected name/value pair to be length 2, found ${header.length}.` - }); - } - appendHeader(headers, header[0], header[1]); - } - } else if (typeof object2 === "object" && object2 !== null) { - const keys = Object.keys(object2); - for (let i = 0; i < keys.length; ++i) { - appendHeader(headers, keys[i], object2[keys[i]]); - } - } else { - throw webidl.errors.conversionFailed({ - prefix: "Headers constructor", - argument: "Argument 1", - types: ["sequence>", "record"] - }); - } - } - function appendHeader(headers, name, value) { - value = headerValueNormalize(value); - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: "Headers.append", - value: name, - type: "header name" - }); - } else if (!isValidHeaderValue(value)) { - throw webidl.errors.invalidArgument({ - prefix: "Headers.append", - value, - type: "header value" - }); - } - if (getHeadersGuard(headers) === "immutable") { - throw new TypeError("immutable"); - } - return getHeadersList(headers).append(name, value, false); - } - function compareHeaderName(a, b) { - return a[0] < b[0] ? -1 : 1; - } - var HeadersList = class _HeadersList { - /** @type {[string, string][]|null} */ - cookies = null; - constructor(init) { - if (init instanceof _HeadersList) { - this[kHeadersMap] = new Map(init[kHeadersMap]); - this[kHeadersSortedMap] = init[kHeadersSortedMap]; - this.cookies = init.cookies === null ? null : [...init.cookies]; - } else { - this[kHeadersMap] = new Map(init); - this[kHeadersSortedMap] = null; - } - } - /** - * @see https://fetch.spec.whatwg.org/#header-list-contains - * @param {string} name - * @param {boolean} isLowerCase - */ - contains(name, isLowerCase) { - return this[kHeadersMap].has(isLowerCase ? name : name.toLowerCase()); - } - clear() { - this[kHeadersMap].clear(); - this[kHeadersSortedMap] = null; - this.cookies = null; - } - /** - * @see https://fetch.spec.whatwg.org/#concept-header-list-append - * @param {string} name - * @param {string} value - * @param {boolean} isLowerCase - */ - append(name, value, isLowerCase) { - this[kHeadersSortedMap] = null; - const lowercaseName = isLowerCase ? name : name.toLowerCase(); - const exists2 = this[kHeadersMap].get(lowercaseName); - if (exists2) { - const delimiter = lowercaseName === "cookie" ? "; " : ", "; - this[kHeadersMap].set(lowercaseName, { - name: exists2.name, - value: `${exists2.value}${delimiter}${value}` - }); - } else { - this[kHeadersMap].set(lowercaseName, { name, value }); - } - if (lowercaseName === "set-cookie") { - (this.cookies ??= []).push(value); - } - } - /** - * @see https://fetch.spec.whatwg.org/#concept-header-list-set - * @param {string} name - * @param {string} value - * @param {boolean} isLowerCase - */ - set(name, value, isLowerCase) { - this[kHeadersSortedMap] = null; - const lowercaseName = isLowerCase ? name : name.toLowerCase(); - if (lowercaseName === "set-cookie") { - this.cookies = [value]; - } - this[kHeadersMap].set(lowercaseName, { name, value }); - } - /** - * @see https://fetch.spec.whatwg.org/#concept-header-list-delete - * @param {string} name - * @param {boolean} isLowerCase - */ - delete(name, isLowerCase) { - this[kHeadersSortedMap] = null; - if (!isLowerCase) name = name.toLowerCase(); - if (name === "set-cookie") { - this.cookies = null; - } - this[kHeadersMap].delete(name); - } - /** - * @see https://fetch.spec.whatwg.org/#concept-header-list-get - * @param {string} name - * @param {boolean} isLowerCase - * @returns {string | null} - */ - get(name, isLowerCase) { - return this[kHeadersMap].get(isLowerCase ? name : name.toLowerCase())?.value ?? null; - } - *[Symbol.iterator]() { - for (const { 0: name, 1: { value } } of this[kHeadersMap]) { - yield [name, value]; - } - } - get entries() { - const headers = {}; - if (this[kHeadersMap].size !== 0) { - for (const { name, value } of this[kHeadersMap].values()) { - headers[name] = value; - } - } - return headers; - } - rawValues() { - return this[kHeadersMap].values(); - } - get entriesList() { - const headers = []; - if (this[kHeadersMap].size !== 0) { - for (const { 0: lowerName, 1: { name, value } } of this[kHeadersMap]) { - if (lowerName === "set-cookie") { - for (const cookie of this.cookies) { - headers.push([name, cookie]); - } - } else { - headers.push([name, value]); - } - } - } - return headers; - } - // https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set - toSortedArray() { - const size = this[kHeadersMap].size; - const array = new Array(size); - if (size <= 32) { - if (size === 0) { - return array; - } - const iterator = this[kHeadersMap][Symbol.iterator](); - const firstValue = iterator.next().value; - array[0] = [firstValue[0], firstValue[1].value]; - assert(firstValue[1].value !== null); - for (let i = 1, j = 0, right = 0, left = 0, pivot = 0, x, value; i < size; ++i) { - value = iterator.next().value; - x = array[i] = [value[0], value[1].value]; - assert(x[1] !== null); - left = 0; - right = i; - while (left < right) { - pivot = left + (right - left >> 1); - if (array[pivot][0] <= x[0]) { - left = pivot + 1; - } else { - right = pivot; - } - } - if (i !== pivot) { - j = i; - while (j > left) { - array[j] = array[--j]; - } - array[left] = x; - } - } - if (!iterator.next().done) { - throw new TypeError("Unreachable"); - } - return array; - } else { - let i = 0; - for (const { 0: name, 1: { value } } of this[kHeadersMap]) { - array[i++] = [name, value]; - assert(value !== null); - } - return array.sort(compareHeaderName); - } - } - }; - var Headers2 = class _Headers { - #guard; - #headersList; - constructor(init = void 0) { - webidl.util.markAsUncloneable(this); - if (init === kConstruct) { - return; - } - this.#headersList = new HeadersList(); - this.#guard = "none"; - if (init !== void 0) { - init = webidl.converters.HeadersInit(init, "Headers contructor", "init"); - fill(this, init); - } - } - // https://fetch.spec.whatwg.org/#dom-headers-append - append(name, value) { - webidl.brandCheck(this, _Headers); - webidl.argumentLengthCheck(arguments, 2, "Headers.append"); - const prefix = "Headers.append"; - name = webidl.converters.ByteString(name, prefix, "name"); - value = webidl.converters.ByteString(value, prefix, "value"); - return appendHeader(this, name, value); - } - // https://fetch.spec.whatwg.org/#dom-headers-delete - delete(name) { - webidl.brandCheck(this, _Headers); - webidl.argumentLengthCheck(arguments, 1, "Headers.delete"); - const prefix = "Headers.delete"; - name = webidl.converters.ByteString(name, prefix, "name"); - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix: "Headers.delete", - value: name, - type: "header name" - }); - } - if (this.#guard === "immutable") { - throw new TypeError("immutable"); - } - if (!this.#headersList.contains(name, false)) { - return; - } - this.#headersList.delete(name, false); - } - // https://fetch.spec.whatwg.org/#dom-headers-get - get(name) { - webidl.brandCheck(this, _Headers); - webidl.argumentLengthCheck(arguments, 1, "Headers.get"); - const prefix = "Headers.get"; - name = webidl.converters.ByteString(name, prefix, "name"); - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix, - value: name, - type: "header name" - }); - } - return this.#headersList.get(name, false); - } - // https://fetch.spec.whatwg.org/#dom-headers-has - has(name) { - webidl.brandCheck(this, _Headers); - webidl.argumentLengthCheck(arguments, 1, "Headers.has"); - const prefix = "Headers.has"; - name = webidl.converters.ByteString(name, prefix, "name"); - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix, - value: name, - type: "header name" - }); - } - return this.#headersList.contains(name, false); - } - // https://fetch.spec.whatwg.org/#dom-headers-set - set(name, value) { - webidl.brandCheck(this, _Headers); - webidl.argumentLengthCheck(arguments, 2, "Headers.set"); - const prefix = "Headers.set"; - name = webidl.converters.ByteString(name, prefix, "name"); - value = webidl.converters.ByteString(value, prefix, "value"); - value = headerValueNormalize(value); - if (!isValidHeaderName(name)) { - throw webidl.errors.invalidArgument({ - prefix, - value: name, - type: "header name" - }); - } else if (!isValidHeaderValue(value)) { - throw webidl.errors.invalidArgument({ - prefix, - value, - type: "header value" - }); - } - if (this.#guard === "immutable") { - throw new TypeError("immutable"); - } - this.#headersList.set(name, value, false); - } - // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie - getSetCookie() { - webidl.brandCheck(this, _Headers); - const list = this.#headersList.cookies; - if (list) { - return [...list]; - } - return []; - } - // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine - get [kHeadersSortedMap]() { - if (this.#headersList[kHeadersSortedMap]) { - return this.#headersList[kHeadersSortedMap]; - } - const headers = []; - const names = this.#headersList.toSortedArray(); - const cookies = this.#headersList.cookies; - if (cookies === null || cookies.length === 1) { - return this.#headersList[kHeadersSortedMap] = names; - } - for (let i = 0; i < names.length; ++i) { - const { 0: name, 1: value } = names[i]; - if (name === "set-cookie") { - for (let j = 0; j < cookies.length; ++j) { - headers.push([name, cookies[j]]); - } - } else { - headers.push([name, value]); - } - } - return this.#headersList[kHeadersSortedMap] = headers; - } - [util.inspect.custom](depth, options) { - options.depth ??= depth; - return `Headers ${util.formatWithOptions(options, this.#headersList.entries)}`; - } - static getHeadersGuard(o) { - return o.#guard; - } - static setHeadersGuard(o, guard) { - o.#guard = guard; - } - static getHeadersList(o) { - return o.#headersList; - } - static setHeadersList(o, list) { - o.#headersList = list; - } - }; - var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers2; - Reflect.deleteProperty(Headers2, "getHeadersGuard"); - Reflect.deleteProperty(Headers2, "setHeadersGuard"); - Reflect.deleteProperty(Headers2, "getHeadersList"); - Reflect.deleteProperty(Headers2, "setHeadersList"); - iteratorMixin("Headers", Headers2, kHeadersSortedMap, 0, 1); - Object.defineProperties(Headers2.prototype, { - append: kEnumerableProperty, - delete: kEnumerableProperty, - get: kEnumerableProperty, - has: kEnumerableProperty, - set: kEnumerableProperty, - getSetCookie: kEnumerableProperty, - [Symbol.toStringTag]: { - value: "Headers", - configurable: true - }, - [util.inspect.custom]: { - enumerable: false - } - }); - webidl.converters.HeadersInit = function(V, prefix, argument) { - if (webidl.util.Type(V) === "Object") { - const iterator = Reflect.get(V, Symbol.iterator); - if (!util.types.isProxy(V) && iterator === Headers2.prototype.entries) { - try { - return getHeadersList(V).entriesList; - } catch { - } - } - if (typeof iterator === "function") { - return webidl.converters["sequence>"](V, prefix, argument, iterator.bind(V)); - } - return webidl.converters["record"](V, prefix, argument); - } - throw webidl.errors.conversionFailed({ - prefix: "Headers constructor", - argument: "Argument 1", - types: ["sequence>", "record"] - }); - }; - module.exports = { - fill, - // for test. - compareHeaderName, - Headers: Headers2, - HeadersList, - getHeadersGuard, - setHeadersGuard, - setHeadersList, - getHeadersList - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/response.js -var require_response = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/response.js"(exports, module) { - "use strict"; - var { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers(); - var { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body(); - var util = require_util(); - var nodeUtil = __require("node:util"); - var { kEnumerableProperty } = util; - var { - isValidReasonPhrase, - isCancelled, - isAborted, - isBlobLike, - serializeJavascriptValueToJSONString, - isErrorLike, - isomorphicEncode, - environmentSettingsObject: relevantRealm - } = require_util2(); - var { - redirectStatusSet, - nullBodyStatus - } = require_constants3(); - var { kState, kHeaders } = require_symbols2(); - var { webidl } = require_webidl(); - var { FormData } = require_formdata(); - var { URLSerializer } = require_data_url(); - var { kConstruct } = require_symbols(); - var assert = __require("node:assert"); - var { types } = __require("node:util"); - var textEncoder = new TextEncoder("utf-8"); - var Response = class _Response { - // Creates network error Response. - static error() { - const responseObject = fromInnerResponse(makeNetworkError(), "immutable"); - return responseObject; - } - // https://fetch.spec.whatwg.org/#dom-response-json - static json(data, init = {}) { - webidl.argumentLengthCheck(arguments, 1, "Response.json"); - if (init !== null) { - init = webidl.converters.ResponseInit(init); - } - const bytes = textEncoder.encode( - serializeJavascriptValueToJSONString(data) - ); - const body = extractBody(bytes); - const responseObject = fromInnerResponse(makeResponse({}), "response"); - initializeResponse(responseObject, init, { body: body[0], type: "application/json" }); - return responseObject; - } - // Creates a redirect Response that redirects to url with status status. - static redirect(url, status = 302) { - webidl.argumentLengthCheck(arguments, 1, "Response.redirect"); - url = webidl.converters.USVString(url); - status = webidl.converters["unsigned short"](status); - let parsedURL; - try { - parsedURL = new URL(url, relevantRealm.settingsObject.baseUrl); - } catch (err) { - throw new TypeError(`Failed to parse URL from ${url}`, { cause: err }); - } - if (!redirectStatusSet.has(status)) { - throw new RangeError(`Invalid status code ${status}`); - } - const responseObject = fromInnerResponse(makeResponse({}), "immutable"); - responseObject[kState].status = status; - const value = isomorphicEncode(URLSerializer(parsedURL)); - responseObject[kState].headersList.append("location", value, true); - return responseObject; - } - // https://fetch.spec.whatwg.org/#dom-response - constructor(body = null, init = {}) { - webidl.util.markAsUncloneable(this); - if (body === kConstruct) { - return; - } - if (body !== null) { - body = webidl.converters.BodyInit(body); - } - init = webidl.converters.ResponseInit(init); - this[kState] = makeResponse({}); - this[kHeaders] = new Headers2(kConstruct); - setHeadersGuard(this[kHeaders], "response"); - setHeadersList(this[kHeaders], this[kState].headersList); - let bodyWithType = null; - if (body != null) { - const [extractedBody, type] = extractBody(body); - bodyWithType = { body: extractedBody, type }; - } - initializeResponse(this, init, bodyWithType); - } - // Returns response’s type, e.g., "cors". - get type() { - webidl.brandCheck(this, _Response); - return this[kState].type; - } - // Returns response’s URL, if it has one; otherwise the empty string. - get url() { - webidl.brandCheck(this, _Response); - const urlList = this[kState].urlList; - const url = urlList[urlList.length - 1] ?? null; - if (url === null) { - return ""; - } - return URLSerializer(url, true); - } - // Returns whether response was obtained through a redirect. - get redirected() { - webidl.brandCheck(this, _Response); - return this[kState].urlList.length > 1; - } - // Returns response’s status. - get status() { - webidl.brandCheck(this, _Response); - return this[kState].status; - } - // Returns whether response’s status is an ok status. - get ok() { - webidl.brandCheck(this, _Response); - return this[kState].status >= 200 && this[kState].status <= 299; - } - // Returns response’s status message. - get statusText() { - webidl.brandCheck(this, _Response); - return this[kState].statusText; - } - // Returns response’s headers as Headers. - get headers() { - webidl.brandCheck(this, _Response); - return this[kHeaders]; - } - get body() { - webidl.brandCheck(this, _Response); - return this[kState].body ? this[kState].body.stream : null; - } - get bodyUsed() { - webidl.brandCheck(this, _Response); - return !!this[kState].body && util.isDisturbed(this[kState].body.stream); - } - // Returns a clone of response. - clone() { - webidl.brandCheck(this, _Response); - if (bodyUnusable(this)) { - throw webidl.errors.exception({ - header: "Response.clone", - message: "Body has already been consumed." - }); - } - const clonedResponse = cloneResponse(this[kState]); - if (hasFinalizationRegistry && this[kState].body?.stream) { - streamRegistry.register(this, new WeakRef(this[kState].body.stream)); - } - return fromInnerResponse(clonedResponse, getHeadersGuard(this[kHeaders])); - } - [nodeUtil.inspect.custom](depth, options) { - if (options.depth === null) { - options.depth = 2; - } - options.colors ??= true; - const properties = { - status: this.status, - statusText: this.statusText, - headers: this.headers, - body: this.body, - bodyUsed: this.bodyUsed, - ok: this.ok, - redirected: this.redirected, - type: this.type, - url: this.url - }; - return `Response ${nodeUtil.formatWithOptions(options, properties)}`; - } - }; - mixinBody(Response); - Object.defineProperties(Response.prototype, { - type: kEnumerableProperty, - url: kEnumerableProperty, - status: kEnumerableProperty, - ok: kEnumerableProperty, - redirected: kEnumerableProperty, - statusText: kEnumerableProperty, - headers: kEnumerableProperty, - clone: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - [Symbol.toStringTag]: { - value: "Response", - configurable: true - } - }); - Object.defineProperties(Response, { - json: kEnumerableProperty, - redirect: kEnumerableProperty, - error: kEnumerableProperty - }); - function cloneResponse(response) { - if (response.internalResponse) { - return filterResponse( - cloneResponse(response.internalResponse), - response.type - ); - } - const newResponse = makeResponse({ ...response, body: null }); - if (response.body != null) { - newResponse.body = cloneBody(newResponse, response.body); - } - return newResponse; - } - function makeResponse(init) { - return { - aborted: false, - rangeRequested: false, - timingAllowPassed: false, - requestIncludesCredentials: false, - type: "default", - status: 200, - timingInfo: null, - cacheState: "", - statusText: "", - ...init, - headersList: init?.headersList ? new HeadersList(init?.headersList) : new HeadersList(), - urlList: init?.urlList ? [...init.urlList] : [] - }; - } - function makeNetworkError(reason) { - const isError = isErrorLike(reason); - return makeResponse({ - type: "error", - status: 0, - error: isError ? reason : new Error(reason ? String(reason) : reason), - aborted: reason && reason.name === "AbortError" - }); - } - function isNetworkError(response) { - return ( - // A network error is a response whose type is "error", - response.type === "error" && // status is 0 - response.status === 0 - ); - } - function makeFilteredResponse(response, state) { - state = { - internalResponse: response, - ...state - }; - return new Proxy(response, { - get(target, p) { - return p in state ? state[p] : target[p]; - }, - set(target, p, value) { - assert(!(p in state)); - target[p] = value; - return true; - } - }); - } - function filterResponse(response, type) { - if (type === "basic") { - return makeFilteredResponse(response, { - type: "basic", - headersList: response.headersList - }); - } else if (type === "cors") { - return makeFilteredResponse(response, { - type: "cors", - headersList: response.headersList - }); - } else if (type === "opaque") { - return makeFilteredResponse(response, { - type: "opaque", - urlList: Object.freeze([]), - status: 0, - statusText: "", - body: null - }); - } else if (type === "opaqueredirect") { - return makeFilteredResponse(response, { - type: "opaqueredirect", - status: 0, - statusText: "", - headersList: [], - body: null - }); - } else { - assert(false); - } - } - function makeAppropriateNetworkError(fetchParams, err = null) { - assert(isCancelled(fetchParams)); - return isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err })); - } - function initializeResponse(response, init, body) { - if (init.status !== null && (init.status < 200 || init.status > 599)) { - throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); - } - if ("statusText" in init && init.statusText != null) { - if (!isValidReasonPhrase(String(init.statusText))) { - throw new TypeError("Invalid statusText"); - } - } - if ("status" in init && init.status != null) { - response[kState].status = init.status; - } - if ("statusText" in init && init.statusText != null) { - response[kState].statusText = init.statusText; - } - if ("headers" in init && init.headers != null) { - fill(response[kHeaders], init.headers); - } - if (body) { - if (nullBodyStatus.includes(response.status)) { - throw webidl.errors.exception({ - header: "Response constructor", - message: `Invalid response status code ${response.status}` - }); - } - response[kState].body = body.body; - if (body.type != null && !response[kState].headersList.contains("content-type", true)) { - response[kState].headersList.append("content-type", body.type, true); - } - } - } - function fromInnerResponse(innerResponse, guard) { - const response = new Response(kConstruct); - response[kState] = innerResponse; - response[kHeaders] = new Headers2(kConstruct); - setHeadersList(response[kHeaders], innerResponse.headersList); - setHeadersGuard(response[kHeaders], guard); - if (hasFinalizationRegistry && innerResponse.body?.stream) { - streamRegistry.register(response, new WeakRef(innerResponse.body.stream)); - } - return response; - } - webidl.converters.ReadableStream = webidl.interfaceConverter( - ReadableStream - ); - webidl.converters.FormData = webidl.interfaceConverter( - FormData - ); - webidl.converters.URLSearchParams = webidl.interfaceConverter( - URLSearchParams - ); - webidl.converters.XMLHttpRequestBodyInit = function(V, prefix, name) { - if (typeof V === "string") { - return webidl.converters.USVString(V, prefix, name); - } - if (isBlobLike(V)) { - return webidl.converters.Blob(V, prefix, name, { strict: false }); - } - if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { - return webidl.converters.BufferSource(V, prefix, name); - } - if (util.isFormDataLike(V)) { - return webidl.converters.FormData(V, prefix, name, { strict: false }); - } - if (V instanceof URLSearchParams) { - return webidl.converters.URLSearchParams(V, prefix, name); - } - return webidl.converters.DOMString(V, prefix, name); - }; - webidl.converters.BodyInit = function(V, prefix, argument) { - if (V instanceof ReadableStream) { - return webidl.converters.ReadableStream(V, prefix, argument); - } - if (V?.[Symbol.asyncIterator]) { - return V; - } - return webidl.converters.XMLHttpRequestBodyInit(V, prefix, argument); - }; - webidl.converters.ResponseInit = webidl.dictionaryConverter([ - { - key: "status", - converter: webidl.converters["unsigned short"], - defaultValue: () => 200 - }, - { - key: "statusText", - converter: webidl.converters.ByteString, - defaultValue: () => "" - }, - { - key: "headers", - converter: webidl.converters.HeadersInit - } - ]); - module.exports = { - isNetworkError, - makeNetworkError, - makeResponse, - makeAppropriateNetworkError, - filterResponse, - Response, - cloneResponse, - fromInnerResponse - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/dispatcher-weakref.js -var require_dispatcher_weakref = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/dispatcher-weakref.js"(exports, module) { - "use strict"; - var { kConnected, kSize } = require_symbols(); - var CompatWeakRef = class { - constructor(value) { - this.value = value; - } - deref() { - return this.value[kConnected] === 0 && this.value[kSize] === 0 ? void 0 : this.value; - } - }; - var CompatFinalizer = class { - constructor(finalizer) { - this.finalizer = finalizer; - } - register(dispatcher, key) { - if (dispatcher.on) { - dispatcher.on("disconnect", () => { - if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { - this.finalizer(key); - } - }); - } - } - unregister(key) { - } - }; - module.exports = function() { - if (process.env.NODE_V8_COVERAGE && process.version.startsWith("v18")) { - process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"); - return { - WeakRef: CompatWeakRef, - FinalizationRegistry: CompatFinalizer - }; - } - return { WeakRef, FinalizationRegistry }; - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/request.js -var require_request2 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/request.js"(exports, module) { - "use strict"; - var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body(); - var { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers(); - var { FinalizationRegistry: FinalizationRegistry2 } = require_dispatcher_weakref()(); - var util = require_util(); - var nodeUtil = __require("node:util"); - var { - isValidHTTPToken, - sameOrigin, - environmentSettingsObject - } = require_util2(); - var { - forbiddenMethodsSet, - corsSafeListedMethodsSet, - referrerPolicy, - requestRedirect, - requestMode, - requestCredentials, - requestCache, - requestDuplex - } = require_constants3(); - var { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util; - var { kHeaders, kSignal, kState, kDispatcher } = require_symbols2(); - var { webidl } = require_webidl(); - var { URLSerializer } = require_data_url(); - var { kConstruct } = require_symbols(); - var assert = __require("node:assert"); - var { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __require("node:events"); - var kAbortController = /* @__PURE__ */ Symbol("abortController"); - var requestFinalizer = new FinalizationRegistry2(({ signal, abort }) => { - signal.removeEventListener("abort", abort); - }); - var dependentControllerMap = /* @__PURE__ */ new WeakMap(); - function buildAbort(acRef) { - return abort; - function abort() { - const ac = acRef.deref(); - if (ac !== void 0) { - requestFinalizer.unregister(abort); - this.removeEventListener("abort", abort); - ac.abort(this.reason); - const controllerList = dependentControllerMap.get(ac.signal); - if (controllerList !== void 0) { - if (controllerList.size !== 0) { - for (const ref of controllerList) { - const ctrl = ref.deref(); - if (ctrl !== void 0) { - ctrl.abort(this.reason); - } - } - controllerList.clear(); - } - dependentControllerMap.delete(ac.signal); - } - } - } - } - var patchMethodWarning = false; - var Request = class _Request { - // https://fetch.spec.whatwg.org/#dom-request - constructor(input, init = {}) { - webidl.util.markAsUncloneable(this); - if (input === kConstruct) { - return; - } - const prefix = "Request constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - input = webidl.converters.RequestInfo(input, prefix, "input"); - init = webidl.converters.RequestInit(init, prefix, "init"); - let request = null; - let fallbackMode = null; - const baseUrl = environmentSettingsObject.settingsObject.baseUrl; - let signal = null; - if (typeof input === "string") { - this[kDispatcher] = init.dispatcher; - let parsedURL; - try { - parsedURL = new URL(input, baseUrl); - } catch (err) { - throw new TypeError("Failed to parse URL from " + input, { cause: err }); - } - if (parsedURL.username || parsedURL.password) { - throw new TypeError( - "Request cannot be constructed from a URL that includes credentials: " + input - ); - } - request = makeRequest({ urlList: [parsedURL] }); - fallbackMode = "cors"; - } else { - this[kDispatcher] = init.dispatcher || input[kDispatcher]; - assert(input instanceof _Request); - request = input[kState]; - signal = input[kSignal]; - } - const origin = environmentSettingsObject.settingsObject.origin; - let window = "client"; - if (request.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request.window, origin)) { - window = request.window; - } - if (init.window != null) { - throw new TypeError(`'window' option '${window}' must be null`); - } - if ("window" in init) { - window = "no-window"; - } - request = makeRequest({ - // URL request’s URL. - // undici implementation note: this is set as the first item in request's urlList in makeRequest - // method request’s method. - method: request.method, - // header list A copy of request’s header list. - // undici implementation note: headersList is cloned in makeRequest - headersList: request.headersList, - // unsafe-request flag Set. - unsafeRequest: request.unsafeRequest, - // client This’s relevant settings object. - client: environmentSettingsObject.settingsObject, - // window window. - window, - // priority request’s priority. - priority: request.priority, - // origin request’s origin. The propagation of the origin is only significant for navigation requests - // being handled by a service worker. In this scenario a request can have an origin that is different - // from the current client. - origin: request.origin, - // referrer request’s referrer. - referrer: request.referrer, - // referrer policy request’s referrer policy. - referrerPolicy: request.referrerPolicy, - // mode request’s mode. - mode: request.mode, - // credentials mode request’s credentials mode. - credentials: request.credentials, - // cache mode request’s cache mode. - cache: request.cache, - // redirect mode request’s redirect mode. - redirect: request.redirect, - // integrity metadata request’s integrity metadata. - integrity: request.integrity, - // keepalive request’s keepalive. - keepalive: request.keepalive, - // reload-navigation flag request’s reload-navigation flag. - reloadNavigation: request.reloadNavigation, - // history-navigation flag request’s history-navigation flag. - historyNavigation: request.historyNavigation, - // URL list A clone of request’s URL list. - urlList: [...request.urlList] - }); - const initHasKey = Object.keys(init).length !== 0; - if (initHasKey) { - if (request.mode === "navigate") { - request.mode = "same-origin"; - } - request.reloadNavigation = false; - request.historyNavigation = false; - request.origin = "client"; - request.referrer = "client"; - request.referrerPolicy = ""; - request.url = request.urlList[request.urlList.length - 1]; - request.urlList = [request.url]; - } - if (init.referrer !== void 0) { - const referrer = init.referrer; - if (referrer === "") { - request.referrer = "no-referrer"; - } else { - let parsedReferrer; - try { - parsedReferrer = new URL(referrer, baseUrl); - } catch (err) { - throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }); - } - if (parsedReferrer.protocol === "about:" && parsedReferrer.hostname === "client" || origin && !sameOrigin(parsedReferrer, environmentSettingsObject.settingsObject.baseUrl)) { - request.referrer = "client"; - } else { - request.referrer = parsedReferrer; - } - } - } - if (init.referrerPolicy !== void 0) { - request.referrerPolicy = init.referrerPolicy; - } - let mode; - if (init.mode !== void 0) { - mode = init.mode; - } else { - mode = fallbackMode; - } - if (mode === "navigate") { - throw webidl.errors.exception({ - header: "Request constructor", - message: "invalid request mode navigate." - }); - } - if (mode != null) { - request.mode = mode; - } - if (init.credentials !== void 0) { - request.credentials = init.credentials; - } - if (init.cache !== void 0) { - request.cache = init.cache; - } - if (request.cache === "only-if-cached" && request.mode !== "same-origin") { - throw new TypeError( - "'only-if-cached' can be set only with 'same-origin' mode" - ); - } - if (init.redirect !== void 0) { - request.redirect = init.redirect; - } - if (init.integrity != null) { - request.integrity = String(init.integrity); - } - if (init.keepalive !== void 0) { - request.keepalive = Boolean(init.keepalive); - } - if (init.method !== void 0) { - let method = init.method; - const mayBeNormalized = normalizedMethodRecords[method]; - if (mayBeNormalized !== void 0) { - request.method = mayBeNormalized; - } else { - if (!isValidHTTPToken(method)) { - throw new TypeError(`'${method}' is not a valid HTTP method.`); - } - const upperCase = method.toUpperCase(); - if (forbiddenMethodsSet.has(upperCase)) { - throw new TypeError(`'${method}' HTTP method is unsupported.`); - } - method = normalizedMethodRecordsBase[upperCase] ?? method; - request.method = method; - } - if (!patchMethodWarning && request.method === "patch") { - process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.", { - code: "UNDICI-FETCH-patch" - }); - patchMethodWarning = true; - } - } - if (init.signal !== void 0) { - signal = init.signal; - } - this[kState] = request; - const ac = new AbortController(); - this[kSignal] = ac.signal; - if (signal != null) { - if (!signal || typeof signal.aborted !== "boolean" || typeof signal.addEventListener !== "function") { - throw new TypeError( - "Failed to construct 'Request': member signal is not of type AbortSignal." - ); - } - if (signal.aborted) { - ac.abort(signal.reason); - } else { - this[kAbortController] = ac; - const acRef = new WeakRef(ac); - const abort = buildAbort(acRef); - try { - if (typeof getMaxListeners === "function" && getMaxListeners(signal) === defaultMaxListeners) { - setMaxListeners(1500, signal); - } else if (getEventListeners(signal, "abort").length >= defaultMaxListeners) { - setMaxListeners(1500, signal); - } - } catch { - } - util.addAbortListener(signal, abort); - requestFinalizer.register(ac, { signal, abort }, abort); - } - } - this[kHeaders] = new Headers2(kConstruct); - setHeadersList(this[kHeaders], request.headersList); - setHeadersGuard(this[kHeaders], "request"); - if (mode === "no-cors") { - if (!corsSafeListedMethodsSet.has(request.method)) { - throw new TypeError( - `'${request.method} is unsupported in no-cors mode.` - ); - } - setHeadersGuard(this[kHeaders], "request-no-cors"); - } - if (initHasKey) { - const headersList = getHeadersList(this[kHeaders]); - const headers = init.headers !== void 0 ? init.headers : new HeadersList(headersList); - headersList.clear(); - if (headers instanceof HeadersList) { - for (const { name, value } of headers.rawValues()) { - headersList.append(name, value, false); - } - headersList.cookies = headers.cookies; - } else { - fillHeaders(this[kHeaders], headers); - } - } - const inputBody = input instanceof _Request ? input[kState].body : null; - if ((init.body != null || inputBody != null) && (request.method === "GET" || request.method === "HEAD")) { - throw new TypeError("Request with GET/HEAD method cannot have body."); - } - let initBody = null; - if (init.body != null) { - const [extractedBody, contentType] = extractBody( - init.body, - request.keepalive - ); - initBody = extractedBody; - if (contentType && !getHeadersList(this[kHeaders]).contains("content-type", true)) { - this[kHeaders].append("content-type", contentType); - } - } - const inputOrInitBody = initBody ?? inputBody; - if (inputOrInitBody != null && inputOrInitBody.source == null) { - if (initBody != null && init.duplex == null) { - throw new TypeError("RequestInit: duplex option is required when sending a body."); - } - if (request.mode !== "same-origin" && request.mode !== "cors") { - throw new TypeError( - 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' - ); - } - request.useCORSPreflightFlag = true; - } - let finalBody = inputOrInitBody; - if (initBody == null && inputBody != null) { - if (bodyUnusable(input)) { - throw new TypeError( - "Cannot construct a Request with a Request object that has already been used." - ); - } - const identityTransform = new TransformStream(); - inputBody.stream.pipeThrough(identityTransform); - finalBody = { - source: inputBody.source, - length: inputBody.length, - stream: identityTransform.readable - }; - } - this[kState].body = finalBody; - } - // Returns request’s HTTP method, which is "GET" by default. - get method() { - webidl.brandCheck(this, _Request); - return this[kState].method; - } - // Returns the URL of request as a string. - get url() { - webidl.brandCheck(this, _Request); - return URLSerializer(this[kState].url); - } - // Returns a Headers object consisting of the headers associated with request. - // Note that headers added in the network layer by the user agent will not - // be accounted for in this object, e.g., the "Host" header. - get headers() { - webidl.brandCheck(this, _Request); - return this[kHeaders]; - } - // Returns the kind of resource requested by request, e.g., "document" - // or "script". - get destination() { - webidl.brandCheck(this, _Request); - return this[kState].destination; - } - // Returns the referrer of request. Its value can be a same-origin URL if - // explicitly set in init, the empty string to indicate no referrer, and - // "about:client" when defaulting to the global’s default. This is used - // during fetching to determine the value of the `Referer` header of the - // request being made. - get referrer() { - webidl.brandCheck(this, _Request); - if (this[kState].referrer === "no-referrer") { - return ""; - } - if (this[kState].referrer === "client") { - return "about:client"; - } - return this[kState].referrer.toString(); - } - // Returns the referrer policy associated with request. - // This is used during fetching to compute the value of the request’s - // referrer. - get referrerPolicy() { - webidl.brandCheck(this, _Request); - return this[kState].referrerPolicy; - } - // Returns the mode associated with request, which is a string indicating - // whether the request will use CORS, or will be restricted to same-origin - // URLs. - get mode() { - webidl.brandCheck(this, _Request); - return this[kState].mode; - } - // Returns the credentials mode associated with request, - // which is a string indicating whether credentials will be sent with the - // request always, never, or only when sent to a same-origin URL. - get credentials() { - return this[kState].credentials; - } - // Returns the cache mode associated with request, - // which is a string indicating how the request will - // interact with the browser’s cache when fetching. - get cache() { - webidl.brandCheck(this, _Request); - return this[kState].cache; - } - // Returns the redirect mode associated with request, - // which is a string indicating how redirects for the - // request will be handled during fetching. A request - // will follow redirects by default. - get redirect() { - webidl.brandCheck(this, _Request); - return this[kState].redirect; - } - // Returns request’s subresource integrity metadata, which is a - // cryptographic hash of the resource being fetched. Its value - // consists of multiple hashes separated by whitespace. [SRI] - get integrity() { - webidl.brandCheck(this, _Request); - return this[kState].integrity; - } - // Returns a boolean indicating whether or not request can outlive the - // global in which it was created. - get keepalive() { - webidl.brandCheck(this, _Request); - return this[kState].keepalive; - } - // Returns a boolean indicating whether or not request is for a reload - // navigation. - get isReloadNavigation() { - webidl.brandCheck(this, _Request); - return this[kState].reloadNavigation; - } - // Returns a boolean indicating whether or not request is for a history - // navigation (a.k.a. back-forward navigation). - get isHistoryNavigation() { - webidl.brandCheck(this, _Request); - return this[kState].historyNavigation; - } - // Returns the signal associated with request, which is an AbortSignal - // object indicating whether or not request has been aborted, and its - // abort event handler. - get signal() { - webidl.brandCheck(this, _Request); - return this[kSignal]; - } - get body() { - webidl.brandCheck(this, _Request); - return this[kState].body ? this[kState].body.stream : null; - } - get bodyUsed() { - webidl.brandCheck(this, _Request); - return !!this[kState].body && util.isDisturbed(this[kState].body.stream); - } - get duplex() { - webidl.brandCheck(this, _Request); - return "half"; - } - // Returns a clone of request. - clone() { - webidl.brandCheck(this, _Request); - if (bodyUnusable(this)) { - throw new TypeError("unusable"); - } - const clonedRequest = cloneRequest(this[kState]); - const ac = new AbortController(); - if (this.signal.aborted) { - ac.abort(this.signal.reason); - } else { - let list = dependentControllerMap.get(this.signal); - if (list === void 0) { - list = /* @__PURE__ */ new Set(); - dependentControllerMap.set(this.signal, list); - } - const acRef = new WeakRef(ac); - list.add(acRef); - util.addAbortListener( - ac.signal, - buildAbort(acRef) - ); - } - return fromInnerRequest(clonedRequest, ac.signal, getHeadersGuard(this[kHeaders])); - } - [nodeUtil.inspect.custom](depth, options) { - if (options.depth === null) { - options.depth = 2; - } - options.colors ??= true; - const properties = { - method: this.method, - url: this.url, - headers: this.headers, - destination: this.destination, - referrer: this.referrer, - referrerPolicy: this.referrerPolicy, - mode: this.mode, - credentials: this.credentials, - cache: this.cache, - redirect: this.redirect, - integrity: this.integrity, - keepalive: this.keepalive, - isReloadNavigation: this.isReloadNavigation, - isHistoryNavigation: this.isHistoryNavigation, - signal: this.signal - }; - return `Request ${nodeUtil.formatWithOptions(options, properties)}`; - } - }; - mixinBody(Request); - function makeRequest(init) { - return { - method: init.method ?? "GET", - localURLsOnly: init.localURLsOnly ?? false, - unsafeRequest: init.unsafeRequest ?? false, - body: init.body ?? null, - client: init.client ?? null, - reservedClient: init.reservedClient ?? null, - replacesClientId: init.replacesClientId ?? "", - window: init.window ?? "client", - keepalive: init.keepalive ?? false, - serviceWorkers: init.serviceWorkers ?? "all", - initiator: init.initiator ?? "", - destination: init.destination ?? "", - priority: init.priority ?? null, - origin: init.origin ?? "client", - policyContainer: init.policyContainer ?? "client", - referrer: init.referrer ?? "client", - referrerPolicy: init.referrerPolicy ?? "", - mode: init.mode ?? "no-cors", - useCORSPreflightFlag: init.useCORSPreflightFlag ?? false, - credentials: init.credentials ?? "same-origin", - useCredentials: init.useCredentials ?? false, - cache: init.cache ?? "default", - redirect: init.redirect ?? "follow", - integrity: init.integrity ?? "", - cryptoGraphicsNonceMetadata: init.cryptoGraphicsNonceMetadata ?? "", - parserMetadata: init.parserMetadata ?? "", - reloadNavigation: init.reloadNavigation ?? false, - historyNavigation: init.historyNavigation ?? false, - userActivation: init.userActivation ?? false, - taintedOrigin: init.taintedOrigin ?? false, - redirectCount: init.redirectCount ?? 0, - responseTainting: init.responseTainting ?? "basic", - preventNoCacheCacheControlHeaderModification: init.preventNoCacheCacheControlHeaderModification ?? false, - done: init.done ?? false, - timingAllowFailed: init.timingAllowFailed ?? false, - urlList: init.urlList, - url: init.urlList[0], - headersList: init.headersList ? new HeadersList(init.headersList) : new HeadersList() - }; - } - function cloneRequest(request) { - const newRequest = makeRequest({ ...request, body: null }); - if (request.body != null) { - newRequest.body = cloneBody(newRequest, request.body); - } - return newRequest; - } - function fromInnerRequest(innerRequest, signal, guard) { - const request = new Request(kConstruct); - request[kState] = innerRequest; - request[kSignal] = signal; - request[kHeaders] = new Headers2(kConstruct); - setHeadersList(request[kHeaders], innerRequest.headersList); - setHeadersGuard(request[kHeaders], guard); - return request; - } - Object.defineProperties(Request.prototype, { - method: kEnumerableProperty, - url: kEnumerableProperty, - headers: kEnumerableProperty, - redirect: kEnumerableProperty, - clone: kEnumerableProperty, - signal: kEnumerableProperty, - duplex: kEnumerableProperty, - destination: kEnumerableProperty, - body: kEnumerableProperty, - bodyUsed: kEnumerableProperty, - isHistoryNavigation: kEnumerableProperty, - isReloadNavigation: kEnumerableProperty, - keepalive: kEnumerableProperty, - integrity: kEnumerableProperty, - cache: kEnumerableProperty, - credentials: kEnumerableProperty, - attribute: kEnumerableProperty, - referrerPolicy: kEnumerableProperty, - referrer: kEnumerableProperty, - mode: kEnumerableProperty, - [Symbol.toStringTag]: { - value: "Request", - configurable: true - } - }); - webidl.converters.Request = webidl.interfaceConverter( - Request - ); - webidl.converters.RequestInfo = function(V, prefix, argument) { - if (typeof V === "string") { - return webidl.converters.USVString(V, prefix, argument); - } - if (V instanceof Request) { - return webidl.converters.Request(V, prefix, argument); - } - return webidl.converters.USVString(V, prefix, argument); - }; - webidl.converters.AbortSignal = webidl.interfaceConverter( - AbortSignal - ); - webidl.converters.RequestInit = webidl.dictionaryConverter([ - { - key: "method", - converter: webidl.converters.ByteString - }, - { - key: "headers", - converter: webidl.converters.HeadersInit - }, - { - key: "body", - converter: webidl.nullableConverter( - webidl.converters.BodyInit - ) - }, - { - key: "referrer", - converter: webidl.converters.USVString - }, - { - key: "referrerPolicy", - converter: webidl.converters.DOMString, - // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy - allowedValues: referrerPolicy - }, - { - key: "mode", - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#concept-request-mode - allowedValues: requestMode - }, - { - key: "credentials", - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestcredentials - allowedValues: requestCredentials - }, - { - key: "cache", - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestcache - allowedValues: requestCache - }, - { - key: "redirect", - converter: webidl.converters.DOMString, - // https://fetch.spec.whatwg.org/#requestredirect - allowedValues: requestRedirect - }, - { - key: "integrity", - converter: webidl.converters.DOMString - }, - { - key: "keepalive", - converter: webidl.converters.boolean - }, - { - key: "signal", - converter: webidl.nullableConverter( - (signal) => webidl.converters.AbortSignal( - signal, - "RequestInit", - "signal", - { strict: false } - ) - ) - }, - { - key: "window", - converter: webidl.converters.any - }, - { - key: "duplex", - converter: webidl.converters.DOMString, - allowedValues: requestDuplex - }, - { - key: "dispatcher", - // undici specific option - converter: webidl.converters.any - } - ]); - module.exports = { Request, makeRequest, fromInnerRequest, cloneRequest }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/index.js -var require_fetch = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/index.js"(exports, module) { - "use strict"; - var { - makeNetworkError, - makeAppropriateNetworkError, - filterResponse, - makeResponse, - fromInnerResponse - } = require_response(); - var { HeadersList } = require_headers(); - var { Request, cloneRequest } = require_request2(); - var zlib = __require("node:zlib"); - var { - bytesMatch, - makePolicyContainer, - clonePolicyContainer, - requestBadPort, - TAOCheck, - appendRequestOriginHeader, - responseLocationURL, - requestCurrentURL, - setRequestReferrerPolicyOnRedirect, - tryUpgradeRequestToAPotentiallyTrustworthyURL, - createOpaqueTimingInfo, - appendFetchMetadata, - corsCheck, - crossOriginResourcePolicyCheck, - determineRequestsReferrer, - coarsenedSharedCurrentTime, - createDeferredPromise, - isBlobLike, - sameOrigin, - isCancelled, - isAborted, - isErrorLike, - fullyReadBody, - readableStreamClose, - isomorphicEncode, - urlIsLocal, - urlIsHttpHttpsScheme, - urlHasHttpsScheme, - clampAndCoarsenConnectionTimingInfo, - simpleRangeHeaderValue, - buildContentRange, - createInflate, - extractMimeType - } = require_util2(); - var { kState, kDispatcher } = require_symbols2(); - var assert = __require("node:assert"); - var { safelyExtractBody, extractBody } = require_body(); - var { - redirectStatusSet, - nullBodyStatus, - safeMethodsSet, - requestBodyHeader, - subresourceSet - } = require_constants3(); - var EE = __require("node:events"); - var { Readable, pipeline, finished } = __require("node:stream"); - var { addAbortListener, isErrored, isReadable, bufferToLowerCasedHeaderName } = require_util(); - var { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url(); - var { getGlobalDispatcher } = require_global2(); - var { webidl } = require_webidl(); - var { STATUS_CODES } = __require("node:http"); - var GET_OR_HEAD = ["GET", "HEAD"]; - var defaultUserAgent = typeof __UNDICI_IS_NODE__ !== "undefined" || typeof esbuildDetection !== "undefined" ? "node" : "undici"; - var resolveObjectURL; - var Fetch = class extends EE { - constructor(dispatcher) { - super(); - this.dispatcher = dispatcher; - this.connection = null; - this.dump = false; - this.state = "ongoing"; - } - terminate(reason) { - if (this.state !== "ongoing") { - return; - } - this.state = "terminated"; - this.connection?.destroy(reason); - this.emit("terminated", reason); - } - // https://fetch.spec.whatwg.org/#fetch-controller-abort - abort(error2) { - if (this.state !== "ongoing") { - return; - } - this.state = "aborted"; - if (!error2) { - error2 = new DOMException("The operation was aborted.", "AbortError"); - } - this.serializedAbortReason = error2; - this.connection?.destroy(error2); - this.emit("terminated", error2); - } - }; - function handleFetchDone(response) { - finalizeAndReportTiming(response, "fetch"); - } - function fetch2(input, init = void 0) { - webidl.argumentLengthCheck(arguments, 1, "globalThis.fetch"); - let p = createDeferredPromise(); - let requestObject; - try { - requestObject = new Request(input, init); - } catch (e) { - p.reject(e); - return p.promise; - } - const request = requestObject[kState]; - if (requestObject.signal.aborted) { - abortFetch(p, request, null, requestObject.signal.reason); - return p.promise; - } - const globalObject = request.client.globalObject; - if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") { - request.serviceWorkers = "none"; - } - let responseObject = null; - let locallyAborted = false; - let controller = null; - addAbortListener( - requestObject.signal, - () => { - locallyAborted = true; - assert(controller != null); - controller.abort(requestObject.signal.reason); - const realResponse = responseObject?.deref(); - abortFetch(p, request, realResponse, requestObject.signal.reason); - } - ); - const processResponse = (response) => { - if (locallyAborted) { - return; - } - if (response.aborted) { - abortFetch(p, request, responseObject, controller.serializedAbortReason); - return; - } - if (response.type === "error") { - p.reject(new TypeError("fetch failed", { cause: response.error })); - return; - } - responseObject = new WeakRef(fromInnerResponse(response, "immutable")); - p.resolve(responseObject.deref()); - p = null; - }; - controller = fetching({ - request, - processResponseEndOfBody: handleFetchDone, - processResponse, - dispatcher: requestObject[kDispatcher] - // undici - }); - return p.promise; - } - function finalizeAndReportTiming(response, initiatorType = "other") { - if (response.type === "error" && response.aborted) { - return; - } - if (!response.urlList?.length) { - return; - } - const originalURL = response.urlList[0]; - let timingInfo = response.timingInfo; - let cacheState = response.cacheState; - if (!urlIsHttpHttpsScheme(originalURL)) { - return; - } - if (timingInfo === null) { - return; - } - if (!response.timingAllowPassed) { - timingInfo = createOpaqueTimingInfo({ - startTime: timingInfo.startTime - }); - cacheState = ""; - } - timingInfo.endTime = coarsenedSharedCurrentTime(); - response.timingInfo = timingInfo; - markResourceTiming( - timingInfo, - originalURL.href, - initiatorType, - globalThis, - cacheState - ); - } - var markResourceTiming = performance.markResourceTiming; - function abortFetch(p, request, responseObject, error2) { - if (p) { - p.reject(error2); - } - if (request.body != null && isReadable(request.body?.stream)) { - request.body.stream.cancel(error2).catch((err) => { - if (err.code === "ERR_INVALID_STATE") { - return; - } - throw err; - }); - } - if (responseObject == null) { - return; - } - const response = responseObject[kState]; - if (response.body != null && isReadable(response.body?.stream)) { - response.body.stream.cancel(error2).catch((err) => { - if (err.code === "ERR_INVALID_STATE") { - return; - } - throw err; - }); - } - } - function fetching({ - request, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseEndOfBody, - processResponseConsumeBody, - useParallelQueue = false, - dispatcher = getGlobalDispatcher() - // undici - }) { - assert(dispatcher); - let taskDestination = null; - let crossOriginIsolatedCapability = false; - if (request.client != null) { - taskDestination = request.client.globalObject; - crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability; - } - const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); - const timingInfo = createOpaqueTimingInfo({ - startTime: currentTime - }); - const fetchParams = { - controller: new Fetch(dispatcher), - request, - timingInfo, - processRequestBodyChunkLength, - processRequestEndOfBody, - processResponse, - processResponseConsumeBody, - processResponseEndOfBody, - taskDestination, - crossOriginIsolatedCapability - }; - assert(!request.body || request.body.stream); - if (request.window === "client") { - request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window"; - } - if (request.origin === "client") { - request.origin = request.client.origin; - } - if (request.policyContainer === "client") { - if (request.client != null) { - request.policyContainer = clonePolicyContainer( - request.client.policyContainer - ); - } else { - request.policyContainer = makePolicyContainer(); - } - } - if (!request.headersList.contains("accept", true)) { - const value = "*/*"; - request.headersList.append("accept", value, true); - } - if (!request.headersList.contains("accept-language", true)) { - request.headersList.append("accept-language", "*", true); - } - if (request.priority === null) { - } - if (subresourceSet.has(request.destination)) { - } - mainFetch(fetchParams).catch((err) => { - fetchParams.controller.terminate(err); - }); - return fetchParams.controller; - } - async function mainFetch(fetchParams, recursive = false) { - const request = fetchParams.request; - let response = null; - if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { - response = makeNetworkError("local URLs only"); - } - tryUpgradeRequestToAPotentiallyTrustworthyURL(request); - if (requestBadPort(request) === "blocked") { - response = makeNetworkError("bad port"); - } - if (request.referrerPolicy === "") { - request.referrerPolicy = request.policyContainer.referrerPolicy; - } - if (request.referrer !== "no-referrer") { - request.referrer = determineRequestsReferrer(request); - } - if (response === null) { - response = await (async () => { - const currentURL = requestCurrentURL(request); - if ( - // - request’s current URL’s origin is same origin with request’s origin, - // and request’s response tainting is "basic" - sameOrigin(currentURL, request.url) && request.responseTainting === "basic" || // request’s current URL’s scheme is "data" - currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket" - (request.mode === "navigate" || request.mode === "websocket") - ) { - request.responseTainting = "basic"; - return await schemeFetch(fetchParams); - } - if (request.mode === "same-origin") { - return makeNetworkError('request mode cannot be "same-origin"'); - } - if (request.mode === "no-cors") { - if (request.redirect !== "follow") { - return makeNetworkError( - 'redirect mode cannot be "follow" for "no-cors" request' - ); - } - request.responseTainting = "opaque"; - return await schemeFetch(fetchParams); - } - if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { - return makeNetworkError("URL scheme must be a HTTP(S) scheme"); - } - request.responseTainting = "cors"; - return await httpFetch(fetchParams); - })(); - } - if (recursive) { - return response; - } - if (response.status !== 0 && !response.internalResponse) { - if (request.responseTainting === "cors") { - } - if (request.responseTainting === "basic") { - response = filterResponse(response, "basic"); - } else if (request.responseTainting === "cors") { - response = filterResponse(response, "cors"); - } else if (request.responseTainting === "opaque") { - response = filterResponse(response, "opaque"); - } else { - assert(false); - } - } - let internalResponse = response.status === 0 ? response : response.internalResponse; - if (internalResponse.urlList.length === 0) { - internalResponse.urlList.push(...request.urlList); - } - if (!request.timingAllowFailed) { - response.timingAllowPassed = true; - } - if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range", true)) { - response = internalResponse = makeNetworkError(); - } - if (response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) { - internalResponse.body = null; - fetchParams.controller.dump = true; - } - if (request.integrity) { - const processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason)); - if (request.responseTainting === "opaque" || response.body == null) { - processBodyError(response.error); - return; - } - const processBody = (bytes) => { - if (!bytesMatch(bytes, request.integrity)) { - processBodyError("integrity mismatch"); - return; - } - response.body = safelyExtractBody(bytes)[0]; - fetchFinale(fetchParams, response); - }; - await fullyReadBody(response.body, processBody, processBodyError); - } else { - fetchFinale(fetchParams, response); - } - } - function schemeFetch(fetchParams) { - if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { - return Promise.resolve(makeAppropriateNetworkError(fetchParams)); - } - const { request } = fetchParams; - const { protocol: scheme } = requestCurrentURL(request); - switch (scheme) { - case "about:": { - return Promise.resolve(makeNetworkError("about scheme is not supported")); - } - case "blob:": { - if (!resolveObjectURL) { - resolveObjectURL = __require("node:buffer").resolveObjectURL; - } - const blobURLEntry = requestCurrentURL(request); - if (blobURLEntry.search.length !== 0) { - return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource.")); - } - const blob = resolveObjectURL(blobURLEntry.toString()); - if (request.method !== "GET" || !isBlobLike(blob)) { - return Promise.resolve(makeNetworkError("invalid method")); - } - const response = makeResponse(); - const fullLength = blob.size; - const serializedFullLength = isomorphicEncode(`${fullLength}`); - const type = blob.type; - if (!request.headersList.contains("range", true)) { - const bodyWithType = extractBody(blob); - response.statusText = "OK"; - response.body = bodyWithType[0]; - response.headersList.set("content-length", serializedFullLength, true); - response.headersList.set("content-type", type, true); - } else { - response.rangeRequested = true; - const rangeHeader = request.headersList.get("range", true); - const rangeValue = simpleRangeHeaderValue(rangeHeader, true); - if (rangeValue === "failure") { - return Promise.resolve(makeNetworkError("failed to fetch the data URL")); - } - let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue; - if (rangeStart === null) { - rangeStart = fullLength - rangeEnd; - rangeEnd = rangeStart + rangeEnd - 1; - } else { - if (rangeStart >= fullLength) { - return Promise.resolve(makeNetworkError("Range start is greater than the blob's size.")); - } - if (rangeEnd === null || rangeEnd >= fullLength) { - rangeEnd = fullLength - 1; - } - } - const slicedBlob = blob.slice(rangeStart, rangeEnd, type); - const slicedBodyWithType = extractBody(slicedBlob); - response.body = slicedBodyWithType[0]; - const serializedSlicedLength = isomorphicEncode(`${slicedBlob.size}`); - const contentRange = buildContentRange(rangeStart, rangeEnd, fullLength); - response.status = 206; - response.statusText = "Partial Content"; - response.headersList.set("content-length", serializedSlicedLength, true); - response.headersList.set("content-type", type, true); - response.headersList.set("content-range", contentRange, true); - } - return Promise.resolve(response); - } - case "data:": { - const currentURL = requestCurrentURL(request); - const dataURLStruct = dataURLProcessor(currentURL); - if (dataURLStruct === "failure") { - return Promise.resolve(makeNetworkError("failed to fetch the data URL")); - } - const mimeType = serializeAMimeType(dataURLStruct.mimeType); - return Promise.resolve(makeResponse({ - statusText: "OK", - headersList: [ - ["content-type", { name: "Content-Type", value: mimeType }] - ], - body: safelyExtractBody(dataURLStruct.body)[0] - })); - } - case "file:": { - return Promise.resolve(makeNetworkError("not implemented... yet...")); - } - case "http:": - case "https:": { - return httpFetch(fetchParams).catch((err) => makeNetworkError(err)); - } - default: { - return Promise.resolve(makeNetworkError("unknown scheme")); - } - } - } - function finalizeResponse(fetchParams, response) { - fetchParams.request.done = true; - if (fetchParams.processResponseDone != null) { - queueMicrotask(() => fetchParams.processResponseDone(response)); - } - } - function fetchFinale(fetchParams, response) { - let timingInfo = fetchParams.timingInfo; - const processResponseEndOfBody = () => { - const unsafeEndTime = Date.now(); - if (fetchParams.request.destination === "document") { - fetchParams.controller.fullTimingInfo = timingInfo; - } - fetchParams.controller.reportTimingSteps = () => { - if (fetchParams.request.url.protocol !== "https:") { - return; - } - timingInfo.endTime = unsafeEndTime; - let cacheState = response.cacheState; - const bodyInfo = response.bodyInfo; - if (!response.timingAllowPassed) { - timingInfo = createOpaqueTimingInfo(timingInfo); - cacheState = ""; - } - let responseStatus = 0; - if (fetchParams.request.mode !== "navigator" || !response.hasCrossOriginRedirects) { - responseStatus = response.status; - const mimeType = extractMimeType(response.headersList); - if (mimeType !== "failure") { - bodyInfo.contentType = minimizeSupportedMimeType(mimeType); - } - } - if (fetchParams.request.initiatorType != null) { - markResourceTiming(timingInfo, fetchParams.request.url.href, fetchParams.request.initiatorType, globalThis, cacheState, bodyInfo, responseStatus); - } - }; - const processResponseEndOfBodyTask = () => { - fetchParams.request.done = true; - if (fetchParams.processResponseEndOfBody != null) { - queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); - } - if (fetchParams.request.initiatorType != null) { - fetchParams.controller.reportTimingSteps(); - } - }; - queueMicrotask(() => processResponseEndOfBodyTask()); - }; - if (fetchParams.processResponse != null) { - queueMicrotask(() => { - fetchParams.processResponse(response); - fetchParams.processResponse = null; - }); - } - const internalResponse = response.type === "error" ? response : response.internalResponse ?? response; - if (internalResponse.body == null) { - processResponseEndOfBody(); - } else { - finished(internalResponse.body.stream, () => { - processResponseEndOfBody(); - }); - } - } - async function httpFetch(fetchParams) { - const request = fetchParams.request; - let response = null; - let actualResponse = null; - const timingInfo = fetchParams.timingInfo; - if (request.serviceWorkers === "all") { - } - if (response === null) { - if (request.redirect === "follow") { - request.serviceWorkers = "none"; - } - actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); - if (request.responseTainting === "cors" && corsCheck(request, response) === "failure") { - return makeNetworkError("cors failure"); - } - if (TAOCheck(request, response) === "failure") { - request.timingAllowFailed = true; - } - } - if ((request.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck( - request.origin, - request.client, - request.destination, - actualResponse - ) === "blocked") { - return makeNetworkError("blocked"); - } - if (redirectStatusSet.has(actualResponse.status)) { - if (request.redirect !== "manual") { - fetchParams.controller.connection.destroy(void 0, false); - } - if (request.redirect === "error") { - response = makeNetworkError("unexpected redirect"); - } else if (request.redirect === "manual") { - response = actualResponse; - } else if (request.redirect === "follow") { - response = await httpRedirectFetch(fetchParams, response); - } else { - assert(false); - } - } - response.timingInfo = timingInfo; - return response; - } - function httpRedirectFetch(fetchParams, response) { - const request = fetchParams.request; - const actualResponse = response.internalResponse ? response.internalResponse : response; - let locationURL; - try { - locationURL = responseLocationURL( - actualResponse, - requestCurrentURL(request).hash - ); - if (locationURL == null) { - return response; - } - } catch (err) { - return Promise.resolve(makeNetworkError(err)); - } - if (!urlIsHttpHttpsScheme(locationURL)) { - return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme")); - } - if (request.redirectCount === 20) { - return Promise.resolve(makeNetworkError("redirect count exceeded")); - } - request.redirectCount += 1; - if (request.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request, locationURL)) { - return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); - } - if (request.responseTainting === "cors" && (locationURL.username || locationURL.password)) { - return Promise.resolve(makeNetworkError( - 'URL cannot contain credentials for request mode "cors"' - )); - } - if (actualResponse.status !== 303 && request.body != null && request.body.source == null) { - return Promise.resolve(makeNetworkError()); - } - if ([301, 302].includes(actualResponse.status) && request.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request.method)) { - request.method = "GET"; - request.body = null; - for (const headerName of requestBodyHeader) { - request.headersList.delete(headerName); - } - } - if (!sameOrigin(requestCurrentURL(request), locationURL)) { - request.headersList.delete("authorization", true); - request.headersList.delete("proxy-authorization", true); - request.headersList.delete("cookie", true); - request.headersList.delete("host", true); - } - if (request.body != null) { - assert(request.body.source != null); - request.body = safelyExtractBody(request.body.source)[0]; - } - const timingInfo = fetchParams.timingInfo; - timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); - if (timingInfo.redirectStartTime === 0) { - timingInfo.redirectStartTime = timingInfo.startTime; - } - request.urlList.push(locationURL); - setRequestReferrerPolicyOnRedirect(request, actualResponse); - return mainFetch(fetchParams, true); - } - async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { - const request = fetchParams.request; - let httpFetchParams = null; - let httpRequest2 = null; - let response = null; - const httpCache = null; - const revalidatingFlag = false; - if (request.window === "no-window" && request.redirect === "error") { - httpFetchParams = fetchParams; - httpRequest2 = request; - } else { - httpRequest2 = cloneRequest(request); - httpFetchParams = { ...fetchParams }; - httpFetchParams.request = httpRequest2; - } - const includeCredentials = request.credentials === "include" || request.credentials === "same-origin" && request.responseTainting === "basic"; - const contentLength = httpRequest2.body ? httpRequest2.body.length : null; - let contentLengthHeaderValue = null; - if (httpRequest2.body == null && ["POST", "PUT"].includes(httpRequest2.method)) { - contentLengthHeaderValue = "0"; - } - if (contentLength != null) { - contentLengthHeaderValue = isomorphicEncode(`${contentLength}`); - } - if (contentLengthHeaderValue != null) { - httpRequest2.headersList.append("content-length", contentLengthHeaderValue, true); - } - if (contentLength != null && httpRequest2.keepalive) { - } - if (httpRequest2.referrer instanceof URL) { - httpRequest2.headersList.append("referer", isomorphicEncode(httpRequest2.referrer.href), true); - } - appendRequestOriginHeader(httpRequest2); - appendFetchMetadata(httpRequest2); - if (!httpRequest2.headersList.contains("user-agent", true)) { - httpRequest2.headersList.append("user-agent", defaultUserAgent); - } - if (httpRequest2.cache === "default" && (httpRequest2.headersList.contains("if-modified-since", true) || httpRequest2.headersList.contains("if-none-match", true) || httpRequest2.headersList.contains("if-unmodified-since", true) || httpRequest2.headersList.contains("if-match", true) || httpRequest2.headersList.contains("if-range", true))) { - httpRequest2.cache = "no-store"; - } - if (httpRequest2.cache === "no-cache" && !httpRequest2.preventNoCacheCacheControlHeaderModification && !httpRequest2.headersList.contains("cache-control", true)) { - httpRequest2.headersList.append("cache-control", "max-age=0", true); - } - if (httpRequest2.cache === "no-store" || httpRequest2.cache === "reload") { - if (!httpRequest2.headersList.contains("pragma", true)) { - httpRequest2.headersList.append("pragma", "no-cache", true); - } - if (!httpRequest2.headersList.contains("cache-control", true)) { - httpRequest2.headersList.append("cache-control", "no-cache", true); - } - } - if (httpRequest2.headersList.contains("range", true)) { - httpRequest2.headersList.append("accept-encoding", "identity", true); - } - if (!httpRequest2.headersList.contains("accept-encoding", true)) { - if (urlHasHttpsScheme(requestCurrentURL(httpRequest2))) { - httpRequest2.headersList.append("accept-encoding", "br, gzip, deflate", true); - } else { - httpRequest2.headersList.append("accept-encoding", "gzip, deflate", true); - } - } - httpRequest2.headersList.delete("host", true); - if (includeCredentials) { - } - if (httpCache == null) { - httpRequest2.cache = "no-store"; - } - if (httpRequest2.cache !== "no-store" && httpRequest2.cache !== "reload") { - } - if (response == null) { - if (httpRequest2.cache === "only-if-cached") { - return makeNetworkError("only if cached"); - } - const forwardResponse = await httpNetworkFetch( - httpFetchParams, - includeCredentials, - isNewConnectionFetch - ); - if (!safeMethodsSet.has(httpRequest2.method) && forwardResponse.status >= 200 && forwardResponse.status <= 399) { - } - if (revalidatingFlag && forwardResponse.status === 304) { - } - if (response == null) { - response = forwardResponse; - } - } - response.urlList = [...httpRequest2.urlList]; - if (httpRequest2.headersList.contains("range", true)) { - response.rangeRequested = true; - } - response.requestIncludesCredentials = includeCredentials; - if (response.status === 407) { - if (request.window === "no-window") { - return makeNetworkError(); - } - if (isCancelled(fetchParams)) { - return makeAppropriateNetworkError(fetchParams); - } - return makeNetworkError("proxy authentication required"); - } - if ( - // response’s status is 421 - response.status === 421 && // isNewConnectionFetch is false - !isNewConnectionFetch && // request’s body is null, or request’s body is non-null and request’s body’s source is non-null - (request.body == null || request.body.source != null) - ) { - if (isCancelled(fetchParams)) { - return makeAppropriateNetworkError(fetchParams); - } - fetchParams.controller.connection.destroy(); - response = await httpNetworkOrCacheFetch( - fetchParams, - isAuthenticationFetch, - true - ); - } - if (isAuthenticationFetch) { - } - return response; - } - async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed); - fetchParams.controller.connection = { - abort: null, - destroyed: false, - destroy(err, abort = true) { - if (!this.destroyed) { - this.destroyed = true; - if (abort) { - this.abort?.(err ?? new DOMException("The operation was aborted.", "AbortError")); - } - } - } - }; - const request = fetchParams.request; - let response = null; - const timingInfo = fetchParams.timingInfo; - const httpCache = null; - if (httpCache == null) { - request.cache = "no-store"; - } - const newConnection = forceNewConnection ? "yes" : "no"; - if (request.mode === "websocket") { - } else { - } - let requestBody = null; - if (request.body == null && fetchParams.processRequestEndOfBody) { - queueMicrotask(() => fetchParams.processRequestEndOfBody()); - } else if (request.body != null) { - const processBodyChunk = async function* (bytes) { - if (isCancelled(fetchParams)) { - return; - } - yield bytes; - fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); - }; - const processEndOfBody = () => { - if (isCancelled(fetchParams)) { - return; - } - if (fetchParams.processRequestEndOfBody) { - fetchParams.processRequestEndOfBody(); - } - }; - const processBodyError = (e) => { - if (isCancelled(fetchParams)) { - return; - } - if (e.name === "AbortError") { - fetchParams.controller.abort(); - } else { - fetchParams.controller.terminate(e); - } - }; - requestBody = (async function* () { - try { - for await (const bytes of request.body.stream) { - yield* processBodyChunk(bytes); - } - processEndOfBody(); - } catch (err) { - processBodyError(err); - } - })(); - } - try { - const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }); - if (socket) { - response = makeResponse({ status, statusText, headersList, socket }); - } else { - const iterator = body[Symbol.asyncIterator](); - fetchParams.controller.next = () => iterator.next(); - response = makeResponse({ status, statusText, headersList }); - } - } catch (err) { - if (err.name === "AbortError") { - fetchParams.controller.connection.destroy(); - return makeAppropriateNetworkError(fetchParams, err); - } - return makeNetworkError(err); - } - const pullAlgorithm = async () => { - await fetchParams.controller.resume(); - }; - const cancelAlgorithm = (reason) => { - if (!isCancelled(fetchParams)) { - fetchParams.controller.abort(reason); - } - }; - const stream = new ReadableStream( - { - async start(controller) { - fetchParams.controller.controller = controller; - }, - async pull(controller) { - await pullAlgorithm(controller); - }, - async cancel(reason) { - await cancelAlgorithm(reason); - }, - type: "bytes" - } - ); - response.body = { stream, source: null, length: null }; - fetchParams.controller.onAborted = onAborted; - fetchParams.controller.on("terminated", onAborted); - fetchParams.controller.resume = async () => { - while (true) { - let bytes; - let isFailure; - try { - const { done, value } = await fetchParams.controller.next(); - if (isAborted(fetchParams)) { - break; - } - bytes = done ? void 0 : value; - } catch (err) { - if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { - bytes = void 0; - } else { - bytes = err; - isFailure = true; - } - } - if (bytes === void 0) { - readableStreamClose(fetchParams.controller.controller); - finalizeResponse(fetchParams, response); - return; - } - timingInfo.decodedBodySize += bytes?.byteLength ?? 0; - if (isFailure) { - fetchParams.controller.terminate(bytes); - return; - } - const buffer = new Uint8Array(bytes); - if (buffer.byteLength) { - fetchParams.controller.controller.enqueue(buffer); - } - if (isErrored(stream)) { - fetchParams.controller.terminate(); - return; - } - if (fetchParams.controller.controller.desiredSize <= 0) { - return; - } - } - }; - function onAborted(reason) { - if (isAborted(fetchParams)) { - response.aborted = true; - if (isReadable(stream)) { - fetchParams.controller.controller.error( - fetchParams.controller.serializedAbortReason - ); - } - } else { - if (isReadable(stream)) { - fetchParams.controller.controller.error(new TypeError("terminated", { - cause: isErrorLike(reason) ? reason : void 0 - })); - } - } - fetchParams.controller.connection.destroy(); - } - return response; - function dispatch({ body }) { - const url = requestCurrentURL(request); - const agent = fetchParams.controller.dispatcher; - return new Promise((resolve, reject) => agent.dispatch( - { - path: url.pathname + url.search, - origin: url.origin, - method: request.method, - body: agent.isMockActive ? request.body && (request.body.source || request.body.stream) : body, - headers: request.headersList.entries, - maxRedirections: 0, - upgrade: request.mode === "websocket" ? "websocket" : void 0 - }, - { - body: null, - abort: null, - onConnect(abort) { - const { connection } = fetchParams.controller; - timingInfo.finalConnectionTimingInfo = clampAndCoarsenConnectionTimingInfo(void 0, timingInfo.postRedirectStartTime, fetchParams.crossOriginIsolatedCapability); - if (connection.destroyed) { - abort(new DOMException("The operation was aborted.", "AbortError")); - } else { - fetchParams.controller.on("terminated", abort); - this.abort = connection.abort = abort; - } - timingInfo.finalNetworkRequestStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); - }, - onResponseStarted() { - timingInfo.finalNetworkResponseStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); - }, - onHeaders(status, rawHeaders, resume, statusText) { - if (status < 200) { - return; - } - let location = ""; - const headersList = new HeadersList(); - for (let i = 0; i < rawHeaders.length; i += 2) { - headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true); - } - location = headersList.get("location", true); - this.body = new Readable({ read: resume }); - const decoders = []; - const willFollow = location && request.redirect === "follow" && redirectStatusSet.has(status); - if (request.method !== "HEAD" && request.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { - const contentEncoding = headersList.get("content-encoding", true); - const codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : []; - const maxContentEncodings = 5; - if (codings.length > maxContentEncodings) { - reject(new Error(`too many content-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`)); - return true; - } - for (let i = codings.length - 1; i >= 0; --i) { - const coding = codings[i].trim(); - if (coding === "x-gzip" || coding === "gzip") { - decoders.push(zlib.createGunzip({ - // Be less strict when decoding compressed responses, since sometimes - // servers send slightly invalid responses that are still accepted - // by common browsers. - // Always using Z_SYNC_FLUSH is what cURL does. - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH - })); - } else if (coding === "deflate") { - decoders.push(createInflate({ - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH - })); - } else if (coding === "br") { - decoders.push(zlib.createBrotliDecompress({ - flush: zlib.constants.BROTLI_OPERATION_FLUSH, - finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH - })); - } else { - decoders.length = 0; - break; - } - } - } - const onError = this.onError.bind(this); - resolve({ - status, - statusText, - headersList, - body: decoders.length ? pipeline(this.body, ...decoders, (err) => { - if (err) { - this.onError(err); - } - }).on("error", onError) : this.body.on("error", onError) - }); - return true; - }, - onData(chunk) { - if (fetchParams.controller.dump) { - return; - } - const bytes = chunk; - timingInfo.encodedBodySize += bytes.byteLength; - return this.body.push(bytes); - }, - onComplete() { - if (this.abort) { - fetchParams.controller.off("terminated", this.abort); - } - if (fetchParams.controller.onAborted) { - fetchParams.controller.off("terminated", fetchParams.controller.onAborted); - } - fetchParams.controller.ended = true; - this.body.push(null); - }, - onError(error2) { - if (this.abort) { - fetchParams.controller.off("terminated", this.abort); - } - this.body?.destroy(error2); - fetchParams.controller.terminate(error2); - reject(error2); - }, - onUpgrade(status, rawHeaders, socket) { - if (status !== 101) { - return; - } - const headersList = new HeadersList(); - for (let i = 0; i < rawHeaders.length; i += 2) { - headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), true); - } - resolve({ - status, - statusText: STATUS_CODES[status], - headersList, - socket - }); - return true; - } - } - )); - } - } - module.exports = { - fetch: fetch2, - Fetch, - fetching, - finalizeAndReportTiming - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/symbols.js -var require_symbols3 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/symbols.js"(exports, module) { - "use strict"; - module.exports = { - kState: /* @__PURE__ */ Symbol("FileReader state"), - kResult: /* @__PURE__ */ Symbol("FileReader result"), - kError: /* @__PURE__ */ Symbol("FileReader error"), - kLastProgressEventFired: /* @__PURE__ */ Symbol("FileReader last progress event fired timestamp"), - kEvents: /* @__PURE__ */ Symbol("FileReader events"), - kAborted: /* @__PURE__ */ Symbol("FileReader aborted") - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/progressevent.js -var require_progressevent = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/progressevent.js"(exports, module) { - "use strict"; - var { webidl } = require_webidl(); - var kState = /* @__PURE__ */ Symbol("ProgressEvent state"); - var ProgressEvent = class _ProgressEvent extends Event { - constructor(type, eventInitDict = {}) { - type = webidl.converters.DOMString(type, "ProgressEvent constructor", "type"); - eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}); - super(type, eventInitDict); - this[kState] = { - lengthComputable: eventInitDict.lengthComputable, - loaded: eventInitDict.loaded, - total: eventInitDict.total - }; - } - get lengthComputable() { - webidl.brandCheck(this, _ProgressEvent); - return this[kState].lengthComputable; - } - get loaded() { - webidl.brandCheck(this, _ProgressEvent); - return this[kState].loaded; - } - get total() { - webidl.brandCheck(this, _ProgressEvent); - return this[kState].total; - } - }; - webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ - { - key: "lengthComputable", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "loaded", - converter: webidl.converters["unsigned long long"], - defaultValue: () => 0 - }, - { - key: "total", - converter: webidl.converters["unsigned long long"], - defaultValue: () => 0 - }, - { - key: "bubbles", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "cancelable", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "composed", - converter: webidl.converters.boolean, - defaultValue: () => false - } - ]); - module.exports = { - ProgressEvent - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/encoding.js -var require_encoding = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/encoding.js"(exports, module) { - "use strict"; - function getEncoding(label) { - if (!label) { - return "failure"; - } - switch (label.trim().toLowerCase()) { - case "unicode-1-1-utf-8": - case "unicode11utf8": - case "unicode20utf8": - case "utf-8": - case "utf8": - case "x-unicode20utf8": - return "UTF-8"; - case "866": - case "cp866": - case "csibm866": - case "ibm866": - return "IBM866"; - case "csisolatin2": - case "iso-8859-2": - case "iso-ir-101": - case "iso8859-2": - case "iso88592": - case "iso_8859-2": - case "iso_8859-2:1987": - case "l2": - case "latin2": - return "ISO-8859-2"; - case "csisolatin3": - case "iso-8859-3": - case "iso-ir-109": - case "iso8859-3": - case "iso88593": - case "iso_8859-3": - case "iso_8859-3:1988": - case "l3": - case "latin3": - return "ISO-8859-3"; - case "csisolatin4": - case "iso-8859-4": - case "iso-ir-110": - case "iso8859-4": - case "iso88594": - case "iso_8859-4": - case "iso_8859-4:1988": - case "l4": - case "latin4": - return "ISO-8859-4"; - case "csisolatincyrillic": - case "cyrillic": - case "iso-8859-5": - case "iso-ir-144": - case "iso8859-5": - case "iso88595": - case "iso_8859-5": - case "iso_8859-5:1988": - return "ISO-8859-5"; - case "arabic": - case "asmo-708": - case "csiso88596e": - case "csiso88596i": - case "csisolatinarabic": - case "ecma-114": - case "iso-8859-6": - case "iso-8859-6-e": - case "iso-8859-6-i": - case "iso-ir-127": - case "iso8859-6": - case "iso88596": - case "iso_8859-6": - case "iso_8859-6:1987": - return "ISO-8859-6"; - case "csisolatingreek": - case "ecma-118": - case "elot_928": - case "greek": - case "greek8": - case "iso-8859-7": - case "iso-ir-126": - case "iso8859-7": - case "iso88597": - case "iso_8859-7": - case "iso_8859-7:1987": - case "sun_eu_greek": - return "ISO-8859-7"; - case "csiso88598e": - case "csisolatinhebrew": - case "hebrew": - case "iso-8859-8": - case "iso-8859-8-e": - case "iso-ir-138": - case "iso8859-8": - case "iso88598": - case "iso_8859-8": - case "iso_8859-8:1988": - case "visual": - return "ISO-8859-8"; - case "csiso88598i": - case "iso-8859-8-i": - case "logical": - return "ISO-8859-8-I"; - case "csisolatin6": - case "iso-8859-10": - case "iso-ir-157": - case "iso8859-10": - case "iso885910": - case "l6": - case "latin6": - return "ISO-8859-10"; - case "iso-8859-13": - case "iso8859-13": - case "iso885913": - return "ISO-8859-13"; - case "iso-8859-14": - case "iso8859-14": - case "iso885914": - return "ISO-8859-14"; - case "csisolatin9": - case "iso-8859-15": - case "iso8859-15": - case "iso885915": - case "iso_8859-15": - case "l9": - return "ISO-8859-15"; - case "iso-8859-16": - return "ISO-8859-16"; - case "cskoi8r": - case "koi": - case "koi8": - case "koi8-r": - case "koi8_r": - return "KOI8-R"; - case "koi8-ru": - case "koi8-u": - return "KOI8-U"; - case "csmacintosh": - case "mac": - case "macintosh": - case "x-mac-roman": - return "macintosh"; - case "iso-8859-11": - case "iso8859-11": - case "iso885911": - case "tis-620": - case "windows-874": - return "windows-874"; - case "cp1250": - case "windows-1250": - case "x-cp1250": - return "windows-1250"; - case "cp1251": - case "windows-1251": - case "x-cp1251": - return "windows-1251"; - case "ansi_x3.4-1968": - case "ascii": - case "cp1252": - case "cp819": - case "csisolatin1": - case "ibm819": - case "iso-8859-1": - case "iso-ir-100": - case "iso8859-1": - case "iso88591": - case "iso_8859-1": - case "iso_8859-1:1987": - case "l1": - case "latin1": - case "us-ascii": - case "windows-1252": - case "x-cp1252": - return "windows-1252"; - case "cp1253": - case "windows-1253": - case "x-cp1253": - return "windows-1253"; - case "cp1254": - case "csisolatin5": - case "iso-8859-9": - case "iso-ir-148": - case "iso8859-9": - case "iso88599": - case "iso_8859-9": - case "iso_8859-9:1989": - case "l5": - case "latin5": - case "windows-1254": - case "x-cp1254": - return "windows-1254"; - case "cp1255": - case "windows-1255": - case "x-cp1255": - return "windows-1255"; - case "cp1256": - case "windows-1256": - case "x-cp1256": - return "windows-1256"; - case "cp1257": - case "windows-1257": - case "x-cp1257": - return "windows-1257"; - case "cp1258": - case "windows-1258": - case "x-cp1258": - return "windows-1258"; - case "x-mac-cyrillic": - case "x-mac-ukrainian": - return "x-mac-cyrillic"; - case "chinese": - case "csgb2312": - case "csiso58gb231280": - case "gb2312": - case "gb_2312": - case "gb_2312-80": - case "gbk": - case "iso-ir-58": - case "x-gbk": - return "GBK"; - case "gb18030": - return "gb18030"; - case "big5": - case "big5-hkscs": - case "cn-big5": - case "csbig5": - case "x-x-big5": - return "Big5"; - case "cseucpkdfmtjapanese": - case "euc-jp": - case "x-euc-jp": - return "EUC-JP"; - case "csiso2022jp": - case "iso-2022-jp": - return "ISO-2022-JP"; - case "csshiftjis": - case "ms932": - case "ms_kanji": - case "shift-jis": - case "shift_jis": - case "sjis": - case "windows-31j": - case "x-sjis": - return "Shift_JIS"; - case "cseuckr": - case "csksc56011987": - case "euc-kr": - case "iso-ir-149": - case "korean": - case "ks_c_5601-1987": - case "ks_c_5601-1989": - case "ksc5601": - case "ksc_5601": - case "windows-949": - return "EUC-KR"; - case "csiso2022kr": - case "hz-gb-2312": - case "iso-2022-cn": - case "iso-2022-cn-ext": - case "iso-2022-kr": - case "replacement": - return "replacement"; - case "unicodefffe": - case "utf-16be": - return "UTF-16BE"; - case "csunicode": - case "iso-10646-ucs-2": - case "ucs-2": - case "unicode": - case "unicodefeff": - case "utf-16": - case "utf-16le": - return "UTF-16LE"; - case "x-user-defined": - return "x-user-defined"; - default: - return "failure"; - } - } - module.exports = { - getEncoding - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/util.js -var require_util4 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/util.js"(exports, module) { - "use strict"; - var { - kState, - kError, - kResult, - kAborted, - kLastProgressEventFired - } = require_symbols3(); - var { ProgressEvent } = require_progressevent(); - var { getEncoding } = require_encoding(); - var { serializeAMimeType, parseMIMEType } = require_data_url(); - var { types } = __require("node:util"); - var { StringDecoder } = __require("string_decoder"); - var { btoa: btoa2 } = __require("node:buffer"); - var staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - function readOperation(fr, blob, type, encodingName) { - if (fr[kState] === "loading") { - throw new DOMException("Invalid state", "InvalidStateError"); - } - fr[kState] = "loading"; - fr[kResult] = null; - fr[kError] = null; - const stream = blob.stream(); - const reader = stream.getReader(); - const bytes = []; - let chunkPromise = reader.read(); - let isFirstChunk = true; - (async () => { - while (!fr[kAborted]) { - try { - const { done, value } = await chunkPromise; - if (isFirstChunk && !fr[kAborted]) { - queueMicrotask(() => { - fireAProgressEvent("loadstart", fr); - }); - } - isFirstChunk = false; - if (!done && types.isUint8Array(value)) { - bytes.push(value); - if ((fr[kLastProgressEventFired] === void 0 || Date.now() - fr[kLastProgressEventFired] >= 50) && !fr[kAborted]) { - fr[kLastProgressEventFired] = Date.now(); - queueMicrotask(() => { - fireAProgressEvent("progress", fr); - }); - } - chunkPromise = reader.read(); - } else if (done) { - queueMicrotask(() => { - fr[kState] = "done"; - try { - const result = packageData(bytes, type, blob.type, encodingName); - if (fr[kAborted]) { - return; - } - fr[kResult] = result; - fireAProgressEvent("load", fr); - } catch (error2) { - fr[kError] = error2; - fireAProgressEvent("error", fr); - } - if (fr[kState] !== "loading") { - fireAProgressEvent("loadend", fr); - } - }); - break; - } - } catch (error2) { - if (fr[kAborted]) { - return; - } - queueMicrotask(() => { - fr[kState] = "done"; - fr[kError] = error2; - fireAProgressEvent("error", fr); - if (fr[kState] !== "loading") { - fireAProgressEvent("loadend", fr); - } - }); - break; - } - } - })(); - } - function fireAProgressEvent(e, reader) { - const event = new ProgressEvent(e, { - bubbles: false, - cancelable: false - }); - reader.dispatchEvent(event); - } - function packageData(bytes, type, mimeType, encodingName) { - switch (type) { - case "DataURL": { - let dataURL = "data:"; - const parsed = parseMIMEType(mimeType || "application/octet-stream"); - if (parsed !== "failure") { - dataURL += serializeAMimeType(parsed); - } - dataURL += ";base64,"; - const decoder = new StringDecoder("latin1"); - for (const chunk of bytes) { - dataURL += btoa2(decoder.write(chunk)); - } - dataURL += btoa2(decoder.end()); - return dataURL; - } - case "Text": { - let encoding = "failure"; - if (encodingName) { - encoding = getEncoding(encodingName); - } - if (encoding === "failure" && mimeType) { - const type2 = parseMIMEType(mimeType); - if (type2 !== "failure") { - encoding = getEncoding(type2.parameters.get("charset")); - } - } - if (encoding === "failure") { - encoding = "UTF-8"; - } - return decode2(bytes, encoding); - } - case "ArrayBuffer": { - const sequence = combineByteSequences(bytes); - return sequence.buffer; - } - case "BinaryString": { - let binaryString = ""; - const decoder = new StringDecoder("latin1"); - for (const chunk of bytes) { - binaryString += decoder.write(chunk); - } - binaryString += decoder.end(); - return binaryString; - } - } - } - function decode2(ioQueue, encoding) { - const bytes = combineByteSequences(ioQueue); - const BOMEncoding = BOMSniffing(bytes); - let slice = 0; - if (BOMEncoding !== null) { - encoding = BOMEncoding; - slice = BOMEncoding === "UTF-8" ? 3 : 2; - } - const sliced = bytes.slice(slice); - return new TextDecoder(encoding).decode(sliced); - } - function BOMSniffing(ioQueue) { - const [a, b, c] = ioQueue; - if (a === 239 && b === 187 && c === 191) { - return "UTF-8"; - } else if (a === 254 && b === 255) { - return "UTF-16BE"; - } else if (a === 255 && b === 254) { - return "UTF-16LE"; - } - return null; - } - function combineByteSequences(sequences) { - const size = sequences.reduce((a, b) => { - return a + b.byteLength; - }, 0); - let offset = 0; - return sequences.reduce((a, b) => { - a.set(b, offset); - offset += b.byteLength; - return a; - }, new Uint8Array(size)); - } - module.exports = { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/filereader.js -var require_filereader = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/filereader.js"(exports, module) { - "use strict"; - var { - staticPropertyDescriptors, - readOperation, - fireAProgressEvent - } = require_util4(); - var { - kState, - kError, - kResult, - kEvents, - kAborted - } = require_symbols3(); - var { webidl } = require_webidl(); - var { kEnumerableProperty } = require_util(); - var FileReader = class _FileReader extends EventTarget { - constructor() { - super(); - this[kState] = "empty"; - this[kResult] = null; - this[kError] = null; - this[kEvents] = { - loadend: null, - error: null, - abort: null, - load: null, - progress: null, - loadstart: null - }; - } - /** - * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer - * @param {import('buffer').Blob} blob - */ - readAsArrayBuffer(blob) { - webidl.brandCheck(this, _FileReader); - webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsArrayBuffer"); - blob = webidl.converters.Blob(blob, { strict: false }); - readOperation(this, blob, "ArrayBuffer"); - } - /** - * @see https://w3c.github.io/FileAPI/#readAsBinaryString - * @param {import('buffer').Blob} blob - */ - readAsBinaryString(blob) { - webidl.brandCheck(this, _FileReader); - webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsBinaryString"); - blob = webidl.converters.Blob(blob, { strict: false }); - readOperation(this, blob, "BinaryString"); - } - /** - * @see https://w3c.github.io/FileAPI/#readAsDataText - * @param {import('buffer').Blob} blob - * @param {string?} encoding - */ - readAsText(blob, encoding = void 0) { - webidl.brandCheck(this, _FileReader); - webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsText"); - blob = webidl.converters.Blob(blob, { strict: false }); - if (encoding !== void 0) { - encoding = webidl.converters.DOMString(encoding, "FileReader.readAsText", "encoding"); - } - readOperation(this, blob, "Text", encoding); - } - /** - * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL - * @param {import('buffer').Blob} blob - */ - readAsDataURL(blob) { - webidl.brandCheck(this, _FileReader); - webidl.argumentLengthCheck(arguments, 1, "FileReader.readAsDataURL"); - blob = webidl.converters.Blob(blob, { strict: false }); - readOperation(this, blob, "DataURL"); - } - /** - * @see https://w3c.github.io/FileAPI/#dfn-abort - */ - abort() { - if (this[kState] === "empty" || this[kState] === "done") { - this[kResult] = null; - return; - } - if (this[kState] === "loading") { - this[kState] = "done"; - this[kResult] = null; - } - this[kAborted] = true; - fireAProgressEvent("abort", this); - if (this[kState] !== "loading") { - fireAProgressEvent("loadend", this); - } - } - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate - */ - get readyState() { - webidl.brandCheck(this, _FileReader); - switch (this[kState]) { - case "empty": - return this.EMPTY; - case "loading": - return this.LOADING; - case "done": - return this.DONE; - } - } - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-result - */ - get result() { - webidl.brandCheck(this, _FileReader); - return this[kResult]; - } - /** - * @see https://w3c.github.io/FileAPI/#dom-filereader-error - */ - get error() { - webidl.brandCheck(this, _FileReader); - return this[kError]; - } - get onloadend() { - webidl.brandCheck(this, _FileReader); - return this[kEvents].loadend; - } - set onloadend(fn) { - webidl.brandCheck(this, _FileReader); - if (this[kEvents].loadend) { - this.removeEventListener("loadend", this[kEvents].loadend); - } - if (typeof fn === "function") { - this[kEvents].loadend = fn; - this.addEventListener("loadend", fn); - } else { - this[kEvents].loadend = null; - } - } - get onerror() { - webidl.brandCheck(this, _FileReader); - return this[kEvents].error; - } - set onerror(fn) { - webidl.brandCheck(this, _FileReader); - if (this[kEvents].error) { - this.removeEventListener("error", this[kEvents].error); - } - if (typeof fn === "function") { - this[kEvents].error = fn; - this.addEventListener("error", fn); - } else { - this[kEvents].error = null; - } - } - get onloadstart() { - webidl.brandCheck(this, _FileReader); - return this[kEvents].loadstart; - } - set onloadstart(fn) { - webidl.brandCheck(this, _FileReader); - if (this[kEvents].loadstart) { - this.removeEventListener("loadstart", this[kEvents].loadstart); - } - if (typeof fn === "function") { - this[kEvents].loadstart = fn; - this.addEventListener("loadstart", fn); - } else { - this[kEvents].loadstart = null; - } - } - get onprogress() { - webidl.brandCheck(this, _FileReader); - return this[kEvents].progress; - } - set onprogress(fn) { - webidl.brandCheck(this, _FileReader); - if (this[kEvents].progress) { - this.removeEventListener("progress", this[kEvents].progress); - } - if (typeof fn === "function") { - this[kEvents].progress = fn; - this.addEventListener("progress", fn); - } else { - this[kEvents].progress = null; - } - } - get onload() { - webidl.brandCheck(this, _FileReader); - return this[kEvents].load; - } - set onload(fn) { - webidl.brandCheck(this, _FileReader); - if (this[kEvents].load) { - this.removeEventListener("load", this[kEvents].load); - } - if (typeof fn === "function") { - this[kEvents].load = fn; - this.addEventListener("load", fn); - } else { - this[kEvents].load = null; - } - } - get onabort() { - webidl.brandCheck(this, _FileReader); - return this[kEvents].abort; - } - set onabort(fn) { - webidl.brandCheck(this, _FileReader); - if (this[kEvents].abort) { - this.removeEventListener("abort", this[kEvents].abort); - } - if (typeof fn === "function") { - this[kEvents].abort = fn; - this.addEventListener("abort", fn); - } else { - this[kEvents].abort = null; - } - } - }; - FileReader.EMPTY = FileReader.prototype.EMPTY = 0; - FileReader.LOADING = FileReader.prototype.LOADING = 1; - FileReader.DONE = FileReader.prototype.DONE = 2; - Object.defineProperties(FileReader.prototype, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors, - readAsArrayBuffer: kEnumerableProperty, - readAsBinaryString: kEnumerableProperty, - readAsText: kEnumerableProperty, - readAsDataURL: kEnumerableProperty, - abort: kEnumerableProperty, - readyState: kEnumerableProperty, - result: kEnumerableProperty, - error: kEnumerableProperty, - onloadstart: kEnumerableProperty, - onprogress: kEnumerableProperty, - onload: kEnumerableProperty, - onabort: kEnumerableProperty, - onerror: kEnumerableProperty, - onloadend: kEnumerableProperty, - [Symbol.toStringTag]: { - value: "FileReader", - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(FileReader, { - EMPTY: staticPropertyDescriptors, - LOADING: staticPropertyDescriptors, - DONE: staticPropertyDescriptors - }); - module.exports = { - FileReader - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/symbols.js -var require_symbols4 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/symbols.js"(exports, module) { - "use strict"; - module.exports = { - kConstruct: require_symbols().kConstruct - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/util.js -var require_util5 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/util.js"(exports, module) { - "use strict"; - var assert = __require("node:assert"); - var { URLSerializer } = require_data_url(); - var { isValidHeaderName } = require_util2(); - function urlEquals(A, B, excludeFragment = false) { - const serializedA = URLSerializer(A, excludeFragment); - const serializedB = URLSerializer(B, excludeFragment); - return serializedA === serializedB; - } - function getFieldValues(header) { - assert(header !== null); - const values = []; - for (let value of header.split(",")) { - value = value.trim(); - if (isValidHeaderName(value)) { - values.push(value); - } - } - return values; - } - module.exports = { - urlEquals, - getFieldValues - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/cache.js -var require_cache = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/cache.js"(exports, module) { - "use strict"; - var { kConstruct } = require_symbols4(); - var { urlEquals, getFieldValues } = require_util5(); - var { kEnumerableProperty, isDisturbed } = require_util(); - var { webidl } = require_webidl(); - var { Response, cloneResponse, fromInnerResponse } = require_response(); - var { Request, fromInnerRequest } = require_request2(); - var { kState } = require_symbols2(); - var { fetching } = require_fetch(); - var { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util2(); - var assert = __require("node:assert"); - var Cache = class _Cache { - /** - * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list - * @type {requestResponseList} - */ - #relevantRequestResponseList; - constructor() { - if (arguments[0] !== kConstruct) { - webidl.illegalConstructor(); - } - webidl.util.markAsUncloneable(this); - this.#relevantRequestResponseList = arguments[1]; - } - async match(request, options = {}) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.match"; - webidl.argumentLengthCheck(arguments, 1, prefix); - request = webidl.converters.RequestInfo(request, prefix, "request"); - options = webidl.converters.CacheQueryOptions(options, prefix, "options"); - const p = this.#internalMatchAll(request, options, 1); - if (p.length === 0) { - return; - } - return p[0]; - } - async matchAll(request = void 0, options = {}) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.matchAll"; - if (request !== void 0) request = webidl.converters.RequestInfo(request, prefix, "request"); - options = webidl.converters.CacheQueryOptions(options, prefix, "options"); - return this.#internalMatchAll(request, options); - } - async add(request) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.add"; - webidl.argumentLengthCheck(arguments, 1, prefix); - request = webidl.converters.RequestInfo(request, prefix, "request"); - const requests = [request]; - const responseArrayPromise = this.addAll(requests); - return await responseArrayPromise; - } - async addAll(requests) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.addAll"; - webidl.argumentLengthCheck(arguments, 1, prefix); - const responsePromises = []; - const requestList = []; - for (let request of requests) { - if (request === void 0) { - throw webidl.errors.conversionFailed({ - prefix, - argument: "Argument 1", - types: ["undefined is not allowed"] - }); - } - request = webidl.converters.RequestInfo(request); - if (typeof request === "string") { - continue; - } - const r = request[kState]; - if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") { - throw webidl.errors.exception({ - header: prefix, - message: "Expected http/s scheme when method is not GET." - }); - } - } - const fetchControllers = []; - for (const request of requests) { - const r = new Request(request)[kState]; - if (!urlIsHttpHttpsScheme(r.url)) { - throw webidl.errors.exception({ - header: prefix, - message: "Expected http/s scheme." - }); - } - r.initiator = "fetch"; - r.destination = "subresource"; - requestList.push(r); - const responsePromise = createDeferredPromise(); - fetchControllers.push(fetching({ - request: r, - processResponse(response) { - if (response.type === "error" || response.status === 206 || response.status < 200 || response.status > 299) { - responsePromise.reject(webidl.errors.exception({ - header: "Cache.addAll", - message: "Received an invalid status code or the request failed." - })); - } else if (response.headersList.contains("vary")) { - const fieldValues = getFieldValues(response.headersList.get("vary")); - for (const fieldValue of fieldValues) { - if (fieldValue === "*") { - responsePromise.reject(webidl.errors.exception({ - header: "Cache.addAll", - message: "invalid vary field value" - })); - for (const controller of fetchControllers) { - controller.abort(); - } - return; - } - } - } - }, - processResponseEndOfBody(response) { - if (response.aborted) { - responsePromise.reject(new DOMException("aborted", "AbortError")); - return; - } - responsePromise.resolve(response); - } - })); - responsePromises.push(responsePromise.promise); - } - const p = Promise.all(responsePromises); - const responses = await p; - const operations = []; - let index = 0; - for (const response of responses) { - const operation = { - type: "put", - // 7.3.2 - request: requestList[index], - // 7.3.3 - response - // 7.3.4 - }; - operations.push(operation); - index++; - } - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - try { - this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(() => { - if (errorData === null) { - cacheJobPromise.resolve(void 0); - } else { - cacheJobPromise.reject(errorData); - } - }); - return cacheJobPromise.promise; - } - async put(request, response) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.put"; - webidl.argumentLengthCheck(arguments, 2, prefix); - request = webidl.converters.RequestInfo(request, prefix, "request"); - response = webidl.converters.Response(response, prefix, "response"); - let innerRequest = null; - if (request instanceof Request) { - innerRequest = request[kState]; - } else { - innerRequest = new Request(request)[kState]; - } - if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") { - throw webidl.errors.exception({ - header: prefix, - message: "Expected an http/s scheme when method is not GET" - }); - } - const innerResponse = response[kState]; - if (innerResponse.status === 206) { - throw webidl.errors.exception({ - header: prefix, - message: "Got 206 status" - }); - } - if (innerResponse.headersList.contains("vary")) { - const fieldValues = getFieldValues(innerResponse.headersList.get("vary")); - for (const fieldValue of fieldValues) { - if (fieldValue === "*") { - throw webidl.errors.exception({ - header: prefix, - message: "Got * vary field value" - }); - } - } - } - if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { - throw webidl.errors.exception({ - header: prefix, - message: "Response body is locked or disturbed" - }); - } - const clonedResponse = cloneResponse(innerResponse); - const bodyReadPromise = createDeferredPromise(); - if (innerResponse.body != null) { - const stream = innerResponse.body.stream; - const reader = stream.getReader(); - readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject); - } else { - bodyReadPromise.resolve(void 0); - } - const operations = []; - const operation = { - type: "put", - // 14. - request: innerRequest, - // 15. - response: clonedResponse - // 16. - }; - operations.push(operation); - const bytes = await bodyReadPromise.promise; - if (clonedResponse.body != null) { - clonedResponse.body.source = bytes; - } - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - try { - this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(() => { - if (errorData === null) { - cacheJobPromise.resolve(); - } else { - cacheJobPromise.reject(errorData); - } - }); - return cacheJobPromise.promise; - } - async delete(request, options = {}) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.delete"; - webidl.argumentLengthCheck(arguments, 1, prefix); - request = webidl.converters.RequestInfo(request, prefix, "request"); - options = webidl.converters.CacheQueryOptions(options, prefix, "options"); - let r = null; - if (request instanceof Request) { - r = request[kState]; - if (r.method !== "GET" && !options.ignoreMethod) { - return false; - } - } else { - assert(typeof request === "string"); - r = new Request(request)[kState]; - } - const operations = []; - const operation = { - type: "delete", - request: r, - options - }; - operations.push(operation); - const cacheJobPromise = createDeferredPromise(); - let errorData = null; - let requestResponses; - try { - requestResponses = this.#batchCacheOperations(operations); - } catch (e) { - errorData = e; - } - queueMicrotask(() => { - if (errorData === null) { - cacheJobPromise.resolve(!!requestResponses?.length); - } else { - cacheJobPromise.reject(errorData); - } - }); - return cacheJobPromise.promise; - } - /** - * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys - * @param {any} request - * @param {import('../../types/cache').CacheQueryOptions} options - * @returns {Promise} - */ - async keys(request = void 0, options = {}) { - webidl.brandCheck(this, _Cache); - const prefix = "Cache.keys"; - if (request !== void 0) request = webidl.converters.RequestInfo(request, prefix, "request"); - options = webidl.converters.CacheQueryOptions(options, prefix, "options"); - let r = null; - if (request !== void 0) { - if (request instanceof Request) { - r = request[kState]; - if (r.method !== "GET" && !options.ignoreMethod) { - return []; - } - } else if (typeof request === "string") { - r = new Request(request)[kState]; - } - } - const promise = createDeferredPromise(); - const requests = []; - if (request === void 0) { - for (const requestResponse of this.#relevantRequestResponseList) { - requests.push(requestResponse[0]); - } - } else { - const requestResponses = this.#queryCache(r, options); - for (const requestResponse of requestResponses) { - requests.push(requestResponse[0]); - } - } - queueMicrotask(() => { - const requestList = []; - for (const request2 of requests) { - const requestObject = fromInnerRequest( - request2, - new AbortController().signal, - "immutable" - ); - requestList.push(requestObject); - } - promise.resolve(Object.freeze(requestList)); - }); - return promise.promise; - } - /** - * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm - * @param {CacheBatchOperation[]} operations - * @returns {requestResponseList} - */ - #batchCacheOperations(operations) { - const cache = this.#relevantRequestResponseList; - const backupCache = [...cache]; - const addedItems = []; - const resultList = []; - try { - for (const operation of operations) { - if (operation.type !== "delete" && operation.type !== "put") { - throw webidl.errors.exception({ - header: "Cache.#batchCacheOperations", - message: 'operation type does not match "delete" or "put"' - }); - } - if (operation.type === "delete" && operation.response != null) { - throw webidl.errors.exception({ - header: "Cache.#batchCacheOperations", - message: "delete operation should not have an associated response" - }); - } - if (this.#queryCache(operation.request, operation.options, addedItems).length) { - throw new DOMException("???", "InvalidStateError"); - } - let requestResponses; - if (operation.type === "delete") { - requestResponses = this.#queryCache(operation.request, operation.options); - if (requestResponses.length === 0) { - return []; - } - for (const requestResponse of requestResponses) { - const idx = cache.indexOf(requestResponse); - assert(idx !== -1); - cache.splice(idx, 1); - } - } else if (operation.type === "put") { - if (operation.response == null) { - throw webidl.errors.exception({ - header: "Cache.#batchCacheOperations", - message: "put operation should have an associated response" - }); - } - const r = operation.request; - if (!urlIsHttpHttpsScheme(r.url)) { - throw webidl.errors.exception({ - header: "Cache.#batchCacheOperations", - message: "expected http or https scheme" - }); - } - if (r.method !== "GET") { - throw webidl.errors.exception({ - header: "Cache.#batchCacheOperations", - message: "not get method" - }); - } - if (operation.options != null) { - throw webidl.errors.exception({ - header: "Cache.#batchCacheOperations", - message: "options must not be defined" - }); - } - requestResponses = this.#queryCache(operation.request); - for (const requestResponse of requestResponses) { - const idx = cache.indexOf(requestResponse); - assert(idx !== -1); - cache.splice(idx, 1); - } - cache.push([operation.request, operation.response]); - addedItems.push([operation.request, operation.response]); - } - resultList.push([operation.request, operation.response]); - } - return resultList; - } catch (e) { - this.#relevantRequestResponseList.length = 0; - this.#relevantRequestResponseList = backupCache; - throw e; - } - } - /** - * @see https://w3c.github.io/ServiceWorker/#query-cache - * @param {any} requestQuery - * @param {import('../../types/cache').CacheQueryOptions} options - * @param {requestResponseList} targetStorage - * @returns {requestResponseList} - */ - #queryCache(requestQuery, options, targetStorage) { - const resultList = []; - const storage = targetStorage ?? this.#relevantRequestResponseList; - for (const requestResponse of storage) { - const [cachedRequest, cachedResponse] = requestResponse; - if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { - resultList.push(requestResponse); - } - } - return resultList; - } - /** - * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm - * @param {any} requestQuery - * @param {any} request - * @param {any | null} response - * @param {import('../../types/cache').CacheQueryOptions | undefined} options - * @returns {boolean} - */ - #requestMatchesCachedItem(requestQuery, request, response = null, options) { - const queryURL = new URL(requestQuery.url); - const cachedURL = new URL(request.url); - if (options?.ignoreSearch) { - cachedURL.search = ""; - queryURL.search = ""; - } - if (!urlEquals(queryURL, cachedURL, true)) { - return false; - } - if (response == null || options?.ignoreVary || !response.headersList.contains("vary")) { - return true; - } - const fieldValues = getFieldValues(response.headersList.get("vary")); - for (const fieldValue of fieldValues) { - if (fieldValue === "*") { - return false; - } - const requestValue = request.headersList.get(fieldValue); - const queryValue = requestQuery.headersList.get(fieldValue); - if (requestValue !== queryValue) { - return false; - } - } - return true; - } - #internalMatchAll(request, options, maxResponses = Infinity) { - let r = null; - if (request !== void 0) { - if (request instanceof Request) { - r = request[kState]; - if (r.method !== "GET" && !options.ignoreMethod) { - return []; - } - } else if (typeof request === "string") { - r = new Request(request)[kState]; - } - } - const responses = []; - if (request === void 0) { - for (const requestResponse of this.#relevantRequestResponseList) { - responses.push(requestResponse[1]); - } - } else { - const requestResponses = this.#queryCache(r, options); - for (const requestResponse of requestResponses) { - responses.push(requestResponse[1]); - } - } - const responseList = []; - for (const response of responses) { - const responseObject = fromInnerResponse(response, "immutable"); - responseList.push(responseObject.clone()); - if (responseList.length >= maxResponses) { - break; - } - } - return Object.freeze(responseList); - } - }; - Object.defineProperties(Cache.prototype, { - [Symbol.toStringTag]: { - value: "Cache", - configurable: true - }, - match: kEnumerableProperty, - matchAll: kEnumerableProperty, - add: kEnumerableProperty, - addAll: kEnumerableProperty, - put: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty - }); - var cacheQueryOptionConverters = [ - { - key: "ignoreSearch", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "ignoreMethod", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "ignoreVary", - converter: webidl.converters.boolean, - defaultValue: () => false - } - ]; - webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); - webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ - ...cacheQueryOptionConverters, - { - key: "cacheName", - converter: webidl.converters.DOMString - } - ]); - webidl.converters.Response = webidl.interfaceConverter(Response); - webidl.converters["sequence"] = webidl.sequenceConverter( - webidl.converters.RequestInfo - ); - module.exports = { - Cache - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/cachestorage.js -var require_cachestorage = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/cachestorage.js"(exports, module) { - "use strict"; - var { kConstruct } = require_symbols4(); - var { Cache } = require_cache(); - var { webidl } = require_webidl(); - var { kEnumerableProperty } = require_util(); - var CacheStorage = class _CacheStorage { - /** - * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map - * @type {Map} - */ - async has(cacheName) { - webidl.brandCheck(this, _CacheStorage); - const prefix = "CacheStorage.has"; - webidl.argumentLengthCheck(arguments, 1, prefix); - cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); - return this.#caches.has(cacheName); - } - /** - * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open - * @param {string} cacheName - * @returns {Promise} - */ - async open(cacheName) { - webidl.brandCheck(this, _CacheStorage); - const prefix = "CacheStorage.open"; - webidl.argumentLengthCheck(arguments, 1, prefix); - cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); - if (this.#caches.has(cacheName)) { - const cache2 = this.#caches.get(cacheName); - return new Cache(kConstruct, cache2); - } - const cache = []; - this.#caches.set(cacheName, cache); - return new Cache(kConstruct, cache); - } - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete - * @param {string} cacheName - * @returns {Promise} - */ - async delete(cacheName) { - webidl.brandCheck(this, _CacheStorage); - const prefix = "CacheStorage.delete"; - webidl.argumentLengthCheck(arguments, 1, prefix); - cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); - return this.#caches.delete(cacheName); - } - /** - * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys - * @returns {Promise} - */ - async keys() { - webidl.brandCheck(this, _CacheStorage); - const keys = this.#caches.keys(); - return [...keys]; - } - }; - Object.defineProperties(CacheStorage.prototype, { - [Symbol.toStringTag]: { - value: "CacheStorage", - configurable: true - }, - match: kEnumerableProperty, - has: kEnumerableProperty, - open: kEnumerableProperty, - delete: kEnumerableProperty, - keys: kEnumerableProperty - }); - module.exports = { - CacheStorage - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/constants.js -var require_constants4 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/constants.js"(exports, module) { - "use strict"; - var maxAttributeValueSize = 1024; - var maxNameValuePairSize = 4096; - module.exports = { - maxAttributeValueSize, - maxNameValuePairSize - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/util.js -var require_util6 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/util.js"(exports, module) { - "use strict"; - function isCTLExcludingHtab(value) { - for (let i = 0; i < value.length; ++i) { - const code = value.charCodeAt(i); - if (code >= 0 && code <= 8 || code >= 10 && code <= 31 || code === 127) { - return true; - } - } - return false; - } - function validateCookieName(name) { - for (let i = 0; i < name.length; ++i) { - const code = name.charCodeAt(i); - if (code < 33 || // exclude CTLs (0-31), SP and HT - code > 126 || // exclude non-ascii and DEL - code === 34 || // " - code === 40 || // ( - code === 41 || // ) - code === 60 || // < - code === 62 || // > - code === 64 || // @ - code === 44 || // , - code === 59 || // ; - code === 58 || // : - code === 92 || // \ - code === 47 || // / - code === 91 || // [ - code === 93 || // ] - code === 63 || // ? - code === 61 || // = - code === 123 || // { - code === 125) { - throw new Error("Invalid cookie name"); - } - } - } - function validateCookieValue(value) { - let len = value.length; - let i = 0; - if (value[0] === '"') { - if (len === 1 || value[len - 1] !== '"') { - throw new Error("Invalid cookie value"); - } - --len; - ++i; - } - while (i < len) { - const code = value.charCodeAt(i++); - if (code < 33 || // exclude CTLs (0-31) - code > 126 || // non-ascii and DEL (127) - code === 34 || // " - code === 44 || // , - code === 59 || // ; - code === 92) { - throw new Error("Invalid cookie value"); - } - } - } - function validateCookiePath(path2) { - for (let i = 0; i < path2.length; ++i) { - const code = path2.charCodeAt(i); - if (code < 32 || // exclude CTLs (0-31) - code > 126 || // exclude DEL and non-ascii - code === 59) { - throw new Error("Invalid cookie path"); - } - } - } - function isLetterOrDigit(code) { - return code >= 48 && code <= 57 || // 0-9 - code >= 65 && code <= 90 || // A-Z - code >= 97 && code <= 122; - } - function validateCookieDomain(domain) { - if (domain === " ") { - return; - } - if (domain.length > 255) { - throw new Error("Invalid cookie domain"); - } - let labelLength = 0; - for (let i = 0; i < domain.length; ++i) { - const code = domain.charCodeAt(i); - if (code === 46) { - if (labelLength === 0) { - throw new Error("Invalid cookie domain"); - } - if (domain.charCodeAt(i - 1) === 45) { - throw new Error("Invalid cookie domain"); - } - labelLength = 0; - continue; - } - if (labelLength === 0 && !isLetterOrDigit(code)) { - throw new Error("Invalid cookie domain"); - } - if (!isLetterOrDigit(code) && code !== 45) { - throw new Error("Invalid cookie domain"); - } - if (++labelLength > 63) { - throw new Error("Invalid cookie domain"); - } - } - if (labelLength === 0 || domain.charCodeAt(domain.length - 1) === 45) { - throw new Error("Invalid cookie domain"); - } - } - var IMFDays = [ - "Sun", - "Mon", - "Tue", - "Wed", - "Thu", - "Fri", - "Sat" - ]; - var IMFMonths = [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" - ]; - var IMFPaddedNumbers = Array(61).fill(0).map((_, i) => i.toString().padStart(2, "0")); - function toIMFDate(date2) { - if (typeof date2 === "number") { - date2 = new Date(date2); - } - return `${IMFDays[date2.getUTCDay()]}, ${IMFPaddedNumbers[date2.getUTCDate()]} ${IMFMonths[date2.getUTCMonth()]} ${date2.getUTCFullYear()} ${IMFPaddedNumbers[date2.getUTCHours()]}:${IMFPaddedNumbers[date2.getUTCMinutes()]}:${IMFPaddedNumbers[date2.getUTCSeconds()]} GMT`; - } - function validateCookieMaxAge(maxAge) { - if (maxAge < 0) { - throw new Error("Invalid cookie max-age"); - } - } - function stringify(cookie) { - if (cookie.name.length === 0) { - return null; - } - validateCookieName(cookie.name); - validateCookieValue(cookie.value); - const out = [`${cookie.name}=${cookie.value}`]; - if (cookie.name.startsWith("__Secure-")) { - cookie.secure = true; - } - if (cookie.name.startsWith("__Host-")) { - cookie.secure = true; - cookie.domain = null; - cookie.path = "/"; - } - if (cookie.secure) { - out.push("Secure"); - } - if (cookie.httpOnly) { - out.push("HttpOnly"); - } - if (typeof cookie.maxAge === "number") { - validateCookieMaxAge(cookie.maxAge); - out.push(`Max-Age=${cookie.maxAge}`); - } - if (cookie.domain) { - validateCookieDomain(cookie.domain); - out.push(`Domain=${cookie.domain}`); - } - if (cookie.path) { - validateCookiePath(cookie.path); - out.push(`Path=${cookie.path}`); - } - if (cookie.expires && cookie.expires.toString() !== "Invalid Date") { - out.push(`Expires=${toIMFDate(cookie.expires)}`); - } - if (cookie.sameSite) { - out.push(`SameSite=${cookie.sameSite}`); - } - for (const part of cookie.unparsed) { - if (!part.includes("=")) { - throw new Error("Invalid unparsed"); - } - const [key, ...value] = part.split("="); - const trimmedKey = key.trim(); - const joinedValue = value.join("="); - validateCookieName(trimmedKey); - validateCookieValue(joinedValue); - out.push(`${trimmedKey}=${joinedValue}`); - } - return out.join("; "); - } - module.exports = { - isCTLExcludingHtab, - validateCookieName, - validateCookiePath, - validateCookieValue, - toIMFDate, - stringify - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/parse.js -var require_parse = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/parse.js"(exports, module) { - "use strict"; - var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(); - var { isCTLExcludingHtab } = require_util6(); - var { collectASequenceOfCodePointsFast } = require_data_url(); - var assert = __require("node:assert"); - function parseSetCookie(header) { - if (isCTLExcludingHtab(header)) { - return null; - } - let nameValuePair = ""; - let unparsedAttributes = ""; - let name = ""; - let value = ""; - if (header.includes(";")) { - const position = { position: 0 }; - nameValuePair = collectASequenceOfCodePointsFast(";", header, position); - unparsedAttributes = header.slice(position.position); - } else { - nameValuePair = header; - } - if (!nameValuePair.includes("=")) { - value = nameValuePair; - } else { - const position = { position: 0 }; - name = collectASequenceOfCodePointsFast( - "=", - nameValuePair, - position - ); - value = nameValuePair.slice(position.position + 1); - } - name = name.trim(); - value = value.trim(); - if (name.length + value.length > maxNameValuePairSize) { - return null; - } - return { - name, - value, - ...parseUnparsedAttributes(unparsedAttributes) - }; - } - function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { - if (unparsedAttributes.length === 0) { - return cookieAttributeList; - } - assert(unparsedAttributes[0] === ";"); - unparsedAttributes = unparsedAttributes.slice(1); - let cookieAv = ""; - if (unparsedAttributes.includes(";")) { - cookieAv = collectASequenceOfCodePointsFast( - ";", - unparsedAttributes, - { position: 0 } - ); - unparsedAttributes = unparsedAttributes.slice(cookieAv.length); - } else { - cookieAv = unparsedAttributes; - unparsedAttributes = ""; - } - let attributeName = ""; - let attributeValue = ""; - if (cookieAv.includes("=")) { - const position = { position: 0 }; - attributeName = collectASequenceOfCodePointsFast( - "=", - cookieAv, - position - ); - attributeValue = cookieAv.slice(position.position + 1); - } else { - attributeName = cookieAv; - } - attributeName = attributeName.trim(); - attributeValue = attributeValue.trim(); - if (attributeValue.length > maxAttributeValueSize) { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - } - const attributeNameLowercase = attributeName.toLowerCase(); - if (attributeNameLowercase === "expires") { - const expiryTime = new Date(attributeValue); - cookieAttributeList.expires = expiryTime; - } else if (attributeNameLowercase === "max-age") { - const charCode = attributeValue.charCodeAt(0); - if ((charCode < 48 || charCode > 57) && attributeValue[0] !== "-") { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - } - if (!/^\d+$/.test(attributeValue)) { - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - } - const deltaSeconds = Number(attributeValue); - cookieAttributeList.maxAge = deltaSeconds; - } else if (attributeNameLowercase === "domain") { - let cookieDomain = attributeValue; - if (cookieDomain[0] === ".") { - cookieDomain = cookieDomain.slice(1); - } - cookieDomain = cookieDomain.toLowerCase(); - cookieAttributeList.domain = cookieDomain; - } else if (attributeNameLowercase === "path") { - let cookiePath = ""; - if (attributeValue.length === 0 || attributeValue[0] !== "/") { - cookiePath = "/"; - } else { - cookiePath = attributeValue; - } - cookieAttributeList.path = cookiePath; - } else if (attributeNameLowercase === "secure") { - cookieAttributeList.secure = true; - } else if (attributeNameLowercase === "httponly") { - cookieAttributeList.httpOnly = true; - } else if (attributeNameLowercase === "samesite") { - const attributeValueLowercase = attributeValue.toLowerCase(); - if (attributeValueLowercase === "none") { - cookieAttributeList.sameSite = "None"; - } else if (attributeValueLowercase === "strict") { - cookieAttributeList.sameSite = "Strict"; - } else if (attributeValueLowercase === "lax") { - cookieAttributeList.sameSite = "Lax"; - } - } else { - cookieAttributeList.unparsed ??= []; - cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); - } - return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); - } - module.exports = { - parseSetCookie, - parseUnparsedAttributes - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/index.js -var require_cookies = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/index.js"(exports, module) { - "use strict"; - var { parseSetCookie } = require_parse(); - var { stringify } = require_util6(); - var { webidl } = require_webidl(); - var { Headers: Headers2 } = require_headers(); - function getCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, "getCookies"); - webidl.brandCheck(headers, Headers2, { strict: false }); - const cookie = headers.get("cookie"); - const out = {}; - if (!cookie) { - return out; - } - for (const piece of cookie.split(";")) { - const [name, ...value] = piece.split("="); - out[name.trim()] = value.join("="); - } - return out; - } - function deleteCookie(headers, name, attributes) { - webidl.brandCheck(headers, Headers2, { strict: false }); - const prefix = "deleteCookie"; - webidl.argumentLengthCheck(arguments, 2, prefix); - name = webidl.converters.DOMString(name, prefix, "name"); - attributes = webidl.converters.DeleteCookieAttributes(attributes); - setCookie(headers, { - name, - value: "", - expires: /* @__PURE__ */ new Date(0), - ...attributes - }); - } - function getSetCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, "getSetCookies"); - webidl.brandCheck(headers, Headers2, { strict: false }); - const cookies = headers.getSetCookie(); - if (!cookies) { - return []; - } - return cookies.map((pair) => parseSetCookie(pair)); - } - function setCookie(headers, cookie) { - webidl.argumentLengthCheck(arguments, 2, "setCookie"); - webidl.brandCheck(headers, Headers2, { strict: false }); - cookie = webidl.converters.Cookie(cookie); - const str = stringify(cookie); - if (str) { - headers.append("Set-Cookie", str); - } - } - webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: "path", - defaultValue: () => null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: "domain", - defaultValue: () => null - } - ]); - webidl.converters.Cookie = webidl.dictionaryConverter([ - { - converter: webidl.converters.DOMString, - key: "name" - }, - { - converter: webidl.converters.DOMString, - key: "value" - }, - { - converter: webidl.nullableConverter((value) => { - if (typeof value === "number") { - return webidl.converters["unsigned long long"](value); - } - return new Date(value); - }), - key: "expires", - defaultValue: () => null - }, - { - converter: webidl.nullableConverter(webidl.converters["long long"]), - key: "maxAge", - defaultValue: () => null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: "domain", - defaultValue: () => null - }, - { - converter: webidl.nullableConverter(webidl.converters.DOMString), - key: "path", - defaultValue: () => null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: "secure", - defaultValue: () => null - }, - { - converter: webidl.nullableConverter(webidl.converters.boolean), - key: "httpOnly", - defaultValue: () => null - }, - { - converter: webidl.converters.USVString, - key: "sameSite", - allowedValues: ["Strict", "Lax", "None"] - }, - { - converter: webidl.sequenceConverter(webidl.converters.DOMString), - key: "unparsed", - defaultValue: () => new Array(0) - } - ]); - module.exports = { - getCookies, - deleteCookie, - getSetCookies, - setCookie - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/events.js -var require_events = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/events.js"(exports, module) { - "use strict"; - var { webidl } = require_webidl(); - var { kEnumerableProperty } = require_util(); - var { kConstruct } = require_symbols(); - var { MessagePort } = __require("node:worker_threads"); - var MessageEvent = class _MessageEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}) { - if (type === kConstruct) { - super(arguments[1], arguments[2]); - webidl.util.markAsUncloneable(this); - return; - } - const prefix = "MessageEvent constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - type = webidl.converters.DOMString(type, prefix, "type"); - eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, "eventInitDict"); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - webidl.util.markAsUncloneable(this); - } - get data() { - webidl.brandCheck(this, _MessageEvent); - return this.#eventInit.data; - } - get origin() { - webidl.brandCheck(this, _MessageEvent); - return this.#eventInit.origin; - } - get lastEventId() { - webidl.brandCheck(this, _MessageEvent); - return this.#eventInit.lastEventId; - } - get source() { - webidl.brandCheck(this, _MessageEvent); - return this.#eventInit.source; - } - get ports() { - webidl.brandCheck(this, _MessageEvent); - if (!Object.isFrozen(this.#eventInit.ports)) { - Object.freeze(this.#eventInit.ports); - } - return this.#eventInit.ports; - } - initMessageEvent(type, bubbles = false, cancelable = false, data = null, origin = "", lastEventId = "", source = null, ports = []) { - webidl.brandCheck(this, _MessageEvent); - webidl.argumentLengthCheck(arguments, 1, "MessageEvent.initMessageEvent"); - return new _MessageEvent(type, { - bubbles, - cancelable, - data, - origin, - lastEventId, - source, - ports - }); - } - static createFastMessageEvent(type, init) { - const messageEvent = new _MessageEvent(kConstruct, type, init); - messageEvent.#eventInit = init; - messageEvent.#eventInit.data ??= null; - messageEvent.#eventInit.origin ??= ""; - messageEvent.#eventInit.lastEventId ??= ""; - messageEvent.#eventInit.source ??= null; - messageEvent.#eventInit.ports ??= []; - return messageEvent; - } - }; - var { createFastMessageEvent } = MessageEvent; - delete MessageEvent.createFastMessageEvent; - var CloseEvent = class _CloseEvent extends Event { - #eventInit; - constructor(type, eventInitDict = {}) { - const prefix = "CloseEvent constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - type = webidl.converters.DOMString(type, prefix, "type"); - eventInitDict = webidl.converters.CloseEventInit(eventInitDict); - super(type, eventInitDict); - this.#eventInit = eventInitDict; - webidl.util.markAsUncloneable(this); - } - get wasClean() { - webidl.brandCheck(this, _CloseEvent); - return this.#eventInit.wasClean; - } - get code() { - webidl.brandCheck(this, _CloseEvent); - return this.#eventInit.code; - } - get reason() { - webidl.brandCheck(this, _CloseEvent); - return this.#eventInit.reason; - } - }; - var ErrorEvent = class _ErrorEvent extends Event { - #eventInit; - constructor(type, eventInitDict) { - const prefix = "ErrorEvent constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - super(type, eventInitDict); - webidl.util.markAsUncloneable(this); - type = webidl.converters.DOMString(type, prefix, "type"); - eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}); - this.#eventInit = eventInitDict; - } - get message() { - webidl.brandCheck(this, _ErrorEvent); - return this.#eventInit.message; - } - get filename() { - webidl.brandCheck(this, _ErrorEvent); - return this.#eventInit.filename; - } - get lineno() { - webidl.brandCheck(this, _ErrorEvent); - return this.#eventInit.lineno; - } - get colno() { - webidl.brandCheck(this, _ErrorEvent); - return this.#eventInit.colno; - } - get error() { - webidl.brandCheck(this, _ErrorEvent); - return this.#eventInit.error; - } - }; - Object.defineProperties(MessageEvent.prototype, { - [Symbol.toStringTag]: { - value: "MessageEvent", - configurable: true - }, - data: kEnumerableProperty, - origin: kEnumerableProperty, - lastEventId: kEnumerableProperty, - source: kEnumerableProperty, - ports: kEnumerableProperty, - initMessageEvent: kEnumerableProperty - }); - Object.defineProperties(CloseEvent.prototype, { - [Symbol.toStringTag]: { - value: "CloseEvent", - configurable: true - }, - reason: kEnumerableProperty, - code: kEnumerableProperty, - wasClean: kEnumerableProperty - }); - Object.defineProperties(ErrorEvent.prototype, { - [Symbol.toStringTag]: { - value: "ErrorEvent", - configurable: true - }, - message: kEnumerableProperty, - filename: kEnumerableProperty, - lineno: kEnumerableProperty, - colno: kEnumerableProperty, - error: kEnumerableProperty - }); - webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort); - webidl.converters["sequence"] = webidl.sequenceConverter( - webidl.converters.MessagePort - ); - var eventInit = [ - { - key: "bubbles", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "cancelable", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "composed", - converter: webidl.converters.boolean, - defaultValue: () => false - } - ]; - webidl.converters.MessageEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: "data", - converter: webidl.converters.any, - defaultValue: () => null - }, - { - key: "origin", - converter: webidl.converters.USVString, - defaultValue: () => "" - }, - { - key: "lastEventId", - converter: webidl.converters.DOMString, - defaultValue: () => "" - }, - { - key: "source", - // Node doesn't implement WindowProxy or ServiceWorker, so the only - // valid value for source is a MessagePort. - converter: webidl.nullableConverter(webidl.converters.MessagePort), - defaultValue: () => null - }, - { - key: "ports", - converter: webidl.converters["sequence"], - defaultValue: () => new Array(0) - } - ]); - webidl.converters.CloseEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: "wasClean", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "code", - converter: webidl.converters["unsigned short"], - defaultValue: () => 0 - }, - { - key: "reason", - converter: webidl.converters.USVString, - defaultValue: () => "" - } - ]); - webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ - ...eventInit, - { - key: "message", - converter: webidl.converters.DOMString, - defaultValue: () => "" - }, - { - key: "filename", - converter: webidl.converters.USVString, - defaultValue: () => "" - }, - { - key: "lineno", - converter: webidl.converters["unsigned long"], - defaultValue: () => 0 - }, - { - key: "colno", - converter: webidl.converters["unsigned long"], - defaultValue: () => 0 - }, - { - key: "error", - converter: webidl.converters.any - } - ]); - module.exports = { - MessageEvent, - CloseEvent, - ErrorEvent, - createFastMessageEvent - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/constants.js -var require_constants5 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/constants.js"(exports, module) { - "use strict"; - var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; - var staticPropertyDescriptors = { - enumerable: true, - writable: false, - configurable: false - }; - var states = { - CONNECTING: 0, - OPEN: 1, - CLOSING: 2, - CLOSED: 3 - }; - var sentCloseFrameState = { - NOT_SENT: 0, - PROCESSING: 1, - SENT: 2 - }; - var opcodes = { - CONTINUATION: 0, - TEXT: 1, - BINARY: 2, - CLOSE: 8, - PING: 9, - PONG: 10 - }; - var maxUnsigned16Bit = 2 ** 16 - 1; - var parserStates = { - INFO: 0, - PAYLOADLENGTH_16: 2, - PAYLOADLENGTH_64: 3, - READ_DATA: 4 - }; - var emptyBuffer = Buffer.allocUnsafe(0); - var sendHints = { - string: 1, - typedArray: 2, - arrayBuffer: 3, - blob: 4 - }; - module.exports = { - uid, - sentCloseFrameState, - staticPropertyDescriptors, - states, - opcodes, - maxUnsigned16Bit, - parserStates, - emptyBuffer, - sendHints - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/symbols.js -var require_symbols5 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/symbols.js"(exports, module) { - "use strict"; - module.exports = { - kWebSocketURL: /* @__PURE__ */ Symbol("url"), - kReadyState: /* @__PURE__ */ Symbol("ready state"), - kController: /* @__PURE__ */ Symbol("controller"), - kResponse: /* @__PURE__ */ Symbol("response"), - kBinaryType: /* @__PURE__ */ Symbol("binary type"), - kSentClose: /* @__PURE__ */ Symbol("sent close"), - kReceivedClose: /* @__PURE__ */ Symbol("received close"), - kByteParser: /* @__PURE__ */ Symbol("byte parser") - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/util.js -var require_util7 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/util.js"(exports, module) { - "use strict"; - var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5(); - var { states, opcodes } = require_constants5(); - var { ErrorEvent, createFastMessageEvent } = require_events(); - var { isUtf8 } = __require("node:buffer"); - var { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = require_data_url(); - function isConnecting(ws) { - return ws[kReadyState] === states.CONNECTING; - } - function isEstablished(ws) { - return ws[kReadyState] === states.OPEN; - } - function isClosing(ws) { - return ws[kReadyState] === states.CLOSING; - } - function isClosed(ws) { - return ws[kReadyState] === states.CLOSED; - } - function fireEvent(e, target, eventFactory = (type, init) => new Event(type, init), eventInitDict = {}) { - const event = eventFactory(e, eventInitDict); - target.dispatchEvent(event); - } - function websocketMessageReceived(ws, type, data) { - if (ws[kReadyState] !== states.OPEN) { - return; - } - let dataForEvent; - if (type === opcodes.TEXT) { - try { - dataForEvent = utf8Decode(data); - } catch { - failWebsocketConnection(ws, "Received invalid UTF-8 in text frame."); - return; - } - } else if (type === opcodes.BINARY) { - if (ws[kBinaryType] === "blob") { - dataForEvent = new Blob([data]); - } else { - dataForEvent = toArrayBuffer(data); - } - } - fireEvent("message", ws, createFastMessageEvent, { - origin: ws[kWebSocketURL].origin, - data: dataForEvent - }); - } - function toArrayBuffer(buffer) { - if (buffer.byteLength === buffer.buffer.byteLength) { - return buffer.buffer; - } - return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); - } - function isValidSubprotocol(protocol) { - if (protocol.length === 0) { - return false; - } - for (let i = 0; i < protocol.length; ++i) { - const code = protocol.charCodeAt(i); - if (code < 33 || // CTL, contains SP (0x20) and HT (0x09) - code > 126 || code === 34 || // " - code === 40 || // ( - code === 41 || // ) - code === 44 || // , - code === 47 || // / - code === 58 || // : - code === 59 || // ; - code === 60 || // < - code === 61 || // = - code === 62 || // > - code === 63 || // ? - code === 64 || // @ - code === 91 || // [ - code === 92 || // \ - code === 93 || // ] - code === 123 || // { - code === 125) { - return false; - } - } - return true; - } - function isValidStatusCode(code) { - if (code >= 1e3 && code < 1015) { - return code !== 1004 && // reserved - code !== 1005 && // "MUST NOT be set as a status code" - code !== 1006; - } - return code >= 3e3 && code <= 4999; - } - function failWebsocketConnection(ws, reason) { - const { [kController]: controller, [kResponse]: response } = ws; - controller.abort(); - if (response?.socket && !response.socket.destroyed) { - response.socket.destroy(); - } - if (reason) { - fireEvent("error", ws, (type, init) => new ErrorEvent(type, init), { - error: new Error(reason), - message: reason - }); - } - } - function isControlFrame(opcode) { - return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG; - } - function isContinuationFrame(opcode) { - return opcode === opcodes.CONTINUATION; - } - function isTextBinaryFrame(opcode) { - return opcode === opcodes.TEXT || opcode === opcodes.BINARY; - } - function isValidOpcode(opcode) { - return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode); - } - function parseExtensions(extensions) { - const position = { position: 0 }; - const extensionList = /* @__PURE__ */ new Map(); - while (position.position < extensions.length) { - const pair = collectASequenceOfCodePointsFast(";", extensions, position); - const [name, value = ""] = pair.split("="); - extensionList.set( - removeHTTPWhitespace(name, true, false), - removeHTTPWhitespace(value, false, true) - ); - position.position++; - } - return extensionList; - } - function isValidClientWindowBits(value) { - if (value.length === 0) { - return false; - } - for (let i = 0; i < value.length; i++) { - const byte = value.charCodeAt(i); - if (byte < 48 || byte > 57) { - return false; - } - } - const num = Number.parseInt(value, 10); - return num >= 8 && num <= 15; - } - var hasIntl = typeof process.versions.icu === "string"; - var fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: true }) : void 0; - var utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer) { - if (isUtf8(buffer)) { - return buffer.toString("utf-8"); - } - throw new TypeError("Invalid utf-8 received."); - }; - module.exports = { - isConnecting, - isEstablished, - isClosing, - isClosed, - fireEvent, - isValidSubprotocol, - isValidStatusCode, - failWebsocketConnection, - websocketMessageReceived, - utf8Decode, - isControlFrame, - isContinuationFrame, - isTextBinaryFrame, - isValidOpcode, - parseExtensions, - isValidClientWindowBits - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/frame.js -var require_frame = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/frame.js"(exports, module) { - "use strict"; - var { maxUnsigned16Bit } = require_constants5(); - var BUFFER_SIZE = 16386; - var crypto2; - var buffer = null; - var bufIdx = BUFFER_SIZE; - try { - crypto2 = __require("node:crypto"); - } catch { - crypto2 = { - // not full compatibility, but minimum. - randomFillSync: function randomFillSync(buffer2, _offset, _size) { - for (let i = 0; i < buffer2.length; ++i) { - buffer2[i] = Math.random() * 255 | 0; - } - return buffer2; - } - }; - } - function generateMask() { - if (bufIdx === BUFFER_SIZE) { - bufIdx = 0; - crypto2.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE); - } - return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]; - } - var WebsocketFrameSend = class { - /** - * @param {Buffer|undefined} data - */ - constructor(data) { - this.frameData = data; - } - createFrame(opcode) { - const frameData = this.frameData; - const maskKey = generateMask(); - const bodyLength = frameData?.byteLength ?? 0; - let payloadLength = bodyLength; - let offset = 6; - if (bodyLength > maxUnsigned16Bit) { - offset += 8; - payloadLength = 127; - } else if (bodyLength > 125) { - offset += 2; - payloadLength = 126; - } - const buffer2 = Buffer.allocUnsafe(bodyLength + offset); - buffer2[0] = buffer2[1] = 0; - buffer2[0] |= 128; - buffer2[0] = (buffer2[0] & 240) + opcode; - buffer2[offset - 4] = maskKey[0]; - buffer2[offset - 3] = maskKey[1]; - buffer2[offset - 2] = maskKey[2]; - buffer2[offset - 1] = maskKey[3]; - buffer2[1] = payloadLength; - if (payloadLength === 126) { - buffer2.writeUInt16BE(bodyLength, 2); - } else if (payloadLength === 127) { - buffer2[2] = buffer2[3] = 0; - buffer2.writeUIntBE(bodyLength, 4, 6); - } - buffer2[1] |= 128; - for (let i = 0; i < bodyLength; ++i) { - buffer2[offset + i] = frameData[i] ^ maskKey[i & 3]; - } - return buffer2; - } - }; - module.exports = { - WebsocketFrameSend - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/connection.js -var require_connection = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/connection.js"(exports, module) { - "use strict"; - var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5(); - var { - kReadyState, - kSentClose, - kByteParser, - kReceivedClose, - kResponse - } = require_symbols5(); - var { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require_util7(); - var { channels } = require_diagnostics(); - var { CloseEvent } = require_events(); - var { makeRequest } = require_request2(); - var { fetching } = require_fetch(); - var { Headers: Headers2, getHeadersList } = require_headers(); - var { getDecodeSplit } = require_util2(); - var { WebsocketFrameSend } = require_frame(); - var crypto2; - try { - crypto2 = __require("node:crypto"); - } catch { - } - function establishWebSocketConnection(url, protocols, client, ws, onEstablish, options) { - const requestURL = url; - requestURL.protocol = url.protocol === "ws:" ? "http:" : "https:"; - const request = makeRequest({ - urlList: [requestURL], - client, - serviceWorkers: "none", - referrer: "no-referrer", - mode: "websocket", - credentials: "include", - cache: "no-store", - redirect: "error" - }); - if (options.headers) { - const headersList = getHeadersList(new Headers2(options.headers)); - request.headersList = headersList; - } - const keyValue = crypto2.randomBytes(16).toString("base64"); - request.headersList.append("sec-websocket-key", keyValue); - request.headersList.append("sec-websocket-version", "13"); - for (const protocol of protocols) { - request.headersList.append("sec-websocket-protocol", protocol); - } - const permessageDeflate = "permessage-deflate; client_max_window_bits"; - request.headersList.append("sec-websocket-extensions", permessageDeflate); - const controller = fetching({ - request, - useParallelQueue: true, - dispatcher: options.dispatcher, - processResponse(response) { - if (response.type === "error" || response.status !== 101) { - failWebsocketConnection(ws, "Received network error or non-101 status code."); - return; - } - if (protocols.length !== 0 && !response.headersList.get("Sec-WebSocket-Protocol")) { - failWebsocketConnection(ws, "Server did not respond with sent protocols."); - return; - } - if (response.headersList.get("Upgrade")?.toLowerCase() !== "websocket") { - failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".'); - return; - } - if (response.headersList.get("Connection")?.toLowerCase() !== "upgrade") { - failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); - return; - } - const secWSAccept = response.headersList.get("Sec-WebSocket-Accept"); - const digest = crypto2.createHash("sha1").update(keyValue + uid).digest("base64"); - if (secWSAccept !== digest) { - failWebsocketConnection(ws, "Incorrect hash received in Sec-WebSocket-Accept header."); - return; - } - const secExtension = response.headersList.get("Sec-WebSocket-Extensions"); - let extensions; - if (secExtension !== null) { - extensions = parseExtensions(secExtension); - if (!extensions.has("permessage-deflate")) { - failWebsocketConnection(ws, "Sec-WebSocket-Extensions header does not match."); - return; - } - } - const secProtocol = response.headersList.get("Sec-WebSocket-Protocol"); - if (secProtocol !== null) { - const requestProtocols = getDecodeSplit("sec-websocket-protocol", request.headersList); - if (!requestProtocols.includes(secProtocol)) { - failWebsocketConnection(ws, "Protocol was not set in the opening handshake."); - return; - } - } - response.socket.on("data", onSocketData); - response.socket.on("close", onSocketClose); - response.socket.on("error", onSocketError); - if (channels.open.hasSubscribers) { - channels.open.publish({ - address: response.socket.address(), - protocol: secProtocol, - extensions: secExtension - }); - } - onEstablish(response, extensions); - } - }); - return controller; - } - function closeWebSocketConnection(ws, code, reason, reasonByteLength) { - if (isClosing(ws) || isClosed(ws)) { - } else if (!isEstablished(ws)) { - failWebsocketConnection(ws, "Connection was closed before it was established."); - ws[kReadyState] = states.CLOSING; - } else if (ws[kSentClose] === sentCloseFrameState.NOT_SENT) { - ws[kSentClose] = sentCloseFrameState.PROCESSING; - const frame = new WebsocketFrameSend(); - if (code !== void 0 && reason === void 0) { - frame.frameData = Buffer.allocUnsafe(2); - frame.frameData.writeUInt16BE(code, 0); - } else if (code !== void 0 && reason !== void 0) { - frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength); - frame.frameData.writeUInt16BE(code, 0); - frame.frameData.write(reason, 2, "utf-8"); - } else { - frame.frameData = emptyBuffer; - } - const socket = ws[kResponse].socket; - socket.write(frame.createFrame(opcodes.CLOSE)); - ws[kSentClose] = sentCloseFrameState.SENT; - ws[kReadyState] = states.CLOSING; - } else { - ws[kReadyState] = states.CLOSING; - } - } - function onSocketData(chunk) { - if (!this.ws[kByteParser].write(chunk)) { - this.pause(); - } - } - function onSocketClose() { - const { ws } = this; - const { [kResponse]: response } = ws; - response.socket.off("data", onSocketData); - response.socket.off("close", onSocketClose); - response.socket.off("error", onSocketError); - const wasClean = ws[kSentClose] === sentCloseFrameState.SENT && ws[kReceivedClose]; - let code = 1005; - let reason = ""; - const result = ws[kByteParser].closingInfo; - if (result && !result.error) { - code = result.code ?? 1005; - reason = result.reason; - } else if (!ws[kReceivedClose]) { - code = 1006; - } - ws[kReadyState] = states.CLOSED; - fireEvent("close", ws, (type, init) => new CloseEvent(type, init), { - wasClean, - code, - reason - }); - if (channels.close.hasSubscribers) { - channels.close.publish({ - websocket: ws, - code, - reason - }); - } - } - function onSocketError(error2) { - const { ws } = this; - ws[kReadyState] = states.CLOSING; - if (channels.socketError.hasSubscribers) { - channels.socketError.publish(error2); - } - this.destroy(); - } - module.exports = { - establishWebSocketConnection, - closeWebSocketConnection - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/permessage-deflate.js -var require_permessage_deflate = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports, module) { - "use strict"; - var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib"); - var { isValidClientWindowBits } = require_util7(); - var { MessageSizeExceededError } = require_errors(); - var tail = Buffer.from([0, 0, 255, 255]); - var kBuffer = /* @__PURE__ */ Symbol("kBuffer"); - var kLength = /* @__PURE__ */ Symbol("kLength"); - var PerMessageDeflate = class { - /** @type {import('node:zlib').InflateRaw} */ - #inflate; - #options = {}; - #maxPayloadSize = 0; - /** - * @param {Map} extensions - */ - constructor(extensions, options) { - this.#options.serverNoContextTakeover = extensions.has("server_no_context_takeover"); - this.#options.serverMaxWindowBits = extensions.get("server_max_window_bits"); - this.#maxPayloadSize = options.maxPayloadSize; - } - /** - * Decompress a compressed payload. - * @param {Buffer} chunk Compressed data - * @param {boolean} fin Final fragment flag - * @param {Function} callback Callback function - */ - decompress(chunk, fin, callback) { - if (!this.#inflate) { - let windowBits = Z_DEFAULT_WINDOWBITS; - if (this.#options.serverMaxWindowBits) { - if (!isValidClientWindowBits(this.#options.serverMaxWindowBits)) { - callback(new Error("Invalid server_max_window_bits")); - return; - } - windowBits = Number.parseInt(this.#options.serverMaxWindowBits); - } - try { - this.#inflate = createInflateRaw({ windowBits }); - } catch (err) { - callback(err); - return; - } - this.#inflate[kBuffer] = []; - this.#inflate[kLength] = 0; - this.#inflate.on("data", (data) => { - this.#inflate[kLength] += data.length; - if (this.#maxPayloadSize > 0 && this.#inflate[kLength] > this.#maxPayloadSize) { - callback(new MessageSizeExceededError()); - this.#inflate.removeAllListeners(); - this.#inflate = null; - return; - } - this.#inflate[kBuffer].push(data); - }); - this.#inflate.on("error", (err) => { - this.#inflate = null; - callback(err); - }); - } - this.#inflate.write(chunk); - if (fin) { - this.#inflate.write(tail); - } - this.#inflate.flush(() => { - if (!this.#inflate) { - return; - } - const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]); - this.#inflate[kBuffer].length = 0; - this.#inflate[kLength] = 0; - callback(null, full); - }); - } - }; - module.exports = { PerMessageDeflate }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/receiver.js -var require_receiver = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/receiver.js"(exports, module) { - "use strict"; - var { Writable } = __require("node:stream"); - var assert = __require("node:assert"); - var { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants5(); - var { kReadyState, kSentClose, kResponse, kReceivedClose } = require_symbols5(); - var { channels } = require_diagnostics(); - var { - isValidStatusCode, - isValidOpcode, - failWebsocketConnection, - websocketMessageReceived, - utf8Decode, - isControlFrame, - isTextBinaryFrame, - isContinuationFrame - } = require_util7(); - var { WebsocketFrameSend } = require_frame(); - var { closeWebSocketConnection } = require_connection(); - var { PerMessageDeflate } = require_permessage_deflate(); - var { MessageSizeExceededError } = require_errors(); - function failWebsocketConnectionWithCode(ws, code, reason) { - closeWebSocketConnection(ws, code, reason, Buffer.byteLength(reason)); - failWebsocketConnection(ws, reason); - } - var ByteParser = class extends Writable { - #buffers = []; - #fragmentsBytes = 0; - #byteOffset = 0; - #loop = false; - #state = parserStates.INFO; - #info = {}; - #fragments = []; - /** @type {Map} */ - #extensions; - /** @type {number} */ - #maxFragments; - /** @type {number} */ - #maxPayloadSize; - /** - * @param {import('./websocket').WebSocket} ws - * @param {Map|null} extensions - * @param {{ maxFragments?: number, maxPayloadSize?: number }} [options] - */ - constructor(ws, extensions, options = {}) { - super(); - this.ws = ws; - this.#extensions = extensions == null ? /* @__PURE__ */ new Map() : extensions; - this.#maxFragments = options.maxFragments ?? 0; - this.#maxPayloadSize = options.maxPayloadSize ?? 0; - if (this.#extensions.has("permessage-deflate")) { - this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions, options)); - } - } - /** - * @param {Buffer} chunk - * @param {() => void} callback - */ - _write(chunk, _, callback) { - this.#buffers.push(chunk); - this.#byteOffset += chunk.length; - this.#loop = true; - this.run(callback); - } - #validatePayloadLength() { - if (this.#maxPayloadSize > 0 && !isControlFrame(this.#info.opcode) && this.#info.payloadLength + this.#fragmentsBytes > this.#maxPayloadSize) { - failWebsocketConnectionWithCode(this.ws, 1009, "Payload size exceeds maximum allowed size"); - return false; - } - return true; - } - /** - * Runs whenever a new chunk is received. - * Callback is called whenever there are no more chunks buffering, - * or not enough bytes are buffered to parse. - */ - run(callback) { - while (this.#loop) { - if (this.#state === parserStates.INFO) { - if (this.#byteOffset < 2) { - return callback(); - } - const buffer = this.consume(2); - const fin = (buffer[0] & 128) !== 0; - const opcode = buffer[0] & 15; - const masked = (buffer[1] & 128) === 128; - const fragmented = !fin && opcode !== opcodes.CONTINUATION; - const payloadLength = buffer[1] & 127; - const rsv1 = buffer[0] & 64; - const rsv2 = buffer[0] & 32; - const rsv3 = buffer[0] & 16; - if (!isValidOpcode(opcode)) { - failWebsocketConnection(this.ws, "Invalid opcode received"); - return callback(); - } - if (masked) { - failWebsocketConnection(this.ws, "Frame cannot be masked"); - return callback(); - } - if (rsv1 !== 0 && !this.#extensions.has("permessage-deflate")) { - failWebsocketConnection(this.ws, "Expected RSV1 to be clear."); - return; - } - if (rsv2 !== 0 || rsv3 !== 0) { - failWebsocketConnection(this.ws, "RSV1, RSV2, RSV3 must be clear"); - return; - } - if (fragmented && !isTextBinaryFrame(opcode)) { - failWebsocketConnection(this.ws, "Invalid frame type was fragmented."); - return; - } - if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) { - failWebsocketConnection(this.ws, "Expected continuation frame"); - return; - } - if (this.#info.fragmented && fragmented) { - failWebsocketConnection(this.ws, "Fragmented frame exceeded 125 bytes."); - return; - } - if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) { - failWebsocketConnection(this.ws, "Control frame either too large or fragmented"); - return; - } - if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) { - failWebsocketConnection(this.ws, "Unexpected continuation frame"); - return; - } - if (payloadLength <= 125) { - this.#info.payloadLength = payloadLength; - this.#state = parserStates.READ_DATA; - if (!this.#validatePayloadLength()) { - return; - } - } else if (payloadLength === 126) { - this.#state = parserStates.PAYLOADLENGTH_16; - } else if (payloadLength === 127) { - this.#state = parserStates.PAYLOADLENGTH_64; - } - if (isTextBinaryFrame(opcode)) { - this.#info.binaryType = opcode; - this.#info.compressed = rsv1 !== 0; - } - this.#info.opcode = opcode; - this.#info.masked = masked; - this.#info.fin = fin; - this.#info.fragmented = fragmented; - } else if (this.#state === parserStates.PAYLOADLENGTH_16) { - if (this.#byteOffset < 2) { - return callback(); - } - const buffer = this.consume(2); - this.#info.payloadLength = buffer.readUInt16BE(0); - this.#state = parserStates.READ_DATA; - if (!this.#validatePayloadLength()) { - return; - } - } else if (this.#state === parserStates.PAYLOADLENGTH_64) { - if (this.#byteOffset < 8) { - return callback(); - } - const buffer = this.consume(8); - const upper = buffer.readUInt32BE(0); - const lower = buffer.readUInt32BE(4); - if (upper !== 0 || lower > 2 ** 31 - 1) { - failWebsocketConnection(this.ws, "Received payload length > 2^31 bytes."); - return; - } - this.#info.payloadLength = lower; - this.#state = parserStates.READ_DATA; - if (!this.#validatePayloadLength()) { - return; - } - } else if (this.#state === parserStates.READ_DATA) { - if (this.#byteOffset < this.#info.payloadLength) { - return callback(); - } - const body = this.consume(this.#info.payloadLength); - if (isControlFrame(this.#info.opcode)) { - this.#loop = this.parseControlFrame(body); - this.#state = parserStates.INFO; - } else { - if (!this.#info.compressed) { - if (!this.writeFragments(body)) { - return; - } - if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { - failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message); - return; - } - if (!this.#info.fragmented && this.#info.fin) { - websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments()); - } - this.#state = parserStates.INFO; - } else { - this.#extensions.get("permessage-deflate").decompress( - body, - this.#info.fin, - (error2, data) => { - if (error2) { - const code = error2 instanceof MessageSizeExceededError ? 1009 : 1007; - failWebsocketConnectionWithCode(this.ws, code, error2.message); - return; - } - if (!this.writeFragments(data)) { - return; - } - if (this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { - failWebsocketConnectionWithCode(this.ws, 1009, new MessageSizeExceededError().message); - return; - } - if (!this.#info.fin) { - this.#state = parserStates.INFO; - this.#loop = true; - this.run(callback); - return; - } - websocketMessageReceived(this.ws, this.#info.binaryType, this.consumeFragments()); - this.#loop = true; - this.#state = parserStates.INFO; - this.run(callback); - } - ); - this.#loop = false; - break; - } - } - } - } - } - /** - * Take n bytes from the buffered Buffers - * @param {number} n - * @returns {Buffer} - */ - consume(n) { - if (n > this.#byteOffset) { - throw new Error("Called consume() before buffers satiated."); - } else if (n === 0) { - return emptyBuffer; - } - if (this.#buffers[0].length === n) { - this.#byteOffset -= this.#buffers[0].length; - return this.#buffers.shift(); - } - const buffer = Buffer.allocUnsafe(n); - let offset = 0; - while (offset !== n) { - const next = this.#buffers[0]; - const { length } = next; - if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset); - break; - } else if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset); - this.#buffers[0] = next.subarray(n - offset); - break; - } else { - buffer.set(this.#buffers.shift(), offset); - offset += next.length; - } - } - this.#byteOffset -= n; - return buffer; - } - writeFragments(fragment) { - if (this.#maxFragments > 0 && this.#fragments.length === this.#maxFragments) { - failWebsocketConnectionWithCode(this.ws, 1008, "Too many message fragments"); - return false; - } - this.#fragmentsBytes += fragment.length; - this.#fragments.push(fragment); - return true; - } - consumeFragments() { - const fragments = this.#fragments; - if (fragments.length === 1) { - this.#fragmentsBytes = 0; - return fragments.shift(); - } - const output = Buffer.concat(fragments, this.#fragmentsBytes); - this.#fragments = []; - this.#fragmentsBytes = 0; - return output; - } - parseCloseBody(data) { - assert(data.length !== 1); - let code; - if (data.length >= 2) { - code = data.readUInt16BE(0); - } - if (code !== void 0 && !isValidStatusCode(code)) { - return { code: 1002, reason: "Invalid status code", error: true }; - } - let reason = data.subarray(2); - if (reason[0] === 239 && reason[1] === 187 && reason[2] === 191) { - reason = reason.subarray(3); - } - try { - reason = utf8Decode(reason); - } catch { - return { code: 1007, reason: "Invalid UTF-8", error: true }; - } - return { code, reason, error: false }; - } - /** - * Parses control frames. - * @param {Buffer} body - */ - parseControlFrame(body) { - const { opcode, payloadLength } = this.#info; - if (opcode === opcodes.CLOSE) { - if (payloadLength === 1) { - failWebsocketConnection(this.ws, "Received close frame with a 1-byte body."); - return false; - } - this.#info.closeInfo = this.parseCloseBody(body); - if (this.#info.closeInfo.error) { - const { code, reason } = this.#info.closeInfo; - closeWebSocketConnection(this.ws, code, reason, reason.length); - failWebsocketConnection(this.ws, reason); - return false; - } - if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { - let body2 = emptyBuffer; - if (this.#info.closeInfo.code) { - body2 = Buffer.allocUnsafe(2); - body2.writeUInt16BE(this.#info.closeInfo.code, 0); - } - const closeFrame = new WebsocketFrameSend(body2); - this.ws[kResponse].socket.write( - closeFrame.createFrame(opcodes.CLOSE), - (err) => { - if (!err) { - this.ws[kSentClose] = sentCloseFrameState.SENT; - } - } - ); - } - this.ws[kReadyState] = states.CLOSING; - this.ws[kReceivedClose] = true; - return false; - } else if (opcode === opcodes.PING) { - if (!this.ws[kReceivedClose]) { - const frame = new WebsocketFrameSend(body); - this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)); - if (channels.ping.hasSubscribers) { - channels.ping.publish({ - payload: body - }); - } - } - } else if (opcode === opcodes.PONG) { - if (channels.pong.hasSubscribers) { - channels.pong.publish({ - payload: body - }); - } - } - return true; - } - get closingInfo() { - return this.#info.closeInfo; - } - }; - module.exports = { - ByteParser - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/sender.js -var require_sender = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/sender.js"(exports, module) { - "use strict"; - var { WebsocketFrameSend } = require_frame(); - var { opcodes, sendHints } = require_constants5(); - var FixedQueue = require_fixed_queue(); - var FastBuffer = Buffer[Symbol.species]; - var SendQueue = class { - /** - * @type {FixedQueue} - */ - #queue = new FixedQueue(); - /** - * @type {boolean} - */ - #running = false; - /** @type {import('node:net').Socket} */ - #socket; - constructor(socket) { - this.#socket = socket; - } - add(item, cb, hint) { - if (hint !== sendHints.blob) { - const frame = createFrame(item, hint); - if (!this.#running) { - this.#socket.write(frame, cb); - } else { - const node2 = { - promise: null, - callback: cb, - frame - }; - this.#queue.push(node2); - } - return; - } - const node = { - promise: item.arrayBuffer().then((ab) => { - node.promise = null; - node.frame = createFrame(ab, hint); - }), - callback: cb, - frame: null - }; - this.#queue.push(node); - if (!this.#running) { - this.#run(); - } - } - async #run() { - this.#running = true; - const queue = this.#queue; - while (!queue.isEmpty()) { - const node = queue.shift(); - if (node.promise !== null) { - await node.promise; - } - this.#socket.write(node.frame, node.callback); - node.callback = node.frame = null; - } - this.#running = false; - } - }; - function createFrame(data, hint) { - return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.string ? opcodes.TEXT : opcodes.BINARY); - } - function toBuffer(data, hint) { - switch (hint) { - case sendHints.string: - return Buffer.from(data); - case sendHints.arrayBuffer: - case sendHints.blob: - return new FastBuffer(data); - case sendHints.typedArray: - return new FastBuffer(data.buffer, data.byteOffset, data.byteLength); - } - } - module.exports = { SendQueue }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/websocket.js -var require_websocket = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/websocket.js"(exports, module) { - "use strict"; - var { webidl } = require_webidl(); - var { URLSerializer } = require_data_url(); - var { environmentSettingsObject } = require_util2(); - var { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = require_constants5(); - var { - kWebSocketURL, - kReadyState, - kController, - kBinaryType, - kResponse, - kSentClose, - kByteParser - } = require_symbols5(); - var { - isConnecting, - isEstablished, - isClosing, - isValidSubprotocol, - fireEvent - } = require_util7(); - var { establishWebSocketConnection, closeWebSocketConnection } = require_connection(); - var { ByteParser } = require_receiver(); - var { kEnumerableProperty, isBlobLike } = require_util(); - var { getGlobalDispatcher } = require_global2(); - var { types } = __require("node:util"); - var { ErrorEvent, CloseEvent } = require_events(); - var { SendQueue } = require_sender(); - var WebSocket = class _WebSocket extends EventTarget { - #events = { - open: null, - error: null, - close: null, - message: null - }; - #bufferedAmount = 0; - #protocol = ""; - #extensions = ""; - /** @type {SendQueue} */ - #sendQueue; - /** - * @param {string} url - * @param {string|string[]} protocols - */ - constructor(url, protocols = []) { - super(); - webidl.util.markAsUncloneable(this); - const prefix = "WebSocket constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - const options = webidl.converters["DOMString or sequence or WebSocketInit"](protocols, prefix, "options"); - url = webidl.converters.USVString(url, prefix, "url"); - protocols = options.protocols; - const baseURL = environmentSettingsObject.settingsObject.baseUrl; - let urlRecord; - try { - urlRecord = new URL(url, baseURL); - } catch (e) { - throw new DOMException(e, "SyntaxError"); - } - if (urlRecord.protocol === "http:") { - urlRecord.protocol = "ws:"; - } else if (urlRecord.protocol === "https:") { - urlRecord.protocol = "wss:"; - } - if (urlRecord.protocol !== "ws:" && urlRecord.protocol !== "wss:") { - throw new DOMException( - `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, - "SyntaxError" - ); - } - if (urlRecord.hash || urlRecord.href.endsWith("#")) { - throw new DOMException("Got fragment", "SyntaxError"); - } - if (typeof protocols === "string") { - protocols = [protocols]; - } - if (protocols.length !== new Set(protocols.map((p) => p.toLowerCase())).size) { - throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); - } - if (protocols.length > 0 && !protocols.every((p) => isValidSubprotocol(p))) { - throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); - } - this[kWebSocketURL] = new URL(urlRecord.href); - const client = environmentSettingsObject.settingsObject; - this[kController] = establishWebSocketConnection( - urlRecord, - protocols, - client, - this, - (response, extensions) => this.#onConnectionEstablished(response, extensions), - options - ); - this[kReadyState] = _WebSocket.CONNECTING; - this[kSentClose] = sentCloseFrameState.NOT_SENT; - this[kBinaryType] = "blob"; - } - /** - * @see https://websockets.spec.whatwg.org/#dom-websocket-close - * @param {number|undefined} code - * @param {string|undefined} reason - */ - close(code = void 0, reason = void 0) { - webidl.brandCheck(this, _WebSocket); - const prefix = "WebSocket.close"; - if (code !== void 0) { - code = webidl.converters["unsigned short"](code, prefix, "code", { clamp: true }); - } - if (reason !== void 0) { - reason = webidl.converters.USVString(reason, prefix, "reason"); - } - if (code !== void 0) { - if (code !== 1e3 && (code < 3e3 || code > 4999)) { - throw new DOMException("invalid code", "InvalidAccessError"); - } - } - let reasonByteLength = 0; - if (reason !== void 0) { - reasonByteLength = Buffer.byteLength(reason); - if (reasonByteLength > 123) { - throw new DOMException( - `Reason must be less than 123 bytes; received ${reasonByteLength}`, - "SyntaxError" - ); - } - } - closeWebSocketConnection(this, code, reason, reasonByteLength); - } - /** - * @see https://websockets.spec.whatwg.org/#dom-websocket-send - * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data - */ - send(data) { - webidl.brandCheck(this, _WebSocket); - const prefix = "WebSocket.send"; - webidl.argumentLengthCheck(arguments, 1, prefix); - data = webidl.converters.WebSocketSendData(data, prefix, "data"); - if (isConnecting(this)) { - throw new DOMException("Sent before connected.", "InvalidStateError"); - } - if (!isEstablished(this) || isClosing(this)) { - return; - } - if (typeof data === "string") { - const length = Buffer.byteLength(data); - this.#bufferedAmount += length; - this.#sendQueue.add(data, () => { - this.#bufferedAmount -= length; - }, sendHints.string); - } else if (types.isArrayBuffer(data)) { - this.#bufferedAmount += data.byteLength; - this.#sendQueue.add(data, () => { - this.#bufferedAmount -= data.byteLength; - }, sendHints.arrayBuffer); - } else if (ArrayBuffer.isView(data)) { - this.#bufferedAmount += data.byteLength; - this.#sendQueue.add(data, () => { - this.#bufferedAmount -= data.byteLength; - }, sendHints.typedArray); - } else if (isBlobLike(data)) { - this.#bufferedAmount += data.size; - this.#sendQueue.add(data, () => { - this.#bufferedAmount -= data.size; - }, sendHints.blob); - } - } - get readyState() { - webidl.brandCheck(this, _WebSocket); - return this[kReadyState]; - } - get bufferedAmount() { - webidl.brandCheck(this, _WebSocket); - return this.#bufferedAmount; - } - get url() { - webidl.brandCheck(this, _WebSocket); - return URLSerializer(this[kWebSocketURL]); - } - get extensions() { - webidl.brandCheck(this, _WebSocket); - return this.#extensions; - } - get protocol() { - webidl.brandCheck(this, _WebSocket); - return this.#protocol; - } - get onopen() { - webidl.brandCheck(this, _WebSocket); - return this.#events.open; - } - set onopen(fn) { - webidl.brandCheck(this, _WebSocket); - if (this.#events.open) { - this.removeEventListener("open", this.#events.open); - } - if (typeof fn === "function") { - this.#events.open = fn; - this.addEventListener("open", fn); - } else { - this.#events.open = null; - } - } - get onerror() { - webidl.brandCheck(this, _WebSocket); - return this.#events.error; - } - set onerror(fn) { - webidl.brandCheck(this, _WebSocket); - if (this.#events.error) { - this.removeEventListener("error", this.#events.error); - } - if (typeof fn === "function") { - this.#events.error = fn; - this.addEventListener("error", fn); - } else { - this.#events.error = null; - } - } - get onclose() { - webidl.brandCheck(this, _WebSocket); - return this.#events.close; - } - set onclose(fn) { - webidl.brandCheck(this, _WebSocket); - if (this.#events.close) { - this.removeEventListener("close", this.#events.close); - } - if (typeof fn === "function") { - this.#events.close = fn; - this.addEventListener("close", fn); - } else { - this.#events.close = null; - } - } - get onmessage() { - webidl.brandCheck(this, _WebSocket); - return this.#events.message; - } - set onmessage(fn) { - webidl.brandCheck(this, _WebSocket); - if (this.#events.message) { - this.removeEventListener("message", this.#events.message); - } - if (typeof fn === "function") { - this.#events.message = fn; - this.addEventListener("message", fn); - } else { - this.#events.message = null; - } - } - get binaryType() { - webidl.brandCheck(this, _WebSocket); - return this[kBinaryType]; - } - set binaryType(type) { - webidl.brandCheck(this, _WebSocket); - if (type !== "blob" && type !== "arraybuffer") { - this[kBinaryType] = "blob"; - } else { - this[kBinaryType] = type; - } - } - /** - * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol - */ - #onConnectionEstablished(response, parsedExtensions) { - this[kResponse] = response; - const webSocketOptions = this[kController]?.dispatcher?.webSocketOptions; - const maxFragments = webSocketOptions?.maxFragments; - const maxPayloadSize = webSocketOptions?.maxPayloadSize; - const parser = new ByteParser(this, parsedExtensions, { - maxFragments, - maxPayloadSize - }); - parser.on("drain", onParserDrain); - parser.on("error", onParserError.bind(this)); - response.socket.ws = this; - this[kByteParser] = parser; - this.#sendQueue = new SendQueue(response.socket); - this[kReadyState] = states.OPEN; - const extensions = response.headersList.get("sec-websocket-extensions"); - if (extensions !== null) { - this.#extensions = extensions; - } - const protocol = response.headersList.get("sec-websocket-protocol"); - if (protocol !== null) { - this.#protocol = protocol; - } - fireEvent("open", this); - } - }; - WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING; - WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN; - WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING; - WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED; - Object.defineProperties(WebSocket.prototype, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors, - url: kEnumerableProperty, - readyState: kEnumerableProperty, - bufferedAmount: kEnumerableProperty, - onopen: kEnumerableProperty, - onerror: kEnumerableProperty, - onclose: kEnumerableProperty, - close: kEnumerableProperty, - onmessage: kEnumerableProperty, - binaryType: kEnumerableProperty, - send: kEnumerableProperty, - extensions: kEnumerableProperty, - protocol: kEnumerableProperty, - [Symbol.toStringTag]: { - value: "WebSocket", - writable: false, - enumerable: false, - configurable: true - } - }); - Object.defineProperties(WebSocket, { - CONNECTING: staticPropertyDescriptors, - OPEN: staticPropertyDescriptors, - CLOSING: staticPropertyDescriptors, - CLOSED: staticPropertyDescriptors - }); - webidl.converters["sequence"] = webidl.sequenceConverter( - webidl.converters.DOMString - ); - webidl.converters["DOMString or sequence"] = function(V, prefix, argument) { - if (webidl.util.Type(V) === "Object" && Symbol.iterator in V) { - return webidl.converters["sequence"](V); - } - return webidl.converters.DOMString(V, prefix, argument); - }; - webidl.converters.WebSocketInit = webidl.dictionaryConverter([ - { - key: "protocols", - converter: webidl.converters["DOMString or sequence"], - defaultValue: () => new Array(0) - }, - { - key: "dispatcher", - converter: webidl.converters.any, - defaultValue: () => getGlobalDispatcher() - }, - { - key: "headers", - converter: webidl.nullableConverter(webidl.converters.HeadersInit) - } - ]); - webidl.converters["DOMString or sequence or WebSocketInit"] = function(V) { - if (webidl.util.Type(V) === "Object" && !(Symbol.iterator in V)) { - return webidl.converters.WebSocketInit(V); - } - return { protocols: webidl.converters["DOMString or sequence"](V) }; - }; - webidl.converters.WebSocketSendData = function(V) { - if (webidl.util.Type(V) === "Object") { - if (isBlobLike(V)) { - return webidl.converters.Blob(V, { strict: false }); - } - if (ArrayBuffer.isView(V) || types.isArrayBuffer(V)) { - return webidl.converters.BufferSource(V); - } - } - return webidl.converters.USVString(V); - }; - function onParserDrain() { - this.ws[kResponse].socket.resume(); - } - function onParserError(err) { - let message; - let code; - if (err instanceof CloseEvent) { - message = err.reason; - code = err.code; - } else { - message = err.message; - } - fireEvent("error", this, () => new ErrorEvent("error", { error: err, message })); - closeWebSocketConnection(this, code); - } - module.exports = { - WebSocket - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/util.js -var require_util8 = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/util.js"(exports, module) { - "use strict"; - function isValidLastEventId(value) { - return value.indexOf("\0") === -1; - } - function isASCIINumber(value) { - if (value.length === 0) return false; - for (let i = 0; i < value.length; i++) { - if (value.charCodeAt(i) < 48 || value.charCodeAt(i) > 57) return false; - } - return true; - } - function delay(ms) { - return new Promise((resolve) => { - setTimeout(resolve, ms).unref(); - }); - } - module.exports = { - isValidLastEventId, - isASCIINumber, - delay - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js -var require_eventsource_stream = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module) { - "use strict"; - var { Transform } = __require("node:stream"); - var { isASCIINumber, isValidLastEventId } = require_util8(); - var BOM = [239, 187, 191]; - var LF = 10; - var CR = 13; - var COLON = 58; - var SPACE = 32; - var EventSourceStream = class extends Transform { - /** - * @type {eventSourceSettings} - */ - state = null; - /** - * Leading byte-order-mark check. - * @type {boolean} - */ - checkBOM = true; - /** - * @type {boolean} - */ - crlfCheck = false; - /** - * @type {boolean} - */ - eventEndCheck = false; - /** - * @type {Buffer} - */ - buffer = null; - pos = 0; - event = { - data: void 0, - event: void 0, - id: void 0, - retry: void 0 - }; - /** - * @param {object} options - * @param {eventSourceSettings} options.eventSourceSettings - * @param {Function} [options.push] - */ - constructor(options = {}) { - options.readableObjectMode = true; - super(options); - this.state = options.eventSourceSettings || {}; - if (options.push) { - this.push = options.push; - } - } - /** - * @param {Buffer} chunk - * @param {string} _encoding - * @param {Function} callback - * @returns {void} - */ - _transform(chunk, _encoding, callback) { - if (chunk.length === 0) { - callback(); - return; - } - if (this.buffer) { - this.buffer = Buffer.concat([this.buffer, chunk]); - } else { - this.buffer = chunk; - } - if (this.checkBOM) { - switch (this.buffer.length) { - case 1: - if (this.buffer[0] === BOM[0]) { - callback(); - return; - } - this.checkBOM = false; - callback(); - return; - case 2: - if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1]) { - callback(); - return; - } - this.checkBOM = false; - break; - case 3: - if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) { - this.buffer = Buffer.alloc(0); - this.checkBOM = false; - callback(); - return; - } - this.checkBOM = false; - break; - default: - if (this.buffer[0] === BOM[0] && this.buffer[1] === BOM[1] && this.buffer[2] === BOM[2]) { - this.buffer = this.buffer.subarray(3); - } - this.checkBOM = false; - break; - } - } - while (this.pos < this.buffer.length) { - if (this.eventEndCheck) { - if (this.crlfCheck) { - if (this.buffer[this.pos] === LF) { - this.buffer = this.buffer.subarray(this.pos + 1); - this.pos = 0; - this.crlfCheck = false; - continue; - } - this.crlfCheck = false; - } - if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { - if (this.buffer[this.pos] === CR) { - this.crlfCheck = true; - } - this.buffer = this.buffer.subarray(this.pos + 1); - this.pos = 0; - if (this.event.data !== void 0 || this.event.event || this.event.id || this.event.retry) { - this.processEvent(this.event); - } - this.clearEvent(); - continue; - } - this.eventEndCheck = false; - continue; - } - if (this.buffer[this.pos] === LF || this.buffer[this.pos] === CR) { - if (this.buffer[this.pos] === CR) { - this.crlfCheck = true; - } - this.parseLine(this.buffer.subarray(0, this.pos), this.event); - this.buffer = this.buffer.subarray(this.pos + 1); - this.pos = 0; - this.eventEndCheck = true; - continue; - } - this.pos++; - } - callback(); - } - /** - * @param {Buffer} line - * @param {EventStreamEvent} event - */ - parseLine(line, event) { - if (line.length === 0) { - return; - } - const colonPosition = line.indexOf(COLON); - if (colonPosition === 0) { - return; - } - let field = ""; - let value = ""; - if (colonPosition !== -1) { - field = line.subarray(0, colonPosition).toString("utf8"); - let valueStart = colonPosition + 1; - if (line[valueStart] === SPACE) { - ++valueStart; - } - value = line.subarray(valueStart).toString("utf8"); - } else { - field = line.toString("utf8"); - value = ""; - } - switch (field) { - case "data": - if (event[field] === void 0) { - event[field] = value; - } else { - event[field] += ` -${value}`; - } - break; - case "retry": - if (isASCIINumber(value)) { - event[field] = value; - } - break; - case "id": - if (isValidLastEventId(value)) { - event[field] = value; - } - break; - case "event": - if (value.length > 0) { - event[field] = value; - } - break; - } - } - /** - * @param {EventSourceStreamEvent} event - */ - processEvent(event) { - if (event.retry && isASCIINumber(event.retry)) { - this.state.reconnectionTime = parseInt(event.retry, 10); - } - if (event.id && isValidLastEventId(event.id)) { - this.state.lastEventId = event.id; - } - if (event.data !== void 0) { - this.push({ - type: event.event || "message", - options: { - data: event.data, - lastEventId: this.state.lastEventId, - origin: this.state.origin - } - }); - } - } - clearEvent() { - this.event = { - data: void 0, - event: void 0, - id: void 0, - retry: void 0 - }; - } - }; - module.exports = { - EventSourceStream - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/eventsource.js -var require_eventsource = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/eventsource.js"(exports, module) { - "use strict"; - var { pipeline } = __require("node:stream"); - var { fetching } = require_fetch(); - var { makeRequest } = require_request2(); - var { webidl } = require_webidl(); - var { EventSourceStream } = require_eventsource_stream(); - var { parseMIMEType } = require_data_url(); - var { createFastMessageEvent } = require_events(); - var { isNetworkError } = require_response(); - var { delay } = require_util8(); - var { kEnumerableProperty } = require_util(); - var { environmentSettingsObject } = require_util2(); - var experimentalWarned = false; - var defaultReconnectionTime = 3e3; - var CONNECTING = 0; - var OPEN = 1; - var CLOSED = 2; - var ANONYMOUS = "anonymous"; - var USE_CREDENTIALS = "use-credentials"; - var EventSource = class _EventSource extends EventTarget { - #events = { - open: null, - error: null, - message: null - }; - #url = null; - #withCredentials = false; - #readyState = CONNECTING; - #request = null; - #controller = null; - #dispatcher; - /** - * @type {import('./eventsource-stream').eventSourceSettings} - */ - #state; - /** - * Creates a new EventSource object. - * @param {string} url - * @param {EventSourceInit} [eventSourceInitDict] - * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface - */ - constructor(url, eventSourceInitDict = {}) { - super(); - webidl.util.markAsUncloneable(this); - const prefix = "EventSource constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - if (!experimentalWarned) { - experimentalWarned = true; - process.emitWarning("EventSource is experimental, expect them to change at any time.", { - code: "UNDICI-ES" - }); - } - url = webidl.converters.USVString(url, prefix, "url"); - eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, "eventSourceInitDict"); - this.#dispatcher = eventSourceInitDict.dispatcher; - this.#state = { - lastEventId: "", - reconnectionTime: defaultReconnectionTime - }; - const settings = environmentSettingsObject; - let urlRecord; - try { - urlRecord = new URL(url, settings.settingsObject.baseUrl); - this.#state.origin = urlRecord.origin; - } catch (e) { - throw new DOMException(e, "SyntaxError"); - } - this.#url = urlRecord.href; - let corsAttributeState = ANONYMOUS; - if (eventSourceInitDict.withCredentials) { - corsAttributeState = USE_CREDENTIALS; - this.#withCredentials = true; - } - const initRequest = { - redirect: "follow", - keepalive: true, - // @see https://html.spec.whatwg.org/multipage/urls-and-fetching.html#cors-settings-attributes - mode: "cors", - credentials: corsAttributeState === "anonymous" ? "same-origin" : "omit", - referrer: "no-referrer" - }; - initRequest.client = environmentSettingsObject.settingsObject; - initRequest.headersList = [["accept", { name: "accept", value: "text/event-stream" }]]; - initRequest.cache = "no-store"; - initRequest.initiator = "other"; - initRequest.urlList = [new URL(this.#url)]; - this.#request = makeRequest(initRequest); - this.#connect(); - } - /** - * Returns the state of this EventSource object's connection. It can have the - * values described below. - * @returns {0|1|2} - * @readonly - */ - get readyState() { - return this.#readyState; - } - /** - * Returns the URL providing the event stream. - * @readonly - * @returns {string} - */ - get url() { - return this.#url; - } - /** - * Returns a boolean indicating whether the EventSource object was - * instantiated with CORS credentials set (true), or not (false, the default). - */ - get withCredentials() { - return this.#withCredentials; - } - #connect() { - if (this.#readyState === CLOSED) return; - this.#readyState = CONNECTING; - const fetchParams = { - request: this.#request, - dispatcher: this.#dispatcher - }; - const processEventSourceEndOfBody = (response) => { - if (isNetworkError(response)) { - this.dispatchEvent(new Event("error")); - this.close(); - } - this.#reconnect(); - }; - fetchParams.processResponseEndOfBody = processEventSourceEndOfBody; - fetchParams.processResponse = (response) => { - if (isNetworkError(response)) { - if (response.aborted) { - this.close(); - this.dispatchEvent(new Event("error")); - return; - } else { - this.#reconnect(); - return; - } - } - const contentType = response.headersList.get("content-type", true); - const mimeType = contentType !== null ? parseMIMEType(contentType) : "failure"; - const contentTypeValid = mimeType !== "failure" && mimeType.essence === "text/event-stream"; - if (response.status !== 200 || contentTypeValid === false) { - this.close(); - this.dispatchEvent(new Event("error")); - return; - } - this.#readyState = OPEN; - this.dispatchEvent(new Event("open")); - this.#state.origin = response.urlList[response.urlList.length - 1].origin; - const eventSourceStream = new EventSourceStream({ - eventSourceSettings: this.#state, - push: (event) => { - this.dispatchEvent(createFastMessageEvent( - event.type, - event.options - )); - } - }); - pipeline( - response.body.stream, - eventSourceStream, - (error2) => { - if (error2?.aborted === false) { - this.close(); - this.dispatchEvent(new Event("error")); - } - } - ); - }; - this.#controller = fetching(fetchParams); - } - /** - * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#sse-processing-model - * @returns {Promise} - */ - async #reconnect() { - if (this.#readyState === CLOSED) return; - this.#readyState = CONNECTING; - this.dispatchEvent(new Event("error")); - await delay(this.#state.reconnectionTime); - if (this.#readyState !== CONNECTING) return; - if (this.#state.lastEventId.length) { - this.#request.headersList.set("last-event-id", this.#state.lastEventId, true); - } - this.#connect(); - } - /** - * Closes the connection, if any, and sets the readyState attribute to - * CLOSED. - */ - close() { - webidl.brandCheck(this, _EventSource); - if (this.#readyState === CLOSED) return; - this.#readyState = CLOSED; - this.#controller.abort(); - this.#request = null; - } - get onopen() { - return this.#events.open; - } - set onopen(fn) { - if (this.#events.open) { - this.removeEventListener("open", this.#events.open); - } - if (typeof fn === "function") { - this.#events.open = fn; - this.addEventListener("open", fn); - } else { - this.#events.open = null; - } - } - get onmessage() { - return this.#events.message; - } - set onmessage(fn) { - if (this.#events.message) { - this.removeEventListener("message", this.#events.message); - } - if (typeof fn === "function") { - this.#events.message = fn; - this.addEventListener("message", fn); - } else { - this.#events.message = null; - } - } - get onerror() { - return this.#events.error; - } - set onerror(fn) { - if (this.#events.error) { - this.removeEventListener("error", this.#events.error); - } - if (typeof fn === "function") { - this.#events.error = fn; - this.addEventListener("error", fn); - } else { - this.#events.error = null; - } - } - }; - var constantsPropertyDescriptors = { - CONNECTING: { - __proto__: null, - configurable: false, - enumerable: true, - value: CONNECTING, - writable: false - }, - OPEN: { - __proto__: null, - configurable: false, - enumerable: true, - value: OPEN, - writable: false - }, - CLOSED: { - __proto__: null, - configurable: false, - enumerable: true, - value: CLOSED, - writable: false - } - }; - Object.defineProperties(EventSource, constantsPropertyDescriptors); - Object.defineProperties(EventSource.prototype, constantsPropertyDescriptors); - Object.defineProperties(EventSource.prototype, { - close: kEnumerableProperty, - onerror: kEnumerableProperty, - onmessage: kEnumerableProperty, - onopen: kEnumerableProperty, - readyState: kEnumerableProperty, - url: kEnumerableProperty, - withCredentials: kEnumerableProperty - }); - webidl.converters.EventSourceInitDict = webidl.dictionaryConverter([ - { - key: "withCredentials", - converter: webidl.converters.boolean, - defaultValue: () => false - }, - { - key: "dispatcher", - // undici only - converter: webidl.converters.any - } - ]); - module.exports = { - EventSource, - defaultReconnectionTime - }; - } -}); - -// node_modules/.pnpm/undici@6.28.0/node_modules/undici/index.js -var require_undici = __commonJS({ - "node_modules/.pnpm/undici@6.28.0/node_modules/undici/index.js"(exports, module) { - "use strict"; - var Client = require_client(); - var Dispatcher = require_dispatcher(); - var Pool = require_pool(); - var BalancedPool = require_balanced_pool(); - var Agent = require_agent(); - var ProxyAgent2 = require_proxy_agent(); - var EnvHttpProxyAgent = require_env_http_proxy_agent(); - var RetryAgent = require_retry_agent(); - var errors = require_errors(); - var util = require_util(); - var { InvalidArgumentError } = errors; - var api = require_api(); - var buildConnector = require_connect(); - var MockClient = require_mock_client(); - var MockAgent = require_mock_agent(); - var MockPool = require_mock_pool(); - var mockErrors = require_mock_errors(); - var RetryHandler = require_retry_handler(); - var { getGlobalDispatcher, setGlobalDispatcher } = require_global2(); - var DecoratorHandler = require_decorator_handler(); - var RedirectHandler = require_redirect_handler(); - var createRedirectInterceptor = require_redirect_interceptor(); - Object.assign(Dispatcher.prototype, api); - module.exports.Dispatcher = Dispatcher; - module.exports.Client = Client; - module.exports.Pool = Pool; - module.exports.BalancedPool = BalancedPool; - module.exports.Agent = Agent; - module.exports.ProxyAgent = ProxyAgent2; - module.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; - module.exports.RetryAgent = RetryAgent; - module.exports.RetryHandler = RetryHandler; - module.exports.DecoratorHandler = DecoratorHandler; - module.exports.RedirectHandler = RedirectHandler; - module.exports.createRedirectInterceptor = createRedirectInterceptor; - module.exports.interceptors = { - redirect: require_redirect(), - retry: require_retry(), - dump: require_dump(), - dns: require_dns() - }; - module.exports.buildConnector = buildConnector; - module.exports.errors = errors; - module.exports.util = { - parseHeaders: util.parseHeaders, - headerNameToString: util.headerNameToString - }; - function makeDispatcher(fn) { - return (url, opts, handler) => { - if (typeof opts === "function") { - handler = opts; - opts = null; - } - if (!url || typeof url !== "string" && typeof url !== "object" && !(url instanceof URL)) { - throw new InvalidArgumentError("invalid url"); - } - if (opts != null && typeof opts !== "object") { - throw new InvalidArgumentError("invalid opts"); - } - if (opts && opts.path != null) { - if (typeof opts.path !== "string") { - throw new InvalidArgumentError("invalid opts.path"); - } - let path2 = opts.path; - if (!opts.path.startsWith("/")) { - path2 = `/${path2}`; - } - url = new URL(util.parseOrigin(url).origin + path2); - } else { - if (!opts) { - opts = typeof url === "object" ? url : {}; - } - url = util.parseURL(url); - } - const { agent, dispatcher = getGlobalDispatcher() } = opts; - if (agent) { - throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); - } - return fn.call(dispatcher, { - ...opts, - origin: url.origin, - path: url.search ? `${url.pathname}${url.search}` : url.pathname, - method: opts.method || (opts.body ? "PUT" : "GET") - }, handler); - }; - } - module.exports.setGlobalDispatcher = setGlobalDispatcher; - module.exports.getGlobalDispatcher = getGlobalDispatcher; - var fetchImpl = require_fetch().fetch; - module.exports.fetch = async function fetch2(init, options = void 0) { - try { - return await fetchImpl(init, options); - } catch (err) { - if (err && typeof err === "object") { - Error.captureStackTrace(err); - } - throw err; - } - }; - module.exports.Headers = require_headers().Headers; - module.exports.Response = require_response().Response; - module.exports.Request = require_request2().Request; - module.exports.FormData = require_formdata().FormData; - module.exports.File = globalThis.File ?? __require("node:buffer").File; - module.exports.FileReader = require_filereader().FileReader; - var { setGlobalOrigin, getGlobalOrigin } = require_global(); - module.exports.setGlobalOrigin = setGlobalOrigin; - module.exports.getGlobalOrigin = getGlobalOrigin; - var { CacheStorage } = require_cachestorage(); - var { kConstruct } = require_symbols4(); - module.exports.caches = new CacheStorage(kConstruct); - var { deleteCookie, getCookies, getSetCookies, setCookie } = require_cookies(); - module.exports.deleteCookie = deleteCookie; - module.exports.getCookies = getCookies; - module.exports.getSetCookies = getSetCookies; - module.exports.setCookie = setCookie; - var { parseMIMEType, serializeAMimeType } = require_data_url(); - module.exports.parseMIMEType = parseMIMEType; - module.exports.serializeAMimeType = serializeAMimeType; - var { CloseEvent, ErrorEvent, MessageEvent } = require_events(); - module.exports.WebSocket = require_websocket().WebSocket; - module.exports.CloseEvent = CloseEvent; - module.exports.ErrorEvent = ErrorEvent; - module.exports.MessageEvent = MessageEvent; - module.exports.request = makeDispatcher(api.request); - module.exports.stream = makeDispatcher(api.stream); - module.exports.pipeline = makeDispatcher(api.pipeline); - module.exports.connect = makeDispatcher(api.connect); - module.exports.upgrade = makeDispatcher(api.upgrade); - module.exports.MockClient = MockClient; - module.exports.MockPool = MockPool; - module.exports.MockAgent = MockAgent; - module.exports.mockErrors = mockErrors; - var { EventSource } = require_eventsource(); - module.exports.EventSource = EventSource; - } -}); - -// node_modules/.pnpm/emoji-name-map@2.0.3/node_modules/emoji-name-map/lib/datasource.json -var require_datasource = __commonJS({ - "node_modules/.pnpm/emoji-name-map@2.0.3/node_modules/emoji-name-map/lib/datasource.json"(exports, module) { - module.exports = { "100": "\u{1F4AF}", "1234": "\u{1F522}", hash: "#\uFE0F\u20E3", keycap_star: "*\uFE0F\u20E3", zero: "0\uFE0F\u20E3", one: "1\uFE0F\u20E3", two: "2\uFE0F\u20E3", three: "3\uFE0F\u20E3", four: "4\uFE0F\u20E3", five: "5\uFE0F\u20E3", six: "6\uFE0F\u20E3", seven: "7\uFE0F\u20E3", eight: "8\uFE0F\u20E3", nine: "9\uFE0F\u20E3", copyright: "\xA9\uFE0F", registered: "\xAE\uFE0F", mahjong: "\u{1F004}", black_joker: "\u{1F0CF}", a: "\u{1F170}\uFE0F", b: "\u{1F171}\uFE0F", o2: "\u{1F17E}\uFE0F", parking: "\u{1F17F}\uFE0F", ab: "\u{1F18E}", cl: "\u{1F191}", cool: "\u{1F192}", free: "\u{1F193}", id: "\u{1F194}", new: "\u{1F195}", ng: "\u{1F196}", ok: "\u{1F197}", sos: "\u{1F198}", up: "\u{1F199}", vs: "\u{1F19A}", "flag-ac": "\u{1F1E6}\u{1F1E8}", "flag-ad": "\u{1F1E6}\u{1F1E9}", "flag-ae": "\u{1F1E6}\u{1F1EA}", "flag-af": "\u{1F1E6}\u{1F1EB}", "flag-ag": "\u{1F1E6}\u{1F1EC}", "flag-ai": "\u{1F1E6}\u{1F1EE}", "flag-al": "\u{1F1E6}\u{1F1F1}", "flag-am": "\u{1F1E6}\u{1F1F2}", "flag-ao": "\u{1F1E6}\u{1F1F4}", "flag-aq": "\u{1F1E6}\u{1F1F6}", "flag-ar": "\u{1F1E6}\u{1F1F7}", "flag-as": "\u{1F1E6}\u{1F1F8}", "flag-at": "\u{1F1E6}\u{1F1F9}", "flag-au": "\u{1F1E6}\u{1F1FA}", "flag-aw": "\u{1F1E6}\u{1F1FC}", "flag-ax": "\u{1F1E6}\u{1F1FD}", "flag-az": "\u{1F1E6}\u{1F1FF}", "flag-ba": "\u{1F1E7}\u{1F1E6}", "flag-bb": "\u{1F1E7}\u{1F1E7}", "flag-bd": "\u{1F1E7}\u{1F1E9}", "flag-be": "\u{1F1E7}\u{1F1EA}", "flag-bf": "\u{1F1E7}\u{1F1EB}", "flag-bg": "\u{1F1E7}\u{1F1EC}", "flag-bh": "\u{1F1E7}\u{1F1ED}", "flag-bi": "\u{1F1E7}\u{1F1EE}", "flag-bj": "\u{1F1E7}\u{1F1EF}", "flag-bl": "\u{1F1E7}\u{1F1F1}", "flag-bm": "\u{1F1E7}\u{1F1F2}", "flag-bn": "\u{1F1E7}\u{1F1F3}", "flag-bo": "\u{1F1E7}\u{1F1F4}", "flag-bq": "\u{1F1E7}\u{1F1F6}", "flag-br": "\u{1F1E7}\u{1F1F7}", "flag-bs": "\u{1F1E7}\u{1F1F8}", "flag-bt": "\u{1F1E7}\u{1F1F9}", "flag-bv": "\u{1F1E7}\u{1F1FB}", "flag-bw": "\u{1F1E7}\u{1F1FC}", "flag-by": "\u{1F1E7}\u{1F1FE}", "flag-bz": "\u{1F1E7}\u{1F1FF}", "flag-ca": "\u{1F1E8}\u{1F1E6}", "flag-cc": "\u{1F1E8}\u{1F1E8}", "flag-cd": "\u{1F1E8}\u{1F1E9}", "flag-cf": "\u{1F1E8}\u{1F1EB}", "flag-cg": "\u{1F1E8}\u{1F1EC}", "flag-ch": "\u{1F1E8}\u{1F1ED}", "flag-ci": "\u{1F1E8}\u{1F1EE}", "flag-ck": "\u{1F1E8}\u{1F1F0}", "flag-cl": "\u{1F1E8}\u{1F1F1}", "flag-cm": "\u{1F1E8}\u{1F1F2}", cn: "\u{1F1E8}\u{1F1F3}", "flag-co": "\u{1F1E8}\u{1F1F4}", "flag-cp": "\u{1F1E8}\u{1F1F5}", "flag-cr": "\u{1F1E8}\u{1F1F7}", "flag-cu": "\u{1F1E8}\u{1F1FA}", "flag-cv": "\u{1F1E8}\u{1F1FB}", "flag-cw": "\u{1F1E8}\u{1F1FC}", "flag-cx": "\u{1F1E8}\u{1F1FD}", "flag-cy": "\u{1F1E8}\u{1F1FE}", "flag-cz": "\u{1F1E8}\u{1F1FF}", de: "\u{1F1E9}\u{1F1EA}", "flag-dg": "\u{1F1E9}\u{1F1EC}", "flag-dj": "\u{1F1E9}\u{1F1EF}", "flag-dk": "\u{1F1E9}\u{1F1F0}", "flag-dm": "\u{1F1E9}\u{1F1F2}", "flag-do": "\u{1F1E9}\u{1F1F4}", "flag-dz": "\u{1F1E9}\u{1F1FF}", "flag-ea": "\u{1F1EA}\u{1F1E6}", "flag-ec": "\u{1F1EA}\u{1F1E8}", "flag-ee": "\u{1F1EA}\u{1F1EA}", "flag-eg": "\u{1F1EA}\u{1F1EC}", "flag-eh": "\u{1F1EA}\u{1F1ED}", "flag-er": "\u{1F1EA}\u{1F1F7}", es: "\u{1F1EA}\u{1F1F8}", "flag-et": "\u{1F1EA}\u{1F1F9}", "flag-eu": "\u{1F1EA}\u{1F1FA}", "flag-fi": "\u{1F1EB}\u{1F1EE}", "flag-fj": "\u{1F1EB}\u{1F1EF}", "flag-fk": "\u{1F1EB}\u{1F1F0}", "flag-fm": "\u{1F1EB}\u{1F1F2}", "flag-fo": "\u{1F1EB}\u{1F1F4}", fr: "\u{1F1EB}\u{1F1F7}", "flag-ga": "\u{1F1EC}\u{1F1E6}", gb: "\u{1F1EC}\u{1F1E7}", "flag-gd": "\u{1F1EC}\u{1F1E9}", "flag-ge": "\u{1F1EC}\u{1F1EA}", "flag-gf": "\u{1F1EC}\u{1F1EB}", "flag-gg": "\u{1F1EC}\u{1F1EC}", "flag-gh": "\u{1F1EC}\u{1F1ED}", "flag-gi": "\u{1F1EC}\u{1F1EE}", "flag-gl": "\u{1F1EC}\u{1F1F1}", "flag-gm": "\u{1F1EC}\u{1F1F2}", "flag-gn": "\u{1F1EC}\u{1F1F3}", "flag-gp": "\u{1F1EC}\u{1F1F5}", "flag-gq": "\u{1F1EC}\u{1F1F6}", "flag-gr": "\u{1F1EC}\u{1F1F7}", "flag-gs": "\u{1F1EC}\u{1F1F8}", "flag-gt": "\u{1F1EC}\u{1F1F9}", "flag-gu": "\u{1F1EC}\u{1F1FA}", "flag-gw": "\u{1F1EC}\u{1F1FC}", "flag-gy": "\u{1F1EC}\u{1F1FE}", "flag-hk": "\u{1F1ED}\u{1F1F0}", "flag-hm": "\u{1F1ED}\u{1F1F2}", "flag-hn": "\u{1F1ED}\u{1F1F3}", "flag-hr": "\u{1F1ED}\u{1F1F7}", "flag-ht": "\u{1F1ED}\u{1F1F9}", "flag-hu": "\u{1F1ED}\u{1F1FA}", "flag-ic": "\u{1F1EE}\u{1F1E8}", "flag-id": "\u{1F1EE}\u{1F1E9}", "flag-ie": "\u{1F1EE}\u{1F1EA}", "flag-il": "\u{1F1EE}\u{1F1F1}", "flag-im": "\u{1F1EE}\u{1F1F2}", "flag-in": "\u{1F1EE}\u{1F1F3}", "flag-io": "\u{1F1EE}\u{1F1F4}", "flag-iq": "\u{1F1EE}\u{1F1F6}", "flag-ir": "\u{1F1EE}\u{1F1F7}", "flag-is": "\u{1F1EE}\u{1F1F8}", it: "\u{1F1EE}\u{1F1F9}", "flag-je": "\u{1F1EF}\u{1F1EA}", "flag-jm": "\u{1F1EF}\u{1F1F2}", "flag-jo": "\u{1F1EF}\u{1F1F4}", jp: "\u{1F1EF}\u{1F1F5}", "flag-ke": "\u{1F1F0}\u{1F1EA}", "flag-kg": "\u{1F1F0}\u{1F1EC}", "flag-kh": "\u{1F1F0}\u{1F1ED}", "flag-ki": "\u{1F1F0}\u{1F1EE}", "flag-km": "\u{1F1F0}\u{1F1F2}", "flag-kn": "\u{1F1F0}\u{1F1F3}", "flag-kp": "\u{1F1F0}\u{1F1F5}", kr: "\u{1F1F0}\u{1F1F7}", "flag-kw": "\u{1F1F0}\u{1F1FC}", "flag-ky": "\u{1F1F0}\u{1F1FE}", "flag-kz": "\u{1F1F0}\u{1F1FF}", "flag-la": "\u{1F1F1}\u{1F1E6}", "flag-lb": "\u{1F1F1}\u{1F1E7}", "flag-lc": "\u{1F1F1}\u{1F1E8}", "flag-li": "\u{1F1F1}\u{1F1EE}", "flag-lk": "\u{1F1F1}\u{1F1F0}", "flag-lr": "\u{1F1F1}\u{1F1F7}", "flag-ls": "\u{1F1F1}\u{1F1F8}", "flag-lt": "\u{1F1F1}\u{1F1F9}", "flag-lu": "\u{1F1F1}\u{1F1FA}", "flag-lv": "\u{1F1F1}\u{1F1FB}", "flag-ly": "\u{1F1F1}\u{1F1FE}", "flag-ma": "\u{1F1F2}\u{1F1E6}", "flag-mc": "\u{1F1F2}\u{1F1E8}", "flag-md": "\u{1F1F2}\u{1F1E9}", "flag-me": "\u{1F1F2}\u{1F1EA}", "flag-mf": "\u{1F1F2}\u{1F1EB}", "flag-mg": "\u{1F1F2}\u{1F1EC}", "flag-mh": "\u{1F1F2}\u{1F1ED}", "flag-mk": "\u{1F1F2}\u{1F1F0}", "flag-ml": "\u{1F1F2}\u{1F1F1}", "flag-mm": "\u{1F1F2}\u{1F1F2}", "flag-mn": "\u{1F1F2}\u{1F1F3}", "flag-mo": "\u{1F1F2}\u{1F1F4}", "flag-mp": "\u{1F1F2}\u{1F1F5}", "flag-mq": "\u{1F1F2}\u{1F1F6}", "flag-mr": "\u{1F1F2}\u{1F1F7}", "flag-ms": "\u{1F1F2}\u{1F1F8}", "flag-mt": "\u{1F1F2}\u{1F1F9}", "flag-mu": "\u{1F1F2}\u{1F1FA}", "flag-mv": "\u{1F1F2}\u{1F1FB}", "flag-mw": "\u{1F1F2}\u{1F1FC}", "flag-mx": "\u{1F1F2}\u{1F1FD}", "flag-my": "\u{1F1F2}\u{1F1FE}", "flag-mz": "\u{1F1F2}\u{1F1FF}", "flag-na": "\u{1F1F3}\u{1F1E6}", "flag-nc": "\u{1F1F3}\u{1F1E8}", "flag-ne": "\u{1F1F3}\u{1F1EA}", "flag-nf": "\u{1F1F3}\u{1F1EB}", "flag-ng": "\u{1F1F3}\u{1F1EC}", "flag-ni": "\u{1F1F3}\u{1F1EE}", "flag-nl": "\u{1F1F3}\u{1F1F1}", "flag-no": "\u{1F1F3}\u{1F1F4}", "flag-np": "\u{1F1F3}\u{1F1F5}", "flag-nr": "\u{1F1F3}\u{1F1F7}", "flag-nu": "\u{1F1F3}\u{1F1FA}", "flag-nz": "\u{1F1F3}\u{1F1FF}", "flag-om": "\u{1F1F4}\u{1F1F2}", "flag-pa": "\u{1F1F5}\u{1F1E6}", "flag-pe": "\u{1F1F5}\u{1F1EA}", "flag-pf": "\u{1F1F5}\u{1F1EB}", "flag-pg": "\u{1F1F5}\u{1F1EC}", "flag-ph": "\u{1F1F5}\u{1F1ED}", "flag-pk": "\u{1F1F5}\u{1F1F0}", "flag-pl": "\u{1F1F5}\u{1F1F1}", "flag-pm": "\u{1F1F5}\u{1F1F2}", "flag-pn": "\u{1F1F5}\u{1F1F3}", "flag-pr": "\u{1F1F5}\u{1F1F7}", "flag-ps": "\u{1F1F5}\u{1F1F8}", "flag-pt": "\u{1F1F5}\u{1F1F9}", "flag-pw": "\u{1F1F5}\u{1F1FC}", "flag-py": "\u{1F1F5}\u{1F1FE}", "flag-qa": "\u{1F1F6}\u{1F1E6}", "flag-re": "\u{1F1F7}\u{1F1EA}", "flag-ro": "\u{1F1F7}\u{1F1F4}", "flag-rs": "\u{1F1F7}\u{1F1F8}", ru: "\u{1F1F7}\u{1F1FA}", "flag-rw": "\u{1F1F7}\u{1F1FC}", "flag-sa": "\u{1F1F8}\u{1F1E6}", "flag-sb": "\u{1F1F8}\u{1F1E7}", "flag-sc": "\u{1F1F8}\u{1F1E8}", "flag-sd": "\u{1F1F8}\u{1F1E9}", "flag-se": "\u{1F1F8}\u{1F1EA}", "flag-sg": "\u{1F1F8}\u{1F1EC}", "flag-sh": "\u{1F1F8}\u{1F1ED}", "flag-si": "\u{1F1F8}\u{1F1EE}", "flag-sj": "\u{1F1F8}\u{1F1EF}", "flag-sk": "\u{1F1F8}\u{1F1F0}", "flag-sl": "\u{1F1F8}\u{1F1F1}", "flag-sm": "\u{1F1F8}\u{1F1F2}", "flag-sn": "\u{1F1F8}\u{1F1F3}", "flag-so": "\u{1F1F8}\u{1F1F4}", "flag-sr": "\u{1F1F8}\u{1F1F7}", "flag-ss": "\u{1F1F8}\u{1F1F8}", "flag-st": "\u{1F1F8}\u{1F1F9}", "flag-sv": "\u{1F1F8}\u{1F1FB}", "flag-sx": "\u{1F1F8}\u{1F1FD}", "flag-sy": "\u{1F1F8}\u{1F1FE}", "flag-sz": "\u{1F1F8}\u{1F1FF}", "flag-ta": "\u{1F1F9}\u{1F1E6}", "flag-tc": "\u{1F1F9}\u{1F1E8}", "flag-td": "\u{1F1F9}\u{1F1E9}", "flag-tf": "\u{1F1F9}\u{1F1EB}", "flag-tg": "\u{1F1F9}\u{1F1EC}", "flag-th": "\u{1F1F9}\u{1F1ED}", "flag-tj": "\u{1F1F9}\u{1F1EF}", "flag-tk": "\u{1F1F9}\u{1F1F0}", "flag-tl": "\u{1F1F9}\u{1F1F1}", "flag-tm": "\u{1F1F9}\u{1F1F2}", "flag-tn": "\u{1F1F9}\u{1F1F3}", "flag-to": "\u{1F1F9}\u{1F1F4}", "flag-tr": "\u{1F1F9}\u{1F1F7}", "flag-tt": "\u{1F1F9}\u{1F1F9}", "flag-tv": "\u{1F1F9}\u{1F1FB}", "flag-tw": "\u{1F1F9}\u{1F1FC}", "flag-tz": "\u{1F1F9}\u{1F1FF}", "flag-ua": "\u{1F1FA}\u{1F1E6}", "flag-ug": "\u{1F1FA}\u{1F1EC}", "flag-um": "\u{1F1FA}\u{1F1F2}", "flag-un": "\u{1F1FA}\u{1F1F3}", us: "\u{1F1FA}\u{1F1F8}", "flag-uy": "\u{1F1FA}\u{1F1FE}", "flag-uz": "\u{1F1FA}\u{1F1FF}", "flag-va": "\u{1F1FB}\u{1F1E6}", "flag-vc": "\u{1F1FB}\u{1F1E8}", "flag-ve": "\u{1F1FB}\u{1F1EA}", "flag-vg": "\u{1F1FB}\u{1F1EC}", "flag-vi": "\u{1F1FB}\u{1F1EE}", "flag-vn": "\u{1F1FB}\u{1F1F3}", "flag-vu": "\u{1F1FB}\u{1F1FA}", "flag-wf": "\u{1F1FC}\u{1F1EB}", "flag-ws": "\u{1F1FC}\u{1F1F8}", "flag-xk": "\u{1F1FD}\u{1F1F0}", "flag-ye": "\u{1F1FE}\u{1F1EA}", "flag-yt": "\u{1F1FE}\u{1F1F9}", "flag-za": "\u{1F1FF}\u{1F1E6}", "flag-zm": "\u{1F1FF}\u{1F1F2}", "flag-zw": "\u{1F1FF}\u{1F1FC}", koko: "\u{1F201}", sa: "\u{1F202}\uFE0F", u7121: "\u{1F21A}", u6307: "\u{1F22F}", u7981: "\u{1F232}", u7a7a: "\u{1F233}", u5408: "\u{1F234}", u6e80: "\u{1F235}", u6709: "\u{1F236}", u6708: "\u{1F237}\uFE0F", u7533: "\u{1F238}", u5272: "\u{1F239}", u55b6: "\u{1F23A}", ideograph_advantage: "\u{1F250}", accept: "\u{1F251}", cyclone: "\u{1F300}", foggy: "\u{1F301}", closed_umbrella: "\u{1F302}", night_with_stars: "\u{1F303}", sunrise_over_mountains: "\u{1F304}", sunrise: "\u{1F305}", city_sunset: "\u{1F306}", city_sunrise: "\u{1F307}", rainbow: "\u{1F308}", bridge_at_night: "\u{1F309}", ocean: "\u{1F30A}", volcano: "\u{1F30B}", milky_way: "\u{1F30C}", earth_africa: "\u{1F30D}", earth_americas: "\u{1F30E}", earth_asia: "\u{1F30F}", globe_with_meridians: "\u{1F310}", new_moon: "\u{1F311}", waxing_crescent_moon: "\u{1F312}", first_quarter_moon: "\u{1F313}", moon: "\u{1F314}", full_moon: "\u{1F315}", waning_gibbous_moon: "\u{1F316}", last_quarter_moon: "\u{1F317}", waning_crescent_moon: "\u{1F318}", crescent_moon: "\u{1F319}", new_moon_with_face: "\u{1F31A}", first_quarter_moon_with_face: "\u{1F31B}", last_quarter_moon_with_face: "\u{1F31C}", full_moon_with_face: "\u{1F31D}", sun_with_face: "\u{1F31E}", star2: "\u{1F31F}", stars: "\u{1F320}", thermometer: "\u{1F321}\uFE0F", mostly_sunny: "\u{1F324}\uFE0F", barely_sunny: "\u{1F325}\uFE0F", partly_sunny_rain: "\u{1F326}\uFE0F", rain_cloud: "\u{1F327}\uFE0F", snow_cloud: "\u{1F328}\uFE0F", lightning: "\u{1F329}\uFE0F", tornado: "\u{1F32A}\uFE0F", fog: "\u{1F32B}\uFE0F", wind_blowing_face: "\u{1F32C}\uFE0F", hotdog: "\u{1F32D}", taco: "\u{1F32E}", burrito: "\u{1F32F}", chestnut: "\u{1F330}", seedling: "\u{1F331}", evergreen_tree: "\u{1F332}", deciduous_tree: "\u{1F333}", palm_tree: "\u{1F334}", cactus: "\u{1F335}", hot_pepper: "\u{1F336}\uFE0F", tulip: "\u{1F337}", cherry_blossom: "\u{1F338}", rose: "\u{1F339}", hibiscus: "\u{1F33A}", sunflower: "\u{1F33B}", blossom: "\u{1F33C}", corn: "\u{1F33D}", ear_of_rice: "\u{1F33E}", herb: "\u{1F33F}", four_leaf_clover: "\u{1F340}", maple_leaf: "\u{1F341}", fallen_leaf: "\u{1F342}", leaves: "\u{1F343}", mushroom: "\u{1F344}", tomato: "\u{1F345}", eggplant: "\u{1F346}", grapes: "\u{1F347}", melon: "\u{1F348}", watermelon: "\u{1F349}", tangerine: "\u{1F34A}", lemon: "\u{1F34B}", banana: "\u{1F34C}", pineapple: "\u{1F34D}", apple: "\u{1F34E}", green_apple: "\u{1F34F}", pear: "\u{1F350}", peach: "\u{1F351}", cherries: "\u{1F352}", strawberry: "\u{1F353}", hamburger: "\u{1F354}", pizza: "\u{1F355}", meat_on_bone: "\u{1F356}", poultry_leg: "\u{1F357}", rice_cracker: "\u{1F358}", rice_ball: "\u{1F359}", rice: "\u{1F35A}", curry: "\u{1F35B}", ramen: "\u{1F35C}", spaghetti: "\u{1F35D}", bread: "\u{1F35E}", fries: "\u{1F35F}", sweet_potato: "\u{1F360}", dango: "\u{1F361}", oden: "\u{1F362}", sushi: "\u{1F363}", fried_shrimp: "\u{1F364}", fish_cake: "\u{1F365}", icecream: "\u{1F366}", shaved_ice: "\u{1F367}", ice_cream: "\u{1F368}", doughnut: "\u{1F369}", cookie: "\u{1F36A}", chocolate_bar: "\u{1F36B}", candy: "\u{1F36C}", lollipop: "\u{1F36D}", custard: "\u{1F36E}", honey_pot: "\u{1F36F}", cake: "\u{1F370}", bento: "\u{1F371}", stew: "\u{1F372}", fried_egg: "\u{1F373}", fork_and_knife: "\u{1F374}", tea: "\u{1F375}", sake: "\u{1F376}", wine_glass: "\u{1F377}", cocktail: "\u{1F378}", tropical_drink: "\u{1F379}", beer: "\u{1F37A}", beers: "\u{1F37B}", baby_bottle: "\u{1F37C}", knife_fork_plate: "\u{1F37D}\uFE0F", champagne: "\u{1F37E}", popcorn: "\u{1F37F}", ribbon: "\u{1F380}", gift: "\u{1F381}", birthday: "\u{1F382}", jack_o_lantern: "\u{1F383}", christmas_tree: "\u{1F384}", santa: "\u{1F385}", fireworks: "\u{1F386}", sparkler: "\u{1F387}", balloon: "\u{1F388}", tada: "\u{1F389}", confetti_ball: "\u{1F38A}", tanabata_tree: "\u{1F38B}", crossed_flags: "\u{1F38C}", bamboo: "\u{1F38D}", dolls: "\u{1F38E}", flags: "\u{1F38F}", wind_chime: "\u{1F390}", rice_scene: "\u{1F391}", school_satchel: "\u{1F392}", mortar_board: "\u{1F393}", medal: "\u{1F396}\uFE0F", reminder_ribbon: "\u{1F397}\uFE0F", studio_microphone: "\u{1F399}\uFE0F", level_slider: "\u{1F39A}\uFE0F", control_knobs: "\u{1F39B}\uFE0F", film_frames: "\u{1F39E}\uFE0F", admission_tickets: "\u{1F39F}\uFE0F", carousel_horse: "\u{1F3A0}", ferris_wheel: "\u{1F3A1}", roller_coaster: "\u{1F3A2}", fishing_pole_and_fish: "\u{1F3A3}", microphone: "\u{1F3A4}", movie_camera: "\u{1F3A5}", cinema: "\u{1F3A6}", headphones: "\u{1F3A7}", art: "\u{1F3A8}", tophat: "\u{1F3A9}", circus_tent: "\u{1F3AA}", ticket: "\u{1F3AB}", clapper: "\u{1F3AC}", performing_arts: "\u{1F3AD}", video_game: "\u{1F3AE}", dart: "\u{1F3AF}", slot_machine: "\u{1F3B0}", "8ball": "\u{1F3B1}", game_die: "\u{1F3B2}", bowling: "\u{1F3B3}", flower_playing_cards: "\u{1F3B4}", musical_note: "\u{1F3B5}", notes: "\u{1F3B6}", saxophone: "\u{1F3B7}", guitar: "\u{1F3B8}", musical_keyboard: "\u{1F3B9}", trumpet: "\u{1F3BA}", violin: "\u{1F3BB}", musical_score: "\u{1F3BC}", running_shirt_with_sash: "\u{1F3BD}", tennis: "\u{1F3BE}", ski: "\u{1F3BF}", basketball: "\u{1F3C0}", checkered_flag: "\u{1F3C1}", snowboarder: "\u{1F3C2}", "woman-running": "\u{1F3C3}\u200D\u2640\uFE0F", "man-running": "\u{1F3C3}\u200D\u2642\uFE0F", runner: "\u{1F3C3}", "woman-surfing": "\u{1F3C4}\u200D\u2640\uFE0F", "man-surfing": "\u{1F3C4}\u200D\u2642\uFE0F", surfer: "\u{1F3C4}", sports_medal: "\u{1F3C5}", trophy: "\u{1F3C6}", horse_racing: "\u{1F3C7}", football: "\u{1F3C8}", rugby_football: "\u{1F3C9}", "woman-swimming": "\u{1F3CA}\u200D\u2640\uFE0F", "man-swimming": "\u{1F3CA}\u200D\u2642\uFE0F", swimmer: "\u{1F3CA}", "woman-lifting-weights": "\u{1F3CB}\uFE0F\u200D\u2640\uFE0F", "man-lifting-weights": "\u{1F3CB}\uFE0F\u200D\u2642\uFE0F", weight_lifter: "\u{1F3CB}\uFE0F", "woman-golfing": "\u{1F3CC}\uFE0F\u200D\u2640\uFE0F", "man-golfing": "\u{1F3CC}\uFE0F\u200D\u2642\uFE0F", golfer: "\u{1F3CC}\uFE0F", racing_motorcycle: "\u{1F3CD}\uFE0F", racing_car: "\u{1F3CE}\uFE0F", cricket_bat_and_ball: "\u{1F3CF}", volleyball: "\u{1F3D0}", field_hockey_stick_and_ball: "\u{1F3D1}", ice_hockey_stick_and_puck: "\u{1F3D2}", table_tennis_paddle_and_ball: "\u{1F3D3}", snow_capped_mountain: "\u{1F3D4}\uFE0F", camping: "\u{1F3D5}\uFE0F", beach_with_umbrella: "\u{1F3D6}\uFE0F", building_construction: "\u{1F3D7}\uFE0F", house_buildings: "\u{1F3D8}\uFE0F", cityscape: "\u{1F3D9}\uFE0F", derelict_house_building: "\u{1F3DA}\uFE0F", classical_building: "\u{1F3DB}\uFE0F", desert: "\u{1F3DC}\uFE0F", desert_island: "\u{1F3DD}\uFE0F", national_park: "\u{1F3DE}\uFE0F", stadium: "\u{1F3DF}\uFE0F", house: "\u{1F3E0}", house_with_garden: "\u{1F3E1}", office: "\u{1F3E2}", post_office: "\u{1F3E3}", european_post_office: "\u{1F3E4}", hospital: "\u{1F3E5}", bank: "\u{1F3E6}", atm: "\u{1F3E7}", hotel: "\u{1F3E8}", love_hotel: "\u{1F3E9}", convenience_store: "\u{1F3EA}", school: "\u{1F3EB}", department_store: "\u{1F3EC}", factory: "\u{1F3ED}", izakaya_lantern: "\u{1F3EE}", japanese_castle: "\u{1F3EF}", european_castle: "\u{1F3F0}", "rainbow-flag": "\u{1F3F3}\uFE0F\u200D\u{1F308}", transgender_flag: "\u{1F3F3}\uFE0F\u200D\u26A7\uFE0F", waving_white_flag: "\u{1F3F3}\uFE0F", pirate_flag: "\u{1F3F4}\u200D\u2620\uFE0F", "flag-england": "\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}", "flag-scotland": "\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}", "flag-wales": "\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}", waving_black_flag: "\u{1F3F4}", rosette: "\u{1F3F5}\uFE0F", label: "\u{1F3F7}\uFE0F", badminton_racquet_and_shuttlecock: "\u{1F3F8}", bow_and_arrow: "\u{1F3F9}", amphora: "\u{1F3FA}", "skin-tone-2": "\u{1F3FB}", "skin-tone-3": "\u{1F3FC}", "skin-tone-4": "\u{1F3FD}", "skin-tone-5": "\u{1F3FE}", "skin-tone-6": "\u{1F3FF}", rat: "\u{1F400}", mouse2: "\u{1F401}", ox: "\u{1F402}", water_buffalo: "\u{1F403}", cow2: "\u{1F404}", tiger2: "\u{1F405}", leopard: "\u{1F406}", rabbit2: "\u{1F407}", black_cat: "\u{1F408}\u200D\u2B1B", cat2: "\u{1F408}", dragon: "\u{1F409}", crocodile: "\u{1F40A}", whale2: "\u{1F40B}", snail: "\u{1F40C}", snake: "\u{1F40D}", racehorse: "\u{1F40E}", ram: "\u{1F40F}", goat: "\u{1F410}", sheep: "\u{1F411}", monkey: "\u{1F412}", rooster: "\u{1F413}", chicken: "\u{1F414}", service_dog: "\u{1F415}\u200D\u{1F9BA}", dog2: "\u{1F415}", pig2: "\u{1F416}", boar: "\u{1F417}", elephant: "\u{1F418}", octopus: "\u{1F419}", shell: "\u{1F41A}", bug: "\u{1F41B}", ant: "\u{1F41C}", bee: "\u{1F41D}", ladybug: "\u{1F41E}", fish: "\u{1F41F}", tropical_fish: "\u{1F420}", blowfish: "\u{1F421}", turtle: "\u{1F422}", hatching_chick: "\u{1F423}", baby_chick: "\u{1F424}", hatched_chick: "\u{1F425}", bird: "\u{1F426}", penguin: "\u{1F427}", koala: "\u{1F428}", poodle: "\u{1F429}", dromedary_camel: "\u{1F42A}", camel: "\u{1F42B}", dolphin: "\u{1F42C}", mouse: "\u{1F42D}", cow: "\u{1F42E}", tiger: "\u{1F42F}", rabbit: "\u{1F430}", cat: "\u{1F431}", dragon_face: "\u{1F432}", whale: "\u{1F433}", horse: "\u{1F434}", monkey_face: "\u{1F435}", dog: "\u{1F436}", pig: "\u{1F437}", frog: "\u{1F438}", hamster: "\u{1F439}", wolf: "\u{1F43A}", polar_bear: "\u{1F43B}\u200D\u2744\uFE0F", bear: "\u{1F43B}", panda_face: "\u{1F43C}", pig_nose: "\u{1F43D}", feet: "\u{1F43E}", chipmunk: "\u{1F43F}\uFE0F", eyes: "\u{1F440}", "eye-in-speech-bubble": "\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F", eye: "\u{1F441}\uFE0F", ear: "\u{1F442}", nose: "\u{1F443}", lips: "\u{1F444}", tongue: "\u{1F445}", point_up_2: "\u{1F446}", point_down: "\u{1F447}", point_left: "\u{1F448}", point_right: "\u{1F449}", facepunch: "\u{1F44A}", wave: "\u{1F44B}", ok_hand: "\u{1F44C}", "+1": "\u{1F44D}", "-1": "\u{1F44E}", clap: "\u{1F44F}", open_hands: "\u{1F450}", crown: "\u{1F451}", womans_hat: "\u{1F452}", eyeglasses: "\u{1F453}", necktie: "\u{1F454}", shirt: "\u{1F455}", jeans: "\u{1F456}", dress: "\u{1F457}", kimono: "\u{1F458}", bikini: "\u{1F459}", womans_clothes: "\u{1F45A}", purse: "\u{1F45B}", handbag: "\u{1F45C}", pouch: "\u{1F45D}", mans_shoe: "\u{1F45E}", athletic_shoe: "\u{1F45F}", high_heel: "\u{1F460}", sandal: "\u{1F461}", boot: "\u{1F462}", footprints: "\u{1F463}", bust_in_silhouette: "\u{1F464}", busts_in_silhouette: "\u{1F465}", boy: "\u{1F466}", girl: "\u{1F467}", "male-farmer": "\u{1F468}\u200D\u{1F33E}", "male-cook": "\u{1F468}\u200D\u{1F373}", man_feeding_baby: "\u{1F468}\u200D\u{1F37C}", "male-student": "\u{1F468}\u200D\u{1F393}", "male-singer": "\u{1F468}\u200D\u{1F3A4}", "male-artist": "\u{1F468}\u200D\u{1F3A8}", "male-teacher": "\u{1F468}\u200D\u{1F3EB}", "male-factory-worker": "\u{1F468}\u200D\u{1F3ED}", "man-boy-boy": "\u{1F468}\u200D\u{1F466}\u200D\u{1F466}", "man-boy": "\u{1F468}\u200D\u{1F466}", "man-girl-boy": "\u{1F468}\u200D\u{1F467}\u200D\u{1F466}", "man-girl-girl": "\u{1F468}\u200D\u{1F467}\u200D\u{1F467}", "man-girl": "\u{1F468}\u200D\u{1F467}", "man-man-boy": "\u{1F468}\u200D\u{1F468}\u200D\u{1F466}", "man-man-boy-boy": "\u{1F468}\u200D\u{1F468}\u200D\u{1F466}\u200D\u{1F466}", "man-man-girl": "\u{1F468}\u200D\u{1F468}\u200D\u{1F467}", "man-man-girl-boy": "\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F466}", "man-man-girl-girl": "\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F467}", "man-woman-boy": "\u{1F468}\u200D\u{1F469}\u200D\u{1F466}", "man-woman-boy-boy": "\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}", "man-woman-girl": "\u{1F468}\u200D\u{1F469}\u200D\u{1F467}", "man-woman-girl-boy": "\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}", "man-woman-girl-girl": "\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}", "male-technologist": "\u{1F468}\u200D\u{1F4BB}", "male-office-worker": "\u{1F468}\u200D\u{1F4BC}", "male-mechanic": "\u{1F468}\u200D\u{1F527}", "male-scientist": "\u{1F468}\u200D\u{1F52C}", "male-astronaut": "\u{1F468}\u200D\u{1F680}", "male-firefighter": "\u{1F468}\u200D\u{1F692}", man_with_probing_cane: "\u{1F468}\u200D\u{1F9AF}", red_haired_man: "\u{1F468}\u200D\u{1F9B0}", curly_haired_man: "\u{1F468}\u200D\u{1F9B1}", bald_man: "\u{1F468}\u200D\u{1F9B2}", white_haired_man: "\u{1F468}\u200D\u{1F9B3}", man_in_motorized_wheelchair: "\u{1F468}\u200D\u{1F9BC}", man_in_manual_wheelchair: "\u{1F468}\u200D\u{1F9BD}", "male-doctor": "\u{1F468}\u200D\u2695\uFE0F", "male-judge": "\u{1F468}\u200D\u2696\uFE0F", "male-pilot": "\u{1F468}\u200D\u2708\uFE0F", "man-heart-man": "\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}", "man-kiss-man": "\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}", man: "\u{1F468}", "female-farmer": "\u{1F469}\u200D\u{1F33E}", "female-cook": "\u{1F469}\u200D\u{1F373}", woman_feeding_baby: "\u{1F469}\u200D\u{1F37C}", "female-student": "\u{1F469}\u200D\u{1F393}", "female-singer": "\u{1F469}\u200D\u{1F3A4}", "female-artist": "\u{1F469}\u200D\u{1F3A8}", "female-teacher": "\u{1F469}\u200D\u{1F3EB}", "female-factory-worker": "\u{1F469}\u200D\u{1F3ED}", "woman-boy-boy": "\u{1F469}\u200D\u{1F466}\u200D\u{1F466}", "woman-boy": "\u{1F469}\u200D\u{1F466}", "woman-girl-boy": "\u{1F469}\u200D\u{1F467}\u200D\u{1F466}", "woman-girl-girl": "\u{1F469}\u200D\u{1F467}\u200D\u{1F467}", "woman-girl": "\u{1F469}\u200D\u{1F467}", "woman-woman-boy": "\u{1F469}\u200D\u{1F469}\u200D\u{1F466}", "woman-woman-boy-boy": "\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}", "woman-woman-girl": "\u{1F469}\u200D\u{1F469}\u200D\u{1F467}", "woman-woman-girl-boy": "\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}", "woman-woman-girl-girl": "\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}", "female-technologist": "\u{1F469}\u200D\u{1F4BB}", "female-office-worker": "\u{1F469}\u200D\u{1F4BC}", "female-mechanic": "\u{1F469}\u200D\u{1F527}", "female-scientist": "\u{1F469}\u200D\u{1F52C}", "female-astronaut": "\u{1F469}\u200D\u{1F680}", "female-firefighter": "\u{1F469}\u200D\u{1F692}", woman_with_probing_cane: "\u{1F469}\u200D\u{1F9AF}", red_haired_woman: "\u{1F469}\u200D\u{1F9B0}", curly_haired_woman: "\u{1F469}\u200D\u{1F9B1}", bald_woman: "\u{1F469}\u200D\u{1F9B2}", white_haired_woman: "\u{1F469}\u200D\u{1F9B3}", woman_in_motorized_wheelchair: "\u{1F469}\u200D\u{1F9BC}", woman_in_manual_wheelchair: "\u{1F469}\u200D\u{1F9BD}", "female-doctor": "\u{1F469}\u200D\u2695\uFE0F", "female-judge": "\u{1F469}\u200D\u2696\uFE0F", "female-pilot": "\u{1F469}\u200D\u2708\uFE0F", "woman-heart-man": "\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}", "woman-heart-woman": "\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}", "woman-kiss-man": "\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}", "woman-kiss-woman": "\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}", woman: "\u{1F469}", family: "\u{1F46A}", man_and_woman_holding_hands: "\u{1F46B}", two_men_holding_hands: "\u{1F46C}", two_women_holding_hands: "\u{1F46D}", "female-police-officer": "\u{1F46E}\u200D\u2640\uFE0F", "male-police-officer": "\u{1F46E}\u200D\u2642\uFE0F", cop: "\u{1F46E}", "women-with-bunny-ears-partying": "\u{1F46F}\u200D\u2640\uFE0F", "men-with-bunny-ears-partying": "\u{1F46F}\u200D\u2642\uFE0F", dancers: "\u{1F46F}", woman_with_veil: "\u{1F470}\u200D\u2640\uFE0F", man_with_veil: "\u{1F470}\u200D\u2642\uFE0F", bride_with_veil: "\u{1F470}", "blond-haired-woman": "\u{1F471}\u200D\u2640\uFE0F", "blond-haired-man": "\u{1F471}\u200D\u2642\uFE0F", person_with_blond_hair: "\u{1F471}", man_with_gua_pi_mao: "\u{1F472}", "woman-wearing-turban": "\u{1F473}\u200D\u2640\uFE0F", "man-wearing-turban": "\u{1F473}\u200D\u2642\uFE0F", man_with_turban: "\u{1F473}", older_man: "\u{1F474}", older_woman: "\u{1F475}", baby: "\u{1F476}", "female-construction-worker": "\u{1F477}\u200D\u2640\uFE0F", "male-construction-worker": "\u{1F477}\u200D\u2642\uFE0F", construction_worker: "\u{1F477}", princess: "\u{1F478}", japanese_ogre: "\u{1F479}", japanese_goblin: "\u{1F47A}", ghost: "\u{1F47B}", angel: "\u{1F47C}", alien: "\u{1F47D}", space_invader: "\u{1F47E}", imp: "\u{1F47F}", skull: "\u{1F480}", "woman-tipping-hand": "\u{1F481}\u200D\u2640\uFE0F", "man-tipping-hand": "\u{1F481}\u200D\u2642\uFE0F", information_desk_person: "\u{1F481}", "female-guard": "\u{1F482}\u200D\u2640\uFE0F", "male-guard": "\u{1F482}\u200D\u2642\uFE0F", guardsman: "\u{1F482}", dancer: "\u{1F483}", lipstick: "\u{1F484}", nail_care: "\u{1F485}", "woman-getting-massage": "\u{1F486}\u200D\u2640\uFE0F", "man-getting-massage": "\u{1F486}\u200D\u2642\uFE0F", massage: "\u{1F486}", "woman-getting-haircut": "\u{1F487}\u200D\u2640\uFE0F", "man-getting-haircut": "\u{1F487}\u200D\u2642\uFE0F", haircut: "\u{1F487}", barber: "\u{1F488}", syringe: "\u{1F489}", pill: "\u{1F48A}", kiss: "\u{1F48B}", love_letter: "\u{1F48C}", ring: "\u{1F48D}", gem: "\u{1F48E}", couplekiss: "\u{1F48F}", bouquet: "\u{1F490}", couple_with_heart: "\u{1F491}", wedding: "\u{1F492}", heartbeat: "\u{1F493}", broken_heart: "\u{1F494}", two_hearts: "\u{1F495}", sparkling_heart: "\u{1F496}", heartpulse: "\u{1F497}", cupid: "\u{1F498}", blue_heart: "\u{1F499}", green_heart: "\u{1F49A}", yellow_heart: "\u{1F49B}", purple_heart: "\u{1F49C}", gift_heart: "\u{1F49D}", revolving_hearts: "\u{1F49E}", heart_decoration: "\u{1F49F}", diamond_shape_with_a_dot_inside: "\u{1F4A0}", bulb: "\u{1F4A1}", anger: "\u{1F4A2}", bomb: "\u{1F4A3}", zzz: "\u{1F4A4}", boom: "\u{1F4A5}", sweat_drops: "\u{1F4A6}", droplet: "\u{1F4A7}", dash: "\u{1F4A8}", hankey: "\u{1F4A9}", muscle: "\u{1F4AA}", dizzy: "\u{1F4AB}", speech_balloon: "\u{1F4AC}", thought_balloon: "\u{1F4AD}", white_flower: "\u{1F4AE}", moneybag: "\u{1F4B0}", currency_exchange: "\u{1F4B1}", heavy_dollar_sign: "\u{1F4B2}", credit_card: "\u{1F4B3}", yen: "\u{1F4B4}", dollar: "\u{1F4B5}", euro: "\u{1F4B6}", pound: "\u{1F4B7}", money_with_wings: "\u{1F4B8}", chart: "\u{1F4B9}", seat: "\u{1F4BA}", computer: "\u{1F4BB}", briefcase: "\u{1F4BC}", minidisc: "\u{1F4BD}", floppy_disk: "\u{1F4BE}", cd: "\u{1F4BF}", dvd: "\u{1F4C0}", file_folder: "\u{1F4C1}", open_file_folder: "\u{1F4C2}", page_with_curl: "\u{1F4C3}", page_facing_up: "\u{1F4C4}", date: "\u{1F4C5}", calendar: "\u{1F4C6}", card_index: "\u{1F4C7}", chart_with_upwards_trend: "\u{1F4C8}", chart_with_downwards_trend: "\u{1F4C9}", bar_chart: "\u{1F4CA}", clipboard: "\u{1F4CB}", pushpin: "\u{1F4CC}", round_pushpin: "\u{1F4CD}", paperclip: "\u{1F4CE}", straight_ruler: "\u{1F4CF}", triangular_ruler: "\u{1F4D0}", bookmark_tabs: "\u{1F4D1}", ledger: "\u{1F4D2}", notebook: "\u{1F4D3}", notebook_with_decorative_cover: "\u{1F4D4}", closed_book: "\u{1F4D5}", book: "\u{1F4D6}", green_book: "\u{1F4D7}", blue_book: "\u{1F4D8}", orange_book: "\u{1F4D9}", books: "\u{1F4DA}", name_badge: "\u{1F4DB}", scroll: "\u{1F4DC}", memo: "\u{1F4DD}", telephone_receiver: "\u{1F4DE}", pager: "\u{1F4DF}", fax: "\u{1F4E0}", satellite_antenna: "\u{1F4E1}", loudspeaker: "\u{1F4E2}", mega: "\u{1F4E3}", outbox_tray: "\u{1F4E4}", inbox_tray: "\u{1F4E5}", package: "\u{1F4E6}", "e-mail": "\u{1F4E7}", incoming_envelope: "\u{1F4E8}", envelope_with_arrow: "\u{1F4E9}", mailbox_closed: "\u{1F4EA}", mailbox: "\u{1F4EB}", mailbox_with_mail: "\u{1F4EC}", mailbox_with_no_mail: "\u{1F4ED}", postbox: "\u{1F4EE}", postal_horn: "\u{1F4EF}", newspaper: "\u{1F4F0}", iphone: "\u{1F4F1}", calling: "\u{1F4F2}", vibration_mode: "\u{1F4F3}", mobile_phone_off: "\u{1F4F4}", no_mobile_phones: "\u{1F4F5}", signal_strength: "\u{1F4F6}", camera: "\u{1F4F7}", camera_with_flash: "\u{1F4F8}", video_camera: "\u{1F4F9}", tv: "\u{1F4FA}", radio: "\u{1F4FB}", vhs: "\u{1F4FC}", film_projector: "\u{1F4FD}\uFE0F", prayer_beads: "\u{1F4FF}", twisted_rightwards_arrows: "\u{1F500}", repeat: "\u{1F501}", repeat_one: "\u{1F502}", arrows_clockwise: "\u{1F503}", arrows_counterclockwise: "\u{1F504}", low_brightness: "\u{1F505}", high_brightness: "\u{1F506}", mute: "\u{1F507}", speaker: "\u{1F508}", sound: "\u{1F509}", loud_sound: "\u{1F50A}", battery: "\u{1F50B}", electric_plug: "\u{1F50C}", mag: "\u{1F50D}", mag_right: "\u{1F50E}", lock_with_ink_pen: "\u{1F50F}", closed_lock_with_key: "\u{1F510}", key: "\u{1F511}", lock: "\u{1F512}", unlock: "\u{1F513}", bell: "\u{1F514}", no_bell: "\u{1F515}", bookmark: "\u{1F516}", link: "\u{1F517}", radio_button: "\u{1F518}", back: "\u{1F519}", end: "\u{1F51A}", on: "\u{1F51B}", soon: "\u{1F51C}", top: "\u{1F51D}", underage: "\u{1F51E}", keycap_ten: "\u{1F51F}", capital_abcd: "\u{1F520}", abcd: "\u{1F521}", symbols: "\u{1F523}", abc: "\u{1F524}", fire: "\u{1F525}", flashlight: "\u{1F526}", wrench: "\u{1F527}", hammer: "\u{1F528}", nut_and_bolt: "\u{1F529}", hocho: "\u{1F52A}", gun: "\u{1F52B}", microscope: "\u{1F52C}", telescope: "\u{1F52D}", crystal_ball: "\u{1F52E}", six_pointed_star: "\u{1F52F}", beginner: "\u{1F530}", trident: "\u{1F531}", black_square_button: "\u{1F532}", white_square_button: "\u{1F533}", red_circle: "\u{1F534}", large_blue_circle: "\u{1F535}", large_orange_diamond: "\u{1F536}", large_blue_diamond: "\u{1F537}", small_orange_diamond: "\u{1F538}", small_blue_diamond: "\u{1F539}", small_red_triangle: "\u{1F53A}", small_red_triangle_down: "\u{1F53B}", arrow_up_small: "\u{1F53C}", arrow_down_small: "\u{1F53D}", om_symbol: "\u{1F549}\uFE0F", dove_of_peace: "\u{1F54A}\uFE0F", kaaba: "\u{1F54B}", mosque: "\u{1F54C}", synagogue: "\u{1F54D}", menorah_with_nine_branches: "\u{1F54E}", clock1: "\u{1F550}", clock2: "\u{1F551}", clock3: "\u{1F552}", clock4: "\u{1F553}", clock5: "\u{1F554}", clock6: "\u{1F555}", clock7: "\u{1F556}", clock8: "\u{1F557}", clock9: "\u{1F558}", clock10: "\u{1F559}", clock11: "\u{1F55A}", clock12: "\u{1F55B}", clock130: "\u{1F55C}", clock230: "\u{1F55D}", clock330: "\u{1F55E}", clock430: "\u{1F55F}", clock530: "\u{1F560}", clock630: "\u{1F561}", clock730: "\u{1F562}", clock830: "\u{1F563}", clock930: "\u{1F564}", clock1030: "\u{1F565}", clock1130: "\u{1F566}", clock1230: "\u{1F567}", candle: "\u{1F56F}\uFE0F", mantelpiece_clock: "\u{1F570}\uFE0F", hole: "\u{1F573}\uFE0F", man_in_business_suit_levitating: "\u{1F574}\uFE0F", "female-detective": "\u{1F575}\uFE0F\u200D\u2640\uFE0F", "male-detective": "\u{1F575}\uFE0F\u200D\u2642\uFE0F", sleuth_or_spy: "\u{1F575}\uFE0F", dark_sunglasses: "\u{1F576}\uFE0F", spider: "\u{1F577}\uFE0F", spider_web: "\u{1F578}\uFE0F", joystick: "\u{1F579}\uFE0F", man_dancing: "\u{1F57A}", linked_paperclips: "\u{1F587}\uFE0F", lower_left_ballpoint_pen: "\u{1F58A}\uFE0F", lower_left_fountain_pen: "\u{1F58B}\uFE0F", lower_left_paintbrush: "\u{1F58C}\uFE0F", lower_left_crayon: "\u{1F58D}\uFE0F", raised_hand_with_fingers_splayed: "\u{1F590}\uFE0F", middle_finger: "\u{1F595}", "spock-hand": "\u{1F596}", black_heart: "\u{1F5A4}", desktop_computer: "\u{1F5A5}\uFE0F", printer: "\u{1F5A8}\uFE0F", three_button_mouse: "\u{1F5B1}\uFE0F", trackball: "\u{1F5B2}\uFE0F", frame_with_picture: "\u{1F5BC}\uFE0F", card_index_dividers: "\u{1F5C2}\uFE0F", card_file_box: "\u{1F5C3}\uFE0F", file_cabinet: "\u{1F5C4}\uFE0F", wastebasket: "\u{1F5D1}\uFE0F", spiral_note_pad: "\u{1F5D2}\uFE0F", spiral_calendar_pad: "\u{1F5D3}\uFE0F", compression: "\u{1F5DC}\uFE0F", old_key: "\u{1F5DD}\uFE0F", rolled_up_newspaper: "\u{1F5DE}\uFE0F", dagger_knife: "\u{1F5E1}\uFE0F", speaking_head_in_silhouette: "\u{1F5E3}\uFE0F", left_speech_bubble: "\u{1F5E8}\uFE0F", right_anger_bubble: "\u{1F5EF}\uFE0F", ballot_box_with_ballot: "\u{1F5F3}\uFE0F", world_map: "\u{1F5FA}\uFE0F", mount_fuji: "\u{1F5FB}", tokyo_tower: "\u{1F5FC}", statue_of_liberty: "\u{1F5FD}", japan: "\u{1F5FE}", moyai: "\u{1F5FF}", grinning: "\u{1F600}", grin: "\u{1F601}", joy: "\u{1F602}", smiley: "\u{1F603}", smile: "\u{1F604}", sweat_smile: "\u{1F605}", laughing: "\u{1F606}", innocent: "\u{1F607}", smiling_imp: "\u{1F608}", wink: "\u{1F609}", blush: "\u{1F60A}", yum: "\u{1F60B}", relieved: "\u{1F60C}", heart_eyes: "\u{1F60D}", sunglasses: "\u{1F60E}", smirk: "\u{1F60F}", neutral_face: "\u{1F610}", expressionless: "\u{1F611}", unamused: "\u{1F612}", sweat: "\u{1F613}", pensive: "\u{1F614}", confused: "\u{1F615}", confounded: "\u{1F616}", kissing: "\u{1F617}", kissing_heart: "\u{1F618}", kissing_smiling_eyes: "\u{1F619}", kissing_closed_eyes: "\u{1F61A}", stuck_out_tongue: "\u{1F61B}", stuck_out_tongue_winking_eye: "\u{1F61C}", stuck_out_tongue_closed_eyes: "\u{1F61D}", disappointed: "\u{1F61E}", worried: "\u{1F61F}", angry: "\u{1F620}", rage: "\u{1F621}", cry: "\u{1F622}", persevere: "\u{1F623}", triumph: "\u{1F624}", disappointed_relieved: "\u{1F625}", frowning: "\u{1F626}", anguished: "\u{1F627}", fearful: "\u{1F628}", weary: "\u{1F629}", sleepy: "\u{1F62A}", tired_face: "\u{1F62B}", grimacing: "\u{1F62C}", sob: "\u{1F62D}", face_exhaling: "\u{1F62E}\u200D\u{1F4A8}", open_mouth: "\u{1F62E}", hushed: "\u{1F62F}", cold_sweat: "\u{1F630}", scream: "\u{1F631}", astonished: "\u{1F632}", flushed: "\u{1F633}", sleeping: "\u{1F634}", face_with_spiral_eyes: "\u{1F635}\u200D\u{1F4AB}", dizzy_face: "\u{1F635}", face_in_clouds: "\u{1F636}\u200D\u{1F32B}\uFE0F", no_mouth: "\u{1F636}", mask: "\u{1F637}", smile_cat: "\u{1F638}", joy_cat: "\u{1F639}", smiley_cat: "\u{1F63A}", heart_eyes_cat: "\u{1F63B}", smirk_cat: "\u{1F63C}", kissing_cat: "\u{1F63D}", pouting_cat: "\u{1F63E}", crying_cat_face: "\u{1F63F}", scream_cat: "\u{1F640}", slightly_frowning_face: "\u{1F641}", slightly_smiling_face: "\u{1F642}", upside_down_face: "\u{1F643}", face_with_rolling_eyes: "\u{1F644}", "woman-gesturing-no": "\u{1F645}\u200D\u2640\uFE0F", "man-gesturing-no": "\u{1F645}\u200D\u2642\uFE0F", no_good: "\u{1F645}", "woman-gesturing-ok": "\u{1F646}\u200D\u2640\uFE0F", "man-gesturing-ok": "\u{1F646}\u200D\u2642\uFE0F", ok_woman: "\u{1F646}", "woman-bowing": "\u{1F647}\u200D\u2640\uFE0F", "man-bowing": "\u{1F647}\u200D\u2642\uFE0F", bow: "\u{1F647}", see_no_evil: "\u{1F648}", hear_no_evil: "\u{1F649}", speak_no_evil: "\u{1F64A}", "woman-raising-hand": "\u{1F64B}\u200D\u2640\uFE0F", "man-raising-hand": "\u{1F64B}\u200D\u2642\uFE0F", raising_hand: "\u{1F64B}", raised_hands: "\u{1F64C}", "woman-frowning": "\u{1F64D}\u200D\u2640\uFE0F", "man-frowning": "\u{1F64D}\u200D\u2642\uFE0F", person_frowning: "\u{1F64D}", "woman-pouting": "\u{1F64E}\u200D\u2640\uFE0F", "man-pouting": "\u{1F64E}\u200D\u2642\uFE0F", person_with_pouting_face: "\u{1F64E}", pray: "\u{1F64F}", rocket: "\u{1F680}", helicopter: "\u{1F681}", steam_locomotive: "\u{1F682}", railway_car: "\u{1F683}", bullettrain_side: "\u{1F684}", bullettrain_front: "\u{1F685}", train2: "\u{1F686}", metro: "\u{1F687}", light_rail: "\u{1F688}", station: "\u{1F689}", tram: "\u{1F68A}", train: "\u{1F68B}", bus: "\u{1F68C}", oncoming_bus: "\u{1F68D}", trolleybus: "\u{1F68E}", busstop: "\u{1F68F}", minibus: "\u{1F690}", ambulance: "\u{1F691}", fire_engine: "\u{1F692}", police_car: "\u{1F693}", oncoming_police_car: "\u{1F694}", taxi: "\u{1F695}", oncoming_taxi: "\u{1F696}", car: "\u{1F697}", oncoming_automobile: "\u{1F698}", blue_car: "\u{1F699}", truck: "\u{1F69A}", articulated_lorry: "\u{1F69B}", tractor: "\u{1F69C}", monorail: "\u{1F69D}", mountain_railway: "\u{1F69E}", suspension_railway: "\u{1F69F}", mountain_cableway: "\u{1F6A0}", aerial_tramway: "\u{1F6A1}", ship: "\u{1F6A2}", "woman-rowing-boat": "\u{1F6A3}\u200D\u2640\uFE0F", "man-rowing-boat": "\u{1F6A3}\u200D\u2642\uFE0F", rowboat: "\u{1F6A3}", speedboat: "\u{1F6A4}", traffic_light: "\u{1F6A5}", vertical_traffic_light: "\u{1F6A6}", construction: "\u{1F6A7}", rotating_light: "\u{1F6A8}", triangular_flag_on_post: "\u{1F6A9}", door: "\u{1F6AA}", no_entry_sign: "\u{1F6AB}", smoking: "\u{1F6AC}", no_smoking: "\u{1F6AD}", put_litter_in_its_place: "\u{1F6AE}", do_not_litter: "\u{1F6AF}", potable_water: "\u{1F6B0}", "non-potable_water": "\u{1F6B1}", bike: "\u{1F6B2}", no_bicycles: "\u{1F6B3}", "woman-biking": "\u{1F6B4}\u200D\u2640\uFE0F", "man-biking": "\u{1F6B4}\u200D\u2642\uFE0F", bicyclist: "\u{1F6B4}", "woman-mountain-biking": "\u{1F6B5}\u200D\u2640\uFE0F", "man-mountain-biking": "\u{1F6B5}\u200D\u2642\uFE0F", mountain_bicyclist: "\u{1F6B5}", "woman-walking": "\u{1F6B6}\u200D\u2640\uFE0F", "man-walking": "\u{1F6B6}\u200D\u2642\uFE0F", walking: "\u{1F6B6}", no_pedestrians: "\u{1F6B7}", children_crossing: "\u{1F6B8}", mens: "\u{1F6B9}", womens: "\u{1F6BA}", restroom: "\u{1F6BB}", baby_symbol: "\u{1F6BC}", toilet: "\u{1F6BD}", wc: "\u{1F6BE}", shower: "\u{1F6BF}", bath: "\u{1F6C0}", bathtub: "\u{1F6C1}", passport_control: "\u{1F6C2}", customs: "\u{1F6C3}", baggage_claim: "\u{1F6C4}", left_luggage: "\u{1F6C5}", couch_and_lamp: "\u{1F6CB}\uFE0F", sleeping_accommodation: "\u{1F6CC}", shopping_bags: "\u{1F6CD}\uFE0F", bellhop_bell: "\u{1F6CE}\uFE0F", bed: "\u{1F6CF}\uFE0F", place_of_worship: "\u{1F6D0}", octagonal_sign: "\u{1F6D1}", shopping_trolley: "\u{1F6D2}", hindu_temple: "\u{1F6D5}", hut: "\u{1F6D6}", elevator: "\u{1F6D7}", hammer_and_wrench: "\u{1F6E0}\uFE0F", shield: "\u{1F6E1}\uFE0F", oil_drum: "\u{1F6E2}\uFE0F", motorway: "\u{1F6E3}\uFE0F", railway_track: "\u{1F6E4}\uFE0F", motor_boat: "\u{1F6E5}\uFE0F", small_airplane: "\u{1F6E9}\uFE0F", airplane_departure: "\u{1F6EB}", airplane_arriving: "\u{1F6EC}", satellite: "\u{1F6F0}\uFE0F", passenger_ship: "\u{1F6F3}\uFE0F", scooter: "\u{1F6F4}", motor_scooter: "\u{1F6F5}", canoe: "\u{1F6F6}", sled: "\u{1F6F7}", flying_saucer: "\u{1F6F8}", skateboard: "\u{1F6F9}", auto_rickshaw: "\u{1F6FA}", pickup_truck: "\u{1F6FB}", roller_skate: "\u{1F6FC}", large_orange_circle: "\u{1F7E0}", large_yellow_circle: "\u{1F7E1}", large_green_circle: "\u{1F7E2}", large_purple_circle: "\u{1F7E3}", large_brown_circle: "\u{1F7E4}", large_red_square: "\u{1F7E5}", large_blue_square: "\u{1F7E6}", large_orange_square: "\u{1F7E7}", large_yellow_square: "\u{1F7E8}", large_green_square: "\u{1F7E9}", large_purple_square: "\u{1F7EA}", large_brown_square: "\u{1F7EB}", pinched_fingers: "\u{1F90C}", white_heart: "\u{1F90D}", brown_heart: "\u{1F90E}", pinching_hand: "\u{1F90F}", zipper_mouth_face: "\u{1F910}", money_mouth_face: "\u{1F911}", face_with_thermometer: "\u{1F912}", nerd_face: "\u{1F913}", thinking_face: "\u{1F914}", face_with_head_bandage: "\u{1F915}", robot_face: "\u{1F916}", hugging_face: "\u{1F917}", the_horns: "\u{1F918}", call_me_hand: "\u{1F919}", raised_back_of_hand: "\u{1F91A}", "left-facing_fist": "\u{1F91B}", "right-facing_fist": "\u{1F91C}", handshake: "\u{1F91D}", crossed_fingers: "\u{1F91E}", i_love_you_hand_sign: "\u{1F91F}", face_with_cowboy_hat: "\u{1F920}", clown_face: "\u{1F921}", nauseated_face: "\u{1F922}", rolling_on_the_floor_laughing: "\u{1F923}", drooling_face: "\u{1F924}", lying_face: "\u{1F925}", "woman-facepalming": "\u{1F926}\u200D\u2640\uFE0F", "man-facepalming": "\u{1F926}\u200D\u2642\uFE0F", face_palm: "\u{1F926}", sneezing_face: "\u{1F927}", face_with_raised_eyebrow: "\u{1F928}", "star-struck": "\u{1F929}", zany_face: "\u{1F92A}", shushing_face: "\u{1F92B}", face_with_symbols_on_mouth: "\u{1F92C}", face_with_hand_over_mouth: "\u{1F92D}", face_vomiting: "\u{1F92E}", exploding_head: "\u{1F92F}", pregnant_woman: "\u{1F930}", "breast-feeding": "\u{1F931}", palms_up_together: "\u{1F932}", selfie: "\u{1F933}", prince: "\u{1F934}", woman_in_tuxedo: "\u{1F935}\u200D\u2640\uFE0F", man_in_tuxedo: "\u{1F935}\u200D\u2642\uFE0F", person_in_tuxedo: "\u{1F935}", mrs_claus: "\u{1F936}", "woman-shrugging": "\u{1F937}\u200D\u2640\uFE0F", "man-shrugging": "\u{1F937}\u200D\u2642\uFE0F", shrug: "\u{1F937}", "woman-cartwheeling": "\u{1F938}\u200D\u2640\uFE0F", "man-cartwheeling": "\u{1F938}\u200D\u2642\uFE0F", person_doing_cartwheel: "\u{1F938}", "woman-juggling": "\u{1F939}\u200D\u2640\uFE0F", "man-juggling": "\u{1F939}\u200D\u2642\uFE0F", juggling: "\u{1F939}", fencer: "\u{1F93A}", "woman-wrestling": "\u{1F93C}\u200D\u2640\uFE0F", "man-wrestling": "\u{1F93C}\u200D\u2642\uFE0F", wrestlers: "\u{1F93C}", "woman-playing-water-polo": "\u{1F93D}\u200D\u2640\uFE0F", "man-playing-water-polo": "\u{1F93D}\u200D\u2642\uFE0F", water_polo: "\u{1F93D}", "woman-playing-handball": "\u{1F93E}\u200D\u2640\uFE0F", "man-playing-handball": "\u{1F93E}\u200D\u2642\uFE0F", handball: "\u{1F93E}", diving_mask: "\u{1F93F}", wilted_flower: "\u{1F940}", drum_with_drumsticks: "\u{1F941}", clinking_glasses: "\u{1F942}", tumbler_glass: "\u{1F943}", spoon: "\u{1F944}", goal_net: "\u{1F945}", first_place_medal: "\u{1F947}", second_place_medal: "\u{1F948}", third_place_medal: "\u{1F949}", boxing_glove: "\u{1F94A}", martial_arts_uniform: "\u{1F94B}", curling_stone: "\u{1F94C}", lacrosse: "\u{1F94D}", softball: "\u{1F94E}", flying_disc: "\u{1F94F}", croissant: "\u{1F950}", avocado: "\u{1F951}", cucumber: "\u{1F952}", bacon: "\u{1F953}", potato: "\u{1F954}", carrot: "\u{1F955}", baguette_bread: "\u{1F956}", green_salad: "\u{1F957}", shallow_pan_of_food: "\u{1F958}", stuffed_flatbread: "\u{1F959}", egg: "\u{1F95A}", glass_of_milk: "\u{1F95B}", peanuts: "\u{1F95C}", kiwifruit: "\u{1F95D}", pancakes: "\u{1F95E}", dumpling: "\u{1F95F}", fortune_cookie: "\u{1F960}", takeout_box: "\u{1F961}", chopsticks: "\u{1F962}", bowl_with_spoon: "\u{1F963}", cup_with_straw: "\u{1F964}", coconut: "\u{1F965}", broccoli: "\u{1F966}", pie: "\u{1F967}", pretzel: "\u{1F968}", cut_of_meat: "\u{1F969}", sandwich: "\u{1F96A}", canned_food: "\u{1F96B}", leafy_green: "\u{1F96C}", mango: "\u{1F96D}", moon_cake: "\u{1F96E}", bagel: "\u{1F96F}", smiling_face_with_3_hearts: "\u{1F970}", yawning_face: "\u{1F971}", smiling_face_with_tear: "\u{1F972}", partying_face: "\u{1F973}", woozy_face: "\u{1F974}", hot_face: "\u{1F975}", cold_face: "\u{1F976}", ninja: "\u{1F977}", disguised_face: "\u{1F978}", pleading_face: "\u{1F97A}", sari: "\u{1F97B}", lab_coat: "\u{1F97C}", goggles: "\u{1F97D}", hiking_boot: "\u{1F97E}", womans_flat_shoe: "\u{1F97F}", crab: "\u{1F980}", lion_face: "\u{1F981}", scorpion: "\u{1F982}", turkey: "\u{1F983}", unicorn_face: "\u{1F984}", eagle: "\u{1F985}", duck: "\u{1F986}", bat: "\u{1F987}", shark: "\u{1F988}", owl: "\u{1F989}", fox_face: "\u{1F98A}", butterfly: "\u{1F98B}", deer: "\u{1F98C}", gorilla: "\u{1F98D}", lizard: "\u{1F98E}", rhinoceros: "\u{1F98F}", shrimp: "\u{1F990}", squid: "\u{1F991}", giraffe_face: "\u{1F992}", zebra_face: "\u{1F993}", hedgehog: "\u{1F994}", sauropod: "\u{1F995}", "t-rex": "\u{1F996}", cricket: "\u{1F997}", kangaroo: "\u{1F998}", llama: "\u{1F999}", peacock: "\u{1F99A}", hippopotamus: "\u{1F99B}", parrot: "\u{1F99C}", raccoon: "\u{1F99D}", lobster: "\u{1F99E}", mosquito: "\u{1F99F}", microbe: "\u{1F9A0}", badger: "\u{1F9A1}", swan: "\u{1F9A2}", mammoth: "\u{1F9A3}", dodo: "\u{1F9A4}", sloth: "\u{1F9A5}", otter: "\u{1F9A6}", orangutan: "\u{1F9A7}", skunk: "\u{1F9A8}", flamingo: "\u{1F9A9}", oyster: "\u{1F9AA}", beaver: "\u{1F9AB}", bison: "\u{1F9AC}", seal: "\u{1F9AD}", guide_dog: "\u{1F9AE}", probing_cane: "\u{1F9AF}", bone: "\u{1F9B4}", leg: "\u{1F9B5}", foot: "\u{1F9B6}", tooth: "\u{1F9B7}", female_superhero: "\u{1F9B8}\u200D\u2640\uFE0F", male_superhero: "\u{1F9B8}\u200D\u2642\uFE0F", superhero: "\u{1F9B8}", female_supervillain: "\u{1F9B9}\u200D\u2640\uFE0F", male_supervillain: "\u{1F9B9}\u200D\u2642\uFE0F", supervillain: "\u{1F9B9}", safety_vest: "\u{1F9BA}", ear_with_hearing_aid: "\u{1F9BB}", motorized_wheelchair: "\u{1F9BC}", manual_wheelchair: "\u{1F9BD}", mechanical_arm: "\u{1F9BE}", mechanical_leg: "\u{1F9BF}", cheese_wedge: "\u{1F9C0}", cupcake: "\u{1F9C1}", salt: "\u{1F9C2}", beverage_box: "\u{1F9C3}", garlic: "\u{1F9C4}", onion: "\u{1F9C5}", falafel: "\u{1F9C6}", waffle: "\u{1F9C7}", butter: "\u{1F9C8}", mate_drink: "\u{1F9C9}", ice_cube: "\u{1F9CA}", bubble_tea: "\u{1F9CB}", woman_standing: "\u{1F9CD}\u200D\u2640\uFE0F", man_standing: "\u{1F9CD}\u200D\u2642\uFE0F", standing_person: "\u{1F9CD}", woman_kneeling: "\u{1F9CE}\u200D\u2640\uFE0F", man_kneeling: "\u{1F9CE}\u200D\u2642\uFE0F", kneeling_person: "\u{1F9CE}", deaf_woman: "\u{1F9CF}\u200D\u2640\uFE0F", deaf_man: "\u{1F9CF}\u200D\u2642\uFE0F", deaf_person: "\u{1F9CF}", face_with_monocle: "\u{1F9D0}", farmer: "\u{1F9D1}\u200D\u{1F33E}", cook: "\u{1F9D1}\u200D\u{1F373}", person_feeding_baby: "\u{1F9D1}\u200D\u{1F37C}", mx_claus: "\u{1F9D1}\u200D\u{1F384}", student: "\u{1F9D1}\u200D\u{1F393}", singer: "\u{1F9D1}\u200D\u{1F3A4}", artist: "\u{1F9D1}\u200D\u{1F3A8}", teacher: "\u{1F9D1}\u200D\u{1F3EB}", factory_worker: "\u{1F9D1}\u200D\u{1F3ED}", technologist: "\u{1F9D1}\u200D\u{1F4BB}", office_worker: "\u{1F9D1}\u200D\u{1F4BC}", mechanic: "\u{1F9D1}\u200D\u{1F527}", scientist: "\u{1F9D1}\u200D\u{1F52C}", astronaut: "\u{1F9D1}\u200D\u{1F680}", firefighter: "\u{1F9D1}\u200D\u{1F692}", people_holding_hands: "\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}", person_with_probing_cane: "\u{1F9D1}\u200D\u{1F9AF}", red_haired_person: "\u{1F9D1}\u200D\u{1F9B0}", curly_haired_person: "\u{1F9D1}\u200D\u{1F9B1}", bald_person: "\u{1F9D1}\u200D\u{1F9B2}", white_haired_person: "\u{1F9D1}\u200D\u{1F9B3}", person_in_motorized_wheelchair: "\u{1F9D1}\u200D\u{1F9BC}", person_in_manual_wheelchair: "\u{1F9D1}\u200D\u{1F9BD}", health_worker: "\u{1F9D1}\u200D\u2695\uFE0F", judge: "\u{1F9D1}\u200D\u2696\uFE0F", pilot: "\u{1F9D1}\u200D\u2708\uFE0F", adult: "\u{1F9D1}", child: "\u{1F9D2}", older_adult: "\u{1F9D3}", woman_with_beard: "\u{1F9D4}\u200D\u2640\uFE0F", man_with_beard: "\u{1F9D4}\u200D\u2642\uFE0F", bearded_person: "\u{1F9D4}", person_with_headscarf: "\u{1F9D5}", woman_in_steamy_room: "\u{1F9D6}\u200D\u2640\uFE0F", man_in_steamy_room: "\u{1F9D6}\u200D\u2642\uFE0F", person_in_steamy_room: "\u{1F9D6}", woman_climbing: "\u{1F9D7}\u200D\u2640\uFE0F", man_climbing: "\u{1F9D7}\u200D\u2642\uFE0F", person_climbing: "\u{1F9D7}", woman_in_lotus_position: "\u{1F9D8}\u200D\u2640\uFE0F", man_in_lotus_position: "\u{1F9D8}\u200D\u2642\uFE0F", person_in_lotus_position: "\u{1F9D8}", female_mage: "\u{1F9D9}\u200D\u2640\uFE0F", male_mage: "\u{1F9D9}\u200D\u2642\uFE0F", mage: "\u{1F9D9}", female_fairy: "\u{1F9DA}\u200D\u2640\uFE0F", male_fairy: "\u{1F9DA}\u200D\u2642\uFE0F", fairy: "\u{1F9DA}", female_vampire: "\u{1F9DB}\u200D\u2640\uFE0F", male_vampire: "\u{1F9DB}\u200D\u2642\uFE0F", vampire: "\u{1F9DB}", mermaid: "\u{1F9DC}\u200D\u2640\uFE0F", merman: "\u{1F9DC}\u200D\u2642\uFE0F", merperson: "\u{1F9DC}", female_elf: "\u{1F9DD}\u200D\u2640\uFE0F", male_elf: "\u{1F9DD}\u200D\u2642\uFE0F", elf: "\u{1F9DD}", female_genie: "\u{1F9DE}\u200D\u2640\uFE0F", male_genie: "\u{1F9DE}\u200D\u2642\uFE0F", genie: "\u{1F9DE}", female_zombie: "\u{1F9DF}\u200D\u2640\uFE0F", male_zombie: "\u{1F9DF}\u200D\u2642\uFE0F", zombie: "\u{1F9DF}", brain: "\u{1F9E0}", orange_heart: "\u{1F9E1}", billed_cap: "\u{1F9E2}", scarf: "\u{1F9E3}", gloves: "\u{1F9E4}", coat: "\u{1F9E5}", socks: "\u{1F9E6}", red_envelope: "\u{1F9E7}", firecracker: "\u{1F9E8}", jigsaw: "\u{1F9E9}", test_tube: "\u{1F9EA}", petri_dish: "\u{1F9EB}", dna: "\u{1F9EC}", compass: "\u{1F9ED}", abacus: "\u{1F9EE}", fire_extinguisher: "\u{1F9EF}", toolbox: "\u{1F9F0}", bricks: "\u{1F9F1}", magnet: "\u{1F9F2}", luggage: "\u{1F9F3}", lotion_bottle: "\u{1F9F4}", thread: "\u{1F9F5}", yarn: "\u{1F9F6}", safety_pin: "\u{1F9F7}", teddy_bear: "\u{1F9F8}", broom: "\u{1F9F9}", basket: "\u{1F9FA}", roll_of_paper: "\u{1F9FB}", soap: "\u{1F9FC}", sponge: "\u{1F9FD}", receipt: "\u{1F9FE}", nazar_amulet: "\u{1F9FF}", ballet_shoes: "\u{1FA70}", "one-piece_swimsuit": "\u{1FA71}", briefs: "\u{1FA72}", shorts: "\u{1FA73}", thong_sandal: "\u{1FA74}", drop_of_blood: "\u{1FA78}", adhesive_bandage: "\u{1FA79}", stethoscope: "\u{1FA7A}", "yo-yo": "\u{1FA80}", kite: "\u{1FA81}", parachute: "\u{1FA82}", boomerang: "\u{1FA83}", magic_wand: "\u{1FA84}", pinata: "\u{1FA85}", nesting_dolls: "\u{1FA86}", ringed_planet: "\u{1FA90}", chair: "\u{1FA91}", razor: "\u{1FA92}", axe: "\u{1FA93}", diya_lamp: "\u{1FA94}", banjo: "\u{1FA95}", military_helmet: "\u{1FA96}", accordion: "\u{1FA97}", long_drum: "\u{1FA98}", coin: "\u{1FA99}", carpentry_saw: "\u{1FA9A}", screwdriver: "\u{1FA9B}", ladder: "\u{1FA9C}", hook: "\u{1FA9D}", mirror: "\u{1FA9E}", window: "\u{1FA9F}", plunger: "\u{1FAA0}", sewing_needle: "\u{1FAA1}", knot: "\u{1FAA2}", bucket: "\u{1FAA3}", mouse_trap: "\u{1FAA4}", toothbrush: "\u{1FAA5}", headstone: "\u{1FAA6}", placard: "\u{1FAA7}", rock: "\u{1FAA8}", fly: "\u{1FAB0}", worm: "\u{1FAB1}", beetle: "\u{1FAB2}", cockroach: "\u{1FAB3}", potted_plant: "\u{1FAB4}", wood: "\u{1FAB5}", feather: "\u{1FAB6}", anatomical_heart: "\u{1FAC0}", lungs: "\u{1FAC1}", people_hugging: "\u{1FAC2}", blueberries: "\u{1FAD0}", bell_pepper: "\u{1FAD1}", olive: "\u{1FAD2}", flatbread: "\u{1FAD3}", tamale: "\u{1FAD4}", fondue: "\u{1FAD5}", teapot: "\u{1FAD6}", bangbang: "\u203C\uFE0F", interrobang: "\u2049\uFE0F", tm: "\u2122\uFE0F", information_source: "\u2139\uFE0F", left_right_arrow: "\u2194\uFE0F", arrow_up_down: "\u2195\uFE0F", arrow_upper_left: "\u2196\uFE0F", arrow_upper_right: "\u2197\uFE0F", arrow_lower_right: "\u2198\uFE0F", arrow_lower_left: "\u2199\uFE0F", leftwards_arrow_with_hook: "\u21A9\uFE0F", arrow_right_hook: "\u21AA\uFE0F", watch: "\u231A", hourglass: "\u231B", keyboard: "\u2328\uFE0F", eject: "\u23CF\uFE0F", fast_forward: "\u23E9", rewind: "\u23EA", arrow_double_up: "\u23EB", arrow_double_down: "\u23EC", black_right_pointing_double_triangle_with_vertical_bar: "\u23ED\uFE0F", black_left_pointing_double_triangle_with_vertical_bar: "\u23EE\uFE0F", black_right_pointing_triangle_with_double_vertical_bar: "\u23EF\uFE0F", alarm_clock: "\u23F0", stopwatch: "\u23F1\uFE0F", timer_clock: "\u23F2\uFE0F", hourglass_flowing_sand: "\u23F3", double_vertical_bar: "\u23F8\uFE0F", black_square_for_stop: "\u23F9\uFE0F", black_circle_for_record: "\u23FA\uFE0F", m: "\u24C2\uFE0F", black_small_square: "\u25AA\uFE0F", white_small_square: "\u25AB\uFE0F", arrow_forward: "\u25B6\uFE0F", arrow_backward: "\u25C0\uFE0F", white_medium_square: "\u25FB\uFE0F", black_medium_square: "\u25FC\uFE0F", white_medium_small_square: "\u25FD", black_medium_small_square: "\u25FE", sunny: "\u2600\uFE0F", cloud: "\u2601\uFE0F", umbrella: "\u2602\uFE0F", snowman: "\u2603\uFE0F", comet: "\u2604\uFE0F", phone: "\u260E\uFE0F", ballot_box_with_check: "\u2611\uFE0F", umbrella_with_rain_drops: "\u2614", coffee: "\u2615", shamrock: "\u2618\uFE0F", point_up: "\u261D\uFE0F", skull_and_crossbones: "\u2620\uFE0F", radioactive_sign: "\u2622\uFE0F", biohazard_sign: "\u2623\uFE0F", orthodox_cross: "\u2626\uFE0F", star_and_crescent: "\u262A\uFE0F", peace_symbol: "\u262E\uFE0F", yin_yang: "\u262F\uFE0F", wheel_of_dharma: "\u2638\uFE0F", white_frowning_face: "\u2639\uFE0F", relaxed: "\u263A\uFE0F", female_sign: "\u2640\uFE0F", male_sign: "\u2642\uFE0F", aries: "\u2648", taurus: "\u2649", gemini: "\u264A", cancer: "\u264B", leo: "\u264C", virgo: "\u264D", libra: "\u264E", scorpius: "\u264F", sagittarius: "\u2650", capricorn: "\u2651", aquarius: "\u2652", pisces: "\u2653", chess_pawn: "\u265F\uFE0F", spades: "\u2660\uFE0F", clubs: "\u2663\uFE0F", hearts: "\u2665\uFE0F", diamonds: "\u2666\uFE0F", hotsprings: "\u2668\uFE0F", recycle: "\u267B\uFE0F", infinity: "\u267E\uFE0F", wheelchair: "\u267F", hammer_and_pick: "\u2692\uFE0F", anchor: "\u2693", crossed_swords: "\u2694\uFE0F", medical_symbol: "\u2695\uFE0F", scales: "\u2696\uFE0F", alembic: "\u2697\uFE0F", gear: "\u2699\uFE0F", atom_symbol: "\u269B\uFE0F", fleur_de_lis: "\u269C\uFE0F", warning: "\u26A0\uFE0F", zap: "\u26A1", transgender_symbol: "\u26A7\uFE0F", white_circle: "\u26AA", black_circle: "\u26AB", coffin: "\u26B0\uFE0F", funeral_urn: "\u26B1\uFE0F", soccer: "\u26BD", baseball: "\u26BE", snowman_without_snow: "\u26C4", partly_sunny: "\u26C5", thunder_cloud_and_rain: "\u26C8\uFE0F", ophiuchus: "\u26CE", pick: "\u26CF\uFE0F", helmet_with_white_cross: "\u26D1\uFE0F", chains: "\u26D3\uFE0F", no_entry: "\u26D4", shinto_shrine: "\u26E9\uFE0F", church: "\u26EA", mountain: "\u26F0\uFE0F", umbrella_on_ground: "\u26F1\uFE0F", fountain: "\u26F2", golf: "\u26F3", ferry: "\u26F4\uFE0F", boat: "\u26F5", skier: "\u26F7\uFE0F", ice_skate: "\u26F8\uFE0F", "woman-bouncing-ball": "\u26F9\uFE0F\u200D\u2640\uFE0F", "man-bouncing-ball": "\u26F9\uFE0F\u200D\u2642\uFE0F", person_with_ball: "\u26F9\uFE0F", tent: "\u26FA", fuelpump: "\u26FD", scissors: "\u2702\uFE0F", white_check_mark: "\u2705", airplane: "\u2708\uFE0F", email: "\u2709\uFE0F", fist: "\u270A", hand: "\u270B", v: "\u270C\uFE0F", writing_hand: "\u270D\uFE0F", pencil2: "\u270F\uFE0F", black_nib: "\u2712\uFE0F", heavy_check_mark: "\u2714\uFE0F", heavy_multiplication_x: "\u2716\uFE0F", latin_cross: "\u271D\uFE0F", star_of_david: "\u2721\uFE0F", sparkles: "\u2728", eight_spoked_asterisk: "\u2733\uFE0F", eight_pointed_black_star: "\u2734\uFE0F", snowflake: "\u2744\uFE0F", sparkle: "\u2747\uFE0F", x: "\u274C", negative_squared_cross_mark: "\u274E", question: "\u2753", grey_question: "\u2754", grey_exclamation: "\u2755", exclamation: "\u2757", heavy_heart_exclamation_mark_ornament: "\u2763\uFE0F", heart_on_fire: "\u2764\uFE0F\u200D\u{1F525}", mending_heart: "\u2764\uFE0F\u200D\u{1FA79}", heart: "\u2764\uFE0F", heavy_plus_sign: "\u2795", heavy_minus_sign: "\u2796", heavy_division_sign: "\u2797", arrow_right: "\u27A1\uFE0F", curly_loop: "\u27B0", loop: "\u27BF", arrow_heading_up: "\u2934\uFE0F", arrow_heading_down: "\u2935\uFE0F", arrow_left: "\u2B05\uFE0F", arrow_up: "\u2B06\uFE0F", arrow_down: "\u2B07\uFE0F", black_large_square: "\u2B1B", white_large_square: "\u2B1C", star: "\u2B50", o: "\u2B55", wavy_dash: "\u3030\uFE0F", part_alternation_mark: "\u303D\uFE0F", congratulations: "\u3297\uFE0F", secret: "\u3299\uFE0F", poop: "\u{1F4A9}", free_of_charge: "\u{1F21A}", reserved: "\u{1F22F}", prohibited: "\u{1F232}", vacancy: "\u{1F233}", passing_grade: "\u{1F234}", no_vacancy: "\u{1F235}", not_free_of_charge: "\u{1F236}", month: "\u{1F237}\uFE0F", application: "\u{1F238}", discount: "\u{1F239}", open_for_business: "\u{1F23A}" }; - } -}); - -// node_modules/.pnpm/emoji-name-map@2.0.3/node_modules/emoji-name-map/lib/index.js -var require_lib = __commonJS({ - "node_modules/.pnpm/emoji-name-map@2.0.3/node_modules/emoji-name-map/lib/index.js"(exports, module) { - "use strict"; - var emojiDatasource = require_datasource(); - var nameMap = module.exports = {}; - nameMap.emoji = emojiDatasource; - nameMap.get = function(name) { - if (name.charAt(0) === ":") { - name = name.slice(1, -1); - } - return this.emoji[name]; - }; - } -}); - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/command.js -import * as os from "os"; - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/utils.js -function toCommandValue(input) { - if (input === null || input === void 0) { - return ""; - } else if (typeof input === "string" || input instanceof String) { - return input; - } - return JSON.stringify(input); -} -function toCommandProperties(annotationProperties) { - if (!Object.keys(annotationProperties).length) { - return {}; - } - return { - title: annotationProperties.title, - file: annotationProperties.file, - line: annotationProperties.startLine, - endLine: annotationProperties.endLine, - col: annotationProperties.startColumn, - endColumn: annotationProperties.endColumn - }; -} - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/command.js -function issueCommand(command, properties, message) { - const cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + os.EOL); -} -var CMD_STRING = "::"; -var Command = class { - constructor(command, properties, message) { - if (!command) { - command = "missing.command"; - } - this.command = command; - this.properties = properties; - this.message = message; - } - toString() { - let cmdStr = CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += " "; - let first = true; - for (const key in this.properties) { - if (this.properties.hasOwnProperty(key)) { - const val = this.properties[key]; - if (val) { - if (first) { - first = false; - } else { - cmdStr += ","; - } - cmdStr += `${key}=${escapeProperty(val)}`; - } - } - } - } - cmdStr += `${CMD_STRING}${escapeData(this.message)}`; - return cmdStr; - } -}; -function escapeData(s) { - return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); -} -function escapeProperty(s) { - return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); -} - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/file-command.js -import * as crypto from "crypto"; -import * as fs from "fs"; -import * as os2 from "os"; -function issueFileCommand(command, message) { - const filePath = process.env[`GITHUB_${command}`]; - if (!filePath) { - throw new Error(`Unable to find environment variable for file command ${command}`); - } - if (!fs.existsSync(filePath)) { - throw new Error(`Missing file at path: ${filePath}`); - } - fs.appendFileSync(filePath, `${toCommandValue(message)}${os2.EOL}`, { - encoding: "utf8" - }); -} -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${crypto.randomUUID()}`; - const convertedValue = toCommandValue(value); - if (key.includes(delimiter)) { - throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); - } - if (convertedValue.includes(delimiter)) { - throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); - } - return `${key}<<${delimiter}${os2.EOL}${convertedValue}${os2.EOL}${delimiter}`; -} - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/core.js -import * as os4 from "os"; - -// node_modules/.pnpm/@actions+http-client@4.0.1/node_modules/@actions/http-client/lib/index.js -var tunnel = __toESM(require_tunnel2(), 1); -var import_undici = __toESM(require_undici(), 1); -var HttpCodes; -(function(HttpCodes2) { - HttpCodes2[HttpCodes2["OK"] = 200] = "OK"; - HttpCodes2[HttpCodes2["MultipleChoices"] = 300] = "MultipleChoices"; - HttpCodes2[HttpCodes2["MovedPermanently"] = 301] = "MovedPermanently"; - HttpCodes2[HttpCodes2["ResourceMoved"] = 302] = "ResourceMoved"; - HttpCodes2[HttpCodes2["SeeOther"] = 303] = "SeeOther"; - HttpCodes2[HttpCodes2["NotModified"] = 304] = "NotModified"; - HttpCodes2[HttpCodes2["UseProxy"] = 305] = "UseProxy"; - HttpCodes2[HttpCodes2["SwitchProxy"] = 306] = "SwitchProxy"; - HttpCodes2[HttpCodes2["TemporaryRedirect"] = 307] = "TemporaryRedirect"; - HttpCodes2[HttpCodes2["PermanentRedirect"] = 308] = "PermanentRedirect"; - HttpCodes2[HttpCodes2["BadRequest"] = 400] = "BadRequest"; - HttpCodes2[HttpCodes2["Unauthorized"] = 401] = "Unauthorized"; - HttpCodes2[HttpCodes2["PaymentRequired"] = 402] = "PaymentRequired"; - HttpCodes2[HttpCodes2["Forbidden"] = 403] = "Forbidden"; - HttpCodes2[HttpCodes2["NotFound"] = 404] = "NotFound"; - HttpCodes2[HttpCodes2["MethodNotAllowed"] = 405] = "MethodNotAllowed"; - HttpCodes2[HttpCodes2["NotAcceptable"] = 406] = "NotAcceptable"; - HttpCodes2[HttpCodes2["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; - HttpCodes2[HttpCodes2["RequestTimeout"] = 408] = "RequestTimeout"; - HttpCodes2[HttpCodes2["Conflict"] = 409] = "Conflict"; - HttpCodes2[HttpCodes2["Gone"] = 410] = "Gone"; - HttpCodes2[HttpCodes2["TooManyRequests"] = 429] = "TooManyRequests"; - HttpCodes2[HttpCodes2["InternalServerError"] = 500] = "InternalServerError"; - HttpCodes2[HttpCodes2["NotImplemented"] = 501] = "NotImplemented"; - HttpCodes2[HttpCodes2["BadGateway"] = 502] = "BadGateway"; - HttpCodes2[HttpCodes2["ServiceUnavailable"] = 503] = "ServiceUnavailable"; - HttpCodes2[HttpCodes2["GatewayTimeout"] = 504] = "GatewayTimeout"; -})(HttpCodes || (HttpCodes = {})); -var Headers; -(function(Headers2) { - Headers2["Accept"] = "accept"; - Headers2["ContentType"] = "content-type"; -})(Headers || (Headers = {})); -var MediaTypes; -(function(MediaTypes2) { - MediaTypes2["ApplicationJson"] = "application/json"; -})(MediaTypes || (MediaTypes = {})); -var HttpRedirectCodes = [ - HttpCodes.MovedPermanently, - HttpCodes.ResourceMoved, - HttpCodes.SeeOther, - HttpCodes.TemporaryRedirect, - HttpCodes.PermanentRedirect -]; -var HttpResponseRetryCodes = [ - HttpCodes.BadGateway, - HttpCodes.ServiceUnavailable, - HttpCodes.GatewayTimeout -]; - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/summary.js -import { EOL as EOL3 } from "os"; -import { constants, promises } from "fs"; -var __awaiter = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var { access, appendFile, writeFile } = promises; -var SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; -var Summary = class { - constructor() { - this._buffer = ""; - } - /** - * Finds the summary file path from the environment, rejects if env var is not found or file does not exist - * Also checks r/w permissions. - * - * @returns step summary file path - */ - filePath() { - return __awaiter(this, void 0, void 0, function* () { - if (this._filePath) { - return this._filePath; - } - const pathFromEnv = process.env[SUMMARY_ENV_VAR]; - if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); - } - try { - yield access(pathFromEnv, constants.R_OK | constants.W_OK); - } catch (_a2) { - throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); - } - this._filePath = pathFromEnv; - return this._filePath; - }); - } - /** - * Wraps content in an HTML tag, adding any HTML attributes - * - * @param {string} tag HTML tag to wrap - * @param {string | null} content content within the tag - * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add - * - * @returns {string} content wrapped in HTML element - */ - wrap(tag, content, attrs = {}) { - const htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join(""); - if (!content) { - return `<${tag}${htmlAttrs}>`; - } - return `<${tag}${htmlAttrs}>${content}`; - } - /** - * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. - * - * @param {SummaryWriteOptions} [options] (optional) options for write operation - * - * @returns {Promise} summary instance - */ - write(options) { - return __awaiter(this, void 0, void 0, function* () { - const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); - const filePath = yield this.filePath(); - const writeFunc = overwrite ? writeFile : appendFile; - yield writeFunc(filePath, this._buffer, { encoding: "utf8" }); - return this.emptyBuffer(); - }); - } - /** - * Clears the summary buffer and wipes the summary file - * - * @returns {Summary} summary instance - */ - clear() { - return __awaiter(this, void 0, void 0, function* () { - return this.emptyBuffer().write({ overwrite: true }); - }); - } - /** - * Returns the current summary buffer as a string - * - * @returns {string} string of summary buffer - */ - stringify() { - return this._buffer; - } - /** - * If the summary buffer is empty - * - * @returns {boolen} true if the buffer is empty - */ - isEmptyBuffer() { - return this._buffer.length === 0; - } - /** - * Resets the summary buffer without writing to summary file - * - * @returns {Summary} summary instance - */ - emptyBuffer() { - this._buffer = ""; - return this; - } - /** - * Adds raw text to the summary buffer - * - * @param {string} text content to add - * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) - * - * @returns {Summary} summary instance - */ - addRaw(text, addEOL = false) { - this._buffer += text; - return addEOL ? this.addEOL() : this; - } - /** - * Adds the operating system-specific end-of-line marker to the buffer - * - * @returns {Summary} summary instance - */ - addEOL() { - return this.addRaw(EOL3); - } - /** - * Adds an HTML codeblock to the summary buffer - * - * @param {string} code content to render within fenced code block - * @param {string} lang (optional) language to syntax highlight code - * - * @returns {Summary} summary instance - */ - addCodeBlock(code, lang) { - const attrs = Object.assign({}, lang && { lang }); - const element = this.wrap("pre", this.wrap("code", code), attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML list to the summary buffer - * - * @param {string[]} items list of items to render - * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) - * - * @returns {Summary} summary instance - */ - addList(items, ordered = false) { - const tag = ordered ? "ol" : "ul"; - const listItems = items.map((item) => this.wrap("li", item)).join(""); - const element = this.wrap(tag, listItems); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML table to the summary buffer - * - * @param {SummaryTableCell[]} rows table rows - * - * @returns {Summary} summary instance - */ - addTable(rows) { - const tableBody = rows.map((row) => { - const cells = row.map((cell) => { - if (typeof cell === "string") { - return this.wrap("td", cell); - } - const { header, data, colspan, rowspan } = cell; - const tag = header ? "th" : "td"; - const attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan }); - return this.wrap(tag, data, attrs); - }).join(""); - return this.wrap("tr", cells); - }).join(""); - const element = this.wrap("table", tableBody); - return this.addRaw(element).addEOL(); - } - /** - * Adds a collapsable HTML details element to the summary buffer - * - * @param {string} label text for the closed state - * @param {string} content collapsable content - * - * @returns {Summary} summary instance - */ - addDetails(label, content) { - const element = this.wrap("details", this.wrap("summary", label) + content); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML image tag to the summary buffer - * - * @param {string} src path to the image you to embed - * @param {string} alt text description of the image - * @param {SummaryImageOptions} options (optional) addition image attributes - * - * @returns {Summary} summary instance - */ - addImage(src, alt, options) { - const { width, height } = options || {}; - const attrs = Object.assign(Object.assign({}, width && { width }), height && { height }); - const element = this.wrap("img", null, Object.assign({ src, alt }, attrs)); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML section heading element - * - * @param {string} text heading text - * @param {number | string} [level=1] (optional) the heading level, default: 1 - * - * @returns {Summary} summary instance - */ - addHeading(text, level) { - const tag = `h${level}`; - const allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1"; - const element = this.wrap(allowedTag, text); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML thematic break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addSeparator() { - const element = this.wrap("hr", null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML line break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addBreak() { - const element = this.wrap("br", null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML blockquote to the summary buffer - * - * @param {string} text quote text - * @param {string} cite (optional) citation url - * - * @returns {Summary} summary instance - */ - addQuote(text, cite) { - const attrs = Object.assign({}, cite && { cite }); - const element = this.wrap("blockquote", text, attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML anchor tag to the summary buffer - * - * @param {string} text link text/content - * @param {string} href hyperlink - * - * @returns {Summary} summary instance - */ - addLink(text, href) { - const element = this.wrap("a", text, { href }); - return this.addRaw(element).addEOL(); - } -}; -var _summary = new Summary(); - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/platform.js -import os3 from "os"; - -// node_modules/.pnpm/@actions+io@3.0.2/node_modules/@actions/io/lib/io-util.js -import * as fs2 from "fs"; -var { chmod, copyFile, lstat, mkdir, open, readdir, rename, rm, rmdir, stat, symlink, unlink } = fs2.promises; -var IS_WINDOWS = process.platform === "win32"; -var READONLY = fs2.constants.O_RDONLY; - -// node_modules/.pnpm/@actions+exec@3.0.0/node_modules/@actions/exec/lib/toolrunner.js -var IS_WINDOWS2 = process.platform === "win32"; - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/platform.js -var platform = os3.platform(); -var arch = os3.arch(); - -// node_modules/.pnpm/@actions+core@3.0.1/node_modules/@actions/core/lib/core.js -var ExitCode; -(function(ExitCode2) { - ExitCode2[ExitCode2["Success"] = 0] = "Success"; - ExitCode2[ExitCode2["Failure"] = 1] = "Failure"; -})(ExitCode || (ExitCode = {})); -function getInput(name, options) { - const val = process.env[`INPUT_${name.replace(/ /g, "_").toUpperCase()}`] || ""; - if (options && options.required && !val) { - throw new Error(`Input required and not supplied: ${name}`); - } - if (options && options.trimWhitespace === false) { - return val; - } - return val.trim(); -} -function setOutput(name, value) { - const filePath = process.env["GITHUB_OUTPUT"] || ""; - if (filePath) { - return issueFileCommand("OUTPUT", prepareKeyValueMessage(name, value)); - } - process.stdout.write(os4.EOL); - issueCommand("set-output", { name }, toCommandValue(value)); -} -function setFailed(message) { - process.exitCode = ExitCode.Failure; - error(message); -} -function error(message, properties = {}) { - issueCommand("error", toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -function warning(message, properties = {}) { - issueCommand("warning", toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -function info(message) { - process.stdout.write(message + os4.EOL); -} - -// src/action.ts -import { mkdir as mkdir2, writeFile as writeFile2 } from "node:fs/promises"; -import path from "node:path"; - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/util.js -function jsonStringifyReplacer(_, value) { - if (typeof value === "bigint") - return value.toString(); - return value; -} -function cached(getter) { - const set = false; - return { - get value() { - if (!set) { - const value = getter(); - Object.defineProperty(this, "value", { value }); - return value; - } - throw new Error("cached value already set"); - } - }; -} -function cleanRegex(source) { - const start = source.startsWith("^") ? 1 : 0; - const end = source.endsWith("$") ? source.length - 1 : source.length; - return source.slice(start, end); -} -function assignProp(target, prop, value) { - Object.defineProperty(target, prop, { - value, - writable: true, - enumerable: true, - configurable: true - }); -} -var captureStackTrace = "captureStackTrace" in Error ? Error.captureStackTrace : (..._args) => { -}; -function isObject(data) { - return typeof data === "object" && data !== null && !Array.isArray(data); -} -function clone(inst, def, params) { - const cl = new inst._zod.constr(def ?? inst._zod.def); - if (!def || params?.parent) - cl._zod.parent = inst; - return cl; -} -function normalizeParams(_params) { - const params = _params; - if (!params) - return {}; - if (typeof params === "string") - return { error: () => params }; - if (params?.message !== void 0) { - if (params?.error !== void 0) - throw new Error("Cannot specify both `message` and `error` params"); - params.error = params.message; - } - delete params.message; - if (typeof params.error === "string") - return { ...params, error: () => params.error }; - return params; -} -function optionalKeys(shape) { - return Object.keys(shape).filter((k) => { - return shape[k]._zod.optin !== void 0 && shape[k]._zod.optout === "optional"; - }); -} -function aborted(x, startIndex = 0) { - if (x.aborted === true) - return true; - for (let i = startIndex; i < x.issues.length; i++) { - if (x.issues[i]?.continue !== true) { - return true; - } - } - return false; -} -function explicitlyAborted(x, startIndex = 0) { - if (x.aborted === true) - return true; - for (let i = startIndex; i < x.issues.length; i++) { - if (x.issues[i]?.continue === false) { - return true; - } - } - return false; -} -function prefixIssues(path2, issues) { - return issues.map((iss) => { - var _a2; - (_a2 = iss).path ?? (_a2.path = []); - iss.path.unshift(path2); - return iss; - }); -} -function unwrapMessage(message) { - return typeof message === "string" ? message : message?.message; -} -function attachSchema(issues, start, inst) { - var _a2; - for (let i = start; i < issues.length; i++) { - (_a2 = issues[i]).schema ?? (_a2.schema = inst); - } -} -function finalizeIssue(iss, ctx, config2) { - var _a2; - const traits = iss.inst?._zod?.traits; - if (traits?.has("$ZodType")) { - if (traits.has("$ZodCheck")) - (_a2 = iss).schema ?? (_a2.schema = iss.inst); - else - iss.schema = iss.inst; - } - const schemaError = iss.schema !== iss.inst ? iss.schema?._zod.def?.error : void 0; - const message = iss.message ? iss.message : unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ?? unwrapMessage(schemaError?.(iss)) ?? unwrapMessage(ctx?.error?.(iss)) ?? unwrapMessage(config2.customError?.(iss)) ?? unwrapMessage(config2.localeError?.(iss)) ?? "Invalid input"; - const { inst: _inst, schema: _schema, continue: _continue, input: _input, ...rest } = iss; - rest.path ?? (rest.path = []); - rest.message = message; - if (ctx?.reportInput) { - rest.input = _input; - } - return rest; -} -function issue2(...args) { - const [iss, input, inst] = args; - if (typeof iss === "string") { - return { - message: iss, - code: "custom", - input, - inst - }; - } - return { ...iss }; -} -function members(proto, table) { - for (const key in table) { - const desc = Object.getOwnPropertyDescriptor(table, key); - if (desc.get) - Object.defineProperty(proto, key, { ...desc, enumerable: false }); - else - defineBound(proto, key, desc.value); - } -} -function own(inst, key, value, enumerable = true) { - Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value }); - return value; -} -function hide(inst, key, value) { - return own(inst, key, value, false); -} -function defineBound(proto, key, fn) { - Object.defineProperty(proto, key, { - configurable: true, - get() { - return this == null ? fn : own(this, key, fn.bind(this)); - }, - set(value) { - own(this, key, value); - } - }); -} -function claim(inst, sentinel) { - const proto = Object.getPrototypeOf(inst); - return sentinel in proto ? void 0 : proto; -} -var installing; -var broke = false; -var breaker = { - configurable: true, - get() { - broke = true; - return void 0; - } -}; -function defineLazyInternal(inst, key, compute) { - const proto = Object.getPrototypeOf(inst._zod); - if (key in proto && installing !== inst._zod) { - installing = void 0; - return; - } - installing = inst._zod; - Object.defineProperty(proto, key, { - configurable: true, - get() { - Object.defineProperty(this, key, breaker); - const outer = broke; - broke = false; - try { - const value = compute(this); - if (broke) - delete this[key]; - else - Object.defineProperty(this, key, { configurable: true, writable: true, value }); - broke = broke || outer; - return value; - } catch (err) { - delete this[key]; - broke = broke || outer; - throw err; - } - }, - set(value) { - Object.defineProperty(this, key, { configurable: true, writable: true, value }); - } - }); -} -function installLazyProp(inst, key, make, enumerable) { - const proto = claim(inst, key); - if (!proto) - return; - Object.defineProperty(proto, key, { - configurable: true, - get() { - const desc = { configurable: true, writable: true, enumerable, value: void 0 }; - Object.defineProperty(this, key, desc); - desc.value = make(this); - Object.defineProperty(this, key, desc); - return desc.value; - }, - set(value) { - Object.defineProperty(this, key, { configurable: true, writable: true, enumerable, value }); - } - }); -} - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/core.js -var _a; -var _zodDesc = { value: void 0, enumerable: false }; -var _E = "captureStackTrace" in Error ? Error : null; -function newError(Definition) { - const E = _E; - if (E) { - const saved = E.stackTraceLimit; - if (typeof saved === "number") { - try { - E.stackTraceLimit = 0; - } catch { - _E = null; - return new Definition(); - } - try { - return new Definition(); - } finally { - E.stackTraceLimit = saved; - } - } - } - return new Definition(); -} -// @__NO_SIDE_EFFECTS__ -function $constructor(name, initializer2, proto, params) { - const zodProto = {}; - function Internals(def) { - this.def = def; - this.constr = _; - this.traits = /* @__PURE__ */ new Set(); - } - Internals.prototype = zodProto; - const protoMembers = proto; - const initialized = protoMembers && /* @__PURE__ */ new WeakSet(); - function init(inst, def) { - if (!inst._zod) { - _zodDesc.value = new Internals(def); - try { - Object.defineProperty(inst, "_zod", _zodDesc); - } finally { - _zodDesc.value = void 0; - } - } - if (inst._zod.traits.has(name)) { - return; - } - inst._zod.traits.add(name); - initializer2(inst, def); - if (initialized) { - const own2 = Object.getPrototypeOf(inst); - const ctorProto = inst._zod.constr.prototype; - let up = own2; - while (up && up !== ctorProto) - up = Object.getPrototypeOf(up); - const target = up ?? own2; - if (!initialized.has(target)) { - initialized.add(target); - members(target, protoMembers); - } - } - const proto2 = _.prototype; - for (const k in proto2) { - if (!Object.prototype.hasOwnProperty.call(proto2, k)) - continue; - if (!(k in inst)) { - inst[k] = proto2[k].bind(inst); - } - } - } - const Parent = params?.Parent ?? Object; - class Definition extends Parent { - } - Object.defineProperty(Definition, "name", { value: name }); - function _(def) { - const inst = params?.Parent ? newError(Definition) : this; - init(inst, def); - const deferred = inst._zod.deferred; - if (deferred) { - for (const fn of deferred) { - fn(); - } - inst._zod.deferred = void 0; - } - const pp = globalThis.__zod_globalConfig?.postProcessor; - if (pp) - pp(inst); - return inst; - } - Object.defineProperty(_, "init", { value: init }); - Object.defineProperty(_, Symbol.hasInstance, { - value: (inst) => { - if (params?.Parent && inst instanceof params.Parent) - return true; - return inst?._zod?.traits?.has(name); - } - }); - Object.defineProperty(_, "name", { value: name }); - return _; -} -var $ZodAsyncError = class extends Error { - constructor() { - super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`); - } -}; -var $ZodEncodeError = class extends Error { - constructor(name) { - super(`Encountered unidirectional transform during encode: ${name}`); - this.name = "ZodEncodeError"; - } -}; -(_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {}); -var globalConfig = globalThis.__zod_globalConfig; -function config(newConfig) { - if (newConfig) - Object.assign(globalConfig, newConfig); - return globalConfig; -} - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/errors.js -function _getMessage() { - const internals = this._zod; - internals.message ?? (internals.message = JSON.stringify(internals.def, jsonStringifyReplacer, 2)); - return internals.message; -} -function _setMessage(value) { - this._zod.message = value; -} -var _messageDesc = { - get: _getMessage, - set: _setMessage, - enumerable: true, - configurable: true -}; -var _zodDesc2 = { value: void 0, enumerable: false }; -var _issuesDesc = { value: void 0, enumerable: false }; -var _installedToString = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]); -var initializer = (inst, def) => { - inst.name = "$ZodError"; - _zodDesc2.value = inst._zod; - Object.defineProperty(inst, "_zod", _zodDesc2); - _issuesDesc.value = def; - Object.defineProperty(inst, "issues", _issuesDesc); - _zodDesc2.value = void 0; - _issuesDesc.value = void 0; - Object.defineProperty(inst, "message", _messageDesc); - const proto = Object.getPrototypeOf(inst); - if (!_installedToString.has(proto)) { - _installedToString.add(proto); - Object.defineProperty(proto, "toString", { - configurable: true, - enumerable: false, - get() { - const value = () => this.message; - Object.defineProperty(this, "toString", { value, configurable: true, writable: true }); - return value; - }, - set(value) { - Object.defineProperty(this, "toString", { value, configurable: true, writable: true }); - } - }); - } -}; -var $ZodError = $constructor("$ZodError", initializer); -var $ZodRealError = $constructor("$ZodError", initializer, void 0, { - Parent: Error -}); - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/parse.js -var _parse = (_Err) => { - const fn = (schema, value, _ctx, _params) => { - const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; - const result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) { - throw new $ZodAsyncError(); - } - if (result.issues.length) { - const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); - captureStackTrace(e, _params?.callee ?? fn); - throw e; - } - return result.value; - }; - return fn; -}; -var parse = /* @__PURE__ */ _parse($ZodRealError); -var _parseAsync = (_Err) => { - const fn = async (schema, value, _ctx, params) => { - const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; - let result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) - result = await result; - if (result.issues.length) { - const e = new (params?.Err ?? _Err)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))); - captureStackTrace(e, params?.callee ?? fn); - throw e; - } - return result.value; - }; - return fn; -}; -var parseAsync = /* @__PURE__ */ _parseAsync($ZodRealError); -var _safeParse = (_Err) => (schema, value, _ctx) => { - const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; - const result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) { - throw new $ZodAsyncError(); - } - return result.issues.length ? { - success: false, - error: new (_Err ?? $ZodError)(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) - } : { success: true, data: result.value }; -}; -var safeParse = /* @__PURE__ */ _safeParse($ZodRealError); -var _safeParseAsync = (_Err) => async (schema, value, _ctx) => { - const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; - let result = schema._zod.run({ value, issues: [] }, ctx); - if (result instanceof Promise) - result = await result; - return result.issues.length ? { - success: false, - error: new _Err(result.issues.map((iss) => finalizeIssue(iss, ctx, config()))) - } : { success: true, data: result.value }; -}; -var safeParseAsync = /* @__PURE__ */ _safeParseAsync($ZodRealError); - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/regexes.js -var string = (params) => { - const regex = params ? `[\\s\\S]{${params?.minimum ?? 0},${params?.maximum ?? ""}}` : `[\\s\\S]*`; - return new RegExp(`^${regex}$`); -}; - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/checks.js -var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => { - var _a2; - inst._zod ?? (inst._zod = {}); - inst._zod.def = def; - (_a2 = inst._zod).onattach ?? (_a2.onattach = []); -}); - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/versions.js -var version = { - major: 4, - minor: 5, - patch: 2 -}; - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/schemas.js -var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => { - var _a2; - inst ?? (inst = {}); - inst._zod.def = def; - inst._zod.bag = inst._zod.bag || {}; - inst._zod.version = version; - const defChecks = inst._zod.def.checks; - const checks = inst._zod.traits.has("$ZodCheck") ? [inst, ...defChecks ?? []] : defChecks?.length ? [...defChecks] : []; - for (const ch of checks) { - for (const fn of ch._zod.onattach) { - fn(inst); - } - } - if (checks.length === 0) { - (_a2 = inst._zod).deferred ?? (_a2.deferred = []); - inst._zod.deferred?.push(() => { - inst._zod.run = inst._zod.parse; - }); - } else { - const runChecks = (payload, checks2, ctx) => { - if (payload.memo) - return payload; - let isAborted = aborted(payload); - let asyncResult; - for (const ch of checks2) { - if (ch._zod.def.when) { - if (explicitlyAborted(payload)) - continue; - const shouldRun = ch._zod.def.when(payload); - if (!shouldRun) - continue; - } else if (isAborted) { - continue; - } - const currLen = payload.issues.length; - const _ = ch._zod.check(payload); - if (_ instanceof Promise && ctx?.async === false) { - throw new $ZodAsyncError(); - } - if (asyncResult || _ instanceof Promise) { - asyncResult = (asyncResult ?? Promise.resolve()).then(async () => { - await _; - const nextLen = payload.issues.length; - if (nextLen === currLen) - return; - attachSchema(payload.issues, currLen, inst); - if (!isAborted) - isAborted = aborted(payload, currLen); - }); - } else { - const nextLen = payload.issues.length; - if (nextLen === currLen) - continue; - attachSchema(payload.issues, currLen, inst); - if (!isAborted) - isAborted = aborted(payload, currLen); - } - } - if (asyncResult) { - return asyncResult.then(() => { - return payload; - }); - } - return payload; - }; - const handleCanaryResult = (canary, payload, ctx) => { - if (aborted(canary)) { - canary.aborted = true; - return canary; - } - const checkResult = runChecks(payload, checks, ctx); - if (checkResult instanceof Promise) { - if (ctx.async === false) - throw new $ZodAsyncError(); - return checkResult.then((checkResult2) => inst._zod.parse(checkResult2, ctx)); - } - return inst._zod.parse(checkResult, ctx); - }; - inst._zod.run = (payload, ctx) => { - if (ctx.skipChecks) { - return inst._zod.parse(payload, ctx); - } - if (ctx.direction === "backward") { - const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true }); - if (canary instanceof Promise) { - return canary.then((canary2) => { - return handleCanaryResult(canary2, payload, ctx); - }); - } - return handleCanaryResult(canary, payload, ctx); - } - const result = inst._zod.parse(payload, ctx); - if (result instanceof Promise) { - if (ctx.async === false) - throw new $ZodAsyncError(); - return result.then((result2) => runChecks(result2, checks, ctx)); - } - return runChecks(result, checks, ctx); - }; - } -}, { - // Wrappers extend this by installing a richer factory over it; reading it eagerly would defeat the laziness. - get "~standard"() { - return hide(this, "~standard", standardProps(this)); - }, - set "~standard"(value) { - own(this, "~standard", value); - } -}); -var toStandardResult = (r) => r.success ? { value: r.data } : { issues: r.error?.issues }; -function standardProps(inst) { - return { - validate: (value) => { - try { - return toStandardResult(safeParse(inst, value)); - } catch (_) { - return safeParseAsync(inst, value).then(toStandardResult); - } - }, - vendor: "zod", - version: 1 - }; -} -var $ZodString = /* @__PURE__ */ $constructor("$ZodString", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.pattern = [...inst?._zod.bag?.patterns ?? []].pop() ?? string(inst._zod.bag); - inst._zod.parse = (payload, _) => { - if (def.coerce) - try { - payload.value = String(payload.value); - } catch (_2) { - } - if (typeof payload.value === "string") - return payload; - payload.issues.push({ - expected: "string", - code: "invalid_type", - input: payload.value, - inst - }); - return payload; - }; -}); -function handlePropertyResult(result, final, key, input, optin, optout) { - const isPresent = key in input; - const isOptionalOut = optout === "optional"; - if (!isPresent && isOptionalOut && optin === "optional") { - return; - } - if (result.issues.length) { - if (optin !== void 0 && isOptionalOut && !isPresent) { - return; - } - final.issues.push(...prefixIssues(key, result.issues)); - } - if (!isPresent && optin === void 0) { - if (!result.issues.length) { - final.issues.push({ - code: "invalid_type", - expected: "nonoptional", - input: void 0, - path: [key] - }); - } - return; - } - if (result.value === void 0) { - if (isPresent) { - final.value[key] = void 0; - } - } else { - final.value[key] = result.value; - } -} -var NO_SYMBOL_KEYS = []; -function normalizeDef(def) { - const keys = Object.keys(def.shape); - const ownSymbols = Object.getOwnPropertySymbols(def.shape); - const symbolKeys = ownSymbols.length ? ownSymbols : NO_SYMBOL_KEYS; - const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys; - for (const k of allKeys) { - if (!def.shape?.[k]?._zod?.traits?.has("$ZodType")) { - throw new Error(`Invalid element at key "${String(k)}": expected a Zod schema`); - } - } - const okeys = optionalKeys(def.shape); - return { - ...def, - allKeys, - symbolKeys, - // string-only: handleCatchall matches it against `for...in`, which never yields a symbol - keySet: new Set(keys), - numKeys: keys.length, - optionalKeys: new Set(okeys) - }; -} -function handleCatchall(proms, input, payload, ctx, def, inst) { - const unrecognized = []; - const keySet = def.keySet; - const _catchall = def.catchall._zod; - const t = _catchall.def.type; - const optin = _catchall.optin; - const optout = _catchall.optout; - for (const key in input) { - if (keySet.has(key)) - continue; - if (key === "__proto__") { - if (t === "never") - unrecognized.push(key); - continue; - } - if (t === "never") { - unrecognized.push(key); - continue; - } - const r = _catchall.run({ value: input[key], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, optin, optout))); - } else { - handlePropertyResult(r, payload, key, input, optin, optout); - } - } - if (unrecognized.length) { - payload.issues.push({ - code: "unrecognized_keys", - keys: unrecognized, - input, - inst, - // Describes the shape of the input, not the validity of the parsed value, so it never aborts. The parse still fails; the schema's own checks just get to run first, and an enclosing intersection can reconcile the key against a sibling operand. - continue: true - }); - } - if (!proms.length) - return payload; - return Promise.all(proms).then(() => { - return payload; - }); -} -var propShapes = /* @__PURE__ */ new WeakMap(); -var $ZodObject = /* @__PURE__ */ $constructor("$ZodObject", (inst, def) => { - $ZodType.init(inst, def); - const desc = Object.getOwnPropertyDescriptor(def, "shape"); - if (!desc?.get) { - const sh = def.shape; - propShapes.set(def, sh); - Object.defineProperty(def, "shape", { - get: () => { - const newSh = { ...sh }; - Object.defineProperty(def, "shape", { - value: newSh - }); - propShapes.set(def, newSh); - return newSh; - } - }); - } - const _normalized = cached(() => normalizeDef(def)); - defineLazyInternal(inst, "propValues", (zod) => { - const shape = zod.def.shape; - const propValues = {}; - for (const key in shape) { - const field = shape[key]._zod; - if (field.values) { - if (!Object.prototype.hasOwnProperty.call(propValues, key)) { - assignProp(propValues, key, /* @__PURE__ */ new Set()); - } - for (const v of field.values) - propValues[key].add(v); - if (field.optin !== void 0) - propValues[key].add(void 0); - } - } - return propValues; - }); - const isObject2 = isObject; - const catchall = def.catchall; - let value; - const memo = globalConfig.memoizer; - memo?.attach(inst); - inst._zod.parse = (payload, ctx) => { - value ?? (value = _normalized.value); - const input = payload.value; - if (!isObject2(input)) { - payload.issues.push({ - expected: "object", - code: "invalid_type", - input, - inst - }); - return payload; - } - payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {}; - const proms = []; - const shape = value.shape; - for (const key of value.allKeys) { - if (key === "__proto__") - continue; - const el = shape[key]; - const optin = el._zod.optin; - const optout = el._zod.optout; - const r = el._zod.run({ value: input[key], issues: [] }, ctx); - if (r instanceof Promise) { - proms.push(r.then((r2) => handlePropertyResult(r2, payload, key, input, optin, optout))); - } else { - handlePropertyResult(r, payload, key, input, optin, optout); - } - } - if (!catchall) { - return proms.length ? Promise.all(proms).then(() => payload) : payload; - } - return handleCatchall(proms, input, payload, ctx, _normalized.value, inst); - }; -}); -var $ZodTransform = /* @__PURE__ */ $constructor("$ZodTransform", (inst, def) => { - $ZodType.init(inst, def); - inst._zod.optin = "optional"; - globalConfig.memoizer?.guard(inst); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - throw new $ZodEncodeError(inst.constructor.name); - } - const _out = def.transform(payload.value, payload); - if (ctx.async) { - const output = _out instanceof Promise ? _out : Promise.resolve(_out); - return output.then((output2) => { - payload.value = output2; - return payload; - }); - } - if (_out instanceof Promise) { - throw new $ZodAsyncError(); - } - payload.value = _out; - return payload; - }; -}); -function handleOptionalResult(payload, result) { - payload.value = result.issues.length ? void 0 : result.value; - return payload; -} -var $ZodOptional = /* @__PURE__ */ $constructor("$ZodOptional", (inst, def) => { - $ZodType.init(inst, def); - defineLazyInternal(inst, "optin", (zod) => zod.def.innerType._zod.optin === "defaulted" ? "defaulted" : "optional"); - inst._zod.optout = "optional"; - defineLazyInternal(inst, "values", (zod) => { - const values = zod.def.innerType._zod.values; - return values ? /* @__PURE__ */ new Set([...values, void 0]) : void 0; - }); - defineLazyInternal(inst, "pattern", (zod) => { - const pattern = zod.def.innerType._zod.pattern; - return pattern ? new RegExp(`^(${cleanRegex(pattern.source)})?$`) : void 0; - }); - inst._zod.parse = (payload, ctx) => { - if (payload.value === void 0) { - if (def.innerType._zod.optin !== "defaulted") - return payload; - const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx); - if (result instanceof Promise) - return result.then((result2) => handleOptionalResult(payload, result2)); - return handleOptionalResult(payload, result); - } - return def.innerType._zod.run(payload, ctx); - }; -}); -var $ZodPipe = /* @__PURE__ */ $constructor("$ZodPipe", (inst, def) => { - $ZodType.init(inst, def); - defineLazyInternal(inst, "values", (zod) => zod.def.in._zod.values); - defineLazyInternal(inst, "optin", (zod) => zod.def.in._zod.optin); - defineLazyInternal(inst, "optout", (zod) => zod.def.out._zod.optout); - defineLazyInternal(inst, "propValues", (zod) => zod.def.in._zod.propValues); - inst._zod.parse = (payload, ctx) => { - if (ctx.direction === "backward") { - const right = def.out._zod.run(payload, ctx); - if (right instanceof Promise) { - return right.then((right2) => handlePipeResult(right2, def.in, ctx)); - } - return handlePipeResult(right, def.in, ctx); - } - const left = def.in._zod.run(payload, ctx); - if (left instanceof Promise) { - return left.then((left2) => handlePipeResult(left2, def.out, ctx)); - } - return handlePipeResult(left, def.out, ctx); - }; -}); -function handlePipeResult(left, next, ctx) { - if (left.issues.some((iss) => iss.code !== "unrecognized_keys")) { - left.aborted = true; - return left; - } - return next._zod.run({ value: left.value, issues: left.issues }, ctx); -} -var $ZodCustom = /* @__PURE__ */ $constructor("$ZodCustom", (inst, def) => { - $ZodCheck.init(inst, def); - $ZodType.init(inst, def); - inst._zod.parse = (payload, _) => { - return payload; - }; - inst._zod.check = (payload) => { - const input = payload.value; - const r = def.fn(input); - if (r instanceof Promise) { - return r.then((r2) => handleRefineResult(r2, payload, input, inst)); - } - handleRefineResult(r, payload, input, inst); - return; - }; -}); -function handleRefineResult(result, payload, input, inst) { - if (!result) { - const _iss = { - code: "custom", - input, - inst, - // incorporates params.error into issue reporting - path: [...inst._zod.def.path ?? []], - // incorporates params.error into issue reporting - continue: !inst._zod.def.abort - // params: inst._zod.def.params, - }; - if (inst._zod.def.params) - _iss.params = inst._zod.def.params; - payload.issues.push(issue2(_iss)); - } -} - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/core/api.js -// @__NO_SIDE_EFFECTS__ -function _string(Class, params) { - return new Class({ - type: "string", - ...normalizeParams(params) - }); -} -// @__NO_SIDE_EFFECTS__ -function _refine(Class, fn, _params) { - const schema = new Class({ - type: "custom", - check: "custom", - fn, - ...normalizeParams(_params) - }); - return schema; -} - -// node_modules/.pnpm/zod@4.5.2/node_modules/zod/v4/mini/schemas.js -var ZodMiniType = /* @__PURE__ */ $constructor("ZodMiniType", (inst, def) => { - if (!inst._zod) - throw new Error("Uninitialized schema in ZodMiniType."); - $ZodType.init(inst, def); - inst.def = def; - inst.type = def.type; -}, { - // `with` is an alias for `check`: the same function object, not a wrapper. - get with() { - return this.check; - }, - set with(value) { - own(this, "with", value); - }, - parse(data, params) { - return parse(this, data, params, { callee: this.parse }); - }, - parseAsync(data, params) { - return parseAsync(this, data, params, { callee: this.parseAsync }); - }, - safeParse(data, params) { - return safeParse(this, data, params); - }, - safeParseAsync(data, params) { - return safeParseAsync(this, data, params); - }, - check(...checks) { - const def = this.def; - return this.clone({ - ...def, - checks: [ - ...def.checks ?? [], - ...checks.map((ch) => typeof ch === "function" ? { _zod: { check: ch, def: { check: "custom" }, onattach: [] } } : ch) - ] - }, { parent: true }); - }, - clone(_def, params) { - return clone(this, _def, params); - }, - brand() { - return this; - }, - register(reg, meta2) { - reg.add(this, meta2); - return this; - }, - apply(fn, ...args) { - return args.length === 0 ? fn(this) : fn(this, ...args); - } -}); -var ZodMiniString = /* @__PURE__ */ $constructor("ZodMiniString", (inst, def) => { - $ZodString.init(inst, def); - ZodMiniType.init(inst, def); -}); -// @__NO_SIDE_EFFECTS__ -function string2(params) { - return _string(ZodMiniString, params); -} -var ZodMiniObject = /* @__PURE__ */ $constructor("ZodMiniObject", (inst, def) => { - $ZodObject.init(inst, def); - ZodMiniType.init(inst, def); - installLazyProp(inst, "shape", (self) => self._zod.def.shape, false); -}); -// @__NO_SIDE_EFFECTS__ -function object(shape, params) { - const def = { - type: "object", - shape: shape ?? {}, - ...normalizeParams(params) - }; - return new ZodMiniObject(def); -} -var ZodMiniTransform = /* @__PURE__ */ $constructor("ZodMiniTransform", (inst, def) => { - $ZodTransform.init(inst, def); - ZodMiniType.init(inst, def); -}); -// @__NO_SIDE_EFFECTS__ -function transform(fn) { - return new ZodMiniTransform({ - type: "transform", - transform: fn - }); -} -var ZodMiniOptional = /* @__PURE__ */ $constructor("ZodMiniOptional", (inst, def) => { - $ZodOptional.init(inst, def); - ZodMiniType.init(inst, def); -}); -// @__NO_SIDE_EFFECTS__ -function optional(innerType) { - return new ZodMiniOptional({ - type: "optional", - innerType - }); -} -var ZodMiniPipe = /* @__PURE__ */ $constructor("ZodMiniPipe", (inst, def) => { - $ZodPipe.init(inst, def); - ZodMiniType.init(inst, def); -}); -// @__NO_SIDE_EFFECTS__ -function pipe(in_, out) { - return new ZodMiniPipe({ - type: "pipe", - in: in_, - out - }); -} -var ZodMiniCustom = /* @__PURE__ */ $constructor("ZodMiniCustom", (inst, def) => { - $ZodCustom.init(inst, def); - ZodMiniType.init(inst, def); -}); -// @__NO_SIDE_EFFECTS__ -function refine(fn, _params = {}) { - return _refine(ZodMiniCustom, fn, _params); -} - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/themes/index.js -var themes = { - default: { - title_color: "2f80ed", - icon_color: "4c71f2", - text_color: "434d58", - bg_color: "fffefe", - border_color: "e4e2e2" - }, - default_repocard: { - title_color: "2f80ed", - icon_color: "586069", - // icon color is different - text_color: "434d58", - bg_color: "fffefe" - }, - light_github: { - title_color: "0969da", - icon_color: "0969da", - text_color: "59636e", - bg_color: "ffffff", - border_color: "d1d9e0" - }, - dark_github: { - title_color: "4493f8", - icon_color: "4493f8", - text_color: "9198a1", - bg_color: "0d1117", - border_color: "3d444d" - }, - light_github_repocard: { - title_color: "0969da", - icon_color: "59636e", - text_color: "59636e", - bg_color: "ffffff", - border_color: "d1d9e0" - }, - dark_github_repocard: { - title_color: "4493f8", - icon_color: "9198a1", - text_color: "9198a1", - bg_color: "0d1117", - border_color: "3d444d" - }, - transparent: { - title_color: "006AFF", - icon_color: "0579C3", - text_color: "417E87", - bg_color: "ffffff00" - }, - shadow_red: { - title_color: "9A0000", - text_color: "444", - icon_color: "4F0000", - border_color: "4F0000", - bg_color: "ffffff00" - }, - shadow_green: { - title_color: "007A00", - text_color: "444", - icon_color: "003D00", - border_color: "003D00", - bg_color: "ffffff00" - }, - shadow_blue: { - title_color: "00779A", - text_color: "444", - icon_color: "004450", - border_color: "004490", - bg_color: "ffffff00" - }, - dark: { - title_color: "fff", - icon_color: "79ff97", - text_color: "9f9f9f", - bg_color: "151515" - }, - radical: { - title_color: "fe428e", - icon_color: "f8d847", - text_color: "a9fef7", - bg_color: "141321" - }, - merko: { - title_color: "abd200", - icon_color: "b7d364", - text_color: "68b587", - bg_color: "0a0f0b" - }, - gruvbox: { - title_color: "fabd2f", - icon_color: "fe8019", - text_color: "8ec07c", - bg_color: "282828" - }, - gruvbox_light: { - title_color: "b57614", - icon_color: "af3a03", - text_color: "427b58", - bg_color: "fbf1c7" - }, - tokyonight: { - title_color: "70a5fd", - icon_color: "bf91f3", - text_color: "38bdae", - bg_color: "1a1b27" - }, - onedark: { - title_color: "e4bf7a", - icon_color: "8eb573", - text_color: "df6d74", - bg_color: "282c34" - }, - cobalt: { - title_color: "e683d9", - icon_color: "0480ef", - text_color: "75eeb2", - bg_color: "193549" - }, - synthwave: { - title_color: "e2e9ec", - icon_color: "ef8539", - text_color: "e5289e", - bg_color: "2b213a" - }, - highcontrast: { - title_color: "e7f216", - icon_color: "00ffff", - text_color: "fff", - bg_color: "000" - }, - dracula: { - title_color: "ff6e96", - icon_color: "79dafa", - text_color: "f8f8f2", - bg_color: "282a36" - }, - prussian: { - title_color: "bddfff", - icon_color: "38a0ff", - text_color: "6e93b5", - bg_color: "172f45" - }, - monokai: { - title_color: "eb1f6a", - icon_color: "e28905", - text_color: "f1f1eb", - bg_color: "272822" - }, - vue: { - title_color: "41b883", - icon_color: "41b883", - text_color: "273849", - bg_color: "fffefe" - }, - "vue-dark": { - title_color: "41b883", - icon_color: "41b883", - text_color: "fffefe", - bg_color: "273849" - }, - "shades-of-purple": { - title_color: "fad000", - icon_color: "b362ff", - text_color: "a599e9", - bg_color: "2d2b55" - }, - nightowl: { - title_color: "c792ea", - icon_color: "ffeb95", - text_color: "7fdbca", - bg_color: "011627" - }, - buefy: { - title_color: "7957d5", - icon_color: "ff3860", - text_color: "363636", - bg_color: "ffffff" - }, - "blue-green": { - title_color: "2f97c1", - icon_color: "f5b700", - text_color: "0cf574", - bg_color: "040f0f" - }, - algolia: { - title_color: "00AEFF", - icon_color: "2DDE98", - text_color: "FFFFFF", - bg_color: "050F2C" - }, - "great-gatsby": { - title_color: "ffa726", - icon_color: "ffb74d", - text_color: "ffd95b", - bg_color: "000000" - }, - darcula: { - title_color: "BA5F17", - icon_color: "84628F", - text_color: "BEBEBE", - bg_color: "242424" - }, - bear: { - title_color: "e03c8a", - icon_color: "00AEFF", - text_color: "bcb28d", - bg_color: "1f2023" - }, - "solarized-dark": { - title_color: "268bd2", - icon_color: "b58900", - text_color: "859900", - bg_color: "002b36" - }, - "solarized-light": { - title_color: "268bd2", - icon_color: "b58900", - text_color: "859900", - bg_color: "fdf6e3" - }, - "chartreuse-dark": { - title_color: "7fff00", - icon_color: "00AEFF", - text_color: "fff", - bg_color: "000" - }, - nord: { - title_color: "81a1c1", - text_color: "d8dee9", - icon_color: "88c0d0", - bg_color: "2e3440" - }, - gotham: { - title_color: "2aa889", - icon_color: "599cab", - text_color: "99d1ce", - bg_color: "0c1014" - }, - "material-palenight": { - title_color: "c792ea", - icon_color: "89ddff", - text_color: "a6accd", - bg_color: "292d3e" - }, - graywhite: { - title_color: "24292e", - icon_color: "24292e", - text_color: "24292e", - bg_color: "ffffff" - }, - "vision-friendly-dark": { - title_color: "ffb000", - icon_color: "785ef0", - text_color: "ffffff", - bg_color: "000000" - }, - "ayu-mirage": { - title_color: "f4cd7c", - icon_color: "73d0ff", - text_color: "c7c8c2", - bg_color: "1f2430" - }, - "midnight-purple": { - title_color: "9745f5", - icon_color: "9f4bff", - text_color: "ffffff", - bg_color: "000000" - }, - calm: { - title_color: "e07a5f", - icon_color: "edae49", - text_color: "ebcfb2", - bg_color: "373f51" - }, - "flag-india": { - title_color: "ff8f1c", - icon_color: "250E62", - text_color: "509E2F", - bg_color: "ffffff" - }, - omni: { - title_color: "FF79C6", - icon_color: "e7de79", - text_color: "E1E1E6", - bg_color: "191622" - }, - react: { - title_color: "61dafb", - icon_color: "61dafb", - text_color: "ffffff", - bg_color: "20232a" - }, - jolly: { - title_color: "ff64da", - icon_color: "a960ff", - text_color: "ffffff", - bg_color: "291B3E" - }, - maroongold: { - title_color: "F7EF8A", - icon_color: "F7EF8A", - text_color: "E0AA3E", - bg_color: "260000" - }, - yeblu: { - title_color: "ffff00", - icon_color: "ffff00", - text_color: "ffffff", - bg_color: "002046" - }, - blueberry: { - title_color: "82aaff", - icon_color: "89ddff", - text_color: "27e8a7", - bg_color: "242938" - }, - slateorange: { - title_color: "faa627", - icon_color: "faa627", - text_color: "ffffff", - bg_color: "36393f" - }, - kacho_ga: { - title_color: "bf4a3f", - icon_color: "a64833", - text_color: "d9c8a9", - bg_color: "402b23" - }, - outrun: { - title_color: "ffcc00", - icon_color: "ff1aff", - text_color: "8080ff", - bg_color: "141439" - }, - ocean_dark: { - title_color: "8957B2", - icon_color: "FFFFFF", - text_color: "92D534", - bg_color: "151A28" - }, - city_lights: { - title_color: "5D8CB3", - icon_color: "4798FF", - text_color: "718CA1", - bg_color: "1D252C" - }, - github_dark: { - title_color: "58A6FF", - icon_color: "1F6FEB", - text_color: "C3D1D9", - bg_color: "0D1117" - }, - github_dark_dimmed: { - title_color: "539bf5", - icon_color: "539bf5", - text_color: "ADBAC7", - bg_color: "24292F", - border_color: "373E47" - }, - discord_old_blurple: { - title_color: "7289DA", - icon_color: "7289DA", - text_color: "FFFFFF", - bg_color: "2C2F33" - }, - aura_dark: { - title_color: "ff7372", - icon_color: "6cffd0", - text_color: "dbdbdb", - bg_color: "252334" - }, - panda: { - title_color: "19f9d899", - icon_color: "19f9d899", - text_color: "FF75B5", - bg_color: "31353a" - }, - noctis_minimus: { - title_color: "d3b692", - icon_color: "72b7c0", - text_color: "c5cdd3", - bg_color: "1b2932" - }, - cobalt2: { - title_color: "ffc600", - icon_color: "ffffff", - text_color: "0088ff", - bg_color: "193549" - }, - swift: { - title_color: "000000", - icon_color: "f05237", - text_color: "000000", - bg_color: "f7f7f7" - }, - aura: { - title_color: "a277ff", - icon_color: "ffca85", - text_color: "61ffca", - bg_color: "15141b" - }, - apprentice: { - title_color: "ffffff", - icon_color: "ffffaf", - text_color: "bcbcbc", - bg_color: "262626" - }, - moltack: { - title_color: "86092C", - icon_color: "86092C", - text_color: "574038", - bg_color: "F5E1C0" - }, - codeSTACKr: { - title_color: "ff652f", - icon_color: "FFE400", - text_color: "ffffff", - bg_color: "09131B", - border_color: "0c1a25" - }, - rose_pine: { - title_color: "9ccfd8", - icon_color: "ebbcba", - text_color: "e0def4", - bg_color: "191724" - }, - catppuccin_latte: { - title_color: "137980", - icon_color: "8839ef", - text_color: "4c4f69", - bg_color: "eff1f5" - }, - catppuccin_mocha: { - title_color: "94e2d5", - icon_color: "cba6f7", - text_color: "cdd6f4", - bg_color: "1e1e2e" - }, - date_night: { - title_color: "DA7885", - text_color: "E1B2A2", - icon_color: "BB8470", - border_color: "170F0C", - bg_color: "170F0C" - }, - one_dark_pro: { - title_color: "61AFEF", - text_color: "E5C06E", - icon_color: "C678DD", - border_color: "3B4048", - bg_color: "23272E" - }, - rose: { - title_color: "8d192b", - text_color: "862931", - icon_color: "B71F36", - border_color: "e9d8d4", - bg_color: "e9d8d4" - }, - holi: { - title_color: "5FABEE", - text_color: "D6E7FF", - icon_color: "5FABEE", - border_color: "85A4C0", - bg_color: "030314" - }, - neon: { - title_color: "00EAD3", - text_color: "FF449F", - icon_color: "00EAD3", - border_color: "ffffff", - bg_color: "000000" - }, - blue_navy: { - title_color: "82AAFF", - text_color: "82AAFF", - icon_color: "82AAFF", - border_color: "ffffff", - bg_color: "000000" - }, - calm_pink: { - title_color: "e07a5f", - text_color: "edae49", - icon_color: "ebcfb2", - border_color: "e1bc29", - bg_color: "2b2d40" - }, - ambient_gradient: { - title_color: "ffffff", - text_color: "ffffff", - icon_color: "ffffff", - bg_color: "35,4158d0,c850c0,ffcc70" - } -}; -var isThemeName = (value) => { - if (typeof value !== "string") { - return false; - } - return value in themes; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/color.js -var HEX_COLOR = /^([A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/; -var isBareHexColor = (value) => { - return typeof value === "string" && HEX_COLOR.test(value); -}; -var isPrefixedHexColor = (value) => { - return typeof value === "string" && value.startsWith("#") && HEX_COLOR.test(value.slice(1)); -}; -var isValidGradient = (parts) => { - const [angle, ...stops] = parts; - return stops.length >= 2 && angle !== void 0 && angle.trim() !== "" && Number.isFinite(Number(angle)) && stops.every(isBareHexColor); -}; -var isValidColorInput = (color) => { - if (color === null || color === void 0) { - return true; - } - return isValidGradient(color.split(",")) || isBareHexColor(color); -}; -var fallbackColor = (color, fallbackColor2) => { - const colors = color ? color.split(",") : []; - if (colors.length > 1 && isValidGradient(colors)) { - return colors; - } - if (color !== void 0 && isBareHexColor(color)) { - return `#${color}`; - } - return fallbackColor2; -}; -var BASE_COLOR_KEYS = [ - "title_color", - "icon_color", - "text_color", - "bg_color", - "border_color", - "ring_color", - "prog_bar_bg_color", - "theme" -]; -var THEME_VARIANTS = ["light", "dark"]; -var getCardColors = ({ title_color, text_color, icon_color, bg_color, border_color, ring_color, prog_bar_bg_color, theme }) => { - const defaultTheme = themes.default; - const selectedTheme = isThemeName(theme) ? themes[theme] : defaultTheme; - const defaultBorderColor = "border_color" in selectedTheme ? selectedTheme.border_color : defaultTheme.border_color; - const titleColor = fallbackColor(title_color || selectedTheme.title_color, "#" + defaultTheme.title_color); - const iconColor = fallbackColor(icon_color || selectedTheme.icon_color, "#" + defaultTheme.icon_color); - const textColor = fallbackColor(text_color || selectedTheme.text_color, "#" + defaultTheme.text_color); - const bgColor = fallbackColor(bg_color || selectedTheme.bg_color, "#" + defaultTheme.bg_color); - const borderColor = fallbackColor(border_color || defaultBorderColor, "#" + defaultBorderColor); - const ringColor = fallbackColor(ring_color, titleColor); - const progBarBgColor = fallbackColor(prog_bar_bg_color, "#ddd"); - if (typeof titleColor !== "string" || typeof textColor !== "string" || typeof ringColor !== "string" || typeof progBarBgColor !== "string" || typeof iconColor !== "string" || typeof borderColor !== "string") { - throw new Error("Unexpected behavior, all colors except background should be string."); - } - return { - titleColor, - iconColor, - textColor, - bgColor, - borderColor, - ringColor, - progBarBgColor - }; -}; -var extractLightDarkColors = (params, suffix) => Object.fromEntries(BASE_COLOR_KEYS.map((key) => [key, params[`${key}${suffix}`]])); -var getLightDarkColors = (params) => { - const lightOverrides = extractLightDarkColors(params, "_light"); - const darkOverrides = extractLightDarkColors(params, "_dark"); - const hasModeOverrides = Object.values(lightOverrides).some((v) => v !== void 0) || Object.values(darkOverrides).some((v) => v !== void 0); - if (!hasModeOverrides) { - return { lightColors: getCardColors(params), darkColors: null }; - } - const defined = (obj) => Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== void 0)); - return { - lightColors: getCardColors({ ...params, ...defined(lightOverrides) }), - darkColors: getCardColors({ ...params, ...defined(darkOverrides) }) - }; -}; -var COLOR_PARAM_KEYS = [ - ...BASE_COLOR_KEYS, - ...THEME_VARIANTS.flatMap((variant) => BASE_COLOR_KEYS.map((key) => `${key}_${variant}`)) -]; -var THEME_PARAM_KEYS = [ - "theme", - ...THEME_VARIANTS.map((variant) => `theme_${variant}`) -]; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/html.js -var encodeHTML = (str) => { - return str.replace(/[\u00A0-\u9999<>&"'](?!#)/gim, (i) => { - return `&#${i.charCodeAt(0)};`; - }).replace(/\u0008/gim, ""); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/constants.js -var OWNER_AFFILIATIONS = [ - "OWNER", - "COLLABORATOR", - "ORGANIZATION_MEMBER" -]; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/error.js -var TRY_AGAIN_LATER = "Please try again later"; -var RETRYABLE = { - invalid_param: false, - missing_param: false, - not_found: false, - no_tokens: false, - rate_limited: true, - upstream: true -}; -var SECONDARY_ERROR_MESSAGES = { - rate_limited: "You can deploy own instance or wait until public will be no longer limited", - no_tokens: "Please add an env variable called PAT_1 with your GitHub API token in your deployment environment", - upstream: TRY_AGAIN_LATER -}; -var CardError = class _CardError extends Error { - code; - secondaryMessage; - param; - /** - * @param message First line of the error card. - * @param init Why it failed, and what to draw under the message. - */ - constructor(message, init) { - super(message); - this.name = "CardError"; - this.code = init.code; - this.param = init.param; - this.secondaryMessage = init.secondaryMessage ?? SECONDARY_ERROR_MESSAGES[init.code]; - } - /** Whether repeating the request could produce a different answer. */ - get retryable() { - return RETRYABLE[this.code]; - } - /** - * A param the endpoint cannot render with. - * - * @param param Name of the param. - * @param secondaryMessage What is wrong with it. - * @returns The error. - */ - static invalidParam(param, secondaryMessage) { - return new _CardError("Something went wrong", { - code: "invalid_param", - secondaryMessage, - param - }); - } - /** - * A param the endpoint cannot render without. - * - * @param params Names of the missing params. - * `param` carries the first; the message names them all. - * @param secondaryMessage Where to pass them, when the endpoint can say. - * @returns The error. - */ - static missingParam(params, secondaryMessage) { - const named = params.map((param) => `"${param}"`).join(", "); - return new _CardError(`Missing params ${named} make sure you pass the parameters in URL`, { - code: "missing_param", - secondaryMessage, - param: params[0] - }); - } - /** - * Anything thrown that is not already a `CardError`: - * an upstream failure, since the query itself got this far. - * - * @param err Whatever was thrown. - * @returns The error, unchanged when it already was one. - */ - static from(err) { - if (err instanceof _CardError) { - return err; - } - if (err instanceof Error) { - return new _CardError(err.message, { code: "upstream" }); - } - return new _CardError("An unknown error occurred", { code: "upstream" }); - } -}; -var INVALID_AFFILIATION = `Invalid owner affiliations. Valid values are: ${OWNER_AFFILIATIONS.join(", ")}`; -var WAKATIME_USER_NOT_FOUND = "Make sure you have a public WakaTime profile"; -var USER_NOT_FOUND = "Make sure the provided username is not an organization"; -var REPO_NOT_FOUND = "Make sure the provided username and repository are correct"; -var GIST_NOT_FOUND = "Make sure the provided gist ID is correct"; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/fmt.js -var kFormatter = (num, precision) => { - const abs = Math.abs(num); - const sign = Math.sign(num); - if (typeof precision === "number" && !isNaN(precision)) { - return (sign * (abs / 1e3)).toFixed(precision) + "k"; - } - if (abs < 1e3) { - return sign * abs; - } - return `${sign * parseFloat((abs / 1e3).toFixed(1))}k`; -}; -var formatBytes = (bytes) => { - if (bytes < 0) { - throw new Error("Bytes must be a non-negative number"); - } - if (bytes === 0) { - return "0 B"; - } - const sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB"]; - const base = 1024; - const i = Math.floor(Math.log(bytes) / Math.log(base)); - const unit = sizes[i]; - if (unit === void 0) { - throw new Error("Bytes is too large to convert to a human-readable string"); - } - return `${(bytes / Math.pow(base, i)).toFixed(1)} ${unit}`; -}; -var wrapTextMultiline = (text, width, fontSize, maxLines = 3) => { - const wrapped = splitWrappedText(text, fontSize, width); - const lines = wrapped.map((line) => encodeHTML(line.trim())).slice(0, maxLines); - if (wrapped.length > maxLines) { - const lastIndex = maxLines - 1; - const lastLine = lines[lastIndex]; - if (lastLine !== void 0) { - lines[lastIndex] = `${lastLine}...`; - } - } - const multiLineText = lines.filter(Boolean); - return multiLineText; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/ops.js -var import_emoji_name_map = __toESM(require_lib(), 1); -var parseBoolean = (value) => { - if (typeof value === "boolean") { - return value; - } - if (typeof value === "string") { - if (value.toLowerCase() === "true") { - return true; - } else if (value.toLowerCase() === "false") { - return false; - } - } - return void 0; -}; -var parseArray = (str) => { - if (!str) { - return []; - } - return str.split(","); -}; -var clampValue = (number2, min, max) => { - if (Number.isNaN(parseInt(String(number2), 10))) { - return min; - } - return Math.max(min, Math.min(Number(number2), max)); -}; -var lowercaseTrim = (name) => name.toLowerCase().trim(); -var chunkArray = (arr, perChunk) => { - return arr.reduce((resultArray, item, index) => { - const chunkIndex = Math.floor(index / perChunk); - const chunk = resultArray[chunkIndex] ?? []; - chunk.push(item); - resultArray[chunkIndex] = chunk; - return resultArray; - }, []); -}; -var parseEmojis = (str) => { - if (!str) { - throw new Error("[parseEmoji]: str argument not provided"); - } - return str.replace(/:\w+:/gm, (emoji2) => { - return import_emoji_name_map.default.get(emoji2) || ""; - }); -}; -var isOwnerAffiliation = (value) => OWNER_AFFILIATIONS.some((affiliation) => affiliation === value); -var parseOwnerAffiliations = (affiliations) => { - const normalized = affiliations.length > 0 ? affiliations.map((affiliation) => affiliation.toUpperCase()) : ["OWNER"]; - if (!normalized.every(isOwnerAffiliation)) { - throw CardError.invalidParam("role", INVALID_AFFILIATION); - } - return normalized; -}; -var buildSearchFilter = (repos = [], owners = []) => { - const repoFilter = Array.isArray(repos) && repos.length > 0 ? repos.map((r) => `repo:${r} `).join("") : ""; - const orgFilter = Array.isArray(owners) && owners.length > 0 ? owners.map((o) => `owner:${o} `).join("") : ""; - return repoFilter + orgFilter; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/render.js -var flexLayout = ({ items, gap, direction, sizes = [] }) => { - if (sizes.some((size) => !Number.isFinite(size))) { - throw new Error("flexLayout: `sizes` must contain only numbers"); - } - let lastSize = 0; - return items.filter(Boolean).map((item, i) => { - const size = sizes[i] || 0; - let transform2 = `translate(${lastSize}, 0)`; - if (direction === "column") { - transform2 = `translate(0, ${lastSize})`; - } - lastSize += size + gap; - return `${item}`; - }); -}; -var createLanguageNode = (langName, langColor) => { - if (!isPrefixedHexColor(langColor)) { - throw new Error(`Invalid language color: "${langColor}"`); - } - return ` - - - ${encodeHTML(langName)} - - `; -}; -var createProgressNode = ({ x, y, width, color, progress, delay }) => { - if (color !== void 0 && !isPrefixedHexColor(color)) { - throw new Error(`Invalid progress color: "${color}"`); - } - if (!Number.isFinite(width)) { - throw new Error(`Invalid width: "${width}"`); - } - if (!Number.isFinite(x)) { - throw new Error(`Invalid x: "${x}"`); - } - if (!Number.isFinite(y)) { - throw new Error(`Invalid y: "${y}"`); - } - if (!Number.isFinite(delay)) { - throw new Error(`Invalid delay: "${delay}"`); - } - const progressPercentage = clampValue(progress, 2, 100); - return ` - - - - - - - `; -}; -var wrappedTextNode = ({ text, x, y, width, height, lineCount, className, testId }) => { - if (!Number.isFinite(x)) { - throw new Error(`Invalid x: "${x}"`); - } - if (!Number.isFinite(y)) { - throw new Error(`Invalid y: "${y}"`); - } - if (!Number.isFinite(width)) { - throw new Error(`Invalid width: "${width}"`); - } - if (!Number.isFinite(height)) { - throw new Error(`Invalid height: "${height}"`); - } - if (!Number.isFinite(lineCount)) { - throw new Error(`Invalid lineCount: "${lineCount}"`); - } - const testIdAttr = testId ? ` data-testid="${encodeHTML(testId)}"` : ""; - return ` - -
${encodeHTML(text)}
-
- `; -}; -var wrappedTextStyles = (color) => { - if (!isPrefixedHexColor(color)) { - throw new Error(`Invalid text color: "${color}"`); - } - return ` - color: ${color}; - margin: 0; - line-height: 1.2; - overflow-wrap: anywhere; - word-break: break-word; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: var(--lines); - line-clamp: var(--lines); - overflow: hidden; - text-overflow: ellipsis; - padding-bottom: 0.15em; - `; -}; -var iconWithLabel = (icon, label, testid, iconSize) => { - if (typeof label === "number" && label <= 0) { - return ""; - } - if (!Number.isFinite(iconSize)) { - throw new Error(`Invalid iconSize: "${iconSize}"`); - } - const iconSvg = ` - - ${icon} - - `; - const text = `${encodeHTML(String(label))}`; - return flexLayout({ items: [iconSvg, text], gap: 20 }).join(""); -}; -var createTextNode = ({ icon, label, value, id, unitSymbol, index, showIcons, shiftValuePos, bold, numberFormat, numberPrecision, link, labelXOffset = 25 }) => { - if (!Number.isFinite(labelXOffset)) { - throw new Error(`Invalid labelXOffset: "${labelXOffset}"`); - } - if (!Number.isFinite(shiftValuePos)) { - throw new Error(`Invalid shiftValuePos: "${shiftValuePos}"`); - } - if (!Number.isFinite(index)) { - throw new Error(`Invalid index: "${index}"`); - } - const precision = numberPrecision !== void 0 && Number.isFinite(numberPrecision) ? clampValue(numberPrecision, 0, 2) : void 0; - const rawValue = numberFormat.toLowerCase() === "long" || id === "prs_merged_percentage"; - const kValue = rawValue || typeof value !== "number" ? value : kFormatter(value, precision); - const staggerDelay = (index + 3) * 150; - const boldClass = bold ? " bold" : "not_bold"; - const valueX = (showIcons ? 140 : 120) + (bold ? 5 : 0) + shiftValuePos; - const unit = unitSymbol ? ` ${unitSymbol}` : ""; - const labelOffset = showIcons ? `x="${labelXOffset}"` : ""; - const iconSvg = showIcons ? ` - - ${icon} - - ` : ""; - const content = ` - ${iconSvg} - ${encodeHTML(label)}: - ${kValue}${unit}`; - const inner = link ? `${content}` : content; - return ` - ${inner} - - `; -}; -var ERROR_CARD_LENGTH = 576.5; -var UPSTREAM_API_ERRORS = [TRY_AGAIN_LATER, SECONDARY_ERROR_MESSAGES.rate_limited]; -var renderError = ({ message, secondaryMessage = "", renderOptions = {} }) => { - const { title_color, text_color, bg_color, border_color, theme = "default", show_repo_link = true } = renderOptions; - const { titleColor, textColor, bgColor, borderColor } = getCardColors({ - title_color, - text_color, - icon_color: "", - bg_color, - border_color, - ring_color: "", - theme - }); - return ` - - ${encodeHTML(message)} - ${encodeHTML(secondaryMessage)} - - - Something went wrong!${UPSTREAM_API_ERRORS.includes(secondaryMessage) || !show_repo_link ? "" : " file an issue at https://tinyurl.com/github-stats"} - - ${encodeHTML(message)} - ${encodeHTML(secondaryMessage)} - - - `; -}; -var measureText = (str, fontSize = 10) => { - const widths = [ - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0.2733333110809326, - 0.28499999046325686, - 0.39166667461395266, - 0.5900000095367431, - 0.5383333206176758, - 0.8183333396911621, - 0.8, - 0.22999999523162842, - 0.30166666507720946, - 0.30166666507720946, - 0.41666665077209475, - 0.6833333492279052, - 0.21666667461395264, - 0.4, - 0.21666667461395264, - 0.3900000095367432, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.5383333206176758, - 0.21666667461395264, - 0.21666667461395264, - 0.6833333492279052, - 0.6833333492279052, - 0.6833333492279052, - 0.4483333110809326, - 0.9550000190734863, - 0.6449999809265137, - 0.5733333110809327, - 0.6183333396911621, - 0.7016666889190674, - 0.5066666603088379, - 0.48833332061767576, - 0.6866666793823242, - 0.7099999904632568, - 0.26666667461395266, - 0.35666666030883787, - 0.5800000190734863, - 0.4699999809265137, - 0.8983333587646485, - 0.7483333110809326, - 0.753333330154419, - 0.5599999904632569, - 0.753333330154419, - 0.5983333110809326, - 0.5316666603088379, - 0.5233333110809326, - 0.6866666793823242, - 0.621666669845581, - 0.9333333015441895, - 0.5900000095367431, - 0.553333330154419, - 0.5699999809265137, - 0.30166666507720946, - 0.37833333015441895, - 0.30166666507720946, - 0.6833333492279052, - 0.41500000953674315, - 0.26833333969116213, - 0.5083333492279053, - 0.5883333206176757, - 0.4616666793823242, - 0.5883333206176757, - 0.5233333110809326, - 0.3133333444595337, - 0.5883333206176757, - 0.5666666507720948, - 0.24166667461395264, - 0.24166667461395264, - 0.49666666984558105, - 0.24166667461395264, - 0.8616666793823242, - 0.5666666507720948, - 0.5866666793823242, - 0.5883333206176757, - 0.5883333206176757, - 0.3483333349227905, - 0.425, - 0.33833334445953367, - 0.5666666507720948, - 0.4783333301544189, - 0.7233333110809326, - 0.45833334922790525, - 0.4833333492279053, - 0.45166668891906736, - 0.30166666507720946, - 0.24000000953674316, - 0.30166666507720946, - 0.6833333492279052 - ]; - const avg = 0.5131403493881227; - const cjkRange = /[\u3000-\u9FFF\uFF00-\uFFEF]/; - return str.split("").map((c) => { - if (cjkRange.test(c) || c === "\u3000") { - return 1; - } - if (c.charCodeAt(0) < widths.length) { - return widths[c.charCodeAt(0)] ?? avg; - } else { - return avg; - } - }).reduce((cur, acc) => acc + cur) * fontSize; -}; -var splitWrappedText = (text, fontSize, maxWidth) => { - if (!text) { - return []; - } - const normalizedText = text.replace(/[\t\n\r ]+/g, " "); - const tokens = normalizedText.match(/\s|[\u3000-\u9FFF\uFF00-\uFFEF]|[^\s\u3000-\u9FFF\uFF00-\uFFEF]+/g); - if (!tokens) { - return []; - } - const takeFittingSegment = (token, availableWidth) => { - const characters = token.split(""); - let segment = ""; - let width = 0; - for (const character of characters) { - const characterWidth = measureText(character, fontSize); - if (segment && width + characterWidth > availableWidth) { - break; - } - segment += character; - width += characterWidth; - } - return { - segment, - width - }; - }; - const lines = [""]; - let currentWidth = 0; - for (const token of tokens) { - if (token === " ") { - if (currentWidth === 0) { - continue; - } - lines[lines.length - 1] = (lines[lines.length - 1] ?? "") + token; - currentWidth += measureText(token, fontSize); - continue; - } - let remaining = token; - while (remaining) { - const w = measureText(remaining, fontSize); - if (currentWidth + w <= maxWidth) { - lines[lines.length - 1] = (lines[lines.length - 1] ?? "") + remaining; - currentWidth += w; - break; - } - if (currentWidth > 0) { - lines.push(""); - currentWidth = 0; - continue; - } - const { segment, width } = takeFittingSegment(remaining, maxWidth); - lines[lines.length - 1] = (lines[lines.length - 1] ?? "") + segment; - currentWidth = width; - remaining = remaining.slice(segment.length); - } - } - return lines.map((line) => line.replace(/[\t\n\r ]+$/, "")); -}; -var countWrappedLines = (text, fontSize, maxWidth, maxLines) => { - return Math.min(Math.max(1, splitWrappedText(text, fontSize, maxWidth).length), maxLines); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/Card.js -var Card = class { - width; - height; - hideBorder; - hideTitle; - border_radius; - colors; - title; - css; - darkCss; - paddingX; - paddingY; - titlePrefixIcon; - animations; - a11yTitle; - a11yDesc; - /** - * Creates a new card instance. - * - * The caller must ensure that the passed `titlePrefixIcon` is properly sanitized! - * - * @param props Card arguments. - * @param props.width Card width. - * @param props.height Card height. - * @param props.border_radius Card border radius. - * @param props.colors Card colors for light and dark mode. - * @param props.colors.light Card colors for light mode. - * @param props.colors.dark Card colors for dark mode, or `null` when no dark-mode override is needed. - * @param props.customTitle Card custom title. - * @param props.defaultTitle Card default title. - * @param props.titlePrefixIcon Sanitized card title prefix icon. - */ - constructor({ width = 100, height = 100, border_radius = 4.5, colors = { light: getCardColors({}), dark: null }, customTitle, defaultTitle = "", titlePrefixIcon }) { - this.width = width; - this.height = height; - this.hideBorder = false; - this.hideTitle = false; - this.border_radius = parseFloat(String(border_radius)); - this.colors = colors; - this.title = customTitle === void 0 ? defaultTitle : customTitle; - this.css = ""; - this.darkCss = ""; - this.paddingX = 25; - this.paddingY = 35; - this.titlePrefixIcon = titlePrefixIcon; - this.animations = true; - this.a11yTitle = ""; - this.a11yDesc = ""; - } - disableAnimations() { - this.animations = false; - } - /** - * @param props The props object. - * @param props.title Accessibility title. - * @param props.desc Accessibility description. - */ - setAccessibilityLabel({ title, desc }) { - this.a11yTitle = title; - this.a11yDesc = desc; - } - /** - * Sets the card CSS for light and dark mode. - * - * Each builder receives the colors of its own color scheme, - * so a card never handles a missing dark palette itself: - * `dark` runs only when the card has dark colors, and always with non-null ones. - * - * @warning The caller must ensure that the returned CSS strings are properly sanitized! - * - * @param props The props object. - * @param props.light Builds the CSS applied unconditionally (light/default mode). - * @param props.dark Builds the CSS placed inside a `@media (prefers-color-scheme: dark)` block. - */ - setCSS({ light, dark }) { - this.css = light(this.colors.light); - this.darkCss = this.colors.dark ? dark(this.colors.dark) : ""; - } - /** - * @param value Whether to hide the border or not. - */ - setHideBorder(value) { - this.hideBorder = value; - } - /** - * @param value Whether to hide the title or not. - */ - setHideTitle(value) { - if (value && !this.hideTitle) { - this.height -= 30; - } - if (!value && this.hideTitle) { - this.height += 30; - } - this.hideTitle = value; - } - /** - * @param text The title to set. - */ - setTitle(text) { - this.title = text; - } - /** - * @returns The rendered card title. - */ - renderTitle() { - const titleText = ` - ${encodeHTML(this.title)} - `; - const prefixIcon = ` - - ${String(this.titlePrefixIcon)} - - `; - return ` - - ${flexLayout({ - items: [this.titlePrefixIcon ? prefixIcon : "", titleText], - gap: 25 - }).join("")} - - `; - } - /** - * @returns The rendered card gradient. - */ - renderGradient() { - const buildGradientDef = (id, bgColor) => { - const gradients = bgColor.slice(1); - return ` - - ${gradients.map((grad, index) => { - const offset = index * 100 / (gradients.length - 1); - return ``; - }).join(",")} - `; - }; - if (typeof this.colors.light.bgColor === "object" && !isValidGradient(this.colors.light.bgColor)) { - throw new Error(`Invalid gradient: ${this.colors.light.bgColor.join(",")}`); - } - if (this.colors.dark && typeof this.colors.dark.bgColor === "object" && !isValidGradient(this.colors.dark.bgColor)) { - throw new Error(`Invalid dark gradient: ${this.colors.dark.bgColor.join(",")}`); - } - return ` - - ${typeof this.colors.light.bgColor === "object" ? buildGradientDef("gradient", this.colors.light.bgColor) : ""} - ${this.colors.dark && typeof this.colors.dark.bgColor === "object" ? buildGradientDef("gradient-dark", this.colors.dark.bgColor) : ""} - - `; - } - /** - * Retrieves css animations for a card. - * - * @returns Animation css. - */ - getAnimations = () => { - return ` - /* Animations */ - @keyframes scaleInAnimation { - from { - transform: translate(-5px, 5px) scale(0); - } - to { - transform: translate(-5px, 5px) scale(1); - } - } - @keyframes fadeInAnimation { - from { - opacity: 0; - } - to { - opacity: 1; - } - } - `; - }; - /** - * Builds the @media (prefers-color-scheme: dark) CSS block for the card. - * Returns an empty string when no dark colors are set. - */ - renderDarkMediaBlock() { - if (!this.colors.dark) { - return ""; - } - const bgFill = typeof this.colors.dark.bgColor === "object" ? "url(#gradient-dark)" : this.colors.dark.bgColor; - return ` - @media (prefers-color-scheme: dark) { - .header { fill: ${this.colors.dark.titleColor}; } - .card-bg { fill: ${bgFill}; stroke: ${this.colors.dark.borderColor}; } - ${this.darkCss} - }`; - } - /** - * The caller must ensure that the passed `body` string is properly sanitized! - * - * @param body The sanitized inner body of the card. - * @returns The rendered card. - */ - render(body) { - if (!Number.isFinite(this.border_radius)) { - throw new Error(`Invalid border radius: "${this.border_radius}"`); - } - if (!isPrefixedHexColor(this.colors.light.titleColor)) { - throw new Error(`Invalid title color: "${this.colors.light.titleColor}"`); - } - if (!isPrefixedHexColor(this.colors.light.borderColor)) { - throw new Error(`Invalid border color: "${this.colors.light.borderColor}"`); - } - if (!(typeof this.colors.light.bgColor === "object" ? isValidGradient(this.colors.light.bgColor) : isPrefixedHexColor(this.colors.light.bgColor))) { - throw new Error(`Invalid background color: ${String(this.colors.light.bgColor)}`); - } - return ` - - ${encodeHTML(this.a11yTitle)} - ${encodeHTML(this.a11yDesc)} - - - ${this.renderGradient()} - - - - ${this.hideTitle ? "" : this.renderTitle()} - - - ${body} - - - `; - } -}; -var Card_default = Card; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/icons.js -var icons = { - star: ``, - commits: ``, - prs: ``, - prs_merged: ``, - prs_merged_percentage: ``, - issues: ``, - icon: ``, - contribs: ``, - fork: ``, - reviews: ``, - discussions_started: ``, - discussions_answered: ``, - comments: ``, - contributions: ``, - gist: `` -}; -var rankIcon = (rankIcon2, rankLevel, percentile) => { - switch (rankIcon2) { - case "github": - return ` - - `; - case "percentile": - return ` - - Top - - - ${percentile.toFixed(1)}% - - `; - case "default": - default: - return ` - - ${rankLevel} - - `; - } -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/languageColors.json -var languageColors_default = { - "1C Enterprise": "#814CCC", - "2-Dimensional Array": "#38761D", - "4D": "#004289", - ABAP: "#E8274B", - "ABAP CDS": "#555e25", - "AGS Script": "#B9D9FF", - AIDL: "#34EB6B", - AL: "#3AA2B5", - ALGOL: "#D1E0DB", - AMPL: "#E6EFBB", - ANTLR: "#9DC3FF", - "API Blueprint": "#2ACCA8", - APL: "#5A8164", - "ASP.NET": "#9400ff", - ATS: "#1ac620", - ActionScript: "#882B0F", - Ada: "#02f88c", - "Adblock Filter List": "#800000", - "Adobe Font Metrics": "#fa0f00", - Agda: "#315665", - Aiken: "#640ff8", - Alloy: "#64C800", - "Alpine Abuild": "#0D597F", - "Altium Designer": "#A89663", - AngelScript: "#C7D7DC", - "Answer Set Programming": "#A9CC29", - "Ant Build System": "#A9157E", - Antlers: "#ff269e", - ApacheConf: "#d12127", - Apex: "#1797c0", - "Apollo Guidance Computer": "#0B3D91", - AppleScript: "#101F1F", - Arc: "#aa2afe", - AsciiDoc: "#73a0c5", - AspectJ: "#a957b0", - Assembly: "#6E4C13", - Astro: "#ff5a03", - Asymptote: "#ff0000", - Augeas: "#9CC134", - AutoHotkey: "#6594b9", - AutoIt: "#1C3552", - "Avro IDL": "#0040FF", - Awk: "#c30e9b", - "B (Formal Method)": "#8aa8c5", - B4X: "#00e4ff", - BAML: "#a855f7", - BASIC: "#ff0000", - BQN: "#2b7067", - Ballerina: "#FF5000", - Batchfile: "#C1F12E", - Beef: "#a52f4e", - Berry: "#15A13C", - BibTeX: "#778899", - Bicep: "#519aba", - Bikeshed: "#5562ac", - Bison: "#6A463F", - BitBake: "#00bce4", - Blade: "#f7523f", - BlitzBasic: "#00FFAE", - BlitzMax: "#cd6400", - Blueprint: "#3584E4", - Bluespec: "#12223c", - "Bluespec BH": "#12223c", - Boo: "#d4bec1", - Boogie: "#c80fa0", - Brainfuck: "#2F2530", - BrighterScript: "#66AABB", - Brightscript: "#662D91", - Browserslist: "#ffd539", - Bru: "#F4AA41", - BuildStream: "#006bff", - C: "#555555", - "C#": "#7355dd", - "C++": "#f34b7d", - C3: "#2563eb", - "CAP CDS": "#0092d1", - CLIPS: "#00A300", - CMake: "#DA3434", - COLLADA: "#F1A42B", - CQL: "#006091", - CSON: "#244776", - CSS: "#663399", - CSV: "#237346", - CUE: "#5886E1", - CWeb: "#00007a", - "Cabal Config": "#483465", - Caddyfile: "#22b638", - Cadence: "#00ef8b", - Cairo: "#ff4a48", - "Cairo Zero": "#ff4a48", - CameLIGO: "#3be133", - Cangjie: "#00868B", - "Cap'n Proto": "#c42727", - Carbon: "#222222", - Ceylon: "#dfa535", - Chapel: "#8dc63f", - ChucK: "#3f8000", - Circom: "#707575", - Cirru: "#ccccff", - Clarion: "#db901e", - Clarity: "#5546ff", - "Classic ASP": "#6a40fd", - Clean: "#3F85AF", - Click: "#E4E6F3", - Clojure: "#db5855", - "Closure Templates": "#0d948f", - "Cloud Firestore Security Rules": "#FFA000", - Clue: "#0009b5", - CodeQL: "#140f46", - CoffeeScript: "#244776", - ColdFusion: "#ed2cd6", - "ColdFusion CFC": "#ed2cd6", - "Common Lisp": "#3fb68b", - "Common Workflow Language": "#B5314C", - "Component Pascal": "#B0CE4E", - Cooklang: "#E15A29", - Crystal: "#000100", - Csound: "#1a1a1a", - "Csound Document": "#1a1a1a", - "Csound Score": "#1a1a1a", - Cuda: "#3A4E3A", - Curry: "#531242", - Cylc: "#00b3fd", - Cypher: "#34c0eb", - Cython: "#fedf5b", - D: "#ba595e", - D2: "#526ee8", - DM: "#447265", - Dafny: "#FFEC25", - "Darcs Patch": "#8eff23", - Dart: "#00B4AB", - Daslang: "#d3d3d3", - DataWeave: "#003a52", - "Debian Package Control File": "#D70751", - DenizenScript: "#FBEE96", - Dhall: "#dfafff", - "DirectX 3D File": "#aace60", - Dockerfile: "#384d54", - Dogescript: "#cca760", - Dotenv: "#e5d559", - Dune: "#89421e", - Dylan: "#6c616e", - E: "#ccce35", - ECL: "#8a1267", - ECLiPSe: "#001d9d", - EJS: "#a91e50", - EQ: "#a78649", - Earthly: "#2af0ff", - Easybuild: "#069406", - "Ecere Projects": "#913960", - Ecmarkup: "#eb8131", - Edge: "#0dffe0", - EdgeQL: "#31A7FF", - EditorConfig: "#fff1f2", - Eiffel: "#4d6977", - Elixir: "#6e4a7e", - Elm: "#60B5CC", - Elvish: "#55BB55", - "Elvish Transcript": "#55BB55", - "Emacs Lisp": "#c065db", - EmberScript: "#FFF4F3", - Erlang: "#B83998", - Euphoria: "#FF790B", - "F#": "#b845fc", - "F*": "#572e30", - "FIGlet Font": "#FFDDBB", - FIRRTL: "#2f632f", - FLUX: "#88ccff", - Factor: "#636746", - Fancy: "#7b9db4", - Fantom: "#14253c", - Faust: "#c37240", - Fennel: "#fff3d7", - "Filebench WML": "#F6B900", - FlatBuffers: "#ed284a", - Flix: "#d44a45", - Fluent: "#ffcc33", - Forth: "#341708", - Fortran: "#4d41b1", - "Fortran Free Form": "#4d41b1", - FreeBASIC: "#141AC9", - FreeMarker: "#0050b2", - Frege: "#00cafe", - Futhark: "#5f021f", - "G-code": "#D08CF2", - GAML: "#FFC766", - GAMS: "#f49a22", - GAP: "#0000cc", - "GCC Machine Description": "#FFCFAB", - GDScript: "#355570", - GDShader: "#478CBF", - GEDCOM: "#003058", - GLSL: "#5686a5", - GSC: "#FF6800", - "Game Maker Language": "#71b417", - "Gemfile.lock": "#701516", - Gemini: "#ff6900", - "Genero 4gl": "#63408e", - "Genero per": "#d8df39", - Genie: "#fb855d", - Genshi: "#951531", - "Gentoo Ebuild": "#9400ff", - "Gentoo Eclass": "#9400ff", - "Gerber Image": "#d20b00", - Gherkin: "#5B2063", - "Git Attributes": "#F44D27", - "Git Commit": "#F44D27", - "Git Config": "#F44D27", - "Git Revision List": "#F44D27", - Gleam: "#ffaff3", - "Glimmer JS": "#F5835F", - "Glimmer TS": "#3178c6", - Glyph: "#c1ac7f", - Gno: "#226c57", - Gnuplot: "#f0a9f0", - Go: "#00ADD8", - "Go Checksums": "#00ADD8", - "Go Module": "#00ADD8", - "Go Template": "#00ADD8", - "Go Workspace": "#00ADD8", - "Godot Resource": "#355570", - Golo: "#88562A", - Gosu: "#82937f", - Grace: "#615f8b", - Gradle: "#02303a", - "Gradle Kotlin DSL": "#02303a", - "Grammatical Framework": "#ff0000", - GraphQL: "#e10098", - "Graphviz (DOT)": "#2596be", - Groovy: "#4298b8", - "Groovy Server Pages": "#4298b8", - GtkRC: "#7fe719", - HAProxy: "#106da9", - HCL: "#844FBA", - HIP: "#4F3A4F", - HLSL: "#aace60", - HOCON: "#9ff8ee", - HTML: "#e34c26", - "HTML+ECR": "#2e1052", - "HTML+EEX": "#6e4a7e", - "HTML+ERB": "#701516", - "HTML+PHP": "#4f5d95", - "HTML+Razor": "#512be4", - HTTP: "#005C9C", - HXML: "#f68712", - Hack: "#878787", - Haml: "#ece2a9", - Handlebars: "#f7931e", - Harbour: "#0e60e3", - Hare: "#9d7424", - Haskell: "#5e5086", - Haxe: "#df7900", - HiveQL: "#dce200", - HolyC: "#ffefaf", - "Hosts File": "#308888", - Hurl: "#FF0288", - Hy: "#7790B2", - IDL: "#a3522f", - "IGOR Pro": "#0000cc", - "IL Assembly": "#512BD4", - INI: "#d1dbe0", - ISPC: "#2D68B1", - Idris: "#b30000", - "Ignore List": "#000000", - "ImageJ Macro": "#99AAFF", - Imba: "#16cec6", - "Inno Setup": "#264b99", - Io: "#a9188d", - Ioke: "#078193", - Isabelle: "#FEFE00", - "Isabelle ROOT": "#FEFE00", - J: "#9EEDFF", - "JAR Manifest": "#b07219", - JCL: "#d90e09", - JFlex: "#DBCA00", - JSON: "#292929", - "JSON with Comments": "#292929", - JSON5: "#267CB9", - JSONLD: "#0c479c", - JSONiq: "#40d47e", - Jac: "#FC792D", - Jai: "#ab8b4b", - Janet: "#0886a5", - Jasmin: "#d03600", - Java: "#b07219", - "Java Properties": "#2A6277", - "Java Server Pages": "#2A6277", - "Java Template Engine": "#2A6277", - JavaScript: "#f1e05a", - "JavaScript+ERB": "#f1e05a", - "Jest Snapshot": "#15c213", - "JetBrains MPS": "#21D789", - Jinja: "#a52a22", - Jison: "#56b3cb", - "Jison Lex": "#56b3cb", - Jolie: "#843179", - Jsonnet: "#0064bd", - Julia: "#a270ba", - "Julia REPL": "#a270ba", - "Jupyter Notebook": "#DA5B0B", - Just: "#384d54", - KCL: "#7ABABF", - KDL: "#ffb3b3", - KFramework: "#4195c5", - KRL: "#28430A", - "Kaitai Struct": "#773b37", - KakouneScript: "#6f8042", - KerboScript: "#41adf0", - "KiCad Layout": "#2f4aab", - "KiCad Legacy Layout": "#2f4aab", - "KiCad Schematic": "#2f4aab", - "KoLmafia ASH": "#B9D9B9", - Koka: "#215166", - Kotlin: "#A97BFF", - LFE: "#4C3023", - LLVM: "#185619", - LOLCODE: "#cc9900", - LSL: "#3d9970", - LabVIEW: "#fede06", - Lambdapi: "#8027a3", - Langium: "#2c8c87", - Lark: "#2980B9", - Lasso: "#999999", - Latte: "#f2a542", - Leo: "#C4FFC2", - Less: "#1d365d", - Lex: "#DBCA00", - LigoLANG: "#0e74ff", - LilyPond: "#9ccc7c", - Liquid: "#67b8de", - Liquidsoap: "#990066", - "Literate Agda": "#315665", - "Literate CoffeeScript": "#244776", - "Literate Haskell": "#5e5086", - "LiveCode Script": "#0c5ba5", - LiveScript: "#499886", - Logtalk: "#295b9a", - LookML: "#652B81", - Lua: "#000080", - Luau: "#00A2FF", - M3U: "#179C7D", - MATLAB: "#e16737", - MAXScript: "#00a6a6", - MDX: "#fcb32c", - MLIR: "#5EC8DB", - MQL4: "#62A8D6", - MQL5: "#4A76B8", - MTML: "#b7e1f4", - Macaulay2: "#d8ffff", - Makefile: "#427819", - Mako: "#7e858d", - Markdown: "#083fa1", - Marko: "#42bff2", - Mask: "#f97732", - "Mathematical Programming System": "#0530ad", - Max: "#c4a79c", - MeTTa: "#6a5acd", - Mercury: "#ff2b2b", - Mermaid: "#ff3670", - Meson: "#007800", - Metal: "#8f14e9", - MiniYAML: "#ff1111", - MiniZinc: "#06a9e6", - Mint: "#02b046", - Mirah: "#c7a938", - Modelica: "#de1d31", - "Modula-2": "#10253f", - "Modula-3": "#223388", - Mojo: "#ff4c1f", - "Monkey C": "#8D6747", - MoonBit: "#b92381", - MoonScript: "#ff4585", - Motoko: "#fbb03b", - "Motorola 68K Assembly": "#005daa", - Move: "#4a137a", - Mustache: "#724b3b", - NCL: "#28431f", - NMODL: "#00356B", - "NPM Config": "#cb3837", - NWScript: "#111522", - Nasal: "#1d2c4e", - Nearley: "#990000", - Nemerle: "#3d3c6e", - NetLinx: "#0aa0ff", - "NetLinx+ERB": "#747faa", - NetLogo: "#ff6375", - NewLisp: "#87AED7", - Nextflow: "#3ac486", - Nginx: "#009639", - Nickel: "#E0C3FC", - Nim: "#ffc200", - Nit: "#009917", - Nix: "#7e7eff", - Noir: "#2f1f49", - Nu: "#c9df40", - NumPy: "#9C8AF9", - Nunjucks: "#3d8137", - Nushell: "#4E9906", - "OASv2-json": "#85ea2d", - "OASv2-yaml": "#85ea2d", - "OASv3-json": "#85ea2d", - "OASv3-yaml": "#85ea2d", - OCaml: "#ef7a08", - "OMNeT++ MSG": "#a0e0a0", - "OMNeT++ NED": "#08607c", - ObjectScript: "#424893", - "Objective-C": "#438eff", - "Objective-C++": "#6866fb", - "Objective-J": "#ff0c5a", - Odin: "#60AFFE", - Omgrofl: "#cabbff", - Opal: "#f7ede0", - "Open Policy Agent": "#7d9199", - "OpenAPI Specification v2": "#85ea2d", - "OpenAPI Specification v3": "#85ea2d", - OpenCL: "#ed2e2d", - "OpenEdge ABL": "#5ce600", - OpenQASM: "#AA70FF", - OpenSCAD: "#e5cd45", - "Option List": "#476732", - Org: "#77aa99", - OverPy: "#78b355", - OverpassQL: "#cce2aa", - Oxygene: "#cdd0e3", - Oz: "#fab738", - P4: "#7055b5", - PDDL: "#0d00ff", - "PEG.js": "#234d6b", - PHP: "#4F5D95", - PLSQL: "#dad8d8", - PLpgSQL: "#336790", - "POV-Ray SDL": "#6bac65", - Pact: "#F7A8B8", - Pan: "#cc0000", - Papyrus: "#6600cc", - Parrot: "#f3ca0a", - Pascal: "#E3F171", - Pawn: "#dbb284", - Pep8: "#C76F5B", - Perl: "#0298c3", - PicoLisp: "#6067af", - PigLatin: "#fcd7de", - Pike: "#005390", - "Pip Requirements": "#FFD343", - Pkl: "#6b9543", - PlantUML: "#fbbd16", - PogoScript: "#d80074", - Polar: "#ae81ff", - Portugol: "#f8bd00", - PostCSS: "#dc3a0c", - PostScript: "#da291c", - "Power Query": "#d38e0d", - PowerBuilder: "#8f0f8d", - PowerShell: "#012456", - Praat: "#c8506d", - Prisma: "#0c344b", - "Pro*C": "#bb8368", - Processing: "#0096D8", - Procfile: "#3B2F63", - Prolog: "#74283c", - Promela: "#de0000", - "Propeller Spin": "#7fa2a7", - Pug: "#a86454", - Puppet: "#302B6D", - PureBasic: "#5a6986", - PureScript: "#1D222D", - Pyret: "#ee1e10", - Python: "#3572A5", - "Python console": "#3572A5", - "Python traceback": "#3572A5", - "Q#": "#fed659", - QML: "#44a51c", - "Qt Script": "#00b841", - Quake: "#882233", - QuakeC: "#975777", - QuickBASIC: "#008080", - Quint: "#9d6ce5", - R: "#198CE7", - RAML: "#77d9fb", - RAScript: "#2C97FA", - RBS: "#701516", - RDoc: "#701516", - REXX: "#d90e09", - RMarkdown: "#198ce7", - RON: "#a62c00", - "ROS Interface": "#22314e", - RPGLE: "#2BDE21", - RUNOFF: "#665a4e", - Racket: "#3c5caa", - Ragel: "#9d5200", - Raku: "#0000fb", - Rascal: "#fffaa0", - ReScript: "#ed5051", - Reason: "#ff5847", - ReasonLIGO: "#ff5847", - Rebol: "#358a5b", - "Record Jar": "#0673ba", - Red: "#f50000", - Redscript: "#f44336", - "Regular Expression": "#009a00", - "Ren'Py": "#ff7f7f", - Rez: "#FFDAB3", - Ring: "#2D54CB", - Riot: "#A71E49", - RobotFramework: "#00c0b5", - Roc: "#7c38f5", - "Rocq Prover": "#d0b68c", - Roff: "#ecdebe", - "Roff Manpage": "#ecdebe", - Rouge: "#cc0088", - "RouterOS Script": "#DE3941", - Ruby: "#701516", - Rust: "#dea584", - SAS: "#B34936", - SCSS: "#c6538c", - SPARQL: "#0C4597", - SQF: "#3F3F3F", - SQL: "#e38c00", - SQLPL: "#e38c00", - "SRecode Template": "#348a34", - STL: "#373b5e", - SVG: "#ff9900", - Sail: "#259dd5", - SaltStack: "#646464", - Sass: "#a53b70", - Scala: "#c22d40", - Scaml: "#bd181a", - Scenic: "#fdc700", - Scheme: "#1e4aec", - Scilab: "#ca0f21", - Self: "#0579aa", - ShaderLab: "#222c37", - Shell: "#89e051", - "ShellCheck Config": "#cecfcb", - Shen: "#120F14", - "Simple File Verification": "#C9BFED", - Singularity: "#64E6AD", - Slang: "#1fbec9", - Slash: "#007eff", - Slice: "#003fa2", - Slim: "#2b2b2b", - Slint: "#2379F4", - SmPL: "#c94949", - Smalltalk: "#596706", - Smarty: "#f0c040", - Smithy: "#c44536", - Snakemake: "#419179", - Solidity: "#AA6746", - SourcePawn: "#f69e1d", - "SpiceDB Schema": "#a5318a", - Squirrel: "#800000", - Stan: "#b2011d", - "Standard ML": "#dc566d", - Starlark: "#76d275", - Stata: "#1a5f91", - StringTemplate: "#3fb34f", - Stylus: "#ff6347", - "SubRip Text": "#9e0101", - SugarSS: "#2fcc9f", - SuperCollider: "#46390b", - SurrealQL: "#ff00a0", - "Survex data": "#ffcc99", - Svelte: "#ff3e00", - Sway: "#00F58C", - Sweave: "#198ce7", - Swift: "#F05138", - SystemVerilog: "#DAE1C2", - "TI Program": "#A0AA87", - "TL-Verilog": "#C40023", - TLA: "#4b0079", - TMDL: "#f0c913", - TOML: "#9c4221", - TSQL: "#e38c00", - TSV: "#237346", - TSX: "#3178c6", - TXL: "#0178b8", - Tact: "#48b5ff", - Talon: "#333333", - Tcl: "#e4cc98", - TeX: "#3D6117", - Teal: "#00B1BC", - Terra: "#00004c", - "Terraform Template": "#7b42bb", - TextGrid: "#c8506d", - "TextMate Properties": "#df66e4", - Textile: "#ffe7ac", - Thrift: "#D12127", - Toit: "#c2c9fb", - "Tor Config": "#59316b", - "Tree-sitter Query": "#8ea64c", - Turing: "#cf142b", - Twig: "#c1d026", - TypeScript: "#3178c6", - TypeSpec: "#4A3665", - Typst: "#239dad", - "Unified Parallel C": "#4e3617", - "Unity3D Asset": "#222c37", - Uno: "#9933cc", - UnrealScript: "#a54c4d", - "Untyped Plutus Core": "#36adbd", - UrWeb: "#ccccee", - V: "#4f87c4", - VBA: "#867db1", - VBScript: "#15dcdc", - VCL: "#148AA8", - VHDL: "#adb2cb", - Vala: "#a56de2", - "Valve Data Format": "#f26025", - "Velocity Template Language": "#507cff", - Vento: "#ff0080", - Verilog: "#b2b7f8", - "Vim Help File": "#199f4b", - "Vim Script": "#199f4b", - "Vim Snippet": "#199f4b", - "Visual Basic .NET": "#945db7", - "Visual Basic 6.0": "#2c6353", - Volt: "#1F1F1F", - Vue: "#41b883", - Vyper: "#9F4CF2", - WDL: "#42f1f4", - WGSL: "#1a5e9a", - "Web Ontology Language": "#5b70bd", - WebAssembly: "#04133b", - "WebAssembly Interface Type": "#6250e7", - Whiley: "#d5c397", - Wikitext: "#fc5757", - "Windows Registry Entries": "#52d5ff", - "Witcher Script": "#ff0000", - "Wolfram Language": "#dd1100", - Wollok: "#a23738", - "World of Warcraft Addon Data": "#f7e43f", - Wren: "#383838", - X10: "#4B6BEF", - XC: "#99DA07", - XML: "#0060ac", - "XML Property List": "#0060ac", - XQuery: "#5232e7", - XSLT: "#EB8CEB", - Xmake: "#22a079", - Xojo: "#81bd41", - Xonsh: "#285EEF", - Xtend: "#24255d", - YAML: "#cb171e", - YARA: "#220000", - YASnippet: "#32AB90", - Yacc: "#4B6C4B", - Yul: "#794932", - ZAP: "#0d665e", - ZIL: "#dc75e5", - ZenScript: "#00BCD1", - Zephir: "#118f9e", - Zig: "#ec915c", - Zimpl: "#d67711", - Zmodel: "#ff7100", - crontab: "#ead7ac", - eC: "#913960", - fish: "#4aae47", - hoon: "#00b171", - iCalendar: "#ec564c", - jq: "#c7254e", - kvlang: "#1da6e0", - "mIRC Script": "#3d57c3", - mcfunction: "#E22837", - mdsvex: "#5f9ea0", - mupad: "#244963", - nanorc: "#2d004d", - nesC: "#94B0C7", - ooc: "#b0b77e", - "pkg-config": "#2b5e82", - q: "#0040cd", - reStructuredText: "#141414", - sed: "#64b970", - templ: "#66D0DD", - vCard: "#ee2647", - wisp: "#7582D1", - xBase: "#403a40" -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/languageColors.js -var DEFAULT_LANG_COLOR = "#858585"; -var languageColors = languageColors_default; -var getLanguageColor = (name) => { - return languageColors[name] ?? DEFAULT_LANG_COLOR; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/cards/gist.js -var ICON_SIZE = 16; -var CARD_DEFAULT_WIDTH = 400; -var X_OFFSET = 25; -var HEADER_MAX_LENGTH = 35; -var DESCRIPTION_BOX_WIDTH = CARD_DEFAULT_WIDTH - 2 * X_OFFSET; -var DESCRIPTION_FONT_SIZE = 13; -var DESCRIPTION_LINE_HEIGHT_PX = 16; -var DESCRIPTION_MAX_LINES = 10; -var renderGistCard = (gistData, options = {}) => { - const { name, nameWithOwner, description, language, starsCount, forksCount } = gistData; - const { theme = "default_repocard", border_radius, show_owner = false, browser_rendering = false, hide_border = false } = options; - const { lightColors, darkColors } = getLightDarkColors({ ...options, theme }); - const desc = parseEmojis(description || "No description provided"); - let descriptionLines; - let descriptionSvg; - if (browser_rendering) { - descriptionLines = countWrappedLines(desc, DESCRIPTION_FONT_SIZE, DESCRIPTION_BOX_WIDTH, DESCRIPTION_MAX_LINES); - descriptionSvg = wrappedTextNode({ - text: desc, - x: X_OFFSET, - y: -3, - width: DESCRIPTION_BOX_WIDTH, - height: descriptionLines * DESCRIPTION_LINE_HEIGHT_PX + 10, - // 10px extra for "descenders" like g, j, q, p, y - lineCount: descriptionLines, - className: "description", - testId: "description-text" - }); - } else { - const linesLimit = 10; - const multiLineDescription = wrapTextMultiline(desc, DESCRIPTION_BOX_WIDTH, DESCRIPTION_FONT_SIZE, linesLimit); - descriptionLines = multiLineDescription.length; - descriptionSvg = multiLineDescription.map((line) => `${encodeHTML(line)}`).join(""); - descriptionSvg = ` - ${descriptionSvg} - `; - } - const lineHeight = descriptionLines > 3 ? 12 : 10; - const height = (descriptionLines > 1 ? 120 : 110) + descriptionLines * lineHeight; - const totalStars = kFormatter(starsCount); - const totalForks = kFormatter(forksCount); - const svgStars = iconWithLabel(icons.star, totalStars, "starsCount", ICON_SIZE); - const svgForks = iconWithLabel(icons.fork, totalForks, "forksCount", ICON_SIZE); - const languageName = language || "Unspecified"; - const languageColor = getLanguageColor(languageName); - const svgLanguage = createLanguageNode(languageName, languageColor); - const starAndForkCount = flexLayout({ - items: [svgLanguage, svgStars, svgForks], - sizes: [ - measureText(languageName, 12), - ICON_SIZE + measureText(`${totalStars}`, 12), - ICON_SIZE + measureText(`${totalForks}`, 12) - ], - gap: 25 - }).join(""); - const header = show_owner ? nameWithOwner : name; - const card = new Card_default({ - defaultTitle: header.length > HEADER_MAX_LENGTH ? `${header.slice(0, HEADER_MAX_LENGTH)}...` : header, - titlePrefixIcon: icons.gist, - width: CARD_DEFAULT_WIDTH, - height, - border_radius, - colors: { light: lightColors, dark: darkColors } - }); - card.setCSS({ - light: ({ textColor, iconColor }) => ` - .description { - font: 400 ${DESCRIPTION_FONT_SIZE}px 'Segoe UI', Ubuntu, Sans-Serif;fill: ${textColor}; - ${browser_rendering ? wrappedTextStyles(textColor) : ""} - } - .gray { font: 400 12px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${textColor} } - .icon { fill: ${iconColor} } - `, - dark: ({ textColor, iconColor }) => ` - .description { - fill: ${textColor}; - ${browser_rendering ? wrappedTextStyles(textColor) : ""} - } - .gray { fill: ${textColor} } - .icon { fill: ${iconColor} } - ` - }); - card.setHideBorder(hide_border); - card.setAccessibilityLabel({ - title: card.title, - desc: `${desc}. Language: ${languageName}, Stars: ${totalStars}, Forks: ${totalForks}` - }); - return card.render(` - ${descriptionSvg} - - - ${starAndForkCount} - - `); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/http.js -var GITHUB_GRAPHQL_API = "https://api.github.com/graphql"; -var defaultFetch = (input, init) => fetch(input, init); -var httpRequest = async (fetchImpl, url, init) => { - const response = await fetchImpl(url, init); - const body = await response.text(); - let data; - try { - data = JSON.parse(body); - } catch { - data = body; - } - return { - status: response.status, - statusText: response.statusText, - data - }; -}; -var createGraphQLFetcher = (document, scheme) => { - return (variables, token, { fetch: fetch2 }) => { - return httpRequest(fetch2, GITHUB_GRAPHQL_API, { - method: "POST", - headers: { - Authorization: `${scheme} ${token}`, - "Content-Type": "application/json" - }, - body: JSON.stringify({ query: document.text, variables }) - }); - }; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/log.js -var logger = { - log: console.log, - error: console.error -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/retryer.js -function getRandomInt(max) { - return Math.floor(Math.random() * max); -} -var retryer = async (fetcher5, variables, config2) => { - const PATs = config2.pats; - if (!PATs.length) { - throw new CardError("No GitHub API tokens found", { code: "no_tokens" }); - } - const startPAT = getRandomInt(PATs.length); - for (let retries = 0; retries < PATs.length; retries++) { - const currentPAT = PATs[(startPAT + retries) % PATs.length]; - if (!currentPAT) { - continue; - } - const response = await fetcher5(variables, currentPAT.value, { - fetch: config2.fetch, - retries - }); - const errors = response.data.errors; - const errorType = errors?.[0]?.type; - const errorMsg = errors?.[0]?.message ?? ""; - const isRateLimited = !!errors && errorType === "RATE_LIMITED" || /rate limit/i.test(errorMsg); - if (isRateLimited) { - logger.log(`${currentPAT.name} Failed due to rate limiting`); - continue; - } - const message = response.data.message; - const isBadCredential = message === "Bad credentials"; - const isAccountSuspended = message === "Sorry. Your account was suspended."; - if (isBadCredential || isAccountSuspended) { - logger.log(`${currentPAT.name} Failed due to bad credentials`); - continue; - } - return response; - } - throw new CardError("Downtime due to GitHub API rate limiting", { - code: "rate_limited" - }); -}; +var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf;var __hasOwnProp=Object.prototype.hasOwnProperty;var __require=(x=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(x,{get:(a,b)=>(typeof require!=="undefined"?require:a)[b]}):x)(function(x){if(typeof require!=="undefined")return require. +apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __commonJS=(cb,mod)=>function __require2(){try{return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports}catch(e){throw mod=0,e}};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from==="object"||typeof from==="function"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{ +get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:true}):target,mod));var require_tunnel=__commonJS({"node_modules/.pnpm/tunnel@0.0.6/node_modules/tunnel/lib/tunnel.js"(exports){"use strict";var net=__require("net");var tls=__require("tls");var http=__require("http");var https=__require("https"); +var events=__require("events");var assert=__require("assert");var util=__require("util");exports.httpOverHttp=httpOverHttp2;exports.httpsOverHttp=httpsOverHttp2;exports.httpOverHttps=httpOverHttps2;exports. +httpsOverHttps=httpsOverHttps2;function httpOverHttp2(options){var agent=new TunnelingAgent(options);agent.request=http.request;return agent}function httpsOverHttp2(options){var agent=new TunnelingAgent( +options);agent.request=http.request;agent.createSocket=createSecureSocket;agent.defaultPort=443;return agent}function httpOverHttps2(options){var agent=new TunnelingAgent(options);agent.request=https. +request;return agent}function httpsOverHttps2(options){var agent=new TunnelingAgent(options);agent.request=https.request;agent.createSocket=createSecureSocket;agent.defaultPort=443;return agent}function TunnelingAgent(options){ +var self=this;self.options=options||{};self.proxyOptions=self.options.proxy||{};self.maxSockets=self.options.maxSockets||http.Agent.defaultMaxSockets;self.requests=[];self.sockets=[];self.on("free",function onFree(socket,host,port,localAddress){ +var options2=toOptions(host,port,localAddress);for(var i=0,len=self.requests.length;i=this.maxSockets){self.requests.push(options);return}self.createSocket(options, +function(socket){socket.on("free",onFree);socket.on("close",onCloseOrRemove);socket.on("agentRemove",onCloseOrRemove);req.onSocket(socket);function onFree(){self.emit("free",socket,options)}function onCloseOrRemove(err){ +self.removeSocket(socket);socket.removeListener("free",onFree);socket.removeListener("close",onCloseOrRemove);socket.removeListener("agentRemove",onCloseOrRemove)}})};TunnelingAgent.prototype.createSocket= +function createSocket(options,cb){var self=this;var placeholder={};self.sockets.push(placeholder);var connectOptions=mergeOptions({},self.proxyOptions,{method:"CONNECT",path:options.host+":"+options.port, +agent:false,headers:{host:options.host+":"+options.port}});if(options.localAddress){connectOptions.localAddress=options.localAddress}if(connectOptions.proxyAuth){connectOptions.headers=connectOptions. +headers||{};connectOptions.headers["Proxy-Authorization"]="Basic "+new Buffer(connectOptions.proxyAuth).toString("base64")}debug2("making CONNECT request");var connectReq=self.request(connectOptions); +connectReq.useChunkedEncodingByDefault=false;connectReq.once("response",onResponse);connectReq.once("upgrade",onUpgrade);connectReq.once("connect",onConnect);connectReq.once("error",onError);connectReq. +end();function onResponse(res){res.upgrade=true}function onUpgrade(res,socket,head){process.nextTick(function(){onConnect(res,socket,head)})}function onConnect(res,socket,head){connectReq.removeAllListeners(); +socket.removeAllListeners();if(res.statusCode!==200){debug2("tunneling socket could not be established, statusCode=%d",res.statusCode);socket.destroy();var error2=new Error("tunneling socket could not\ + be established, statusCode="+res.statusCode);error2.code="ECONNRESET";options.request.emit("error",error2);self.removeSocket(placeholder);return}if(head.length>0){debug2("got illegal response body fr\ +om proxy");socket.destroy();var error2=new Error("got illegal response body from proxy");error2.code="ECONNRESET";options.request.emit("error",error2);self.removeSocket(placeholder);return}debug2("tun\ +neling connection has established");self.sockets[self.sockets.indexOf(placeholder)]=socket;return cb(socket)}function onError(cause){connectReq.removeAllListeners();debug2("tunneling socket could not \ +be established, cause=%s\n",cause.message,cause.stack);var error2=new Error("tunneling socket could not be established, cause="+cause.message);error2.code="ECONNRESET";options.request.emit("error",error2); +self.removeSocket(placeholder)}};TunnelingAgent.prototype.removeSocket=function removeSocket(socket){var pos=this.sockets.indexOf(socket);if(pos===-1){return}this.sockets.splice(pos,1);var pending=this. +requests.shift();if(pending){this.createSocket(pending,function(socket2){pending.request.onSocket(socket2)})}};function createSecureSocket(options,cb){var self=this;TunnelingAgent.prototype.createSocket. +call(self,options,function(socket){var hostHeader=options.request.getHeader("host");var tlsOptions=mergeOptions({},self.options,{socket,servername:hostHeader?hostHeader.replace(/:.*$/,""):options.host}); +var secureSocket=tls.connect(0,tlsOptions);self.sockets[self.sockets.indexOf(socket)]=secureSocket;cb(secureSocket)})}function toOptions(host,port,localAddress){if(typeof host==="string"){return{host, +port,localAddress}}return host}function mergeOptions(target){for(var i=1,len=arguments.length;i=key.length){throw new TypeError("Unreachable")}const code=this.code=key. +charCodeAt(index);if(code>127){throw new TypeError("key must be ascii string")}if(key.length!==++index){this.middle=new _TstNode(key,value,index)}else{this.value=value}}add(key,value){const length=key. +length;if(length===0){throw new TypeError("Unreachable")}let index=0;let node=this;while(true){const code=key.charCodeAt(index);if(code>127){throw new TypeError("key must be ascii string")}if(node.code=== +code){if(length===++index){node.value=value;break}else if(node.middle!==null){node=node.middle}else{node.middle=new _TstNode(key,value,index);break}}else if(node.code=65){code|=32}while(node!==null){if(code===node.code){if(keylength===++index){return node}node=node.middle;break} +node=node.codeNumber(v));var BodyAsyncIterable=class{constructor(body){this[kBody]=body;this[kBodyUsed]=false}async*[Symbol.asyncIterator](){assert(!this[kBodyUsed], +"disturbed");this[kBodyUsed]=true;yield*this[kBody]}};function wrapRequestBody(body){if(isStream(body)){if(bodyLength(body)===0){body.on("data",function(){assert(false)})}if(typeof body.readableDidRead!== +"boolean"){body[kBodyUsed]=false;EE.prototype.on.call(body,"data",function(){this[kBodyUsed]=true})}return body}else if(body&&typeof body.pipeTo==="function"){return new BodyAsyncIterable(body)}else if(body&& +typeof body!=="string"&&!ArrayBuffer.isView(body)&&isIterable(body)){return new BodyAsyncIterable(body)}else{return body}}function nop(){}function isStream(obj){return obj&&typeof obj==="object"&&typeof obj. +pipe==="function"&&typeof obj.on==="function"}function isBlobLike(object2){if(object2===null){return false}else if(object2 instanceof Blob2){return true}else if(typeof object2!=="object"){return false}else{ +const sTag=object2[Symbol.toStringTag];return(sTag==="Blob"||sTag==="File")&&("stream"in object2&&typeof object2.stream==="function"||"arrayBuffer"in object2&&typeof object2.arrayBuffer==="function")}} +function buildURL(url,queryParams){if(url.includes("?")||url.includes("#")){throw new Error('Query params cannot be passed when url already contains "?" or "#".')}const stringified=stringify(queryParams); +if(stringified){url+="?"+stringified}return url}function isValidPort(port){const value=parseInt(port,10);return value===Number(port)&&value>=0&&value<=65535}function isHttpOrHttpsPrefixed(value){return value!= +null&&value[0]==="h"&&value[1]==="t"&&value[2]==="t"&&value[3]==="p"&&(value[4]===":"||value[4]==="s"&&value[5]===":")}function parseURL(url){if(typeof url==="string"){url=new URL(url);if(!isHttpOrHttpsPrefixed( +url.origin||url.protocol)){throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return url}if(!url||typeof url!=="object"){throw new InvalidArgumentError( +"Invalid URL: The URL argument must be a non-null object.")}if(!(url instanceof URL)){if(url.port!=null&&url.port!==""&&isValidPort(url.port)===false){throw new InvalidArgumentError("Invalid URL: port\ + must be a valid integer or a string representation of an integer.")}if(url.path!=null&&typeof url.path!=="string"){throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/\ +undefined.")}if(url.pathname!=null&&typeof url.pathname!=="string"){throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined.")}if(url.hostname!=null&&typeof url. +hostname!=="string"){throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined.")}if(url.origin!=null&&typeof url.origin!=="string"){throw new InvalidArgumentError( +"Invalid URL origin: the origin must be a string or null/undefined.")}if(!isHttpOrHttpsPrefixed(url.origin||url.protocol)){throw new InvalidArgumentError("Invalid URL protocol: the URL must start with\ + `http:` or `https:`.")}const port=url.port!=null?url.port:url.protocol==="https:"?443:80;let origin=url.origin!=null?url.origin:`${url.protocol||""}//${url.hostname||""}:${port}`;let path2=url.path!= +null?url.path:`${url.pathname||""}${url.search||""}`;if(origin[origin.length-1]==="/"){origin=origin.slice(0,origin.length-1)}if(path2&&path2[0]!=="/"){path2=`/${path2}`}return new URL(`${origin}${path2}`)} +if(!isHttpOrHttpsPrefixed(url.origin||url.protocol)){throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`.")}return url}function parseOrigin(url){url=parseURL( +url);if(url.pathname!=="/"||url.search||url.hash){throw new InvalidArgumentError("invalid url")}return url}function getHostname(host){if(host[0]==="["){const idx2=host.indexOf("]");assert(idx2!==-1);return host. +substring(1,idx2)}const idx=host.indexOf(":");if(idx===-1)return host;return host.substring(0,idx)}function getServerName(host){if(!host){return null}assert(typeof host==="string");const servername=getHostname( +host);if(net.isIP(servername)){return""}return servername}function deepClone(obj){return JSON.parse(JSON.stringify(obj))}function isAsyncIterable(obj){return!!(obj!=null&&typeof obj[Symbol.asyncIterator]=== +"function")}function isIterable(obj){return!!(obj!=null&&(typeof obj[Symbol.iterator]==="function"||typeof obj[Symbol.asyncIterator]==="function"))}function bodyLength(body){if(body==null){return 0}else if(isStream( +body)){const state=body._readableState;return state&&state.objectMode===false&&state.ended===true&&Number.isFinite(state.length)?state.length:null}else if(isBlobLike(body)){return body.size!=null?body. +size:null}else if(isBuffer(body)){return body.byteLength}return null}function isDestroyed(body){return body&&!!(body.destroyed||body[kDestroyed]||stream.isDestroyed?.(body))}function destroy(stream2,err){ +if(stream2==null||!isStream(stream2)||isDestroyed(stream2)){return}if(typeof stream2.destroy==="function"){if(Object.getPrototypeOf(stream2).constructor===IncomingMessage){stream2.socket=null}stream2. +destroy(err)}else if(err){queueMicrotask(()=>{stream2.emit("error",err)})}if(stream2.destroyed!==true){stream2[kDestroyed]=true}}var KEEPALIVE_TIMEOUT_EXPR=/timeout=(\d+)/;function parseKeepAliveTimeout(val){ +const m=val.toString().match(KEEPALIVE_TIMEOUT_EXPR);return m?parseInt(m[1],10)*1e3:null}function headerNameToString(value){return typeof value==="string"?headerNameLowerCasedRecord[value]??value.toLowerCase(): +tree.lookup(value)??value.toString("latin1").toLowerCase()}function bufferToLowerCasedHeaderName(value){return tree.lookup(value)??value.toString("latin1").toLowerCase()}function parseHeaders(headers,obj){ +if(obj===void 0)obj={};for(let i=0;ix.toString("utf8")):headersValue.toString( +"utf8")}}}if("content-length"in obj&&"content-disposition"in obj){obj["content-disposition"]=Buffer.from(obj["content-disposition"]).toString("latin1")}return obj}function parseRawHeaders(headers){const len=headers. +length;const ret=new Array(len);let hasContentLength=false;let contentDispositionIdx=-1;let key;let val;let kLen=0;for(let n=0;n{controller.close();controller. +byobRequest?.respond(0)})}else{const buf=Buffer.isBuffer(value)?value:Buffer.from(value);if(buf.byteLength){controller.enqueue(new Uint8Array(buf))}}return controller.desiredSize>0},async cancel(reason){ +await iterator.return()},type:"bytes"})}function isFormDataLike(object2){return object2&&typeof object2==="object"&&typeof object2.append==="function"&&typeof object2.delete==="function"&&typeof object2. +get==="function"&&typeof object2.getAll==="function"&&typeof object2.has==="function"&&typeof object2.set==="function"&&object2[Symbol.toStringTag]==="FormData"}function addAbortListener(signal,listener){ +if("addEventListener"in signal){signal.addEventListener("abort",listener,{once:true});return()=>signal.removeEventListener("abort",listener)}signal.addListener("abort",listener);return()=>signal.removeListener( +"abort",listener)}var hasToWellFormed=typeof String.prototype.toWellFormed==="function";var hasIsWellFormed=typeof String.prototype.isWellFormed==="function";function toUSVString(val){return hasToWellFormed? +`${val}`.toWellFormed():nodeUtil.toUSVString(val)}function isUSVString(val){return hasIsWellFormed?`${val}`.isWellFormed():toUSVString(val)===`${val}`}function isTokenCharCode(c){switch(c){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125: +return false;default:return c>=33&&c<=126}}function isValidHTTPToken(characters){if(characters.length===0){return false}for(let i=0;i{const{connectParams:{version:version2,protocol,port,host}}=evt;debuglog("connecting to %s using %s%s",`${host}${port?`:${port}`:""}`,protocol,version2)});diagnosticsChannel.channel( +"undici:client:connected").subscribe(evt=>{const{connectParams:{version:version2,protocol,port,host}}=evt;debuglog("connected to %s using %s%s",`${host}${port?`:${port}`:""}`,protocol,version2)});diagnosticsChannel. +channel("undici:client:connectError").subscribe(evt=>{const{connectParams:{version:version2,protocol,port,host},error:error2}=evt;debuglog("connection to %s using %s%s errored - %s",`${host}${port?`:${port}`: +""}`,protocol,version2,error2.message)});diagnosticsChannel.channel("undici:client:sendHeaders").subscribe(evt=>{const{request:{method,path:path2,origin}}=evt;debuglog("sending request to %s %s/%s",method, +origin,path2)});diagnosticsChannel.channel("undici:request:headers").subscribe(evt=>{const{request:{method,path:path2,origin},response:{statusCode}}=evt;debuglog("received response to %s %s/%s - HTTP \ +%d",method,origin,path2,statusCode)});diagnosticsChannel.channel("undici:request:trailers").subscribe(evt=>{const{request:{method,path:path2,origin}}=evt;debuglog("trailers received from %s %s/%s",method, +origin,path2)});diagnosticsChannel.channel("undici:request:error").subscribe(evt=>{const{request:{method,path:path2,origin},error:error2}=evt;debuglog("request to %s %s/%s errored - %s",method,origin, +path2,error2.message)});isClientSet=true}if(websocketDebuglog.enabled){if(!isClientSet){const debuglog=undiciDebugLog.enabled?undiciDebugLog:websocketDebuglog;diagnosticsChannel.channel("undici:client\ +:beforeConnect").subscribe(evt=>{const{connectParams:{version:version2,protocol,port,host}}=evt;debuglog("connecting to %s%s using %s%s",host,port?`:${port}`:"",protocol,version2)});diagnosticsChannel. +channel("undici:client:connected").subscribe(evt=>{const{connectParams:{version:version2,protocol,port,host}}=evt;debuglog("connected to %s%s using %s%s",host,port?`:${port}`:"",protocol,version2)});diagnosticsChannel. +channel("undici:client:connectError").subscribe(evt=>{const{connectParams:{version:version2,protocol,port,host},error:error2}=evt;debuglog("connection to %s%s using %s%s errored - %s",host,port?`:${port}`: +"",protocol,version2,error2.message)});diagnosticsChannel.channel("undici:client:sendHeaders").subscribe(evt=>{const{request:{method,path:path2,origin}}=evt;debuglog("sending request to %s %s/%s",method, +origin,path2)})}diagnosticsChannel.channel("undici:websocket:open").subscribe(evt=>{const{address:{address,port}}=evt;websocketDebuglog("connection opened %s%s",address,port?`:${port}`:"")});diagnosticsChannel. +channel("undici:websocket:close").subscribe(evt=>{const{websocket,code,reason}=evt;websocketDebuglog("closed connection to %s - %s %s",websocket.url,code,reason)});diagnosticsChannel.channel("undici:w\ +ebsocket:socket_error").subscribe(err=>{websocketDebuglog("connection errored - %s",err.message)});diagnosticsChannel.channel("undici:websocket:ping").subscribe(evt=>{websocketDebuglog("ping received")}); +diagnosticsChannel.channel("undici:websocket:pong").subscribe(evt=>{websocketDebuglog("pong received")})}module.exports={channels}}});var require_request=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/request.js"(exports,module){"use strict";var{InvalidArgumentError,NotSupportedError}=require_errors();var assert=__require("node:assert"); +var{isValidHTTPToken,isValidHeaderValue,isStream,destroy,isBuffer,isFormDataLike,isIterable,isBlobLike,buildURL,validateHandler,getServerName,normalizedMethodRecords}=require_util();var{channels}=require_diagnostics(); +var{headerNameLowerCasedRecord}=require_constants();var invalidPathRegex=/[^\u0021-\u00ff]/;var kHandler=Symbol("handler");var Request=class{constructor(origin,{path:path2,method,body,headers,query,idempotent, +blocking,upgrade,headersTimeout,bodyTimeout,reset,throwOnError,expectContinue,servername},handler){if(typeof path2!=="string"){throw new InvalidArgumentError("path must be a string")}else if(path2[0]!== +"/"&&!(path2.startsWith("http://")||path2.startsWith("https://"))&&method!=="CONNECT"){throw new InvalidArgumentError("path must be an absolute URL or start with a slash")}else if(invalidPathRegex.test( +path2)){throw new InvalidArgumentError("invalid request path")}if(typeof method!=="string"){throw new InvalidArgumentError("method must be a string")}else if(normalizedMethodRecords[method]===void 0&& +!isValidHTTPToken(method)){throw new InvalidArgumentError("invalid request method")}if(upgrade&&typeof upgrade!=="string"){throw new InvalidArgumentError("upgrade must be a string")}if(upgrade&&!isValidHeaderValue( +upgrade)){throw new InvalidArgumentError("invalid upgrade header")}if(headersTimeout!=null&&(!Number.isFinite(headersTimeout)||headersTimeout<0)){throw new InvalidArgumentError("invalid headersTimeout")} +if(bodyTimeout!=null&&(!Number.isFinite(bodyTimeout)||bodyTimeout<0)){throw new InvalidArgumentError("invalid bodyTimeout")}if(reset!=null&&typeof reset!=="boolean"){throw new InvalidArgumentError("in\ +valid reset")}if(expectContinue!=null&&typeof expectContinue!=="boolean"){throw new InvalidArgumentError("invalid expectContinue")}this.headersTimeout=headersTimeout;this.bodyTimeout=bodyTimeout;this. +throwOnError=throwOnError===true;this.method=method;this.abort=null;if(body==null){this.body=null}else if(isStream(body)){this.body=body;const rState=this.body._readableState;if(!rState||!rState.autoDestroy){ +this.endHandler=function autoDestroy(){destroy(this)};this.body.on("end",this.endHandler)}this.errorHandler=err=>{if(this.abort){this.abort(err)}else{this.error=err}};this.body.on("error",this.errorHandler)}else if(isBuffer( +body)){this.body=body.byteLength?body:null}else if(ArrayBuffer.isView(body)){this.body=body.buffer.byteLength?Buffer.from(body.buffer,body.byteOffset,body.byteLength):null}else if(body instanceof ArrayBuffer){ +this.body=body.byteLength?Buffer.from(body):null}else if(typeof body==="string"){this.body=body.length?Buffer.from(body):null}else if(isFormDataLike(body)||isIterable(body)||isBlobLike(body)){this.body= +body}else{throw new InvalidArgumentError("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable")}this.completed=false;this.aborted=false;this.upgrade=upgrade||null;this. +path=query?buildURL(path2,query):path2;this.origin=origin;this.idempotent=idempotent==null?method==="HEAD"||method==="GET":idempotent;this.blocking=blocking==null?false:blocking;this.reset=reset==null? +null:reset;this.host=null;this.contentLength=null;this.contentType=null;this.headers=[];this.expectContinue=expectContinue!=null?expectContinue:false;if(Array.isArray(headers)){if(headers.length%2!==0){ +throw new InvalidArgumentError("headers array must be even")}for(let i=0;i=0;i--){const interceptor=this[kInterceptors][i];if(typeof interceptor!=="function"){throw new InvalidArgumentError("interceptor must be an fun\ +ction")}}}this[kInterceptors]=newInterceptors}close(callback){if(callback===void 0){return new Promise((resolve,reject)=>{this.close((err,data)=>{return err?reject(err):resolve(data)})})}if(typeof callback!== +"function"){throw new InvalidArgumentError("invalid callback")}if(this[kDestroyed]){queueMicrotask(()=>callback(new ClientDestroyedError,null));return}if(this[kClosed]){if(this[kOnClosed]){this[kOnClosed]. +push(callback)}else{queueMicrotask(()=>callback(null,null))}return}this[kClosed]=true;this[kOnClosed].push(callback);const onClosed=()=>{const callbacks=this[kOnClosed];this[kOnClosed]=null;for(let i=0;i< +callbacks.length;i++){callbacks[i](null,null)}};this[kClose]().then(()=>this.destroy()).then(()=>{queueMicrotask(onClosed)})}destroy(err,callback){if(typeof err==="function"){callback=err;err=null}if(callback=== +void 0){return new Promise((resolve,reject)=>{this.destroy(err,(err2,data)=>{return err2?reject(err2):resolve(data)})})}if(typeof callback!=="function"){throw new InvalidArgumentError("invalid callbac\ +k")}if(this[kDestroyed]){if(this[kOnDestroyed]){this[kOnDestroyed].push(callback)}else{queueMicrotask(()=>callback(null,null))}return}if(!err){err=new ClientDestroyedError}this[kDestroyed]=true;this[kOnDestroyed]= +this[kOnDestroyed]||[];this[kOnDestroyed].push(callback);const onDestroyed=()=>{const callbacks=this[kOnDestroyed];this[kOnDestroyed]=null;for(let i=0;i{queueMicrotask(onDestroyed)})}[kInterceptedDispatch](opts,handler){if(!this[kInterceptors]||this[kInterceptors].length===0){this[kInterceptedDispatch]=this[kDispatch];return this[kDispatch]( +opts,handler)}let dispatch=this[kDispatch].bind(this);for(let i=this[kInterceptors].length-1;i>=0;i--){dispatch=this[kInterceptors][i](dispatch)}this[kInterceptedDispatch]=dispatch;return dispatch(opts, +handler)}dispatch(opts,handler){if(!handler||typeof handler!=="object"){throw new InvalidArgumentError("handler must be an object")}try{if(!opts||typeof opts!=="object"){throw new InvalidArgumentError( +"opts must be an object.")}if(this[kDestroyed]||this[kOnDestroyed]){throw new ClientDestroyedError}if(this[kClosed]){throw new ClientClosedError}return this[kInterceptedDispatch](opts,handler)}catch(err){ +if(typeof handler.onError!=="function"){throw new InvalidArgumentError("invalid onError method")}handler.onError(err);return false}}};module.exports=DispatcherBase}});var require_timers=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/util/timers.js"(exports,module){"use strict";var fastNow=0;var RESOLUTION_MS=1e3;var TICK_MS=(RESOLUTION_MS>>1)- +1;var fastNowTimeout;var kFastTimer=Symbol("kFastTimer");var fastTimers=[];var NOT_IN_LIST=-2;var TO_BE_CLEARED=-1;var PENDING=0;var ACTIVE=1;function onTick(){fastNow+=TICK_MS;let idx=0;let len=fastTimers. +length;while(idx=timer._idleStart+timer._idleTimeout){ +timer._state=TO_BE_CLEARED;timer._idleStart=-1;timer._onTimeout(timer._timerArg)}if(timer._state===TO_BE_CLEARED){timer._state=NOT_IN_LIST;if(--len!==0){fastTimers[idx]=fastTimers[len]}}else{++idx}}fastTimers. +length=len;if(fastTimers.length!==0){refreshTimeout()}}function refreshTimeout(){if(fastNowTimeout){fastNowTimeout.refresh()}else{clearTimeout(fastNowTimeout);fastNowTimeout=setTimeout(onTick,TICK_MS); +if(fastNowTimeout.unref){fastNowTimeout.unref()}}}var FastTimer=class{[kFastTimer]=true;_state=NOT_IN_LIST;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(callback,delay,arg){this._onTimeout= +callback;this._idleTimeout=delay;this._timerArg=arg;this.refresh()}refresh(){if(this._state===NOT_IN_LIST){fastTimers.push(this)}if(!fastNowTimeout||fastTimers.length===1){refreshTimeout()}this._state= +PENDING}clear(){this._state=TO_BE_CLEARED;this._idleStart=-1}};module.exports={setTimeout(callback,delay,arg){return delay<=RESOLUTION_MS?setTimeout(callback,delay,arg):new FastTimer(callback,delay,arg)}, +clearTimeout(timeout){if(timeout[kFastTimer]){timeout.clear()}else{clearTimeout(timeout)}},setFastTimeout(callback,delay,arg){return new FastTimer(callback,delay,arg)},clearFastTimeout(timeout){timeout. +clear()},now(){return fastNow},tick(delay=0){fastNow+=delay-RESOLUTION_MS+1;onTick();onTick()},reset(){fastNow=0;fastTimers.length=0;clearTimeout(fastNowTimeout);fastNowTimeout=null},kFastTimer}}});var require_connect=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/core/connect.js"(exports,module){"use strict";var net=__require("node:net");var assert=__require("node:assert"); +var util=require_util();var{InvalidArgumentError,ConnectTimeoutError}=require_errors();var timers=require_timers();function noop(){}var tls;var SessionCache;if(global.FinalizationRegistry&&!(process.env. +NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)){SessionCache=class WeakSessionCache{constructor(maxCachedSessions){this._maxCachedSessions=maxCachedSessions;this._sessionCache=new Map;this._sessionRegistry= +new global.FinalizationRegistry(key=>{if(this._sessionCache.size=this._maxCachedSessions){const{value:oldestKey}=this._sessionCache. +keys().next();this._sessionCache.delete(oldestKey)}this._sessionCache.set(sessionKey,session)}}}function buildConnector({allowH2,maxCachedSessions,socketPath,timeout,session:customSession,...opts}){if(maxCachedSessions!= +null&&(!Number.isInteger(maxCachedSessions)||maxCachedSessions<0)){throw new InvalidArgumentError("maxCachedSessions must be a positive integer or zero")}const options={path:socketPath,...opts};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){ +let socket;if(protocol==="https:"){if(!tls){tls=__require("node:tls")}servername=servername||options.servername||util.getServerName(host)||null;const sessionKey=servername||hostname;assert(sessionKey); +const session=customSession||sessionCache.get(sessionKey)||null;port=port||443;socket=tls.connect({highWaterMark:16384,...options,servername,session,localAddress,ALPNProtocols:allowH2?["http/1.1","h2"]: +["http/1.1"],socket:httpSocket,port,host:hostname});socket.on("session",function(session2){sessionCache.set(sessionKey,session2)})}else{assert(!httpSocket,"httpSocket can only be sent on TLS update"); +port=port||80;socket=net.connect({highWaterMark:64*1024,...options,localAddress,port,host:hostname})}if(options.keepAlive==null||options.keepAlive){const keepAliveInitialDelay=options.keepAliveInitialDelay=== +void 0?6e4:options.keepAliveInitialDelay;socket.setKeepAlive(true,keepAliveInitialDelay)}const clearConnectTimeout=setupConnectTimeout(new WeakRef(socket),{timeout,hostname,port});socket.setNoDelay(true). +once(protocol==="https:"?"secureConnect":"connect",function(){queueMicrotask(clearConnectTimeout);if(callback){const cb=callback;callback=null;cb(null,this)}}).on("error",function(err){queueMicrotask( +clearConnectTimeout);if(callback){const cb=callback;callback=null;cb(err)}});return socket}}var setupConnectTimeout=process.platform==="win32"?(socketWeakRef,opts)=>{if(!opts.timeout){return noop}let s1=null; +let s2=null;const fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{s2=setImmediate(()=>onConnectTimeout(socketWeakRef.deref(),opts))})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer); +clearImmediate(s1);clearImmediate(s2)}}:(socketWeakRef,opts)=>{if(!opts.timeout){return noop}let s1=null;const fastTimer=timers.setFastTimeout(()=>{s1=setImmediate(()=>{onConnectTimeout(socketWeakRef. +deref(),opts)})},opts.timeout);return()=>{timers.clearFastTimeout(fastTimer);clearImmediate(s1)}};function onConnectTimeout(socket,opts){if(socket==null){return}let message="Connect Timeout Error";if(Array. +isArray(socket.autoSelectFamilyAttemptedAddresses)){message+=` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},`}else{message+=` (attempted address: ${opts.hostname}:${opts. +port},`}message+=` timeout: ${opts.timeout}ms)`;util.destroy(socket,new ConnectTimeoutError(message))}module.exports=buildConnector}});var require_utils=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/utils.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.enumToMap= +void 0;function enumToMap(obj){const res={};Object.keys(obj).forEach(key=>{const value=obj[key];if(typeof value==="number"){res[key]=value}});return res}exports.enumToMap=enumToMap}});var require_constants2=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/constants.js"(exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports. +SPECIAL_HEADERS=exports.HEADER_STATE=exports.MINOR=exports.MAJOR=exports.CONNECTION_TOKEN_CHARS=exports.HEADER_CHARS=exports.TOKEN=exports.STRICT_TOKEN=exports.HEX=exports.URL_CHAR=exports.STRICT_URL_CHAR= +exports.USERINFO_CHARS=exports.MARK=exports.ALPHANUM=exports.NUM=exports.HEX_MAP=exports.NUM_MAP=exports.ALPHA=exports.FINISH=exports.H_METHOD_MAP=exports.METHOD_MAP=exports.METHODS_RTSP=exports.METHODS_ICE= +exports.METHODS_HTTP=exports.METHODS=exports.LENIENT_FLAGS=exports.FLAGS=exports.TYPE=exports.ERROR=void 0;var utils_1=require_utils();var ERROR;(function(ERROR2){ERROR2[ERROR2["OK"]=0]="OK";ERROR2[ERROR2["\ +INTERNAL"]=1]="INTERNAL";ERROR2[ERROR2["STRICT"]=2]="STRICT";ERROR2[ERROR2["LF_EXPECTED"]=3]="LF_EXPECTED";ERROR2[ERROR2["UNEXPECTED_CONTENT_LENGTH"]=4]="UNEXPECTED_CONTENT_LENGTH";ERROR2[ERROR2["CLOS\ +ED_CONNECTION"]=5]="CLOSED_CONNECTION";ERROR2[ERROR2["INVALID_METHOD"]=6]="INVALID_METHOD";ERROR2[ERROR2["INVALID_URL"]=7]="INVALID_URL";ERROR2[ERROR2["INVALID_CONSTANT"]=8]="INVALID_CONSTANT";ERROR2[ERROR2["\ +INVALID_VERSION"]=9]="INVALID_VERSION";ERROR2[ERROR2["INVALID_HEADER_TOKEN"]=10]="INVALID_HEADER_TOKEN";ERROR2[ERROR2["INVALID_CONTENT_LENGTH"]=11]="INVALID_CONTENT_LENGTH";ERROR2[ERROR2["INVALID_CHUN\ +K_SIZE"]=12]="INVALID_CHUNK_SIZE";ERROR2[ERROR2["INVALID_STATUS"]=13]="INVALID_STATUS";ERROR2[ERROR2["INVALID_EOF_STATE"]=14]="INVALID_EOF_STATE";ERROR2[ERROR2["INVALID_TRANSFER_ENCODING"]=15]="INVALI\ +D_TRANSFER_ENCODING";ERROR2[ERROR2["CB_MESSAGE_BEGIN"]=16]="CB_MESSAGE_BEGIN";ERROR2[ERROR2["CB_HEADERS_COMPLETE"]=17]="CB_HEADERS_COMPLETE";ERROR2[ERROR2["CB_MESSAGE_COMPLETE"]=18]="CB_MESSAGE_COMPLE\ +TE";ERROR2[ERROR2["CB_CHUNK_HEADER"]=19]="CB_CHUNK_HEADER";ERROR2[ERROR2["CB_CHUNK_COMPLETE"]=20]="CB_CHUNK_COMPLETE";ERROR2[ERROR2["PAUSED"]=21]="PAUSED";ERROR2[ERROR2["PAUSED_UPGRADE"]=22]="PAUSED_U\ +PGRADE";ERROR2[ERROR2["PAUSED_H2_UPGRADE"]=23]="PAUSED_H2_UPGRADE";ERROR2[ERROR2["USER"]=24]="USER"})(ERROR=exports.ERROR||(exports.ERROR={}));var TYPE;(function(TYPE2){TYPE2[TYPE2["BOTH"]=0]="BOTH";TYPE2[TYPE2["\ +REQUEST"]=1]="REQUEST";TYPE2[TYPE2["RESPONSE"]=2]="RESPONSE"})(TYPE=exports.TYPE||(exports.TYPE={}));var FLAGS;(function(FLAGS2){FLAGS2[FLAGS2["CONNECTION_KEEP_ALIVE"]=1]="CONNECTION_KEEP_ALIVE";FLAGS2[FLAGS2["\ +CONNECTION_CLOSE"]=2]="CONNECTION_CLOSE";FLAGS2[FLAGS2["CONNECTION_UPGRADE"]=4]="CONNECTION_UPGRADE";FLAGS2[FLAGS2["CHUNKED"]=8]="CHUNKED";FLAGS2[FLAGS2["UPGRADE"]=16]="UPGRADE";FLAGS2[FLAGS2["CONTENT\ +_LENGTH"]=32]="CONTENT_LENGTH";FLAGS2[FLAGS2["SKIPBODY"]=64]="SKIPBODY";FLAGS2[FLAGS2["TRAILING"]=128]="TRAILING";FLAGS2[FLAGS2["TRANSFER_ENCODING"]=512]="TRANSFER_ENCODING"})(FLAGS=exports.FLAGS||(exports. +FLAGS={}));var LENIENT_FLAGS;(function(LENIENT_FLAGS2){LENIENT_FLAGS2[LENIENT_FLAGS2["HEADERS"]=1]="HEADERS";LENIENT_FLAGS2[LENIENT_FLAGS2["CHUNKED_LENGTH"]=2]="CHUNKED_LENGTH";LENIENT_FLAGS2[LENIENT_FLAGS2["\ +KEEP_ALIVE"]=4]="KEEP_ALIVE"})(LENIENT_FLAGS=exports.LENIENT_FLAGS||(exports.LENIENT_FLAGS={}));var METHODS;(function(METHODS2){METHODS2[METHODS2["DELETE"]=0]="DELETE";METHODS2[METHODS2["GET"]=1]="GET"; +METHODS2[METHODS2["HEAD"]=2]="HEAD";METHODS2[METHODS2["POST"]=3]="POST";METHODS2[METHODS2["PUT"]=4]="PUT";METHODS2[METHODS2["CONNECT"]=5]="CONNECT";METHODS2[METHODS2["OPTIONS"]=6]="OPTIONS";METHODS2[METHODS2["\ +TRACE"]=7]="TRACE";METHODS2[METHODS2["COPY"]=8]="COPY";METHODS2[METHODS2["LOCK"]=9]="LOCK";METHODS2[METHODS2["MKCOL"]=10]="MKCOL";METHODS2[METHODS2["MOVE"]=11]="MOVE";METHODS2[METHODS2["PROPFIND"]=12]= +"PROPFIND";METHODS2[METHODS2["PROPPATCH"]=13]="PROPPATCH";METHODS2[METHODS2["SEARCH"]=14]="SEARCH";METHODS2[METHODS2["UNLOCK"]=15]="UNLOCK";METHODS2[METHODS2["BIND"]=16]="BIND";METHODS2[METHODS2["REBI\ +ND"]=17]="REBIND";METHODS2[METHODS2["UNBIND"]=18]="UNBIND";METHODS2[METHODS2["ACL"]=19]="ACL";METHODS2[METHODS2["REPORT"]=20]="REPORT";METHODS2[METHODS2["MKACTIVITY"]=21]="MKACTIVITY";METHODS2[METHODS2["\ +CHECKOUT"]=22]="CHECKOUT";METHODS2[METHODS2["MERGE"]=23]="MERGE";METHODS2[METHODS2["M-SEARCH"]=24]="M-SEARCH";METHODS2[METHODS2["NOTIFY"]=25]="NOTIFY";METHODS2[METHODS2["SUBSCRIBE"]=26]="SUBSCRIBE";METHODS2[METHODS2["\ +UNSUBSCRIBE"]=27]="UNSUBSCRIBE";METHODS2[METHODS2["PATCH"]=28]="PATCH";METHODS2[METHODS2["PURGE"]=29]="PURGE";METHODS2[METHODS2["MKCALENDAR"]=30]="MKCALENDAR";METHODS2[METHODS2["LINK"]=31]="LINK";METHODS2[METHODS2["\ +UNLINK"]=32]="UNLINK";METHODS2[METHODS2["SOURCE"]=33]="SOURCE";METHODS2[METHODS2["PRI"]=34]="PRI";METHODS2[METHODS2["DESCRIBE"]=35]="DESCRIBE";METHODS2[METHODS2["ANNOUNCE"]=36]="ANNOUNCE";METHODS2[METHODS2["\ +SETUP"]=37]="SETUP";METHODS2[METHODS2["PLAY"]=38]="PLAY";METHODS2[METHODS2["PAUSE"]=39]="PAUSE";METHODS2[METHODS2["TEARDOWN"]=40]="TEARDOWN";METHODS2[METHODS2["GET_PARAMETER"]=41]="GET_PARAMETER";METHODS2[METHODS2["\ +SET_PARAMETER"]=42]="SET_PARAMETER";METHODS2[METHODS2["REDIRECT"]=43]="REDIRECT";METHODS2[METHODS2["RECORD"]=44]="RECORD";METHODS2[METHODS2["FLUSH"]=45]="FLUSH"})(METHODS=exports.METHODS||(exports.METHODS= +{}));exports.METHODS_HTTP=[METHODS.DELETE,METHODS.GET,METHODS.HEAD,METHODS.POST,METHODS.PUT,METHODS.CONNECT,METHODS.OPTIONS,METHODS.TRACE,METHODS.COPY,METHODS.LOCK,METHODS.MKCOL,METHODS.MOVE,METHODS.PROPFIND, +METHODS.PROPPATCH,METHODS.SEARCH,METHODS.UNLOCK,METHODS.BIND,METHODS.REBIND,METHODS.UNBIND,METHODS.ACL,METHODS.REPORT,METHODS.MKACTIVITY,METHODS.CHECKOUT,METHODS.MERGE,METHODS["M-SEARCH"],METHODS.NOTIFY, +METHODS.SUBSCRIBE,METHODS.UNSUBSCRIBE,METHODS.PATCH,METHODS.PURGE,METHODS.MKCALENDAR,METHODS.LINK,METHODS.UNLINK,METHODS.PRI,METHODS.SOURCE];exports.METHODS_ICE=[METHODS.SOURCE];exports.METHODS_RTSP=[ +METHODS.OPTIONS,METHODS.DESCRIBE,METHODS.ANNOUNCE,METHODS.SETUP,METHODS.PLAY,METHODS.PAUSE,METHODS.TEARDOWN,METHODS.GET_PARAMETER,METHODS.SET_PARAMETER,METHODS.REDIRECT,METHODS.RECORD,METHODS.FLUSH,METHODS. +GET,METHODS.POST];exports.METHOD_MAP=utils_1.enumToMap(METHODS);exports.H_METHOD_MAP={};Object.keys(exports.METHOD_MAP).forEach(key=>{if(/^H/.test(key)){exports.H_METHOD_MAP[key]=exports.METHOD_MAP[key]}}); +var FINISH;(function(FINISH2){FINISH2[FINISH2["SAFE"]=0]="SAFE";FINISH2[FINISH2["SAFE_WITH_CB"]=1]="SAFE_WITH_CB";FINISH2[FINISH2["UNSAFE"]=2]="UNSAFE"})(FINISH=exports.FINISH||(exports.FINISH={}));exports. +ALPHA=[];for(let i="A".charCodeAt(0);i<="Z".charCodeAt(0);i++){exports.ALPHA.push(String.fromCharCode(i));exports.ALPHA.push(String.fromCharCode(i+32))}exports.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7, +8:8,9:9};exports.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};exports.NUM=["0","1","2","3","4","5","6","7","8","9"];exports.ALPHANUM=exports. +ALPHA.concat(exports.NUM);exports.MARK=["-","_",".","!","~","*","'","(",")"];exports.USERINFO_CHARS=exports.ALPHANUM.concat(exports.MARK).concat(["%",";",":","&","=","+","$",","]);exports.STRICT_URL_CHAR= +["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(exports.ALPHANUM);exports.URL_CHAR=exports.STRICT_URL_CHAR.concat([" ", +"\f"]);for(let i=128;i<=255;i++){exports.URL_CHAR.push(i)}exports.HEX=exports.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);exports.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".", +"^","_","`","|","~"].concat(exports.ALPHANUM);exports.TOKEN=exports.STRICT_TOKEN.concat([" "]);exports.HEADER_CHARS=[" "];for(let i=32;i<=255;i++){if(i!==127){exports.HEADER_CHARS.push(i)}}exports.CONNECTION_TOKEN_CHARS= +exports.HEADER_CHARS.filter(c=>c!==44);exports.MAJOR=exports.NUM_MAP;exports.MINOR=exports.MAJOR;var HEADER_STATE;(function(HEADER_STATE2){HEADER_STATE2[HEADER_STATE2["GENERAL"]=0]="GENERAL";HEADER_STATE2[HEADER_STATE2["\ +CONNECTION"]=1]="CONNECTION";HEADER_STATE2[HEADER_STATE2["CONTENT_LENGTH"]=2]="CONTENT_LENGTH";HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING"]=3]="TRANSFER_ENCODING";HEADER_STATE2[HEADER_STATE2["UPGR\ +ADE"]=4]="UPGRADE";HEADER_STATE2[HEADER_STATE2["CONNECTION_KEEP_ALIVE"]=5]="CONNECTION_KEEP_ALIVE";HEADER_STATE2[HEADER_STATE2["CONNECTION_CLOSE"]=6]="CONNECTION_CLOSE";HEADER_STATE2[HEADER_STATE2["CO\ +NNECTION_UPGRADE"]=7]="CONNECTION_UPGRADE";HEADER_STATE2[HEADER_STATE2["TRANSFER_ENCODING_CHUNKED"]=8]="TRANSFER_ENCODING_CHUNKED"})(HEADER_STATE=exports.HEADER_STATE||(exports.HEADER_STATE={}));exports. +SPECIAL_HEADERS={"connection":HEADER_STATE.CONNECTION,"content-length":HEADER_STATE.CONTENT_LENGTH,"proxy-connection":HEADER_STATE.CONNECTION,"transfer-encoding":HEADER_STATE.TRANSFER_ENCODING,"upgrad\ +e":HEADER_STATE.UPGRADE}}});var require_llhttp_wasm=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer");module.exports= +Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV\ +9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQ\ +EBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbG\ +xvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdX\ +BncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZX\ +RfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaH\ +R0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZW\ +Vkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK07MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQ\ +hrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAj\ +YCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfn\ +E2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIA\ +I2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAE\ +Gg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIA\ +I2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgAS\ +AEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCy\ +AFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDC\ +AAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggAS\ +ABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIA\ +M2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGA\ +u74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAk\ +ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAk\ +ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAk\ +ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Oj\ +s8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBow\ +GkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQR\ +oMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0\ +EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADI\ +oBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0\ +EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQ\ +tB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQA\ +tBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJw\ +tBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0\ +G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQA\ +JAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQA\ +JAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQA\ +JAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQA\ +JAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQA\ +JAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQA\ +JAAkACQAJAAkACQCADDsYBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHyAhIyUmKCorLC8wMTIzNDU2Nzk6Ozw9lANAQkRFRklLTk9QUVJTVFVWWFpbXF1eX2BhYmNkZWZnaGpsb3Bxc3V2eHl6e3x/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4Bjw\ +GQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcsBzAHNAc4BzwGKA4kDiAOHA4QDgwOAA/sC+gL5AvgC9w\ +L0AvMC8gLLAsECsALZAQsgASAERw3wAkHdASEDDLMDCyABIARHDcgBQcMBIQMMsgMLIAEgBEcNe0H3ACEDDLEDCyABIARHDXBB7wAhAwywAwsgASAERw1pQeoAIQMMrwMLIAEgBEcNZUHoACEDDK4DCyABIARHDWJB5gAhAwytAwsgASAERw0aQRghAwysAwsgASAERw\ +0VQRIhAwyrAwsgASAERw1CQcUAIQMMqgMLIAEgBEcNNEE/IQMMqQMLIAEgBEcNMkE8IQMMqAMLIAEgBEcNK0ExIQMMpwMLIAItAC5BAUYNnwMMwQILQQAhAAJAAkACQCACLQAqRQ0AIAItACtFDQAgAi8BMCIDQQJxRQ0BDAILIAIvATAiA0EBcUUNAQtBASEAIAItAC\ +hBAUYNACACLwEyIgVB5ABrQeQASQ0AIAVBzAFGDQAgBUGwAkYNACADQcAAcQ0AQQAhACADQYgEcUGABEYNACADQShxQQBHIQALIAJBADsBMCACQQA6AC8gAEUN3wIgAkIANwMgDOACC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAARQ3MASAAQR\ +VHDd0CIAJBBDYCHCACIAE2AhQgAkGwGDYCECACQRU2AgxBACEDDKQDCyABIARGBEBBBiEDDKQDCyABQQFqIQFBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAA3ZAgwcCyACQgA3AyBBEiEDDIkDCyABIARHDRZBHSEDDKEDCyABIARHBEAgAUEBai\ +EBQRAhAwyIAwtBByEDDKADCyACIAIpAyAiCiAEIAFrrSILfSIMQgAgCiAMWhs3AyAgCiALWA3UAkEIIQMMnwMLIAEgBEcEQCACQQk2AgggAiABNgIEQRQhAwyGAwtBCSEDDJ4DCyACKQMgQgBSDccBIAIgAi8BMEGAAXI7ATAMQgsgASAERw0/QdAAIQMMnAMLIAEgBE\ +YEQEELIQMMnAMLIAFBAWohAUEAIQACQCACKAI4IgNFDQAgAygCUCIDRQ0AIAIgAxEAACEACyAADc8CDMYBC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ3GASAAQRVHDc0CIAJBCzYCHCACIAE2AhQgAkGCGTYCECACQRU2AgxBACEDDJoDC0\ +EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ0MIABBFUcNygIgAkEaNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMmQMLQQAhAAJAIAIoAjgiA0UNACADKAJMIgNFDQAgAiADEQAAIQALIABFDcQBIABBFUcNxwIgAkELNgIcIAIgATYCFC\ +ACQZEXNgIQIAJBFTYCDEEAIQMMmAMLIAEgBEYEQEEPIQMMmAMLIAEtAAAiAEE7Rg0HIABBDUcNxAIgAUEBaiEBDMMBC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3DASAAQRVHDcICIAJBDzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBAC\ +EDDJYDCwNAIAEtAABB8DVqLQAAIgBBAUcEQCAAQQJHDcECIAIoAgQhAEEAIQMgAkEANgIEIAIgACABQQFqIgEQLSIADcICDMUBCyAEIAFBAWoiAUcNAAtBEiEDDJUDC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3FASAAQRVHDb0CIAJBGz\ +YCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJQDCyABIARGBEBBFiEDDJQDCyACQQo2AgggAiABNgIEQQAhAAJAIAIoAjgiA0UNACADKAJIIgNFDQAgAiADEQAAIQALIABFDcIBIABBFUcNuQIgAkEVNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMkwMLIA\ +EgBEcEQANAIAEtAABB8DdqLQAAIgBBAkcEQAJAIABBAWsOBMQCvQIAvgK9AgsgAUEBaiEBQQghAwz8AgsgBCABQQFqIgFHDQALQRUhAwyTAwtBFSEDDJIDCwNAIAEtAABB8DlqLQAAIgBBAkcEQCAAQQFrDgTFArcCwwK4ArcCCyAEIAFBAWoiAUcNAAtBGCEDDJEDCy\ +ABIARHBEAgAkELNgIIIAIgATYCBEEHIQMM+AILQRkhAwyQAwsgAUEBaiEBDAILIAEgBEYEQEEaIQMMjwMLAkAgAS0AAEENaw4UtQG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwEAvwELQQAhAyACQQA2AhwgAkGvCzYCECACQQI2AgwgAiABQQFqNg\ +IUDI4DCyABIARGBEBBGyEDDI4DCyABLQAAIgBBO0cEQCAAQQ1HDbECIAFBAWohAQy6AQsgAUEBaiEBC0EiIQMM8wILIAEgBEYEQEEcIQMMjAMLQgAhCgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43wQLAAgABAgMEBQYH0A\ +HQAdAB0AHQAdAB0AEICQoLDA3QAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdABDg8QERIT0AELQgIhCgzAAgtCAyEKDL8CC0IEIQoMvgILQgUhCgy9AgtCBiEKDLwCC0IHIQoMuwILQgghCgy6AgtCCSEKDLkCC0IKIQoMuA\ +ILQgshCgy3AgtCDCEKDLYCC0INIQoMtQILQg4hCgy0AgtCDyEKDLMCC0IKIQoMsgILQgshCgyxAgtCDCEKDLACC0INIQoMrwILQg4hCgyuAgtCDyEKDK0CC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBMGsON8ACvwIAAQ\ +IDBAUGB74CvgK+Ar4CvgK+Ar4CCAkKCwwNvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ag4PEBESE74CC0ICIQoMvwILQgMhCgy+AgtCBCEKDL0CC0IFIQoMvAILQgYhCgy7AgtCByEKDLoCC0IIIQoMuQILQgkhCgy4Ag\ +tCCiEKDLcCC0ILIQoMtgILQgwhCgy1AgtCDSEKDLQCC0IOIQoMswILQg8hCgyyAgtCCiEKDLECC0ILIQoMsAILQgwhCgyvAgtCDSEKDK4CC0IOIQoMrQILQg8hCgysAgsgAiACKQMgIgogBCABa60iC30iDEIAIAogDFobNwMgIAogC1gNpwJBHyEDDIkDCyABIARHBE\ +AgAkEJNgIIIAIgATYCBEElIQMM8AILQSAhAwyIAwtBASEFIAIvATAiA0EIcUUEQCACKQMgQgBSIQULAkAgAi0ALgRAQQEhACACLQApQQVGDQEgA0HAAHFFIAVxRQ0BC0EAIQAgA0HAAHENAEECIQAgA0EIcQ0AIANBgARxBEACQCACLQAoQQFHDQAgAi0ALUEKcQ0AQQ\ +UhAAwCC0EEIQAMAQsgA0EgcUUEQAJAIAItAChBAUYNACACLwEyIgBB5ABrQeQASQ0AIABBzAFGDQAgAEGwAkYNAEEEIQAgA0EocUUNAiADQYgEcUGABEYNAgtBACEADAELQQBBAyACKQMgUBshAAsgAEEBaw4FvgIAsAEBpAKhAgtBESEDDO0CCyACQQE6AC8MhAMLIA\ +EgBEcNnQJBJCEDDIQDCyABIARHDRxBxgAhAwyDAwtBACEAAkAgAigCOCIDRQ0AIAMoAkQiA0UNACACIAMRAAAhAAsgAEUNJyAAQRVHDZgCIAJB0AA2AhwgAiABNgIUIAJBkRg2AhAgAkEVNgIMQQAhAwyCAwsgASAERgRAQSghAwyCAwtBACEDIAJBADYCBCACQQw2Ag\ +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\ +YCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANg\ +IAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQ\ +MgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANg\ +IcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgAT\ +YCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQc\ +QUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshAC\ +AFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIA\ +JBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNAC\ +ACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIg\ +IgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ\ +0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaAC\ +AAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvw\ +kBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAk\ +ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW\ +FhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW\ +FhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYW\ +FhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0\ +GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0\ +HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0\ +GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0\ +GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIA\ +FrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGC\ +EECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAy\ +gCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBE\ +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\ +gLCQYAAAAHAAAACABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG\ +9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdA\ +BTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bm\ +tfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY2\ +9tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcG\ +xldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZC\ +BjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAE\ +V4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbi\ +B1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cm\ +wgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm\ +9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdm\ +FsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdG\ +F0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdX\ +JsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcG\ +F1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW\ +9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZA\ +BTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYF\ +RyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUF\ +VUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSU\ +VOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF\ +9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTU\ +FOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1\ +NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUE\ +VfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT0\ +5fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQ\ +BIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV\ +9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1\ +dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl\ +9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTV\ +BMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTl\ +NFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRU\ +FERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASF\ +BFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1\ +VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRV\ +FVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUE\ +FHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU\ +5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAA\ +DJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYx\ +YAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAg\ +ICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXw\ +EBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLW\ +VuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4A\ +EEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAE\ +GqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAw\ +MDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0\ +VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")}});var require_llhttp_simd_wasm=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports,module){"use strict";var{Buffer:Buffer2}=__require("node:buffer"); +module.exports=Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmw\ +AAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAA\ +DAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9\ +hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmx\ +saHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQA\ +ZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXN\ +fbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHB\ +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\ +COgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkA\ +CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkA\ +CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkA\ +CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8\ +wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQG\ +eAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRg\ +MvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0E\ +tDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAE\ +LQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0H\ +WAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwt\ +B6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgt\ +BgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQt\ +BnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G\ +0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ\ +AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ\ +AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJ\ +AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ\ +AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ\ +AAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ\ +AAkACQAJAAkACQAJAAkACQAJAAkACQCADDsYBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHyAhIyUmKCorLC8wMTIzNDU2Nzk6Ozw9lANAQkRFRklLTk9QUVJTVFVWWFpbXF1eX2BhYmNkZWZnaGpsb3Bxc3V2eHl6e3x/gAGBAYIBgwGEAYUBhgGHAYgBiQG\ +KAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcsBzAHNAc4BzwGKA4kDiAOHA4QDgwO\ +AA/sC+gL5AvgC9wL0AvMC8gLLAsECsALZAQsgASAERw3wAkHdASEDDLMDCyABIARHDcgBQcMBIQMMsgMLIAEgBEcNe0H3ACEDDLEDCyABIARHDXBB7wAhAwywAwsgASAERw1pQeoAIQMMrwMLIAEgBEcNZUHoACEDDK4DCyABIARHDWJB5gAhAwytAwsgASAERw0aQRg\ +hAwysAwsgASAERw0VQRIhAwyrAwsgASAERw1CQcUAIQMMqgMLIAEgBEcNNEE/IQMMqQMLIAEgBEcNMkE8IQMMqAMLIAEgBEcNK0ExIQMMpwMLIAItAC5BAUYNnwMMwQILQQAhAAJAAkACQCACLQAqRQ0AIAItACtFDQAgAi8BMCIDQQJxRQ0BDAILIAIvATAiA0EBcUU\ +NAQtBASEAIAItAChBAUYNACACLwEyIgVB5ABrQeQASQ0AIAVBzAFGDQAgBUGwAkYNACADQcAAcQ0AQQAhACADQYgEcUGABEYNACADQShxQQBHIQALIAJBADsBMCACQQA6AC8gAEUN3wIgAkIANwMgDOACC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACE\ +ACyAARQ3MASAAQRVHDd0CIAJBBDYCHCACIAE2AhQgAkGwGDYCECACQRU2AgxBACEDDKQDCyABIARGBEBBBiEDDKQDCyABQQFqIQFBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAA3ZAgwcCyACQgA3AyBBEiEDDIkDCyABIARHDRZBHSEDDKEDCyA\ +BIARHBEAgAUEBaiEBQRAhAwyIAwtBByEDDKADCyACIAIpAyAiCiAEIAFrrSILfSIMQgAgCiAMWhs3AyAgCiALWA3UAkEIIQMMnwMLIAEgBEcEQCACQQk2AgggAiABNgIEQRQhAwyGAwtBCSEDDJ4DCyACKQMgQgBSDccBIAIgAi8BMEGAAXI7ATAMQgsgASAERw0/QdA\ +AIQMMnAMLIAEgBEYEQEELIQMMnAMLIAFBAWohAUEAIQACQCACKAI4IgNFDQAgAygCUCIDRQ0AIAIgAxEAACEACyAADc8CDMYBC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ3GASAAQRVHDc0CIAJBCzYCHCACIAE2AhQgAkGCGTYCECACQRU\ +2AgxBACEDDJoDC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ0MIABBFUcNygIgAkEaNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMmQMLQQAhAAJAIAIoAjgiA0UNACADKAJMIgNFDQAgAiADEQAAIQALIABFDcQBIABBFUcNxwIgAkE\ +LNgIcIAIgATYCFCACQZEXNgIQIAJBFTYCDEEAIQMMmAMLIAEgBEYEQEEPIQMMmAMLIAEtAAAiAEE7Rg0HIABBDUcNxAIgAUEBaiEBDMMBC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3DASAAQRVHDcICIAJBDzYCHCACIAE2AhQgAkGRFzY\ +CECACQRU2AgxBACEDDJYDCwNAIAEtAABB8DVqLQAAIgBBAUcEQCAAQQJHDcECIAIoAgQhAEEAIQMgAkEANgIEIAIgACABQQFqIgEQLSIADcICDMUBCyAEIAFBAWoiAUcNAAtBEiEDDJUDC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3FASA\ +AQRVHDb0CIAJBGzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJQDCyABIARGBEBBFiEDDJQDCyACQQo2AgggAiABNgIEQQAhAAJAIAIoAjgiA0UNACADKAJIIgNFDQAgAiADEQAAIQALIABFDcIBIABBFUcNuQIgAkEVNgIcIAIgATYCFCACQYIZNgIQIAJBFTY\ +CDEEAIQMMkwMLIAEgBEcEQANAIAEtAABB8DdqLQAAIgBBAkcEQAJAIABBAWsOBMQCvQIAvgK9AgsgAUEBaiEBQQghAwz8AgsgBCABQQFqIgFHDQALQRUhAwyTAwtBFSEDDJIDCwNAIAEtAABB8DlqLQAAIgBBAkcEQCAAQQFrDgTFArcCwwK4ArcCCyAEIAFBAWoiAUc\ +NAAtBGCEDDJEDCyABIARHBEAgAkELNgIIIAIgATYCBEEHIQMM+AILQRkhAwyQAwsgAUEBaiEBDAILIAEgBEYEQEEaIQMMjwMLAkAgAS0AAEENaw4UtQG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwEAvwELQQAhAyACQQA2AhwgAkGvCzYCECACQQI\ +2AgwgAiABQQFqNgIUDI4DCyABIARGBEBBGyEDDI4DCyABLQAAIgBBO0cEQCAAQQ1HDbECIAFBAWohAQy6AQsgAUEBaiEBC0EiIQMM8wILIAEgBEYEQEEcIQMMjAMLQgAhCgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43wQL\ +AAgABAgMEBQYH0AHQAdAB0AHQAdAB0AEICQoLDA3QAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdABDg8QERIT0AELQgIhCgzAAgtCAyEKDL8CC0IEIQoMvgILQgUhCgy9AgtCBiEKDLwCC0IHIQoMuwILQgghCgy6AgtCCSE\ +KDLkCC0IKIQoMuAILQgshCgy3AgtCDCEKDLYCC0INIQoMtQILQg4hCgy0AgtCDyEKDLMCC0IKIQoMsgILQgshCgyxAgtCDCEKDLACC0INIQoMrwILQg4hCgyuAgtCDyEKDK0CC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAAB\ +BMGsON8ACvwIAAQIDBAUGB74CvgK+Ar4CvgK+Ar4CCAkKCwwNvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ag4PEBESE74CC0ICIQoMvwILQgMhCgy+AgtCBCEKDL0CC0IFIQoMvAILQgYhCgy7AgtCByEKDLoCC0IIIQo\ +MuQILQgkhCgy4AgtCCiEKDLcCC0ILIQoMtgILQgwhCgy1AgtCDSEKDLQCC0IOIQoMswILQg8hCgyyAgtCCiEKDLECC0ILIQoMsAILQgwhCgyvAgtCDSEKDK4CC0IOIQoMrQILQg8hCgysAgsgAiACKQMgIgogBCABa60iC30iDEIAIAogDFobNwMgIAogC1gNpwJBHyE\ +DDIkDCyABIARHBEAgAkEJNgIIIAIgATYCBEElIQMM8AILQSAhAwyIAwtBASEFIAIvATAiA0EIcUUEQCACKQMgQgBSIQULAkAgAi0ALgRAQQEhACACLQApQQVGDQEgA0HAAHFFIAVxRQ0BC0EAIQAgA0HAAHENAEECIQAgA0EIcQ0AIANBgARxBEACQCACLQAoQQFHDQA\ +gAi0ALUEKcQ0AQQUhAAwCC0EEIQAMAQsgA0EgcUUEQAJAIAItAChBAUYNACACLwEyIgBB5ABrQeQASQ0AIABBzAFGDQAgAEGwAkYNAEEEIQAgA0EocUUNAiADQYgEcUGABEYNAgtBACEADAELQQBBAyACKQMgUBshAAsgAEEBaw4FvgIAsAEBpAKhAgtBESEDDO0CCyA\ +CQQE6AC8MhAMLIAEgBEcNnQJBJCEDDIQDCyABIARHDRxBxgAhAwyDAwtBACEAAkAgAigCOCIDRQ0AIAMoAkQiA0UNACACIAMRAAAhAAsgAEUNJyAAQRVHDZgCIAJB0AA2AhwgAiABNgIUIAJBkRg2AhAgAkEVNgIMQQAhAwyCAwsgASAERgRAQSghAwyCAwtBACEDIAJ\ +BADYCBCACQQw2AgggAiABIAEQKiIARQ2UAiACQSc2AhwgAiABNgIUIAIgADYCDAyBAwsgASAERgRAQSkhAwyBAwsgAS0AACIAQSBGDRMgAEEJRw2VAiABQQFqIQEMFAsgASAERwRAIAFBAWohAQwWC0EqIQMM/wILIAEgBEYEQEErIQMM/wILIAEtAAAiAEEJRyAAQSB\ +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\ +gAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQ\ +gAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkE\ +ANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA\ +2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiA\ +ANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCA\ +CIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg\ +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\ +CIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJ\ +BCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAw\ +RC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQM\ +gAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgI\ +cIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiE\ +HIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAI\ +IDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACE\ +AIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgI\ +AQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHF\ +BGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgI\ +QQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEE\ +CdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkA\ +CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWF\ +hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWF\ +hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWF\ +hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8\ +LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8\ +LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8\ +LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8\ +LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCI\ +DRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0\ +AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCA\ +AKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASA\ +CIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCI\ +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\ +vdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCB\ +jaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGV\ +ycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXN\ +fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29\ +tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh\ +0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWx\ +pZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWN\ +rIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGx\ +pY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJ\ +vciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx\ +1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2V\ +kIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV\ +0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29\ +tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9\ +uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGl\ +uIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGN\ +oYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVEl\ +GWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkV\ +BRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9\ +URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUN\ +UAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFR\ +JUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0F\ +SREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1R\ +JQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5\ +WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTAB\ +IUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEF\ +ORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEU\ +ASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0N\ +PTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQB\ +JTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJ\ +FU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEF\ +VU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkV\ +EAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0V\ +EAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9\ +DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVEl\ +PTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAAB\ +PFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRM\ +AAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgI\ +CAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQB\ +BiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQ\ +tbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE\ +BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQ\ +EBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgM\ +DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkR\ +JUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")}});var require_constants3=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/constants.js"(exports,module){"use strict";var corsSafeListedMethods=["GET","HEAD","POST"];var corsSafeListedMethodsSet=new Set( +corsSafeListedMethods);var nullBodyStatus=[101,204,205,304];var redirectStatus=[301,302,303,307,308];var redirectStatusSet=new Set(redirectStatus);var badPorts=["1","7","9","11","13","15","17","19","2\ +0","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512", +"513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6\ +666","6667","6668","6669","6679","6697","10080"];var badPortsSet=new Set(badPorts);var referrerPolicy=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when\ +-cross-origin","strict-origin-when-cross-origin","unsafe-url"];var referrerPolicySet=new Set(referrerPolicy);var requestRedirect=["follow","manual","error"];var safeMethods=["GET","HEAD","OPTIONS","TR\ +ACE"];var safeMethodsSet=new Set(safeMethods);var requestMode=["navigate","same-origin","no-cors","cors"];var requestCredentials=["omit","same-origin","include"];var requestCache=["default","no-store", +"reload","no-cache","force-cache","only-if-cached"];var requestBodyHeader=["content-encoding","content-language","content-location","content-type","content-length"];var requestDuplex=["half"];var forbiddenMethods=[ +"CONNECT","TRACE","TRACK"];var forbiddenMethodsSet=new Set(forbiddenMethods);var subresource=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""]; +var subresourceSet=new Set(subresource);module.exports={subresource,forbiddenMethods,requestBodyHeader,referrerPolicy,requestRedirect,requestMode,requestCredentials,requestCache,redirectStatus,corsSafeListedMethods, +nullBodyStatus,safeMethods,badPorts,requestDuplex,subresourceSet,badPortsSet,redirectStatusSet,corsSafeListedMethodsSet,safeMethodsSet,forbiddenMethodsSet,referrerPolicySet}}});var require_global=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/global.js"(exports,module){"use strict";var globalOrigin=Symbol.for("undici.globalOrigin.1");function getGlobalOrigin(){ +return globalThis[globalOrigin]}function setGlobalOrigin(newOrigin){if(newOrigin===void 0){Object.defineProperty(globalThis,globalOrigin,{value:void 0,writable:true,enumerable:false,configurable:false}); +return}const parsedURL=new URL(newOrigin);if(parsedURL.protocol!=="http:"&&parsedURL.protocol!=="https:"){throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`)}Object. +defineProperty(globalThis,globalOrigin,{value:parsedURL,writable:true,enumerable:false,configurable:false})}module.exports={getGlobalOrigin,setGlobalOrigin}}});var require_data_url=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/data-url.js"(exports,module){"use strict";var assert=__require("node:assert");var encoder=new TextEncoder; +var HTTP_TOKEN_CODEPOINTS=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/;var HTTP_WHITESPACE_REGEX=/[\u000A\u000D\u0009\u0020]/;var ASCII_WHITESPACE_REPLACE_REGEX=/[\u0009\u000A\u000C\u000D\u0020]/g;var HTTP_QUOTED_STRING_TOKENS=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; +function dataURLProcessor(dataURL){assert(dataURL.protocol==="data:");let input=URLSerializer(dataURL,true);input=input.slice(5);const position={position:0};let mimeType=collectASequenceOfCodePointsFast( +",",input,position);const mimeTypeLength=mimeType.length;mimeType=removeASCIIWhitespace(mimeType,true,true);if(position.position>=input.length){return"failure"}position.position++;const encodedBody=input. +slice(mimeTypeLength+1);let body=stringPercentDecode(encodedBody);if(/;(\u0020){0,}base64$/i.test(mimeType)){const stringBody=isomorphicDecode(body);body=forgivingBase64(stringBody);if(body==="failure"){ +return"failure"}mimeType=mimeType.slice(0,-6);mimeType=mimeType.replace(/(\u0020)+$/,"");mimeType=mimeType.slice(0,-1)}if(mimeType.startsWith(";")){mimeType="text/plain"+mimeType}let mimeTypeRecord=parseMIMEType( +mimeType);if(mimeTypeRecord==="failure"){mimeTypeRecord=parseMIMEType("text/plain;charset=US-ASCII")}return{mimeType:mimeTypeRecord,body}}function URLSerializer(url,excludeFragment=false){if(!excludeFragment){ +return url.href}const href=url.href;const hashLength=url.hash.length;const serialized=hashLength===0?href:href.substring(0,href.length-hashLength);if(!hashLength&&href.endsWith("#")){return serialized. +slice(0,-1)}return serialized}function collectASequenceOfCodePoints(condition,input,position){let result="";while(position.position=48&&byte<=57||byte>=65&&byte<=70||byte>=97&&byte<=102}function hexByteToNumber(byte){return byte>=48&&byte<=57?byte-48:(byte&223)-55}function percentDecode(input){ +const length=input.length;const output=new Uint8Array(length);let j=0;for(let i=0;i +input.length){return"failure"}position.position++;let subtype=collectASequenceOfCodePointsFast(";",input,position);subtype=removeHTTPWhitespace(subtype,false,true);if(subtype.length===0||!HTTP_TOKEN_CODEPOINTS. +test(subtype)){return"failure"}const typeLowercase=type.toLowerCase();const subtypeLowercase=subtype.toLowerCase();const mimeType={type:typeLowercase,subtype:subtypeLowercase,parameters:new Map,essence:`${typeLowercase}\ +/${subtypeLowercase}`};while(position.positionHTTP_WHITESPACE_REGEX.test(char),input,position);let parameterName=collectASequenceOfCodePoints( +char=>char!==";"&&char!=="=",input,position);parameterName=parameterName.toLowerCase();if(position.position +input.length){break}let parameterValue=null;if(input[position.position]==='"'){parameterValue=collectAnHTTPQuotedString(input,position,true);collectASequenceOfCodePointsFast(";",input,position)}else{parameterValue= +collectASequenceOfCodePointsFast(";",input,position);parameterValue=removeHTTPWhitespace(parameterValue,false,true);if(parameterValue.length===0){continue}}if(parameterName.length!==0&&HTTP_TOKEN_CODEPOINTS. +test(parameterName)&&(parameterValue.length===0||HTTP_QUOTED_STRING_TOKENS.test(parameterValue))&&!mimeType.parameters.has(parameterName)){mimeType.parameters.set(parameterName,parameterValue)}}return mimeType} +function forgivingBase64(data){data=data.replace(ASCII_WHITESPACE_REPLACE_REGEX,"");let dataLength=data.length;if(dataLength%4===0){if(data.charCodeAt(dataLength-1)===61){--dataLength;if(data.charCodeAt( +dataLength-1)===61){--dataLength}}}if(dataLength%4===1){return"failure"}if(/[^+/0-9A-Za-z]/.test(data.length===dataLength?data:data.substring(0,dataLength))){return"failure"}const buffer=Buffer.from(data, +"base64");return new Uint8Array(buffer.buffer,buffer.byteOffset,buffer.byteLength)}function collectAnHTTPQuotedString(input,position,extractValue){const positionStart=position.position;let value="";assert( +input[position.position]==='"');position.position++;while(true){value+=collectASequenceOfCodePoints(char=>char!=='"'&&char!=="\\",input,position);if(position.position>=input.length){break}const quoteOrBackslash=input[position. +position];position.position++;if(quoteOrBackslash==="\\"){if(position.position>=input.length){value+="\\";break}value+=input[position.position];position.position++}else{assert(quoteOrBackslash==='"'); +break}}if(extractValue){return value}return input.slice(positionStart,position.position)}function serializeAMimeType(mimeType){assert(mimeType!=="failure");const{parameters,essence}=mimeType;let serialization=essence; +for(let[name,value]of parameters.entries()){serialization+=";";serialization+=name;serialization+="=";if(!HTTP_TOKEN_CODEPOINTS.test(value)){value=value.replace(/(\\|")/g,"\\$1");value='"'+value;value+= +'"'}serialization+=value}return serialization}function isHTTPWhiteSpace(char){return char===13||char===10||char===9||char===32}function removeHTTPWhitespace(str,leading=true,trailing=true){return removeChars( +str,leading,trailing,isHTTPWhiteSpace)}function isASCIIWhitespace(char){return char===13||char===10||char===9||char===12||char===32}function removeASCIIWhitespace(str,leading=true,trailing=true){return removeChars( +str,leading,trailing,isASCIIWhitespace)}function removeChars(str,leading,trailing,predicate){let lead=0;let trail=str.length-1;if(leading){while(lead0&&predicate(str.charCodeAt(trail)))trail--}return lead===0&&trail===str.length-1?str:str.slice(lead,trail+1)}function isomorphicDecode(input){const length=input.length;if((2<< +15)-1>length){return String.fromCharCode.apply(null,input)}let result="";let i=0;let addition=(2<<15)-1;while(ilength){addition=length-i}result+=String.fromCharCode.apply(null,input. +subarray(i,i+=addition))}return result}function minimizeSupportedMimeType(mimeType){switch(mimeType.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"\ +application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"\ +text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"\ +image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}if(mimeType.subtype.endsWith("+json")){return"application/json"}if(mimeType.subtype.endsWith("+xml")){ +return"application/xml"}return""}module.exports={dataURLProcessor,URLSerializer,collectASequenceOfCodePoints,collectASequenceOfCodePointsFast,stringPercentDecode,parseMIMEType,collectAnHTTPQuotedString, +serializeAMimeType,removeChars,removeHTTPWhitespace,minimizeSupportedMimeType,HTTP_TOKEN_CODEPOINTS,isomorphicDecode}}});var require_webidl=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/webidl.js"(exports,module){"use strict";var{types,inspect}=__require("node:util");var{markAsUncloneable}=__require("node:worker_threads"); +var{toUSVString}=require_util();var webidl={};webidl.converters={};webidl.util={};webidl.errors={};webidl.errors.exception=function(message){return new TypeError(`${message.header}: ${message.message}`)}; +webidl.errors.conversionFailed=function(context){const plural=context.types.length===1?"":" one of";const message=`${context.argument} could not be converted to${plural}: ${context.types.join(", ")}.`; +return webidl.errors.exception({header:context.prefix,message})};webidl.errors.invalidArgument=function(context){return webidl.errors.exception({header:context.prefix,message:`"${context.value}" is an\ + invalid ${context.type}.`})};webidl.brandCheck=function(V,I,opts){if(opts?.strict!==false){if(!(V instanceof I)){const err=new TypeError("Illegal invocation");err.code="ERR_INVALID_THIS";throw err}}else{ +if(V?.[Symbol.toStringTag]!==I.prototype[Symbol.toStringTag]){const err=new TypeError("Illegal invocation");err.code="ERR_INVALID_THIS";throw err}}};webidl.argumentLengthCheck=function({length},min,ctx){ +if(length{});webidl.util.ConvertToInt=function(V,bitLength,signedness,opts){let upperBound;let lowerBound;if(bitLength===64){upperBound=Math.pow(2,53)-1;if(signedness==="unsigned"){lowerBound=0}else{lowerBound= +Math.pow(-2,53)+1}}else if(signedness==="unsigned"){lowerBound=0;upperBound=Math.pow(2,bitLength)-1}else{lowerBound=Math.pow(-2,bitLength)-1;upperBound=Math.pow(2,bitLength-1)-1}let x=Number(V);if(x=== +0){x=0}if(opts?.enforceRange===true){if(Number.isNaN(x)||x===Number.POSITIVE_INFINITY||x===Number.NEGATIVE_INFINITY){throw webidl.errors.exception({header:"Integer conversion",message:`Could not conve\ +rt ${webidl.util.Stringify(V)} to an integer.`})}x=webidl.util.IntegerPart(x);if(xupperBound){throw webidl.errors.exception({header:"Integer conversion",message:`Value must be between ${lowerBound}\ +-${upperBound}, got ${x}.`})}return x}if(!Number.isNaN(x)&&opts?.clamp===true){x=Math.min(Math.max(x,lowerBound),upperBound);if(Math.floor(x)%2===0){x=Math.floor(x)}else{x=Math.ceil(x)}return x}if(Number. +isNaN(x)||x===0&&Object.is(0,x)||x===Number.POSITIVE_INFINITY||x===Number.NEGATIVE_INFINITY){return 0}x=webidl.util.IntegerPart(x);x=x%Math.pow(2,bitLength);if(signedness==="signed"&&x>=Math.pow(2,bitLength)- +1){return x-Math.pow(2,bitLength)}return x};webidl.util.IntegerPart=function(n){const r=Math.floor(Math.abs(n));if(n<0){return-1*r}return r};webidl.util.Stringify=function(V){const type=webidl.util.Type( +V);switch(type){case"Symbol":return`Symbol(${V.description})`;case"Object":return inspect(V);case"String":return`"${V}"`;default:return`${V}`}};webidl.sequenceConverter=function(converter){return(V,prefix,argument,Iterable)=>{ +if(webidl.util.Type(V)!=="Object"){throw webidl.errors.exception({header:prefix,message:`${argument} (${webidl.util.Stringify(V)}) is not iterable.`})}const method=typeof Iterable==="function"?Iterable(): +V?.[Symbol.iterator]?.();const seq=[];let index=0;if(method===void 0||typeof method.next!=="function"){throw webidl.errors.exception({header:prefix,message:`${argument} is not iterable.`})}while(true){ +const{done,value}=method.next();if(done){break}seq.push(converter(value,prefix,`${argument}[${index++}]`))}return seq}};webidl.recordConverter=function(keyConverter,valueConverter){return(O,prefix,argument)=>{ +if(webidl.util.Type(O)!=="Object"){throw webidl.errors.exception({header:prefix,message:`${argument} ("${webidl.util.Type(O)}") is not an Object.`})}const result={};if(!types.isProxy(O)){const keys2=[ +...Object.getOwnPropertyNames(O),...Object.getOwnPropertySymbols(O)];for(const key of keys2){const typedKey=keyConverter(key,prefix,argument);const typedValue=valueConverter(O[key],prefix,argument);result[typedKey]= +typedValue}return result}const keys=Reflect.ownKeys(O);for(const key of keys){const desc=Reflect.getOwnPropertyDescriptor(O,key);if(desc?.enumerable){const typedKey=keyConverter(key,prefix,argument);const typedValue=valueConverter( +O[key],prefix,argument);result[typedKey]=typedValue}}return result}};webidl.interfaceConverter=function(i){return(V,prefix,argument,opts)=>{if(opts?.strict!==false&&!(V instanceof i)){throw webidl.errors. +exception({header:prefix,message:`Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${i.name}.`})}return V}};webidl.dictionaryConverter=function(converters){return(dictionary,prefix,argument)=>{ +const type=webidl.util.Type(dictionary);const dict={};if(type==="Null"||type==="Undefined"){return dict}else if(type!=="Object"){throw webidl.errors.exception({header:prefix,message:`Expected ${dictionary}\ + to be one of: Null, Undefined, Object.`})}for(const options of converters){const{key,defaultValue,required:required2,converter}=options;if(required2===true){if(!Object.hasOwn(dictionary,key)){throw webidl. +errors.exception({header:prefix,message:`Missing required key "${key}".`})}}let value=dictionary[key];const hasDefault=Object.hasOwn(options,"defaultValue");if(hasDefault&&value!==null){value??=defaultValue()} +if(required2||hasDefault||value!==void 0){value=converter(value,prefix,`${argument}.${key}`);if(options.allowedValues&&!options.allowedValues.includes(value)){throw webidl.errors.exception({header:prefix, +message:`${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.`})}dict[key]=value}}return dict}};webidl.nullableConverter=function(converter){return(V,prefix,argument)=>{ +if(V===null){return V}return converter(V,prefix,argument)}};webidl.converters.DOMString=function(V,prefix,argument,opts){if(V===null&&opts?.legacyNullToEmptyString){return""}if(typeof V==="symbol"){throw webidl. +errors.exception({header:prefix,message:`${argument} is a symbol, which cannot be converted to a DOMString.`})}return String(V)};webidl.converters.ByteString=function(V,prefix,argument){const x=webidl. +converters.DOMString(V,prefix,argument);for(let index=0;index255){throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${index}\ + has a value of ${x.charCodeAt(index)} which is greater than 255.`)}}return x};webidl.converters.USVString=toUSVString;webidl.converters.boolean=function(V){const x=Boolean(V);return x};webidl.converters. +any=function(V){return V};webidl.converters["long long"]=function(V,prefix,argument){const x=webidl.util.ConvertToInt(V,64,"signed",void 0,prefix,argument);return x};webidl.converters["unsigned long l\ +ong"]=function(V,prefix,argument){const x=webidl.util.ConvertToInt(V,64,"unsigned",void 0,prefix,argument);return x};webidl.converters["unsigned long"]=function(V,prefix,argument){const x=webidl.util. +ConvertToInt(V,32,"unsigned",void 0,prefix,argument);return x};webidl.converters["unsigned short"]=function(V,prefix,argument,opts){const x=webidl.util.ConvertToInt(V,16,"unsigned",opts,prefix,argument); +return x};webidl.converters.ArrayBuffer=function(V,prefix,argument,opts){if(webidl.util.Type(V)!=="Object"||!types.isAnyArrayBuffer(V)){throw webidl.errors.conversionFailed({prefix,argument:`${argument}\ + ("${webidl.util.Stringify(V)}")`,types:["ArrayBuffer"]})}if(opts?.allowShared===false&&types.isSharedArrayBuffer(V)){throw webidl.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is \ +not allowed."})}if(V.resizable||V.growable){throw webidl.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."})}return V};webidl.converters.TypedArray=function(V,T,prefix,name,opts){ +if(webidl.util.Type(V)!=="Object"||!types.isTypedArray(V)||V.constructor.name!==T.name){throw webidl.errors.conversionFailed({prefix,argument:`${name} ("${webidl.util.Stringify(V)}")`,types:[T.name]})} +if(opts?.allowShared===false&&types.isSharedArrayBuffer(V.buffer)){throw webidl.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}if(V.buffer.resizable||V.buffer.growable){ +throw webidl.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."})}return V};webidl.converters.DataView=function(V,prefix,name,opts){if(webidl.util.Type(V)!=="Object"||!types. +isDataView(V)){throw webidl.errors.exception({header:prefix,message:`${name} is not a DataView.`})}if(opts?.allowShared===false&&types.isSharedArrayBuffer(V.buffer)){throw webidl.errors.exception({header:"\ +ArrayBuffer",message:"SharedArrayBuffer is not allowed."})}if(V.buffer.resizable||V.buffer.growable){throw webidl.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."})}return V}; +webidl.converters.BufferSource=function(V,prefix,name,opts){if(types.isAnyArrayBuffer(V)){return webidl.converters.ArrayBuffer(V,prefix,name,{...opts,allowShared:false})}if(types.isTypedArray(V)){return webidl. +converters.TypedArray(V,V.constructor,prefix,name,{...opts,allowShared:false})}if(types.isDataView(V)){return webidl.converters.DataView(V,prefix,name,{...opts,allowShared:false})}throw webidl.errors. +conversionFailed({prefix,argument:`${name} ("${webidl.util.Stringify(V)}")`,types:["BufferSource"]})};webidl.converters["sequence"]=webidl.sequenceConverter(webidl.converters.ByteString);webidl. +converters["sequence>"]=webidl.sequenceConverter(webidl.converters["sequence"]);webidl.converters["record"]=webidl.recordConverter(webidl.converters. +ByteString,webidl.converters.ByteString);module.exports={webidl}}});var require_util2=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/util.js"(exports,module){"use strict";var{Transform}=__require("node:stream");var zlib=__require("node:zlib"); +var{redirectStatusSet,referrerPolicySet:referrerPolicyTokens,badPortsSet}=require_constants3();var{getGlobalOrigin}=require_global();var{collectASequenceOfCodePoints,collectAnHTTPQuotedString,removeChars, +parseMIMEType}=require_data_url();var{performance:performance2}=__require("node:perf_hooks");var{isBlobLike,ReadableStreamFrom,isValidHTTPToken,normalizedMethodRecordsBase}=require_util();var assert=__require("node:assert"); +var{isUint8Array}=__require("node:util/types");var{webidl}=require_webidl();var supportedHashes=[];var crypto2;try{crypto2=__require("node:crypto");const possibleRelevantHashes=["sha256","sha384","sha\ +512"];supportedHashes=crypto2.getHashes().filter(hash=>possibleRelevantHashes.includes(hash))}catch{}function responseURL(response){const urlList=response.urlList;const length=urlList.length;return length=== +0?null:urlList[length-1].toString()}function responseLocationURL(response,requestFragment){if(!redirectStatusSet.has(response.status)){return null}let location=response.headersList.get("location",true); +if(location!==null&&isValidHeaderValue(location)){if(!isValidEncodedURL(location)){location=normalizeBinaryStringToUtf8(location)}location=new URL(location,responseURL(response))}if(location&&!location. +hash){location.hash=requestFragment}return location}function isValidEncodedURL(url){for(let i=0;i126||code<32){return false}}return true}function normalizeBinaryStringToUtf8(value){ +return Buffer.from(value,"binary").toString("utf8")}function requestCurrentURL(request){return request.urlList[request.urlList.length-1]}function requestBadPort(request){const url=requestCurrentURL(request); +if(urlIsHttpHttpsScheme(url)&&badPortsSet.has(url.port)){return"blocked"}return"allowed"}function isErrorLike(object2){return object2 instanceof Error||(object2?.constructor?.name==="Error"||object2?. +constructor?.name==="DOMException")}function isValidReasonPhrase(statusText){for(let i=0;i=32&&c<=126||c>=128&&c<=255)){return false}} +return true}var isValidHeaderName=isValidHTTPToken;function isValidHeaderValue(potentialValue){return(potentialValue[0]===" "||potentialValue[0]===" "||potentialValue[potentialValue.length-1]===" "||potentialValue[potentialValue. +length-1]===" "||potentialValue.includes("\n")||potentialValue.includes("\r")||potentialValue.includes("\0"))===false}function setRequestReferrerPolicyOnRedirect(request,actualResponse){const{headersList}=actualResponse; +const policyHeader=(headersList.get("referrer-policy",true)??"").split(",");let policy="";if(policyHeader.length>0){for(let i=policyHeader.length;i!==0;i--){const token=policyHeader[i-1].trim();if(referrerPolicyTokens. +has(token)){policy=token;break}}}if(policy!==""){request.referrerPolicy=policy}}function crossOriginResourcePolicyCheck(){return"allowed"}function corsCheck(){return"success"}function TAOCheck(){return"\ +success"}function appendFetchMetadata(httpRequest2){let header=null;header=httpRequest2.mode;httpRequest2.headersList.set("sec-fetch-mode",header,true)}function appendRequestOriginHeader(request){let serializedOrigin=request. +origin;if(serializedOrigin==="client"||serializedOrigin===void 0){return}if(request.responseTainting==="cors"||request.mode==="websocket"){request.headersList.append("origin",serializedOrigin,true)}else if(request. +method!=="GET"&&request.method!=="HEAD"){switch(request.referrerPolicy){case"no-referrer":serializedOrigin=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross\ +-origin":if(request.origin&&urlHasHttpsScheme(request.origin)&&!urlHasHttpsScheme(requestCurrentURL(request))){serializedOrigin=null}break;case"same-origin":if(!sameOrigin(request,requestCurrentURL(request))){ +serializedOrigin=null}break;default:}request.headersList.append("origin",serializedOrigin,true)}}function coarsenTime(timestamp,crossOriginIsolatedCapability){return timestamp}function clampAndCoarsenConnectionTimingInfo(connectionTimingInfo,defaultStartTime,crossOriginIsolatedCapability){ +if(!connectionTimingInfo?.startTime||connectionTimingInfo.startTime4096){referrerURL=referrerOrigin}const areSameOrigin=sameOrigin(request,referrerURL);const isNonPotentiallyTrustWorthy=isURLPotentiallyTrustworthy( +referrerURL)&&!isURLPotentiallyTrustworthy(request.url);switch(policy){case"origin":return referrerOrigin!=null?referrerOrigin:stripURLForReferrer(referrerSource,true);case"unsafe-url":return referrerURL;case"\ +same-origin":return areSameOrigin?referrerOrigin:"no-referrer";case"origin-when-cross-origin":return areSameOrigin?referrerURL:referrerOrigin;case"strict-origin-when-cross-origin":{const currentURL=requestCurrentURL( +request);if(sameOrigin(referrerURL,currentURL)){return referrerURL}if(isURLPotentiallyTrustworthy(referrerURL)&&!isURLPotentiallyTrustworthy(currentURL)){return"no-referrer"}return referrerOrigin}case"\ +strict-origin":case"no-referrer-when-downgrade":default:return isNonPotentiallyTrustWorthy?"no-referrer":referrerOrigin}}function stripURLForReferrer(url,originOnly){assert(url instanceof URL);url=new URL( +url);if(url.protocol==="file:"||url.protocol==="about:"||url.protocol==="blank:"){return"no-referrer"}url.username="";url.password="";url.hash="";if(originOnly){url.pathname="";url.search=""}return url} +function isURLPotentiallyTrustworthy(url){if(!(url instanceof URL)){return false}if(url.href==="about:blank"||url.href==="about:srcdoc"){return true}if(url.protocol==="data:")return true;if(url.protocol=== +"file:")return true;return isOriginPotentiallyTrustworthy(url.origin);function isOriginPotentiallyTrustworthy(origin){if(origin==null||origin==="null")return false;const originAsURL=new URL(origin);if(originAsURL. +protocol==="https:"||originAsURL.protocol==="wss:"){return true}if(/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname)||(originAsURL.hostname==="localhost"||originAsURL.hostname. +includes("localhost."))||originAsURL.hostname.endsWith(".localhost")){return true}return false}}function bytesMatch(bytes,metadataList){if(crypto2===void 0){return true}const parsedMetadata=parseMetadata( +metadataList);if(parsedMetadata==="no metadata"){return true}if(parsedMetadata.length===0){return true}const strongest=getStrongestMetadata(parsedMetadata);const metadata=filterMetadataListByAlgorithm( +parsedMetadata,strongest);for(const item of metadata){const algorithm=item.algo;const expectedValue=item.hash;let actualValue=crypto2.createHash(algorithm).update(bytes).digest("base64");if(actualValue[actualValue. +length-1]==="="){if(actualValue[actualValue.length-2]==="="){actualValue=actualValue.slice(0,-2)}else{actualValue=actualValue.slice(0,-1)}}if(compareBase64Mixed(actualValue,expectedValue)){return true}} +return false}var parseHashWithOptions=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function parseMetadata(metadata){const result=[];let empty=true; +for(const token of metadata.split(" ")){empty=false;const parsedToken=parseHashWithOptions.exec(token);if(parsedToken===null||parsedToken.groups===void 0||parsedToken.groups.algo===void 0){continue}const algorithm=parsedToken. +groups.algo.toLowerCase();if(supportedHashes.includes(algorithm)){result.push(parsedToken.groups)}}if(empty===true){return"no metadata"}return result}function getStrongestMetadata(metadataList){let algorithm=metadataList[0]. +algo;if(algorithm[3]==="5"){return algorithm}for(let i=1;i{res=resolve;rej=reject});return{ +promise,resolve:res,reject:rej}}function isAborted(fetchParams){return fetchParams.controller.state==="aborted"}function isCancelled(fetchParams){return fetchParams.controller.state==="aborted"||fetchParams. +controller.state==="terminated"}function normalizeMethod(method){return normalizedMethodRecordsBase[method.toLowerCase()]??method}function serializeJavascriptValueToJSONString(value){const result=JSON. +stringify(value);if(result===void 0){throw new TypeError("Value is not JSON serializable")}assert(typeof result==="string");return result}var esIteratorPrototype=Object.getPrototypeOf(Object.getPrototypeOf( +[][Symbol.iterator]()));function createIterator(name,kInternalIterator,keyIndex=0,valueIndex=1){class FastIterableIterator{#target;#kind;#index;constructor(target,kind){this.#target=target;this.#kind= +kind;this.#index=0}next(){if(typeof this!=="object"||this===null||!(#target in this)){throw new TypeError(`'next' called on an object that does not implement interface ${name} Iterator.`)}const index=this.#index; +const values=this.#target[kInternalIterator];const len=values.length;if(index>=len){return{value:void 0,done:true}}const{[keyIndex]:key,[valueIndex]:value}=values[index];this.#index=index+1;let result; +switch(this.#kind){case"key":result=key;break;case"value":result=value;break;case"key+value":result=[key,value];break}return{value:result,done:false}}}delete FastIterableIterator.prototype.constructor; +Object.setPrototypeOf(FastIterableIterator.prototype,esIteratorPrototype);Object.defineProperties(FastIterableIterator.prototype,{[Symbol.toStringTag]:{writable:false,enumerable:false,configurable:true, +value:`${name} Iterator`},next:{writable:true,enumerable:true,configurable:true}});return function(target,kind){return new FastIterableIterator(target,kind)}}function iteratorMixin(name,object2,kInternalIterator,keyIndex=0,valueIndex=1){ +const makeIterator=createIterator(name,kInternalIterator,keyIndex,valueIndex);const properties={keys:{writable:true,enumerable:true,configurable:true,value:function keys(){webidl.brandCheck(this,object2); +return makeIterator(this,"key")}},values:{writable:true,enumerable:true,configurable:true,value:function values(){webidl.brandCheck(this,object2);return makeIterator(this,"value")}},entries:{writable:true, +enumerable:true,configurable:true,value:function entries(){webidl.brandCheck(this,object2);return makeIterator(this,"key+value")}},forEach:{writable:true,enumerable:true,configurable:true,value:function forEach(callbackfn,thisArg=globalThis){ +webidl.brandCheck(this,object2);webidl.argumentLengthCheck(arguments,1,`${name}.forEach`);if(typeof callbackfn!=="function"){throw new TypeError(`Failed to execute 'forEach' on '${name}': parameter 1 \ +is not of type 'Function'.`)}for(const{0:key,1:value}of makeIterator(this,"key+value")){callbackfn.call(thisArg,value,key,this)}}}};return Object.defineProperties(object2.prototype,{...properties,[Symbol. +iterator]:{writable:true,enumerable:false,configurable:true,value:properties.entries.value}})}async function fullyReadBody(body,processBody,processBodyError){const successSteps=processBody;const errorSteps=processBodyError; +let reader;try{reader=body.stream.getReader()}catch(e){errorSteps(e);return}try{successSteps(await readAllBytes(reader))}catch(e){errorSteps(e)}}function isReadableStreamLike(stream){return stream instanceof +ReadableStream||stream[Symbol.toStringTag]==="ReadableStream"&&typeof stream.tee==="function"}function readableStreamClose(controller){try{controller.close();controller.byobRequest?.respond(0)}catch(err){ +if(!err.message.includes("Controller is already closed")&&!err.message.includes("ReadableStream is already closed")){throw err}}}var invalidIsomorphicEncodeValueRegex=/[^\x00-\xFF]/;function isomorphicEncode(input){ +assert(!invalidIsomorphicEncodeValueRegex.test(input));return input}async function readAllBytes(reader){const bytes=[];let byteLength=0;while(true){const{done,value:chunk}=await reader.read();if(done){ +return Buffer.concat(bytes,byteLength)}if(!isUint8Array(chunk)){throw new TypeError("Received non-Uint8Array chunk")}bytes.push(chunk);byteLength+=chunk.length}}function urlIsLocal(url){assert("protoc\ +ol"in url);const protocol=url.protocol;return protocol==="about:"||protocol==="blob:"||protocol==="data:"}function urlHasHttpsScheme(url){return typeof url==="string"&&url[5]===":"&&url[0]==="h"&&url[1]=== +"t"&&url[2]==="t"&&url[3]==="p"&&url[4]==="s"||url.protocol==="https:"}function urlIsHttpHttpsScheme(url){assert("protocol"in url);const protocol=url.protocol;return protocol==="http:"||protocol==="ht\ +tps:"}function simpleRangeHeaderValue(value,allowWhitespace){const data=value;if(!data.startsWith("bytes")){return"failure"}const position={position:5};if(allowWhitespace){collectASequenceOfCodePoints( +char=>char===" "||char===" ",data,position)}if(data.charCodeAt(position.position)!==61){return"failure"}position.position++;if(allowWhitespace){collectASequenceOfCodePoints(char=>char===" "||char===" ", +data,position)}const rangeStart=collectASequenceOfCodePoints(char=>{const code=char.charCodeAt(0);return code>=48&&code<=57},data,position);const rangeStartValue=rangeStart.length?Number(rangeStart):null; +if(allowWhitespace){collectASequenceOfCodePoints(char=>char===" "||char===" ",data,position)}if(data.charCodeAt(position.position)!==45){return"failure"}position.position++;if(allowWhitespace){collectASequenceOfCodePoints( +char=>char===" "||char===" ",data,position)}const rangeEnd=collectASequenceOfCodePoints(char=>{const code=char.charCodeAt(0);return code>=48&&code<=57},data,position);const rangeEndValue=rangeEnd.length? +Number(rangeEnd):null;if(position.positionrangeEndValue){return"failure"}return{rangeStartValue, +rangeEndValue}}function buildContentRange(rangeStart,rangeEnd,fullLength){let contentRange="bytes ";contentRange+=isomorphicEncode(`${rangeStart}`);contentRange+="-";contentRange+=isomorphicEncode(`${rangeEnd}`); +contentRange+="/";contentRange+=isomorphicEncode(`${fullLength}`);return contentRange}var InflateStream=class extends Transform{#zlibOptions;constructor(zlibOptions){super();this.#zlibOptions=zlibOptions}_transform(chunk,encoding,callback){ +if(!this._inflateStream){if(chunk.length===0){callback();return}this._inflateStream=(chunk[0]&15)===8?zlib.createInflate(this.#zlibOptions):zlib.createInflateRaw(this.#zlibOptions);this._inflateStream. +on("data",this.push.bind(this));this._inflateStream.on("end",()=>this.push(null));this._inflateStream.on("error",err=>this.destroy(err))}this._inflateStream.write(chunk,encoding,callback)}_final(callback){ +if(this._inflateStream){this._inflateStream.end();this._inflateStream=null}callback()}};function createInflate(zlibOptions){return new InflateStream(zlibOptions)}function extractMimeType(headers){let charset=null; +let essence=null;let mimeType=null;const values=getDecodeSplit("content-type",headers);if(values===null){return"failure"}for(const value of values){const temporaryMimeType=parseMIMEType(value);if(temporaryMimeType=== +"failure"||temporaryMimeType.essence==="*/*"){continue}mimeType=temporaryMimeType;if(mimeType.essence!==essence){charset=null;if(mimeType.parameters.has("charset")){charset=mimeType.parameters.get("ch\ +arset")}essence=mimeType.essence}else if(!mimeType.parameters.has("charset")&&charset!==null){mimeType.parameters.set("charset",charset)}}if(mimeType==null){return"failure"}return mimeType}function gettingDecodingSplitting(value){ +const input=value;const position={position:0};const values=[];let temporaryValue="";while(position.positionchar!=='"'&&char!==",",input, +position);if(position.positionchar===9||char===32);values.push(temporaryValue);temporaryValue=""}return values} +function getDecodeSplit(name,list){const value=list.get(name,true);if(value===null){return null}return gettingDecodingSplitting(value)}var textDecoder=new TextDecoder;function utf8DecodeBytes(buffer){ +if(buffer.length===0){return""}if(buffer[0]===239&&buffer[1]===187&&buffer[2]===191){buffer=buffer.subarray(3)}const output=textDecoder.decode(buffer);return output}var EnvironmentSettingsObjectBase=class{get baseUrl(){ +return getGlobalOrigin()}get origin(){return this.baseUrl?.origin}policyContainer=makePolicyContainer()};var EnvironmentSettingsObject=class{settingsObject=new EnvironmentSettingsObjectBase};var environmentSettingsObject=new EnvironmentSettingsObject; +module.exports={isAborted,isCancelled,isValidEncodedURL,createDeferredPromise,ReadableStreamFrom,tryUpgradeRequestToAPotentiallyTrustworthyURL,clampAndCoarsenConnectionTimingInfo,coarsenedSharedCurrentTime, +determineRequestsReferrer,makePolicyContainer,clonePolicyContainer,appendFetchMetadata,appendRequestOriginHeader,TAOCheck,corsCheck,crossOriginResourcePolicyCheck,createOpaqueTimingInfo,setRequestReferrerPolicyOnRedirect, +isValidHTTPToken,requestBadPort,requestCurrentURL,responseURL,responseLocationURL,isBlobLike,isURLPotentiallyTrustworthy,isValidReasonPhrase,sameOrigin,normalizeMethod,serializeJavascriptValueToJSONString, +iteratorMixin,createIterator,isValidHeaderName,isValidHeaderValue,isErrorLike,fullyReadBody,bytesMatch,isReadableStreamLike,readableStreamClose,isomorphicEncode,urlIsLocal,urlHasHttpsScheme,urlIsHttpHttpsScheme, +readAllBytes,simpleRangeHeaderValue,buildContentRange,parseMetadata,createInflate,extractMimeType,getDecodeSplit,utf8DecodeBytes,environmentSettingsObject}}});var require_symbols2=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/symbols.js"(exports,module){"use strict";module.exports={kUrl:Symbol("url"),kHeaders:Symbol("header\ +s"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}}});var require_file=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/file.js"(exports,module){"use strict";var{Blob:Blob2,File:File2}=__require("node:buffer");var{kState}=require_symbols2(); +var{webidl}=require_webidl();var FileLike=class _FileLike{constructor(blobLike,fileName,options={}){const n=fileName;const t=options.type;const d=options.lastModified??Date.now();this[kState]={blobLike, +name:n,type:t,lastModified:d}}stream(...args){webidl.brandCheck(this,_FileLike);return this[kState].blobLike.stream(...args)}arrayBuffer(...args){webidl.brandCheck(this,_FileLike);return this[kState]. +blobLike.arrayBuffer(...args)}slice(...args){webidl.brandCheck(this,_FileLike);return this[kState].blobLike.slice(...args)}text(...args){webidl.brandCheck(this,_FileLike);return this[kState].blobLike. +text(...args)}get size(){webidl.brandCheck(this,_FileLike);return this[kState].blobLike.size}get type(){webidl.brandCheck(this,_FileLike);return this[kState].blobLike.type}get name(){webidl.brandCheck( +this,_FileLike);return this[kState].name}get lastModified(){webidl.brandCheck(this,_FileLike);return this[kState].lastModified}get[Symbol.toStringTag](){return"File"}};webidl.converters.Blob=webidl.interfaceConverter( +Blob2);function isFileLike(object2){return object2 instanceof File2||object2&&(typeof object2.stream==="function"||typeof object2.arrayBuffer==="function")&&object2[Symbol.toStringTag]==="File"}module. +exports={FileLike,isFileLike}}});var require_formdata=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/formdata.js"(exports,module){"use strict";var{isBlobLike,iteratorMixin}=require_util2();var{kState}=require_symbols2(); +var{kEnumerableProperty}=require_util();var{FileLike,isFileLike}=require_file();var{webidl}=require_webidl();var{File:NativeFile}=__require("node:buffer");var nodeUtil=__require("node:util");var File2=globalThis. +File??NativeFile;var FormData=class _FormData{constructor(form){webidl.util.markAsUncloneable(this);if(form!==void 0){throw webidl.errors.conversionFailed({prefix:"FormData constructor",argument:"Argu\ +ment 1",types:["undefined"]})}this[kState]=[]}append(name,value,filename=void 0){webidl.brandCheck(this,_FormData);const prefix="FormData.append";webidl.argumentLengthCheck(arguments,2,prefix);if(arguments. +length===3&&!isBlobLike(value)){throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'")}name=webidl.converters.USVString(name,prefix,"name");value=isBlobLike( +value)?webidl.converters.Blob(value,prefix,"value",{strict:false}):webidl.converters.USVString(value,prefix,"value");filename=arguments.length===3?webidl.converters.USVString(filename,prefix,"filename"): +void 0;const entry=makeEntry(name,value,filename);this[kState].push(entry)}delete(name){webidl.brandCheck(this,_FormData);const prefix="FormData.delete";webidl.argumentLengthCheck(arguments,1,prefix); +name=webidl.converters.USVString(name,prefix,"name");this[kState]=this[kState].filter(entry=>entry.name!==name)}get(name){webidl.brandCheck(this,_FormData);const prefix="FormData.get";webidl.argumentLengthCheck( +arguments,1,prefix);name=webidl.converters.USVString(name,prefix,"name");const idx=this[kState].findIndex(entry=>entry.name===name);if(idx===-1){return null}return this[kState][idx].value}getAll(name){ +webidl.brandCheck(this,_FormData);const prefix="FormData.getAll";webidl.argumentLengthCheck(arguments,1,prefix);name=webidl.converters.USVString(name,prefix,"name");return this[kState].filter(entry=>entry. +name===name).map(entry=>entry.value)}has(name){webidl.brandCheck(this,_FormData);const prefix="FormData.has";webidl.argumentLengthCheck(arguments,1,prefix);name=webidl.converters.USVString(name,prefix, +"name");return this[kState].findIndex(entry=>entry.name===name)!==-1}set(name,value,filename=void 0){webidl.brandCheck(this,_FormData);const prefix="FormData.set";webidl.argumentLengthCheck(arguments, +2,prefix);if(arguments.length===3&&!isBlobLike(value)){throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'")}name=webidl.converters.USVString(name,prefix,"nam\ +e");value=isBlobLike(value)?webidl.converters.Blob(value,prefix,"name",{strict:false}):webidl.converters.USVString(value,prefix,"name");filename=arguments.length===3?webidl.converters.USVString(filename, +prefix,"name"):void 0;const entry=makeEntry(name,value,filename);const idx=this[kState].findIndex(entry2=>entry2.name===name);if(idx!==-1){this[kState]=[...this[kState].slice(0,idx),entry,...this[kState]. +slice(idx+1).filter(entry2=>entry2.name!==name)]}else{this[kState].push(entry)}}[nodeUtil.inspect.custom](depth,options){const state=this[kState].reduce((a,b)=>{if(a[b.name]){if(Array.isArray(a[b.name])){ +a[b.name].push(b.value)}else{a[b.name]=[a[b.name],b.value]}}else{a[b.name]=b.value}return a},{__proto__:null});options.depth??=depth;options.colors??=true;const output=nodeUtil.formatWithOptions(options, +state);return`FormData ${output.slice(output.indexOf("]")+2)}`}};iteratorMixin("FormData",FormData,kState,"name","value");Object.defineProperties(FormData.prototype,{append:kEnumerableProperty,delete:kEnumerableProperty, +get:kEnumerableProperty,getAll:kEnumerableProperty,has:kEnumerableProperty,set:kEnumerableProperty,[Symbol.toStringTag]:{value:"FormData",configurable:true}});function makeEntry(name,value,filename){if(typeof value=== +"string"){}else{if(!isFileLike(value)){value=value instanceof Blob?new File2([value],"blob",{type:value.type}):new FileLike(value,"blob",{type:value.type})}if(filename!==void 0){const options={type:value. +type,lastModified:value.lastModified};value=value instanceof NativeFile?new File2([value],filename,options):new FileLike(value,filename,options)}}return{name,value}}module.exports={FormData,makeEntry}}});var require_formdata_parser=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports,module){"use strict";var{isUSVString,bufferToLowerCasedHeaderName}=require_util(); +var{utf8DecodeBytes}=require_util2();var{HTTP_TOKEN_CODEPOINTS,isomorphicDecode}=require_data_url();var{isFileLike}=require_file();var{makeEntry}=require_formdata();var assert=__require("node:assert"); +var{File:NodeFile}=__require("node:buffer");var File2=globalThis.File??NodeFile;var formDataNameBuffer=Buffer.from('form-data; name="');var filenameBuffer=Buffer.from("; filename");var dd=Buffer.from( +"--");var ddcrlf=Buffer.from("--\r\n");function isAsciiString(chars){for(let i=0;i70){return false}for(let i=0;i=48&&cp<=57||cp>=65&&cp<=90||cp>=97&&cp<=122||cp===39||cp===45||cp===95)){return false}}return true} +function multipartFormDataParser(input,mimeType){assert(mimeType!=="failure"&&mimeType.essence==="multipart/form-data");const boundaryString=mimeType.parameters.get("boundary");if(boundaryString===void 0){ +return"failure"}const boundary=Buffer.from(`--${boundaryString}`,"utf8");const entryList=[];const position={position:0};while(input[position.position]===13&&input[position.position+1]===10){position.position+= +2}let trailing=input.length;while(input[trailing-1]===10&&input[trailing-2]===13){trailing-=2}if(trailing!==input.length){input=input.subarray(0,trailing)}while(true){if(input.subarray(position.position, +position.position+boundary.length).equals(boundary)){position.position+=boundary.length}else{return"failure"}if(position.position===input.length-2&&bufferStartsWith(input,dd,position)||position.position=== +input.length-4&&bufferStartsWith(input,ddcrlf,position)){return entryList}if(input[position.position]!==13||input[position.position+1]!==10){return"failure"}position.position+=2;const result=parseMultipartFormDataHeaders( +input,position);if(result==="failure"){return"failure"}let{name,filename,contentType,encoding}=result;position.position+=2;let body;{const boundaryIndex=input.indexOf(boundary.subarray(2),position.position); +if(boundaryIndex===-1){return"failure"}body=input.subarray(position.position,boundaryIndex-4);position.position+=body.length;if(encoding==="base64"){body=Buffer.from(body.toString(),"base64")}}if(input[position. +position]!==13||input[position.position+1]!==10){return"failure"}else{position.position+=2}let value;if(filename!==null){contentType??="text/plain";if(!isAsciiString(contentType)){contentType=""}value= +new File2([body],filename,{type:contentType})}else{value=utf8DecodeBytes(Buffer.from(body))}assert(isUSVString(name));assert(typeof value==="string"&&isUSVString(value)||isFileLike(value));entryList.push( +makeEntry(name,value,filename))}}function parseMultipartFormDataHeaders(input,position){let name=null;let filename=null;let contentType=null;let encoding=null;while(true){if(input[position.position]=== +13&&input[position.position+1]===10){if(name===null){return"failure"}return{name,filename,contentType,encoding}}let headerName=collectASequenceOfBytes(char=>char!==10&&char!==13&&char!==58,input,position); +headerName=removeChars(headerName,true,true,char=>char===9||char===32);if(!HTTP_TOKEN_CODEPOINTS.test(headerName.toString())){return"failure"}if(input[position.position]!==58){return"failure"}position. +position++;collectASequenceOfBytes(char=>char===32||char===9,input,position);switch(bufferToLowerCasedHeaderName(headerName)){case"content-disposition":{name=filename=null;if(!bufferStartsWith(input,formDataNameBuffer, +position)){return"failure"}position.position+=17;name=parseMultipartFormDataName(input,position);if(name===null){return"failure"}if(bufferStartsWith(input,filenameBuffer,position)){let check=position. +position+filenameBuffer.length;if(input[check]===42){position.position+=1;check+=1}if(input[check]!==61||input[check+1]!==34){return"failure"}position.position+=12;filename=parseMultipartFormDataName( +input,position);if(filename===null){return"failure"}}break}case"content-type":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue=removeChars(headerValue,false, +true,char=>char===9||char===32);contentType=isomorphicDecode(headerValue);break}case"content-transfer-encoding":{let headerValue=collectASequenceOfBytes(char=>char!==10&&char!==13,input,position);headerValue= +removeChars(headerValue,false,true,char=>char===9||char===32);encoding=isomorphicDecode(headerValue);break}default:{collectASequenceOfBytes(char=>char!==10&&char!==13,input,position)}}if(input[position. +position]!==13&&input[position.position+1]!==10){return"failure"}else{position.position+=2}}}function parseMultipartFormDataName(input,position){assert(input[position.position-1]===34);let name=collectASequenceOfBytes( +char=>char!==10&&char!==13&&char!==34,input,position);if(input[position.position]!==34){return null}else{position.position++}name=new TextDecoder().decode(name).replace(/%0A/ig,"\n").replace(/%0D/ig,"\ +\r").replace(/%22/g,'"');return name}function collectASequenceOfBytes(condition,input,position){let start=position.position;while(start0&&predicate(buf[trail]))trail--}return lead===0&&trail===buf.length-1?buf:buf.subarray(lead,trail+1)}function bufferStartsWith(buffer,start,position){if(buffer.lengthcrypto2.randomInt(0,max)}catch{random=max=>Math.floor(Math.random(max))}var textEncoder=new TextEncoder; +function noop(){}var hasFinalizationRegistry=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0;var streamRegistry;if(hasFinalizationRegistry){streamRegistry=new FinalizationRegistry( +weakRef=>{const stream=weakRef.deref();if(stream&&!stream.locked&&!isDisturbed(stream)&&!isErrored(stream)){stream.cancel("Response object has been garbage collected").catch(noop)}})}function extractBody(object2,keepalive=false){ +let stream=null;if(object2 instanceof ReadableStream){stream=object2}else if(isBlobLike(object2)){stream=object2.stream()}else{stream=new ReadableStream({async pull(controller){const buffer=typeof source=== +"string"?textEncoder.encode(source):source;if(buffer.byteLength){controller.enqueue(buffer)}queueMicrotask(()=>readableStreamClose(controller))},start(){},type:"bytes"})}assert(isReadableStreamLike(stream)); +let action=null;let source=null;let length=null;let type=null;if(typeof object2==="string"){source=object2;type="text/plain;charset=UTF-8"}else if(object2 instanceof URLSearchParams){source=object2.toString(); +type="application/x-www-form-urlencoded;charset=UTF-8"}else if(isArrayBuffer(object2)){source=new Uint8Array(object2.slice())}else if(ArrayBuffer.isView(object2)){source=new Uint8Array(object2.buffer. +slice(object2.byteOffset,object2.byteOffset+object2.byteLength))}else if(util.isFormDataLike(object2)){const boundary=`----formdata-undici-0${`${random(1e11)}`.padStart(11,"0")}`;const prefix=`--${boundary}\ +\r +Content-Disposition: form-data`;const escape=str=>str.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22");const normalizeLinefeeds=value=>value.replace(/\r?\n|\r/g,"\r\n");const blobParts=[]; +const rn=new Uint8Array([13,10]);length=0;let hasUnknownSizeValue=false;for(const[name,value]of object2){if(typeof value==="string"){const chunk2=textEncoder.encode(prefix+`; name="${escape(normalizeLinefeeds( +name))}"\r +\r +${normalizeLinefeeds(value)}\r +`);blobParts.push(chunk2);length+=chunk2.byteLength}else{const chunk2=textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"`+(value.name?`; filename="${escape(value.name)}"`:"")+`\r\ -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/graphqlDocument.js -var graphqlDocument = (text) => ({ text }); +Content-Type: ${value.type||"application/octet-stream"}\r +\r +`);blobParts.push(chunk2,value,rn);if(typeof value.size==="number"){length+=chunk2.byteLength+value.size+rn.byteLength}else{hasUnknownSizeValue=true}}}const chunk=textEncoder.encode(`--${boundary}--\r +`);blobParts.push(chunk);length+=chunk.byteLength;if(hasUnknownSizeValue){length=null}source=object2;action=async function*(){for(const part of blobParts){if(part.stream){yield*part.stream()}else{yield part}}}; +type=`multipart/form-data; boundary=${boundary}`}else if(isBlobLike(object2)){source=object2;length=object2.size;if(object2.type){type=object2.type}}else if(typeof object2[Symbol.asyncIterator]==="fun\ +ction"){if(keepalive){throw new TypeError("keepalive")}if(util.isDisturbed(object2)||object2.locked){throw new TypeError("Response body object should not be disturbed or locked")}stream=object2 instanceof +ReadableStream?object2:ReadableStreamFrom(object2)}if(typeof source==="string"||util.isBuffer(source)){length=Buffer.byteLength(source)}if(action!=null){let iterator;stream=new ReadableStream({async start(){ +iterator=action(object2)[Symbol.asyncIterator]()},async pull(controller){const{value,done}=await iterator.next();if(done){queueMicrotask(()=>{controller.close();controller.byobRequest?.respond(0)})}else{ +if(!isErrored(stream)){const buffer=new Uint8Array(value);if(buffer.byteLength){controller.enqueue(buffer)}}}return controller.desiredSize>0},async cancel(reason){await iterator.return()},type:"bytes"})} +const body={stream,source,length};return[body,type]}function safelyExtractBody(object2,keepalive=false){if(object2 instanceof ReadableStream){assert(!util.isDisturbed(object2),"The body has already be\ +en consumed.");assert(!object2.locked,"The stream is locked.")}return extractBody(object2,keepalive)}function cloneBody(instance,body){const[out1,out2]=body.stream.tee();body.stream=out1;return{stream:out2, +length:body.length,source:body.source}}function throwIfAborted(state){if(state.aborted){throw new DOMException("The operation was aborted.","AbortError")}}function bodyMixinMethods(instance){const methods={ +blob(){return consumeBody(this,bytes=>{let mimeType=bodyMimeType(this);if(mimeType===null){mimeType=""}else if(mimeType){mimeType=serializeAMimeType(mimeType)}return new Blob2([bytes],{type:mimeType})}, +instance)},arrayBuffer(){return consumeBody(this,bytes=>{return new Uint8Array(bytes).buffer},instance)},text(){return consumeBody(this,utf8DecodeBytes,instance)},json(){return consumeBody(this,parseJSONFromBytes, +instance)},formData(){return consumeBody(this,value=>{const mimeType=bodyMimeType(this);if(mimeType!==null){switch(mimeType.essence){case"multipart/form-data":{const parsed=multipartFormDataParser(value, +mimeType);if(parsed==="failure"){throw new TypeError("Failed to parse body as FormData.")}const fd=new FormData;fd[kState]=parsed;return fd}case"application/x-www-form-urlencoded":{const entries=new URLSearchParams( +value.toString());const fd=new FormData;for(const[name,value2]of entries){fd.append(name,value2)}return fd}}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-ww\ +w-form-urlencoded".')},instance)},bytes(){return consumeBody(this,bytes=>{return new Uint8Array(bytes)},instance)}};return methods}function mixinBody(prototype){Object.assign(prototype.prototype,bodyMixinMethods( +prototype))}async function consumeBody(object2,convertBytesToJSValue,instance){webidl.brandCheck(object2,instance);if(bodyUnusable(object2)){throw new TypeError("Body is unusable: Body has already bee\ +n read")}throwIfAborted(object2[kState]);const promise=createDeferredPromise();const errorSteps=error2=>promise.reject(error2);const successSteps=data=>{try{promise.resolve(convertBytesToJSValue(data))}catch(e){ +errorSteps(e)}};if(object2[kState].body==null){successSteps(Buffer.allocUnsafe(0));return promise.promise}await fullyReadBody(object2[kState].body,successSteps,errorSteps);return promise.promise}function bodyUnusable(object2){ +const body=object2[kState].body;return body!=null&&(body.stream.locked||util.isDisturbed(body.stream))}function parseJSONFromBytes(bytes){return JSON.parse(utf8DecodeBytes(bytes))}function bodyMimeType(requestOrResponse){ +const headers=requestOrResponse[kState].headersList;const mimeType=extractMimeType(headers);if(mimeType==="failure"){return null}return mimeType}module.exports={extractBody,safelyExtractBody,cloneBody, +mixinBody,streamRegistry,hasFinalizationRegistry,bodyUnusable}}});var require_client_h1=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client-h1.js"(exports,module){"use strict";var assert=__require("node:assert");var util=require_util(); +var{channels}=require_diagnostics();var timers=require_timers();var{RequestContentLengthMismatchError,ResponseContentLengthMismatchError,RequestAbortedError,InvalidArgumentError,HeadersTimeoutError,HeadersOverflowError, +SocketError,InformationalError,BodyTimeoutError,HTTPParserError,ResponseExceededMaxSizeError}=require_errors();var{kUrl,kReset,kClient,kParser,kBlocking,kRunning,kPending,kSize,kWriting,kQueue,kNoRef, +kKeepAliveDefaultTimeout,kHostHeader,kPendingIdx,kRunningIdx,kError,kPipelining,kSocket,kKeepAliveTimeoutValue,kMaxHeadersSize,kKeepAliveMaxTimeout,kKeepAliveTimeoutThreshold,kHeadersTimeout,kBodyTimeout, +kStrictContentLength,kMaxRequests,kCounter,kMaxResponseSize,kOnError,kResume,kHTTPContext}=require_symbols();var constants3=require_constants2();var EMPTY_BUF=Buffer.alloc(0);var FastBuffer=Buffer[Symbol. +species];var addListener=util.addListener;var removeAllListeners=util.removeAllListeners;var kIdleSocketValidation=Symbol("kIdleSocketValidation");var kIdleSocketValidationTimeout=Symbol("kIdleSocketV\ +alidationTimeout");var kSocketUsed=Symbol("kSocketUsed");var extractBody;async function lazyllhttp(){const llhttpWasmData=process.env.JEST_WORKER_ID?require_llhttp_wasm():void 0;let mod;try{mod=await WebAssembly. +compile(require_llhttp_simd_wasm())}catch(e){mod=await WebAssembly.compile(llhttpWasmData||require_llhttp_wasm())}return await WebAssembly.instantiate(mod,{env:{wasm_on_url:(p,at,len)=>{return 0},wasm_on_status:(p,at,len)=>{ +assert(currentParser.ptr===p);const start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer,start,len))||0},wasm_on_message_begin:p=>{ +assert(currentParser.ptr===p);return currentParser.onMessageBegin()||0},wasm_on_header_field:(p,at,len)=>{assert(currentParser.ptr===p);const start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser. +onHeaderField(new FastBuffer(currentBufferRef.buffer,start,len))||0},wasm_on_header_value:(p,at,len)=>{assert(currentParser.ptr===p);const start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser. +onHeaderValue(new FastBuffer(currentBufferRef.buffer,start,len))||0},wasm_on_headers_complete:(p,statusCode,upgrade,shouldKeepAlive)=>{assert(currentParser.ptr===p);return currentParser.onHeadersComplete( +statusCode,Boolean(upgrade),Boolean(shouldKeepAlive))||0},wasm_on_body:(p,at,len)=>{assert(currentParser.ptr===p);const start=at-currentBufferPtr+currentBufferRef.byteOffset;return currentParser.onBody( +new FastBuffer(currentBufferRef.buffer,start,len))||0},wasm_on_message_complete:p=>{assert(currentParser.ptr===p);return currentParser.onMessageComplete()||0}}})}var llhttpInstance=null;var llhttpPromise=lazyllhttp(); +llhttpPromise.catch();var currentParser=null;var currentBufferRef=null;var currentBufferSize=0;var currentBufferPtr=null;var USE_NATIVE_TIMER=0;var USE_FAST_TIMER=1;var TIMEOUT_HEADERS=2|USE_FAST_TIMER; +var TIMEOUT_BODY=4|USE_FAST_TIMER;var TIMEOUT_KEEP_ALIVE=8|USE_NATIVE_TIMER;var Parser=class{constructor(client,socket,{exports:exports2}){assert(Number.isFinite(client[kMaxHeadersSize])&&client[kMaxHeadersSize]> +0);this.llhttp=exports2;this.ptr=this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE);this.client=client;this.socket=socket;this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this.statusCode= +null;this.statusText="";this.upgrade=false;this.headers=[];this.headersSize=0;this.headersMaxSize=client[kMaxHeadersSize];this.shouldKeepAlive=false;this.paused=false;this.resume=this.resume.bind(this); +this.bytesRead=0;this.keepAlive="";this.contentLength="";this.connection="";this.maxResponseSize=client[kMaxResponseSize]}setTimeout(delay,type){if(delay!==this.timeoutValue||type&USE_FAST_TIMER^this. +timeoutType&USE_FAST_TIMER){if(this.timeout){timers.clearTimeout(this.timeout);this.timeout=null}if(delay){if(type&USE_FAST_TIMER){this.timeout=timers.setFastTimeout(onParserTimeout,delay,new WeakRef( +this))}else{this.timeout=setTimeout(onParserTimeout,delay,new WeakRef(this));this.timeout.unref()}}this.timeoutValue=delay}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}this.timeoutType= +type}resume(){if(this.socket.destroyed||!this.paused){return}assert(this.ptr!=null);assert(currentParser==null);this.llhttp.llhttp_resume(this.ptr);assert(this.timeoutType===TIMEOUT_BODY);if(this.timeout){ +if(this.timeout.refresh){this.timeout.refresh()}}this.paused=false;this.execute(this.socket.read()||EMPTY_BUF);this.readMore()}readMore(){while(!this.paused&&this.ptr){const chunk=this.socket.read();if(chunk=== +null){break}this.execute(chunk)}}execute(data){assert(this.ptr!=null);assert(currentParser==null);assert(!this.paused);const{socket,llhttp}=this;if(data.length>currentBufferSize){if(currentBufferPtr){ +llhttp.free(currentBufferPtr)}currentBufferSize=Math.ceil(data.length/4096)*4096;currentBufferPtr=llhttp.malloc(currentBufferSize)}new Uint8Array(llhttp.memory.buffer,currentBufferPtr,currentBufferSize). +set(data);try{let ret;try{currentBufferRef=data;currentParser=this;ret=llhttp.llhttp_execute(this.ptr,currentBufferPtr,data.length)}catch(err){throw err}finally{currentParser=null;currentBufferRef=null} +const offset=llhttp.llhttp_get_error_pos(this.ptr)-currentBufferPtr;if(ret!==constants3.ERROR.OK){const body=data.subarray(offset);if(ret===constants3.ERROR.PAUSED_UPGRADE){this.onUpgrade(body)}else if(ret=== +constants3.ERROR.PAUSED){this.paused=true;socket.unshift(body)}else{throw this.createError(ret,body)}}}catch(err){util.destroy(socket,err)}}finish(){assert(currentParser===null);assert(this.ptr!=null); +assert(!this.paused);const{llhttp}=this;let ret;try{currentParser=this;ret=llhttp.llhttp_finish(this.ptr)}finally{currentParser=null}if(ret===constants3.ERROR.OK){return null}if(ret===constants3.ERROR. +PAUSED||ret===constants3.ERROR.PAUSED_UPGRADE){this.paused=true;return null}return this.createError(ret,EMPTY_BUF)}createError(ret,data){const{llhttp,contentLength,bytesRead}=this;if(contentLength&&bytesRead!== +parseInt(contentLength,10)){return new ResponseContentLengthMismatchError}const ptr=llhttp.llhttp_get_error_reason(this.ptr);let message="";if(ptr){const len=new Uint8Array(llhttp.memory.buffer,ptr).indexOf( +0);message="Response does not match the HTTP/1.1 protocol ("+Buffer.from(llhttp.memory.buffer,ptr,len).toString()+")"}return new HTTPParserError(message,constants3.ERROR[ret],data)}destroy(){assert(this. +ptr!=null);assert(currentParser==null);this.llhttp.llhttp_free(this.ptr);this.ptr=null;this.timeout&&timers.clearTimeout(this.timeout);this.timeout=null;this.timeoutValue=null;this.timeoutType=null;this. +paused=false}onStatus(buf){this.statusText=buf.toString()}onMessageBegin(){const{socket,client}=this;if(socket.destroyed){return-1}if(client[kRunning]===0){util.destroy(socket,new SocketError("bad res\ +ponse",util.getSocketInfo(socket)));return-1}const request=client[kQueue][client[kRunningIdx]];if(!request){return-1}request.onResponseStarted()}onHeaderField(buf){const len=this.headers.length;if((len& +1)===0){this.headers.push(buf)}else{this.headers[len-1]=Buffer.concat([this.headers[len-1],buf])}this.trackHeader(buf.length)}onHeaderValue(buf){let len=this.headers.length;if((len&1)===1){this.headers. +push(buf);len+=1}else{this.headers[len-1]=Buffer.concat([this.headers[len-1],buf])}const key=this.headers[len-2];if(key.length===10){const headerName=util.bufferToLowerCasedHeaderName(key);if(headerName=== +"keep-alive"){this.keepAlive+=buf.toString()}else if(headerName==="connection"){this.connection+=buf.toString()}}else if(key.length===14&&util.bufferToLowerCasedHeaderName(key)==="content-length"){this. +contentLength+=buf.toString()}this.trackHeader(buf.length)}trackHeader(len){this.headersSize+=len;if(this.headersSize>=this.headersMaxSize){util.destroy(this.socket,new HeadersOverflowError)}}onUpgrade(head){ +const{upgrade,client,socket,headers,statusCode}=this;assert(upgrade);assert(client[kSocket]===socket);assert(!socket.destroyed);assert(!this.paused);assert((headers.length&1)===0);const request=client[kQueue][client[kRunningIdx]]; +assert(request);assert(request.upgrade||request.method==="CONNECT");this.statusCode=null;this.statusText="";this.shouldKeepAlive=null;this.headers=[];this.headersSize=0;socket.unshift(head);socket[kParser]. +destroy();socket[kParser]=null;socket[kClient]=null;socket[kError]=null;removeAllListeners(socket);client[kSocket]=null;client[kHTTPContext]=null;client[kQueue][client[kRunningIdx]++]=null;client.emit( +"disconnect",client[kUrl],[client],new InformationalError("upgrade"));try{request.onUpgrade(statusCode,headers,socket)}catch(err){util.destroy(socket,err)}client[kResume]()}onHeadersComplete(statusCode,upgrade,shouldKeepAlive){ +const{client,socket,headers,statusText}=this;if(socket.destroyed){return-1}if(client[kRunning]===0){util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket)));return-1}const request=client[kQueue][client[kRunningIdx]]; +if(!request){return-1}assert(!this.upgrade);assert(this.statusCode<200);if(statusCode===100){util.destroy(socket,new SocketError("bad response",util.getSocketInfo(socket)));return-1}if(upgrade&&!request. +upgrade){util.destroy(socket,new SocketError("bad upgrade",util.getSocketInfo(socket)));return-1}assert(this.timeoutType===TIMEOUT_HEADERS);this.statusCode=statusCode;this.shouldKeepAlive=shouldKeepAlive|| +request.method==="HEAD"&&!socket[kReset]&&this.connection.toLowerCase()==="keep-alive";if(this.statusCode>=200){const bodyTimeout=request.bodyTimeout!=null?request.bodyTimeout:client[kBodyTimeout];this. +setTimeout(bodyTimeout,TIMEOUT_BODY)}else if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}if(request.method==="CONNECT"){assert(client[kRunning]===1);this.upgrade=true;return 2}if(upgrade){ +assert(client[kRunning]===1);this.upgrade=true;return 2}assert((this.headers.length&1)===0);this.headers=[];this.headersSize=0;if(this.shouldKeepAlive&&client[kPipelining]){const keepAliveTimeout=this. +keepAlive?util.parseKeepAliveTimeout(this.keepAlive):null;if(keepAliveTimeout!=null){const timeout=Math.min(keepAliveTimeout-client[kKeepAliveTimeoutThreshold],client[kKeepAliveMaxTimeout]);if(timeout<= +0){socket[kReset]=true}else{client[kKeepAliveTimeoutValue]=timeout}}else{client[kKeepAliveTimeoutValue]=client[kKeepAliveDefaultTimeout]}}else{socket[kReset]=true}const pause=request.onHeaders(statusCode, +headers,this.resume,statusText)===false;if(request.aborted){return-1}if(request.method==="HEAD"){return 1}if(statusCode<200){return 1}if(socket[kBlocking]){socket[kBlocking]=false;client[kResume]()}return pause? +constants3.ERROR.PAUSED:0}onBody(buf){const{client,socket,statusCode,maxResponseSize}=this;if(socket.destroyed){return-1}const request=client[kQueue][client[kRunningIdx]];assert(request);assert(this.timeoutType=== +TIMEOUT_BODY);if(this.timeout){if(this.timeout.refresh){this.timeout.refresh()}}assert(statusCode>=200);if(maxResponseSize>-1&&this.bytesRead+buf.length>maxResponseSize){util.destroy(socket,new ResponseExceededMaxSizeError); +return-1}this.bytesRead+=buf.length;if(request.onData(buf)===false){return constants3.ERROR.PAUSED}}onMessageComplete(){const{client,socket,statusCode,upgrade,headers,contentLength,bytesRead,shouldKeepAlive}=this; +if(socket.destroyed&&(!statusCode||shouldKeepAlive)){return-1}if(upgrade){return}assert(statusCode>=100);assert((this.headers.length&1)===0);const request=client[kQueue][client[kRunningIdx]];assert(request); +this.statusCode=null;this.statusText="";this.bytesRead=0;this.contentLength="";this.keepAlive="";this.connection="";this.headers=[];this.headersSize=0;if(statusCode<200){return}if(request.method!=="HE\ +AD"&&contentLength&&bytesRead!==parseInt(contentLength,10)){util.destroy(socket,new ResponseContentLengthMismatchError);return-1}request.onComplete(headers);client[kQueue][client[kRunningIdx]++]=null; +socket[kSocketUsed]=true;if(socket[kWriting]){assert(client[kRunning]===0);util.destroy(socket,new InformationalError("reset"));return constants3.ERROR.PAUSED}else if(!shouldKeepAlive){util.destroy(socket, +new InformationalError("reset"));return constants3.ERROR.PAUSED}else if(socket[kReset]&&client[kRunning]===0){util.destroy(socket,new InformationalError("reset"));return constants3.ERROR.PAUSED}else if(client[kPipelining]== +null||client[kPipelining]===1){setImmediate(()=>client[kResume]())}else{client[kResume]()}}};function onParserTimeout(parser){const{socket,timeoutType,client,paused}=parser.deref();if(timeoutType===TIMEOUT_HEADERS){ +if(!socket[kWriting]||socket.writableNeedDrain||client[kRunning]>1){assert(!paused,"cannot be paused while waiting for headers");util.destroy(socket,new HeadersTimeoutError)}}else if(timeoutType===TIMEOUT_BODY){ +if(!paused){util.destroy(socket,new BodyTimeoutError)}}else if(timeoutType===TIMEOUT_KEEP_ALIVE){assert(client[kRunning]===0&&client[kKeepAliveTimeoutValue]);util.destroy(socket,new InformationalError( +"socket idle timeout"))}}async function connectH1(client,socket){client[kSocket]=socket;if(!llhttpInstance){llhttpInstance=await llhttpPromise;llhttpPromise=null}socket[kNoRef]=false;socket[kWriting]= +false;socket[kReset]=false;socket[kBlocking]=false;socket[kIdleSocketValidation]=0;socket[kIdleSocketValidationTimeout]=null;socket[kSocketUsed]=false;socket[kParser]=new Parser(client,socket,llhttpInstance); +addListener(socket,"error",function(err){assert(err.code!=="ERR_TLS_CERT_ALTNAME_INVALID");const parser=this[kParser];if(err.code==="ECONNRESET"&&parser.statusCode&&!parser.shouldKeepAlive){const parserErr=parser. +finish();if(parserErr){this[kError]=parserErr;this[kClient][kOnError](parserErr)}return}this[kError]=err;this[kClient][kOnError](err)});addListener(socket,"readable",function(){const parser=this[kParser]; +if(parser){parser.readMore()}});addListener(socket,"end",function(){const parser=this[kParser];if(parser.statusCode&&!parser.shouldKeepAlive){const parserErr=parser.finish();if(parserErr){util.destroy( +this,parserErr)}return}util.destroy(this,new SocketError("other side closed",util.getSocketInfo(this)))});addListener(socket,"close",function(){const client2=this[kClient];const parser=this[kParser];clearIdleSocketValidation( +this);if(parser){if(!this[kError]&&parser.statusCode&&!parser.shouldKeepAlive){this[kError]=parser.finish()||this[kError]}this[kParser].destroy();this[kParser]=null}const err=this[kError]||new SocketError( +"closed",util.getSocketInfo(this));client2[kSocket]=null;client2[kHTTPContext]=null;if(client2.destroyed){assert(client2[kPending]===0);const requests=client2[kQueue].splice(client2[kRunningIdx]);for(let i=0;i< +requests.length;i++){const request=requests[i];util.errorRequest(client2,request,err)}}else if(client2[kRunning]>0&&err.code!=="UND_ERR_INFO"){const request=client2[kQueue][client2[kRunningIdx]];client2[kQueue][client2[kRunningIdx]++]= +null;util.errorRequest(client2,request,err)}client2[kPendingIdx]=client2[kRunningIdx];assert(client2[kRunning]===0);client2.emit("disconnect",client2[kUrl],[client2],err);client2[kResume]()});let closed=false; +socket.on("close",()=>{closed=true});return{version:"h1",defaultPipelining:1,write(...args){return writeH1(client,...args)},resume(){resumeH1(client)},destroy(err,callback){if(closed){queueMicrotask(callback)}else{ +socket.destroy(err).on("close",callback)}},get destroyed(){return socket.destroyed},busy(request){if(socket[kWriting]||socket[kReset]||socket[kBlocking]||socket[kIdleSocketValidation]===1){return true} +if(request){if(client[kRunning]>0&&!request.idempotent){return true}if(client[kRunning]>0&&(request.upgrade||request.method==="CONNECT")){return true}if(client[kRunning]>0&&util.bodyLength(request.body)!== +0&&(util.isStream(request.body)||util.isAsyncIterable(request.body)||util.isFormDataLike(request.body))){return true}}return false}}}function clearIdleSocketValidation(socket){if(socket[kIdleSocketValidationTimeout]){ +clearTimeout(socket[kIdleSocketValidationTimeout]);socket[kIdleSocketValidationTimeout]=null}socket[kIdleSocketValidation]=0}function scheduleIdleSocketValidation(client,socket){socket[kIdleSocketValidation]= +1;socket[kIdleSocketValidationTimeout]=setTimeout(()=>{socket[kIdleSocketValidationTimeout]=null;socket[kIdleSocketValidation]=2;if(client[kSocket]===socket&&!socket.destroyed){client[kResume]()}},0); +socket[kIdleSocketValidationTimeout].unref?.()}function resumeH1(client){const socket=client[kSocket];if(socket&&!socket.destroyed){if(client[kSize]===0){if(!socket[kNoRef]&&socket.unref){socket.unref(); +socket[kNoRef]=true}}else if(socket[kNoRef]&&socket.ref){socket.ref();socket[kNoRef]=false}if(client[kRunning]===0&&client[kPending]>0&&socket[kSocketUsed]){if(socket[kIdleSocketValidation]===0){scheduleIdleSocketValidation( +client,socket);socket[kParser].readMore();if(socket.destroyed){return}return}if(socket[kIdleSocketValidation]===1){socket[kParser].readMore();if(socket.destroyed){return}return}}if(client[kRunning]=== +0){socket[kParser].readMore();if(socket.destroyed){return}}if(client[kSize]===0){if(socket[kParser].timeoutType!==TIMEOUT_KEEP_ALIVE){socket[kParser].setTimeout(client[kKeepAliveTimeoutValue],TIMEOUT_KEEP_ALIVE)}}else if(client[kRunning]> +0&&socket[kParser].statusCode<200){if(socket[kParser].timeoutType!==TIMEOUT_HEADERS){const request=client[kQueue][client[kRunningIdx]];const headersTimeout=request.headersTimeout!=null?request.headersTimeout: +client[kHeadersTimeout];socket[kParser].setTimeout(headersTimeout,TIMEOUT_HEADERS)}}}}function shouldSendContentLength(method){return method!=="GET"&&method!=="HEAD"&&method!=="OPTIONS"&&method!=="TRA\ +CE"&&method!=="CONNECT"}function writeH1(client,request){const{method,path:path2,host,upgrade,blocking,reset}=request;let{body,headers,contentLength}=request;const expectsPayload=method==="PUT"||method=== +"POST"||method==="PATCH"||method==="QUERY"||method==="PROPFIND"||method==="PROPPATCH";if(util.isFormDataLike(body)){if(!extractBody){extractBody=require_body().extractBody}const[bodyStream,contentType]=extractBody( +body);if(request.contentType==null){headers.push("content-type",contentType)}body=bodyStream.stream;contentLength=bodyStream.length}else if(util.isBlobLike(body)&&request.contentType==null){const contentType=body. +type;if(contentType){const contentTypeValue=`${contentType}`;if(!util.isValidHeaderValue(contentTypeValue)){util.errorRequest(client,request,new InvalidArgumentError("invalid content-type header"));return false} +headers.push("content-type",contentTypeValue)}}if(body&&typeof body.read==="function"){body.read(0)}const bodyLength=util.bodyLength(body);contentLength=bodyLength??contentLength;if(contentLength===null){ +contentLength=request.contentLength}if(contentLength===0&&!expectsPayload){contentLength=null}if(shouldSendContentLength(method)&&contentLength>0&&request.contentLength!==null&&request.contentLength!== +contentLength){if(client[kStrictContentLength]){util.errorRequest(client,request,new RequestContentLengthMismatchError);return false}process.emitWarning(new RequestContentLengthMismatchError)}const socket=client[kSocket]; +clearIdleSocketValidation(socket);const abort=err=>{if(request.aborted||request.completed){return}util.errorRequest(client,request,err||new RequestAbortedError);util.destroy(body);util.destroy(socket, +new InformationalError("aborted"))};try{request.onConnect(abort)}catch(err){util.errorRequest(client,request,err)}if(request.aborted){return false}if(method==="HEAD"){socket[kReset]=true}if(upgrade||method=== +"CONNECT"){socket[kReset]=true}if(reset!=null){socket[kReset]=reset}if(client[kMaxRequests]&&socket[kCounter]++>=client[kMaxRequests]){socket[kReset]=true}if(blocking){socket[kBlocking]=true}let header=`${method}\ + ${path2} HTTP/1.1\r +`;if(typeof host==="string"){header+=`host: ${host}\r +`}else{header+=client[kHostHeader]}if(upgrade){header+=`connection: upgrade\r +upgrade: ${upgrade}\r +`}else if(client[kPipelining]&&!socket[kReset]){header+="connection: keep-alive\r\n"}else{header+="connection: close\r\n"}if(Array.isArray(headers)){for(let n=0;n{body.removeListener("error",onFinished)});if(!finished){const err=new RequestAbortedError;queueMicrotask(()=>onFinished(err))}};const onFinished=function(err){if(finished){return}finished= +true;assert(socket.destroyed||socket[kWriting]&&client[kRunning]<=1);socket.off("drain",onDrain).off("error",onFinished);body.removeListener("data",onData).removeListener("end",onFinished).removeListener( +"close",onClose);if(!err){try{writer.end()}catch(er){err=er}}writer.destroy(err);if(err&&(err.code!=="UND_ERR_INFO"||err.message!=="reset")){util.destroy(body,err)}else{util.destroy(body)}};body.on("d\ +ata",onData).on("end",onFinished).on("error",onFinished).on("close",onClose);if(body.resume){body.resume()}socket.on("drain",onDrain).on("error",onFinished);if(body.errorEmitted??body.errored){setImmediate( +()=>onFinished(body.errored))}else if(body.endEmitted??body.readableEnded){setImmediate(()=>onFinished(null))}if(body.closeEmitted??body.closed){setImmediate(onClose)}}function writeBuffer(abort,body,client,request,socket,contentLength,header,expectsPayload){ +try{if(!body){if(contentLength===0){socket.write(`${header}content-length: 0\r +\r +`,"latin1")}else{assert(contentLength===null,"no body must not have content length");socket.write(`${header}\r +`,"latin1")}}else if(util.isBuffer(body)){assert(contentLength===body.byteLength,"buffer body must have content length");socket.cork();socket.write(`${header}content-length: ${contentLength}\r +\r +`,"latin1");socket.write(body);socket.uncork();request.onBodySent(body);if(!expectsPayload&&request.reset!==false){socket[kReset]=true}}request.onRequestSent();client[kResume]()}catch(err){abort(err)}} +async function writeBlob(abort,body,client,request,socket,contentLength,header,expectsPayload){assert(contentLength===body.size,"blob body must have content length");try{if(contentLength!=null&&contentLength!== +body.size){throw new RequestContentLengthMismatchError}const buffer=Buffer.from(await body.arrayBuffer());socket.cork();socket.write(`${header}content-length: ${contentLength}\r +\r +`,"latin1");socket.write(buffer);socket.uncork();request.onBodySent(buffer);request.onRequestSent();if(!expectsPayload&&request.reset!==false){socket[kReset]=true}client[kResume]()}catch(err){abort(err)}} +async function writeIterable(abort,body,client,request,socket,contentLength,header,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"iterator body cannot be pipelined");let callback=null; +function onDrain(){if(callback){const cb=callback;callback=null;cb()}}const waitForDrain=()=>new Promise((resolve,reject)=>{assert(callback===null);if(socket[kError]){reject(socket[kError])}else{callback= +resolve}});socket.on("close",onDrain).on("drain",onDrain);const writer=new AsyncWriter({abort,socket,request,contentLength,client,expectsPayload,header});try{for await(const chunk of body){if(socket[kError]){ +throw socket[kError]}if(!writer.write(chunk)){await waitForDrain()}}writer.end()}catch(err){writer.destroy(err)}finally{socket.off("close",onDrain).off("drain",onDrain)}}var AsyncWriter=class{constructor({ +abort,socket,request,contentLength,client,expectsPayload,header}){this.socket=socket;this.request=request;this.contentLength=contentLength;this.client=client;this.bytesWritten=0;this.expectsPayload=expectsPayload; +this.header=header;this.abort=abort;socket[kWriting]=true}write(chunk){const{socket,request,contentLength,client,bytesWritten,expectsPayload,header}=this;if(socket[kError]){throw socket[kError]}if(socket. +destroyed){return false}const len=Buffer.byteLength(chunk);if(!len){return true}if(contentLength!==null&&bytesWritten+len>contentLength){if(client[kStrictContentLength]){throw new RequestContentLengthMismatchError} +process.emitWarning(new RequestContentLengthMismatchError)}socket.cork();if(bytesWritten===0){if(!expectsPayload&&request.reset!==false){socket[kReset]=true}if(contentLength===null){socket.write(`${header}\ +transfer-encoding: chunked\r +`,"latin1")}else{socket.write(`${header}content-length: ${contentLength}\r +\r +`,"latin1")}}if(contentLength===null){socket.write(`\r +${len.toString(16)}\r +`,"latin1")}this.bytesWritten+=len;const ret=socket.write(chunk);socket.uncork();request.onBodySent(chunk);if(!ret){if(socket[kParser].timeout&&socket[kParser].timeoutType===TIMEOUT_HEADERS){if(socket[kParser]. +timeout.refresh){socket[kParser].timeout.refresh()}}}return ret}end(){const{socket,contentLength,client,bytesWritten,expectsPayload,header,request}=this;request.onRequestSent();socket[kWriting]=false; +if(socket[kError]){throw socket[kError]}if(socket.destroyed){return}if(bytesWritten===0){if(expectsPayload){socket.write(`${header}content-length: 0\r +\r +`,"latin1")}else{socket.write(`${header}\r +`,"latin1")}}else if(contentLength===null){socket.write("\r\n0\r\n\r\n","latin1")}if(contentLength!==null&&bytesWritten!==contentLength){if(client[kStrictContentLength]){throw new RequestContentLengthMismatchError}else{ +process.emitWarning(new RequestContentLengthMismatchError)}}if(socket[kParser].timeout&&socket[kParser].timeoutType===TIMEOUT_HEADERS){if(socket[kParser].timeout.refresh){socket[kParser].timeout.refresh()}} +client[kResume]()}destroy(err){const{socket,client,abort}=this;socket[kWriting]=false;if(err){assert(client[kRunning]<=1,"pipeline should only contain this request");abort(err)}}};module.exports=connectH1}});var require_client_h2=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client-h2.js"(exports,module){"use strict";var assert=__require("node:assert");var{pipeline}=__require("node:stream"); +var util=require_util();var{RequestContentLengthMismatchError,RequestAbortedError,SocketError,InformationalError}=require_errors();var{kUrl,kReset,kClient,kRunning,kPending,kQueue,kPendingIdx,kRunningIdx, +kError,kSocket,kStrictContentLength,kOnError,kMaxConcurrentStreams,kHTTP2Session,kResume,kSize,kHTTPContext}=require_symbols();var kOpenStreams=Symbol("open streams");var extractBody;var h2ExperimentalWarned=false; +var http2;try{http2=__require("node:http2")}catch{http2={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY,HTTP2_HEADER_METHOD,HTTP2_HEADER_PATH,HTTP2_HEADER_SCHEME,HTTP2_HEADER_CONTENT_LENGTH,HTTP2_HEADER_EXPECT, +HTTP2_HEADER_STATUS}}=http2;function parseH2Headers(headers){const result=[];for(const[name,value]of Object.entries(headers)){if(Array.isArray(value)){for(const subvalue of value){result.push(Buffer.from( +name),Buffer.from(subvalue))}}else{result.push(Buffer.from(name),Buffer.from(value))}}return result}async function connectH2(client,socket){client[kSocket]=socket;if(!h2ExperimentalWarned){h2ExperimentalWarned= +true;process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"})}const session=http2.connect(client[kUrl],{createConnection:()=>socket,peerMaxConcurrentStreams:client[kMaxConcurrentStreams]}); +session[kOpenStreams]=0;session[kClient]=client;session[kSocket]=socket;util.addListener(session,"error",onHttp2SessionError);util.addListener(session,"frameError",onHttp2FrameError);util.addListener( +session,"end",onHttp2SessionEnd);util.addListener(session,"goaway",onHTTP2GoAway);util.addListener(session,"close",function(){const{[kClient]:client2}=this;const{[kSocket]:socket2}=client2;const err=this[kSocket][kError]|| +this[kError]||new SocketError("closed",util.getSocketInfo(socket2));client2[kHTTP2Session]=null;if(client2.destroyed){assert(client2[kPending]===0);const requests=client2[kQueue].splice(client2[kRunningIdx]); +for(let i=0;i{closed=true});return{version:"h2",defaultPipelining:Infinity,write(...args){return writeH2(client,...args)},resume(){resumeH2(client)},destroy(err,callback){if(closed){queueMicrotask(callback)}else{ +socket.destroy(err).on("close",callback)}},get destroyed(){return socket.destroyed},busy(){return false}}}function resumeH2(client){const socket=client[kSocket];if(socket?.destroyed===false){if(client[kSize]=== +0&&client[kMaxConcurrentStreams]===0){socket.unref();client[kHTTP2Session].unref()}else{socket.ref();client[kHTTP2Session].ref()}}}function onHttp2SessionError(err){assert(err.code!=="ERR_TLS_CERT_ALT\ +NAME_INVALID");this[kSocket][kError]=err;this[kClient][kOnError](err)}function onHttp2FrameError(type,code,id){if(id===0){const err=new InformationalError(`HTTP/2: "frameError" received - type ${type}\ +, code ${code}`);this[kSocket][kError]=err;this[kClient][kOnError](err)}}function onHttp2SessionEnd(){const err=new SocketError("other side closed",util.getSocketInfo(this[kSocket]));this.destroy(err); +util.destroy(this[kSocket],err)}function onHTTP2GoAway(code){const err=this[kError]||new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`,util.getSocketInfo(this));const client=this[kClient]; +client[kSocket]=null;client[kHTTPContext]=null;if(this[kHTTP2Session]!=null){this[kHTTP2Session].destroy(err);this[kHTTP2Session]=null}util.destroy(this[kSocket],err);if(client[kRunningIdx]{if(request.aborted||request.completed){return}err=err||new RequestAbortedError;util.errorRequest(client,request, +err);if(stream!=null){util.destroy(stream,err)}util.destroy(body,err);client[kQueue][client[kRunningIdx]++]=null;client[kResume]()};try{request.onConnect(abort)}catch(err){util.errorRequest(client,request, +err)}if(request.aborted){return false}if(method==="CONNECT"){session.ref();stream=session.request(headers,{endStream:false,signal});if(stream.id&&!stream.pending){request.onUpgrade(null,null,stream);++session[kOpenStreams]; +client[kQueue][client[kRunningIdx]++]=null}else{stream.once("ready",()=>{request.onUpgrade(null,null,stream);++session[kOpenStreams];client[kQueue][client[kRunningIdx]++]=null})}stream.once("close",()=>{ +session[kOpenStreams]-=1;if(session[kOpenStreams]===0)session.unref()});return true}headers[HTTP2_HEADER_PATH]=path2;headers[HTTP2_HEADER_SCHEME]="https";const expectsPayload=method==="PUT"||method=== +"POST"||method==="PATCH";if(body&&typeof body.read==="function"){body.read(0)}let contentLength=util.bodyLength(body);if(util.isFormDataLike(body)){extractBody??=require_body().extractBody;const[bodyStream, +contentType]=extractBody(body);headers["content-type"]=contentType;body=bodyStream.stream;contentLength=bodyStream.length}if(contentLength==null){contentLength=request.contentLength}if(contentLength=== +0||!expectsPayload){contentLength=null}if(shouldSendContentLength(method)&&contentLength>0&&request.contentLength!=null&&request.contentLength!==contentLength){if(client[kStrictContentLength]){util.errorRequest( +client,request,new RequestContentLengthMismatchError);return false}process.emitWarning(new RequestContentLengthMismatchError)}if(contentLength!=null){assert(body,"no body must not have content length"); +headers[HTTP2_HEADER_CONTENT_LENGTH]=`${contentLength}`}session.ref();const shouldEndStream=method==="GET"||method==="HEAD"||body===null;if(expectContinue){headers[HTTP2_HEADER_EXPECT]="100-continue"; +stream=session.request(headers,{endStream:shouldEndStream,signal});stream.once("continue",writeBodyH2)}else{stream=session.request(headers,{endStream:shouldEndStream,signal});writeBodyH2()}++session[kOpenStreams]; +stream.once("response",headers2=>{const{[HTTP2_HEADER_STATUS]:statusCode,...realHeaders}=headers2;request.onResponseStarted();if(request.aborted){const err=new RequestAbortedError;util.errorRequest(client, +request,err);util.destroy(stream,err);return}if(request.onHeaders(Number(statusCode),parseH2Headers(realHeaders),stream.resume.bind(stream),"")===false){stream.pause()}stream.on("data",chunk=>{if(request. +onData(chunk)===false){stream.pause()}})});stream.once("end",()=>{if(stream.state?.state==null||stream.state.state<6){request.onComplete([])}if(session[kOpenStreams]===0){session.unref()}abort(new InformationalError( +"HTTP/2: stream half-closed (remote)"));client[kQueue][client[kRunningIdx]++]=null;client[kPendingIdx]=client[kRunningIdx];client[kResume]()});stream.once("close",()=>{session[kOpenStreams]-=1;if(session[kOpenStreams]=== +0){session.unref()}});stream.once("error",function(err){abort(err)});stream.once("frameError",(type,code)=>{abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`))}); +return true;function writeBodyH2(){if(!body||contentLength===0){writeBuffer(abort,stream,null,client,request,client[kSocket],contentLength,expectsPayload)}else if(util.isBuffer(body)){writeBuffer(abort, +stream,body,client,request,client[kSocket],contentLength,expectsPayload)}else if(util.isBlobLike(body)){if(typeof body.stream==="function"){writeIterable(abort,stream,body.stream(),client,request,client[kSocket], +contentLength,expectsPayload)}else{writeBlob(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload)}}else if(util.isStream(body)){writeStream(abort,client[kSocket],expectsPayload, +stream,body,client,request,contentLength)}else if(util.isIterable(body)){writeIterable(abort,stream,body,client,request,client[kSocket],contentLength,expectsPayload)}else{assert(false)}}}function writeBuffer(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){ +try{if(body!=null&&util.isBuffer(body)){assert(contentLength===body.byteLength,"buffer body must have content length");h2stream.cork();h2stream.write(body);h2stream.uncork();h2stream.end();request.onBodySent( +body)}if(!expectsPayload){socket[kReset]=true}request.onRequestSent();client[kResume]()}catch(error2){abort(error2)}}function writeStream(abort,socket,expectsPayload,h2stream,body,client,request,contentLength){ +assert(contentLength!==0||client[kRunning]===0,"stream body cannot be pipelined");const pipe2=pipeline(body,h2stream,err=>{if(err){util.destroy(pipe2,err);abort(err)}else{util.removeAllListeners(pipe2); +request.onRequestSent();if(!expectsPayload){socket[kReset]=true}client[kResume]()}});util.addListener(pipe2,"data",onPipeData);function onPipeData(chunk){request.onBodySent(chunk)}}async function writeBlob(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){ +assert(contentLength===body.size,"blob body must have content length");try{if(contentLength!=null&&contentLength!==body.size){throw new RequestContentLengthMismatchError}const buffer=Buffer.from(await body. +arrayBuffer());h2stream.cork();h2stream.write(buffer);h2stream.uncork();h2stream.end();request.onBodySent(buffer);request.onRequestSent();if(!expectsPayload){socket[kReset]=true}client[kResume]()}catch(err){ +abort(err)}}async function writeIterable(abort,h2stream,body,client,request,socket,contentLength,expectsPayload){assert(contentLength!==0||client[kRunning]===0,"iterator body cannot be pipelined");let callback=null; +function onDrain(){if(callback){const cb=callback;callback=null;cb()}}const waitForDrain=()=>new Promise((resolve,reject)=>{assert(callback===null);if(socket[kError]){reject(socket[kError])}else{callback= +resolve}});h2stream.on("close",onDrain).on("drain",onDrain);try{for await(const chunk of body){if(socket[kError]){throw socket[kError]}const res=h2stream.write(chunk);request.onBodySent(chunk);if(!res){ +await waitForDrain()}}h2stream.end();request.onRequestSent();if(!expectsPayload){socket[kReset]=true}client[kResume]()}catch(err){abort(err)}finally{h2stream.off("close",onDrain).off("drain",onDrain)}} +module.exports=connectH2}});var require_redirect_handler=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/redirect-handler.js"(exports,module){"use strict";var util=require_util();var{kBodyUsed}=require_symbols(); +var assert=__require("node:assert");var{InvalidArgumentError}=require_errors();var EE=__require("node:events");var redirectableStatusCodes=[300,301,302,303,307,308];var kBody=Symbol("body");var BodyAsyncIterable=class{constructor(body){ +this[kBody]=body;this[kBodyUsed]=false}async*[Symbol.asyncIterator](){assert(!this[kBodyUsed],"disturbed");this[kBodyUsed]=true;yield*this[kBody]}};var RedirectHandler=class{constructor(dispatch,maxRedirections,opts,handler){ +if(maxRedirections!=null&&(!Number.isInteger(maxRedirections)||maxRedirections<0)){throw new InvalidArgumentError("maxRedirections must be a positive number")}util.validateHandler(handler,opts.method, +opts.upgrade);this.dispatch=dispatch;this.location=null;this.abort=null;this.opts={...opts,maxRedirections:0};this.maxRedirections=maxRedirections;this.handler=handler;this.history=[];this.redirectionLimitReached= +false;if(util.isStream(this.opts.body)){if(util.bodyLength(this.opts.body)===0){this.opts.body.on("data",function(){assert(false)})}if(typeof this.opts.body.readableDidRead!=="boolean"){this.opts.body[kBodyUsed]= +false;EE.prototype.on.call(this.opts.body,"data",function(){this[kBodyUsed]=true})}}else if(this.opts.body&&typeof this.opts.body.pipeTo==="function"){this.opts.body=new BodyAsyncIterable(this.opts.body)}else if(this. +opts.body&&typeof this.opts.body!=="string"&&!ArrayBuffer.isView(this.opts.body)&&util.isIterable(this.opts.body)){this.opts.body=new BodyAsyncIterable(this.opts.body)}}onConnect(abort){this.abort=abort; +this.handler.onConnect(abort,{history:this.history})}onUpgrade(statusCode,headers,socket){this.handler.onUpgrade(statusCode,headers,socket)}onError(error2){this.handler.onError(error2)}onHeaders(statusCode,headers,resume,statusText){ +this.location=this.history.length>=this.maxRedirections||util.isDisturbed(this.opts.body)?null:parseLocation(statusCode,headers);if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){ +if(this.request){this.request.abort(new Error("max redirects"))}this.redirectionLimitReached=true;this.abort(new Error("max redirects"));return}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)}const{origin,pathname,search}=util.parseURL(new URL(this.location,this.opts.origin&&new URL( +this.opts.path,this.opts.origin)));const path2=search?`${pathname}${search}`:pathname;this.opts.headers=cleanRequestHeaders(this.opts.headers,statusCode===303,this.opts.origin!==origin);this.opts.path= +path2;this.opts.origin=origin;this.opts.maxRedirections=0;this.opts.query=null;if(statusCode===303&&this.opts.method!=="HEAD"){this.opts.method="GET";this.opts.body=null}}onData(chunk){if(this.location){}else{ +return this.handler.onData(chunk)}}onComplete(trailers){if(this.location){this.location=null;this.abort=null;this.dispatch(this.opts,this)}else{this.handler.onComplete(trailers)}}onBodySent(chunk){if(this. +handler.onBodySent){this.handler.onBodySent(chunk)}}};function parseLocation(statusCode,headers){if(redirectableStatusCodes.indexOf(statusCode)===-1){return null}for(let i=0;i{return function Intercept(opts,handler){const{maxRedirections=defaultMaxRedirections}=opts;if(!maxRedirections){ +return dispatch(opts,handler)}const redirectHandler=new RedirectHandler(dispatch,maxRedirections,opts,handler);opts={...opts,maxRedirections:0};return dispatch(opts,redirectHandler)}}}module.exports=createRedirectInterceptor}});var require_client=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/client.js"(exports,module){"use strict";var assert=__require("node:assert");var net=__require("node:net"); +var http=__require("node:http");var util=require_util();var{channels}=require_diagnostics();var Request=require_request();var DispatcherBase=require_dispatcher_base();var{InvalidArgumentError,InformationalError, +ClientDestroyedError}=require_errors();var buildConnector=require_connect();var{kUrl,kServerName,kClient,kBusy,kConnect,kResuming,kRunning,kPending,kSize,kQueue,kConnected,kConnecting,kNeedDrain,kKeepAliveDefaultTimeout, +kHostHeader,kPendingIdx,kRunningIdx,kError,kPipelining,kKeepAliveTimeoutValue,kMaxHeadersSize,kKeepAliveMaxTimeout,kKeepAliveTimeoutThreshold,kHeadersTimeout,kBodyTimeout,kStrictContentLength,kConnector, +kMaxRedirections,kMaxRequests,kCounter,kClose,kDestroy,kDispatch,kInterceptors,kLocalAddress,kMaxResponseSize,kOnError,kHTTPContext,kMaxConcurrentStreams,kResume}=require_symbols();var connectH1=require_client_h1(); +var connectH2=require_client_h2();var deprecatedInterceptorWarned=false;var kClosedResolve=Symbol("kClosedResolve");var noop=()=>{};function getPipelining(client){return client[kPipelining]??client[kHTTPContext]?. +defaultPipelining??1}var Client=class extends DispatcherBase{constructor(url,{interceptors,maxHeaderSize,headersTimeout,socketTimeout,requestTimeout,connectTimeout,bodyTimeout,idleTimeout,keepAlive,keepAliveTimeout, +maxKeepAliveTimeout,keepAliveMaxTimeout,keepAliveTimeoutThreshold,socketPath,pipelining,tls,strictContentLength,maxCachedSessions,maxRedirections,connect:connect2,maxRequestsPerClient,localAddress,maxResponseSize, +autoSelectFamily,autoSelectFamilyAttemptTimeout,maxConcurrentStreams,allowH2,webSocket}={}){super({webSocket});if(keepAlive!==void 0){throw new InvalidArgumentError("unsupported keepAlive, use pipelin\ +ing=0 instead")}if(socketTimeout!==void 0){throw new InvalidArgumentError("unsupported socketTimeout, use headersTimeout & bodyTimeout instead")}if(requestTimeout!==void 0){throw new InvalidArgumentError( +"unsupported requestTimeout, use headersTimeout & bodyTimeout instead")}if(idleTimeout!==void 0){throw new InvalidArgumentError("unsupported idleTimeout, use keepAliveTimeout instead")}if(maxKeepAliveTimeout!== +void 0){throw new InvalidArgumentError("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead")}if(maxHeaderSize!=null&&!Number.isFinite(maxHeaderSize)){throw new InvalidArgumentError("inva\ +lid maxHeaderSize")}if(socketPath!=null&&typeof socketPath!=="string"){throw new InvalidArgumentError("invalid socketPath")}if(connectTimeout!=null&&(!Number.isFinite(connectTimeout)||connectTimeout<0)){ +throw new InvalidArgumentError("invalid connectTimeout")}if(keepAliveTimeout!=null&&(!Number.isFinite(keepAliveTimeout)||keepAliveTimeout<=0)){throw new InvalidArgumentError("invalid keepAliveTimeout")} +if(keepAliveMaxTimeout!=null&&(!Number.isFinite(keepAliveMaxTimeout)||keepAliveMaxTimeout<=0)){throw new InvalidArgumentError("invalid keepAliveMaxTimeout")}if(keepAliveTimeoutThreshold!=null&&!Number. +isFinite(keepAliveTimeoutThreshold)){throw new InvalidArgumentError("invalid keepAliveTimeoutThreshold")}if(headersTimeout!=null&&(!Number.isInteger(headersTimeout)||headersTimeout<0)){throw new InvalidArgumentError( +"headersTimeout must be a positive integer or zero")}if(bodyTimeout!=null&&(!Number.isInteger(bodyTimeout)||bodyTimeout<0)){throw new InvalidArgumentError("bodyTimeout must be a positive integer or ze\ +ro")}if(connect2!=null&&typeof connect2!=="function"&&typeof connect2!=="object"){throw new InvalidArgumentError("connect must be a function or an object")}if(maxRedirections!=null&&(!Number.isInteger( +maxRedirections)||maxRedirections<0)){throw new InvalidArgumentError("maxRedirections must be a positive number")}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)){throw new InvalidArgumentError( +"localAddress must be valid string IP address")}if(maxResponseSize!=null&&(!Number.isInteger(maxResponseSize)||maxResponseSize<-1)){throw new InvalidArgumentError("maxResponseSize must be a positive n\ +umber")}if(autoSelectFamilyAttemptTimeout!=null&&(!Number.isInteger(autoSelectFamilyAttemptTimeout)||autoSelectFamilyAttemptTimeout<-1)){throw new InvalidArgumentError("autoSelectFamilyAttemptTimeout \ +must be a positive number")}if(allowH2!=null&&typeof allowH2!=="boolean"){throw new InvalidArgumentError("allowH2 must be a valid boolean value")}if(maxConcurrentStreams!=null&&(typeof maxConcurrentStreams!== +"number"||maxConcurrentStreams<1)){throw new InvalidArgumentError("maxConcurrentStreams must be a positive integer, greater than 0")}if(typeof connect2!=="function"){connect2=buildConnector({...tls,maxCachedSessions, +allowH2,socketPath,timeout:connectTimeout,...autoSelectFamily?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect2})}if(interceptors?.Client&&Array.isArray(interceptors.Client)){this[kInterceptors]= +interceptors.Client;if(!deprecatedInterceptorWarned){deprecatedInterceptorWarned=true;process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIE\ +NT-INTERCEPTOR-DEPRECATED"})}}else{this[kInterceptors]=[createRedirectInterceptor({maxRedirections})]}this[kUrl]=util.parseOrigin(url);this[kConnector]=connect2;this[kPipelining]=pipelining!=null?pipelining: +1;this[kMaxHeadersSize]=maxHeaderSize||http.maxHeaderSize;this[kKeepAliveDefaultTimeout]=keepAliveTimeout==null?4e3:keepAliveTimeout;this[kKeepAliveMaxTimeout]=keepAliveMaxTimeout==null?6e5:keepAliveMaxTimeout; +this[kKeepAliveTimeoutThreshold]=keepAliveTimeoutThreshold==null?2e3:keepAliveTimeoutThreshold;this[kKeepAliveTimeoutValue]=this[kKeepAliveDefaultTimeout];this[kServerName]=null;this[kLocalAddress]=localAddress!= +null?localAddress:null;this[kResuming]=0;this[kNeedDrain]=0;this[kHostHeader]=`host: ${this[kUrl].hostname}${this[kUrl].port?`:${this[kUrl].port}`:""}\r +`;this[kBodyTimeout]=bodyTimeout!=null?bodyTimeout:3e5;this[kHeadersTimeout]=headersTimeout!=null?headersTimeout:3e5;this[kStrictContentLength]=strictContentLength==null?true:strictContentLength;this[kMaxRedirections]= +maxRedirections;this[kMaxRequests]=maxRequestsPerClient;this[kClosedResolve]=null;this[kMaxResponseSize]=maxResponseSize>-1?maxResponseSize:-1;this[kMaxConcurrentStreams]=maxConcurrentStreams!=null?maxConcurrentStreams: +100;this[kHTTPContext]=null;this[kQueue]=[];this[kRunningIdx]=0;this[kPendingIdx]=0;this[kResume]=sync=>resume(this,sync);this[kOnError]=err=>onError(this,err)}get pipelining(){return this[kPipelining]}set pipelining(value){ +this[kPipelining]=value;this[kResume](true)}get[kPending](){return this[kQueue].length-this[kPendingIdx]}get[kRunning](){return this[kPendingIdx]-this[kRunningIdx]}get[kSize](){return this[kQueue].length- +this[kRunningIdx]}get[kConnected](){return!!this[kHTTPContext]&&!this[kConnecting]&&!this[kHTTPContext].destroyed}get[kBusy](){return Boolean(this[kHTTPContext]?.busy(null)||this[kSize]>=(getPipelining( +this)||1)||this[kPending]>0)}[kConnect](cb){connect(this);this.once("connect",cb)}[kDispatch](opts,handler){const origin=opts.origin||this[kUrl].origin;const request=new Request(origin,opts,handler);this[kQueue]. +push(request);if(this[kResuming]){}else if(util.bodyLength(request.body)==null&&util.isIterable(request.body)){this[kResuming]=1;queueMicrotask(()=>resume(this))}else{this[kResume](true)}if(this[kResuming]&& +this[kNeedDrain]!==2&&this[kBusy]){this[kNeedDrain]=2}return this[kNeedDrain]<2}async[kClose](){return new Promise(resolve=>{if(this[kSize]){this[kClosedResolve]=resolve}else{resolve(null)}})}async[kDestroy](err){ +return new Promise(resolve=>{const requests=this[kQueue].splice(this[kPendingIdx]);for(let i=0;i{ +if(this[kClosedResolve]){this[kClosedResolve]();this[kClosedResolve]=null}resolve(null)};if(this[kHTTPContext]){this[kHTTPContext].destroy(err,callback);this[kHTTPContext]=null}else{queueMicrotask(callback)} +this[kResume]()})}};var createRedirectInterceptor=require_redirect_interceptor();function onError(client,err){if(client[kRunning]===0&&err.code!=="UND_ERR_INFO"&&err.code!=="UND_ERR_SOCKET"){assert(client[kPendingIdx]=== +client[kRunningIdx]);const requests=client[kQueue].splice(client[kRunningIdx]);for(let i=0;i{ +client[kConnector]({host,hostname,protocol,port,servername:client[kServerName],localAddress:client[kLocalAddress]},(err,socket2)=>{if(err){reject(err)}else{resolve(socket2)}})});if(client.destroyed){util. +destroy(socket.on("error",noop),new ClientDestroyedError);return}assert(socket);try{client[kHTTPContext]=socket.alpnProtocol==="h2"?await connectH2(client,socket):await connectH1(client,socket)}catch(err){ +socket.destroy().on("error",noop);throw err}client[kConnecting]=false;socket[kCounter]=0;socket[kMaxRequests]=client[kMaxRequests];socket[kClient]=client;socket[kError]=null;if(channels.connected.hasSubscribers){ +channels.connected.publish({connectParams:{host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector], +socket})}client.emit("connect",client[kUrl],[client])}catch(err){if(client.destroyed){return}client[kConnecting]=false;if(channels.connectError.hasSubscribers){channels.connectError.publish({connectParams:{ +host,hostname,protocol,port,version:client[kHTTPContext]?.version,servername:client[kServerName],localAddress:client[kLocalAddress]},connector:client[kConnector],error:err})}if(err.code==="ERR_TLS_CER\ +T_ALTNAME_INVALID"){assert(client[kRunning]===0);while(client[kPending]>0&&client[kQueue][client[kPendingIdx]].servername===client[kServerName]){const request=client[kQueue][client[kPendingIdx]++];util. +errorRequest(client,request,err)}}else{onError(client,err)}client.emit("connectionError",client[kUrl],[client],err)}client[kResume]()}function emitDrain(client){client[kNeedDrain]=0;client.emit("drain", +client[kUrl],[client])}function resume(client,sync){if(client[kResuming]===2){return}client[kResuming]=2;_resume(client,sync);client[kResuming]=0;if(client[kRunningIdx]>256){client[kQueue].splice(0,client[kRunningIdx]); +client[kPendingIdx]-=client[kRunningIdx];client[kRunningIdx]=0}}function _resume(client,sync){while(true){if(client.destroyed){assert(client[kPending]===0);return}if(client[kClosedResolve]&&!client[kSize]){ +client[kClosedResolve]();client[kClosedResolve]=null;return}if(client[kHTTPContext]){client[kHTTPContext].resume()}if(client[kBusy]){client[kNeedDrain]=2}else if(client[kNeedDrain]===2){if(sync){client[kNeedDrain]= +1;queueMicrotask(()=>emitDrain(client))}else{emitDrain(client)}continue}if(client[kPending]===0){return}if(client[kRunning]>=(getPipelining(client)||1)){return}const request=client[kQueue][client[kPendingIdx]]; +if(client[kUrl].protocol==="https:"&&client[kServerName]!==request.servername){if(client[kRunning]>0){return}client[kServerName]=request.servername;client[kHTTPContext]?.destroy(new InformationalError( +"servername changed"),()=>{client[kHTTPContext]=null;resume(client)})}if(client[kConnecting]){return}if(!client[kHTTPContext]){connect(client);return}if(client[kHTTPContext].destroyed){return}if(client[kHTTPContext]. +busy(request)){return}if(!request.aborted&&client[kHTTPContext].write(request)){client[kPendingIdx]++}else{client[kQueue].splice(client[kPendingIdx],1)}}}module.exports=Client}});var require_fixed_queue=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/fixed-queue.js"(exports,module){"use strict";var kSize=2048;var kMask=kSize-1;var FixedCircularBuffer=class{constructor(){ +this.bottom=0;this.top=0;this.list=new Array(kSize);this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&kMask)===this.bottom}push(data){this.list[this.top]=data;this.top= +this.top+1&kMask}shift(){const nextItem=this.list[this.bottom];if(nextItem===void 0)return null;this.list[this.bottom]=void 0;this.bottom=this.bottom+1&kMask;return nextItem}};module.exports=class FixedQueue{constructor(){ +this.head=this.tail=new FixedCircularBuffer}isEmpty(){return this.head.isEmpty()}push(data){if(this.head.isFull()){this.head=this.head.next=new FixedCircularBuffer}this.head.push(data)}shift(){const tail=this. +tail;const next=tail.shift();if(tail.isEmpty()&&tail.next!==null){this.tail=tail.next}return next}}}});var require_pool_stats=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool-stats.js"(exports,module){var{kFree,kConnected,kPending,kQueued,kRunning,kSize}=require_symbols(); +var kPool=Symbol("pool");var PoolStats=class{constructor(pool){this[kPool]=pool}get connected(){return this[kPool][kConnected]}get free(){return this[kPool][kFree]}get pending(){return this[kPool][kPending]}get queued(){ +return this[kPool][kQueued]}get running(){return this[kPool][kRunning]}get size(){return this[kPool][kSize]}};module.exports=PoolStats}});var require_pool_base=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool-base.js"(exports,module){"use strict";var DispatcherBase=require_dispatcher_base();var FixedQueue=require_fixed_queue(); +var{kConnected,kSize,kRunning,kPending,kQueued,kBusy,kFree,kUrl,kClose,kDestroy,kDispatch}=require_symbols();var PoolStats=require_pool_stats();var kClients=Symbol("clients");var kNeedDrain=Symbol("ne\ +edDrain");var kQueue=Symbol("queue");var kClosedResolve=Symbol("closed resolve");var kOnDrain=Symbol("onDrain");var kOnConnect=Symbol("onConnect");var kOnDisconnect=Symbol("onDisconnect");var kOnConnectionError=Symbol( +"onConnectionError");var kGetDispatcher=Symbol("get dispatcher");var kAddClient=Symbol("add client");var kRemoveClient=Symbol("remove client");var kStats=Symbol("stats");var PoolBase=class extends DispatcherBase{constructor(opts){ +super(opts);this[kQueue]=new FixedQueue;this[kClients]=[];this[kQueued]=0;const pool=this;this[kOnDrain]=function onDrain(origin,targets){const queue=pool[kQueue];let needDrain=false;while(!needDrain){ +const item=queue.shift();if(!item){break}pool[kQueued]--;needDrain=!this.dispatch(item.opts,item.handler)}this[kNeedDrain]=needDrain;if(!this[kNeedDrain]&&pool[kNeedDrain]){pool[kNeedDrain]=false;pool. +emit("drain",origin,[pool,...targets])}if(pool[kClosedResolve]&&queue.isEmpty()){Promise.all(pool[kClients].map(c=>c.close())).then(pool[kClosedResolve])}};this[kOnConnect]=(origin,targets)=>{pool.emit( +"connect",origin,[pool,...targets])};this[kOnDisconnect]=(origin,targets,err)=>{pool.emit("disconnect",origin,[pool,...targets],err)};this[kOnConnectionError]=(origin,targets,err)=>{pool.emit("connect\ +ionError",origin,[pool,...targets],err)};this[kStats]=new PoolStats(this)}get[kBusy](){return this[kNeedDrain]}get[kConnected](){return this[kClients].filter(client=>client[kConnected]).length}get[kFree](){ +return this[kClients].filter(client=>client[kConnected]&&!client[kNeedDrain]).length}get[kPending](){let ret=this[kQueued];for(const{[kPending]:pending}of this[kClients]){ret+=pending}return ret}get[kRunning](){ +let ret=0;for(const{[kRunning]:running}of this[kClients]){ret+=running}return ret}get[kSize](){let ret=this[kQueued];for(const{[kSize]:size}of this[kClients]){ret+=size}return ret}get stats(){return this[kStats]}async[kClose](){ +if(this[kQueue].isEmpty()){await Promise.all(this[kClients].map(c=>c.close()))}else{await new Promise(resolve=>{this[kClosedResolve]=resolve})}}async[kDestroy](err){while(true){const item=this[kQueue]. +shift();if(!item){break}item.handler.onError(err)}await Promise.all(this[kClients].map(c=>c.destroy(err)))}[kDispatch](opts,handler){const dispatcher=this[kGetDispatcher]();if(!dispatcher){this[kNeedDrain]= +true;this[kQueue].push({opts,handler});this[kQueued]++}else if(!dispatcher.dispatch(opts,handler)){dispatcher[kNeedDrain]=true;this[kNeedDrain]=!this[kGetDispatcher]()}return!this[kNeedDrain]}[kAddClient](client){ +client.on("drain",this[kOnDrain]).on("connect",this[kOnConnect]).on("disconnect",this[kOnDisconnect]).on("connectionError",this[kOnConnectionError]);this[kClients].push(client);if(this[kNeedDrain]){queueMicrotask( +()=>{if(this[kNeedDrain]){this[kOnDrain](client[kUrl],[this,client])}})}return this}[kRemoveClient](client){client.close(()=>{const idx=this[kClients].indexOf(client);if(idx!==-1){this[kClients].splice( +idx,1)}});this[kNeedDrain]=this[kClients].some(dispatcher=>!dispatcher[kNeedDrain]&&dispatcher.closed!==true&&dispatcher.destroyed!==true)}};module.exports={PoolBase,kClients,kNeedDrain,kAddClient,kRemoveClient, +kGetDispatcher}}});var require_pool=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/pool.js"(exports,module){"use strict";var{PoolBase,kClients,kNeedDrain,kAddClient,kGetDispatcher}=require_pool_base(); +var Client=require_client();var{InvalidArgumentError}=require_errors();var util=require_util();var{kUrl,kInterceptors}=require_symbols();var buildConnector=require_connect();var kOptions=Symbol("optio\ +ns");var kConnections=Symbol("connections");var kFactory=Symbol("factory");function defaultFactory(origin,opts){return new Client(origin,opts)}var Pool=class extends PoolBase{constructor(origin,{connections, +factory=defaultFactory,connect,connectTimeout,tls,maxCachedSessions,socketPath,autoSelectFamily,autoSelectFamilyAttemptTimeout,allowH2,...options}={}){if(connections!=null&&(!Number.isFinite(connections)|| +connections<0)){throw new InvalidArgumentError("invalid connections")}if(typeof factory!=="function"){throw new InvalidArgumentError("factory must be a function.")}if(connect!=null&&typeof connect!=="\ +function"&&typeof connect!=="object"){throw new InvalidArgumentError("connect must be a function or an object")}if(typeof connect!=="function"){connect=buildConnector({...tls,maxCachedSessions,allowH2, +socketPath,timeout:connectTimeout,...autoSelectFamily?{autoSelectFamily,autoSelectFamilyAttemptTimeout}:void 0,...connect})}super(options);this[kInterceptors]=options.interceptors?.Pool&&Array.isArray( +options.interceptors.Pool)?options.interceptors.Pool:[];this[kConnections]=connections||null;this[kUrl]=util.parseOrigin(origin);this[kOptions]={...util.deepClone(options),connect,allowH2};this[kOptions]. +interceptors=options.interceptors?{...options.interceptors}:void 0;this[kFactory]=factory;this.on("connectionError",(origin2,targets,error2)=>{for(const target of targets){const idx=this[kClients].indexOf( +target);if(idx!==-1){this[kClients].splice(idx,1)}}})}[kGetDispatcher](){for(const client of this[kClients]){if(!client[kNeedDrain]){return client}}if(!this[kConnections]||this[kClients].lengthpool2[kUrl].origin===upstreamOrigin&&pool2. +closed!==true&&pool2.destroyed!==true)){return this}const pool=this[kFactory](upstreamOrigin,Object.assign({},this[kOptions]));this[kAddClient](pool);pool.on("connect",()=>{pool[kWeight]=Math.min(this[kMaxWeightPerServer], +pool[kWeight]+this[kErrorPenalty])});pool.on("connectionError",()=>{pool[kWeight]=Math.max(1,pool[kWeight]-this[kErrorPenalty]);this._updateBalancedPoolStats()});pool.on("disconnect",(...args)=>{const err=args[2]; +if(err&&err.code==="UND_ERR_SOCKET"){pool[kWeight]=Math.max(1,pool[kWeight]-this[kErrorPenalty]);this._updateBalancedPoolStats()}});for(const client of this[kClients]){client[kWeight]=this[kMaxWeightPerServer]} +this._updateBalancedPoolStats();return this}_updateBalancedPoolStats(){let result=0;for(let i=0;ipool2[kUrl].origin===upstreamOrigin&&pool2.closed!==true&&pool2.destroyed!==true); +if(pool){this[kRemoveClient](pool)}return this}get upstreams(){return this[kClients].filter(dispatcher=>dispatcher.closed!==true&&dispatcher.destroyed!==true).map(p=>p[kUrl].origin)}[kGetDispatcher](){ +if(this[kClients].length===0){throw new BalancedPoolMissingUpstreamError}const dispatcher=this[kClients].find(dispatcher2=>!dispatcher2[kNeedDrain]&&dispatcher2.closed!==true&&dispatcher2.destroyed!== +true);if(!dispatcher){return}const allClientsBusy=this[kClients].map(pool=>pool[kNeedDrain]).reduce((a,b)=>a&&b,true);if(allClientsBusy){return}let counter=0;let maxWeightIndex=this[kClients].findIndex( +pool=>!pool[kNeedDrain]);while(counter++this[kClients][maxWeightIndex][kWeight]&& +!pool[kNeedDrain]){maxWeightIndex=this[kIndex]}if(this[kIndex]===0){this[kCurrentWeight]=this[kCurrentWeight]-this[kGreatestCommonDivisor];if(this[kCurrentWeight]<=0){this[kCurrentWeight]=this[kMaxWeightPerServer]}} +if(pool[kWeight]>=this[kCurrentWeight]&&!pool[kNeedDrain]){return pool}}this[kCurrentWeight]=this[kClients][maxWeightIndex][kWeight];this[kIndex]=maxWeightIndex;return this[kClients][maxWeightIndex]}}; +module.exports=BalancedPool}});var require_agent=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/agent.js"(exports,module){"use strict";var{InvalidArgumentError}=require_errors();var{kClients,kRunning, +kClose,kDestroy,kDispatch,kInterceptors}=require_symbols();var DispatcherBase=require_dispatcher_base();var Pool=require_pool();var Client=require_client();var util=require_util();var createRedirectInterceptor=require_redirect_interceptor(); +var kOnConnect=Symbol("onConnect");var kOnDisconnect=Symbol("onDisconnect");var kOnConnectionError=Symbol("onConnectionError");var kMaxRedirections=Symbol("maxRedirections");var kOnDrain=Symbol("onDra\ +in");var kFactory=Symbol("factory");var kOptions=Symbol("options");function defaultFactory(origin,opts){return opts&&opts.connections===1?new Client(origin,opts):new Pool(origin,opts)}var Agent=class extends DispatcherBase{constructor({ +factory=defaultFactory,maxRedirections=0,connect,...options}={}){if(typeof factory!=="function"){throw new InvalidArgumentError("factory must be a function.")}if(connect!=null&&typeof connect!=="funct\ +ion"&&typeof connect!=="object"){throw new InvalidArgumentError("connect must be a function or an object")}if(!Number.isInteger(maxRedirections)||maxRedirections<0){throw new InvalidArgumentError("max\ +Redirections must be a positive number")}super(options);if(connect&&typeof connect!=="function"){connect={...connect}}this[kInterceptors]=options.interceptors?.Agent&&Array.isArray(options.interceptors. +Agent)?options.interceptors.Agent:[createRedirectInterceptor({maxRedirections})];this[kOptions]={...util.deepClone(options),connect};this[kOptions].interceptors=options.interceptors?{...options.interceptors}: +void 0;this[kMaxRedirections]=maxRedirections;this[kFactory]=factory;this[kClients]=new Map;this[kOnDrain]=(origin,targets)=>{this.emit("drain",origin,[this,...targets])};this[kOnConnect]=(origin,targets)=>{ +this.emit("connect",origin,[this,...targets])};this[kOnDisconnect]=(origin,targets,err)=>{this.emit("disconnect",origin,[this,...targets],err)};this[kOnConnectionError]=(origin,targets,err)=>{this.emit( +"connectionError",origin,[this,...targets],err)}}get[kRunning](){let ret=0;for(const client of this[kClients].values()){ret+=client[kRunning]}return ret}[kDispatch](opts,handler){let key;if(opts.origin&& +(typeof opts.origin==="string"||opts.origin instanceof URL)){key=String(opts.origin)}else{throw new InvalidArgumentError("opts.origin must be a non-empty string or URL.")}let dispatcher=this[kClients]. +get(key);if(!dispatcher){dispatcher=this[kFactory](opts.origin,this[kOptions]).on("drain",this[kOnDrain]).on("connect",this[kOnConnect]).on("disconnect",this[kOnDisconnect]).on("connectionError",this[kOnConnectionError]); +this[kClients].set(key,dispatcher)}return dispatcher.dispatch(opts,handler)}async[kClose](){const closePromises=[];for(const client of this[kClients].values()){closePromises.push(client.close())}this[kClients]. +clear();await Promise.all(closePromises)}async[kDestroy](err){const destroyPromises=[];for(const client of this[kClients].values()){destroyPromises.push(client.destroy(err))}this[kClients].clear();await Promise. +all(destroyPromises)}};module.exports=Agent}});var require_proxy_agent=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/proxy-agent.js"(exports,module){"use strict";var{kProxy,kClose,kDestroy,kDispatch,kInterceptors}=require_symbols(); +var{URL:URL2}=__require("node:url");var Agent=require_agent();var Pool=require_pool();var DispatcherBase=require_dispatcher_base();var{InvalidArgumentError,RequestAbortedError,SecureProxyConnectionError}=require_errors(); +var buildConnector=require_connect();var Client=require_client();var kAgent=Symbol("proxy agent");var kClient=Symbol("proxy client");var kProxyHeaders=Symbol("proxy headers");var kRequestTls=Symbol("r\ +equest tls settings");var kProxyTls=Symbol("proxy tls settings");var kConnectEndpoint=Symbol("connect endpoint function");var kTunnelProxy=Symbol("tunnel proxy");function defaultProtocolPort(protocol){ +return protocol==="https:"?443:80}function defaultFactory(origin,opts){return new Pool(origin,opts)}var noop=()=>{};function defaultAgentFactory(origin,opts){if(opts.connections===1){return new Client( +origin,opts)}return new Pool(origin,opts)}var Http1ProxyWrapper=class extends DispatcherBase{#client;constructor(proxyUrl,{headers={},connect,factory}){super();if(!proxyUrl){throw new InvalidArgumentError( +"Proxy URL is mandatory")}this[kProxyHeaders]=headers;if(factory){this.#client=factory(proxyUrl,{connect})}else{this.#client=new Client(proxyUrl,{connect})}}[kDispatch](opts,handler){const onHeaders=handler. +onHeaders;handler.onHeaders=function(statusCode,data,resume){if(statusCode===407){if(typeof handler.onError==="function"){handler.onError(new InvalidArgumentError("Proxy Authentication Required (407)"))} +return}if(onHeaders)onHeaders.call(this,statusCode,data,resume)};const{origin,path:path2="/",headers={}}=opts;opts.path=origin+path2;if(!("host"in headers)&&!("Host"in headers)){const{host}=new URL2(origin); +headers.host=host}opts.headers={...this[kProxyHeaders],...headers};return this.#client[kDispatch](opts,handler)}async[kClose](){return this.#client.close()}async[kDestroy](err){return this.#client.destroy( +err)}};var ProxyAgent2=class extends DispatcherBase{constructor(opts){super();if(!opts||typeof opts==="object"&&!(opts instanceof URL2)&&!opts.uri){throw new InvalidArgumentError("Proxy uri is mandato\ +ry")}const{clientFactory=defaultFactory}=opts;if(typeof clientFactory!=="function"){throw new InvalidArgumentError("Proxy opts.clientFactory must be a function.")}const{proxyTunnel=true}=opts;const url=this.#getUrl( +opts);const{href,origin,port,protocol,username,password,hostname:proxyHostname}=url;this[kProxy]={uri:href,protocol};this[kInterceptors]=opts.interceptors?.ProxyAgent&&Array.isArray(opts.interceptors. +ProxyAgent)?opts.interceptors.ProxyAgent:[];this[kRequestTls]=opts.requestTls;this[kProxyTls]=opts.proxyTls;this[kProxyHeaders]=opts.headers||{};this[kTunnelProxy]=proxyTunnel;if(opts.auth&&opts.token){ +throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token")}else if(opts.auth){this[kProxyHeaders]["proxy-authorization"]=`Basic ${opts.auth}`}else if(opts.token){this[kProxyHeaders]["\ +proxy-authorization"]=opts.token}else if(username&&password){this[kProxyHeaders]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString( +"base64")}`}const connect=buildConnector({...opts.proxyTls});this[kConnectEndpoint]=buildConnector({...opts.requestTls});const agentFactory=opts.factory||defaultAgentFactory;const factory=(origin2,options)=>{ +const{protocol:protocol2}=new URL2(origin2);if(!this[kTunnelProxy]&&protocol2==="http:"&&this[kProxy].protocol==="http:"){return new Http1ProxyWrapper(this[kProxy].uri,{headers:this[kProxyHeaders],connect, +factory:agentFactory})}return agentFactory(origin2,options)};this[kClient]=clientFactory(url,{connect});this[kAgent]=new Agent({...opts,factory,connect:async(opts2,callback)=>{let requestedPath=opts2. +host;if(!opts2.port){requestedPath+=`:${defaultProtocolPort(opts2.protocol)}`}try{const{socket,statusCode}=await this[kClient].connect({origin,port,path:requestedPath,signal:opts2.signal,headers:{...this[kProxyHeaders], +host:opts2.host},servername:this[kProxyTls]?.servername||proxyHostname});if(statusCode!==200){socket.on("error",noop).destroy();callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200\ + when HTTP Tunneling`))}if(opts2.protocol!=="https:"){callback(null,socket);return}let servername;if(this[kRequestTls]){servername=this[kRequestTls].servername}else{servername=opts2.servername}this[kConnectEndpoint]( +{...opts2,servername,httpSocket:socket},callback)}catch(err){if(err.code==="ERR_TLS_CERT_ALTNAME_INVALID"){callback(new SecureProxyConnectionError(err))}else{callback(err)}}}})}dispatch(opts,handler){ +const headers=buildHeaders(opts.headers);throwIfProxyAuthIsSent(headers);if(headers&&!("host"in headers)&&!("Host"in headers)){const{host}=new URL2(opts.origin);headers.host=host}return this[kAgent].dispatch( +{...opts,headers},handler)}#getUrl(opts){if(typeof opts==="string"){return new URL2(opts)}else if(opts instanceof URL2){return opts}else{return new URL2(opts.uri)}}async[kClose](){await this[kAgent].close(); +await this[kClient].close()}async[kDestroy](){await this[kAgent].destroy();await this[kClient].destroy()}};function buildHeaders(headers){if(Array.isArray(headers)){const headersPair={};for(let i=0;i< +headers.length;i+=2){headersPair[headers[i]]=headers[i+1]}return headersPair}return headers}function throwIfProxyAuthIsSent(headers){const existProxyAuth=headers&&Object.keys(headers).find(key=>key.toLowerCase()=== +"proxy-authorization");if(existProxyAuth){throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor")}}module.exports=ProxyAgent2}});var require_env_http_proxy_agent=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports,module){"use strict";var DispatcherBase=require_dispatcher_base(); +var{kClose,kDestroy,kClosed,kDestroyed,kDispatch,kNoProxyAgent,kHttpProxyAgent,kHttpsProxyAgent}=require_symbols();var ProxyAgent2=require_proxy_agent();var Agent=require_agent();var DEFAULT_PORTS={"h\ +ttp:":80,"https:":443};var experimentalWarned=false;var EnvHttpProxyAgent=class extends DispatcherBase{#noProxyValue=null;#noProxyEntries=null;#opts=null;constructor(opts={}){super();this.#opts=opts;if(!experimentalWarned){ +experimentalWarned=true;process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"})}const{httpProxy,httpsProxy,noProxy,...agentOpts}=opts;this[kNoProxyAgent]= +new Agent(agentOpts);const HTTP_PROXY=httpProxy??process.env.http_proxy??process.env.HTTP_PROXY;if(HTTP_PROXY){this[kHttpProxyAgent]=new ProxyAgent2({...agentOpts,uri:HTTP_PROXY})}else{this[kHttpProxyAgent]= +this[kNoProxyAgent]}const HTTPS_PROXY=httpsProxy??process.env.https_proxy??process.env.HTTPS_PROXY;if(HTTPS_PROXY){this[kHttpsProxyAgent]=new ProxyAgent2({...agentOpts,uri:HTTPS_PROXY})}else{this[kHttpsProxyAgent]= +this[kHttpProxyAgent]}this.#parseNoProxy()}[kDispatch](opts,handler){const url=new URL(opts.origin);const agent=this.#getProxyAgentForUrl(url);return agent.dispatch(opts,handler)}async[kClose](){await this[kNoProxyAgent]. +close();if(!this[kHttpProxyAgent][kClosed]){await this[kHttpProxyAgent].close()}if(!this[kHttpsProxyAgent][kClosed]){await this[kHttpsProxyAgent].close()}}async[kDestroy](err){await this[kNoProxyAgent]. +destroy(err);if(!this[kHttpProxyAgent][kDestroyed]){await this[kHttpProxyAgent].destroy(err)}if(!this[kHttpsProxyAgent][kDestroyed]){await this[kHttpsProxyAgent].destroy(err)}}#getProxyAgentForUrl(url){ +let{protocol,host:hostname,port}=url;hostname=hostname.replace(/:\d*$/,"").toLowerCase();port=Number.parseInt(port,10)||DEFAULT_PORTS[protocol]||0;if(!this.#shouldProxy(hostname,port)){return this[kNoProxyAgent]} +if(protocol==="https:"){return this[kHttpsProxyAgent]}return this[kHttpProxyAgent]}#shouldProxy(hostname,port){if(this.#noProxyChanged){this.#parseNoProxy()}if(this.#noProxyEntries.length===0){return true} +if(this.#noProxyValue==="*"){return false}for(let i=0;i{this.aborted=true;if(this.abort){this.abort(reason)}else{this.reason=reason}})}onRequestSent(){if(this.handler.onRequestSent){this.handler.onRequestSent()}}onUpgrade(statusCode,headers,socket){ +if(this.handler.onUpgrade){this.handler.onUpgrade(statusCode,headers,socket)}}onConnect(abort){if(this.aborted){abort(this.reason)}else{this.abort=abort}}onBodySent(chunk){if(this.handler.onBodySent)return this. +handler.onBodySent(chunk)}static[kRetryHandlerDefaultRetry](err,{state,opts},cb){const{statusCode,code,headers}=err;const{method,retryOptions}=opts;const{maxRetries,minTimeout,maxTimeout,timeoutFactor, +statusCodes,errorCodes,methods}=retryOptions;const{counter}=state;if(code&&code!=="UND_ERR_REQ_RETRY"&&!errorCodes.includes(code)){cb(err);return}if(Array.isArray(methods)&&!methods.includes(method)){ +cb(err);return}if(statusCode!=null&&Array.isArray(statusCodes)&&!statusCodes.includes(statusCode)){cb(err);return}if(counter>maxRetries){cb(err);return}let retryAfterHeader=headers?.["retry-after"];if(retryAfterHeader){ +retryAfterHeader=Number(retryAfterHeader);retryAfterHeader=Number.isNaN(retryAfterHeader)?calculateRetryAfterHeader(retryAfterHeader):retryAfterHeader*1e3}const retryTimeout=retryAfterHeader>0?Math.min( +retryAfterHeader,maxTimeout):Math.min(minTimeout*timeoutFactor**(counter-1),maxTimeout);setTimeout(()=>cb(null),retryTimeout)}onHeaders(statusCode,rawHeaders,resume,statusMessage){const headers=parseHeaders( +rawHeaders);this.retryCount+=1;if(statusCode>=300){if(this.retryOpts.statusCodes.includes(statusCode)===false){return this.handler.onHeaders(statusCode,rawHeaders,resume,statusMessage)}else{this.abort( +new RequestRetryError("Request failed",statusCode,{headers,data:{count:this.retryCount}}));return false}}if(this.resume!=null){this.resume=null;if(statusCode!==206&&(this.start>0||statusCode!==200)){this. +abort(new RequestRetryError("server does not support the range header and the payload was partially consumed",statusCode,{headers,data:{count:this.retryCount}}));return false}const contentRange=parseRangeHeader( +headers["content-range"]);if(!contentRange){this.abort(new RequestRetryError("Content-Range mismatch",statusCode,{headers,data:{count:this.retryCount}}));return false}if(this.etag!=null&&this.etag!==headers. +etag){this.abort(new RequestRetryError("ETag mismatch",statusCode,{headers,data:{count:this.retryCount}}));return false}const contentLengthError=validatePartialResponseContentLength(headers,contentRange, +statusCode,this.retryCount);if(contentLengthError!=null){this.abort(contentLengthError);return false}const{start,size,end=size-1}=contentRange;assert(this.start===start,"content-range mismatch");assert( +this.end==null||this.end===end,"content-range mismatch");this.resume=resume;return true}if(this.end==null){if(statusCode===206){const range=parseRangeHeader(headers["content-range"]);if(range==null){return this. +handler.onHeaders(statusCode,rawHeaders,resume,statusMessage)}const contentLengthError=validatePartialResponseContentLength(headers,range,statusCode,this.retryCount);if(contentLengthError!=null){this. +abort(contentLengthError);return false}const{start,size,end=size-1}=range;assert(start!=null&&Number.isFinite(start),"content-range mismatch");assert(end!=null&&Number.isFinite(end),"invalid content-l\ +ength");this.start=start;this.end=end}if(this.end==null){const contentLength=headers["content-length"];this.end=contentLength!=null?Number(contentLength)-1:null}assert(Number.isFinite(this.start));assert( +this.end==null||Number.isFinite(this.end),"invalid content-length");this.resume=resume;this.etag=headers.etag!=null?headers.etag:null;if(this.etag!=null&&this.etag.startsWith("W/")){this.etag=null}return this. +handler.onHeaders(statusCode,rawHeaders,resume,statusMessage)}const err=new RequestRetryError("Request failed",statusCode,{headers,data:{count:this.retryCount}});this.abort(err);return false}onData(chunk){ +this.start+=chunk.length;return this.handler.onData(chunk)}onComplete(rawTrailers){this.retryCount=0;return this.handler.onComplete(rawTrailers)}onError(err){if(this.aborted||isDisturbed(this.opts.body)){ +return this.handler.onError(err)}if(this.retryCount-this.retryCountCheckpoint>0){this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint)}else{this.retryCount+=1}this.retryOpts. +retry(err,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},onRetry.bind(this));function onRetry(err2){if(err2!=null||this.aborted||isDisturbed(this.opts.body)){return this. +handler.onError(err2)}if(this.start!==0){const headers={range:`bytes=${this.start}-${this.end??""}`};if(this.etag!=null){headers["if-match"]=this.etag}this.opts={...this.opts,headers:{...this.opts.headers, +...headers}}}try{this.retryCountCheckpoint=this.retryCount;this.dispatch(this.opts,this)}catch(err3){this.handler.onError(err3)}}}};module.exports=RetryHandler}});var require_retry_agent=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/dispatcher/retry-agent.js"(exports,module){"use strict";var Dispatcher=require_dispatcher();var RetryHandler=require_retry_handler(); +var RetryAgent=class extends Dispatcher{#agent=null;#options=null;constructor(agent,options={}){super(options);this.#agent=agent;this.#options=options}dispatch(opts,handler){const retry=new RetryHandler( +{...opts,retryOptions:this.#options},{dispatch:this.#agent.dispatch.bind(this.#agent),handler});return this.#agent.dispatch(opts,retry)}close(){return this.#agent.close()}destroy(){return this.#agent. +destroy()}};module.exports=RetryAgent}});var require_readable=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/readable.js"(exports,module){"use strict";var assert=__require("node:assert");var{Readable}=__require("node:stream"); +var{RequestAbortedError,NotSupportedError,InvalidArgumentError,AbortError}=require_errors();var util=require_util();var{ReadableStreamFrom}=require_util();var kConsume=Symbol("kConsume");var kReading=Symbol( +"kReading");var kBody=Symbol("kBody");var kAbort=Symbol("kAbort");var kContentType=Symbol("kContentType");var kContentLength=Symbol("kContentLength");var noop=()=>{};var BodyReadable=class extends Readable{constructor({ +resume,abort,contentType="",contentLength,highWaterMark=64*1024}){super({autoDestroy:true,read:resume,highWaterMark});this._readableState.dataEmitted=false;this[kAbort]=abort;this[kConsume]=null;this[kBody]= +null;this[kContentType]=contentType;this[kContentLength]=contentLength;this[kReading]=false}destroy(err){if(!err&&!this._readableState.endEmitted){err=new RequestAbortedError}if(err){this[kAbort]()}return super. +destroy(err)}_destroy(err,callback){if(!this[kReading]){setImmediate(()=>{callback(err)})}else{callback(err)}}on(ev,...args){if(ev==="data"||ev==="readable"){this[kReading]=true}return super.on(ev,...args)}addListener(ev,...args){ +return this.on(ev,...args)}off(ev,...args){const ret=super.off(ev,...args);if(ev==="data"||ev==="readable"){this[kReading]=this.listenerCount("data")>0||this.listenerCount("readable")>0}return ret}removeListener(ev,...args){ +return this.off(ev,...args)}push(chunk){if(this[kConsume]&&chunk!==null){consumePush(this[kConsume],chunk);return this[kReading]?super.push(chunk):true}return super.push(chunk)}async text(){return consume( +this,"text")}async json(){return consume(this,"json")}async blob(){return consume(this,"blob")}async bytes(){return consume(this,"bytes")}async arrayBuffer(){return consume(this,"arrayBuffer")}async formData(){ +throw new NotSupportedError}get bodyUsed(){return util.isDisturbed(this)}get body(){if(!this[kBody]){this[kBody]=ReadableStreamFrom(this);if(this[kConsume]){this[kBody].getReader();assert(this[kBody]. +locked)}}return this[kBody]}async dump(opts){let limit=Number.isFinite(opts?.limit)?opts.limit:128*1024;const signal=opts?.signal;if(signal!=null&&(typeof signal!=="object"||!("aborted"in signal))){throw new InvalidArgumentError( +"signal must be an AbortSignal")}signal?.throwIfAborted();if(this._readableState.closeEmitted){return null}return await new Promise((resolve,reject)=>{if(this[kContentLength]>limit){this.destroy(new AbortError)} +const onAbort=()=>{this.destroy(signal.reason??new AbortError)};signal?.addEventListener("abort",onAbort);this.on("close",function(){signal?.removeEventListener("abort",onAbort);if(signal?.aborted){reject( +signal.reason??new AbortError)}else{resolve(null)}}).on("error",noop).on("data",function(chunk){limit-=chunk.length;if(limit<=0){this.destroy()}}).resume()})}};function isLocked(self){return self[kBody]&& +self[kBody].locked===true||self[kConsume]}function isUnusable(self){return util.isDisturbed(self)||isLocked(self)}async function consume(stream,type){assert(!stream[kConsume]);return new Promise((resolve,reject)=>{ +if(isUnusable(stream)){const rState=stream._readableState;if(rState.destroyed&&rState.closeEmitted===false){stream.on("error",err=>{reject(err)}).on("close",()=>{reject(new TypeError("unusable"))})}else{ +reject(rState.errored??new TypeError("unusable"))}}else{queueMicrotask(()=>{stream[kConsume]={type,stream,resolve,reject,length:0,body:[]};stream.on("error",function(err){consumeFinish(this[kConsume], +err)}).on("close",function(){if(this[kConsume].body!==null){consumeFinish(this[kConsume],new RequestAbortedError)}});consumeStart(stream[kConsume])})}})}function consumeStart(consume2){if(consume2.body=== +null){return}const{_readableState:state}=consume2.stream;if(state.bufferIndex){const start=state.bufferIndex;const end=state.buffer.length;for(let n=start;n2&&buffer[0]===239&&buffer[1]===187&&buffer[2]===191?3:0;return buffer.utf8Slice(start,bufferLength)}function chunksConcat(chunks,length){if(chunks.length===0||length=== +0){return new Uint8Array(0)}if(chunks.length===1){return new Uint8Array(chunks[0])}const buffer=new Uint8Array(Buffer.allocUnsafeSlow(length).buffer);let offset=0;for(let i=0;iCHUNK_LIMIT){chunks=[];length=0;break}}}catch{chunks=[];length=0}const message=`Response status code ${statusCode}${statusMessage? +`: ${statusMessage}`:""}`;if(statusCode===204||!contentType||!length){queueMicrotask(()=>callback(new ResponseStatusCodeError(message,statusCode,headers)));return}const stackTraceLimit=Error.stackTraceLimit; +Error.stackTraceLimit=0;let payload;try{if(isContentTypeApplicationJson(contentType)){payload=JSON.parse(chunksDecode(chunks,length))}else if(isContentTypeText(contentType)){payload=chunksDecode(chunks, +length)}}catch{}finally{Error.stackTraceLimit=stackTraceLimit}queueMicrotask(()=>callback(new ResponseStatusCodeError(message,statusCode,headers,payload)))}var isContentTypeApplicationJson=contentType=>{ +return contentType.length>15&&contentType[11]==="/"&&contentType[0]==="a"&&contentType[1]==="p"&&contentType[2]==="p"&&contentType[3]==="l"&&contentType[4]==="i"&&contentType[5]==="c"&&contentType[6]=== +"a"&&contentType[7]==="t"&&contentType[8]==="i"&&contentType[9]==="o"&&contentType[10]==="n"&&contentType[12]==="j"&&contentType[13]==="s"&&contentType[14]==="o"&&contentType[15]==="n"};var isContentTypeText=contentType=>{ +return contentType.length>4&&contentType[4]==="/"&&contentType[0]==="t"&&contentType[1]==="e"&&contentType[2]==="x"&&contentType[3]==="t"};module.exports={getResolveErrorBodyCallback,isContentTypeApplicationJson, +isContentTypeText}}});var require_api_request=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-request.js"(exports,module){"use strict";var assert=__require("node:assert");var{Readable}=require_readable(); +var{InvalidArgumentError,RequestAbortedError}=require_errors();var util=require_util();var{getResolveErrorBodyCallback}=require_util3();var{AsyncResource}=__require("node:async_hooks");var RequestHandler=class extends AsyncResource{constructor(opts,callback){ +if(!opts||typeof opts!=="object"){throw new InvalidArgumentError("invalid opts")}const{signal,method,opaque,body,onInfo,responseHeaders,throwOnError,highWaterMark}=opts;try{if(typeof callback!=="funct\ +ion"){throw new InvalidArgumentError("invalid callback")}if(highWaterMark&&(typeof highWaterMark!=="number"||highWaterMark<0)){throw new InvalidArgumentError("invalid highWaterMark")}if(signal&&typeof signal. +on!=="function"&&typeof signal.addEventListener!=="function"){throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget")}if(method==="CONNECT"){throw new InvalidArgumentError("inv\ +alid method")}if(onInfo&&typeof onInfo!=="function"){throw new InvalidArgumentError("invalid onInfo callback")}super("UNDICI_REQUEST")}catch(err){if(util.isStream(body)){util.destroy(body.on("error",util. +nop),err)}throw err}this.method=method;this.responseHeaders=responseHeaders||null;this.opaque=opaque||null;this.callback=callback;this.res=null;this.abort=null;this.body=body;this.trailers={};this.context= +null;this.onInfo=onInfo||null;this.throwOnError=throwOnError;this.highWaterMark=highWaterMark;this.signal=signal;this.reason=null;this.removeAbortListener=null;if(util.isStream(body)){body.on("error", +err=>{this.onError(err)})}if(this.signal){if(this.signal.aborted){this.reason=this.signal.reason??new RequestAbortedError}else{this.removeAbortListener=util.addAbortListener(this.signal,()=>{this.reason= +this.signal.reason??new RequestAbortedError;if(this.res){util.destroy(this.res.on("error",util.nop),this.reason)}else if(this.abort){this.abort(this.reason)}if(this.removeAbortListener){this.res?.off( +"close",this.removeAbortListener);this.removeAbortListener();this.removeAbortListener=null}})}}}onConnect(abort,context){if(this.reason){abort(this.reason);return}assert(this.callback);this.abort=abort; +this.context=context}onHeaders(statusCode,rawHeaders,resume,statusMessage){const{callback,opaque,abort,context,responseHeaders,highWaterMark}=this;const headers=responseHeaders==="raw"?util.parseRawHeaders( +rawHeaders):util.parseHeaders(rawHeaders);if(statusCode<200){if(this.onInfo){this.onInfo({statusCode,headers})}return}const parsedHeaders=responseHeaders==="raw"?util.parseHeaders(rawHeaders):headers; +const contentType=parsedHeaders["content-type"];const contentLength=parsedHeaders["content-length"];const res=new Readable({resume,abort,contentType,contentLength:this.method!=="HEAD"&&contentLength?Number( +contentLength):null,highWaterMark});if(this.removeAbortListener){res.on("close",this.removeAbortListener)}this.callback=null;this.res=res;if(callback!==null){if(this.throwOnError&&statusCode>=400){this. +runInAsyncScope(getResolveErrorBodyCallback,null,{callback,body:res,contentType,statusCode,statusMessage,headers})}else{this.runInAsyncScope(callback,null,null,{statusCode,headers,trailers:this.trailers, +opaque,body:res,context})}}}onData(chunk){return this.res.push(chunk)}onComplete(trailers){util.parseHeaders(trailers,this.trailers);this.res.push(null)}onError(err){const{res,callback,body,opaque}=this; +if(callback){this.callback=null;queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})}if(res){this.res=null;queueMicrotask(()=>{util.destroy(res,err)})}if(body){this.body=null;util.destroy( +body,err)}if(this.removeAbortListener){res?.off("close",this.removeAbortListener);this.removeAbortListener();this.removeAbortListener=null}}};function request(opts,callback){if(callback===void 0){return new Promise( +(resolve,reject)=>{request.call(this,opts,(err,data)=>{return err?reject(err):resolve(data)})})}try{this.dispatch(opts,new RequestHandler(opts,callback))}catch(err){if(typeof callback!=="function"){throw err} +const opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=request;module.exports.RequestHandler=RequestHandler}});var require_abort_signal=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/abort-signal.js"(exports,module){var{addAbortListener}=require_util();var{RequestAbortedError}=require_errors(); +var kListener=Symbol("kListener");var kSignal=Symbol("kSignal");function abort(self){if(self.abort){self.abort(self[kSignal]?.reason)}else{self.reason=self[kSignal]?.reason??new RequestAbortedError}removeSignal( +self)}function addSignal(self,signal){self.reason=null;self[kSignal]=null;self[kListener]=null;if(!signal){return}if(signal.aborted){abort(self);return}self[kSignal]=signal;self[kListener]=()=>{abort( +self)};addAbortListener(self[kSignal],self[kListener])}function removeSignal(self){if(!self[kSignal]){return}if("removeEventListener"in self[kSignal]){self[kSignal].removeEventListener("abort",self[kListener])}else{ +self[kSignal].removeListener("abort",self[kListener])}self[kSignal]=null;self[kListener]=null}module.exports={addSignal,removeSignal}}});var require_api_stream=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-stream.js"(exports,module){"use strict";var assert=__require("node:assert");var{finished,PassThrough}=__require("node:stream"); +var{InvalidArgumentError,InvalidReturnValueError}=require_errors();var util=require_util();var{getResolveErrorBodyCallback}=require_util3();var{AsyncResource}=__require("node:async_hooks");var{addSignal, +removeSignal}=require_abort_signal();var StreamHandler=class extends AsyncResource{constructor(opts,factory,callback){if(!opts||typeof opts!=="object"){throw new InvalidArgumentError("invalid opts")}const{ +signal,method,opaque,body,onInfo,responseHeaders,throwOnError}=opts;try{if(typeof callback!=="function"){throw new InvalidArgumentError("invalid callback")}if(typeof factory!=="function"){throw new InvalidArgumentError( +"invalid factory")}if(signal&&typeof signal.on!=="function"&&typeof signal.addEventListener!=="function"){throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget")}if(method==="C\ +ONNECT"){throw new InvalidArgumentError("invalid method")}if(onInfo&&typeof onInfo!=="function"){throw new InvalidArgumentError("invalid onInfo callback")}super("UNDICI_STREAM")}catch(err){if(util.isStream( +body)){util.destroy(body.on("error",util.nop),err)}throw err}this.responseHeaders=responseHeaders||null;this.opaque=opaque||null;this.factory=factory;this.callback=callback;this.res=null;this.abort=null; +this.context=null;this.trailers=null;this.body=body;this.onInfo=onInfo||null;this.throwOnError=throwOnError||false;if(util.isStream(body)){body.on("error",err=>{this.onError(err)})}addSignal(this,signal)}onConnect(abort,context){ +if(this.reason){abort(this.reason);return}assert(this.callback);this.abort=abort;this.context=context}onHeaders(statusCode,rawHeaders,resume,statusMessage){const{factory,opaque,context,callback,responseHeaders}=this; +const headers=responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):util.parseHeaders(rawHeaders);if(statusCode<200){if(this.onInfo){this.onInfo({statusCode,headers})}return}this.factory=null;let res; +if(this.throwOnError&&statusCode>=400){const parsedHeaders=responseHeaders==="raw"?util.parseHeaders(rawHeaders):headers;const contentType=parsedHeaders["content-type"];res=new PassThrough;this.callback= +null;this.runInAsyncScope(getResolveErrorBodyCallback,null,{callback,body:res,contentType,statusCode,statusMessage,headers})}else{if(factory===null){return}res=this.runInAsyncScope(factory,null,{statusCode, +headers,opaque,context});if(!res||typeof res.write!=="function"||typeof res.end!=="function"||typeof res.on!=="function"){throw new InvalidReturnValueError("expected Writable")}finished(res,{readable:false}, +err=>{const{callback:callback2,res:res2,opaque:opaque2,trailers,abort}=this;this.res=null;if(err||!res2.readable){util.destroy(res2,err)}this.callback=null;this.runInAsyncScope(callback2,null,err||null, +{opaque:opaque2,trailers});if(err){abort()}})}res.on("drain",resume);this.res=res;const needDrain=res.writableNeedDrain!==void 0?res.writableNeedDrain:res._writableState?.needDrain;return needDrain!== +true}onData(chunk){const{res}=this;return res?res.write(chunk):true}onComplete(trailers){const{res}=this;removeSignal(this);if(!res){return}this.trailers=util.parseHeaders(trailers);res.end()}onError(err){ +const{res,callback,opaque,body}=this;removeSignal(this);this.factory=null;if(res){this.res=null;util.destroy(res,err)}else if(callback){this.callback=null;queueMicrotask(()=>{this.runInAsyncScope(callback, +null,err,{opaque})})}if(body){this.body=null;util.destroy(body,err)}}};function stream(opts,factory,callback){if(callback===void 0){return new Promise((resolve,reject)=>{stream.call(this,opts,factory, +(err,data)=>{return err?reject(err):resolve(data)})})}try{this.dispatch(opts,new StreamHandler(opts,factory,callback))}catch(err){if(typeof callback!=="function"){throw err}const opaque=opts?.opaque;queueMicrotask( +()=>callback(err,{opaque}))}}module.exports=stream}});var require_api_pipeline=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-pipeline.js"(exports,module){"use strict";var{Readable,Duplex,PassThrough}=__require("node:stream"); +var{InvalidArgumentError,InvalidReturnValueError,RequestAbortedError}=require_errors();var util=require_util();var{AsyncResource}=__require("node:async_hooks");var{addSignal,removeSignal}=require_abort_signal(); +var assert=__require("node:assert");var kResume=Symbol("resume");var PipelineRequest=class extends Readable{constructor(){super({autoDestroy:true});this[kResume]=null}_read(){const{[kResume]:resume}=this; +if(resume){this[kResume]=null;resume()}}_destroy(err,callback){this._read();callback(err)}};var PipelineResponse=class extends Readable{constructor(resume){super({autoDestroy:true});this[kResume]=resume}_read(){ +this[kResume]()}_destroy(err,callback){if(!err&&!this._readableState.endEmitted){err=new RequestAbortedError}callback(err)}};var PipelineHandler=class extends AsyncResource{constructor(opts,handler){if(!opts|| +typeof opts!=="object"){throw new InvalidArgumentError("invalid opts")}if(typeof handler!=="function"){throw new InvalidArgumentError("invalid handler")}const{signal,method,opaque,onInfo,responseHeaders}=opts; +if(signal&&typeof signal.on!=="function"&&typeof signal.addEventListener!=="function"){throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget")}if(method==="CONNECT"){throw new InvalidArgumentError( +"invalid method")}if(onInfo&&typeof onInfo!=="function"){throw new InvalidArgumentError("invalid onInfo callback")}super("UNDICI_PIPELINE");this.opaque=opaque||null;this.responseHeaders=responseHeaders|| +null;this.handler=handler;this.abort=null;this.context=null;this.onInfo=onInfo||null;this.req=new PipelineRequest().on("error",util.nop);this.ret=new Duplex({readableObjectMode:opts.objectMode,autoDestroy:true, +read:()=>{const{body}=this;if(body?.resume){body.resume()}},write:(chunk,encoding,callback)=>{const{req}=this;if(req.push(chunk,encoding)||req._readableState.destroyed){callback()}else{req[kResume]=callback}}, +destroy:(err,callback)=>{const{body,req,res,ret,abort}=this;if(!err&&!ret._readableState.endEmitted){err=new RequestAbortedError}if(abort&&err){abort()}util.destroy(body,err);util.destroy(req,err);util. +destroy(res,err);removeSignal(this);callback(err)}}).on("prefinish",()=>{const{req}=this;req.push(null)});this.res=null;addSignal(this,signal)}onConnect(abort,context){const{ret,res}=this;if(this.reason){ +abort(this.reason);return}assert(!res,"pipeline cannot be retried");assert(!ret.destroyed);this.abort=abort;this.context=context}onHeaders(statusCode,rawHeaders,resume){const{opaque,handler,context}=this; +if(statusCode<200){if(this.onInfo){const headers=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):util.parseHeaders(rawHeaders);this.onInfo({statusCode,headers})}return}this.res=new PipelineResponse( +resume);let body;try{this.handler=null;const headers=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):util.parseHeaders(rawHeaders);body=this.runInAsyncScope(handler,null,{statusCode,headers, +opaque,body:this.res,context})}catch(err){this.res.on("error",util.nop);throw err}if(!body||typeof body.on!=="function"){throw new InvalidReturnValueError("expected Readable")}body.on("data",chunk=>{const{ +ret,body:body2}=this;if(!ret.push(chunk)&&body2.pause){body2.pause()}}).on("error",err=>{const{ret}=this;util.destroy(ret,err)}).on("end",()=>{const{ret}=this;ret.push(null)}).on("close",()=>{const{ret}=this; +if(!ret._readableState.ended){util.destroy(ret,new RequestAbortedError)}});this.body=body}onData(chunk){const{res}=this;return res.push(chunk)}onComplete(trailers){const{res}=this;res.push(null)}onError(err){ +const{ret}=this;this.handler=null;util.destroy(ret,err)}};function pipeline(opts,handler){try{const pipelineHandler=new PipelineHandler(opts,handler);this.dispatch({...opts,body:pipelineHandler.req},pipelineHandler); +return pipelineHandler.ret}catch(err){return new PassThrough().destroy(err)}}module.exports=pipeline}});var require_api_upgrade=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-upgrade.js"(exports,module){"use strict";var{InvalidArgumentError,SocketError}=require_errors();var{ +AsyncResource}=__require("node:async_hooks");var util=require_util();var{addSignal,removeSignal}=require_abort_signal();var assert=__require("node:assert");var UpgradeHandler=class extends AsyncResource{constructor(opts,callback){ +if(!opts||typeof opts!=="object"){throw new InvalidArgumentError("invalid opts")}if(typeof callback!=="function"){throw new InvalidArgumentError("invalid callback")}const{signal,opaque,responseHeaders}=opts; +if(signal&&typeof signal.on!=="function"&&typeof signal.addEventListener!=="function"){throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget")}super("UNDICI_UPGRADE");this.responseHeaders= +responseHeaders||null;this.opaque=opaque||null;this.callback=callback;this.abort=null;this.context=null;addSignal(this,signal)}onConnect(abort,context){if(this.reason){abort(this.reason);return}assert( +this.callback);this.abort=abort;this.context=null}onHeaders(){throw new SocketError("bad upgrade",null)}onUpgrade(statusCode,rawHeaders,socket){assert(statusCode===101);const{callback,opaque,context}=this; +removeSignal(this);this.callback=null;const headers=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):util.parseHeaders(rawHeaders);this.runInAsyncScope(callback,null,null,{headers,socket, +opaque,context})}onError(err){const{callback,opaque}=this;removeSignal(this);if(callback){this.callback=null;queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})}}};function upgrade(opts,callback){ +if(callback===void 0){return new Promise((resolve,reject)=>{upgrade.call(this,opts,(err,data)=>{return err?reject(err):resolve(data)})})}try{const upgradeHandler=new UpgradeHandler(opts,callback);this. +dispatch({...opts,method:opts.method||"GET",upgrade:opts.protocol||"Websocket"},upgradeHandler)}catch(err){if(typeof callback!=="function"){throw err}const opaque=opts?.opaque;queueMicrotask(()=>callback( +err,{opaque}))}}module.exports=upgrade}});var require_api_connect=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/api-connect.js"(exports,module){"use strict";var assert=__require("node:assert");var{AsyncResource}=__require("node:async_hooks"); +var{InvalidArgumentError,SocketError}=require_errors();var util=require_util();var{addSignal,removeSignal}=require_abort_signal();var ConnectHandler=class extends AsyncResource{constructor(opts,callback){ +if(!opts||typeof opts!=="object"){throw new InvalidArgumentError("invalid opts")}if(typeof callback!=="function"){throw new InvalidArgumentError("invalid callback")}const{signal,opaque,responseHeaders}=opts; +if(signal&&typeof signal.on!=="function"&&typeof signal.addEventListener!=="function"){throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget")}super("UNDICI_CONNECT");this.opaque= +opaque||null;this.responseHeaders=responseHeaders||null;this.callback=callback;this.abort=null;addSignal(this,signal)}onConnect(abort,context){if(this.reason){abort(this.reason);return}assert(this.callback); +this.abort=abort;this.context=context}onHeaders(){throw new SocketError("bad connect",null)}onUpgrade(statusCode,rawHeaders,socket){const{callback,opaque,context}=this;removeSignal(this);this.callback= +null;let headers=rawHeaders;if(headers!=null){headers=this.responseHeaders==="raw"?util.parseRawHeaders(rawHeaders):util.parseHeaders(rawHeaders)}this.runInAsyncScope(callback,null,null,{statusCode,headers, +socket,opaque,context})}onError(err){const{callback,opaque}=this;removeSignal(this);if(callback){this.callback=null;queueMicrotask(()=>{this.runInAsyncScope(callback,null,err,{opaque})})}}};function connect(opts,callback){ +if(callback===void 0){return new Promise((resolve,reject)=>{connect.call(this,opts,(err,data)=>{return err?reject(err):resolve(data)})})}try{const connectHandler=new ConnectHandler(opts,callback);this. +dispatch({...opts,method:"CONNECT"},connectHandler)}catch(err){if(typeof callback!=="function"){throw err}const opaque=opts?.opaque;queueMicrotask(()=>callback(err,{opaque}))}}module.exports=connect}});var require_api=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/api/index.js"(exports,module){"use strict";module.exports.request=require_api_request();module.exports.stream=require_api_stream(); +module.exports.pipeline=require_api_pipeline();module.exports.upgrade=require_api_upgrade();module.exports.connect=require_api_connect()}});var require_mock_errors=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-errors.js"(exports,module){"use strict";var{UndiciError}=require_errors();var kMockNotMatchedError=Symbol. +for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED");var MockNotMatchedError=class _MockNotMatchedError extends UndiciError{constructor(message){super(message);Error.captureStackTrace(this,_MockNotMatchedError); +this.name="MockNotMatchedError";this.message=message||"The request does not match any registered mock dispatches";this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](instance){return instance&& +instance[kMockNotMatchedError]===true}[kMockNotMatchedError]=true};module.exports={MockNotMatchedError}}});var require_mock_symbols=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-symbols.js"(exports,module){"use strict";module.exports={kAgent:Symbol("agent"),kOptions:Symbol( +"options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol( +"content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol( +"original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}}});var require_mock_utils=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-utils.js"(exports,module){"use strict";var{MockNotMatchedError}=require_mock_errors();var{kDispatches, +kMockAgent,kOriginalDispatch,kOrigin,kGetNetConnect}=require_mock_symbols();var{buildURL}=require_util();var{STATUS_CODES}=__require("node:http");var{types:{isPromise}}=__require("node:util");function matchValue(match,value){ +if(typeof match==="string"){return match===value}if(match instanceof RegExp){return match.test(value)}if(typeof match==="function"){return match(value)===true}return false}function lowerCaseEntries(headers){ +return Object.fromEntries(Object.entries(headers).map(([headerName,headerValue])=>{return[headerName.toLocaleLowerCase(),headerValue]}))}function getHeaderByName(headers,key){if(Array.isArray(headers)){ +for(let i=0;i!consumed).filter(({path:path2})=>matchValue(safeUrl(path2),resolvedPath));if(matchedMockDispatches.length=== +0){throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`)}matchedMockDispatches=matchedMockDispatches.filter(({method})=>matchValue(method,key.method));if(matchedMockDispatches. +length===0){throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`)}matchedMockDispatches=matchedMockDispatches.filter(({body})=>typeof body!=="\ +undefined"?matchValue(body,key.body):true);if(matchedMockDispatches.length===0){throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`)}matchedMockDispatches= +matchedMockDispatches.filter(mockDispatch2=>matchHeaders(mockDispatch2,key.headers));if(matchedMockDispatches.length===0){const headers=typeof key.headers==="object"?JSON.stringify(key.headers):key.headers; +throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`)}return matchedMockDispatches[0]}function addMockDispatch(mockDispatches,key,data){const baseData={ +timesInvoked:0,times:1,persist:false,consumed:false};const replyData=typeof data==="function"?{callback:data}:{...data};const newMockDispatch={...baseData,...key,pending:true,data:{error:null,...replyData}}; +mockDispatches.push(newMockDispatch);return newMockDispatch}function deleteMockDispatch(mockDispatches,key){const index=mockDispatches.findIndex(dispatch=>{if(!dispatch.consumed){return false}return matchKey( +dispatch,key)});if(index!==-1){mockDispatches.splice(index,1)}}function buildKey(opts){const{path:path2,method,body,headers,query}=opts;return{path:path2,method,body,headers,query}}function generateKeyValues(data){ +const keys=Object.keys(data);const result=[];for(let i=0;i=times;mockDispatch2.pending=timesInvoked0){setTimeout(()=>{handleReply(this[kDispatches])},delay)}else{handleReply(this[kDispatches])} +function handleReply(mockDispatches,_data=data){const optsHeaders=Array.isArray(opts.headers)?buildHeadersFromArray(opts.headers):opts.headers;const body=typeof _data==="function"?_data({...opts,headers:optsHeaders}): +_data;if(isPromise(body)){body.then(newData=>handleReply(mockDispatches,newData));return}const responseData=getResponseData(body);const responseHeaders=generateKeyValues(headers);const responseTrailers=generateKeyValues( +trailers);handler.onConnect?.(err=>handler.onError(err),null);handler.onHeaders?.(statusCode,responseHeaders,resume,getStatusText(statusCode));handler.onData?.(Buffer.from(responseData));handler.onComplete?.( +responseTrailers);deleteMockDispatch(mockDispatches,key)}function resume(){}return true}function buildMockDispatch(){const agent=this[kMockAgent];const origin=this[kOrigin];const originalDispatch=this[kOriginalDispatch]; +return function dispatch(opts,handler){if(agent.isMockActive){try{mockDispatch.call(this,opts,handler)}catch(error2){if(error2 instanceof MockNotMatchedError){const netConnect=agent[kGetNetConnect](); +if(netConnect===false){throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`)}if(checkNetConnect(netConnect,origin)){originalDispatch. +call(this,opts,handler)}else{throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`)}}else{throw error2}}}else{ +originalDispatch.call(this,opts,handler)}}}function checkNetConnect(netConnect,origin){const url=new URL(origin);if(netConnect===true){return true}else if(Array.isArray(netConnect)&&netConnect.some(matcher=>matchValue( +matcher,url.host))){return true}return false}function buildMockOptions(opts){if(opts){const{agent,...mockOptions}=opts;return mockOptions}}module.exports={getResponseData,getMockDispatch,addMockDispatch, +deleteMockDispatch,buildKey,generateKeyValues,matchValue,getResponse,getStatusText,mockDispatch,buildMockDispatch,checkNetConnect,buildMockOptions,getHeaderByName,buildHeadersFromArray}}});var require_mock_interceptor=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-interceptor.js"(exports,module){"use strict";var{getResponseData,buildKey,addMockDispatch}=require_mock_utils(); +var{kDispatches,kDispatchKey,kDefaultHeaders,kDefaultTrailers,kContentLength,kMockDispatch}=require_mock_symbols();var{InvalidArgumentError}=require_errors();var{buildURL}=require_util();var MockScope=class{constructor(mockDispatch){ +this[kMockDispatch]=mockDispatch}delay(waitInMs){if(typeof waitInMs!=="number"||!Number.isInteger(waitInMs)||waitInMs<=0){throw new InvalidArgumentError("waitInMs must be a valid integer > 0")}this[kMockDispatch]. +delay=waitInMs;return this}persist(){this[kMockDispatch].persist=true;return this}times(repeatTimes){if(typeof repeatTimes!=="number"||!Number.isInteger(repeatTimes)||repeatTimes<=0){throw new InvalidArgumentError( +"repeatTimes must be a valid integer > 0")}this[kMockDispatch].times=repeatTimes;return this}};var MockInterceptor=class{constructor(opts,mockDispatches){if(typeof opts!=="object"){throw new InvalidArgumentError( +"opts must be an object")}if(typeof opts.path==="undefined"){throw new InvalidArgumentError("opts.path must be defined")}if(typeof opts.method==="undefined"){opts.method="GET"}if(typeof opts.path==="s\ +tring"){if(opts.query){opts.path=buildURL(opts.path,opts.query)}else{const parsedURL=new URL(opts.path,"data://");opts.path=parsedURL.pathname+parsedURL.search}}if(typeof opts.method==="string"){opts. +method=opts.method.toUpperCase()}this[kDispatchKey]=buildKey(opts);this[kDispatches]=mockDispatches;this[kDefaultHeaders]={};this[kDefaultTrailers]={};this[kContentLength]=false}createMockScopeDispatchData({ +statusCode,data,responseOptions}){const responseData=getResponseData(data);const contentLength=this[kContentLength]?{"content-length":responseData.length}:{};const headers={...this[kDefaultHeaders],...contentLength, +...responseOptions.headers};const trailers={...this[kDefaultTrailers],...responseOptions.trailers};return{statusCode,data,headers,trailers}}validateReplyParameters(replyParameters){if(typeof replyParameters. +statusCode==="undefined"){throw new InvalidArgumentError("statusCode must be defined")}if(typeof replyParameters.responseOptions!=="object"||replyParameters.responseOptions===null){throw new InvalidArgumentError( +"responseOptions must be an object")}}reply(replyOptionsCallbackOrStatusCode){if(typeof replyOptionsCallbackOrStatusCode==="function"){const wrappedDefaultsCallback=opts=>{const resolvedData=replyOptionsCallbackOrStatusCode( +opts);if(typeof resolvedData!=="object"||resolvedData===null){throw new InvalidArgumentError("reply options callback must return an object")}const replyParameters2={data:"",responseOptions:{},...resolvedData}; +this.validateReplyParameters(replyParameters2);return{...this.createMockScopeDispatchData(replyParameters2)}};const newMockDispatch2=addMockDispatch(this[kDispatches],this[kDispatchKey],wrappedDefaultsCallback); +return new MockScope(newMockDispatch2)}const replyParameters={statusCode:replyOptionsCallbackOrStatusCode,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]}; +this.validateReplyParameters(replyParameters);const dispatchData=this.createMockScopeDispatchData(replyParameters);const newMockDispatch=addMockDispatch(this[kDispatches],this[kDispatchKey],dispatchData); +return new MockScope(newMockDispatch)}replyWithError(error2){if(typeof error2==="undefined"){throw new InvalidArgumentError("error must be defined")}const newMockDispatch=addMockDispatch(this[kDispatches], +this[kDispatchKey],{error:error2});return new MockScope(newMockDispatch)}defaultReplyHeaders(headers){if(typeof headers==="undefined"){throw new InvalidArgumentError("headers must be defined")}this[kDefaultHeaders]= +headers;return this}defaultReplyTrailers(trailers){if(typeof trailers==="undefined"){throw new InvalidArgumentError("trailers must be defined")}this[kDefaultTrailers]=trailers;return this}replyContentLength(){ +this[kContentLength]=true;return this}};module.exports.MockInterceptor=MockInterceptor;module.exports.MockScope=MockScope}});var require_mock_client=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-client.js"(exports,module){"use strict";var{promisify}=__require("node:util");var Client=require_client(); +var{buildMockDispatch}=require_mock_utils();var{kDispatches,kMockAgent,kClose,kOriginalClose,kOrigin,kOriginalDispatch,kConnected}=require_mock_symbols();var{MockInterceptor}=require_mock_interceptor(); +var Symbols=require_symbols();var{InvalidArgumentError}=require_errors();var MockClient=class extends Client{constructor(origin,opts){super(origin,opts);if(!opts||!opts.agent||typeof opts.agent.dispatch!== +"function"){throw new InvalidArgumentError("Argument opts.agent must implement Agent")}this[kMockAgent]=opts.agent;this[kOrigin]=origin;this[kDispatches]=[];this[kConnected]=1;this[kOriginalDispatch]= +this.dispatch;this[kOriginalClose]=this.close.bind(this);this.dispatch=buildMockDispatch.call(this);this.close=this[kClose]}get[Symbols.kConnected](){return this[kConnected]}intercept(opts){return new MockInterceptor( +opts,this[kDispatches])}async[kClose](){await promisify(this[kOriginalClose])();this[kConnected]=0;this[kMockAgent][Symbols.kClients].delete(this[kOrigin])}};module.exports=MockClient}});var require_mock_pool=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-pool.js"(exports,module){"use strict";var{promisify}=__require("node:util");var Pool=require_pool(); +var{buildMockDispatch}=require_mock_utils();var{kDispatches,kMockAgent,kClose,kOriginalClose,kOrigin,kOriginalDispatch,kConnected}=require_mock_symbols();var{MockInterceptor}=require_mock_interceptor(); +var Symbols=require_symbols();var{InvalidArgumentError}=require_errors();var MockPool=class extends Pool{constructor(origin,opts){super(origin,opts);if(!opts||!opts.agent||typeof opts.agent.dispatch!== +"function"){throw new InvalidArgumentError("Argument opts.agent must implement Agent")}this[kMockAgent]=opts.agent;this[kOrigin]=origin;this[kDispatches]=[];this[kConnected]=1;this[kOriginalDispatch]= +this.dispatch;this[kOriginalClose]=this.close.bind(this);this.dispatch=buildMockDispatch.call(this);this.close=this[kClose]}get[Symbols.kConnected](){return this[kConnected]}intercept(opts){return new MockInterceptor( +opts,this[kDispatches])}async[kClose](){await promisify(this[kOriginalClose])();this[kConnected]=0;this[kMockAgent][Symbols.kClients].delete(this[kOrigin])}};module.exports=MockPool}});var require_pluralizer=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/pluralizer.js"(exports,module){"use strict";var singulars={pronoun:"it",is:"is",was:"was",this:"this"}; +var plurals={pronoun:"they",is:"are",was:"were",this:"these"};module.exports=class Pluralizer{constructor(singular,plural){this.singular=singular;this.plural=plural}pluralize(count){const one=count=== +1;const keys=one?singulars:plurals;const noun=one?this.singular:this.plural;return{...keys,count,noun}}}}});var require_pending_interceptors_formatter=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports,module){"use strict";var{Transform}=__require("node:stream"); +var{Console}=__require("node:console");var PERSISTENT=process.versions.icu?"\u2705":"Y ";var NOT_PERSISTENT=process.versions.icu?"\u274C":"N ";module.exports=class PendingInterceptorsFormatter{constructor({ +disableColors}={}){this.transform=new Transform({transform(chunk,_enc,cb){cb(null,chunk)}});this.logger=new Console({stdout:this.transform,inspectOptions:{colors:!disableColors&&!process.env.CI}})}format(pendingInterceptors){ +const withPrettyHeaders=pendingInterceptors.map(({method,path:path2,data:{statusCode},persist,times,timesInvoked,origin})=>({Method:method,Origin:origin,Path:path2,"Status code":statusCode,Persistent:persist? +PERSISTENT:NOT_PERSISTENT,Invocations:timesInvoked,Remaining:persist?Infinity:times-timesInvoked}));this.logger.table(withPrettyHeaders);return this.transform.read().toString()}}}});var require_mock_agent=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/mock/mock-agent.js"(exports,module){"use strict";var{kClients}=require_symbols();var Agent=require_agent(); +var{kAgent,kMockAgentSet,kMockAgentGet,kDispatches,kIsMockActive,kNetConnect,kGetNetConnect,kOptions,kFactory}=require_mock_symbols();var MockClient=require_mock_client();var MockPool=require_mock_pool(); +var{matchValue,buildMockOptions}=require_mock_utils();var{InvalidArgumentError,UndiciError}=require_errors();var Dispatcher=require_dispatcher();var Pluralizer=require_pluralizer();var PendingInterceptorsFormatter=require_pending_interceptors_formatter(); +var MockAgent=class extends Dispatcher{constructor(opts){super(opts);this[kNetConnect]=true;this[kIsMockActive]=true;if(opts?.agent&&typeof opts.agent.dispatch!=="function"){throw new InvalidArgumentError( +"Argument opts.agent must implement Agent")}const agent=opts?.agent?opts.agent:new Agent(opts);this[kAgent]=agent;this[kClients]=agent[kClients];this[kOptions]=buildMockOptions(opts)}get(origin){let dispatcher=this[kMockAgentGet]( +origin);if(!dispatcher){dispatcher=this[kFactory](origin);this[kMockAgentSet](origin,dispatcher)}return dispatcher}dispatch(opts,handler){this.get(opts.origin);return this[kAgent].dispatch(opts,handler)}async close(){ +await this[kAgent].close();this[kClients].clear()}deactivate(){this[kIsMockActive]=false}activate(){this[kIsMockActive]=true}enableNetConnect(matcher){if(typeof matcher==="string"||typeof matcher==="f\ +unction"||matcher instanceof RegExp){if(Array.isArray(this[kNetConnect])){this[kNetConnect].push(matcher)}else{this[kNetConnect]=[matcher]}}else if(typeof matcher==="undefined"){this[kNetConnect]=true}else{ +throw new InvalidArgumentError("Unsupported matcher. Must be one of String|Function|RegExp.")}}disableNetConnect(){this[kNetConnect]=false}get isMockActive(){return this[kIsMockActive]}[kMockAgentSet](origin,dispatcher){ +this[kClients].set(origin,dispatcher)}[kFactory](origin){const mockOptions=Object.assign({agent:this},this[kOptions]);return this[kOptions]&&this[kOptions].connections===1?new MockClient(origin,mockOptions): +new MockPool(origin,mockOptions)}[kMockAgentGet](origin){const client=this[kClients].get(origin);if(client){return client}if(typeof origin!=="string"){const dispatcher=this[kFactory]("http://localhost\ +:9999");this[kMockAgentSet](origin,dispatcher);return dispatcher}for(const[keyMatcher,nonExplicitDispatcher]of Array.from(this[kClients])){if(nonExplicitDispatcher&&typeof keyMatcher!=="string"&&matchValue( +keyMatcher,origin)){const dispatcher=this[kFactory](origin);this[kMockAgentSet](origin,dispatcher);dispatcher[kDispatches]=nonExplicitDispatcher[kDispatches];return dispatcher}}}[kGetNetConnect](){return this[kNetConnect]}pendingInterceptors(){ +const mockAgentClients=this[kClients];return Array.from(mockAgentClients.entries()).flatMap(([origin,scope])=>scope[kDispatches].map(dispatch=>({...dispatch,origin}))).filter(({pending})=>pending)}assertNoPendingInterceptors({ +pendingInterceptorsFormatter=new PendingInterceptorsFormatter}={}){const pending=this.pendingInterceptors();if(pending.length===0){return}const pluralizer=new Pluralizer("interceptor","interceptors"). +pluralize(pending.length);throw new UndiciError(` +${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/generated/gist.js -var GistInfoDocument = graphqlDocument(` +${pendingInterceptorsFormatter.format(pending)} +`.trim())}};module.exports=MockAgent}});var require_global2=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/global.js"(exports,module){"use strict";var globalDispatcher=Symbol.for("undici.globalDispatcher.1");var{InvalidArgumentError}=require_errors(); +var Agent=require_agent();if(getGlobalDispatcher()===void 0){setGlobalDispatcher(new Agent)}function setGlobalDispatcher(agent){if(!agent||typeof agent.dispatch!=="function"){throw new InvalidArgumentError( +"Argument agent must implement Agent")}Object.defineProperty(globalThis,globalDispatcher,{value:agent,writable:true,enumerable:false,configurable:false})}function getGlobalDispatcher(){return globalThis[globalDispatcher]} +module.exports={setGlobalDispatcher,getGlobalDispatcher}}});var require_decorator_handler=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/handler/decorator-handler.js"(exports,module){"use strict";module.exports=class DecoratorHandler{#handler;constructor(handler){ +if(typeof handler!=="object"||handler===null){throw new TypeError("handler must be an object")}this.#handler=handler}onConnect(...args){return this.#handler.onConnect?.(...args)}onError(...args){return this.#handler. +onError?.(...args)}onUpgrade(...args){return this.#handler.onUpgrade?.(...args)}onResponseStarted(...args){return this.#handler.onResponseStarted?.(...args)}onHeaders(...args){return this.#handler.onHeaders?.( +...args)}onData(...args){return this.#handler.onData?.(...args)}onComplete(...args){return this.#handler.onComplete?.(...args)}onBodySent(...args){return this.#handler.onBodySent?.(...args)}}}});var require_redirect=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/redirect.js"(exports,module){"use strict";var RedirectHandler=require_redirect_handler();module.exports= +opts=>{const globalMaxRedirections=opts?.maxRedirections;return dispatch=>{return function redirectInterceptor(opts2,handler){const{maxRedirections=globalMaxRedirections,...baseOpts}=opts2;if(!maxRedirections){ +return dispatch(opts2,handler)}const redirectHandler=new RedirectHandler(dispatch,maxRedirections,opts2,handler);return dispatch(baseOpts,redirectHandler)}}}}});var require_retry=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/retry.js"(exports,module){"use strict";var RetryHandler=require_retry_handler();module.exports=globalOpts=>{ +return dispatch=>{return function retryInterceptor(opts,handler){return dispatch(opts,new RetryHandler({...opts,retryOptions:{...globalOpts,...opts.retryOptions}},{handler,dispatch}))}}}}});var require_dump=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/dump.js"(exports,module){"use strict";var util=require_util();var{InvalidArgumentError,RequestAbortedError}=require_errors(); +var DecoratorHandler=require_decorator_handler();var DumpHandler=class extends DecoratorHandler{#maxSize=1024*1024;#abort=null;#dumped=false;#aborted=false;#size=0;#reason=null;#handler=null;constructor({ +maxSize},handler){super(handler);if(maxSize!=null&&(!Number.isFinite(maxSize)||maxSize<1)){throw new InvalidArgumentError("maxSize must be a number greater than 0")}this.#maxSize=maxSize??this.#maxSize; +this.#handler=handler}onConnect(abort){this.#abort=abort;this.#handler.onConnect(this.#customAbort.bind(this))}#customAbort(reason){this.#aborted=true;this.#reason=reason}onHeaders(statusCode,rawHeaders,resume,statusMessage){ +const headers=util.parseHeaders(rawHeaders);const contentLength=headers["content-length"];if(contentLength!=null&&contentLength>this.#maxSize){throw new RequestAbortedError(`Response size (${contentLength}\ +) larger than maxSize (${this.#maxSize})`)}if(this.#aborted){return true}return this.#handler.onHeaders(statusCode,rawHeaders,resume,statusMessage)}onError(err){if(this.#dumped){return}err=this.#reason?? +err;this.#handler.onError(err)}onData(chunk){this.#size=this.#size+chunk.length;if(this.#size>=this.#maxSize){this.#dumped=true;if(this.#aborted){this.#handler.onError(this.#reason)}else{this.#handler. +onComplete([])}}return true}onComplete(trailers){if(this.#dumped){return}if(this.#aborted){this.#handler.onError(this.reason);return}this.#handler.onComplete(trailers)}};function createDumpInterceptor({ +maxSize:defaultMaxSize}={maxSize:1024*1024}){return dispatch=>{return function Intercept(opts,handler){const{dumpMaxSize=defaultMaxSize}=opts;const dumpHandler=new DumpHandler({maxSize:dumpMaxSize},handler); +return dispatch(opts,dumpHandler)}}}module.exports=createDumpInterceptor}});var require_dns=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/interceptor/dns.js"(exports,module){"use strict";var{isIP}=__require("node:net");var{lookup}=__require("node:dns"); +var DecoratorHandler=require_decorator_handler();var{InvalidArgumentError,InformationalError}=require_errors();var maxInt=Math.pow(2,31)-1;var DNSInstance=class{#maxTTL=0;#maxItems=0;#records=new Map;dualStack=true;affinity=null;lookup=null;pick=null;constructor(opts){ +this.#maxTTL=opts.maxTTL;this.#maxItems=opts.maxItems;this.dualStack=opts.dualStack;this.affinity=opts.affinity;this.lookup=opts.lookup??this.#defaultLookup;this.pick=opts.pick??this.#defaultPick}get full(){ +return this.#records.size===this.#maxItems}runLookup(origin,opts,cb){const ips=this.#records.get(origin.hostname);if(ips==null&&this.full){cb(null,origin.origin);return}const newOpts={affinity:this.affinity, +dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...opts.dns,maxTTL:this.#maxTTL,maxItems:this.#maxItems};if(ips==null){this.lookup(origin,newOpts,(err,addresses)=>{if(err||addresses==null|| +addresses.length===0){cb(err??new InformationalError("No DNS entries found"));return}this.setRecords(origin,addresses);const records=this.#records.get(origin.hostname);const ip=this.pick(origin,records, +newOpts.affinity);let port;if(typeof ip.port==="number"){port=`:${ip.port}`}else if(origin.port!==""){port=`:${origin.port}`}else{port=""}cb(null,`${origin.protocol}//${ip.family===6?`[${ip.address}]`: +ip.address}${port}`)})}else{const ip=this.pick(origin,ips,newOpts.affinity);if(ip==null){this.#records.delete(origin.hostname);this.runLookup(origin,opts,cb);return}let port;if(typeof ip.port==="numbe\ +r"){port=`:${ip.port}`}else if(origin.port!==""){port=`:${origin.port}`}else{port=""}cb(null,`${origin.protocol}//${ip.family===6?`[${ip.address}]`:ip.address}${port}`)}}#defaultLookup(origin,opts,cb){ +lookup(origin.hostname,{all:true,family:this.dualStack===false?this.affinity:0,order:"ipv4first"},(err,addresses)=>{if(err){return cb(err)}const results=new Map;for(const addr of addresses){results.set( +`${addr.address}:${addr.family}`,addr)}cb(null,results.values())})}#defaultPick(origin,hostnameRecords,affinity){let ip=null;const{records,offset}=hostnameRecords;let family;if(this.dualStack){if(affinity== +null){if(offset==null||offset===maxInt){hostnameRecords.offset=0;affinity=4}else{hostnameRecords.offset++;affinity=(hostnameRecords.offset&1)===1?6:4}}if(records[affinity]!=null&&records[affinity].ips. +length>0){family=records[affinity]}else{family=records[affinity===4?6:4]}}else{family=records[affinity]}if(family==null||family.ips.length===0){return ip}if(family.offset==null||family.offset===maxInt){ +family.offset=0}else{family.offset++}const position=family.offset%family.ips.length;ip=family.ips[position]??null;if(ip==null){return ip}if(Date.now()-ip.timestamp>ip.ttl){family.ips.splice(position,1); +return this.pick(origin,hostnameRecords,affinity)}return ip}setRecords(origin,addresses){const timestamp=Date.now();const records={records:{4:null,6:null}};for(const record of addresses){record.timestamp= +timestamp;if(typeof record.ttl==="number"){record.ttl=Math.min(record.ttl,this.#maxTTL)}else{record.ttl=this.#maxTTL}const familyRecords=records.records[record.family]??{ips:[]};familyRecords.ips.push( +record);records.records[record.family]=familyRecords}this.#records.set(origin.hostname,records)}getHandler(meta2,opts){return new DNSDispatchHandler(this,meta2,opts)}};var DNSDispatchHandler=class extends DecoratorHandler{#state=null;#opts=null;#dispatch=null;#handler=null;#origin=null;constructor(state,{ +origin,handler,dispatch},opts){super(handler);this.#origin=origin;this.#handler=handler;this.#opts={...opts};this.#state=state;this.#dispatch=dispatch}onError(err){switch(err.code){case"ETIMEDOUT":case"\ +ECONNREFUSED":{if(this.#state.dualStack){this.#state.runLookup(this.#origin,this.#opts,(err2,newOrigin)=>{if(err2){return this.#handler.onError(err2)}const dispatchOpts={...this.#opts,origin:newOrigin}; +this.#dispatch(dispatchOpts,this)});return}this.#handler.onError(err);return}case"ENOTFOUND":this.#state.deleteRecord(this.#origin);default:this.#handler.onError(err);break}}};module.exports=interceptorOpts=>{ +if(interceptorOpts?.maxTTL!=null&&(typeof interceptorOpts?.maxTTL!=="number"||interceptorOpts?.maxTTL<0)){throw new InvalidArgumentError("Invalid maxTTL. Must be a positive number")}if(interceptorOpts?. +maxItems!=null&&(typeof interceptorOpts?.maxItems!=="number"||interceptorOpts?.maxItems<1)){throw new InvalidArgumentError("Invalid maxItems. Must be a positive number and greater than zero")}if(interceptorOpts?. +affinity!=null&&interceptorOpts?.affinity!==4&&interceptorOpts?.affinity!==6){throw new InvalidArgumentError("Invalid affinity. Must be either 4 or 6")}if(interceptorOpts?.dualStack!=null&&typeof interceptorOpts?. +dualStack!=="boolean"){throw new InvalidArgumentError("Invalid dualStack. Must be a boolean")}if(interceptorOpts?.lookup!=null&&typeof interceptorOpts?.lookup!=="function"){throw new InvalidArgumentError( +"Invalid lookup. Must be a function")}if(interceptorOpts?.pick!=null&&typeof interceptorOpts?.pick!=="function"){throw new InvalidArgumentError("Invalid pick. Must be a function")}const dualStack=interceptorOpts?. +dualStack??true;let affinity;if(dualStack){affinity=interceptorOpts?.affinity??null}else{affinity=interceptorOpts?.affinity??4}const opts={maxTTL:interceptorOpts?.maxTTL??1e4,lookup:interceptorOpts?.lookup?? +null,pick:interceptorOpts?.pick??null,dualStack,affinity,maxItems:interceptorOpts?.maxItems??Infinity};const instance=new DNSInstance(opts);return dispatch=>{return function dnsInterceptor(origDispatchOpts,handler){ +const origin=origDispatchOpts.origin.constructor===URL?origDispatchOpts.origin:new URL(origDispatchOpts.origin);if(isIP(origin.hostname)!==0){return dispatch(origDispatchOpts,handler)}instance.runLookup( +origin,origDispatchOpts,(err,newOrigin)=>{if(err){return handler.onError(err)}let dispatchOpts=null;dispatchOpts={...origDispatchOpts,servername:origin.hostname,origin:newOrigin,headers:{host:origin.hostname, +...origDispatchOpts.headers}};dispatch(dispatchOpts,instance.getHandler({origin,dispatch,handler},origDispatchOpts))});return true}}}}});var require_headers=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/headers.js"(exports,module){"use strict";var{kConstruct}=require_symbols();var{kEnumerableProperty}=require_util(); +var{iteratorMixin,isValidHeaderName,isValidHeaderValue}=require_util2();var{webidl}=require_webidl();var assert=__require("node:assert");var util=__require("node:util");var kHeadersMap=Symbol("headers\ + map");var kHeadersSortedMap=Symbol("headers map sorted");function isHTTPWhiteSpaceCharCode(code){return code===10||code===13||code===9||code===32}function headerValueNormalize(potentialValue){let i=0; +let j=potentialValue.length;while(j>i&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j-1)))--j;while(j>i&&isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i)))++i;return i===0&&j===potentialValue. +length?potentialValue:potentialValue.substring(i,j)}function fill(headers,object2){if(Array.isArray(object2)){for(let i=0;i>","record"]})}}function appendHeader(headers,name,value){value=headerValueNormalize(value);if(!isValidHeaderName(name)){throw webidl. +errors.invalidArgument({prefix:"Headers.append",value:name,type:"header name"})}else if(!isValidHeaderValue(value)){throw webidl.errors.invalidArgument({prefix:"Headers.append",value,type:"header valu\ +e"})}if(getHeadersGuard(headers)==="immutable"){throw new TypeError("immutable")}return getHeadersList(headers).append(name,value,false)}function compareHeaderName(a,b){return a[0]>1);if(array[pivot][0]<=x[0]){left=pivot+1}else{right=pivot}}if(i!==pivot){ +j=i;while(j>left){array[j]=array[--j]}array[left]=x}}if(!iterator.next().done){throw new TypeError("Unreachable")}return array}else{let i=0;for(const{0:name,1:{value}}of this[kHeadersMap]){array[i++]= +[name,value];assert(value!==null)}return array.sort(compareHeaderName)}}};var Headers2=class _Headers{#guard;#headersList;constructor(init=void 0){webidl.util.markAsUncloneable(this);if(init===kConstruct){ +return}this.#headersList=new HeadersList;this.#guard="none";if(init!==void 0){init=webidl.converters.HeadersInit(init,"Headers contructor","init");fill(this,init)}}append(name,value){webidl.brandCheck( +this,_Headers);webidl.argumentLengthCheck(arguments,2,"Headers.append");const prefix="Headers.append";name=webidl.converters.ByteString(name,prefix,"name");value=webidl.converters.ByteString(value,prefix, +"value");return appendHeader(this,name,value)}delete(name){webidl.brandCheck(this,_Headers);webidl.argumentLengthCheck(arguments,1,"Headers.delete");const prefix="Headers.delete";name=webidl.converters. +ByteString(name,prefix,"name");if(!isValidHeaderName(name)){throw webidl.errors.invalidArgument({prefix:"Headers.delete",value:name,type:"header name"})}if(this.#guard==="immutable"){throw new TypeError( +"immutable")}if(!this.#headersList.contains(name,false)){return}this.#headersList.delete(name,false)}get(name){webidl.brandCheck(this,_Headers);webidl.argumentLengthCheck(arguments,1,"Headers.get");const prefix="\ +Headers.get";name=webidl.converters.ByteString(name,prefix,"name");if(!isValidHeaderName(name)){throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"})}return this.#headersList.get( +name,false)}has(name){webidl.brandCheck(this,_Headers);webidl.argumentLengthCheck(arguments,1,"Headers.has");const prefix="Headers.has";name=webidl.converters.ByteString(name,prefix,"name");if(!isValidHeaderName( +name)){throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"})}return this.#headersList.contains(name,false)}set(name,value){webidl.brandCheck(this,_Headers);webidl.argumentLengthCheck( +arguments,2,"Headers.set");const prefix="Headers.set";name=webidl.converters.ByteString(name,prefix,"name");value=webidl.converters.ByteString(value,prefix,"value");value=headerValueNormalize(value);if(!isValidHeaderName( +name)){throw webidl.errors.invalidArgument({prefix,value:name,type:"header name"})}else if(!isValidHeaderValue(value)){throw webidl.errors.invalidArgument({prefix,value,type:"header value"})}if(this.#guard=== +"immutable"){throw new TypeError("immutable")}this.#headersList.set(name,value,false)}getSetCookie(){webidl.brandCheck(this,_Headers);const list=this.#headersList.cookies;if(list){return[...list]}return[]}get[kHeadersSortedMap](){ +if(this.#headersList[kHeadersSortedMap]){return this.#headersList[kHeadersSortedMap]}const headers=[];const names=this.#headersList.toSortedArray();const cookies=this.#headersList.cookies;if(cookies=== +null||cookies.length===1){return this.#headersList[kHeadersSortedMap]=names}for(let i=0;i>"](V,prefix,argument, +iterator.bind(V))}return webidl.converters["record"](V,prefix,argument)}throw webidl.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequenc\ +e>","record"]})};module.exports={fill,compareHeaderName,Headers:Headers2,HeadersList,getHeadersGuard,setHeadersGuard,setHeadersList,getHeadersList}}});var require_response=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/response.js"(exports,module){"use strict";var{Headers:Headers2,HeadersList,fill,getHeadersGuard,setHeadersGuard, +setHeadersList}=require_headers();var{extractBody,cloneBody,mixinBody,hasFinalizationRegistry,streamRegistry,bodyUnusable}=require_body();var util=require_util();var nodeUtil=__require("node:util");var{ +kEnumerableProperty}=util;var{isValidReasonPhrase,isCancelled,isAborted,isBlobLike,serializeJavascriptValueToJSONString,isErrorLike,isomorphicEncode,environmentSettingsObject:relevantRealm}=require_util2(); +var{redirectStatusSet,nullBodyStatus}=require_constants3();var{kState,kHeaders}=require_symbols2();var{webidl}=require_webidl();var{FormData}=require_formdata();var{URLSerializer}=require_data_url();var{ +kConstruct}=require_symbols();var assert=__require("node:assert");var{types}=__require("node:util");var textEncoder=new TextEncoder("utf-8");var Response=class _Response{static error(){const responseObject=fromInnerResponse( +makeNetworkError(),"immutable");return responseObject}static json(data,init={}){webidl.argumentLengthCheck(arguments,1,"Response.json");if(init!==null){init=webidl.converters.ResponseInit(init)}const bytes=textEncoder. +encode(serializeJavascriptValueToJSONString(data));const body=extractBody(bytes);const responseObject=fromInnerResponse(makeResponse({}),"response");initializeResponse(responseObject,init,{body:body[0], +type:"application/json"});return responseObject}static redirect(url,status=302){webidl.argumentLengthCheck(arguments,1,"Response.redirect");url=webidl.converters.USVString(url);status=webidl.converters["\ +unsigned short"](status);let parsedURL;try{parsedURL=new URL(url,relevantRealm.settingsObject.baseUrl)}catch(err){throw new TypeError(`Failed to parse URL from ${url}`,{cause:err})}if(!redirectStatusSet. +has(status)){throw new RangeError(`Invalid status code ${status}`)}const responseObject=fromInnerResponse(makeResponse({}),"immutable");responseObject[kState].status=status;const value=isomorphicEncode( +URLSerializer(parsedURL));responseObject[kState].headersList.append("location",value,true);return responseObject}constructor(body=null,init={}){webidl.util.markAsUncloneable(this);if(body===kConstruct){ +return}if(body!==null){body=webidl.converters.BodyInit(body)}init=webidl.converters.ResponseInit(init);this[kState]=makeResponse({});this[kHeaders]=new Headers2(kConstruct);setHeadersGuard(this[kHeaders], +"response");setHeadersList(this[kHeaders],this[kState].headersList);let bodyWithType=null;if(body!=null){const[extractedBody,type]=extractBody(body);bodyWithType={body:extractedBody,type}}initializeResponse( +this,init,bodyWithType)}get type(){webidl.brandCheck(this,_Response);return this[kState].type}get url(){webidl.brandCheck(this,_Response);const urlList=this[kState].urlList;const url=urlList[urlList.length- +1]??null;if(url===null){return""}return URLSerializer(url,true)}get redirected(){webidl.brandCheck(this,_Response);return this[kState].urlList.length>1}get status(){webidl.brandCheck(this,_Response);return this[kState]. +status}get ok(){webidl.brandCheck(this,_Response);return this[kState].status>=200&&this[kState].status<=299}get statusText(){webidl.brandCheck(this,_Response);return this[kState].statusText}get headers(){ +webidl.brandCheck(this,_Response);return this[kHeaders]}get body(){webidl.brandCheck(this,_Response);return this[kState].body?this[kState].body.stream:null}get bodyUsed(){webidl.brandCheck(this,_Response); +return!!this[kState].body&&util.isDisturbed(this[kState].body.stream)}clone(){webidl.brandCheck(this,_Response);if(bodyUnusable(this)){throw webidl.errors.exception({header:"Response.clone",message:"B\ +ody has already been consumed."})}const clonedResponse=cloneResponse(this[kState]);if(hasFinalizationRegistry&&this[kState].body?.stream){streamRegistry.register(this,new WeakRef(this[kState].body.stream))} +return fromInnerResponse(clonedResponse,getHeadersGuard(this[kHeaders]))}[nodeUtil.inspect.custom](depth,options){if(options.depth===null){options.depth=2}options.colors??=true;const properties={status:this. +status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${nodeUtil.formatWithOptions( +options,properties)}`}};mixinBody(Response);Object.defineProperties(Response.prototype,{type:kEnumerableProperty,url:kEnumerableProperty,status:kEnumerableProperty,ok:kEnumerableProperty,redirected:kEnumerableProperty, +statusText:kEnumerableProperty,headers:kEnumerableProperty,clone:kEnumerableProperty,body:kEnumerableProperty,bodyUsed:kEnumerableProperty,[Symbol.toStringTag]:{value:"Response",configurable:true}});Object. +defineProperties(Response,{json:kEnumerableProperty,redirect:kEnumerableProperty,error:kEnumerableProperty});function cloneResponse(response){if(response.internalResponse){return filterResponse(cloneResponse( +response.internalResponse),response.type)}const newResponse=makeResponse({...response,body:null});if(response.body!=null){newResponse.body=cloneBody(newResponse,response.body)}return newResponse}function makeResponse(init){ +return{aborted:false,rangeRequested:false,timingAllowPassed:false,requestIncludesCredentials:false,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...init,headersList:init?.headersList? +new HeadersList(init?.headersList):new HeadersList,urlList:init?.urlList?[...init.urlList]:[]}}function makeNetworkError(reason){const isError=isErrorLike(reason);return makeResponse({type:"error",status:0, +error:isError?reason:new Error(reason?String(reason):reason),aborted:reason&&reason.name==="AbortError"})}function isNetworkError(response){return response.type==="error"&&response.status===0}function makeFilteredResponse(response,state){ +state={internalResponse:response,...state};return new Proxy(response,{get(target,p){return p in state?state[p]:target[p]},set(target,p,value){assert(!(p in state));target[p]=value;return true}})}function filterResponse(response,type){ +if(type==="basic"){return makeFilteredResponse(response,{type:"basic",headersList:response.headersList})}else if(type==="cors"){return makeFilteredResponse(response,{type:"cors",headersList:response.headersList})}else if(type=== +"opaque"){return makeFilteredResponse(response,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null})}else if(type==="opaqueredirect"){return makeFilteredResponse(response,{type:"\ +opaqueredirect",status:0,statusText:"",headersList:[],body:null})}else{assert(false)}}function makeAppropriateNetworkError(fetchParams,err=null){assert(isCancelled(fetchParams));return isAborted(fetchParams)? +makeNetworkError(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:err})):makeNetworkError(Object.assign(new DOMException("Request was cancelled."),{cause:err}))}function initializeResponse(response,init,body){ +if(init.status!==null&&(init.status<200||init.status>599)){throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.')}if("statusText"in init&&init.statusText!=null){if(!isValidReasonPhrase( +String(init.statusText))){throw new TypeError("Invalid statusText")}}if("status"in init&&init.status!=null){response[kState].status=init.status}if("statusText"in init&&init.statusText!=null){response[kState]. +statusText=init.statusText}if("headers"in init&&init.headers!=null){fill(response[kHeaders],init.headers)}if(body){if(nullBodyStatus.includes(response.status)){throw webidl.errors.exception({header:"R\ +esponse constructor",message:`Invalid response status code ${response.status}`})}response[kState].body=body.body;if(body.type!=null&&!response[kState].headersList.contains("content-type",true)){response[kState]. +headersList.append("content-type",body.type,true)}}}function fromInnerResponse(innerResponse,guard){const response=new Response(kConstruct);response[kState]=innerResponse;response[kHeaders]=new Headers2( +kConstruct);setHeadersList(response[kHeaders],innerResponse.headersList);setHeadersGuard(response[kHeaders],guard);if(hasFinalizationRegistry&&innerResponse.body?.stream){streamRegistry.register(response, +new WeakRef(innerResponse.body.stream))}return response}webidl.converters.ReadableStream=webidl.interfaceConverter(ReadableStream);webidl.converters.FormData=webidl.interfaceConverter(FormData);webidl. +converters.URLSearchParams=webidl.interfaceConverter(URLSearchParams);webidl.converters.XMLHttpRequestBodyInit=function(V,prefix,name){if(typeof V==="string"){return webidl.converters.USVString(V,prefix, +name)}if(isBlobLike(V)){return webidl.converters.Blob(V,prefix,name,{strict:false})}if(ArrayBuffer.isView(V)||types.isArrayBuffer(V)){return webidl.converters.BufferSource(V,prefix,name)}if(util.isFormDataLike( +V)){return webidl.converters.FormData(V,prefix,name,{strict:false})}if(V instanceof URLSearchParams){return webidl.converters.URLSearchParams(V,prefix,name)}return webidl.converters.DOMString(V,prefix, +name)};webidl.converters.BodyInit=function(V,prefix,argument){if(V instanceof ReadableStream){return webidl.converters.ReadableStream(V,prefix,argument)}if(V?.[Symbol.asyncIterator]){return V}return webidl. +converters.XMLHttpRequestBodyInit(V,prefix,argument)};webidl.converters.ResponseInit=webidl.dictionaryConverter([{key:"status",converter:webidl.converters["unsigned short"],defaultValue:()=>200},{key:"\ +statusText",converter:webidl.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:webidl.converters.HeadersInit}]);module.exports={isNetworkError,makeNetworkError,makeResponse,makeAppropriateNetworkError, +filterResponse,Response,cloneResponse,fromInnerResponse}}});var require_dispatcher_weakref=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/dispatcher-weakref.js"(exports,module){"use strict";var{kConnected,kSize}=require_symbols(); +var CompatWeakRef=class{constructor(value){this.value=value}deref(){return this.value[kConnected]===0&&this.value[kSize]===0?void 0:this.value}};var CompatFinalizer=class{constructor(finalizer){this.finalizer= +finalizer}register(dispatcher,key){if(dispatcher.on){dispatcher.on("disconnect",()=>{if(dispatcher[kConnected]===0&&dispatcher[kSize]===0){this.finalizer(key)}})}}unregister(key){}};module.exports=function(){ +if(process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")){process._rawDebug("Using compatibility WeakRef and FinalizationRegistry");return{WeakRef:CompatWeakRef,FinalizationRegistry:CompatFinalizer}} +return{WeakRef,FinalizationRegistry}}}});var require_request2=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/request.js"(exports,module){"use strict";var{extractBody,mixinBody,cloneBody,bodyUnusable}=require_body(); +var{Headers:Headers2,fill:fillHeaders,HeadersList,setHeadersGuard,getHeadersGuard,setHeadersList,getHeadersList}=require_headers();var{FinalizationRegistry:FinalizationRegistry2}=require_dispatcher_weakref()(); +var util=require_util();var nodeUtil=__require("node:util");var{isValidHTTPToken,sameOrigin,environmentSettingsObject}=require_util2();var{forbiddenMethodsSet,corsSafeListedMethodsSet,referrerPolicy,requestRedirect, +requestMode,requestCredentials,requestCache,requestDuplex}=require_constants3();var{kEnumerableProperty,normalizedMethodRecordsBase,normalizedMethodRecords}=util;var{kHeaders,kSignal,kState,kDispatcher}=require_symbols2(); +var{webidl}=require_webidl();var{URLSerializer}=require_data_url();var{kConstruct}=require_symbols();var assert=__require("node:assert");var{getMaxListeners,setMaxListeners,getEventListeners,defaultMaxListeners}=__require("node:events"); +var kAbortController=Symbol("abortController");var requestFinalizer=new FinalizationRegistry2(({signal,abort})=>{signal.removeEventListener("abort",abort)});var dependentControllerMap=new WeakMap;function buildAbort(acRef){ +return abort;function abort(){const ac=acRef.deref();if(ac!==void 0){requestFinalizer.unregister(abort);this.removeEventListener("abort",abort);ac.abort(this.reason);const controllerList=dependentControllerMap. +get(ac.signal);if(controllerList!==void 0){if(controllerList.size!==0){for(const ref of controllerList){const ctrl=ref.deref();if(ctrl!==void 0){ctrl.abort(this.reason)}}controllerList.clear()}dependentControllerMap. +delete(ac.signal)}}}}var patchMethodWarning=false;var Request=class _Request{constructor(input,init={}){webidl.util.markAsUncloneable(this);if(input===kConstruct){return}const prefix="Request construc\ +tor";webidl.argumentLengthCheck(arguments,1,prefix);input=webidl.converters.RequestInfo(input,prefix,"input");init=webidl.converters.RequestInit(init,prefix,"init");let request=null;let fallbackMode=null; +const baseUrl=environmentSettingsObject.settingsObject.baseUrl;let signal=null;if(typeof input==="string"){this[kDispatcher]=init.dispatcher;let parsedURL;try{parsedURL=new URL(input,baseUrl)}catch(err){ +throw new TypeError("Failed to parse URL from "+input,{cause:err})}if(parsedURL.username||parsedURL.password){throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+ +input)}request=makeRequest({urlList:[parsedURL]});fallbackMode="cors"}else{this[kDispatcher]=init.dispatcher||input[kDispatcher];assert(input instanceof _Request);request=input[kState];signal=input[kSignal]} +const origin=environmentSettingsObject.settingsObject.origin;let window="client";if(request.window?.constructor?.name==="EnvironmentSettingsObject"&&sameOrigin(request.window,origin)){window=request.window} +if(init.window!=null){throw new TypeError(`'window' option '${window}' must be null`)}if("window"in init){window="no-window"}request=makeRequest({method:request.method,headersList:request.headersList, +unsafeRequest:request.unsafeRequest,client:environmentSettingsObject.settingsObject,window,priority:request.priority,origin:request.origin,referrer:request.referrer,referrerPolicy:request.referrerPolicy, +mode:request.mode,credentials:request.credentials,cache:request.cache,redirect:request.redirect,integrity:request.integrity,keepalive:request.keepalive,reloadNavigation:request.reloadNavigation,historyNavigation:request. +historyNavigation,urlList:[...request.urlList]});const initHasKey=Object.keys(init).length!==0;if(initHasKey){if(request.mode==="navigate"){request.mode="same-origin"}request.reloadNavigation=false;request. +historyNavigation=false;request.origin="client";request.referrer="client";request.referrerPolicy="";request.url=request.urlList[request.urlList.length-1];request.urlList=[request.url]}if(init.referrer!== +void 0){const referrer=init.referrer;if(referrer===""){request.referrer="no-referrer"}else{let parsedReferrer;try{parsedReferrer=new URL(referrer,baseUrl)}catch(err){throw new TypeError(`Referrer "${referrer}\ +" is not a valid URL.`,{cause:err})}if(parsedReferrer.protocol==="about:"&&parsedReferrer.hostname==="client"||origin&&!sameOrigin(parsedReferrer,environmentSettingsObject.settingsObject.baseUrl)){request. +referrer="client"}else{request.referrer=parsedReferrer}}}if(init.referrerPolicy!==void 0){request.referrerPolicy=init.referrerPolicy}let mode;if(init.mode!==void 0){mode=init.mode}else{mode=fallbackMode} +if(mode==="navigate"){throw webidl.errors.exception({header:"Request constructor",message:"invalid request mode navigate."})}if(mode!=null){request.mode=mode}if(init.credentials!==void 0){request.credentials= +init.credentials}if(init.cache!==void 0){request.cache=init.cache}if(request.cache==="only-if-cached"&&request.mode!=="same-origin"){throw new TypeError("'only-if-cached' can be set only with 'same-or\ +igin' mode")}if(init.redirect!==void 0){request.redirect=init.redirect}if(init.integrity!=null){request.integrity=String(init.integrity)}if(init.keepalive!==void 0){request.keepalive=Boolean(init.keepalive)} +if(init.method!==void 0){let method=init.method;const mayBeNormalized=normalizedMethodRecords[method];if(mayBeNormalized!==void 0){request.method=mayBeNormalized}else{if(!isValidHTTPToken(method)){throw new TypeError( +`'${method}' is not a valid HTTP method.`)}const upperCase=method.toUpperCase();if(forbiddenMethodsSet.has(upperCase)){throw new TypeError(`'${method}' HTTP method is unsupported.`)}method=normalizedMethodRecordsBase[upperCase]?? +method;request.method=method}if(!patchMethodWarning&&request.method==="patch"){process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely \ +to succeed.",{code:"UNDICI-FETCH-patch"});patchMethodWarning=true}}if(init.signal!==void 0){signal=init.signal}this[kState]=request;const ac=new AbortController;this[kSignal]=ac.signal;if(signal!=null){ +if(!signal||typeof signal.aborted!=="boolean"||typeof signal.addEventListener!=="function"){throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.")}if(signal.aborted){ +ac.abort(signal.reason)}else{this[kAbortController]=ac;const acRef=new WeakRef(ac);const abort=buildAbort(acRef);try{if(typeof getMaxListeners==="function"&&getMaxListeners(signal)===defaultMaxListeners){ +setMaxListeners(1500,signal)}else if(getEventListeners(signal,"abort").length>=defaultMaxListeners){setMaxListeners(1500,signal)}}catch{}util.addAbortListener(signal,abort);requestFinalizer.register(ac, +{signal,abort},abort)}}this[kHeaders]=new Headers2(kConstruct);setHeadersList(this[kHeaders],request.headersList);setHeadersGuard(this[kHeaders],"request");if(mode==="no-cors"){if(!corsSafeListedMethodsSet. +has(request.method)){throw new TypeError(`'${request.method} is unsupported in no-cors mode.`)}setHeadersGuard(this[kHeaders],"request-no-cors")}if(initHasKey){const headersList=getHeadersList(this[kHeaders]); +const headers=init.headers!==void 0?init.headers:new HeadersList(headersList);headersList.clear();if(headers instanceof HeadersList){for(const{name,value}of headers.rawValues()){headersList.append(name, +value,false)}headersList.cookies=headers.cookies}else{fillHeaders(this[kHeaders],headers)}}const inputBody=input instanceof _Request?input[kState].body:null;if((init.body!=null||inputBody!=null)&&(request. +method==="GET"||request.method==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body.")}let initBody=null;if(init.body!=null){const[extractedBody,contentType]=extractBody(init. +body,request.keepalive);initBody=extractedBody;if(contentType&&!getHeadersList(this[kHeaders]).contains("content-type",true)){this[kHeaders].append("content-type",contentType)}}const inputOrInitBody=initBody?? +inputBody;if(inputOrInitBody!=null&&inputOrInitBody.source==null){if(initBody!=null&&init.duplex==null){throw new TypeError("RequestInit: duplex option is required when sending a body.")}if(request.mode!== +"same-origin"&&request.mode!=="cors"){throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"')}request.useCORSPreflightFlag=true}let finalBody=inputOrInitBody; +if(initBody==null&&inputBody!=null){if(bodyUnusable(input)){throw new TypeError("Cannot construct a Request with a Request object that has already been used.")}const identityTransform=new TransformStream; +inputBody.stream.pipeThrough(identityTransform);finalBody={source:inputBody.source,length:inputBody.length,stream:identityTransform.readable}}this[kState].body=finalBody}get method(){webidl.brandCheck( +this,_Request);return this[kState].method}get url(){webidl.brandCheck(this,_Request);return URLSerializer(this[kState].url)}get headers(){webidl.brandCheck(this,_Request);return this[kHeaders]}get destination(){ +webidl.brandCheck(this,_Request);return this[kState].destination}get referrer(){webidl.brandCheck(this,_Request);if(this[kState].referrer==="no-referrer"){return""}if(this[kState].referrer==="client"){ +return"about:client"}return this[kState].referrer.toString()}get referrerPolicy(){webidl.brandCheck(this,_Request);return this[kState].referrerPolicy}get mode(){webidl.brandCheck(this,_Request);return this[kState]. +mode}get credentials(){return this[kState].credentials}get cache(){webidl.brandCheck(this,_Request);return this[kState].cache}get redirect(){webidl.brandCheck(this,_Request);return this[kState].redirect}get integrity(){ +webidl.brandCheck(this,_Request);return this[kState].integrity}get keepalive(){webidl.brandCheck(this,_Request);return this[kState].keepalive}get isReloadNavigation(){webidl.brandCheck(this,_Request); +return this[kState].reloadNavigation}get isHistoryNavigation(){webidl.brandCheck(this,_Request);return this[kState].historyNavigation}get signal(){webidl.brandCheck(this,_Request);return this[kSignal]}get body(){ +webidl.brandCheck(this,_Request);return this[kState].body?this[kState].body.stream:null}get bodyUsed(){webidl.brandCheck(this,_Request);return!!this[kState].body&&util.isDisturbed(this[kState].body.stream)}get duplex(){ +webidl.brandCheck(this,_Request);return"half"}clone(){webidl.brandCheck(this,_Request);if(bodyUnusable(this)){throw new TypeError("unusable")}const clonedRequest=cloneRequest(this[kState]);const ac=new AbortController; +if(this.signal.aborted){ac.abort(this.signal.reason)}else{let list=dependentControllerMap.get(this.signal);if(list===void 0){list=new Set;dependentControllerMap.set(this.signal,list)}const acRef=new WeakRef( +ac);list.add(acRef);util.addAbortListener(ac.signal,buildAbort(acRef))}return fromInnerRequest(clonedRequest,ac.signal,getHeadersGuard(this[kHeaders]))}[nodeUtil.inspect.custom](depth,options){if(options. +depth===null){options.depth=2}options.colors??=true;const properties={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy, +mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this. +isHistoryNavigation,signal:this.signal};return`Request ${nodeUtil.formatWithOptions(options,properties)}`}};mixinBody(Request);function makeRequest(init){return{method:init.method??"GET",localURLsOnly:init. +localURLsOnly??false,unsafeRequest:init.unsafeRequest??false,body:init.body??null,client:init.client??null,reservedClient:init.reservedClient??null,replacesClientId:init.replacesClientId??"",window:init. +window??"client",keepalive:init.keepalive??false,serviceWorkers:init.serviceWorkers??"all",initiator:init.initiator??"",destination:init.destination??"",priority:init.priority??null,origin:init.origin?? +"client",policyContainer:init.policyContainer??"client",referrer:init.referrer??"client",referrerPolicy:init.referrerPolicy??"",mode:init.mode??"no-cors",useCORSPreflightFlag:init.useCORSPreflightFlag?? +false,credentials:init.credentials??"same-origin",useCredentials:init.useCredentials??false,cache:init.cache??"default",redirect:init.redirect??"follow",integrity:init.integrity??"",cryptoGraphicsNonceMetadata:init. +cryptoGraphicsNonceMetadata??"",parserMetadata:init.parserMetadata??"",reloadNavigation:init.reloadNavigation??false,historyNavigation:init.historyNavigation??false,userActivation:init.userActivation?? +false,taintedOrigin:init.taintedOrigin??false,redirectCount:init.redirectCount??0,responseTainting:init.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:init.preventNoCacheCacheControlHeaderModification?? +false,done:init.done??false,timingAllowFailed:init.timingAllowFailed??false,urlList:init.urlList,url:init.urlList[0],headersList:init.headersList?new HeadersList(init.headersList):new HeadersList}}function cloneRequest(request){ +const newRequest=makeRequest({...request,body:null});if(request.body!=null){newRequest.body=cloneBody(newRequest,request.body)}return newRequest}function fromInnerRequest(innerRequest,signal,guard){const request=new Request( +kConstruct);request[kState]=innerRequest;request[kSignal]=signal;request[kHeaders]=new Headers2(kConstruct);setHeadersList(request[kHeaders],innerRequest.headersList);setHeadersGuard(request[kHeaders], +guard);return request}Object.defineProperties(Request.prototype,{method:kEnumerableProperty,url:kEnumerableProperty,headers:kEnumerableProperty,redirect:kEnumerableProperty,clone:kEnumerableProperty,signal:kEnumerableProperty, +duplex:kEnumerableProperty,destination:kEnumerableProperty,body:kEnumerableProperty,bodyUsed:kEnumerableProperty,isHistoryNavigation:kEnumerableProperty,isReloadNavigation:kEnumerableProperty,keepalive:kEnumerableProperty, +integrity:kEnumerableProperty,cache:kEnumerableProperty,credentials:kEnumerableProperty,attribute:kEnumerableProperty,referrerPolicy:kEnumerableProperty,referrer:kEnumerableProperty,mode:kEnumerableProperty, +[Symbol.toStringTag]:{value:"Request",configurable:true}});webidl.converters.Request=webidl.interfaceConverter(Request);webidl.converters.RequestInfo=function(V,prefix,argument){if(typeof V==="string"){ +return webidl.converters.USVString(V,prefix,argument)}if(V instanceof Request){return webidl.converters.Request(V,prefix,argument)}return webidl.converters.USVString(V,prefix,argument)};webidl.converters. +AbortSignal=webidl.interfaceConverter(AbortSignal);webidl.converters.RequestInit=webidl.dictionaryConverter([{key:"method",converter:webidl.converters.ByteString},{key:"headers",converter:webidl.converters. +HeadersInit},{key:"body",converter:webidl.nullableConverter(webidl.converters.BodyInit)},{key:"referrer",converter:webidl.converters.USVString},{key:"referrerPolicy",converter:webidl.converters.DOMString, +allowedValues:referrerPolicy},{key:"mode",converter:webidl.converters.DOMString,allowedValues:requestMode},{key:"credentials",converter:webidl.converters.DOMString,allowedValues:requestCredentials},{key:"\ +cache",converter:webidl.converters.DOMString,allowedValues:requestCache},{key:"redirect",converter:webidl.converters.DOMString,allowedValues:requestRedirect},{key:"integrity",converter:webidl.converters. +DOMString},{key:"keepalive",converter:webidl.converters.boolean},{key:"signal",converter:webidl.nullableConverter(signal=>webidl.converters.AbortSignal(signal,"RequestInit","signal",{strict:false}))}, +{key:"window",converter:webidl.converters.any},{key:"duplex",converter:webidl.converters.DOMString,allowedValues:requestDuplex},{key:"dispatcher",converter:webidl.converters.any}]);module.exports={Request, +makeRequest,fromInnerRequest,cloneRequest}}});var require_fetch=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fetch/index.js"(exports,module){"use strict";var{makeNetworkError,makeAppropriateNetworkError,filterResponse, +makeResponse,fromInnerResponse}=require_response();var{HeadersList}=require_headers();var{Request,cloneRequest}=require_request2();var zlib=__require("node:zlib");var{bytesMatch,makePolicyContainer,clonePolicyContainer, +requestBadPort,TAOCheck,appendRequestOriginHeader,responseLocationURL,requestCurrentURL,setRequestReferrerPolicyOnRedirect,tryUpgradeRequestToAPotentiallyTrustworthyURL,createOpaqueTimingInfo,appendFetchMetadata, +corsCheck,crossOriginResourcePolicyCheck,determineRequestsReferrer,coarsenedSharedCurrentTime,createDeferredPromise,isBlobLike,sameOrigin,isCancelled,isAborted,isErrorLike,fullyReadBody,readableStreamClose, +isomorphicEncode,urlIsLocal,urlIsHttpHttpsScheme,urlHasHttpsScheme,clampAndCoarsenConnectionTimingInfo,simpleRangeHeaderValue,buildContentRange,createInflate,extractMimeType}=require_util2();var{kState, +kDispatcher}=require_symbols2();var assert=__require("node:assert");var{safelyExtractBody,extractBody}=require_body();var{redirectStatusSet,nullBodyStatus,safeMethodsSet,requestBodyHeader,subresourceSet}=require_constants3(); +var EE=__require("node:events");var{Readable,pipeline,finished}=__require("node:stream");var{addAbortListener,isErrored,isReadable,bufferToLowerCasedHeaderName}=require_util();var{dataURLProcessor,serializeAMimeType, +minimizeSupportedMimeType}=require_data_url();var{getGlobalDispatcher}=require_global2();var{webidl}=require_webidl();var{STATUS_CODES}=__require("node:http");var GET_OR_HEAD=["GET","HEAD"];var defaultUserAgent=typeof __UNDICI_IS_NODE__!== +"undefined"||typeof esbuildDetection!=="undefined"?"node":"undici";var resolveObjectURL;var Fetch=class extends EE{constructor(dispatcher){super();this.dispatcher=dispatcher;this.connection=null;this. +dump=false;this.state="ongoing"}terminate(reason){if(this.state!=="ongoing"){return}this.state="terminated";this.connection?.destroy(reason);this.emit("terminated",reason)}abort(error2){if(this.state!== +"ongoing"){return}this.state="aborted";if(!error2){error2=new DOMException("The operation was aborted.","AbortError")}this.serializedAbortReason=error2;this.connection?.destroy(error2);this.emit("term\ +inated",error2)}};function handleFetchDone(response){finalizeAndReportTiming(response,"fetch")}function fetch2(input,init=void 0){webidl.argumentLengthCheck(arguments,1,"globalThis.fetch");let p=createDeferredPromise(); +let requestObject;try{requestObject=new Request(input,init)}catch(e){p.reject(e);return p.promise}const request=requestObject[kState];if(requestObject.signal.aborted){abortFetch(p,request,null,requestObject. +signal.reason);return p.promise}const globalObject=request.client.globalObject;if(globalObject?.constructor?.name==="ServiceWorkerGlobalScope"){request.serviceWorkers="none"}let responseObject=null;let locallyAborted=false; +let controller=null;addAbortListener(requestObject.signal,()=>{locallyAborted=true;assert(controller!=null);controller.abort(requestObject.signal.reason);const realResponse=responseObject?.deref();abortFetch( +p,request,realResponse,requestObject.signal.reason)});const processResponse=response=>{if(locallyAborted){return}if(response.aborted){abortFetch(p,request,responseObject,controller.serializedAbortReason); +return}if(response.type==="error"){p.reject(new TypeError("fetch failed",{cause:response.error}));return}responseObject=new WeakRef(fromInnerResponse(response,"immutable"));p.resolve(responseObject.deref()); +p=null};controller=fetching({request,processResponseEndOfBody:handleFetchDone,processResponse,dispatcher:requestObject[kDispatcher]});return p.promise}function finalizeAndReportTiming(response,initiatorType="\ +other"){if(response.type==="error"&&response.aborted){return}if(!response.urlList?.length){return}const originalURL=response.urlList[0];let timingInfo=response.timingInfo;let cacheState=response.cacheState; +if(!urlIsHttpHttpsScheme(originalURL)){return}if(timingInfo===null){return}if(!response.timingAllowPassed){timingInfo=createOpaqueTimingInfo({startTime:timingInfo.startTime});cacheState=""}timingInfo. +endTime=coarsenedSharedCurrentTime();response.timingInfo=timingInfo;markResourceTiming(timingInfo,originalURL.href,initiatorType,globalThis,cacheState)}var markResourceTiming=performance.markResourceTiming; +function abortFetch(p,request,responseObject,error2){if(p){p.reject(error2)}if(request.body!=null&&isReadable(request.body?.stream)){request.body.stream.cancel(error2).catch(err=>{if(err.code==="ERR_I\ +NVALID_STATE"){return}throw err})}if(responseObject==null){return}const response=responseObject[kState];if(response.body!=null&&isReadable(response.body?.stream)){response.body.stream.cancel(error2).catch( +err=>{if(err.code==="ERR_INVALID_STATE"){return}throw err})}}function fetching({request,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseEndOfBody,processResponseConsumeBody, +useParallelQueue=false,dispatcher=getGlobalDispatcher()}){assert(dispatcher);let taskDestination=null;let crossOriginIsolatedCapability=false;if(request.client!=null){taskDestination=request.client.globalObject; +crossOriginIsolatedCapability=request.client.crossOriginIsolatedCapability}const currentTime=coarsenedSharedCurrentTime(crossOriginIsolatedCapability);const timingInfo=createOpaqueTimingInfo({startTime:currentTime}); +const fetchParams={controller:new Fetch(dispatcher),request,timingInfo,processRequestBodyChunkLength,processRequestEndOfBody,processResponse,processResponseConsumeBody,processResponseEndOfBody,taskDestination, +crossOriginIsolatedCapability};assert(!request.body||request.body.stream);if(request.window==="client"){request.window=request.client?.globalObject?.constructor?.name==="Window"?request.client:"no-win\ +dow"}if(request.origin==="client"){request.origin=request.client.origin}if(request.policyContainer==="client"){if(request.client!=null){request.policyContainer=clonePolicyContainer(request.client.policyContainer)}else{ +request.policyContainer=makePolicyContainer()}}if(!request.headersList.contains("accept",true)){const value="*/*";request.headersList.append("accept",value,true)}if(!request.headersList.contains("acce\ +pt-language",true)){request.headersList.append("accept-language","*",true)}if(request.priority===null){}if(subresourceSet.has(request.destination)){}mainFetch(fetchParams).catch(err=>{fetchParams.controller. +terminate(err)});return fetchParams.controller}async function mainFetch(fetchParams,recursive=false){const request=fetchParams.request;let response=null;if(request.localURLsOnly&&!urlIsLocal(requestCurrentURL( +request))){response=makeNetworkError("local URLs only")}tryUpgradeRequestToAPotentiallyTrustworthyURL(request);if(requestBadPort(request)==="blocked"){response=makeNetworkError("bad port")}if(request. +referrerPolicy===""){request.referrerPolicy=request.policyContainer.referrerPolicy}if(request.referrer!=="no-referrer"){request.referrer=determineRequestsReferrer(request)}if(response===null){response= +await(async()=>{const currentURL=requestCurrentURL(request);if(sameOrigin(currentURL,request.url)&&request.responseTainting==="basic"||currentURL.protocol==="data:"||(request.mode==="navigate"||request. +mode==="websocket")){request.responseTainting="basic";return await schemeFetch(fetchParams)}if(request.mode==="same-origin"){return makeNetworkError('request mode cannot be "same-origin"')}if(request. +mode==="no-cors"){if(request.redirect!=="follow"){return makeNetworkError('redirect mode cannot be "follow" for "no-cors" request')}request.responseTainting="opaque";return await schemeFetch(fetchParams)} +if(!urlIsHttpHttpsScheme(requestCurrentURL(request))){return makeNetworkError("URL scheme must be a HTTP(S) scheme")}request.responseTainting="cors";return await httpFetch(fetchParams)})()}if(recursive){ +return response}if(response.status!==0&&!response.internalResponse){if(request.responseTainting==="cors"){}if(request.responseTainting==="basic"){response=filterResponse(response,"basic")}else if(request. +responseTainting==="cors"){response=filterResponse(response,"cors")}else if(request.responseTainting==="opaque"){response=filterResponse(response,"opaque")}else{assert(false)}}let internalResponse=response. +status===0?response:response.internalResponse;if(internalResponse.urlList.length===0){internalResponse.urlList.push(...request.urlList)}if(!request.timingAllowFailed){response.timingAllowPassed=true}if(response. +type==="opaque"&&internalResponse.status===206&&internalResponse.rangeRequested&&!request.headers.contains("range",true)){response=internalResponse=makeNetworkError()}if(response.status!==0&&(request. +method==="HEAD"||request.method==="CONNECT"||nullBodyStatus.includes(internalResponse.status))){internalResponse.body=null;fetchParams.controller.dump=true}if(request.integrity){const processBodyError=reason=>fetchFinale( +fetchParams,makeNetworkError(reason));if(request.responseTainting==="opaque"||response.body==null){processBodyError(response.error);return}const processBody=bytes=>{if(!bytesMatch(bytes,request.integrity)){ +processBodyError("integrity mismatch");return}response.body=safelyExtractBody(bytes)[0];fetchFinale(fetchParams,response)};await fullyReadBody(response.body,processBody,processBodyError)}else{fetchFinale( +fetchParams,response)}}function schemeFetch(fetchParams){if(isCancelled(fetchParams)&&fetchParams.request.redirectCount===0){return Promise.resolve(makeAppropriateNetworkError(fetchParams))}const{request}=fetchParams; +const{protocol:scheme}=requestCurrentURL(request);switch(scheme){case"about:":{return Promise.resolve(makeNetworkError("about scheme is not supported"))}case"blob:":{if(!resolveObjectURL){resolveObjectURL= +__require("node:buffer").resolveObjectURL}const blobURLEntry=requestCurrentURL(request);if(blobURLEntry.search.length!==0){return Promise.resolve(makeNetworkError("NetworkError when attempting to fetc\ +h resource."))}const blob=resolveObjectURL(blobURLEntry.toString());if(request.method!=="GET"||!isBlobLike(blob)){return Promise.resolve(makeNetworkError("invalid method"))}const response=makeResponse(); +const fullLength=blob.size;const serializedFullLength=isomorphicEncode(`${fullLength}`);const type=blob.type;if(!request.headersList.contains("range",true)){const bodyWithType=extractBody(blob);response. +statusText="OK";response.body=bodyWithType[0];response.headersList.set("content-length",serializedFullLength,true);response.headersList.set("content-type",type,true)}else{response.rangeRequested=true; +const rangeHeader=request.headersList.get("range",true);const rangeValue=simpleRangeHeaderValue(rangeHeader,true);if(rangeValue==="failure"){return Promise.resolve(makeNetworkError("failed to fetch th\ +e data URL"))}let{rangeStartValue:rangeStart,rangeEndValue:rangeEnd}=rangeValue;if(rangeStart===null){rangeStart=fullLength-rangeEnd;rangeEnd=rangeStart+rangeEnd-1}else{if(rangeStart>=fullLength){return Promise. +resolve(makeNetworkError("Range start is greater than the blob's size."))}if(rangeEnd===null||rangeEnd>=fullLength){rangeEnd=fullLength-1}}const slicedBlob=blob.slice(rangeStart,rangeEnd,type);const slicedBodyWithType=extractBody( +slicedBlob);response.body=slicedBodyWithType[0];const serializedSlicedLength=isomorphicEncode(`${slicedBlob.size}`);const contentRange=buildContentRange(rangeStart,rangeEnd,fullLength);response.status= +206;response.statusText="Partial Content";response.headersList.set("content-length",serializedSlicedLength,true);response.headersList.set("content-type",type,true);response.headersList.set("content-ra\ +nge",contentRange,true)}return Promise.resolve(response)}case"data:":{const currentURL=requestCurrentURL(request);const dataURLStruct=dataURLProcessor(currentURL);if(dataURLStruct==="failure"){return Promise. +resolve(makeNetworkError("failed to fetch the data URL"))}const mimeType=serializeAMimeType(dataURLStruct.mimeType);return Promise.resolve(makeResponse({statusText:"OK",headersList:[["content-type",{name:"\ +Content-Type",value:mimeType}]],body:safelyExtractBody(dataURLStruct.body)[0]}))}case"file:":{return Promise.resolve(makeNetworkError("not implemented... yet..."))}case"http:":case"https:":{return httpFetch( +fetchParams).catch(err=>makeNetworkError(err))}default:{return Promise.resolve(makeNetworkError("unknown scheme"))}}}function finalizeResponse(fetchParams,response){fetchParams.request.done=true;if(fetchParams. +processResponseDone!=null){queueMicrotask(()=>fetchParams.processResponseDone(response))}}function fetchFinale(fetchParams,response){let timingInfo=fetchParams.timingInfo;const processResponseEndOfBody=()=>{ +const unsafeEndTime=Date.now();if(fetchParams.request.destination==="document"){fetchParams.controller.fullTimingInfo=timingInfo}fetchParams.controller.reportTimingSteps=()=>{if(fetchParams.request.url. +protocol!=="https:"){return}timingInfo.endTime=unsafeEndTime;let cacheState=response.cacheState;const bodyInfo=response.bodyInfo;if(!response.timingAllowPassed){timingInfo=createOpaqueTimingInfo(timingInfo); +cacheState=""}let responseStatus=0;if(fetchParams.request.mode!=="navigator"||!response.hasCrossOriginRedirects){responseStatus=response.status;const mimeType=extractMimeType(response.headersList);if(mimeType!== +"failure"){bodyInfo.contentType=minimizeSupportedMimeType(mimeType)}}if(fetchParams.request.initiatorType!=null){markResourceTiming(timingInfo,fetchParams.request.url.href,fetchParams.request.initiatorType, +globalThis,cacheState,bodyInfo,responseStatus)}};const processResponseEndOfBodyTask=()=>{fetchParams.request.done=true;if(fetchParams.processResponseEndOfBody!=null){queueMicrotask(()=>fetchParams.processResponseEndOfBody( +response))}if(fetchParams.request.initiatorType!=null){fetchParams.controller.reportTimingSteps()}};queueMicrotask(()=>processResponseEndOfBodyTask())};if(fetchParams.processResponse!=null){queueMicrotask( +()=>{fetchParams.processResponse(response);fetchParams.processResponse=null})}const internalResponse=response.type==="error"?response:response.internalResponse??response;if(internalResponse.body==null){ +processResponseEndOfBody()}else{finished(internalResponse.body.stream,()=>{processResponseEndOfBody()})}}async function httpFetch(fetchParams){const request=fetchParams.request;let response=null;let actualResponse=null; +const timingInfo=fetchParams.timingInfo;if(request.serviceWorkers==="all"){}if(response===null){if(request.redirect==="follow"){request.serviceWorkers="none"}actualResponse=response=await httpNetworkOrCacheFetch( +fetchParams);if(request.responseTainting==="cors"&&corsCheck(request,response)==="failure"){return makeNetworkError("cors failure")}if(TAOCheck(request,response)==="failure"){request.timingAllowFailed= +true}}if((request.responseTainting==="opaque"||response.type==="opaque")&&crossOriginResourcePolicyCheck(request.origin,request.client,request.destination,actualResponse)==="blocked"){return makeNetworkError( +"blocked")}if(redirectStatusSet.has(actualResponse.status)){if(request.redirect!=="manual"){fetchParams.controller.connection.destroy(void 0,false)}if(request.redirect==="error"){response=makeNetworkError( +"unexpected redirect")}else if(request.redirect==="manual"){response=actualResponse}else if(request.redirect==="follow"){response=await httpRedirectFetch(fetchParams,response)}else{assert(false)}}response. +timingInfo=timingInfo;return response}function httpRedirectFetch(fetchParams,response){const request=fetchParams.request;const actualResponse=response.internalResponse?response.internalResponse:response; +let locationURL;try{locationURL=responseLocationURL(actualResponse,requestCurrentURL(request).hash);if(locationURL==null){return response}}catch(err){return Promise.resolve(makeNetworkError(err))}if(!urlIsHttpHttpsScheme( +locationURL)){return Promise.resolve(makeNetworkError("URL scheme must be a HTTP(S) scheme"))}if(request.redirectCount===20){return Promise.resolve(makeNetworkError("redirect count exceeded"))}request. +redirectCount+=1;if(request.mode==="cors"&&(locationURL.username||locationURL.password)&&!sameOrigin(request,locationURL)){return Promise.resolve(makeNetworkError('cross origin not allowed for request\ + mode "cors"'))}if(request.responseTainting==="cors"&&(locationURL.username||locationURL.password)){return Promise.resolve(makeNetworkError('URL cannot contain credentials for request mode "cors"'))}if(actualResponse. +status!==303&&request.body!=null&&request.body.source==null){return Promise.resolve(makeNetworkError())}if([301,302].includes(actualResponse.status)&&request.method==="POST"||actualResponse.status===303&& +!GET_OR_HEAD.includes(request.method)){request.method="GET";request.body=null;for(const headerName of requestBodyHeader){request.headersList.delete(headerName)}}if(!sameOrigin(requestCurrentURL(request), +locationURL)){request.headersList.delete("authorization",true);request.headersList.delete("proxy-authorization",true);request.headersList.delete("cookie",true);request.headersList.delete("host",true)} +if(request.body!=null){assert(request.body.source!=null);request.body=safelyExtractBody(request.body.source)[0]}const timingInfo=fetchParams.timingInfo;timingInfo.redirectEndTime=timingInfo.postRedirectStartTime= +coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability);if(timingInfo.redirectStartTime===0){timingInfo.redirectStartTime=timingInfo.startTime}request.urlList.push(locationURL);setRequestReferrerPolicyOnRedirect( +request,actualResponse);return mainFetch(fetchParams,true)}async function httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch=false,isNewConnectionFetch=false){const request=fetchParams.request; +let httpFetchParams=null;let httpRequest2=null;let response=null;const httpCache=null;const revalidatingFlag=false;if(request.window==="no-window"&&request.redirect==="error"){httpFetchParams=fetchParams; +httpRequest2=request}else{httpRequest2=cloneRequest(request);httpFetchParams={...fetchParams};httpFetchParams.request=httpRequest2}const includeCredentials=request.credentials==="include"||request.credentials=== +"same-origin"&&request.responseTainting==="basic";const contentLength=httpRequest2.body?httpRequest2.body.length:null;let contentLengthHeaderValue=null;if(httpRequest2.body==null&&["POST","PUT"].includes( +httpRequest2.method)){contentLengthHeaderValue="0"}if(contentLength!=null){contentLengthHeaderValue=isomorphicEncode(`${contentLength}`)}if(contentLengthHeaderValue!=null){httpRequest2.headersList.append( +"content-length",contentLengthHeaderValue,true)}if(contentLength!=null&&httpRequest2.keepalive){}if(httpRequest2.referrer instanceof URL){httpRequest2.headersList.append("referer",isomorphicEncode(httpRequest2. +referrer.href),true)}appendRequestOriginHeader(httpRequest2);appendFetchMetadata(httpRequest2);if(!httpRequest2.headersList.contains("user-agent",true)){httpRequest2.headersList.append("user-agent",defaultUserAgent)} +if(httpRequest2.cache==="default"&&(httpRequest2.headersList.contains("if-modified-since",true)||httpRequest2.headersList.contains("if-none-match",true)||httpRequest2.headersList.contains("if-unmodifi\ +ed-since",true)||httpRequest2.headersList.contains("if-match",true)||httpRequest2.headersList.contains("if-range",true))){httpRequest2.cache="no-store"}if(httpRequest2.cache==="no-cache"&&!httpRequest2. +preventNoCacheCacheControlHeaderModification&&!httpRequest2.headersList.contains("cache-control",true)){httpRequest2.headersList.append("cache-control","max-age=0",true)}if(httpRequest2.cache==="no-st\ +ore"||httpRequest2.cache==="reload"){if(!httpRequest2.headersList.contains("pragma",true)){httpRequest2.headersList.append("pragma","no-cache",true)}if(!httpRequest2.headersList.contains("cache-contro\ +l",true)){httpRequest2.headersList.append("cache-control","no-cache",true)}}if(httpRequest2.headersList.contains("range",true)){httpRequest2.headersList.append("accept-encoding","identity",true)}if(!httpRequest2. +headersList.contains("accept-encoding",true)){if(urlHasHttpsScheme(requestCurrentURL(httpRequest2))){httpRequest2.headersList.append("accept-encoding","br, gzip, deflate",true)}else{httpRequest2.headersList. +append("accept-encoding","gzip, deflate",true)}}httpRequest2.headersList.delete("host",true);if(includeCredentials){}if(httpCache==null){httpRequest2.cache="no-store"}if(httpRequest2.cache!=="no-store"&& +httpRequest2.cache!=="reload"){}if(response==null){if(httpRequest2.cache==="only-if-cached"){return makeNetworkError("only if cached")}const forwardResponse=await httpNetworkFetch(httpFetchParams,includeCredentials, +isNewConnectionFetch);if(!safeMethodsSet.has(httpRequest2.method)&&forwardResponse.status>=200&&forwardResponse.status<=399){}if(revalidatingFlag&&forwardResponse.status===304){}if(response==null){response= +forwardResponse}}response.urlList=[...httpRequest2.urlList];if(httpRequest2.headersList.contains("range",true)){response.rangeRequested=true}response.requestIncludesCredentials=includeCredentials;if(response. +status===407){if(request.window==="no-window"){return makeNetworkError()}if(isCancelled(fetchParams)){return makeAppropriateNetworkError(fetchParams)}return makeNetworkError("proxy authentication requ\ +ired")}if(response.status===421&&!isNewConnectionFetch&&(request.body==null||request.body.source!=null)){if(isCancelled(fetchParams)){return makeAppropriateNetworkError(fetchParams)}fetchParams.controller. +connection.destroy();response=await httpNetworkOrCacheFetch(fetchParams,isAuthenticationFetch,true)}if(isAuthenticationFetch){}return response}async function httpNetworkFetch(fetchParams,includeCredentials=false,forceNewConnection=false){ +assert(!fetchParams.controller.connection||fetchParams.controller.connection.destroyed);fetchParams.controller.connection={abort:null,destroyed:false,destroy(err,abort=true){if(!this.destroyed){this.destroyed= +true;if(abort){this.abort?.(err??new DOMException("The operation was aborted.","AbortError"))}}}};const request=fetchParams.request;let response=null;const timingInfo=fetchParams.timingInfo;const httpCache=null; +if(httpCache==null){request.cache="no-store"}const newConnection=forceNewConnection?"yes":"no";if(request.mode==="websocket"){}else{}let requestBody=null;if(request.body==null&&fetchParams.processRequestEndOfBody){ +queueMicrotask(()=>fetchParams.processRequestEndOfBody())}else if(request.body!=null){const processBodyChunk=async function*(bytes){if(isCancelled(fetchParams)){return}yield bytes;fetchParams.processRequestBodyChunkLength?.( +bytes.byteLength)};const processEndOfBody=()=>{if(isCancelled(fetchParams)){return}if(fetchParams.processRequestEndOfBody){fetchParams.processRequestEndOfBody()}};const processBodyError=e=>{if(isCancelled( +fetchParams)){return}if(e.name==="AbortError"){fetchParams.controller.abort()}else{fetchParams.controller.terminate(e)}};requestBody=(async function*(){try{for await(const bytes of request.body.stream){ +yield*processBodyChunk(bytes)}processEndOfBody()}catch(err){processBodyError(err)}})()}try{const{body,status,statusText,headersList,socket}=await dispatch({body:requestBody});if(socket){response=makeResponse( +{status,statusText,headersList,socket})}else{const iterator=body[Symbol.asyncIterator]();fetchParams.controller.next=()=>iterator.next();response=makeResponse({status,statusText,headersList})}}catch(err){ +if(err.name==="AbortError"){fetchParams.controller.connection.destroy();return makeAppropriateNetworkError(fetchParams,err)}return makeNetworkError(err)}const pullAlgorithm=async()=>{await fetchParams. +controller.resume()};const cancelAlgorithm=reason=>{if(!isCancelled(fetchParams)){fetchParams.controller.abort(reason)}};const stream=new ReadableStream({async start(controller){fetchParams.controller. +controller=controller},async pull(controller){await pullAlgorithm(controller)},async cancel(reason){await cancelAlgorithm(reason)},type:"bytes"});response.body={stream,source:null,length:null};fetchParams. +controller.onAborted=onAborted;fetchParams.controller.on("terminated",onAborted);fetchParams.controller.resume=async()=>{while(true){let bytes;let isFailure;try{const{done,value}=await fetchParams.controller. +next();if(isAborted(fetchParams)){break}bytes=done?void 0:value}catch(err){if(fetchParams.controller.ended&&!timingInfo.encodedBodySize){bytes=void 0}else{bytes=err;isFailure=true}}if(bytes===void 0){ +readableStreamClose(fetchParams.controller.controller);finalizeResponse(fetchParams,response);return}timingInfo.decodedBodySize+=bytes?.byteLength??0;if(isFailure){fetchParams.controller.terminate(bytes); +return}const buffer=new Uint8Array(bytes);if(buffer.byteLength){fetchParams.controller.controller.enqueue(buffer)}if(isErrored(stream)){fetchParams.controller.terminate();return}if(fetchParams.controller. +controller.desiredSize<=0){return}}};function onAborted(reason){if(isAborted(fetchParams)){response.aborted=true;if(isReadable(stream)){fetchParams.controller.controller.error(fetchParams.controller.serializedAbortReason)}}else{ +if(isReadable(stream)){fetchParams.controller.controller.error(new TypeError("terminated",{cause:isErrorLike(reason)?reason:void 0}))}}fetchParams.controller.connection.destroy()}return response;function dispatch({ +body}){const url=requestCurrentURL(request);const agent=fetchParams.controller.dispatcher;return new Promise((resolve,reject)=>agent.dispatch({path:url.pathname+url.search,origin:url.origin,method:request. +method,body:agent.isMockActive?request.body&&(request.body.source||request.body.stream):body,headers:request.headersList.entries,maxRedirections:0,upgrade:request.mode==="websocket"?"websocket":void 0}, +{body:null,abort:null,onConnect(abort){const{connection}=fetchParams.controller;timingInfo.finalConnectionTimingInfo=clampAndCoarsenConnectionTimingInfo(void 0,timingInfo.postRedirectStartTime,fetchParams. +crossOriginIsolatedCapability);if(connection.destroyed){abort(new DOMException("The operation was aborted.","AbortError"))}else{fetchParams.controller.on("terminated",abort);this.abort=connection.abort= +abort}timingInfo.finalNetworkRequestStartTime=coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability)},onResponseStarted(){timingInfo.finalNetworkResponseStartTime=coarsenedSharedCurrentTime( +fetchParams.crossOriginIsolatedCapability)},onHeaders(status,rawHeaders,resume,statusText){if(status<200){return}let location="";const headersList=new HeadersList;for(let i=0;imaxContentEncodings){reject(new Error(`too many con\ +tent-encodings in response: ${codings.length}, maximum allowed is ${maxContentEncodings}`));return true}for(let i=codings.length-1;i>=0;--i){const coding=codings[i].trim();if(coding==="x-gzip"||coding=== +"gzip"){decoders.push(zlib.createGunzip({flush:zlib.constants.Z_SYNC_FLUSH,finishFlush:zlib.constants.Z_SYNC_FLUSH}))}else if(coding==="deflate"){decoders.push(createInflate({flush:zlib.constants.Z_SYNC_FLUSH, +finishFlush:zlib.constants.Z_SYNC_FLUSH}))}else if(coding==="br"){decoders.push(zlib.createBrotliDecompress({flush:zlib.constants.BROTLI_OPERATION_FLUSH,finishFlush:zlib.constants.BROTLI_OPERATION_FLUSH}))}else{ +decoders.length=0;break}}}const onError=this.onError.bind(this);resolve({status,statusText,headersList,body:decoders.length?pipeline(this.body,...decoders,err=>{if(err){this.onError(err)}}).on("error", +onError):this.body.on("error",onError)});return true},onData(chunk){if(fetchParams.controller.dump){return}const bytes=chunk;timingInfo.encodedBodySize+=bytes.byteLength;return this.body.push(bytes)}, +onComplete(){if(this.abort){fetchParams.controller.off("terminated",this.abort)}if(fetchParams.controller.onAborted){fetchParams.controller.off("terminated",fetchParams.controller.onAborted)}fetchParams. +controller.ended=true;this.body.push(null)},onError(error2){if(this.abort){fetchParams.controller.off("terminated",this.abort)}this.body?.destroy(error2);fetchParams.controller.terminate(error2);reject( +error2)},onUpgrade(status,rawHeaders,socket){if(status!==101){return}const headersList=new HeadersList;for(let i=0;ifalse},{key:"loaded",converter:webidl. +converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:webidl.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:webidl.converters.boolean,defaultValue:()=>false}, +{key:"cancelable",converter:webidl.converters.boolean,defaultValue:()=>false},{key:"composed",converter:webidl.converters.boolean,defaultValue:()=>false}]);module.exports={ProgressEvent}}});var require_encoding=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/encoding.js"(exports,module){"use strict";function getEncoding(label){if(!label){return"failure"} +switch(label.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"\ +ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolati\ +n3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"\ +iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"\ +iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859\ +-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"\ +greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebr\ +ew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"\ +logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"is\ +o885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"\ +ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"\ +macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"\ +windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-\ +100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"\ +x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows\ +-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"win\ +dows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"\ +csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"\ +csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_ka\ +nji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"\ +ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"repl\ +acement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-de\ +fined":return"x-user-defined";default:return"failure"}}module.exports={getEncoding}}});var require_util4=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/util.js"(exports,module){"use strict";var{kState,kError,kResult,kAborted,kLastProgressEventFired}=require_symbols3(); +var{ProgressEvent}=require_progressevent();var{getEncoding}=require_encoding();var{serializeAMimeType,parseMIMEType}=require_data_url();var{types}=__require("node:util");var{StringDecoder}=__require("string_decoder"); +var{btoa:btoa2}=__require("node:buffer");var staticPropertyDescriptors={enumerable:true,writable:false,configurable:false};function readOperation(fr,blob,type,encodingName){if(fr[kState]==="loading"){ +throw new DOMException("Invalid state","InvalidStateError")}fr[kState]="loading";fr[kResult]=null;fr[kError]=null;const stream=blob.stream();const reader=stream.getReader();const bytes=[];let chunkPromise=reader. +read();let isFirstChunk=true;(async()=>{while(!fr[kAborted]){try{const{done,value}=await chunkPromise;if(isFirstChunk&&!fr[kAborted]){queueMicrotask(()=>{fireAProgressEvent("loadstart",fr)})}isFirstChunk= +false;if(!done&&types.isUint8Array(value)){bytes.push(value);if((fr[kLastProgressEventFired]===void 0||Date.now()-fr[kLastProgressEventFired]>=50)&&!fr[kAborted]){fr[kLastProgressEventFired]=Date.now(); +queueMicrotask(()=>{fireAProgressEvent("progress",fr)})}chunkPromise=reader.read()}else if(done){queueMicrotask(()=>{fr[kState]="done";try{const result=packageData(bytes,type,blob.type,encodingName);if(fr[kAborted]){ +return}fr[kResult]=result;fireAProgressEvent("load",fr)}catch(error2){fr[kError]=error2;fireAProgressEvent("error",fr)}if(fr[kState]!=="loading"){fireAProgressEvent("loadend",fr)}});break}}catch(error2){ +if(fr[kAborted]){return}queueMicrotask(()=>{fr[kState]="done";fr[kError]=error2;fireAProgressEvent("error",fr);if(fr[kState]!=="loading"){fireAProgressEvent("loadend",fr)}});break}}})()}function fireAProgressEvent(e,reader){ +const event=new ProgressEvent(e,{bubbles:false,cancelable:false});reader.dispatchEvent(event)}function packageData(bytes,type,mimeType,encodingName){switch(type){case"DataURL":{let dataURL="data:";const parsed=parseMIMEType( +mimeType||"application/octet-stream");if(parsed!=="failure"){dataURL+=serializeAMimeType(parsed)}dataURL+=";base64,";const decoder=new StringDecoder("latin1");for(const chunk of bytes){dataURL+=btoa2( +decoder.write(chunk))}dataURL+=btoa2(decoder.end());return dataURL}case"Text":{let encoding="failure";if(encodingName){encoding=getEncoding(encodingName)}if(encoding==="failure"&&mimeType){const type2=parseMIMEType( +mimeType);if(type2!=="failure"){encoding=getEncoding(type2.parameters.get("charset"))}}if(encoding==="failure"){encoding="UTF-8"}return decode2(bytes,encoding)}case"ArrayBuffer":{const sequence=combineByteSequences( +bytes);return sequence.buffer}case"BinaryString":{let binaryString="";const decoder=new StringDecoder("latin1");for(const chunk of bytes){binaryString+=decoder.write(chunk)}binaryString+=decoder.end(); +return binaryString}}}function decode2(ioQueue,encoding){const bytes=combineByteSequences(ioQueue);const BOMEncoding=BOMSniffing(bytes);let slice=0;if(BOMEncoding!==null){encoding=BOMEncoding;slice=BOMEncoding=== +"UTF-8"?3:2}const sliced=bytes.slice(slice);return new TextDecoder(encoding).decode(sliced)}function BOMSniffing(ioQueue){const[a,b,c]=ioQueue;if(a===239&&b===187&&c===191){return"UTF-8"}else if(a===254&& +b===255){return"UTF-16BE"}else if(a===255&&b===254){return"UTF-16LE"}return null}function combineByteSequences(sequences){const size=sequences.reduce((a,b)=>{return a+b.byteLength},0);let offset=0;return sequences. +reduce((a,b)=>{a.set(b,offset);offset+=b.byteLength;return a},new Uint8Array(size))}module.exports={staticPropertyDescriptors,readOperation,fireAProgressEvent}}});var require_filereader=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/fileapi/filereader.js"(exports,module){"use strict";var{staticPropertyDescriptors,readOperation,fireAProgressEvent}=require_util4(); +var{kState,kError,kResult,kEvents,kAborted}=require_symbols3();var{webidl}=require_webidl();var{kEnumerableProperty}=require_util();var FileReader=class _FileReader extends EventTarget{constructor(){super(); +this[kState]="empty";this[kResult]=null;this[kError]=null;this[kEvents]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(blob){webidl.brandCheck(this,_FileReader); +webidl.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer");blob=webidl.converters.Blob(blob,{strict:false});readOperation(this,blob,"ArrayBuffer")}readAsBinaryString(blob){webidl.brandCheck( +this,_FileReader);webidl.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString");blob=webidl.converters.Blob(blob,{strict:false});readOperation(this,blob,"BinaryString")}readAsText(blob,encoding=void 0){ +webidl.brandCheck(this,_FileReader);webidl.argumentLengthCheck(arguments,1,"FileReader.readAsText");blob=webidl.converters.Blob(blob,{strict:false});if(encoding!==void 0){encoding=webidl.converters.DOMString( +encoding,"FileReader.readAsText","encoding")}readOperation(this,blob,"Text",encoding)}readAsDataURL(blob){webidl.brandCheck(this,_FileReader);webidl.argumentLengthCheck(arguments,1,"FileReader.readAsD\ +ataURL");blob=webidl.converters.Blob(blob,{strict:false});readOperation(this,blob,"DataURL")}abort(){if(this[kState]==="empty"||this[kState]==="done"){this[kResult]=null;return}if(this[kState]==="load\ +ing"){this[kState]="done";this[kResult]=null}this[kAborted]=true;fireAProgressEvent("abort",this);if(this[kState]!=="loading"){fireAProgressEvent("loadend",this)}}get readyState(){webidl.brandCheck(this, +_FileReader);switch(this[kState]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){webidl.brandCheck(this,_FileReader);return this[kResult]}get error(){ +webidl.brandCheck(this,_FileReader);return this[kError]}get onloadend(){webidl.brandCheck(this,_FileReader);return this[kEvents].loadend}set onloadend(fn){webidl.brandCheck(this,_FileReader);if(this[kEvents]. +loadend){this.removeEventListener("loadend",this[kEvents].loadend)}if(typeof fn==="function"){this[kEvents].loadend=fn;this.addEventListener("loadend",fn)}else{this[kEvents].loadend=null}}get onerror(){ +webidl.brandCheck(this,_FileReader);return this[kEvents].error}set onerror(fn){webidl.brandCheck(this,_FileReader);if(this[kEvents].error){this.removeEventListener("error",this[kEvents].error)}if(typeof fn=== +"function"){this[kEvents].error=fn;this.addEventListener("error",fn)}else{this[kEvents].error=null}}get onloadstart(){webidl.brandCheck(this,_FileReader);return this[kEvents].loadstart}set onloadstart(fn){ +webidl.brandCheck(this,_FileReader);if(this[kEvents].loadstart){this.removeEventListener("loadstart",this[kEvents].loadstart)}if(typeof fn==="function"){this[kEvents].loadstart=fn;this.addEventListener( +"loadstart",fn)}else{this[kEvents].loadstart=null}}get onprogress(){webidl.brandCheck(this,_FileReader);return this[kEvents].progress}set onprogress(fn){webidl.brandCheck(this,_FileReader);if(this[kEvents]. +progress){this.removeEventListener("progress",this[kEvents].progress)}if(typeof fn==="function"){this[kEvents].progress=fn;this.addEventListener("progress",fn)}else{this[kEvents].progress=null}}get onload(){ +webidl.brandCheck(this,_FileReader);return this[kEvents].load}set onload(fn){webidl.brandCheck(this,_FileReader);if(this[kEvents].load){this.removeEventListener("load",this[kEvents].load)}if(typeof fn=== +"function"){this[kEvents].load=fn;this.addEventListener("load",fn)}else{this[kEvents].load=null}}get onabort(){webidl.brandCheck(this,_FileReader);return this[kEvents].abort}set onabort(fn){webidl.brandCheck( +this,_FileReader);if(this[kEvents].abort){this.removeEventListener("abort",this[kEvents].abort)}if(typeof fn==="function"){this[kEvents].abort=fn;this.addEventListener("abort",fn)}else{this[kEvents].abort= +null}}};FileReader.EMPTY=FileReader.prototype.EMPTY=0;FileReader.LOADING=FileReader.prototype.LOADING=1;FileReader.DONE=FileReader.prototype.DONE=2;Object.defineProperties(FileReader.prototype,{EMPTY:staticPropertyDescriptors, +LOADING:staticPropertyDescriptors,DONE:staticPropertyDescriptors,readAsArrayBuffer:kEnumerableProperty,readAsBinaryString:kEnumerableProperty,readAsText:kEnumerableProperty,readAsDataURL:kEnumerableProperty, +abort:kEnumerableProperty,readyState:kEnumerableProperty,result:kEnumerableProperty,error:kEnumerableProperty,onloadstart:kEnumerableProperty,onprogress:kEnumerableProperty,onload:kEnumerableProperty, +onabort:kEnumerableProperty,onerror:kEnumerableProperty,onloadend:kEnumerableProperty,[Symbol.toStringTag]:{value:"FileReader",writable:false,enumerable:false,configurable:true}});Object.defineProperties( +FileReader,{EMPTY:staticPropertyDescriptors,LOADING:staticPropertyDescriptors,DONE:staticPropertyDescriptors});module.exports={FileReader}}});var require_symbols4=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/symbols.js"(exports,module){"use strict";module.exports={kConstruct:require_symbols().kConstruct}}});var require_util5=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/util.js"(exports,module){"use strict";var assert=__require("node:assert");var{URLSerializer}=require_data_url(); +var{isValidHeaderName}=require_util2();function urlEquals(A,B,excludeFragment=false){const serializedA=URLSerializer(A,excludeFragment);const serializedB=URLSerializer(B,excludeFragment);return serializedA=== +serializedB}function getFieldValues(header){assert(header!==null);const values=[];for(let value of header.split(",")){value=value.trim();if(isValidHeaderName(value)){values.push(value)}}return values} +module.exports={urlEquals,getFieldValues}}});var require_cache=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/cache.js"(exports,module){"use strict";var{kConstruct}=require_symbols4();var{urlEquals,getFieldValues}=require_util5(); +var{kEnumerableProperty,isDisturbed}=require_util();var{webidl}=require_webidl();var{Response,cloneResponse,fromInnerResponse}=require_response();var{Request,fromInnerRequest}=require_request2();var{kState}=require_symbols2(); +var{fetching}=require_fetch();var{urlIsHttpHttpsScheme,createDeferredPromise,readAllBytes}=require_util2();var assert=__require("node:assert");var Cache=class _Cache{#relevantRequestResponseList;constructor(){ +if(arguments[0]!==kConstruct){webidl.illegalConstructor()}webidl.util.markAsUncloneable(this);this.#relevantRequestResponseList=arguments[1]}async match(request,options={}){webidl.brandCheck(this,_Cache); +const prefix="Cache.match";webidl.argumentLengthCheck(arguments,1,prefix);request=webidl.converters.RequestInfo(request,prefix,"request");options=webidl.converters.CacheQueryOptions(options,prefix,"op\ +tions");const p=this.#internalMatchAll(request,options,1);if(p.length===0){return}return p[0]}async matchAll(request=void 0,options={}){webidl.brandCheck(this,_Cache);const prefix="Cache.matchAll";if(request!== +void 0)request=webidl.converters.RequestInfo(request,prefix,"request");options=webidl.converters.CacheQueryOptions(options,prefix,"options");return this.#internalMatchAll(request,options)}async add(request){ +webidl.brandCheck(this,_Cache);const prefix="Cache.add";webidl.argumentLengthCheck(arguments,1,prefix);request=webidl.converters.RequestInfo(request,prefix,"request");const requests=[request];const responseArrayPromise=this. +addAll(requests);return await responseArrayPromise}async addAll(requests){webidl.brandCheck(this,_Cache);const prefix="Cache.addAll";webidl.argumentLengthCheck(arguments,1,prefix);const responsePromises=[]; +const requestList=[];for(let request of requests){if(request===void 0){throw webidl.errors.conversionFailed({prefix,argument:"Argument 1",types:["undefined is not allowed"]})}request=webidl.converters. +RequestInfo(request);if(typeof request==="string"){continue}const r=request[kState];if(!urlIsHttpHttpsScheme(r.url)||r.method!=="GET"){throw webidl.errors.exception({header:prefix,message:"Expected ht\ +tp/s scheme when method is not GET."})}}const fetchControllers=[];for(const request of requests){const r=new Request(request)[kState];if(!urlIsHttpHttpsScheme(r.url)){throw webidl.errors.exception({header:prefix, +message:"Expected http/s scheme."})}r.initiator="fetch";r.destination="subresource";requestList.push(r);const responsePromise=createDeferredPromise();fetchControllers.push(fetching({request:r,processResponse(response){ +if(response.type==="error"||response.status===206||response.status<200||response.status>299){responsePromise.reject(webidl.errors.exception({header:"Cache.addAll",message:"Received an invalid status c\ +ode or the request failed."}))}else if(response.headersList.contains("vary")){const fieldValues=getFieldValues(response.headersList.get("vary"));for(const fieldValue of fieldValues){if(fieldValue==="*"){ +responsePromise.reject(webidl.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(const controller of fetchControllers){controller.abort()}return}}}},processResponseEndOfBody(response){ +if(response.aborted){responsePromise.reject(new DOMException("aborted","AbortError"));return}responsePromise.resolve(response)}}));responsePromises.push(responsePromise.promise)}const p=Promise.all(responsePromises); +const responses=await p;const operations=[];let index=0;for(const response of responses){const operation={type:"put",request:requestList[index],response};operations.push(operation);index++}const cacheJobPromise=createDeferredPromise(); +let errorData=null;try{this.#batchCacheOperations(operations)}catch(e){errorData=e}queueMicrotask(()=>{if(errorData===null){cacheJobPromise.resolve(void 0)}else{cacheJobPromise.reject(errorData)}});return cacheJobPromise. +promise}async put(request,response){webidl.brandCheck(this,_Cache);const prefix="Cache.put";webidl.argumentLengthCheck(arguments,2,prefix);request=webidl.converters.RequestInfo(request,prefix,"request"); +response=webidl.converters.Response(response,prefix,"response");let innerRequest=null;if(request instanceof Request){innerRequest=request[kState]}else{innerRequest=new Request(request)[kState]}if(!urlIsHttpHttpsScheme( +innerRequest.url)||innerRequest.method!=="GET"){throw webidl.errors.exception({header:prefix,message:"Expected an http/s scheme when method is not GET"})}const innerResponse=response[kState];if(innerResponse. +status===206){throw webidl.errors.exception({header:prefix,message:"Got 206 status"})}if(innerResponse.headersList.contains("vary")){const fieldValues=getFieldValues(innerResponse.headersList.get("var\ +y"));for(const fieldValue of fieldValues){if(fieldValue==="*"){throw webidl.errors.exception({header:prefix,message:"Got * vary field value"})}}}if(innerResponse.body&&(isDisturbed(innerResponse.body. +stream)||innerResponse.body.stream.locked)){throw webidl.errors.exception({header:prefix,message:"Response body is locked or disturbed"})}const clonedResponse=cloneResponse(innerResponse);const bodyReadPromise=createDeferredPromise(); +if(innerResponse.body!=null){const stream=innerResponse.body.stream;const reader=stream.getReader();readAllBytes(reader).then(bodyReadPromise.resolve,bodyReadPromise.reject)}else{bodyReadPromise.resolve( +void 0)}const operations=[];const operation={type:"put",request:innerRequest,response:clonedResponse};operations.push(operation);const bytes=await bodyReadPromise.promise;if(clonedResponse.body!=null){ +clonedResponse.body.source=bytes}const cacheJobPromise=createDeferredPromise();let errorData=null;try{this.#batchCacheOperations(operations)}catch(e){errorData=e}queueMicrotask(()=>{if(errorData===null){ +cacheJobPromise.resolve()}else{cacheJobPromise.reject(errorData)}});return cacheJobPromise.promise}async delete(request,options={}){webidl.brandCheck(this,_Cache);const prefix="Cache.delete";webidl.argumentLengthCheck( +arguments,1,prefix);request=webidl.converters.RequestInfo(request,prefix,"request");options=webidl.converters.CacheQueryOptions(options,prefix,"options");let r=null;if(request instanceof Request){r=request[kState]; +if(r.method!=="GET"&&!options.ignoreMethod){return false}}else{assert(typeof request==="string");r=new Request(request)[kState]}const operations=[];const operation={type:"delete",request:r,options};operations. +push(operation);const cacheJobPromise=createDeferredPromise();let errorData=null;let requestResponses;try{requestResponses=this.#batchCacheOperations(operations)}catch(e){errorData=e}queueMicrotask(()=>{ +if(errorData===null){cacheJobPromise.resolve(!!requestResponses?.length)}else{cacheJobPromise.reject(errorData)}});return cacheJobPromise.promise}async keys(request=void 0,options={}){webidl.brandCheck( +this,_Cache);const prefix="Cache.keys";if(request!==void 0)request=webidl.converters.RequestInfo(request,prefix,"request");options=webidl.converters.CacheQueryOptions(options,prefix,"options");let r=null; +if(request!==void 0){if(request instanceof Request){r=request[kState];if(r.method!=="GET"&&!options.ignoreMethod){return[]}}else if(typeof request==="string"){r=new Request(request)[kState]}}const promise=createDeferredPromise(); +const requests=[];if(request===void 0){for(const requestResponse of this.#relevantRequestResponseList){requests.push(requestResponse[0])}}else{const requestResponses=this.#queryCache(r,options);for(const requestResponse of requestResponses){ +requests.push(requestResponse[0])}}queueMicrotask(()=>{const requestList=[];for(const request2 of requests){const requestObject=fromInnerRequest(request2,new AbortController().signal,"immutable");requestList. +push(requestObject)}promise.resolve(Object.freeze(requestList))});return promise.promise}#batchCacheOperations(operations){const cache=this.#relevantRequestResponseList;const backupCache=[...cache];const addedItems=[]; +const resultList=[];try{for(const operation of operations){if(operation.type!=="delete"&&operation.type!=="put"){throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:'operation \ +type does not match "delete" or "put"'})}if(operation.type==="delete"&&operation.response!=null){throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should no\ +t have an associated response"})}if(this.#queryCache(operation.request,operation.options,addedItems).length){throw new DOMException("???","InvalidStateError")}let requestResponses;if(operation.type=== +"delete"){requestResponses=this.#queryCache(operation.request,operation.options);if(requestResponses.length===0){return[]}for(const requestResponse of requestResponses){const idx=cache.indexOf(requestResponse); +assert(idx!==-1);cache.splice(idx,1)}}else if(operation.type==="put"){if(operation.response==null){throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should hav\ +e an associated response"})}const r=operation.request;if(!urlIsHttpHttpsScheme(r.url)){throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"})}if(r. +method!=="GET"){throw webidl.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"})}if(operation.options!=null){throw webidl.errors.exception({header:"Cache.#batchCacheOpera\ +tions",message:"options must not be defined"})}requestResponses=this.#queryCache(operation.request);for(const requestResponse of requestResponses){const idx=cache.indexOf(requestResponse);assert(idx!== +-1);cache.splice(idx,1)}cache.push([operation.request,operation.response]);addedItems.push([operation.request,operation.response])}resultList.push([operation.request,operation.response])}return resultList}catch(e){ +this.#relevantRequestResponseList.length=0;this.#relevantRequestResponseList=backupCache;throw e}}#queryCache(requestQuery,options,targetStorage){const resultList=[];const storage=targetStorage??this.#relevantRequestResponseList; +for(const requestResponse of storage){const[cachedRequest,cachedResponse]=requestResponse;if(this.#requestMatchesCachedItem(requestQuery,cachedRequest,cachedResponse,options)){resultList.push(requestResponse)}} +return resultList}#requestMatchesCachedItem(requestQuery,request,response=null,options){const queryURL=new URL(requestQuery.url);const cachedURL=new URL(request.url);if(options?.ignoreSearch){cachedURL. +search="";queryURL.search=""}if(!urlEquals(queryURL,cachedURL,true)){return false}if(response==null||options?.ignoreVary||!response.headersList.contains("vary")){return true}const fieldValues=getFieldValues( +response.headersList.get("vary"));for(const fieldValue of fieldValues){if(fieldValue==="*"){return false}const requestValue=request.headersList.get(fieldValue);const queryValue=requestQuery.headersList. +get(fieldValue);if(requestValue!==queryValue){return false}}return true}#internalMatchAll(request,options,maxResponses=Infinity){let r=null;if(request!==void 0){if(request instanceof Request){r=request[kState]; +if(r.method!=="GET"&&!options.ignoreMethod){return[]}}else if(typeof request==="string"){r=new Request(request)[kState]}}const responses=[];if(request===void 0){for(const requestResponse of this.#relevantRequestResponseList){ +responses.push(requestResponse[1])}}else{const requestResponses=this.#queryCache(r,options);for(const requestResponse of requestResponses){responses.push(requestResponse[1])}}const responseList=[];for(const response of responses){ +const responseObject=fromInnerResponse(response,"immutable");responseList.push(responseObject.clone());if(responseList.length>=maxResponses){break}}return Object.freeze(responseList)}};Object.defineProperties( +Cache.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:true},match:kEnumerableProperty,matchAll:kEnumerableProperty,add:kEnumerableProperty,addAll:kEnumerableProperty,put:kEnumerableProperty, +delete:kEnumerableProperty,keys:kEnumerableProperty});var cacheQueryOptionConverters=[{key:"ignoreSearch",converter:webidl.converters.boolean,defaultValue:()=>false},{key:"ignoreMethod",converter:webidl. +converters.boolean,defaultValue:()=>false},{key:"ignoreVary",converter:webidl.converters.boolean,defaultValue:()=>false}];webidl.converters.CacheQueryOptions=webidl.dictionaryConverter(cacheQueryOptionConverters); +webidl.converters.MultiCacheQueryOptions=webidl.dictionaryConverter([...cacheQueryOptionConverters,{key:"cacheName",converter:webidl.converters.DOMString}]);webidl.converters.Response=webidl.interfaceConverter( +Response);webidl.converters["sequence"]=webidl.sequenceConverter(webidl.converters.RequestInfo);module.exports={Cache}}});var require_cachestorage=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cache/cachestorage.js"(exports,module){"use strict";var{kConstruct}=require_symbols4();var{Cache}=require_cache(); +var{webidl}=require_webidl();var{kEnumerableProperty}=require_util();var CacheStorage=class _CacheStorage{#caches=new Map;constructor(){if(arguments[0]!==kConstruct){webidl.illegalConstructor()}webidl. +util.markAsUncloneable(this)}async match(request,options={}){webidl.brandCheck(this,_CacheStorage);webidl.argumentLengthCheck(arguments,1,"CacheStorage.match");request=webidl.converters.RequestInfo(request); +options=webidl.converters.MultiCacheQueryOptions(options);if(options.cacheName!=null){if(this.#caches.has(options.cacheName)){const cacheList=this.#caches.get(options.cacheName);const cache=new Cache( +kConstruct,cacheList);return await cache.match(request,options)}}else{for(const cacheList of this.#caches.values()){const cache=new Cache(kConstruct,cacheList);const response=await cache.match(request, +options);if(response!==void 0){return response}}}}async has(cacheName){webidl.brandCheck(this,_CacheStorage);const prefix="CacheStorage.has";webidl.argumentLengthCheck(arguments,1,prefix);cacheName=webidl. +converters.DOMString(cacheName,prefix,"cacheName");return this.#caches.has(cacheName)}async open(cacheName){webidl.brandCheck(this,_CacheStorage);const prefix="CacheStorage.open";webidl.argumentLengthCheck( +arguments,1,prefix);cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName");if(this.#caches.has(cacheName)){const cache2=this.#caches.get(cacheName);return new Cache(kConstruct,cache2)}const cache=[]; +this.#caches.set(cacheName,cache);return new Cache(kConstruct,cache)}async delete(cacheName){webidl.brandCheck(this,_CacheStorage);const prefix="CacheStorage.delete";webidl.argumentLengthCheck(arguments, +1,prefix);cacheName=webidl.converters.DOMString(cacheName,prefix,"cacheName");return this.#caches.delete(cacheName)}async keys(){webidl.brandCheck(this,_CacheStorage);const keys=this.#caches.keys();return[ +...keys]}};Object.defineProperties(CacheStorage.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:true},match:kEnumerableProperty,has:kEnumerableProperty,open:kEnumerableProperty,delete:kEnumerableProperty, +keys:kEnumerableProperty});module.exports={CacheStorage}}});var require_constants4=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/constants.js"(exports,module){"use strict";var maxAttributeValueSize=1024;var maxNameValuePairSize=4096; +module.exports={maxAttributeValueSize,maxNameValuePairSize}}});var require_util6=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/util.js"(exports,module){"use strict";function isCTLExcludingHtab(value){for(let i=0;i=0&&code<=8||code>=10&&code<=31||code===127){return true}}return false}function validateCookieName(name){for(let i=0;i126||code===34||code===40||code===41||code===60||code===62||code===64||code===44||code===59||code===58||code===92||code===47||code===91||code===93||code===63||code===61||code===123|| +code===125){throw new Error("Invalid cookie name")}}}function validateCookieValue(value){let len=value.length;let i=0;if(value[0]==='"'){if(len===1||value[len-1]!=='"'){throw new Error("Invalid cookie\ + value")}--len;++i}while(i126||code===34||code===44||code===59||code===92){throw new Error("Invalid cookie value")}}}function validateCookiePath(path2){ +for(let i=0;i126||code===59){throw new Error("Invalid cookie path")}}}function isLetterOrDigit(code){return code>=48&&code<=57||code>= +65&&code<=90||code>=97&&code<=122}function validateCookieDomain(domain){if(domain===" "){return}if(domain.length>255){throw new Error("Invalid cookie domain")}let labelLength=0;for(let i=0;i63){throw new Error( +"Invalid cookie domain")}}if(labelLength===0||domain.charCodeAt(domain.length-1)===45){throw new Error("Invalid cookie domain")}}var IMFDays=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var IMFMonths=[ +"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];var IMFPaddedNumbers=Array(61).fill(0).map((_,i)=>i.toString().padStart(2,"0"));function toIMFDate(date2){if(typeof date2==="nu\ +mber"){date2=new Date(date2)}return`${IMFDays[date2.getUTCDay()]}, ${IMFPaddedNumbers[date2.getUTCDate()]} ${IMFMonths[date2.getUTCMonth()]} ${date2.getUTCFullYear()} ${IMFPaddedNumbers[date2.getUTCHours()]}\ +:${IMFPaddedNumbers[date2.getUTCMinutes()]}:${IMFPaddedNumbers[date2.getUTCSeconds()]} GMT`}function validateCookieMaxAge(maxAge){if(maxAge<0){throw new Error("Invalid cookie max-age")}}function stringify(cookie){ +if(cookie.name.length===0){return null}validateCookieName(cookie.name);validateCookieValue(cookie.value);const out=[`${cookie.name}=${cookie.value}`];if(cookie.name.startsWith("__Secure-")){cookie.secure= +true}if(cookie.name.startsWith("__Host-")){cookie.secure=true;cookie.domain=null;cookie.path="/"}if(cookie.secure){out.push("Secure")}if(cookie.httpOnly){out.push("HttpOnly")}if(typeof cookie.maxAge=== +"number"){validateCookieMaxAge(cookie.maxAge);out.push(`Max-Age=${cookie.maxAge}`)}if(cookie.domain){validateCookieDomain(cookie.domain);out.push(`Domain=${cookie.domain}`)}if(cookie.path){validateCookiePath( +cookie.path);out.push(`Path=${cookie.path}`)}if(cookie.expires&&cookie.expires.toString()!=="Invalid Date"){out.push(`Expires=${toIMFDate(cookie.expires)}`)}if(cookie.sameSite){out.push(`SameSite=${cookie. +sameSite}`)}for(const part of cookie.unparsed){if(!part.includes("=")){throw new Error("Invalid unparsed")}const[key,...value]=part.split("=");const trimmedKey=key.trim();const joinedValue=value.join( +"=");validateCookieName(trimmedKey);validateCookieValue(joinedValue);out.push(`${trimmedKey}=${joinedValue}`)}return out.join("; ")}module.exports={isCTLExcludingHtab,validateCookieName,validateCookiePath, +validateCookieValue,toIMFDate,stringify}}});var require_parse=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/parse.js"(exports,module){"use strict";var{maxNameValuePairSize,maxAttributeValueSize}=require_constants4(); +var{isCTLExcludingHtab}=require_util6();var{collectASequenceOfCodePointsFast}=require_data_url();var assert=__require("node:assert");function parseSetCookie(header){if(isCTLExcludingHtab(header)){return null} +let nameValuePair="";let unparsedAttributes="";let name="";let value="";if(header.includes(";")){const position={position:0};nameValuePair=collectASequenceOfCodePointsFast(";",header,position);unparsedAttributes= +header.slice(position.position)}else{nameValuePair=header}if(!nameValuePair.includes("=")){value=nameValuePair}else{const position={position:0};name=collectASequenceOfCodePointsFast("=",nameValuePair, +position);value=nameValuePair.slice(position.position+1)}name=name.trim();value=value.trim();if(name.length+value.length>maxNameValuePairSize){return null}return{name,value,...parseUnparsedAttributes( +unparsedAttributes)}}function parseUnparsedAttributes(unparsedAttributes,cookieAttributeList={}){if(unparsedAttributes.length===0){return cookieAttributeList}assert(unparsedAttributes[0]===";");unparsedAttributes= +unparsedAttributes.slice(1);let cookieAv="";if(unparsedAttributes.includes(";")){cookieAv=collectASequenceOfCodePointsFast(";",unparsedAttributes,{position:0});unparsedAttributes=unparsedAttributes.slice( +cookieAv.length)}else{cookieAv=unparsedAttributes;unparsedAttributes=""}let attributeName="";let attributeValue="";if(cookieAv.includes("=")){const position={position:0};attributeName=collectASequenceOfCodePointsFast( +"=",cookieAv,position);attributeValue=cookieAv.slice(position.position+1)}else{attributeName=cookieAv}attributeName=attributeName.trim();attributeValue=attributeValue.trim();if(attributeValue.length>maxAttributeValueSize){ +return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList)}const attributeNameLowercase=attributeName.toLowerCase();if(attributeNameLowercase==="expires"){const expiryTime=new Date(attributeValue); +cookieAttributeList.expires=expiryTime}else if(attributeNameLowercase==="max-age"){const charCode=attributeValue.charCodeAt(0);if((charCode<48||charCode>57)&&attributeValue[0]!=="-"){return parseUnparsedAttributes( +unparsedAttributes,cookieAttributeList)}if(!/^\d+$/.test(attributeValue)){return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList)}const deltaSeconds=Number(attributeValue);cookieAttributeList. +maxAge=deltaSeconds}else if(attributeNameLowercase==="domain"){let cookieDomain=attributeValue;if(cookieDomain[0]==="."){cookieDomain=cookieDomain.slice(1)}cookieDomain=cookieDomain.toLowerCase();cookieAttributeList. +domain=cookieDomain}else if(attributeNameLowercase==="path"){let cookiePath="";if(attributeValue.length===0||attributeValue[0]!=="/"){cookiePath="/"}else{cookiePath=attributeValue}cookieAttributeList. +path=cookiePath}else if(attributeNameLowercase==="secure"){cookieAttributeList.secure=true}else if(attributeNameLowercase==="httponly"){cookieAttributeList.httpOnly=true}else if(attributeNameLowercase=== +"samesite"){const attributeValueLowercase=attributeValue.toLowerCase();if(attributeValueLowercase==="none"){cookieAttributeList.sameSite="None"}else if(attributeValueLowercase==="strict"){cookieAttributeList. +sameSite="Strict"}else if(attributeValueLowercase==="lax"){cookieAttributeList.sameSite="Lax"}}else{cookieAttributeList.unparsed??=[];cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)} +return parseUnparsedAttributes(unparsedAttributes,cookieAttributeList)}module.exports={parseSetCookie,parseUnparsedAttributes}}});var require_cookies=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/cookies/index.js"(exports,module){"use strict";var{parseSetCookie}=require_parse();var{stringify}=require_util6(); +var{webidl}=require_webidl();var{Headers:Headers2}=require_headers();function getCookies(headers){webidl.argumentLengthCheck(arguments,1,"getCookies");webidl.brandCheck(headers,Headers2,{strict:false}); +const cookie=headers.get("cookie");const out={};if(!cookie){return out}for(const piece of cookie.split(";")){const[name,...value]=piece.split("=");out[name.trim()]=value.join("=")}return out}function deleteCookie(headers,name,attributes){ +webidl.brandCheck(headers,Headers2,{strict:false});const prefix="deleteCookie";webidl.argumentLengthCheck(arguments,2,prefix);name=webidl.converters.DOMString(name,prefix,"name");attributes=webidl.converters. +DeleteCookieAttributes(attributes);setCookie(headers,{name,value:"",expires:new Date(0),...attributes})}function getSetCookies(headers){webidl.argumentLengthCheck(arguments,1,"getSetCookies");webidl.brandCheck( +headers,Headers2,{strict:false});const cookies=headers.getSetCookie();if(!cookies){return[]}return cookies.map(pair=>parseSetCookie(pair))}function setCookie(headers,cookie){webidl.argumentLengthCheck( +arguments,2,"setCookie");webidl.brandCheck(headers,Headers2,{strict:false});cookie=webidl.converters.Cookie(cookie);const str=stringify(cookie);if(str){headers.append("Set-Cookie",str)}}webidl.converters. +DeleteCookieAttributes=webidl.dictionaryConverter([{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"path",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters. +DOMString),key:"domain",defaultValue:()=>null}]);webidl.converters.Cookie=webidl.dictionaryConverter([{converter:webidl.converters.DOMString,key:"name"},{converter:webidl.converters.DOMString,key:"val\ +ue"},{converter:webidl.nullableConverter(value=>{if(typeof value==="number"){return webidl.converters["unsigned long long"](value)}return new Date(value)}),key:"expires",defaultValue:()=>null},{converter:webidl. +nullableConverter(webidl.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:webidl. +nullableConverter(webidl.converters.DOMString),key:"path",defaultValue:()=>null},{converter:webidl.nullableConverter(webidl.converters.boolean),key:"secure",defaultValue:()=>null},{converter:webidl.nullableConverter( +webidl.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:webidl.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:webidl.sequenceConverter(webidl. +converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);module.exports={getCookies,deleteCookie,getSetCookies,setCookie}}});var require_events=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/events.js"(exports,module){"use strict";var{webidl}=require_webidl();var{kEnumerableProperty}=require_util(); +var{kConstruct}=require_symbols();var{MessagePort}=__require("node:worker_threads");var MessageEvent=class _MessageEvent extends Event{#eventInit;constructor(type,eventInitDict={}){if(type===kConstruct){ +super(arguments[1],arguments[2]);webidl.util.markAsUncloneable(this);return}const prefix="MessageEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix);type=webidl.converters.DOMString(type, +prefix,"type");eventInitDict=webidl.converters.MessageEventInit(eventInitDict,prefix,"eventInitDict");super(type,eventInitDict);this.#eventInit=eventInitDict;webidl.util.markAsUncloneable(this)}get data(){ +webidl.brandCheck(this,_MessageEvent);return this.#eventInit.data}get origin(){webidl.brandCheck(this,_MessageEvent);return this.#eventInit.origin}get lastEventId(){webidl.brandCheck(this,_MessageEvent); +return this.#eventInit.lastEventId}get source(){webidl.brandCheck(this,_MessageEvent);return this.#eventInit.source}get ports(){webidl.brandCheck(this,_MessageEvent);if(!Object.isFrozen(this.#eventInit. +ports)){Object.freeze(this.#eventInit.ports)}return this.#eventInit.ports}initMessageEvent(type,bubbles=false,cancelable=false,data=null,origin="",lastEventId="",source=null,ports=[]){webidl.brandCheck( +this,_MessageEvent);webidl.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent");return new _MessageEvent(type,{bubbles,cancelable,data,origin,lastEventId,source,ports})}static createFastMessageEvent(type,init){ +const messageEvent=new _MessageEvent(kConstruct,type,init);messageEvent.#eventInit=init;messageEvent.#eventInit.data??=null;messageEvent.#eventInit.origin??="";messageEvent.#eventInit.lastEventId??=""; +messageEvent.#eventInit.source??=null;messageEvent.#eventInit.ports??=[];return messageEvent}};var{createFastMessageEvent}=MessageEvent;delete MessageEvent.createFastMessageEvent;var CloseEvent=class _CloseEvent extends Event{#eventInit;constructor(type,eventInitDict={}){ +const prefix="CloseEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix);type=webidl.converters.DOMString(type,prefix,"type");eventInitDict=webidl.converters.CloseEventInit(eventInitDict); +super(type,eventInitDict);this.#eventInit=eventInitDict;webidl.util.markAsUncloneable(this)}get wasClean(){webidl.brandCheck(this,_CloseEvent);return this.#eventInit.wasClean}get code(){webidl.brandCheck( +this,_CloseEvent);return this.#eventInit.code}get reason(){webidl.brandCheck(this,_CloseEvent);return this.#eventInit.reason}};var ErrorEvent=class _ErrorEvent extends Event{#eventInit;constructor(type,eventInitDict){ +const prefix="ErrorEvent constructor";webidl.argumentLengthCheck(arguments,1,prefix);super(type,eventInitDict);webidl.util.markAsUncloneable(this);type=webidl.converters.DOMString(type,prefix,"type"); +eventInitDict=webidl.converters.ErrorEventInit(eventInitDict??{});this.#eventInit=eventInitDict}get message(){webidl.brandCheck(this,_ErrorEvent);return this.#eventInit.message}get filename(){webidl.brandCheck( +this,_ErrorEvent);return this.#eventInit.filename}get lineno(){webidl.brandCheck(this,_ErrorEvent);return this.#eventInit.lineno}get colno(){webidl.brandCheck(this,_ErrorEvent);return this.#eventInit. +colno}get error(){webidl.brandCheck(this,_ErrorEvent);return this.#eventInit.error}};Object.defineProperties(MessageEvent.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:true},data:kEnumerableProperty, +origin:kEnumerableProperty,lastEventId:kEnumerableProperty,source:kEnumerableProperty,ports:kEnumerableProperty,initMessageEvent:kEnumerableProperty});Object.defineProperties(CloseEvent.prototype,{[Symbol. +toStringTag]:{value:"CloseEvent",configurable:true},reason:kEnumerableProperty,code:kEnumerableProperty,wasClean:kEnumerableProperty});Object.defineProperties(ErrorEvent.prototype,{[Symbol.toStringTag]:{ +value:"ErrorEvent",configurable:true},message:kEnumerableProperty,filename:kEnumerableProperty,lineno:kEnumerableProperty,colno:kEnumerableProperty,error:kEnumerableProperty});webidl.converters.MessagePort= +webidl.interfaceConverter(MessagePort);webidl.converters["sequence"]=webidl.sequenceConverter(webidl.converters.MessagePort);var eventInit=[{key:"bubbles",converter:webidl.converters.boolean, +defaultValue:()=>false},{key:"cancelable",converter:webidl.converters.boolean,defaultValue:()=>false},{key:"composed",converter:webidl.converters.boolean,defaultValue:()=>false}];webidl.converters.MessageEventInit= +webidl.dictionaryConverter([...eventInit,{key:"data",converter:webidl.converters.any,defaultValue:()=>null},{key:"origin",converter:webidl.converters.USVString,defaultValue:()=>""},{key:"lastEventId", +converter:webidl.converters.DOMString,defaultValue:()=>""},{key:"source",converter:webidl.nullableConverter(webidl.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:webidl.converters["\ +sequence"],defaultValue:()=>new Array(0)}]);webidl.converters.CloseEventInit=webidl.dictionaryConverter([...eventInit,{key:"wasClean",converter:webidl.converters.boolean,defaultValue:()=>false}, +{key:"code",converter:webidl.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:webidl.converters.USVString,defaultValue:()=>""}]);webidl.converters.ErrorEventInit=webidl.dictionaryConverter( +[...eventInit,{key:"message",converter:webidl.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:webidl.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:webidl.converters["\ +unsigned long"],defaultValue:()=>0},{key:"colno",converter:webidl.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:webidl.converters.any}]);module.exports={MessageEvent,CloseEvent, +ErrorEvent,createFastMessageEvent}}});var require_constants5=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/constants.js"(exports,module){"use strict";var uid="258EAFA5-E914-47DA-95CA-C5AB0DC85B11";var staticPropertyDescriptors={ +enumerable:true,writable:false,configurable:false};var states={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3};var sentCloseFrameState={NOT_SENT:0,PROCESSING:1,SENT:2};var opcodes={CONTINUATION:0,TEXT:1,BINARY:2, +CLOSE:8,PING:9,PONG:10};var maxUnsigned16Bit=2**16-1;var parserStates={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4};var emptyBuffer=Buffer.allocUnsafe(0);var sendHints={string:1,typedArray:2, +arrayBuffer:3,blob:4};module.exports={uid,sentCloseFrameState,staticPropertyDescriptors,states,opcodes,maxUnsigned16Bit,parserStates,emptyBuffer,sendHints}}});var require_symbols5=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/symbols.js"(exports,module){"use strict";module.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol( +"ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol( +"byte parser")}}});var require_util7=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/util.js"(exports,module){"use strict";var{kReadyState,kController,kResponse,kBinaryType,kWebSocketURL}=require_symbols5(); +var{states,opcodes}=require_constants5();var{ErrorEvent,createFastMessageEvent}=require_events();var{isUtf8}=__require("node:buffer");var{collectASequenceOfCodePointsFast,removeHTTPWhitespace}=require_data_url(); +function isConnecting(ws){return ws[kReadyState]===states.CONNECTING}function isEstablished(ws){return ws[kReadyState]===states.OPEN}function isClosing(ws){return ws[kReadyState]===states.CLOSING}function isClosed(ws){ +return ws[kReadyState]===states.CLOSED}function fireEvent(e,target,eventFactory=(type,init)=>new Event(type,init),eventInitDict={}){const event=eventFactory(e,eventInitDict);target.dispatchEvent(event)} +function websocketMessageReceived(ws,type,data){if(ws[kReadyState]!==states.OPEN){return}let dataForEvent;if(type===opcodes.TEXT){try{dataForEvent=utf8Decode(data)}catch{failWebsocketConnection(ws,"Re\ +ceived invalid UTF-8 in text frame.");return}}else if(type===opcodes.BINARY){if(ws[kBinaryType]==="blob"){dataForEvent=new Blob([data])}else{dataForEvent=toArrayBuffer(data)}}fireEvent("message",ws,createFastMessageEvent, +{origin:ws[kWebSocketURL].origin,data:dataForEvent})}function toArrayBuffer(buffer){if(buffer.byteLength===buffer.buffer.byteLength){return buffer.buffer}return buffer.buffer.slice(buffer.byteOffset,buffer. +byteOffset+buffer.byteLength)}function isValidSubprotocol(protocol){if(protocol.length===0){return false}for(let i=0;i126||code=== +34||code===40||code===41||code===44||code===47||code===58||code===59||code===60||code===61||code===62||code===63||code===64||code===91||code===92||code===93||code===123||code===125){return false}}return true} +function isValidStatusCode(code){if(code>=1e3&&code<1015){return code!==1004&&code!==1005&&code!==1006}return code>=3e3&&code<=4999}function failWebsocketConnection(ws,reason){const{[kController]:controller, +[kResponse]:response}=ws;controller.abort();if(response?.socket&&!response.socket.destroyed){response.socket.destroy()}if(reason){fireEvent("error",ws,(type,init)=>new ErrorEvent(type,init),{error:new Error( +reason),message:reason})}}function isControlFrame(opcode){return opcode===opcodes.CLOSE||opcode===opcodes.PING||opcode===opcodes.PONG}function isContinuationFrame(opcode){return opcode===opcodes.CONTINUATION} +function isTextBinaryFrame(opcode){return opcode===opcodes.TEXT||opcode===opcodes.BINARY}function isValidOpcode(opcode){return isTextBinaryFrame(opcode)||isContinuationFrame(opcode)||isControlFrame(opcode)} +function parseExtensions(extensions){const position={position:0};const extensionList=new Map;while(position.position57){return false}}const num=Number.parseInt(value,10);return num>=8&&num<=15}var hasIntl=typeof process. +versions.icu==="string";var fatalDecoder=hasIntl?new TextDecoder("utf-8",{fatal:true}):void 0;var utf8Decode=hasIntl?fatalDecoder.decode.bind(fatalDecoder):function(buffer){if(isUtf8(buffer)){return buffer. +toString("utf-8")}throw new TypeError("Invalid utf-8 received.")};module.exports={isConnecting,isEstablished,isClosing,isClosed,fireEvent,isValidSubprotocol,isValidStatusCode,failWebsocketConnection,websocketMessageReceived, +utf8Decode,isControlFrame,isContinuationFrame,isTextBinaryFrame,isValidOpcode,parseExtensions,isValidClientWindowBits}}});var require_frame=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/frame.js"(exports,module){"use strict";var{maxUnsigned16Bit}=require_constants5();var BUFFER_SIZE=16386; +var crypto2;var buffer=null;var bufIdx=BUFFER_SIZE;try{crypto2=__require("node:crypto")}catch{crypto2={randomFillSync:function randomFillSync(buffer2,_offset,_size){for(let i=0;imaxUnsigned16Bit){offset+=8;payloadLength=127}else if(bodyLength>125){offset+=2;payloadLength=126}const buffer2=Buffer.allocUnsafe( +bodyLength+offset);buffer2[0]=buffer2[1]=0;buffer2[0]|=128;buffer2[0]=(buffer2[0]&240)+opcode;buffer2[offset-4]=maskKey[0];buffer2[offset-3]=maskKey[1];buffer2[offset-2]=maskKey[2];buffer2[offset-1]=maskKey[3]; +buffer2[1]=payloadLength;if(payloadLength===126){buffer2.writeUInt16BE(bodyLength,2)}else if(payloadLength===127){buffer2[2]=buffer2[3]=0;buffer2.writeUIntBE(bodyLength,4,6)}buffer2[1]|=128;for(let i=0;i< +bodyLength;++i){buffer2[offset+i]=frameData[i]^maskKey[i&3]}return buffer2}};module.exports={WebsocketFrameSend}}});var require_connection=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/connection.js"(exports,module){"use strict";var{uid,states,sentCloseFrameState,emptyBuffer,opcodes}=require_constants5(); +var{kReadyState,kSentClose,kByteParser,kReceivedClose,kResponse}=require_symbols5();var{fireEvent,failWebsocketConnection,isClosing,isClosed,isEstablished,parseExtensions}=require_util7();var{channels}=require_diagnostics(); +var{CloseEvent}=require_events();var{makeRequest}=require_request2();var{fetching}=require_fetch();var{Headers:Headers2,getHeadersList}=require_headers();var{getDecodeSplit}=require_util2();var{WebsocketFrameSend}=require_frame(); +var crypto2;try{crypto2=__require("node:crypto")}catch{}function establishWebSocketConnection(url,protocols,client,ws,onEstablish,options){const requestURL=url;requestURL.protocol=url.protocol==="ws:"? +"http:":"https:";const request=makeRequest({urlList:[requestURL],client,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(options. +headers){const headersList=getHeadersList(new Headers2(options.headers));request.headersList=headersList}const keyValue=crypto2.randomBytes(16).toString("base64");request.headersList.append("sec-webso\ +cket-key",keyValue);request.headersList.append("sec-websocket-version","13");for(const protocol of protocols){request.headersList.append("sec-websocket-protocol",protocol)}const permessageDeflate="per\ +message-deflate; client_max_window_bits";request.headersList.append("sec-websocket-extensions",permessageDeflate);const controller=fetching({request,useParallelQueue:true,dispatcher:options.dispatcher, +processResponse(response){if(response.type==="error"||response.status!==101){failWebsocketConnection(ws,"Received network error or non-101 status code.");return}if(protocols.length!==0&&!response.headersList. +get("Sec-WebSocket-Protocol")){failWebsocketConnection(ws,"Server did not respond with sent protocols.");return}if(response.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){failWebsocketConnection( +ws,'Server did not set Upgrade header to "websocket".');return}if(response.headersList.get("Connection")?.toLowerCase()!=="upgrade"){failWebsocketConnection(ws,'Server did not set Connection header to\ + "upgrade".');return}const secWSAccept=response.headersList.get("Sec-WebSocket-Accept");const digest=crypto2.createHash("sha1").update(keyValue+uid).digest("base64");if(secWSAccept!==digest){failWebsocketConnection( +ws,"Incorrect hash received in Sec-WebSocket-Accept header.");return}const secExtension=response.headersList.get("Sec-WebSocket-Extensions");let extensions;if(secExtension!==null){extensions=parseExtensions( +secExtension);if(!extensions.has("permessage-deflate")){failWebsocketConnection(ws,"Sec-WebSocket-Extensions header does not match.");return}}const secProtocol=response.headersList.get("Sec-WebSocket-\ +Protocol");if(secProtocol!==null){const requestProtocols=getDecodeSplit("sec-websocket-protocol",request.headersList);if(!requestProtocols.includes(secProtocol)){failWebsocketConnection(ws,"Protocol w\ +as not set in the opening handshake.");return}}response.socket.on("data",onSocketData);response.socket.on("close",onSocketClose);response.socket.on("error",onSocketError);if(channels.open.hasSubscribers){ +channels.open.publish({address:response.socket.address(),protocol:secProtocol,extensions:secExtension})}onEstablish(response,extensions)}});return controller}function closeWebSocketConnection(ws,code,reason,reasonByteLength){ +if(isClosing(ws)||isClosed(ws)){}else if(!isEstablished(ws)){failWebsocketConnection(ws,"Connection was closed before it was established.");ws[kReadyState]=states.CLOSING}else if(ws[kSentClose]===sentCloseFrameState. +NOT_SENT){ws[kSentClose]=sentCloseFrameState.PROCESSING;const frame=new WebsocketFrameSend;if(code!==void 0&&reason===void 0){frame.frameData=Buffer.allocUnsafe(2);frame.frameData.writeUInt16BE(code,0)}else if(code!== +void 0&&reason!==void 0){frame.frameData=Buffer.allocUnsafe(2+reasonByteLength);frame.frameData.writeUInt16BE(code,0);frame.frameData.write(reason,2,"utf-8")}else{frame.frameData=emptyBuffer}const socket=ws[kResponse]. +socket;socket.write(frame.createFrame(opcodes.CLOSE));ws[kSentClose]=sentCloseFrameState.SENT;ws[kReadyState]=states.CLOSING}else{ws[kReadyState]=states.CLOSING}}function onSocketData(chunk){if(!this. +ws[kByteParser].write(chunk)){this.pause()}}function onSocketClose(){const{ws}=this;const{[kResponse]:response}=ws;response.socket.off("data",onSocketData);response.socket.off("close",onSocketClose);response. +socket.off("error",onSocketError);const wasClean=ws[kSentClose]===sentCloseFrameState.SENT&&ws[kReceivedClose];let code=1005;let reason="";const result=ws[kByteParser].closingInfo;if(result&&!result.error){ +code=result.code??1005;reason=result.reason}else if(!ws[kReceivedClose]){code=1006}ws[kReadyState]=states.CLOSED;fireEvent("close",ws,(type,init)=>new CloseEvent(type,init),{wasClean,code,reason});if(channels. +close.hasSubscribers){channels.close.publish({websocket:ws,code,reason})}}function onSocketError(error2){const{ws}=this;ws[kReadyState]=states.CLOSING;if(channels.socketError.hasSubscribers){channels. +socketError.publish(error2)}this.destroy()}module.exports={establishWebSocketConnection,closeWebSocketConnection}}});var require_permessage_deflate=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports,module){"use strict";var{createInflateRaw,Z_DEFAULT_WINDOWBITS}=__require("node:zlib"); +var{isValidClientWindowBits}=require_util7();var{MessageSizeExceededError}=require_errors();var tail=Buffer.from([0,0,255,255]);var kBuffer=Symbol("kBuffer");var kLength=Symbol("kLength");var PerMessageDeflate=class{#inflate;#options={};#maxPayloadSize=0;constructor(extensions,options){ +this.#options.serverNoContextTakeover=extensions.has("server_no_context_takeover");this.#options.serverMaxWindowBits=extensions.get("server_max_window_bits");this.#maxPayloadSize=options.maxPayloadSize}decompress(chunk,fin,callback){ +if(!this.#inflate){let windowBits=Z_DEFAULT_WINDOWBITS;if(this.#options.serverMaxWindowBits){if(!isValidClientWindowBits(this.#options.serverMaxWindowBits)){callback(new Error("Invalid server_max_wind\ +ow_bits"));return}windowBits=Number.parseInt(this.#options.serverMaxWindowBits)}try{this.#inflate=createInflateRaw({windowBits})}catch(err){callback(err);return}this.#inflate[kBuffer]=[];this.#inflate[kLength]= +0;this.#inflate.on("data",data=>{this.#inflate[kLength]+=data.length;if(this.#maxPayloadSize>0&&this.#inflate[kLength]>this.#maxPayloadSize){callback(new MessageSizeExceededError);this.#inflate.removeAllListeners(); +this.#inflate=null;return}this.#inflate[kBuffer].push(data)});this.#inflate.on("error",err=>{this.#inflate=null;callback(err)})}this.#inflate.write(chunk);if(fin){this.#inflate.write(tail)}this.#inflate. +flush(()=>{if(!this.#inflate){return}const full=Buffer.concat(this.#inflate[kBuffer],this.#inflate[kLength]);this.#inflate[kBuffer].length=0;this.#inflate[kLength]=0;callback(null,full)})}};module.exports= +{PerMessageDeflate}}});var require_receiver=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/receiver.js"(exports,module){"use strict";var{Writable}=__require("node:stream");var assert=__require("node:assert"); +var{parserStates,opcodes,states,emptyBuffer,sentCloseFrameState}=require_constants5();var{kReadyState,kSentClose,kResponse,kReceivedClose}=require_symbols5();var{channels}=require_diagnostics();var{isValidStatusCode, +isValidOpcode,failWebsocketConnection,websocketMessageReceived,utf8Decode,isControlFrame,isTextBinaryFrame,isContinuationFrame}=require_util7();var{WebsocketFrameSend}=require_frame();var{closeWebSocketConnection}=require_connection(); +var{PerMessageDeflate}=require_permessage_deflate();var{MessageSizeExceededError}=require_errors();function failWebsocketConnectionWithCode(ws,code,reason){closeWebSocketConnection(ws,code,reason,Buffer. +byteLength(reason));failWebsocketConnection(ws,reason)}var ByteParser=class extends Writable{#buffers=[];#fragmentsBytes=0;#byteOffset=0;#loop=false;#state=parserStates.INFO;#info={};#fragments=[];#extensions;#maxFragments;#maxPayloadSize;constructor(ws,extensions,options={}){ +super();this.ws=ws;this.#extensions=extensions==null?new Map:extensions;this.#maxFragments=options.maxFragments??0;this.#maxPayloadSize=options.maxPayloadSize??0;if(this.#extensions.has("permessage-de\ +flate")){this.#extensions.set("permessage-deflate",new PerMessageDeflate(extensions,options))}}_write(chunk,_,callback){this.#buffers.push(chunk);this.#byteOffset+=chunk.length;this.#loop=true;this.run( +callback)}#validatePayloadLength(){if(this.#maxPayloadSize>0&&!isControlFrame(this.#info.opcode)&&this.#info.payloadLength+this.#fragmentsBytes>this.#maxPayloadSize){failWebsocketConnectionWithCode(this. +ws,1009,"Payload size exceeds maximum allowed size");return false}return true}run(callback){while(this.#loop){if(this.#state===parserStates.INFO){if(this.#byteOffset<2){return callback()}const buffer=this. +consume(2);const fin=(buffer[0]&128)!==0;const opcode=buffer[0]&15;const masked=(buffer[1]&128)===128;const fragmented=!fin&&opcode!==opcodes.CONTINUATION;const payloadLength=buffer[1]&127;const rsv1=buffer[0]& +64;const rsv2=buffer[0]&32;const rsv3=buffer[0]&16;if(!isValidOpcode(opcode)){failWebsocketConnection(this.ws,"Invalid opcode received");return callback()}if(masked){failWebsocketConnection(this.ws,"F\ +rame cannot be masked");return callback()}if(rsv1!==0&&!this.#extensions.has("permessage-deflate")){failWebsocketConnection(this.ws,"Expected RSV1 to be clear.");return}if(rsv2!==0||rsv3!==0){failWebsocketConnection( +this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(fragmented&&!isTextBinaryFrame(opcode)){failWebsocketConnection(this.ws,"Invalid frame type was fragmented.");return}if(isTextBinaryFrame(opcode)&&this.#fragments. +length>0){failWebsocketConnection(this.ws,"Expected continuation frame");return}if(this.#info.fragmented&&fragmented){failWebsocketConnection(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((payloadLength> +125||fragmented)&&isControlFrame(opcode)){failWebsocketConnection(this.ws,"Control frame either too large or fragmented");return}if(isContinuationFrame(opcode)&&this.#fragments.length===0&&!this.#info. +compressed){failWebsocketConnection(this.ws,"Unexpected continuation frame");return}if(payloadLength<=125){this.#info.payloadLength=payloadLength;this.#state=parserStates.READ_DATA;if(!this.#validatePayloadLength()){ +return}}else if(payloadLength===126){this.#state=parserStates.PAYLOADLENGTH_16}else if(payloadLength===127){this.#state=parserStates.PAYLOADLENGTH_64}if(isTextBinaryFrame(opcode)){this.#info.binaryType= +opcode;this.#info.compressed=rsv1!==0}this.#info.opcode=opcode;this.#info.masked=masked;this.#info.fin=fin;this.#info.fragmented=fragmented}else if(this.#state===parserStates.PAYLOADLENGTH_16){if(this.#byteOffset< +2){return callback()}const buffer=this.consume(2);this.#info.payloadLength=buffer.readUInt16BE(0);this.#state=parserStates.READ_DATA;if(!this.#validatePayloadLength()){return}}else if(this.#state===parserStates. +PAYLOADLENGTH_64){if(this.#byteOffset<8){return callback()}const buffer=this.consume(8);const upper=buffer.readUInt32BE(0);const lower=buffer.readUInt32BE(4);if(upper!==0||lower>2**31-1){failWebsocketConnection( +this.ws,"Received payload length > 2^31 bytes.");return}this.#info.payloadLength=lower;this.#state=parserStates.READ_DATA;if(!this.#validatePayloadLength()){return}}else if(this.#state===parserStates. +READ_DATA){if(this.#byteOffset0&&this.#fragmentsBytes>this.#maxPayloadSize){failWebsocketConnectionWithCode( +this.ws,1009,new MessageSizeExceededError().message);return}if(!this.#info.fragmented&&this.#info.fin){websocketMessageReceived(this.ws,this.#info.binaryType,this.consumeFragments())}this.#state=parserStates. +INFO}else{this.#extensions.get("permessage-deflate").decompress(body,this.#info.fin,(error2,data)=>{if(error2){const code=error2 instanceof MessageSizeExceededError?1009:1007;failWebsocketConnectionWithCode( +this.ws,code,error2.message);return}if(!this.writeFragments(data)){return}if(this.#maxPayloadSize>0&&this.#fragmentsBytes>this.#maxPayloadSize){failWebsocketConnectionWithCode(this.ws,1009,new MessageSizeExceededError(). +message);return}if(!this.#info.fin){this.#state=parserStates.INFO;this.#loop=true;this.run(callback);return}websocketMessageReceived(this.ws,this.#info.binaryType,this.consumeFragments());this.#loop=true; +this.#state=parserStates.INFO;this.run(callback)});this.#loop=false;break}}}}}consume(n){if(n>this.#byteOffset){throw new Error("Called consume() before buffers satiated.")}else if(n===0){return emptyBuffer} +if(this.#buffers[0].length===n){this.#byteOffset-=this.#buffers[0].length;return this.#buffers.shift()}const buffer=Buffer.allocUnsafe(n);let offset=0;while(offset!==n){const next=this.#buffers[0];const{ +length}=next;if(length+offset===n){buffer.set(this.#buffers.shift(),offset);break}else if(length+offset>n){buffer.set(next.subarray(0,n-offset),offset);this.#buffers[0]=next.subarray(n-offset);break}else{ +buffer.set(this.#buffers.shift(),offset);offset+=next.length}}this.#byteOffset-=n;return buffer}writeFragments(fragment){if(this.#maxFragments>0&&this.#fragments.length===this.#maxFragments){failWebsocketConnectionWithCode( +this.ws,1008,"Too many message fragments");return false}this.#fragmentsBytes+=fragment.length;this.#fragments.push(fragment);return true}consumeFragments(){const fragments=this.#fragments;if(fragments. +length===1){this.#fragmentsBytes=0;return fragments.shift()}const output=Buffer.concat(fragments,this.#fragmentsBytes);this.#fragments=[];this.#fragmentsBytes=0;return output}parseCloseBody(data){assert( +data.length!==1);let code;if(data.length>=2){code=data.readUInt16BE(0)}if(code!==void 0&&!isValidStatusCode(code)){return{code:1002,reason:"Invalid status code",error:true}}let reason=data.subarray(2); +if(reason[0]===239&&reason[1]===187&&reason[2]===191){reason=reason.subarray(3)}try{reason=utf8Decode(reason)}catch{return{code:1007,reason:"Invalid UTF-8",error:true}}return{code,reason,error:false}}parseControlFrame(body){ +const{opcode,payloadLength}=this.#info;if(opcode===opcodes.CLOSE){if(payloadLength===1){failWebsocketConnection(this.ws,"Received close frame with a 1-byte body.");return false}this.#info.closeInfo=this. +parseCloseBody(body);if(this.#info.closeInfo.error){const{code,reason}=this.#info.closeInfo;closeWebSocketConnection(this.ws,code,reason,reason.length);failWebsocketConnection(this.ws,reason);return false} +if(this.ws[kSentClose]!==sentCloseFrameState.SENT){let body2=emptyBuffer;if(this.#info.closeInfo.code){body2=Buffer.allocUnsafe(2);body2.writeUInt16BE(this.#info.closeInfo.code,0)}const closeFrame=new WebsocketFrameSend( +body2);this.ws[kResponse].socket.write(closeFrame.createFrame(opcodes.CLOSE),err=>{if(!err){this.ws[kSentClose]=sentCloseFrameState.SENT}})}this.ws[kReadyState]=states.CLOSING;this.ws[kReceivedClose]= +true;return false}else if(opcode===opcodes.PING){if(!this.ws[kReceivedClose]){const frame=new WebsocketFrameSend(body);this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG));if(channels.ping. +hasSubscribers){channels.ping.publish({payload:body})}}}else if(opcode===opcodes.PONG){if(channels.pong.hasSubscribers){channels.pong.publish({payload:body})}}return true}get closingInfo(){return this.#info. +closeInfo}};module.exports={ByteParser}}});var require_sender=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/sender.js"(exports,module){"use strict";var{WebsocketFrameSend}=require_frame();var{opcodes,sendHints}=require_constants5(); +var FixedQueue=require_fixed_queue();var FastBuffer=Buffer[Symbol.species];var SendQueue=class{#queue=new FixedQueue;#running=false;#socket;constructor(socket){this.#socket=socket}add(item,cb,hint){if(hint!== +sendHints.blob){const frame=createFrame(item,hint);if(!this.#running){this.#socket.write(frame,cb)}else{const node2={promise:null,callback:cb,frame};this.#queue.push(node2)}return}const node={promise:item. +arrayBuffer().then(ab=>{node.promise=null;node.frame=createFrame(ab,hint)}),callback:cb,frame:null};this.#queue.push(node);if(!this.#running){this.#run()}}async#run(){this.#running=true;const queue=this.#queue; +while(!queue.isEmpty()){const node=queue.shift();if(node.promise!==null){await node.promise}this.#socket.write(node.frame,node.callback);node.callback=node.frame=null}this.#running=false}};function createFrame(data,hint){ +return new WebsocketFrameSend(toBuffer(data,hint)).createFrame(hint===sendHints.string?opcodes.TEXT:opcodes.BINARY)}function toBuffer(data,hint){switch(hint){case sendHints.string:return Buffer.from(data);case sendHints. +arrayBuffer:case sendHints.blob:return new FastBuffer(data);case sendHints.typedArray:return new FastBuffer(data.buffer,data.byteOffset,data.byteLength)}}module.exports={SendQueue}}});var require_websocket=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/websocket/websocket.js"(exports,module){"use strict";var{webidl}=require_webidl();var{URLSerializer}=require_data_url(); +var{environmentSettingsObject}=require_util2();var{staticPropertyDescriptors,states,sentCloseFrameState,sendHints}=require_constants5();var{kWebSocketURL,kReadyState,kController,kBinaryType,kResponse, +kSentClose,kByteParser}=require_symbols5();var{isConnecting,isEstablished,isClosing,isValidSubprotocol,fireEvent}=require_util7();var{establishWebSocketConnection,closeWebSocketConnection}=require_connection(); +var{ByteParser}=require_receiver();var{kEnumerableProperty,isBlobLike}=require_util();var{getGlobalDispatcher}=require_global2();var{types}=__require("node:util");var{ErrorEvent,CloseEvent}=require_events(); +var{SendQueue}=require_sender();var WebSocket=class _WebSocket extends EventTarget{#events={open:null,error:null,close:null,message:null};#bufferedAmount=0;#protocol="";#extensions="";#sendQueue;constructor(url,protocols=[]){ +super();webidl.util.markAsUncloneable(this);const prefix="WebSocket constructor";webidl.argumentLengthCheck(arguments,1,prefix);const options=webidl.converters["DOMString or sequence or Web\ +SocketInit"](protocols,prefix,"options");url=webidl.converters.USVString(url,prefix,"url");protocols=options.protocols;const baseURL=environmentSettingsObject.settingsObject.baseUrl;let urlRecord;try{ +urlRecord=new URL(url,baseURL)}catch(e){throw new DOMException(e,"SyntaxError")}if(urlRecord.protocol==="http:"){urlRecord.protocol="ws:"}else if(urlRecord.protocol==="https:"){urlRecord.protocol="wss\ +:"}if(urlRecord.protocol!=="ws:"&&urlRecord.protocol!=="wss:"){throw new DOMException(`Expected a ws: or wss: protocol, got ${urlRecord.protocol}`,"SyntaxError")}if(urlRecord.hash||urlRecord.href.endsWith( +"#")){throw new DOMException("Got fragment","SyntaxError")}if(typeof protocols==="string"){protocols=[protocols]}if(protocols.length!==new Set(protocols.map(p=>p.toLowerCase())).size){throw new DOMException( +"Invalid Sec-WebSocket-Protocol value","SyntaxError")}if(protocols.length>0&&!protocols.every(p=>isValidSubprotocol(p))){throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError")}this[kWebSocketURL]= +new URL(urlRecord.href);const client=environmentSettingsObject.settingsObject;this[kController]=establishWebSocketConnection(urlRecord,protocols,client,this,(response,extensions)=>this.#onConnectionEstablished( +response,extensions),options);this[kReadyState]=_WebSocket.CONNECTING;this[kSentClose]=sentCloseFrameState.NOT_SENT;this[kBinaryType]="blob"}close(code=void 0,reason=void 0){webidl.brandCheck(this,_WebSocket); +const prefix="WebSocket.close";if(code!==void 0){code=webidl.converters["unsigned short"](code,prefix,"code",{clamp:true})}if(reason!==void 0){reason=webidl.converters.USVString(reason,prefix,"reason")} +if(code!==void 0){if(code!==1e3&&(code<3e3||code>4999)){throw new DOMException("invalid code","InvalidAccessError")}}let reasonByteLength=0;if(reason!==void 0){reasonByteLength=Buffer.byteLength(reason); +if(reasonByteLength>123){throw new DOMException(`Reason must be less than 123 bytes; received ${reasonByteLength}`,"SyntaxError")}}closeWebSocketConnection(this,code,reason,reasonByteLength)}send(data){ +webidl.brandCheck(this,_WebSocket);const prefix="WebSocket.send";webidl.argumentLengthCheck(arguments,1,prefix);data=webidl.converters.WebSocketSendData(data,prefix,"data");if(isConnecting(this)){throw new DOMException( +"Sent before connected.","InvalidStateError")}if(!isEstablished(this)||isClosing(this)){return}if(typeof data==="string"){const length=Buffer.byteLength(data);this.#bufferedAmount+=length;this.#sendQueue. +add(data,()=>{this.#bufferedAmount-=length},sendHints.string)}else if(types.isArrayBuffer(data)){this.#bufferedAmount+=data.byteLength;this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.byteLength}, +sendHints.arrayBuffer)}else if(ArrayBuffer.isView(data)){this.#bufferedAmount+=data.byteLength;this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.byteLength},sendHints.typedArray)}else if(isBlobLike( +data)){this.#bufferedAmount+=data.size;this.#sendQueue.add(data,()=>{this.#bufferedAmount-=data.size},sendHints.blob)}}get readyState(){webidl.brandCheck(this,_WebSocket);return this[kReadyState]}get bufferedAmount(){ +webidl.brandCheck(this,_WebSocket);return this.#bufferedAmount}get url(){webidl.brandCheck(this,_WebSocket);return URLSerializer(this[kWebSocketURL])}get extensions(){webidl.brandCheck(this,_WebSocket); +return this.#extensions}get protocol(){webidl.brandCheck(this,_WebSocket);return this.#protocol}get onopen(){webidl.brandCheck(this,_WebSocket);return this.#events.open}set onopen(fn){webidl.brandCheck( +this,_WebSocket);if(this.#events.open){this.removeEventListener("open",this.#events.open)}if(typeof fn==="function"){this.#events.open=fn;this.addEventListener("open",fn)}else{this.#events.open=null}}get onerror(){ +webidl.brandCheck(this,_WebSocket);return this.#events.error}set onerror(fn){webidl.brandCheck(this,_WebSocket);if(this.#events.error){this.removeEventListener("error",this.#events.error)}if(typeof fn=== +"function"){this.#events.error=fn;this.addEventListener("error",fn)}else{this.#events.error=null}}get onclose(){webidl.brandCheck(this,_WebSocket);return this.#events.close}set onclose(fn){webidl.brandCheck( +this,_WebSocket);if(this.#events.close){this.removeEventListener("close",this.#events.close)}if(typeof fn==="function"){this.#events.close=fn;this.addEventListener("close",fn)}else{this.#events.close= +null}}get onmessage(){webidl.brandCheck(this,_WebSocket);return this.#events.message}set onmessage(fn){webidl.brandCheck(this,_WebSocket);if(this.#events.message){this.removeEventListener("message",this.#events. +message)}if(typeof fn==="function"){this.#events.message=fn;this.addEventListener("message",fn)}else{this.#events.message=null}}get binaryType(){webidl.brandCheck(this,_WebSocket);return this[kBinaryType]}set binaryType(type){ +webidl.brandCheck(this,_WebSocket);if(type!=="blob"&&type!=="arraybuffer"){this[kBinaryType]="blob"}else{this[kBinaryType]=type}}#onConnectionEstablished(response,parsedExtensions){this[kResponse]=response; +const webSocketOptions=this[kController]?.dispatcher?.webSocketOptions;const maxFragments=webSocketOptions?.maxFragments;const maxPayloadSize=webSocketOptions?.maxPayloadSize;const parser=new ByteParser( +this,parsedExtensions,{maxFragments,maxPayloadSize});parser.on("drain",onParserDrain);parser.on("error",onParserError.bind(this));response.socket.ws=this;this[kByteParser]=parser;this.#sendQueue=new SendQueue( +response.socket);this[kReadyState]=states.OPEN;const extensions=response.headersList.get("sec-websocket-extensions");if(extensions!==null){this.#extensions=extensions}const protocol=response.headersList. +get("sec-websocket-protocol");if(protocol!==null){this.#protocol=protocol}fireEvent("open",this)}};WebSocket.CONNECTING=WebSocket.prototype.CONNECTING=states.CONNECTING;WebSocket.OPEN=WebSocket.prototype. +OPEN=states.OPEN;WebSocket.CLOSING=WebSocket.prototype.CLOSING=states.CLOSING;WebSocket.CLOSED=WebSocket.prototype.CLOSED=states.CLOSED;Object.defineProperties(WebSocket.prototype,{CONNECTING:staticPropertyDescriptors, +OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors,CLOSED:staticPropertyDescriptors,url:kEnumerableProperty,readyState:kEnumerableProperty,bufferedAmount:kEnumerableProperty,onopen:kEnumerableProperty, +onerror:kEnumerableProperty,onclose:kEnumerableProperty,close:kEnumerableProperty,onmessage:kEnumerableProperty,binaryType:kEnumerableProperty,send:kEnumerableProperty,extensions:kEnumerableProperty,protocol:kEnumerableProperty, +[Symbol.toStringTag]:{value:"WebSocket",writable:false,enumerable:false,configurable:true}});Object.defineProperties(WebSocket,{CONNECTING:staticPropertyDescriptors,OPEN:staticPropertyDescriptors,CLOSING:staticPropertyDescriptors, +CLOSED:staticPropertyDescriptors});webidl.converters["sequence"]=webidl.sequenceConverter(webidl.converters.DOMString);webidl.converters["DOMString or sequence"]=function(V,prefix,argument){ +if(webidl.util.Type(V)==="Object"&&Symbol.iterator in V){return webidl.converters["sequence"](V)}return webidl.converters.DOMString(V,prefix,argument)};webidl.converters.WebSocketInit=webidl. +dictionaryConverter([{key:"protocols",converter:webidl.converters["DOMString or sequence"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:webidl.converters.any,defaultValue:()=>getGlobalDispatcher()}, +{key:"headers",converter:webidl.nullableConverter(webidl.converters.HeadersInit)}]);webidl.converters["DOMString or sequence or WebSocketInit"]=function(V){if(webidl.util.Type(V)==="Object"&& +!(Symbol.iterator in V)){return webidl.converters.WebSocketInit(V)}return{protocols:webidl.converters["DOMString or sequence"](V)}};webidl.converters.WebSocketSendData=function(V){if(webidl. +util.Type(V)==="Object"){if(isBlobLike(V)){return webidl.converters.Blob(V,{strict:false})}if(ArrayBuffer.isView(V)||types.isArrayBuffer(V)){return webidl.converters.BufferSource(V)}}return webidl.converters. +USVString(V)};function onParserDrain(){this.ws[kResponse].socket.resume()}function onParserError(err){let message;let code;if(err instanceof CloseEvent){message=err.reason;code=err.code}else{message=err. +message}fireEvent("error",this,()=>new ErrorEvent("error",{error:err,message}));closeWebSocketConnection(this,code)}module.exports={WebSocket}}});var require_util8=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/util.js"(exports,module){"use strict";function isValidLastEventId(value){return value.indexOf("\0")=== +-1}function isASCIINumber(value){if(value.length===0)return false;for(let i=0;i57)return false}return true}function delay(ms){return new Promise( +resolve=>{setTimeout(resolve,ms).unref()})}module.exports={isValidLastEventId,isASCIINumber,delay}}});var require_eventsource_stream=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports,module){"use strict";var{Transform}=__require("node:stream"); +var{isASCIINumber,isValidLastEventId}=require_util8();var BOM=[239,187,191];var LF=10;var CR=13;var COLON=58;var SPACE=32;var EventSourceStream=class extends Transform{state=null;checkBOM=true;crlfCheck=false;eventEndCheck=false;buffer=null;pos=0;event={ +data:void 0,event:void 0,id:void 0,retry:void 0};constructor(options={}){options.readableObjectMode=true;super(options);this.state=options.eventSourceSettings||{};if(options.push){this.push=options.push}}_transform(chunk,_encoding,callback){ +if(chunk.length===0){callback();return}if(this.buffer){this.buffer=Buffer.concat([this.buffer,chunk])}else{this.buffer=chunk}if(this.checkBOM){switch(this.buffer.length){case 1:if(this.buffer[0]===BOM[0]){ +callback();return}this.checkBOM=false;callback();return;case 2:if(this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]){callback();return}this.checkBOM=false;break;case 3:if(this.buffer[0]===BOM[0]&&this. +buffer[1]===BOM[1]&&this.buffer[2]===BOM[2]){this.buffer=Buffer.alloc(0);this.checkBOM=false;callback();return}this.checkBOM=false;break;default:if(this.buffer[0]===BOM[0]&&this.buffer[1]===BOM[1]&&this. +buffer[2]===BOM[2]){this.buffer=this.buffer.subarray(3)}this.checkBOM=false;break}}while(this.pos0){event[field]=value}break}}processEvent(event){ +if(event.retry&&isASCIINumber(event.retry)){this.state.reconnectionTime=parseInt(event.retry,10)}if(event.id&&isValidLastEventId(event.id)){this.state.lastEventId=event.id}if(event.data!==void 0){this. +push({type:event.event||"message",options:{data:event.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};module. +exports={EventSourceStream}}});var require_eventsource=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/lib/web/eventsource/eventsource.js"(exports,module){"use strict";var{pipeline}=__require("node:stream");var{fetching}=require_fetch(); +var{makeRequest}=require_request2();var{webidl}=require_webidl();var{EventSourceStream}=require_eventsource_stream();var{parseMIMEType}=require_data_url();var{createFastMessageEvent}=require_events(); +var{isNetworkError}=require_response();var{delay}=require_util8();var{kEnumerableProperty}=require_util();var{environmentSettingsObject}=require_util2();var experimentalWarned=false;var defaultReconnectionTime=3e3; +var CONNECTING=0;var OPEN=1;var CLOSED=2;var ANONYMOUS="anonymous";var USE_CREDENTIALS="use-credentials";var EventSource=class _EventSource extends EventTarget{#events={open:null,error:null,message:null};#url=null;#withCredentials=false;#readyState=CONNECTING;#request=null;#controller=null;#dispatcher;#state;constructor(url,eventSourceInitDict={}){ +super();webidl.util.markAsUncloneable(this);const prefix="EventSource constructor";webidl.argumentLengthCheck(arguments,1,prefix);if(!experimentalWarned){experimentalWarned=true;process.emitWarning("E\ +ventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})}url=webidl.converters.USVString(url,prefix,"url");eventSourceInitDict=webidl.converters.EventSourceInitDict(eventSourceInitDict, +prefix,"eventSourceInitDict");this.#dispatcher=eventSourceInitDict.dispatcher;this.#state={lastEventId:"",reconnectionTime:defaultReconnectionTime};const settings=environmentSettingsObject;let urlRecord; +try{urlRecord=new URL(url,settings.settingsObject.baseUrl);this.#state.origin=urlRecord.origin}catch(e){throw new DOMException(e,"SyntaxError")}this.#url=urlRecord.href;let corsAttributeState=ANONYMOUS; +if(eventSourceInitDict.withCredentials){corsAttributeState=USE_CREDENTIALS;this.#withCredentials=true}const initRequest={redirect:"follow",keepalive:true,mode:"cors",credentials:corsAttributeState==="\ +anonymous"?"same-origin":"omit",referrer:"no-referrer"};initRequest.client=environmentSettingsObject.settingsObject;initRequest.headersList=[["accept",{name:"accept",value:"text/event-stream"}]];initRequest. +cache="no-store";initRequest.initiator="other";initRequest.urlList=[new URL(this.#url)];this.#request=makeRequest(initRequest);this.#connect()}get readyState(){return this.#readyState}get url(){return this.#url}get withCredentials(){ +return this.#withCredentials}#connect(){if(this.#readyState===CLOSED)return;this.#readyState=CONNECTING;const fetchParams={request:this.#request,dispatcher:this.#dispatcher};const processEventSourceEndOfBody=response=>{ +if(isNetworkError(response)){this.dispatchEvent(new Event("error"));this.close()}this.#reconnect()};fetchParams.processResponseEndOfBody=processEventSourceEndOfBody;fetchParams.processResponse=response=>{ +if(isNetworkError(response)){if(response.aborted){this.close();this.dispatchEvent(new Event("error"));return}else{this.#reconnect();return}}const contentType=response.headersList.get("content-type",true); +const mimeType=contentType!==null?parseMIMEType(contentType):"failure";const contentTypeValid=mimeType!=="failure"&&mimeType.essence==="text/event-stream";if(response.status!==200||contentTypeValid=== +false){this.close();this.dispatchEvent(new Event("error"));return}this.#readyState=OPEN;this.dispatchEvent(new Event("open"));this.#state.origin=response.urlList[response.urlList.length-1].origin;const eventSourceStream=new EventSourceStream( +{eventSourceSettings:this.#state,push:event=>{this.dispatchEvent(createFastMessageEvent(event.type,event.options))}});pipeline(response.body.stream,eventSourceStream,error2=>{if(error2?.aborted===false){ +this.close();this.dispatchEvent(new Event("error"))}})};this.#controller=fetching(fetchParams)}async#reconnect(){if(this.#readyState===CLOSED)return;this.#readyState=CONNECTING;this.dispatchEvent(new Event( +"error"));await delay(this.#state.reconnectionTime);if(this.#readyState!==CONNECTING)return;if(this.#state.lastEventId.length){this.#request.headersList.set("last-event-id",this.#state.lastEventId,true)} +this.#connect()}close(){webidl.brandCheck(this,_EventSource);if(this.#readyState===CLOSED)return;this.#readyState=CLOSED;this.#controller.abort();this.#request=null}get onopen(){return this.#events.open}set onopen(fn){ +if(this.#events.open){this.removeEventListener("open",this.#events.open)}if(typeof fn==="function"){this.#events.open=fn;this.addEventListener("open",fn)}else{this.#events.open=null}}get onmessage(){return this.#events. +message}set onmessage(fn){if(this.#events.message){this.removeEventListener("message",this.#events.message)}if(typeof fn==="function"){this.#events.message=fn;this.addEventListener("message",fn)}else{ +this.#events.message=null}}get onerror(){return this.#events.error}set onerror(fn){if(this.#events.error){this.removeEventListener("error",this.#events.error)}if(typeof fn==="function"){this.#events.error= +fn;this.addEventListener("error",fn)}else{this.#events.error=null}}};var constantsPropertyDescriptors={CONNECTING:{__proto__:null,configurable:false,enumerable:true,value:CONNECTING,writable:false},OPEN:{ +__proto__:null,configurable:false,enumerable:true,value:OPEN,writable:false},CLOSED:{__proto__:null,configurable:false,enumerable:true,value:CLOSED,writable:false}};Object.defineProperties(EventSource, +constantsPropertyDescriptors);Object.defineProperties(EventSource.prototype,constantsPropertyDescriptors);Object.defineProperties(EventSource.prototype,{close:kEnumerableProperty,onerror:kEnumerableProperty, +onmessage:kEnumerableProperty,onopen:kEnumerableProperty,readyState:kEnumerableProperty,url:kEnumerableProperty,withCredentials:kEnumerableProperty});webidl.converters.EventSourceInitDict=webidl.dictionaryConverter( +[{key:"withCredentials",converter:webidl.converters.boolean,defaultValue:()=>false},{key:"dispatcher",converter:webidl.converters.any}]);module.exports={EventSource,defaultReconnectionTime}}});var require_undici=__commonJS({"node_modules/.pnpm/undici@6.28.0/node_modules/undici/index.js"(exports,module){"use strict";var Client=require_client();var Dispatcher=require_dispatcher();var Pool=require_pool(); +var BalancedPool=require_balanced_pool();var Agent=require_agent();var ProxyAgent2=require_proxy_agent();var EnvHttpProxyAgent=require_env_http_proxy_agent();var RetryAgent=require_retry_agent();var errors=require_errors(); +var util=require_util();var{InvalidArgumentError}=errors;var api=require_api();var buildConnector=require_connect();var MockClient=require_mock_client();var MockAgent=require_mock_agent();var MockPool=require_mock_pool(); +var mockErrors=require_mock_errors();var RetryHandler=require_retry_handler();var{getGlobalDispatcher,setGlobalDispatcher}=require_global2();var DecoratorHandler=require_decorator_handler();var RedirectHandler=require_redirect_handler(); +var createRedirectInterceptor=require_redirect_interceptor();Object.assign(Dispatcher.prototype,api);module.exports.Dispatcher=Dispatcher;module.exports.Client=Client;module.exports.Pool=Pool;module.exports. +BalancedPool=BalancedPool;module.exports.Agent=Agent;module.exports.ProxyAgent=ProxyAgent2;module.exports.EnvHttpProxyAgent=EnvHttpProxyAgent;module.exports.RetryAgent=RetryAgent;module.exports.RetryHandler= +RetryHandler;module.exports.DecoratorHandler=DecoratorHandler;module.exports.RedirectHandler=RedirectHandler;module.exports.createRedirectInterceptor=createRedirectInterceptor;module.exports.interceptors= +{redirect:require_redirect(),retry:require_retry(),dump:require_dump(),dns:require_dns()};module.exports.buildConnector=buildConnector;module.exports.errors=errors;module.exports.util={parseHeaders:util. +parseHeaders,headerNameToString:util.headerNameToString};function makeDispatcher(fn){return(url,opts,handler)=>{if(typeof opts==="function"){handler=opts;opts=null}if(!url||typeof url!=="string"&&typeof url!== +"object"&&!(url instanceof URL)){throw new InvalidArgumentError("invalid url")}if(opts!=null&&typeof opts!=="object"){throw new InvalidArgumentError("invalid opts")}if(opts&&opts.path!=null){if(typeof opts. +path!=="string"){throw new InvalidArgumentError("invalid opts.path")}let path2=opts.path;if(!opts.path.startsWith("/")){path2=`/${path2}`}url=new URL(util.parseOrigin(url).origin+path2)}else{if(!opts){ +opts=typeof url==="object"?url:{}}url=util.parseURL(url)}const{agent,dispatcher=getGlobalDispatcher()}=opts;if(agent){throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?")} +return fn.call(dispatcher,{...opts,origin:url.origin,path:url.search?`${url.pathname}${url.search}`:url.pathname,method:opts.method||(opts.body?"PUT":"GET")},handler)}}module.exports.setGlobalDispatcher= +setGlobalDispatcher;module.exports.getGlobalDispatcher=getGlobalDispatcher;var fetchImpl=require_fetch().fetch;module.exports.fetch=async function fetch2(init,options=void 0){try{return await fetchImpl( +init,options)}catch(err){if(err&&typeof err==="object"){Error.captureStackTrace(err)}throw err}};module.exports.Headers=require_headers().Headers;module.exports.Response=require_response().Response;module. +exports.Request=require_request2().Request;module.exports.FormData=require_formdata().FormData;module.exports.File=globalThis.File??__require("node:buffer").File;module.exports.FileReader=require_filereader(). +FileReader;var{setGlobalOrigin,getGlobalOrigin}=require_global();module.exports.setGlobalOrigin=setGlobalOrigin;module.exports.getGlobalOrigin=getGlobalOrigin;var{CacheStorage}=require_cachestorage(); +var{kConstruct}=require_symbols4();module.exports.caches=new CacheStorage(kConstruct);var{deleteCookie,getCookies,getSetCookies,setCookie}=require_cookies();module.exports.deleteCookie=deleteCookie;module. +exports.getCookies=getCookies;module.exports.getSetCookies=getSetCookies;module.exports.setCookie=setCookie;var{parseMIMEType,serializeAMimeType}=require_data_url();module.exports.parseMIMEType=parseMIMEType; +module.exports.serializeAMimeType=serializeAMimeType;var{CloseEvent,ErrorEvent,MessageEvent}=require_events();module.exports.WebSocket=require_websocket().WebSocket;module.exports.CloseEvent=CloseEvent; +module.exports.ErrorEvent=ErrorEvent;module.exports.MessageEvent=MessageEvent;module.exports.request=makeDispatcher(api.request);module.exports.stream=makeDispatcher(api.stream);module.exports.pipeline= +makeDispatcher(api.pipeline);module.exports.connect=makeDispatcher(api.connect);module.exports.upgrade=makeDispatcher(api.upgrade);module.exports.MockClient=MockClient;module.exports.MockPool=MockPool; +module.exports.MockAgent=MockAgent;module.exports.mockErrors=mockErrors;var{EventSource}=require_eventsource();module.exports.EventSource=EventSource}});import*as os from"os";function toCommandValue(input){if(input===null||input===void 0){return""}else if(typeof input==="string"||input instanceof String){return input}return JSON.stringify(input)}function toCommandProperties(annotationProperties){ +if(!Object.keys(annotationProperties).length){return{}}return{title:annotationProperties.title,file:annotationProperties.file,line:annotationProperties.startLine,endLine:annotationProperties.endLine,col:annotationProperties. +startColumn,endColumn:annotationProperties.endColumn}}function issueCommand(command,properties,message){const cmd=new Command(command,properties,message);process.stdout.write(cmd.toString()+os.EOL)}var CMD_STRING="::";var Command=class{constructor(command,properties,message){if(!command){command="missing.command"}this.command=command;this.properties=properties;this.message=message}toString(){let cmdStr=CMD_STRING+ +this.command;if(this.properties&&Object.keys(this.properties).length>0){cmdStr+=" ";let first=true;for(const key in this.properties){if(this.properties.hasOwnProperty(key)){const val=this.properties[key]; +if(val){if(first){first=false}else{cmdStr+=","}cmdStr+=`${key}=${escapeProperty(val)}`}}}}cmdStr+=`${CMD_STRING}${escapeData(this.message)}`;return cmdStr}};function escapeData(s){return toCommandValue( +s).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(s){return toCommandValue(s).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace( +/,/g,"%2C")}import*as crypto from"crypto";import*as fs from"fs";import*as os2 from"os";function issueFileCommand(command,message){const filePath=process.env[`GITHUB_${command}`];if(!filePath){throw new Error(`Unable to find environment variable for file command ${command}`)}if(!fs.existsSync( +filePath)){throw new Error(`Missing file at path: ${filePath}`)}fs.appendFileSync(filePath,`${toCommandValue(message)}${os2.EOL}`,{encoding:"utf8"})}function prepareKeyValueMessage(key,value){const delimiter=`\ +ghadelimiter_${crypto.randomUUID()}`;const convertedValue=toCommandValue(value);if(key.includes(delimiter)){throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`)}if(convertedValue. +includes(delimiter)){throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`)}return`${key}<<${delimiter}${os2.EOL}${convertedValue}${os2.EOL}${delimiter}`}import*as os4 from"os";var tunnel=__toESM(require_tunnel2(),1);var import_undici=__toESM(require_undici(),1);var HttpCodes;(function(HttpCodes2){HttpCodes2[HttpCodes2["OK"]=200]="OK";HttpCodes2[HttpCodes2["MultipleChoices"]=300]="MultipleChoices";HttpCodes2[HttpCodes2["MovedPermanently"]=301]="MovedPermanent\ +ly";HttpCodes2[HttpCodes2["ResourceMoved"]=302]="ResourceMoved";HttpCodes2[HttpCodes2["SeeOther"]=303]="SeeOther";HttpCodes2[HttpCodes2["NotModified"]=304]="NotModified";HttpCodes2[HttpCodes2["UseProx\ +y"]=305]="UseProxy";HttpCodes2[HttpCodes2["SwitchProxy"]=306]="SwitchProxy";HttpCodes2[HttpCodes2["TemporaryRedirect"]=307]="TemporaryRedirect";HttpCodes2[HttpCodes2["PermanentRedirect"]=308]="Permane\ +ntRedirect";HttpCodes2[HttpCodes2["BadRequest"]=400]="BadRequest";HttpCodes2[HttpCodes2["Unauthorized"]=401]="Unauthorized";HttpCodes2[HttpCodes2["PaymentRequired"]=402]="PaymentRequired";HttpCodes2[HttpCodes2["\ +Forbidden"]=403]="Forbidden";HttpCodes2[HttpCodes2["NotFound"]=404]="NotFound";HttpCodes2[HttpCodes2["MethodNotAllowed"]=405]="MethodNotAllowed";HttpCodes2[HttpCodes2["NotAcceptable"]=406]="NotAccepta\ +ble";HttpCodes2[HttpCodes2["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";HttpCodes2[HttpCodes2["RequestTimeout"]=408]="RequestTimeout";HttpCodes2[HttpCodes2["Conflict"]=409]="Confl\ +ict";HttpCodes2[HttpCodes2["Gone"]=410]="Gone";HttpCodes2[HttpCodes2["TooManyRequests"]=429]="TooManyRequests";HttpCodes2[HttpCodes2["InternalServerError"]=500]="InternalServerError";HttpCodes2[HttpCodes2["\ +NotImplemented"]=501]="NotImplemented";HttpCodes2[HttpCodes2["BadGateway"]=502]="BadGateway";HttpCodes2[HttpCodes2["ServiceUnavailable"]=503]="ServiceUnavailable";HttpCodes2[HttpCodes2["GatewayTimeout"]= +504]="GatewayTimeout"})(HttpCodes||(HttpCodes={}));var Headers;(function(Headers2){Headers2["Accept"]="accept";Headers2["ContentType"]="content-type"})(Headers||(Headers={}));var MediaTypes;(function(MediaTypes2){ +MediaTypes2["ApplicationJson"]="application/json"})(MediaTypes||(MediaTypes={}));var HttpRedirectCodes=[HttpCodes.MovedPermanently,HttpCodes.ResourceMoved,HttpCodes.SeeOther,HttpCodes.TemporaryRedirect,HttpCodes.PermanentRedirect];var HttpResponseRetryCodes=[HttpCodes.BadGateway,HttpCodes. +ServiceUnavailable,HttpCodes.GatewayTimeout];import{EOL as EOL3}from"os";import{constants,promises}from"fs";var __awaiter=function(thisArg,_arguments,P,generator){function adopt(value){return value instanceof P?value:new P(function(resolve){resolve( +value)})}return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){ +reject(e)}}function step(result){result.done?resolve(result.value):adopt(result.value).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};var{access,appendFile, +writeFile}=promises;var SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";var Summary=class{constructor(){this._buffer=""}filePath(){return __awaiter(this,void 0,void 0,function*(){if(this._filePath){return this._filePath}const pathFromEnv=process.env[SUMMARY_ENV_VAR];if(!pathFromEnv){ +throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield access(pathFromEnv,constants.R_OK|constants.W_OK)}catch(_a2){ +throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`)}this._filePath=pathFromEnv;return this._filePath})}wrap(tag,content,attrs={}){ +const htmlAttrs=Object.entries(attrs).map(([key,value])=>` ${key}="${value}"`).join("");if(!content){return`<${tag}${htmlAttrs}>`}return`<${tag}${htmlAttrs}>${content}`}write(options){return __awaiter( +this,void 0,void 0,function*(){const overwrite=!!(options===null||options===void 0?void 0:options.overwrite);const filePath=yield this.filePath();const writeFunc=overwrite?writeFile:appendFile;yield writeFunc( +filePath,this._buffer,{encoding:"utf8"});return this.emptyBuffer()})}clear(){return __awaiter(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:true})})}stringify(){return this. +_buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(text,addEOL=false){this._buffer+=text;return addEOL?this.addEOL():this}addEOL(){return this.addRaw( +EOL3)}addCodeBlock(code,lang){const attrs=Object.assign({},lang&&{lang});const element=this.wrap("pre",this.wrap("code",code),attrs);return this.addRaw(element).addEOL()}addList(items,ordered=false){const tag=ordered? +"ol":"ul";const listItems=items.map(item=>this.wrap("li",item)).join("");const element=this.wrap(tag,listItems);return this.addRaw(element).addEOL()}addTable(rows){const tableBody=rows.map(row=>{const cells=row. +map(cell=>{if(typeof cell==="string"){return this.wrap("td",cell)}const{header,data,colspan,rowspan}=cell;const tag=header?"th":"td";const attrs=Object.assign(Object.assign({},colspan&&{colspan}),rowspan&& +{rowspan});return this.wrap(tag,data,attrs)}).join("");return this.wrap("tr",cells)}).join("");const element=this.wrap("table",tableBody);return this.addRaw(element).addEOL()}addDetails(label,content){ +const element=this.wrap("details",this.wrap("summary",label)+content);return this.addRaw(element).addEOL()}addImage(src,alt,options){const{width,height}=options||{};const attrs=Object.assign(Object.assign( +{},width&&{width}),height&&{height});const element=this.wrap("img",null,Object.assign({src,alt},attrs));return this.addRaw(element).addEOL()}addHeading(text,level){const tag=`h${level}`;const allowedTag=[ +"h1","h2","h3","h4","h5","h6"].includes(tag)?tag:"h1";const element=this.wrap(allowedTag,text);return this.addRaw(element).addEOL()}addSeparator(){const element=this.wrap("hr",null);return this.addRaw( +element).addEOL()}addBreak(){const element=this.wrap("br",null);return this.addRaw(element).addEOL()}addQuote(text,cite){const attrs=Object.assign({},cite&&{cite});const element=this.wrap("blockquote", +text,attrs);return this.addRaw(element).addEOL()}addLink(text,href){const element=this.wrap("a",text,{href});return this.addRaw(element).addEOL()}};var _summary=new Summary;import os3 from"os";import*as fs2 from"fs";var{chmod,copyFile,lstat,mkdir,open,readdir,rename,rm,rmdir,stat,symlink,unlink}=fs2.promises;var IS_WINDOWS=process.platform==="win32";var READONLY=fs2.constants.O_RDONLY;var IS_WINDOWS2=process.platform==="win32";var platform=os3.platform();var arch=os3.arch();var ExitCode;(function(ExitCode2){ExitCode2[ExitCode2["Success"]=0]="Success";ExitCode2[ExitCode2["Failure"]=1]="Failure"})(ExitCode||(ExitCode={}));function getInput(name,options){const val=process.env[`INPUT_${name.replace(/ /g,"_").toUpperCase()}`]||"";if(options&&options.required&&!val){throw new Error(`Input required and not supplied: ${name}`)} +if(options&&options.trimWhitespace===false){return val}return val.trim()}function setOutput(name,value){const filePath=process.env["GITHUB_OUTPUT"]||"";if(filePath){return issueFileCommand("OUTPUT",prepareKeyValueMessage(name,value))}process.stdout.write(os4.EOL);issueCommand( +"set-output",{name},toCommandValue(value))}function setFailed(message){process.exitCode=ExitCode.Failure;error(message)}function error(message,properties={}){issueCommand("error",toCommandProperties(properties),message instanceof Error?message.toString():message)}function warning(message,properties={}){issueCommand("wa\ +rning",toCommandProperties(properties),message instanceof Error?message.toString():message)}function info(message){process.stdout.write(message+os4.EOL)}import{mkdir as mkdir2,writeFile as writeFile2}from"node:fs/promises";import path from"node:path";function jsonStringifyReplacer(_,value){if(typeof value==="bigint")return value.toString();return value}function cached(getter){const set=false;return{get value(){if(!set){const value=getter();Object. +defineProperty(this,"value",{value});return value}throw new Error("cached value already set")}}}function cleanRegex(source){const start=source.startsWith("^")?1:0;const end=source.endsWith("$")?source.length-1:source.length;return source.slice(start,end)}function assignProp(target,prop,value){Object.defineProperty(target,prop,{value,writable:true,enumerable:true,configurable:true})}var captureStackTrace="captureStackTrace"in Error?Error.captureStackTrace:(..._args)=>{};function isObject(data){return typeof data==="object"&&data!==null&&!Array.isArray(data)}function clone(inst,def,params){const cl=new inst._zod.constr(def??inst._zod.def);if(!def||params?.parent)cl._zod.parent=inst;return cl}function normalizeParams(_params){const params=_params;if(!params) +return{};if(typeof params==="string")return{error:()=>params};if(params?.message!==void 0){if(params?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");params.error=params. +message}delete params.message;if(typeof params.error==="string")return{...params,error:()=>params.error};return params}function optionalKeys(shape){return Object.keys(shape).filter(k=>{return shape[k]._zod.optin!==void 0&&shape[k]._zod.optout==="optional"})}function aborted(x,startIndex=0){if(x.aborted===true)return true;for(let i=startIndex;i{var _a2; +(_a2=iss).path??(_a2.path=[]);iss.path.unshift(path2);return iss})}function unwrapMessage(message){return typeof message==="string"?message:message?.message}function attachSchema(issues,start,inst){var _a2; +for(let i=start;i{if(params?.Parent&&inst instanceof params.Parent)return true;return inst?._zod?.traits?.has(name)}}); +Object.defineProperty(_,"name",{value:name});return _}var $ZodAsyncError=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}};var $ZodEncodeError=class extends Error{constructor(name){super( +`Encountered unidirectional transform during encode: ${name}`);this.name="ZodEncodeError"}};(_a=globalThis).__zod_globalConfig??(_a.__zod_globalConfig={});var globalConfig=globalThis.__zod_globalConfig; +function config(newConfig){if(newConfig)Object.assign(globalConfig,newConfig);return globalConfig}function _getMessage(){const internals=this._zod;internals.message??(internals.message=JSON.stringify(internals.def,jsonStringifyReplacer,2));return internals.message}function _setMessage(value){this. +_zod.message=value}var _messageDesc={get:_getMessage,set:_setMessage,enumerable:true,configurable:true};var _zodDesc2={value:void 0,enumerable:false};var _issuesDesc={value:void 0,enumerable:false};var _installedToString=new WeakSet( +[Object.prototype,Error.prototype]);var initializer=(inst,def)=>{inst.name="$ZodError";_zodDesc2.value=inst._zod;Object.defineProperty(inst,"_zod",_zodDesc2);_issuesDesc.value=def;Object.defineProperty( +inst,"issues",_issuesDesc);_zodDesc2.value=void 0;_issuesDesc.value=void 0;Object.defineProperty(inst,"message",_messageDesc);const proto=Object.getPrototypeOf(inst);if(!_installedToString.has(proto)){ +_installedToString.add(proto);Object.defineProperty(proto,"toString",{configurable:true,enumerable:false,get(){const value=()=>this.message;Object.defineProperty(this,"toString",{value,configurable:true, +writable:true});return value},set(value){Object.defineProperty(this,"toString",{value,configurable:true,writable:true})}})}};var $ZodError=$constructor("$ZodError",initializer);var $ZodRealError=$constructor( +"$ZodError",initializer,void 0,{Parent:Error});var _parse=_Err=>{const fn=(schema,value,_ctx,_params)=>{const ctx=_ctx?{..._ctx,async:false}:{async:false};const result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise){throw new $ZodAsyncError} +if(result.issues.length){const e=new(_params?.Err??_Err)(result.issues.map(iss=>finalizeIssue(iss,ctx,config())));captureStackTrace(e,_params?.callee??fn);throw e}return result.value};return fn};var parse=_parse( +$ZodRealError);var _parseAsync=_Err=>{const fn=async(schema,value,_ctx,params)=>{const ctx=_ctx?{..._ctx,async:true}:{async:true};let result=schema._zod.run({value,issues:[]},ctx);if(result instanceof +Promise)result=await result;if(result.issues.length){const e=new(params?.Err??_Err)(result.issues.map(iss=>finalizeIssue(iss,ctx,config())));captureStackTrace(e,params?.callee??fn);throw e}return result. +value};return fn};var parseAsync=_parseAsync($ZodRealError);var _safeParse=_Err=>(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,async:false}:{async:false};const result=schema._zod.run({value,issues:[]}, +ctx);if(result instanceof Promise){throw new $ZodAsyncError}return result.issues.length?{success:false,error:new(_Err??$ZodError)(result.issues.map(iss=>finalizeIssue(iss,ctx,config())))}:{success:true, +data:result.value}};var safeParse=_safeParse($ZodRealError);var _safeParseAsync=_Err=>async(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,async:true}:{async:true};let result=schema._zod.run({value,issues:[]}, +ctx);if(result instanceof Promise)result=await result;return result.issues.length?{success:false,error:new _Err(result.issues.map(iss=>finalizeIssue(iss,ctx,config())))}:{success:true,data:result.value}}; +var safeParseAsync=_safeParseAsync($ZodRealError);var string=params=>{const regex=params?`[\\s\\S]{${params?.minimum??0},${params?.maximum??""}}`:`[\\s\\S]*`;return new RegExp(`^${regex}$`)};var $ZodCheck=$constructor("$ZodCheck",(inst,def)=>{var _a2;inst._zod??(inst._zod={});inst._zod.def=def;(_a2=inst._zod).onattach??(_a2.onattach=[])});var version={major:4,minor:5,patch:4};var $ZodType=$constructor("$ZodType",(inst,def)=>{var _a2;inst??(inst={});inst._zod.def=def;inst._zod.bag=inst._zod.bag||{};inst._zod.version=version;const defChecks=inst._zod.def.checks;const checks=inst. +_zod.traits.has("$ZodCheck")?[inst,...defChecks??[]]:defChecks?.length?[...defChecks]:[];for(const ch of checks){for(const fn of ch._zod.onattach){fn(inst)}}if(checks.length===0){(_a2=inst._zod).deferred?? +(_a2.deferred=[]);inst._zod.deferred?.push(()=>{inst._zod.run=inst._zod.parse})}else{const runChecks=(payload,checks2,ctx)=>{if(payload.memo)return payload;let isAborted=aborted(payload);let asyncResult; +for(const ch of checks2){if(ch._zod.def.when){if(explicitlyAborted(payload))continue;const shouldRun=ch._zod.def.when(payload);if(!shouldRun)continue}else if(isAborted){continue}const currLen=payload. +issues.length;const _=ch._zod.check(payload);if(_ instanceof Promise&&ctx?.async===false){throw new $ZodAsyncError}if(asyncResult||_ instanceof Promise){asyncResult=(asyncResult??Promise.resolve()).then( +async()=>{await _;const nextLen=payload.issues.length;if(nextLen===currLen)return;attachSchema(payload.issues,currLen,inst);if(!isAborted)isAborted=aborted(payload,currLen)})}else{const nextLen=payload. +issues.length;if(nextLen===currLen)continue;attachSchema(payload.issues,currLen,inst);if(!isAborted)isAborted=aborted(payload,currLen)}}if(asyncResult){return asyncResult.then(()=>{return payload})}return payload}; +const handleCanaryResult=(canary,payload,ctx)=>{if(aborted(canary)){canary.aborted=true;return canary}const checkResult=runChecks(payload,checks,ctx);if(checkResult instanceof Promise){if(ctx.async=== +false)throw new $ZodAsyncError;return checkResult.then(checkResult2=>inst._zod.parse(checkResult2,ctx))}return inst._zod.parse(checkResult,ctx)};inst._zod.run=(payload,ctx)=>{if(ctx.skipChecks){return inst. +_zod.parse(payload,ctx)}if(ctx.direction==="backward"){const canary=inst._zod.parse({value:payload.value,issues:[]},{...ctx,skipChecks:true});if(canary instanceof Promise){return canary.then(canary2=>{ +return handleCanaryResult(canary2,payload,ctx)})}return handleCanaryResult(canary,payload,ctx)}const result=inst._zod.parse(payload,ctx);if(result instanceof Promise){if(ctx.async===false)throw new $ZodAsyncError; +return result.then(result2=>runChecks(result2,checks,ctx))}return runChecks(result,checks,ctx)}}},{get"~standard"(){return hide(this,"~standard",standardProps(this))},set"~standard"(value){own(this,"~\ +standard",value)}});var toStandardResult=r=>r.success?{value:r.data}:{issues:r.error?.issues};function standardProps(inst){return{validate:value=>{try{return toStandardResult(safeParse(inst,value))}catch(_){ +return safeParseAsync(inst,value).then(toStandardResult)}},vendor:"zod",version:1}}var $ZodString=$constructor("$ZodString",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=[...inst?._zod.bag?.patterns?? +[]].pop()??string(inst._zod.bag);inst._zod.parse=(payload,_)=>{if(def.coerce)try{payload.value=String(payload.value)}catch(_2){}if(typeof payload.value==="string")return payload;payload.issues.push({expected:"\ +string",code:"invalid_type",input:payload.value,inst});return payload}});function handlePropertyResult(result,final,key,input,optin,optout){const isPresent=key in input;const isOptionalOut=optout==="optional";if(!isPresent&&isOptionalOut&&optin==="optional"){return}if(result. +issues.length){if(optin!==void 0&&isOptionalOut&&!isPresent){return}final.issues.push(...prefixIssues(key,result.issues))}if(!isPresent&&optin===void 0){if(!result.issues.length){final.issues.push({code:"\ +invalid_type",expected:"nonoptional",input:void 0,path:[key]})}return}if(result.value===void 0){if(isPresent){final.value[key]=void 0}}else{final.value[key]=result.value}}var NO_SYMBOL_KEYS=[];function normalizeDef(def){ +const keys=Object.keys(def.shape);const ownSymbols=Object.getOwnPropertySymbols(def.shape);const symbolKeys=ownSymbols.length?ownSymbols:NO_SYMBOL_KEYS;const allKeys=symbolKeys.length?[...keys,...symbolKeys]: +keys;for(const k of allKeys){if(!def.shape?.[k]?._zod?.traits?.has("$ZodType")){throw new Error(`Invalid element at key "${String(k)}": expected a Zod schema`)}}const okeys=optionalKeys(def.shape);return{ +...def,allKeys,symbolKeys,keySet:new Set(keys),numKeys:keys.length,optionalKeys:new Set(okeys)}}function handleCatchall(proms,input,payload,ctx,def,inst){const unrecognized=[];const keySet=def.keySet; +const _catchall=def.catchall._zod;const t=_catchall.def.type;const optin=_catchall.optin;const optout=_catchall.optout;for(const key in input){if(keySet.has(key))continue;if(key==="__proto__"){if(t=== +"never")unrecognized.push(key);continue}if(t==="never"){unrecognized.push(key);continue}const r=_catchall.run({value:input[key],issues:[]},ctx);if(r instanceof Promise){proms.push(r.then(r2=>handlePropertyResult( +r2,payload,key,input,optin,optout)))}else{handlePropertyResult(r,payload,key,input,optin,optout)}}if(unrecognized.length){payload.issues.push({code:"unrecognized_keys",keys:unrecognized,input,inst,continue:true})} +if(!proms.length)return payload;return Promise.all(proms).then(()=>{return payload})}var propShapes=new WeakMap;var $ZodObject=$constructor("$ZodObject",(inst,def)=>{$ZodType.init(inst,def);const desc=Object. +getOwnPropertyDescriptor(def,"shape");if(!desc?.get){const sh=def.shape;propShapes.set(def,sh);Object.defineProperty(def,"shape",{get:()=>{const newSh={...sh};Object.defineProperty(def,"shape",{value:newSh}); +propShapes.set(def,newSh);return newSh}})}const _normalized=cached(()=>normalizeDef(def));defineLazyInternal(inst,"propValues",zod=>{const shape=zod.def.shape;const propValues={};for(const key in shape){ +const field=shape[key]._zod;if(field.values){if(!Object.prototype.hasOwnProperty.call(propValues,key)){assignProp(propValues,key,new Set)}for(const v of field.values)propValues[key].add(v);if(field.optin!== +void 0)propValues[key].add(void 0)}}return propValues});const isObject2=isObject;const catchall=def.catchall;let value;const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{ +value??(value=_normalized.value);const input=payload.value;if(!isObject2(input)){payload.issues.push({expected:"object",code:"invalid_type",input,inst});return payload}payload.value=memo?memo.alloc(inst, +payload,{},ctx):{};const proms=[];const shape=value.shape;for(const key of value.allKeys){if(key==="__proto__")continue;const el2=shape[key];const optin=el2._zod.optin;const optout=el2._zod.optout;const r=el2. +_zod.run({value:input[key],issues:[]},ctx);if(r instanceof Promise){proms.push(r.then(r2=>handlePropertyResult(r2,payload,key,input,optin,optout)))}else{handlePropertyResult(r,payload,key,input,optin, +optout)}}if(!catchall){return proms.length?Promise.all(proms).then(()=>payload):payload}return handleCatchall(proms,input,payload,ctx,_normalized.value,inst)}});var $ZodTransform=$constructor("$ZodTransform",(inst,def)=>{$ZodType.init(inst,def);inst._zod.optin="optional";globalConfig.memoizer?.guard(inst);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="ba\ +ckward"){throw new $ZodEncodeError(inst.constructor.name)}const _out=def.transform(payload.value,payload);if(ctx.async){const output=_out instanceof Promise?_out:Promise.resolve(_out);return output.then( +output2=>{payload.value=output2;return payload})}if(_out instanceof Promise){throw new $ZodAsyncError}payload.value=_out;return payload}});function handleOptionalResult(payload,result){payload.value=result. +issues.length?void 0:result.value;return payload}var $ZodOptional=$constructor("$ZodOptional",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"optin",zod=>zod.def.innerType._zod.optin==="\ +defaulted"?"defaulted":"optional");inst._zod.optout="optional";defineLazyInternal(inst,"values",zod=>{const values=zod.def.innerType._zod.values;return values?new Set([...values,void 0]):void 0});defineLazyInternal( +inst,"pattern",zod=>{const pattern=zod.def.innerType._zod.pattern;return pattern?new RegExp(`^(${cleanRegex(pattern.source)})?$`):void 0});inst._zod.parse=(payload,ctx)=>{if(payload.value===void 0){if(def. +innerType._zod.optin!=="defaulted")return payload;const result=def.innerType._zod.run({value:payload.value,issues:[]},ctx);if(result instanceof Promise)return result.then(result2=>handleOptionalResult( +payload,result2));return handleOptionalResult(payload,result)}return def.innerType._zod.run(payload,ctx)}});var $ZodPipe=$constructor("$ZodPipe",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"values",zod=>zod.def.in._zod.values);defineLazyInternal(inst,"optin",zod=>zod.def.in._zod.optin);defineLazyInternal( +inst,"optout",zod=>zod.def.out._zod.optout);defineLazyInternal(inst,"propValues",zod=>zod.def.in._zod.propValues);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){const right=def.out._zod. +run(payload,ctx);if(right instanceof Promise){return right.then(right2=>handlePipeResult(right2,def.in,ctx))}return handlePipeResult(right,def.in,ctx)}const left=def.in._zod.run(payload,ctx);if(left instanceof +Promise){return left.then(left2=>handlePipeResult(left2,def.out,ctx))}return handlePipeResult(left,def.out,ctx)}});function handlePipeResult(left,next,ctx){if(left.issues.some(iss=>iss.code!=="unrecog\ +nized_keys")){left.aborted=true;return left}return next._zod.run({value:left.value,issues:left.issues},ctx)}var $ZodCustom=$constructor("$ZodCustom",(inst,def)=>{$ZodCheck.init(inst,def);$ZodType.init(inst,def);inst._zod.parse=(payload,_)=>{return payload};inst._zod.check=payload=>{const input=payload.value; +const r=def.fn(input);if(r instanceof Promise){return r.then(r2=>handleRefineResult(r2,payload,input,inst))}handleRefineResult(r,payload,input,inst);return}});function handleRefineResult(result,payload,input,inst){ +if(!result){const _iss={code:"custom",input,inst,path:[...inst._zod.def.path??[]],continue:!inst._zod.def.abort};if(inst._zod.def.params)_iss.params=inst._zod.def.params;payload.issues.push(issue2(_iss))}}function _string(Class,params){return new Class({type:"string",...normalizeParams(params)})}function _refine(Class,fn,_params){const schema=new Class({type:"custom",check:"custom",fn,...normalizeParams(_params)});return schema}var ZodMiniType=$constructor("ZodMiniType",(inst,def)=>{if(!inst._zod)throw new Error("Uninitialized schema in ZodMiniType.");$ZodType.init(inst,def);inst.def=def;inst.type=def.type},{get with(){return this. +check},set with(value){own(this,"with",value)},parse(data,params){return parse(this,data,params,{callee:this.parse})},parseAsync(data,params){return parseAsync(this,data,params,{callee:this.parseAsync})}, +safeParse(data,params){return safeParse(this,data,params)},safeParseAsync(data,params){return safeParseAsync(this,data,params)},check(...checks){const def=this.def;return this.clone({...def,checks:[...def. +checks??[],...checks.map(ch=>typeof ch==="function"?{_zod:{check:ch,def:{check:"custom"},onattach:[]}}:ch)]},{parent:true})},clone(_def,params){return clone(this,_def,params)},brand(){return this},register(reg,meta2){ +reg.add(this,meta2);return this},apply(fn,...args){return args.length===0?fn(this):fn(this,...args)}});var ZodMiniString=$constructor("ZodMiniString",(inst,def)=>{$ZodString.init(inst,def);ZodMiniType. +init(inst,def)});function string2(params){return _string(ZodMiniString,params)}var ZodMiniObject=$constructor("ZodMiniObject",(inst,def)=>{$ZodObject.init(inst,def);ZodMiniType.init(inst,def);installLazyProp(inst,"shape",self=>self._zod.def.shape,false)});function object(shape,params){ +const def={type:"object",shape:shape??{},...normalizeParams(params)};return new ZodMiniObject(def)}var ZodMiniTransform=$constructor("ZodMiniTransform",(inst,def)=>{$ZodTransform.init(inst,def);ZodMiniType.init(inst,def)});function transform(fn){return new ZodMiniTransform({type:"transform",transform:fn})} +var ZodMiniOptional=$constructor("ZodMiniOptional",(inst,def)=>{$ZodOptional.init(inst,def);ZodMiniType.init(inst,def)});function optional(innerType){return new ZodMiniOptional({type:"optional",innerType})}var ZodMiniPipe=$constructor("ZodMiniPipe",(inst,def)=>{$ZodPipe.init(inst,def);ZodMiniType.init(inst,def)});function pipe(in_,out){return new ZodMiniPipe({type:"pipe",in:in_,out})}var ZodMiniCustom=$constructor("ZodMiniCustom",(inst,def)=>{$ZodCustom.init(inst,def);ZodMiniType.init(inst,def)});function refine(fn,_params={}){return _refine(ZodMiniCustom,fn,_params)}var INDENT=" ";var indents=["",INDENT];var indentAt=depth=>{for(let i=indents.length;i<=depth;i+=1){indents.push(`${indents[i-1]??""}${INDENT}`)}return indents[depth]??""};var rule=(selector,declarations)=>({kind:"rule",selector,declarations});var atRule=(prelude,...children)=>({kind:"at",prelude,children});var cssComment=text=>({kind:"comment",text});var flatten=(children,into=[])=>{ +for(const child of children){if(!child){continue}if(Array.isArray(child)){flatten(child,into)}else{into.push(child)}}return into};var writeCss=(children,depth,sink)=>{const indent=indentAt(depth);for(const node of flatten( +children)){if(node.kind==="comment"){sink.out+=`${indent}/* ${node.text} */ +`;continue}const mark=sink.out.length;if(node.kind==="at"){sink.out+=`${indent}${node.prelude} { +`;const bodyStart2=sink.out.length;writeCss(node.children,depth+1,sink);sink.out=sink.out.length===bodyStart2?sink.out.slice(0,mark):`${sink.out}${indent}} +`;continue}sink.out+=`${indent}${node.selector} { +`;const bodyStart=sink.out.length;for(const property of Object.keys(node.declarations)){const value=node.declarations[property];if(value!==void 0){sink.out+=`${indent}${INDENT}${property}: ${String(value)}\ +; +`}}sink.out=sink.out.length===bodyStart?sink.out.slice(0,mark):`${sink.out}${indent}} +`}};var ENCODED=String.raw`[<>&"'\u00A0-\u9999\u0008]`;var NEEDS_ENCODING=new RegExp(ENCODED);var TO_ENCODE=new RegExp(ENCODED,"g");var BACKSPACE="\b";var encodeHTML=str=>{if(!NEEDS_ENCODING.test(str)){return str} +return str.replace(TO_ENCODE,char=>char===BACKSPACE?"":`&#${char.codePointAt(0)??0};`)};var INLINE_ELEMENTS=new Set(["text","tspan","title","desc","div"]);var el=(tag,attributes={},...children)=>({tag,attributes,children});var style=(...rules)=>({tag:"style",rules});var isStyle=child=>"r\ +ules"in child;var flatten2=(children,into=[])=>{for(const child of children){if(child===false||child===null||child===void 0||child===""){continue}if(Array.isArray(child)){flatten2(child,into)}else{into. +push(child)}}return into};var openTag=(node,selfClosing)=>{let tag=`<${node.tag}`;const{attributes}=node;for(const name of Object.keys(attributes)){const value=attributes[name];if(value!==void 0){tag+= +typeof value==="number"?` ${name}="${value}"`:` ${name}="${encodeHTML(value)}"`}}return`${tag}${selfClosing?" />":">"}`};var writeInline=node=>{if(typeof node==="string"){return encodeHTML(node)}if(typeof node=== +"number"){return String(node)}if(isStyle(node)){return""}const children=flatten2(node.children);if(children.length===0){return openTag(node,true)}let inner="";for(const child of children){inner+=writeInline( +child)}return`${openTag(node,false)}${inner}`};var write=(node,depth,sink)=>{const indent=indentAt(depth);if(typeof node==="string"){sink.out+=`${indent}${encodeHTML(node)} +`;return}if(typeof node==="number"){sink.out+=`${indent}${node} +`;return}const mark=sink.out.length;if(isStyle(node)){sink.out+=`${indent} +`;return}const children=flatten2(node.children);if(children.length===0){sink.out+=`${indent}${openTag(node,true)} +`;return}if(INLINE_ELEMENTS.has(node.tag)){let inner="";for(const child of children){inner+=writeInline(child)}sink.out+=inner===""?`${indent}${openTag(node,true)} +`:`${indent}${openTag(node,false)}${inner} +`;return}sink.out+=`${indent}${openTag(node,false)} +`;const bodyStart=sink.out.length;for(const child of children){write(child,depth+1,sink)}sink.out=sink.out.length===bodyStart?`${sink.out.slice(0,mark)}${indent}${openTag(node,true)} +`:`${sink.out}${indent} +`};var renderMarkup=root=>{const sink={out:""};write(root,0,sink);return sink.out};var themes={default:{title_color:"2f80ed",icon_color:"4c71f2",text_color:"434d58",bg_color:"fffefe"},default_repocard:{title_color:"2f80ed",icon_color:"586069",text_color:"434d58",bg_color:"fffefe"},light_github:{ +title_color:"0969da",icon_color:"0969da",text_color:"59636e",bg_color:"ffffff",border_color:"d1d9e0"},dark_github:{title_color:"4493f8",icon_color:"4493f8",text_color:"9198a1",bg_color:"0d1117",border_color:"\ +3d444d"},light_github_repocard:{title_color:"0969da",icon_color:"59636e",text_color:"59636e",bg_color:"ffffff",border_color:"d1d9e0"},dark_github_repocard:{title_color:"4493f8",icon_color:"9198a1",text_color:"\ +9198a1",bg_color:"0d1117",border_color:"3d444d"},transparent:{title_color:"006AFF",icon_color:"0579C3",text_color:"417E87",bg_color:"ffffff00"},shadow_red:{title_color:"9A0000",text_color:"444",icon_color:"\ +4F0000",border_color:"4F0000",bg_color:"ffffff00"},shadow_green:{title_color:"007A00",text_color:"444",icon_color:"003D00",border_color:"003D00",bg_color:"ffffff00"},shadow_blue:{title_color:"00779A", +text_color:"444",icon_color:"004450",border_color:"004490",bg_color:"ffffff00"},dark:{title_color:"fff",icon_color:"79ff97",text_color:"9f9f9f",bg_color:"151515"},radical:{title_color:"fe428e",icon_color:"\ +f8d847",text_color:"a9fef7",bg_color:"141321"},merko:{title_color:"abd200",icon_color:"b7d364",text_color:"68b587",bg_color:"0a0f0b"},gruvbox:{title_color:"fabd2f",icon_color:"fe8019",text_color:"8ec0\ +7c",bg_color:"282828"},gruvbox_light:{title_color:"b57614",icon_color:"af3a03",text_color:"427b58",bg_color:"fbf1c7"},tokyonight:{title_color:"70a5fd",icon_color:"bf91f3",text_color:"38bdae",bg_color:"\ +1a1b27"},onedark:{title_color:"e4bf7a",icon_color:"8eb573",text_color:"df6d74",bg_color:"282c34"},cobalt:{title_color:"e683d9",icon_color:"0480ef",text_color:"75eeb2",bg_color:"193549"},synthwave:{title_color:"\ +e2e9ec",icon_color:"ef8539",text_color:"e5289e",bg_color:"2b213a"},highcontrast:{title_color:"e7f216",icon_color:"00ffff",text_color:"fff",bg_color:"000"},dracula:{title_color:"ff6e96",icon_color:"79d\ +afa",text_color:"f8f8f2",bg_color:"282a36"},prussian:{title_color:"bddfff",icon_color:"38a0ff",text_color:"6e93b5",bg_color:"172f45"},monokai:{title_color:"eb1f6a",icon_color:"e28905",text_color:"f1f1\ +eb",bg_color:"272822"},vue:{title_color:"41b883",icon_color:"41b883",text_color:"273849",bg_color:"fffefe"},"vue-dark":{title_color:"41b883",icon_color:"41b883",text_color:"fffefe",bg_color:"273849"}, +"shades-of-purple":{title_color:"fad000",icon_color:"b362ff",text_color:"a599e9",bg_color:"2d2b55"},nightowl:{title_color:"c792ea",icon_color:"ffeb95",text_color:"7fdbca",bg_color:"011627"},buefy:{title_color:"\ +7957d5",icon_color:"ff3860",text_color:"363636",bg_color:"ffffff"},"blue-green":{title_color:"2f97c1",icon_color:"f5b700",text_color:"0cf574",bg_color:"040f0f"},algolia:{title_color:"00AEFF",icon_color:"\ +2DDE98",text_color:"FFFFFF",bg_color:"050F2C"},"great-gatsby":{title_color:"ffa726",icon_color:"ffb74d",text_color:"ffd95b",bg_color:"000000"},darcula:{title_color:"BA5F17",icon_color:"84628F",text_color:"\ +BEBEBE",bg_color:"242424"},bear:{title_color:"e03c8a",icon_color:"00AEFF",text_color:"bcb28d",bg_color:"1f2023"},"solarized-dark":{title_color:"268bd2",icon_color:"b58900",text_color:"859900",bg_color:"\ +002b36"},"solarized-light":{title_color:"268bd2",icon_color:"b58900",text_color:"859900",bg_color:"fdf6e3"},"chartreuse-dark":{title_color:"7fff00",icon_color:"00AEFF",text_color:"fff",bg_color:"000"}, +nord:{title_color:"81a1c1",text_color:"d8dee9",icon_color:"88c0d0",bg_color:"2e3440"},gotham:{title_color:"2aa889",icon_color:"599cab",text_color:"99d1ce",bg_color:"0c1014"},"material-palenight":{title_color:"\ +c792ea",icon_color:"89ddff",text_color:"a6accd",bg_color:"292d3e"},graywhite:{title_color:"24292e",icon_color:"24292e",text_color:"24292e",bg_color:"ffffff"},"vision-friendly-dark":{title_color:"ffb00\ +0",icon_color:"785ef0",text_color:"ffffff",bg_color:"000000"},"ayu-mirage":{title_color:"f4cd7c",icon_color:"73d0ff",text_color:"c7c8c2",bg_color:"1f2430"},"midnight-purple":{title_color:"9745f5",icon_color:"\ +9f4bff",text_color:"ffffff",bg_color:"000000"},calm:{title_color:"e07a5f",icon_color:"edae49",text_color:"ebcfb2",bg_color:"373f51"},"flag-india":{title_color:"ff8f1c",icon_color:"250E62",text_color:"\ +509E2F",bg_color:"ffffff"},omni:{title_color:"FF79C6",icon_color:"e7de79",text_color:"E1E1E6",bg_color:"191622"},react:{title_color:"61dafb",icon_color:"61dafb",text_color:"ffffff",bg_color:"20232a"}, +jolly:{title_color:"ff64da",icon_color:"a960ff",text_color:"ffffff",bg_color:"291B3E"},maroongold:{title_color:"F7EF8A",icon_color:"F7EF8A",text_color:"E0AA3E",bg_color:"260000"},yeblu:{title_color:"f\ +fff00",icon_color:"ffff00",text_color:"ffffff",bg_color:"002046"},blueberry:{title_color:"82aaff",icon_color:"89ddff",text_color:"27e8a7",bg_color:"242938"},slateorange:{title_color:"faa627",icon_color:"\ +faa627",text_color:"ffffff",bg_color:"36393f"},kacho_ga:{title_color:"bf4a3f",icon_color:"a64833",text_color:"d9c8a9",bg_color:"402b23"},outrun:{title_color:"ffcc00",icon_color:"ff1aff",text_color:"80\ +80ff",bg_color:"141439"},ocean_dark:{title_color:"8957B2",icon_color:"FFFFFF",text_color:"92D534",bg_color:"151A28"},city_lights:{title_color:"5D8CB3",icon_color:"4798FF",text_color:"718CA1",bg_color:"\ +1D252C"},github_dark:{title_color:"58A6FF",icon_color:"1F6FEB",text_color:"C3D1D9",bg_color:"0D1117"},github_dark_dimmed:{title_color:"539bf5",icon_color:"539bf5",text_color:"ADBAC7",bg_color:"24292F", +border_color:"373E47"},discord_old_blurple:{title_color:"7289DA",icon_color:"7289DA",text_color:"FFFFFF",bg_color:"2C2F33"},aura_dark:{title_color:"ff7372",icon_color:"6cffd0",text_color:"dbdbdb",bg_color:"\ +252334"},panda:{title_color:"19f9d899",icon_color:"19f9d899",text_color:"FF75B5",bg_color:"31353a"},noctis_minimus:{title_color:"d3b692",icon_color:"72b7c0",text_color:"c5cdd3",bg_color:"1b2932"},cobalt2:{ +title_color:"ffc600",icon_color:"ffffff",text_color:"0088ff",bg_color:"193549"},swift:{title_color:"000000",icon_color:"f05237",text_color:"000000",bg_color:"f7f7f7"},aura:{title_color:"a277ff",icon_color:"\ +ffca85",text_color:"61ffca",bg_color:"15141b"},apprentice:{title_color:"ffffff",icon_color:"ffffaf",text_color:"bcbcbc",bg_color:"262626"},moltack:{title_color:"86092C",icon_color:"86092C",text_color:"\ +574038",bg_color:"F5E1C0"},codeSTACKr:{title_color:"ff652f",icon_color:"FFE400",text_color:"ffffff",bg_color:"09131B",border_color:"0c1a25"},rose_pine:{title_color:"9ccfd8",icon_color:"ebbcba",text_color:"\ +e0def4",bg_color:"191724"},catppuccin_latte:{title_color:"137980",icon_color:"8839ef",text_color:"4c4f69",bg_color:"eff1f5"},catppuccin_mocha:{title_color:"94e2d5",icon_color:"cba6f7",text_color:"cdd6\ +f4",bg_color:"1e1e2e"},date_night:{title_color:"DA7885",text_color:"E1B2A2",icon_color:"BB8470",border_color:"170F0C",bg_color:"170F0C"},one_dark_pro:{title_color:"61AFEF",text_color:"E5C06E",icon_color:"\ +C678DD",border_color:"3B4048",bg_color:"23272E"},rose:{title_color:"8d192b",text_color:"862931",icon_color:"B71F36",border_color:"e9d8d4",bg_color:"e9d8d4"},holi:{title_color:"5FABEE",text_color:"D6E7\ +FF",icon_color:"5FABEE",border_color:"85A4C0",bg_color:"030314"},neon:{title_color:"00EAD3",text_color:"FF449F",icon_color:"00EAD3",border_color:"ffffff",bg_color:"000000"},blue_navy:{title_color:"82A\ +AFF",text_color:"82AAFF",icon_color:"82AAFF",border_color:"ffffff",bg_color:"000000"},calm_pink:{title_color:"e07a5f",text_color:"edae49",icon_color:"ebcfb2",border_color:"e1bc29",bg_color:"2b2d40"},ambient_gradient:{ +title_color:"ffffff",text_color:"ffffff",icon_color:"ffffff",bg_color:"35,4158d0,c850c0,ffcc70"}};var isThemeName=value=>{if(typeof value!=="string"){return false}return value in themes};var HEX_COLOR=/^(?[A-Fa-f0-9]{8}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{3})$/;var isBareHexColor=value=>typeof value==="string"&&HEX_COLOR.test(value);var isPrefixedHexColor=value=>typeof value=== +"string"&&value.startsWith("#")&&HEX_COLOR.test(value.slice(1));var isValidGradient=parts=>{const[angle,...stops]=parts;return stops.length>=2&&angle!==void 0&&angle.trim()!==""&&Number.isFinite(Number( +angle))&&stops.every(stop=>isBareHexColor(stop))};var isValidColorInput=color=>{if(color===null||color===void 0){return true}return isValidGradient(color.split(","))||isBareHexColor(color)};var fallbackColor=(color,fallback)=>{ +const colors=color?color.split(","):[];if(colors.length>1&&isValidGradient(colors)){return colors}if(color!==void 0&&isBareHexColor(color)){return`#${color}`}return fallback};var LIGHT_BG_BORDER="#000\ +0001f";var DARK_BG_BORDER="#ffffff26";var TRANSLUCENT_BG_BORDER="#8b949e59";var hexChannels=hex=>{const digits=hex.slice(1);const expanded=digits.length<=4?[...digits].map(digit=>digit+digit).join(""): +digits;const channel=index=>Number.parseInt(expanded.slice(index*2,index*2+2),16)/255;return[channel(0),channel(1),channel(2),expanded.length===8?channel(3):1]};var borderColorFor=bgColor=>{const hex=typeof bgColor=== +"string"?bgColor:`#${bgColor[1]??""}`;if(!isPrefixedHexColor(hex)){return LIGHT_BG_BORDER}const[r,g,b,a]=hexChannels(hex);if(a<.5){return TRANSLUCENT_BG_BORDER}return .2126*r+.7152*g+.0722*b<.5?DARK_BG_BORDER: +LIGHT_BG_BORDER};var BASE_COLOR_KEYS=["title_color","icon_color","text_color","bg_color","border_color","ring_color","prog_bar_bg_color","theme"];var THEME_VARIANTS=["light","dark"];var getCardColors=({ +title_color,text_color,icon_color,bg_color,border_color,ring_color,prog_bar_bg_color,theme})=>{const defaultTheme=themes.default;const selectedTheme=isThemeName(theme)?themes[theme]:defaultTheme;const themeBorderColor="\ +border_color"in selectedTheme?selectedTheme.border_color:void 0;const titleColor=fallbackColor(title_color||selectedTheme.title_color,`#${defaultTheme.title_color}`);const iconColor=fallbackColor(icon_color|| +selectedTheme.icon_color,`#${defaultTheme.icon_color}`);const textColor=fallbackColor(text_color||selectedTheme.text_color,`#${defaultTheme.text_color}`);const bgColor=fallbackColor(bg_color||selectedTheme. +bg_color,`#${defaultTheme.bg_color}`);const borderColor=fallbackColor(border_color||themeBorderColor,borderColorFor(bgColor));const ringColor=fallbackColor(ring_color,titleColor);const progBarBgColor=fallbackColor( +prog_bar_bg_color,"#ddd");if(typeof titleColor!=="string"||typeof textColor!=="string"||typeof ringColor!=="string"||typeof progBarBgColor!=="string"||typeof iconColor!=="string"||typeof borderColor!== +"string"){throw new TypeError("Unexpected behavior, all colors except background should be string.")}return{titleColor,iconColor,textColor,bgColor,borderColor,ringColor,progBarBgColor}};var extractLightDarkColors=(params,suffix)=>{ +const colors={};for(const key of BASE_COLOR_KEYS){const value=params[`${key}${suffix}`];if(value!==void 0){colors[key]=value}}return colors};var MODE_OVERRIDE_KEYS=THEME_VARIANTS.flatMap(variant=>BASE_COLOR_KEYS. +map(key=>`${key}_${variant}`));var getLightDarkColors=params=>{if(!MODE_OVERRIDE_KEYS.some(key=>params[key]!==void 0)){return{lightColors:getCardColors(params),darkColors:null}}return{lightColors:getCardColors( +{...params,...extractLightDarkColors(params,"_light")}),darkColors:getCardColors({...params,...extractLightDarkColors(params,"_dark")})}};var COLOR_PARAM_KEYS=[...BASE_COLOR_KEYS,...THEME_VARIANTS.flatMap( +variant=>BASE_COLOR_KEYS.map(key=>`${key}_${variant}`))];var THEME_PARAM_KEYS=["theme",...THEME_VARIANTS.map(variant=>`theme_${variant}`)];var GITHUB_USERNAME_PATTERN=/^[a-z\d](?:[a-z\d]|-(?=[a-z\d])){0,38}$/i;var OWNER_AFFILIATIONS=["OWNER","COLLABORATOR","ORGANIZATION_MEMBER"];var TRY_AGAIN_LATER="Please try again later";var RETRYABLE={invalid_param:false,missing_param:false,not_found:false,no_tokens:false,rate_limited:true,upstream:true};var SECONDARY_ERROR_MESSAGES={rate_limited:"\ +You can deploy own instance or wait until public will be no longer limited",no_tokens:"Please add an env variable called PAT_1 with your GitHub API token in your deployment environment",upstream:TRY_AGAIN_LATER}; +var CardError=class _CardError extends Error{code;secondaryMessage;param;constructor(message,init){super(message);this.name="CardError";this.code=init.code;this.param=init.param;this.secondaryMessage= +init.secondaryMessage??SECONDARY_ERROR_MESSAGES[init.code]}get retryable(){return RETRYABLE[this.code]}static invalidParam(param,secondaryMessage){return new _CardError("Something went wrong",{code:"i\ +nvalid_param",secondaryMessage,param})}static missingParam(params,secondaryMessage){const named=params.map(param=>`"${param}"`).join(", ");return new _CardError(`Missing params ${named} make sure you \ +pass the parameters in URL`,{code:"missing_param",secondaryMessage,param:params[0]})}static from(err){if(err instanceof _CardError){return err}if(err instanceof Error){return new _CardError(err.message, +{code:"upstream"})}return new _CardError("An unknown error occurred",{code:"upstream"})}};var INVALID_AFFILIATION=`Invalid owner affiliations. Valid values are: ${OWNER_AFFILIATIONS.join(", ")}`;var WAKATIME_USER_NOT_FOUND="\ +Make sure you have a public WakaTime profile";var USER_NOT_FOUND="Make sure the provided username is not an organization";var REPO_NOT_FOUND="Make sure the provided username and repository are correct"; +var GIST_NOT_FOUND="Make sure the provided gist ID is correct";var kFormatter=(num,precision)=>{const abs=Math.abs(num);const sign=Math.sign(num);if(typeof precision==="number"&&!Number.isNaN(precision)){return`${(sign*(abs/1e3)).toFixed(precision)}k`}if(abs<1e3){ +return sign*abs}return`${sign*Number.parseFloat((abs/1e3).toFixed(1))}k`};var formatBytes=bytes=>{if(bytes<0){throw new Error("Bytes must be a non-negative number")}if(bytes===0){return"0 B"}const sizes=[ +"B","KB","MB","GB","TB","PB","EB"];const base=1024;const i=Math.floor(Math.log(bytes)/Math.log(base));const unit=sizes[i];if(unit===void 0){throw new Error("Bytes is too large to convert to a human-re\ +adable string")}return`${(bytes/base**i).toFixed(1)} ${unit}`};var emojiMap_default={"100":"\u{1F4AF}","1234":"\u{1F522}",interrobang:"\u2049\uFE0F",tm:"\u2122\uFE0F",information_source:"\u2139\uFE0F",left_right_arrow:"\u2194\uFE0F",arrow_up_down:"\u2195\uFE0F",arrow_upper_left:"\ +\u2196\uFE0F",arrow_upper_right:"\u2197\uFE0F",arrow_lower_right:"\u2198\uFE0F",arrow_lower_left:"\u2199\uFE0F",keyboard:"\u2328\uFE0F",sunny:"\u2600\uFE0F",cloud:"\u2601\uFE0F",open_umbrella:"\u2602\uFE0F", +snowman_with_snow:"\u2603\uFE0F",comet:"\u2604\uFE0F",ballot_box_with_check:"\u2611\uFE0F",umbrella:"\u2614\uFE0F",coffee:"\u2615\uFE0F",shamrock:"\u2618\uFE0F",skull_and_crossbones:"\u2620\uFE0F",radioactive:"\ +\u2622\uFE0F",biohazard:"\u2623\uFE0F",orthodox_cross:"\u2626\uFE0F",wheel_of_dharma:"\u2638\uFE0F",frowning_face:"\u2639\uFE0F",female_sign:"\u2640\uFE0F",male_sign:"\u2642\uFE0F",aries:"\u2648\uFE0F", +taurus:"\u2649\uFE0F",sagittarius:"\u2650\uFE0F",capricorn:"\u2651\uFE0F",aquarius:"\u2652\uFE0F",pisces:"\u2653\uFE0F",spades:"\u2660\uFE0F",clubs:"\u2663\uFE0F",hearts:"\u2665\uFE0F",diamonds:"\u2666\uFE0F", +hotsprings:"\u2668\uFE0F",hammer_and_pick:"\u2692\uFE0F",anchor:"\u2693\uFE0F",crossed_swords:"\u2694\uFE0F",medical_symbol:"\u2695\uFE0F",balance_scale:"\u2696\uFE0F",alembic:"\u2697\uFE0F",gear:"\u2699\uFE0F", +scissors:"\u2702\uFE0F",white_check_mark:"\u2705\uFE0F",airplane:"\u2708\uFE0F",envelope:"\u2709\uFE0F",black_nib:"\u2712\uFE0F",heavy_check_mark:"\u2714\uFE0F",heavy_multiplication_x:"\u2716\uFE0F",star_of_david:"\ +\u2721\uFE0F",sparkles:"\u2728\uFE0F",eight_spoked_asterisk:"\u2733\uFE0F",eight_pointed_black_star:"\u2734\uFE0F",snowflake:"\u2744\uFE0F",sparkle:"\u2747\uFE0F",question:"\u2753\uFE0F",grey_question:"\ +\u2754\uFE0F",grey_exclamation:"\u2755\uFE0F",exclamation:"\u2757\uFE0F",heavy_exclamation_mark:"\u2757\uFE0F",heavy_heart_exclamation:"\u2763\uFE0F",heart:"\u2764\uFE0F",heavy_plus_sign:"\u2795\uFE0F", +heavy_minus_sign:"\u2796\uFE0F",heavy_division_sign:"\u2797\uFE0F",arrow_heading_up:"\u2934\uFE0F",arrow_heading_down:"\u2935\uFE0F",wavy_dash:"\u3030\uFE0F",congratulations:"\u3297\uFE0F",secret:"\u3299\uFE0F", +"+1":"\u{1F44D}\uFE0F",thumbsup:"\u{1F44D}\uFE0F","-1":"\u{1F44E}\uFE0F",thumbsdown:"\u{1F44E}\uFE0F","1st_place_medal":"\u{1F947}","2nd_place_medal":"\u{1F948}","3rd_place_medal":"\u{1F949}","8ball":"\ +\u{1F3B1}",a:"\u{1F170}\uFE0F",ab:"\u{1F18E}",abacus:"\u{1F9EE}",abc:"\u{1F524}",abcd:"\u{1F521}",accept:"\u{1F251}",accordion:"\u{1FA97}",adhesive_bandage:"\u{1FA79}",adult:"\u{1F9D1}",aerial_tramway:"\ +\u{1F6A1}",afghanistan:"\u{1F1E6}\u{1F1EB}",aland_islands:"\u{1F1E6}\u{1F1FD}",alarm_clock:"\u23F0\uFE0F",albania:"\u{1F1E6}\u{1F1F1}",algeria:"\u{1F1E9}\u{1F1FF}",alien:"\u{1F47D}\uFE0F",ambulance:"\u{1F691}\ +\uFE0F",american_samoa:"\u{1F1E6}\u{1F1F8}",amphora:"\u{1F3FA}",anatomical_heart:"\u{1FAC0}",andorra:"\u{1F1E6}\u{1F1E9}",angel:"\u{1F47C}",anger:"\u{1F4A2}",angola:"\u{1F1E6}\u{1F1F4}",angry:"\u{1F620}", +anguilla:"\u{1F1E6}\u{1F1EE}",anguished:"\u{1F627}",ant:"\u{1F41C}",antarctica:"\u{1F1E6}\u{1F1F6}",antigua_barbuda:"\u{1F1E6}\u{1F1EC}",apple:"\u{1F34E}",argentina:"\u{1F1E6}\u{1F1F7}",armenia:"\u{1F1E6}\u{1F1F2}", +arrow_backward:"\u25C0\uFE0F",arrow_double_down:"\u23EC\uFE0F",arrow_double_up:"\u23EB\uFE0F",arrow_down:"\u2B07\uFE0F",arrow_down_small:"\u{1F53D}",arrow_forward:"\u25B6\uFE0F",arrow_left:"\u2B05\uFE0F", +arrow_right:"\u27A1\uFE0F",arrow_right_hook:"\u21AA\uFE0F",arrow_up:"\u2B06\uFE0F",arrow_up_small:"\u{1F53C}",arrows_clockwise:"\u{1F503}",arrows_counterclockwise:"\u{1F504}",art:"\u{1F3A8}",articulated_lorry:"\ +\u{1F69B}",artificial_satellite:"\u{1F6F0}\uFE0F",artist:"\u{1F9D1}\u200D\u{1F3A8}",aruba:"\u{1F1E6}\u{1F1FC}",ascension_island:"\u{1F1E6}\u{1F1E8}",asterisk:"*\uFE0F\u20E3",astonished:"\u{1F632}",astronaut:"\ +\u{1F9D1}\u200D\u{1F680}",athletic_shoe:"\u{1F45F}",atm:"\u{1F3E7}",atom_symbol:"\u269B\uFE0F",australia:"\u{1F1E6}\u{1F1FA}",austria:"\u{1F1E6}\u{1F1F9}",auto_rickshaw:"\u{1F6FA}",avocado:"\u{1F951}", +axe:"\u{1FA93}",azerbaijan:"\u{1F1E6}\u{1F1FF}",b:"\u{1F171}\uFE0F",baby:"\u{1F476}",baby_bottle:"\u{1F37C}",baby_chick:"\u{1F424}",baby_symbol:"\u{1F6BC}\uFE0F",back:"\u{1F519}",bacon:"\u{1F953}",badger:"\ +\u{1F9A1}",badminton:"\u{1F3F8}",bagel:"\u{1F96F}",baggage_claim:"\u{1F6C4}",baguette_bread:"\u{1F956}",bahamas:"\u{1F1E7}\u{1F1F8}",bahrain:"\u{1F1E7}\u{1F1ED}",bald_man:"\u{1F468}\u200D\u{1F9B2}",bald_woman:"\ +\u{1F469}\u200D\u{1F9B2}",ballet_shoes:"\u{1FA70}",balloon:"\u{1F388}",ballot_box:"\u{1F5F3}\uFE0F",bamboo:"\u{1F38D}",banana:"\u{1F34C}",bangbang:"\u203C\uFE0F",bangladesh:"\u{1F1E7}\u{1F1E9}",banjo:"\ +\u{1FA95}",bank:"\u{1F3E6}",bar_chart:"\u{1F4CA}",barbados:"\u{1F1E7}\u{1F1E7}",barber:"\u{1F488}",baseball:"\u26BE\uFE0F",basket:"\u{1F9FA}",basketball:"\u{1F3C0}",basketball_man:"\u26F9\uFE0F\u200D\u2642\uFE0F", +bouncing_ball_man:"\u26F9\uFE0F\u200D\u2642\uFE0F",basketball_woman:"\u26F9\uFE0F\u200D\u2640\uFE0F",bouncing_ball_woman:"\u26F9\uFE0F\u200D\u2640\uFE0F",bat:"\u{1F987}",bath:"\u{1F6C0}",bathtub:"\u{1F6C1}", +battery:"\u{1F50B}",beach_umbrella:"\u{1F3D6}\uFE0F",beans:"\u{1FAD8}",bear:"\u{1F43B}",bearded_person:"\u{1F9D4}",beaver:"\u{1F9AB}",bed:"\u{1F6CF}\uFE0F",bee:"\u{1F41D}",honeybee:"\u{1F41D}",beer:"\u{1F37A}", +beers:"\u{1F37B}",beetle:"\u{1FAB2}",beginner:"\u{1F530}",belarus:"\u{1F1E7}\u{1F1FE}",belgium:"\u{1F1E7}\u{1F1EA}",belize:"\u{1F1E7}\u{1F1FF}",bell:"\u{1F514}",bell_pepper:"\u{1FAD1}",bellhop_bell:"\u{1F6CE}\ +\uFE0F",benin:"\u{1F1E7}\u{1F1EF}",bento:"\u{1F371}",bermuda:"\u{1F1E7}\u{1F1F2}",beverage_box:"\u{1F9C3}",bhutan:"\u{1F1E7}\u{1F1F9}",bicyclist:"\u{1F6B4}",bike:"\u{1F6B2}\uFE0F",biking_man:"\u{1F6B4}\u200D\u2642\uFE0F", +biking_woman:"\u{1F6B4}\u200D\u2640\uFE0F",bikini:"\u{1F459}",billed_cap:"\u{1F9E2}",bird:"\u{1F426}\uFE0F",birthday:"\u{1F382}",bison:"\u{1F9AC}",biting_lip:"\u{1FAE6}",black_bird:"\u{1F426}\u200D\u2B1B", +black_cat:"\u{1F408}\u200D\u2B1B",black_circle:"\u26AB\uFE0F",black_flag:"\u{1F3F4}",black_heart:"\u{1F5A4}",black_joker:"\u{1F0CF}",black_large_square:"\u2B1B\uFE0F",black_medium_small_square:"\u25FE\uFE0F", +black_medium_square:"\u25FC\uFE0F",black_small_square:"\u25AA\uFE0F",black_square_button:"\u{1F532}",blond_haired_man:"\u{1F471}\u200D\u2642\uFE0F",blond_haired_person:"\u{1F471}",blond_haired_woman:"\ +\u{1F471}\u200D\u2640\uFE0F",blonde_woman:"\u{1F471}\u200D\u2640\uFE0F",blossom:"\u{1F33C}",blowfish:"\u{1F421}",blue_book:"\u{1F4D8}",blue_car:"\u{1F699}",blue_heart:"\u{1F499}",blue_square:"\u{1F7E6}", +blueberries:"\u{1FAD0}",blush:"\u{1F60A}",boar:"\u{1F417}",boat:"\u26F5\uFE0F",sailboat:"\u26F5\uFE0F",bolivia:"\u{1F1E7}\u{1F1F4}",bomb:"\u{1F4A3}\uFE0F",bone:"\u{1F9B4}",book:"\u{1F4D6}",open_book:"\ +\u{1F4D6}",bookmark:"\u{1F516}",bookmark_tabs:"\u{1F4D1}",books:"\u{1F4DA}\uFE0F",boom:"\u{1F4A5}",collision:"\u{1F4A5}",boomerang:"\u{1FA83}",boot:"\u{1F462}",bosnia_herzegovina:"\u{1F1E7}\u{1F1E6}", +botswana:"\u{1F1E7}\u{1F1FC}",bouncing_ball_person:"\u26F9\uFE0F",bouquet:"\u{1F490}",bouvet_island:"\u{1F1E7}\u{1F1FB}",bow:"\u{1F647}",bow_and_arrow:"\u{1F3F9}",bowing_man:"\u{1F647}\u200D\u2642\uFE0F", +bowing_woman:"\u{1F647}\u200D\u2640\uFE0F",bowl_with_spoon:"\u{1F963}",bowling:"\u{1F3B3}",boxing_glove:"\u{1F94A}",boy:"\u{1F466}",brain:"\u{1F9E0}",brazil:"\u{1F1E7}\u{1F1F7}",bread:"\u{1F35E}",breast_feeding:"\ +\u{1F931}",bricks:"\u{1F9F1}",bride_with_veil:"\u{1F470}\u200D\u2640\uFE0F",woman_with_veil:"\u{1F470}\u200D\u2640\uFE0F",bridge_at_night:"\u{1F309}",briefcase:"\u{1F4BC}",british_indian_ocean_territory:"\ +\u{1F1EE}\u{1F1F4}",british_virgin_islands:"\u{1F1FB}\u{1F1EC}",broccoli:"\u{1F966}",broken_heart:"\u{1F494}",broom:"\u{1F9F9}",brown_circle:"\u{1F7E4}",brown_heart:"\u{1F90E}",brown_square:"\u{1F7EB}", +brunei:"\u{1F1E7}\u{1F1F3}",bubble_tea:"\u{1F9CB}",bubbles:"\u{1FAE7}",bucket:"\u{1FAA3}",bug:"\u{1F41B}",building_construction:"\u{1F3D7}\uFE0F",bulb:"\u{1F4A1}",bulgaria:"\u{1F1E7}\u{1F1EC}",bullettrain_front:"\ +\u{1F685}",bullettrain_side:"\u{1F684}",burkina_faso:"\u{1F1E7}\u{1F1EB}",burrito:"\u{1F32F}",burundi:"\u{1F1E7}\u{1F1EE}",bus:"\u{1F68C}",business_suit_levitating:"\u{1F574}\uFE0F",busstop:"\u{1F68F}", +bust_in_silhouette:"\u{1F464}",busts_in_silhouette:"\u{1F465}",butter:"\u{1F9C8}",butterfly:"\u{1F98B}",cactus:"\u{1F335}",cake:"\u{1F370}",calendar:"\u{1F4C6}",call_me_hand:"\u{1F919}",calling:"\u{1F4F2}", +cambodia:"\u{1F1F0}\u{1F1ED}",camel:"\u{1F42B}",camera:"\u{1F4F7}\uFE0F",camera_flash:"\u{1F4F8}",cameroon:"\u{1F1E8}\u{1F1F2}",camping:"\u{1F3D5}\uFE0F",canada:"\u{1F1E8}\u{1F1E6}",canary_islands:"\u{1F1EE}\ +\u{1F1E8}",cancer:"\u264B\uFE0F",candle:"\u{1F56F}\uFE0F",candy:"\u{1F36C}",canned_food:"\u{1F96B}",canoe:"\u{1F6F6}",cape_verde:"\u{1F1E8}\u{1F1FB}",capital_abcd:"\u{1F520}",car:"\u{1F697}",red_car:"\ +\u{1F697}",card_file_box:"\u{1F5C3}\uFE0F",card_index:"\u{1F4C7}",card_index_dividers:"\u{1F5C2}\uFE0F",caribbean_netherlands:"\u{1F1E7}\u{1F1F6}",carousel_horse:"\u{1F3A0}",carpentry_saw:"\u{1FA9A}", +carrot:"\u{1F955}",cartwheeling:"\u{1F938}",cat:"\u{1F431}",cat2:"\u{1F408}\uFE0F",cayman_islands:"\u{1F1F0}\u{1F1FE}",cd:"\u{1F4BF}\uFE0F",central_african_republic:"\u{1F1E8}\u{1F1EB}",ceuta_melilla:"\ +\u{1F1EA}\u{1F1E6}",chad:"\u{1F1F9}\u{1F1E9}",chains:"\u26D3\uFE0F",chair:"\u{1FA91}",champagne:"\u{1F37E}",chart:"\u{1F4B9}",chart_with_downwards_trend:"\u{1F4C9}",chart_with_upwards_trend:"\u{1F4C8}", +checkered_flag:"\u{1F3C1}",cheese:"\u{1F9C0}",cherries:"\u{1F352}",cherry_blossom:"\u{1F338}",chess_pawn:"\u265F\uFE0F",chestnut:"\u{1F330}",chicken:"\u{1F414}",child:"\u{1F9D2}",children_crossing:"\u{1F6B8}", +chile:"\u{1F1E8}\u{1F1F1}",chipmunk:"\u{1F43F}\uFE0F",chocolate_bar:"\u{1F36B}",chopsticks:"\u{1F962}",christmas_island:"\u{1F1E8}\u{1F1FD}",christmas_tree:"\u{1F384}",church:"\u26EA\uFE0F",cinema:"\u{1F3A6}", +circus_tent:"\u{1F3AA}",city_sunrise:"\u{1F307}",city_sunset:"\u{1F306}",cityscape:"\u{1F3D9}\uFE0F",cl:"\u{1F191}",clamp:"\u{1F5DC}\uFE0F",clap:"\u{1F44F}",clapper:"\u{1F3AC}\uFE0F",classical_building:"\ +\u{1F3DB}\uFE0F",climbing:"\u{1F9D7}",climbing_man:"\u{1F9D7}\u200D\u2642\uFE0F",climbing_woman:"\u{1F9D7}\u200D\u2640\uFE0F",clinking_glasses:"\u{1F942}",clipboard:"\u{1F4CB}\uFE0F",clipperton_island:"\ +\u{1F1E8}\u{1F1F5}",clock1:"\u{1F550}\uFE0F",clock10:"\u{1F559}\uFE0F",clock1030:"\u{1F565}\uFE0F",clock11:"\u{1F55A}\uFE0F",clock1130:"\u{1F566}\uFE0F",clock12:"\u{1F55B}\uFE0F",clock1230:"\u{1F567}\uFE0F", +clock130:"\u{1F55C}\uFE0F",clock2:"\u{1F551}\uFE0F",clock230:"\u{1F55D}\uFE0F",clock3:"\u{1F552}\uFE0F",clock330:"\u{1F55E}\uFE0F",clock4:"\u{1F553}\uFE0F",clock430:"\u{1F55F}\uFE0F",clock5:"\u{1F554}\uFE0F", +clock530:"\u{1F560}\uFE0F",clock6:"\u{1F555}\uFE0F",clock630:"\u{1F561}\uFE0F",clock7:"\u{1F556}\uFE0F",clock730:"\u{1F562}\uFE0F",clock8:"\u{1F557}\uFE0F",clock830:"\u{1F563}\uFE0F",clock9:"\u{1F558}\uFE0F", +clock930:"\u{1F564}\uFE0F",closed_book:"\u{1F4D5}",closed_lock_with_key:"\u{1F510}",closed_umbrella:"\u{1F302}",cloud_with_lightning:"\u{1F329}\uFE0F",cloud_with_lightning_and_rain:"\u26C8\uFE0F",cloud_with_rain:"\ +\u{1F327}\uFE0F",cloud_with_snow:"\u{1F328}\uFE0F",clown_face:"\u{1F921}",cn:"\u{1F1E8}\u{1F1F3}",coat:"\u{1F9E5}",cockroach:"\u{1FAB3}",cocktail:"\u{1F378}\uFE0F",coconut:"\u{1F965}",cocos_islands:"\u{1F1E8}\ +\u{1F1E8}",coffin:"\u26B0\uFE0F",coin:"\u{1FA99}",cold_face:"\u{1F976}",cold_sweat:"\u{1F630}",colombia:"\u{1F1E8}\u{1F1F4}",comoros:"\u{1F1F0}\u{1F1F2}",compass:"\u{1F9ED}",computer:"\u{1F4BB}\uFE0F", +computer_mouse:"\u{1F5B1}\uFE0F",confetti_ball:"\u{1F38A}",confounded:"\u{1F616}",confused:"\u{1F615}",congo_brazzaville:"\u{1F1E8}\u{1F1EC}",congo_kinshasa:"\u{1F1E8}\u{1F1E9}",construction:"\u{1F6A7}", +construction_worker:"\u{1F477}",construction_worker_man:"\u{1F477}\u200D\u2642\uFE0F",construction_worker_woman:"\u{1F477}\u200D\u2640\uFE0F",control_knobs:"\u{1F39B}\uFE0F",convenience_store:"\u{1F3EA}", +cook:"\u{1F9D1}\u200D\u{1F373}",cook_islands:"\u{1F1E8}\u{1F1F0}",cookie:"\u{1F36A}",cool:"\u{1F192}",cop:"\u{1F46E}",police_officer:"\u{1F46E}",copyright:"\xA9\uFE0F",coral:"\u{1FAB8}",corn:"\u{1F33D}", +costa_rica:"\u{1F1E8}\u{1F1F7}",cote_divoire:"\u{1F1E8}\u{1F1EE}",couch_and_lamp:"\u{1F6CB}\uFE0F",couple:"\u{1F46B}",couple_with_heart:"\u{1F491}",couple_with_heart_man_man:"\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F468}", +couple_with_heart_woman_man:"\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F468}",couple_with_heart_woman_woman:"\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F469}",couplekiss:"\u{1F48F}",couplekiss_man_man:"\u{1F468}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\ +\u{1F468}",couplekiss_man_woman:"\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F468}",couplekiss_woman_woman:"\u{1F469}\u200D\u2764\uFE0F\u200D\u{1F48B}\u200D\u{1F469}",cow:"\u{1F42E}",cow2:"\u{1F404}", +cowboy_hat_face:"\u{1F920}",crab:"\u{1F980}",crayon:"\u{1F58D}\uFE0F",credit_card:"\u{1F4B3}\uFE0F",crescent_moon:"\u{1F319}",cricket:"\u{1F997}",cricket_game:"\u{1F3CF}",croatia:"\u{1F1ED}\u{1F1F7}", +crocodile:"\u{1F40A}",croissant:"\u{1F950}",crossed_fingers:"\u{1F91E}",crossed_flags:"\u{1F38C}",crown:"\u{1F451}",crutch:"\u{1FA7C}",cry:"\u{1F622}",crying_cat_face:"\u{1F63F}",crystal_ball:"\u{1F52E}", +cuba:"\u{1F1E8}\u{1F1FA}",cucumber:"\u{1F952}",cup_with_straw:"\u{1F964}",cupcake:"\u{1F9C1}",cupid:"\u{1F498}",curacao:"\u{1F1E8}\u{1F1FC}",curling_stone:"\u{1F94C}",curly_haired_man:"\u{1F468}\u200D\u{1F9B1}", +curly_haired_woman:"\u{1F469}\u200D\u{1F9B1}",curly_loop:"\u27B0\uFE0F",currency_exchange:"\u{1F4B1}",curry:"\u{1F35B}",cursing_face:"\u{1F92C}",custard:"\u{1F36E}",customs:"\u{1F6C3}",cut_of_meat:"\u{1F969}", +cyclone:"\u{1F300}",cyprus:"\u{1F1E8}\u{1F1FE}",czech_republic:"\u{1F1E8}\u{1F1FF}",dagger:"\u{1F5E1}\uFE0F",dancer:"\u{1F483}",woman_dancing:"\u{1F483}",dancers:"\u{1F46F}",dancing_men:"\u{1F46F}\u200D\u2642\uFE0F", +dancing_women:"\u{1F46F}\u200D\u2640\uFE0F",dango:"\u{1F361}",dark_sunglasses:"\u{1F576}\uFE0F",dart:"\u{1F3AF}",dash:"\u{1F4A8}",date:"\u{1F4C5}",de:"\u{1F1E9}\u{1F1EA}",deaf_man:"\u{1F9CF}\u200D\u2642\uFE0F", +deaf_person:"\u{1F9CF}",deaf_woman:"\u{1F9CF}\u200D\u2640\uFE0F",deciduous_tree:"\u{1F333}",deer:"\u{1F98C}",denmark:"\u{1F1E9}\u{1F1F0}",department_store:"\u{1F3EC}",derelict_house:"\u{1F3DA}\uFE0F", +desert:"\u{1F3DC}\uFE0F",desert_island:"\u{1F3DD}\uFE0F",desktop_computer:"\u{1F5A5}\uFE0F",detective:"\u{1F575}\uFE0F",diamond_shape_with_a_dot_inside:"\u{1F4A0}",diego_garcia:"\u{1F1E9}\u{1F1EC}",disappointed:"\ +\u{1F61E}",disappointed_relieved:"\u{1F625}",disguised_face:"\u{1F978}",diving_mask:"\u{1F93F}",diya_lamp:"\u{1FA94}",dizzy:"\u{1F4AB}",dizzy_face:"\u{1F635}",djibouti:"\u{1F1E9}\u{1F1EF}",dna:"\u{1F9EC}", +do_not_litter:"\u{1F6AF}",dodo:"\u{1F9A4}",dog:"\u{1F436}",dog2:"\u{1F415}\uFE0F",dollar:"\u{1F4B5}",dolls:"\u{1F38E}",dolphin:"\u{1F42C}",flipper:"\u{1F42C}",dominica:"\u{1F1E9}\u{1F1F2}",dominican_republic:"\ +\u{1F1E9}\u{1F1F4}",donkey:"\u{1FACF}",door:"\u{1F6AA}",dotted_line_face:"\u{1FAE5}",doughnut:"\u{1F369}",dove:"\u{1F54A}\uFE0F",dragon:"\u{1F409}",dragon_face:"\u{1F432}",dress:"\u{1F457}",dromedary_camel:"\ +\u{1F42A}",drooling_face:"\u{1F924}",drop_of_blood:"\u{1FA78}",droplet:"\u{1F4A7}",drum:"\u{1F941}",duck:"\u{1F986}",dumpling:"\u{1F95F}",dvd:"\u{1F4C0}","e-mail":"\u{1F4E7}",email:"\u{1F4E7}",eagle:"\ +\u{1F985}",ear:"\u{1F442}\uFE0F",ear_of_rice:"\u{1F33E}",ear_with_hearing_aid:"\u{1F9BB}",earth_africa:"\u{1F30D}\uFE0F",earth_americas:"\u{1F30E}\uFE0F",earth_asia:"\u{1F30F}\uFE0F",ecuador:"\u{1F1EA}\u{1F1E8}", +egg:"\u{1F95A}",eggplant:"\u{1F346}",egypt:"\u{1F1EA}\u{1F1EC}",eight:"8\uFE0F\u20E3",eject_button:"\u23CF\uFE0F",el_salvador:"\u{1F1F8}\u{1F1FB}",electric_plug:"\u{1F50C}",elephant:"\u{1F418}",elevator:"\ +\u{1F6D7}",elf:"\u{1F9DD}",elf_man:"\u{1F9DD}\u200D\u2642\uFE0F",elf_woman:"\u{1F9DD}\u200D\u2640\uFE0F",empty_nest:"\u{1FAB9}",end:"\u{1F51A}",england:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}", +envelope_with_arrow:"\u{1F4E9}",equatorial_guinea:"\u{1F1EC}\u{1F1F6}",eritrea:"\u{1F1EA}\u{1F1F7}",es:"\u{1F1EA}\u{1F1F8}",estonia:"\u{1F1EA}\u{1F1EA}",ethiopia:"\u{1F1EA}\u{1F1F9}",eu:"\u{1F1EA}\u{1F1FA}", +european_union:"\u{1F1EA}\u{1F1FA}",euro:"\u{1F4B6}",european_castle:"\u{1F3F0}",european_post_office:"\u{1F3E4}",evergreen_tree:"\u{1F332}",exploding_head:"\u{1F92F}",expressionless:"\u{1F611}",eye:"\ +\u{1F441}\uFE0F",eye_speech_bubble:"\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F",eyeglasses:"\u{1F453}\uFE0F",eyes:"\u{1F440}",face_exhaling:"\u{1F62E}\u200D\u{1F4A8}",face_holding_back_tears:"\u{1F979}",face_in_clouds:"\ +\u{1F636}\u200D\u{1F32B}\uFE0F",face_with_diagonal_mouth:"\u{1FAE4}",face_with_head_bandage:"\u{1F915}",face_with_open_eyes_and_hand_over_mouth:"\u{1FAE2}",face_with_peeking_eye:"\u{1FAE3}",face_with_spiral_eyes:"\ +\u{1F635}\u200D\u{1F4AB}",face_with_thermometer:"\u{1F912}",facepalm:"\u{1F926}",facepunch:"\u{1F44A}",fist_oncoming:"\u{1F44A}",punch:"\u{1F44A}",factory:"\u{1F3ED}\uFE0F",factory_worker:"\u{1F9D1}\u200D\u{1F3ED}", +fairy:"\u{1F9DA}",fairy_man:"\u{1F9DA}\u200D\u2642\uFE0F",fairy_woman:"\u{1F9DA}\u200D\u2640\uFE0F",falafel:"\u{1F9C6}",falkland_islands:"\u{1F1EB}\u{1F1F0}",fallen_leaf:"\u{1F342}",family:"\u{1F46A}\uFE0F", +family_man_boy:"\u{1F468}\u200D\u{1F466}",family_man_boy_boy:"\u{1F468}\u200D\u{1F466}\u200D\u{1F466}",family_man_girl:"\u{1F468}\u200D\u{1F467}",family_man_girl_boy:"\u{1F468}\u200D\u{1F467}\u200D\u{1F466}", +family_man_girl_girl:"\u{1F468}\u200D\u{1F467}\u200D\u{1F467}",family_man_man_boy:"\u{1F468}\u200D\u{1F468}\u200D\u{1F466}",family_man_man_boy_boy:"\u{1F468}\u200D\u{1F468}\u200D\u{1F466}\u200D\u{1F466}", +family_man_man_girl:"\u{1F468}\u200D\u{1F468}\u200D\u{1F467}",family_man_man_girl_boy:"\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F466}",family_man_man_girl_girl:"\u{1F468}\u200D\u{1F468}\u200D\u{1F467}\u200D\u{1F467}", +family_man_woman_boy:"\u{1F468}\u200D\u{1F469}\u200D\u{1F466}",family_man_woman_boy_boy:"\u{1F468}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}",family_man_woman_girl:"\u{1F468}\u200D\u{1F469}\u200D\u{1F467}", +family_man_woman_girl_boy:"\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}",family_man_woman_girl_girl:"\u{1F468}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}",family_woman_boy:"\u{1F469}\u200D\u{1F466}", +family_woman_boy_boy:"\u{1F469}\u200D\u{1F466}\u200D\u{1F466}",family_woman_girl:"\u{1F469}\u200D\u{1F467}",family_woman_girl_boy:"\u{1F469}\u200D\u{1F467}\u200D\u{1F466}",family_woman_girl_girl:"\u{1F469}\u200D\u{1F467}\ +\u200D\u{1F467}",family_woman_woman_boy:"\u{1F469}\u200D\u{1F469}\u200D\u{1F466}",family_woman_woman_boy_boy:"\u{1F469}\u200D\u{1F469}\u200D\u{1F466}\u200D\u{1F466}",family_woman_woman_girl:"\u{1F469}\u200D\u{1F469}\u200D\u{1F467}", +family_woman_woman_girl_boy:"\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F466}",family_woman_woman_girl_girl:"\u{1F469}\u200D\u{1F469}\u200D\u{1F467}\u200D\u{1F467}",farmer:"\u{1F9D1}\u200D\u{1F33E}", +faroe_islands:"\u{1F1EB}\u{1F1F4}",fast_forward:"\u23E9\uFE0F",fax:"\u{1F4E0}",fearful:"\u{1F628}",feather:"\u{1FAB6}",feet:"\u{1F43E}",paw_prints:"\u{1F43E}",female_detective:"\u{1F575}\uFE0F\u200D\u2640\uFE0F", +ferris_wheel:"\u{1F3A1}",ferry:"\u26F4\uFE0F",field_hockey:"\u{1F3D1}",fiji:"\u{1F1EB}\u{1F1EF}",file_cabinet:"\u{1F5C4}\uFE0F",file_folder:"\u{1F4C1}",film_projector:"\u{1F4FD}\uFE0F",film_strip:"\u{1F39E}\uFE0F", +finland:"\u{1F1EB}\u{1F1EE}",fire:"\u{1F525}",fire_engine:"\u{1F692}",fire_extinguisher:"\u{1F9EF}",firecracker:"\u{1F9E8}",firefighter:"\u{1F9D1}\u200D\u{1F692}",fireworks:"\u{1F386}",first_quarter_moon:"\ +\u{1F313}",first_quarter_moon_with_face:"\u{1F31B}",fish:"\u{1F41F}\uFE0F",fish_cake:"\u{1F365}",fishing_pole_and_fish:"\u{1F3A3}",fist:"\u270A\uFE0F",fist_raised:"\u270A\uFE0F",fist_left:"\u{1F91B}", +fist_right:"\u{1F91C}",five:"5\uFE0F\u20E3",flags:"\u{1F38F}",flamingo:"\u{1F9A9}",flashlight:"\u{1F526}",flat_shoe:"\u{1F97F}",flatbread:"\u{1FAD3}",fleur_de_lis:"\u269C\uFE0F",flight_arrival:"\u{1F6EC}", +flight_departure:"\u{1F6EB}",floppy_disk:"\u{1F4BE}",flower_playing_cards:"\u{1F3B4}",flushed:"\u{1F633}",flute:"\u{1FA88}",fly:"\u{1FAB0}",flying_disc:"\u{1F94F}",flying_saucer:"\u{1F6F8}",fog:"\u{1F32B}\uFE0F", +foggy:"\u{1F301}",folding_hand_fan:"\u{1FAAD}",fondue:"\u{1FAD5}",foot:"\u{1F9B6}",football:"\u{1F3C8}",footprints:"\u{1F463}",fork_and_knife:"\u{1F374}",fortune_cookie:"\u{1F960}",fountain:"\u26F2\uFE0F", +fountain_pen:"\u{1F58B}\uFE0F",four:"4\uFE0F\u20E3",four_leaf_clover:"\u{1F340}",fox_face:"\u{1F98A}",fr:"\u{1F1EB}\u{1F1F7}",framed_picture:"\u{1F5BC}\uFE0F",free:"\u{1F193}",french_guiana:"\u{1F1EC}\u{1F1EB}", +french_polynesia:"\u{1F1F5}\u{1F1EB}",french_southern_territories:"\u{1F1F9}\u{1F1EB}",fried_egg:"\u{1F373}",fried_shrimp:"\u{1F364}",fries:"\u{1F35F}",frog:"\u{1F438}",frowning:"\u{1F626}",frowning_man:"\ +\u{1F64D}\u200D\u2642\uFE0F",frowning_person:"\u{1F64D}",frowning_woman:"\u{1F64D}\u200D\u2640\uFE0F",fu:"\u{1F595}",middle_finger:"\u{1F595}",fuelpump:"\u26FD\uFE0F",full_moon:"\u{1F315}\uFE0F",full_moon_with_face:"\ +\u{1F31D}",funeral_urn:"\u26B1\uFE0F",gabon:"\u{1F1EC}\u{1F1E6}",gambia:"\u{1F1EC}\u{1F1F2}",game_die:"\u{1F3B2}",garlic:"\u{1F9C4}",gb:"\u{1F1EC}\u{1F1E7}",uk:"\u{1F1EC}\u{1F1E7}",gem:"\u{1F48E}",gemini:"\ +\u264A\uFE0F",genie:"\u{1F9DE}",genie_man:"\u{1F9DE}\u200D\u2642\uFE0F",genie_woman:"\u{1F9DE}\u200D\u2640\uFE0F",georgia:"\u{1F1EC}\u{1F1EA}",ghana:"\u{1F1EC}\u{1F1ED}",ghost:"\u{1F47B}",gibraltar:"\u{1F1EC}\ +\u{1F1EE}",gift:"\u{1F381}",gift_heart:"\u{1F49D}",ginger_root:"\u{1FADA}",giraffe:"\u{1F992}",girl:"\u{1F467}",globe_with_meridians:"\u{1F310}",gloves:"\u{1F9E4}",goal_net:"\u{1F945}",goat:"\u{1F410}", +goggles:"\u{1F97D}",golf:"\u26F3\uFE0F",golfing:"\u{1F3CC}\uFE0F",golfing_man:"\u{1F3CC}\uFE0F\u200D\u2642\uFE0F",golfing_woman:"\u{1F3CC}\uFE0F\u200D\u2640\uFE0F",goose:"\u{1FABF}",gorilla:"\u{1F98D}", +grapes:"\u{1F347}",greece:"\u{1F1EC}\u{1F1F7}",green_apple:"\u{1F34F}",green_book:"\u{1F4D7}",green_circle:"\u{1F7E2}",green_heart:"\u{1F49A}",green_salad:"\u{1F957}",green_square:"\u{1F7E9}",greenland:"\ +\u{1F1EC}\u{1F1F1}",grenada:"\u{1F1EC}\u{1F1E9}",grey_heart:"\u{1FA76}",grimacing:"\u{1F62C}",grin:"\u{1F601}",grinning:"\u{1F600}",guadeloupe:"\u{1F1EC}\u{1F1F5}",guam:"\u{1F1EC}\u{1F1FA}",guard:"\u{1F482}", +guardsman:"\u{1F482}\u200D\u2642\uFE0F",guardswoman:"\u{1F482}\u200D\u2640\uFE0F",guatemala:"\u{1F1EC}\u{1F1F9}",guernsey:"\u{1F1EC}\u{1F1EC}",guide_dog:"\u{1F9AE}",guinea:"\u{1F1EC}\u{1F1F3}",guinea_bissau:"\ +\u{1F1EC}\u{1F1FC}",guitar:"\u{1F3B8}",gun:"\u{1F52B}",guyana:"\u{1F1EC}\u{1F1FE}",hair_pick:"\u{1FAAE}",haircut:"\u{1F487}",haircut_man:"\u{1F487}\u200D\u2642\uFE0F",haircut_woman:"\u{1F487}\u200D\u2640\uFE0F", +haiti:"\u{1F1ED}\u{1F1F9}",hamburger:"\u{1F354}",hammer:"\u{1F528}",hammer_and_wrench:"\u{1F6E0}\uFE0F",hamsa:"\u{1FAAC}",hamster:"\u{1F439}",hand:"\u270B\uFE0F",raised_hand:"\u270B\uFE0F",hand_over_mouth:"\ +\u{1F92D}",hand_with_index_finger_and_thumb_crossed:"\u{1FAF0}",handbag:"\u{1F45C}",handball_person:"\u{1F93E}",handshake:"\u{1F91D}",hankey:"\u{1F4A9}",poop:"\u{1F4A9}",shit:"\u{1F4A9}",hash:"#\uFE0F\u20E3", +hatched_chick:"\u{1F425}",hatching_chick:"\u{1F423}",headphones:"\u{1F3A7}\uFE0F",headstone:"\u{1FAA6}",health_worker:"\u{1F9D1}\u200D\u2695\uFE0F",hear_no_evil:"\u{1F649}",heard_mcdonald_islands:"\u{1F1ED}\u{1F1F2}", +heart_decoration:"\u{1F49F}",heart_eyes:"\u{1F60D}",heart_eyes_cat:"\u{1F63B}",heart_hands:"\u{1FAF6}",heart_on_fire:"\u2764\uFE0F\u200D\u{1F525}",heartbeat:"\u{1F493}",heartpulse:"\u{1F497}",heavy_dollar_sign:"\ +\u{1F4B2}",heavy_equals_sign:"\u{1F7F0}",hedgehog:"\u{1F994}",helicopter:"\u{1F681}",herb:"\u{1F33F}",hibiscus:"\u{1F33A}",high_brightness:"\u{1F506}",high_heel:"\u{1F460}",hiking_boot:"\u{1F97E}",hindu_temple:"\ +\u{1F6D5}",hippopotamus:"\u{1F99B}",hocho:"\u{1F52A}",knife:"\u{1F52A}",hole:"\u{1F573}\uFE0F",honduras:"\u{1F1ED}\u{1F1F3}",honey_pot:"\u{1F36F}",hong_kong:"\u{1F1ED}\u{1F1F0}",hook:"\u{1FA9D}",horse:"\ +\u{1F434}",horse_racing:"\u{1F3C7}",hospital:"\u{1F3E5}",hot_face:"\u{1F975}",hot_pepper:"\u{1F336}\uFE0F",hotdog:"\u{1F32D}",hotel:"\u{1F3E8}",hourglass:"\u231B\uFE0F",hourglass_flowing_sand:"\u23F3\uFE0F", +house:"\u{1F3E0}\uFE0F",house_with_garden:"\u{1F3E1}",houses:"\u{1F3D8}\uFE0F",hugs:"\u{1F917}",hungary:"\u{1F1ED}\u{1F1FA}",hushed:"\u{1F62F}",hut:"\u{1F6D6}",hyacinth:"\u{1FABB}",ice_cream:"\u{1F368}", +ice_cube:"\u{1F9CA}",ice_hockey:"\u{1F3D2}",ice_skate:"\u26F8\uFE0F",icecream:"\u{1F366}",iceland:"\u{1F1EE}\u{1F1F8}",id:"\u{1F194}",identification_card:"\u{1FAAA}",ideograph_advantage:"\u{1F250}",imp:"\ +\u{1F47F}",inbox_tray:"\u{1F4E5}\uFE0F",incoming_envelope:"\u{1F4E8}",index_pointing_at_the_viewer:"\u{1FAF5}",india:"\u{1F1EE}\u{1F1F3}",indonesia:"\u{1F1EE}\u{1F1E9}",infinity:"\u267E\uFE0F",information_desk_person:"\ +\u{1F481}",tipping_hand_person:"\u{1F481}",innocent:"\u{1F607}",iphone:"\u{1F4F1}",iran:"\u{1F1EE}\u{1F1F7}",iraq:"\u{1F1EE}\u{1F1F6}",ireland:"\u{1F1EE}\u{1F1EA}",isle_of_man:"\u{1F1EE}\u{1F1F2}",israel:"\ +\u{1F1EE}\u{1F1F1}",it:"\u{1F1EE}\u{1F1F9}",izakaya_lantern:"\u{1F3EE}",lantern:"\u{1F3EE}",jack_o_lantern:"\u{1F383}",jamaica:"\u{1F1EF}\u{1F1F2}",japan:"\u{1F5FE}",japanese_castle:"\u{1F3EF}",japanese_goblin:"\ +\u{1F47A}",japanese_ogre:"\u{1F479}",jar:"\u{1FAD9}",jeans:"\u{1F456}",jellyfish:"\u{1FABC}",jersey:"\u{1F1EF}\u{1F1EA}",jigsaw:"\u{1F9E9}",jordan:"\u{1F1EF}\u{1F1F4}",joy:"\u{1F602}",joy_cat:"\u{1F639}", +joystick:"\u{1F579}\uFE0F",jp:"\u{1F1EF}\u{1F1F5}",judge:"\u{1F9D1}\u200D\u2696\uFE0F",juggling_person:"\u{1F939}",kaaba:"\u{1F54B}",kangaroo:"\u{1F998}",kazakhstan:"\u{1F1F0}\u{1F1FF}",kenya:"\u{1F1F0}\u{1F1EA}", +key:"\u{1F511}",keycap_ten:"\u{1F51F}",khanda:"\u{1FAAF}",kick_scooter:"\u{1F6F4}",kimono:"\u{1F458}",kiribati:"\u{1F1F0}\u{1F1EE}",kiss:"\u{1F48B}",kissing:"\u{1F617}",kissing_cat:"\u{1F63D}",kissing_closed_eyes:"\ +\u{1F61A}",kissing_heart:"\u{1F618}",kissing_smiling_eyes:"\u{1F619}",kite:"\u{1FA81}",kiwi_fruit:"\u{1F95D}",kneeling_man:"\u{1F9CE}\u200D\u2642\uFE0F",kneeling_person:"\u{1F9CE}",kneeling_woman:"\u{1F9CE}\u200D\ +\u2640\uFE0F",knot:"\u{1FAA2}",koala:"\u{1F428}",koko:"\u{1F201}",kosovo:"\u{1F1FD}\u{1F1F0}",kr:"\u{1F1F0}\u{1F1F7}",kuwait:"\u{1F1F0}\u{1F1FC}",kyrgyzstan:"\u{1F1F0}\u{1F1EC}",lab_coat:"\u{1F97C}",label:"\ +\u{1F3F7}\uFE0F",lacrosse:"\u{1F94D}",ladder:"\u{1FA9C}",lady_beetle:"\u{1F41E}",laos:"\u{1F1F1}\u{1F1E6}",large_blue_circle:"\u{1F535}",large_blue_diamond:"\u{1F537}",large_orange_diamond:"\u{1F536}", +last_quarter_moon:"\u{1F317}",last_quarter_moon_with_face:"\u{1F31C}\uFE0F",latin_cross:"\u271D\uFE0F",latvia:"\u{1F1F1}\u{1F1FB}",laughing:"\u{1F606}",satisfied:"\u{1F606}",leafy_green:"\u{1F96C}",leaves:"\ +\u{1F343}",lebanon:"\u{1F1F1}\u{1F1E7}",ledger:"\u{1F4D2}",left_luggage:"\u{1F6C5}",left_speech_bubble:"\u{1F5E8}\uFE0F",leftwards_arrow_with_hook:"\u21A9\uFE0F",leftwards_hand:"\u{1FAF2}",leftwards_pushing_hand:"\ +\u{1FAF7}",leg:"\u{1F9B5}",lemon:"\u{1F34B}",leo:"\u264C\uFE0F",leopard:"\u{1F406}",lesotho:"\u{1F1F1}\u{1F1F8}",level_slider:"\u{1F39A}\uFE0F",liberia:"\u{1F1F1}\u{1F1F7}",libra:"\u264E\uFE0F",libya:"\ +\u{1F1F1}\u{1F1FE}",liechtenstein:"\u{1F1F1}\u{1F1EE}",light_blue_heart:"\u{1FA75}",light_rail:"\u{1F688}",link:"\u{1F517}",lion:"\u{1F981}",lips:"\u{1F444}",lipstick:"\u{1F484}",lithuania:"\u{1F1F1}\u{1F1F9}", +lizard:"\u{1F98E}",llama:"\u{1F999}",lobster:"\u{1F99E}",lock:"\u{1F512}\uFE0F",lock_with_ink_pen:"\u{1F50F}",lollipop:"\u{1F36D}",long_drum:"\u{1FA98}",loop:"\u27BF\uFE0F",lotion_bottle:"\u{1F9F4}",lotus:"\ +\u{1FAB7}",lotus_position:"\u{1F9D8}",lotus_position_man:"\u{1F9D8}\u200D\u2642\uFE0F",lotus_position_woman:"\u{1F9D8}\u200D\u2640\uFE0F",loud_sound:"\u{1F50A}",loudspeaker:"\u{1F4E2}",love_hotel:"\u{1F3E9}", +love_letter:"\u{1F48C}",love_you_gesture:"\u{1F91F}",low_battery:"\u{1FAAB}",low_brightness:"\u{1F505}",luggage:"\u{1F9F3}",lungs:"\u{1FAC1}",luxembourg:"\u{1F1F1}\u{1F1FA}",lying_face:"\u{1F925}",m:"\ +\u24C2\uFE0F",macau:"\u{1F1F2}\u{1F1F4}",macedonia:"\u{1F1F2}\u{1F1F0}",madagascar:"\u{1F1F2}\u{1F1EC}",mag:"\u{1F50D}\uFE0F",mag_right:"\u{1F50E}",mage:"\u{1F9D9}",mage_man:"\u{1F9D9}\u200D\u2642\uFE0F", +mage_woman:"\u{1F9D9}\u200D\u2640\uFE0F",magic_wand:"\u{1FA84}",magnet:"\u{1F9F2}",mahjong:"\u{1F004}\uFE0F",mailbox:"\u{1F4EB}\uFE0F",mailbox_closed:"\u{1F4EA}\uFE0F",mailbox_with_mail:"\u{1F4EC}\uFE0F", +mailbox_with_no_mail:"\u{1F4ED}\uFE0F",malawi:"\u{1F1F2}\u{1F1FC}",malaysia:"\u{1F1F2}\u{1F1FE}",maldives:"\u{1F1F2}\u{1F1FB}",male_detective:"\u{1F575}\uFE0F\u200D\u2642\uFE0F",mali:"\u{1F1F2}\u{1F1F1}", +malta:"\u{1F1F2}\u{1F1F9}",mammoth:"\u{1F9A3}",man:"\u{1F468}",man_artist:"\u{1F468}\u200D\u{1F3A8}",man_astronaut:"\u{1F468}\u200D\u{1F680}",man_beard:"\u{1F9D4}\u200D\u2642\uFE0F",man_cartwheeling:"\ +\u{1F938}\u200D\u2642\uFE0F",man_cook:"\u{1F468}\u200D\u{1F373}",man_dancing:"\u{1F57A}",man_facepalming:"\u{1F926}\u200D\u2642\uFE0F",man_factory_worker:"\u{1F468}\u200D\u{1F3ED}",man_farmer:"\u{1F468}\u200D\u{1F33E}", +man_feeding_baby:"\u{1F468}\u200D\u{1F37C}",man_firefighter:"\u{1F468}\u200D\u{1F692}",man_health_worker:"\u{1F468}\u200D\u2695\uFE0F",man_in_manual_wheelchair:"\u{1F468}\u200D\u{1F9BD}",man_in_motorized_wheelchair:"\ +\u{1F468}\u200D\u{1F9BC}",man_in_tuxedo:"\u{1F935}\u200D\u2642\uFE0F",man_judge:"\u{1F468}\u200D\u2696\uFE0F",man_juggling:"\u{1F939}\u200D\u2642\uFE0F",man_mechanic:"\u{1F468}\u200D\u{1F527}",man_office_worker:"\ +\u{1F468}\u200D\u{1F4BC}",man_pilot:"\u{1F468}\u200D\u2708\uFE0F",man_playing_handball:"\u{1F93E}\u200D\u2642\uFE0F",man_playing_water_polo:"\u{1F93D}\u200D\u2642\uFE0F",man_scientist:"\u{1F468}\u200D\u{1F52C}", +man_shrugging:"\u{1F937}\u200D\u2642\uFE0F",man_singer:"\u{1F468}\u200D\u{1F3A4}",man_student:"\u{1F468}\u200D\u{1F393}",man_teacher:"\u{1F468}\u200D\u{1F3EB}",man_technologist:"\u{1F468}\u200D\u{1F4BB}", +man_with_gua_pi_mao:"\u{1F472}",man_with_probing_cane:"\u{1F468}\u200D\u{1F9AF}",man_with_turban:"\u{1F473}\u200D\u2642\uFE0F",man_with_veil:"\u{1F470}\u200D\u2642\uFE0F",mandarin:"\u{1F34A}",orange:"\ +\u{1F34A}",tangerine:"\u{1F34A}",mango:"\u{1F96D}",mans_shoe:"\u{1F45E}",shoe:"\u{1F45E}",mantelpiece_clock:"\u{1F570}\uFE0F",manual_wheelchair:"\u{1F9BD}",maple_leaf:"\u{1F341}",maracas:"\u{1FA87}",marshall_islands:"\ +\u{1F1F2}\u{1F1ED}",martial_arts_uniform:"\u{1F94B}",martinique:"\u{1F1F2}\u{1F1F6}",mask:"\u{1F637}",massage:"\u{1F486}",massage_man:"\u{1F486}\u200D\u2642\uFE0F",massage_woman:"\u{1F486}\u200D\u2640\uFE0F", +mate:"\u{1F9C9}",mauritania:"\u{1F1F2}\u{1F1F7}",mauritius:"\u{1F1F2}\u{1F1FA}",mayotte:"\u{1F1FE}\u{1F1F9}",meat_on_bone:"\u{1F356}",mechanic:"\u{1F9D1}\u200D\u{1F527}",mechanical_arm:"\u{1F9BE}",mechanical_leg:"\ +\u{1F9BF}",medal_military:"\u{1F396}\uFE0F",medal_sports:"\u{1F3C5}",mega:"\u{1F4E3}",melon:"\u{1F348}",melting_face:"\u{1FAE0}",memo:"\u{1F4DD}",pencil:"\u{1F4DD}",men_wrestling:"\u{1F93C}\u200D\u2642\uFE0F", +mending_heart:"\u2764\uFE0F\u200D\u{1FA79}",menorah:"\u{1F54E}",mens:"\u{1F6B9}\uFE0F",mermaid:"\u{1F9DC}\u200D\u2640\uFE0F",merman:"\u{1F9DC}\u200D\u2642\uFE0F",merperson:"\u{1F9DC}",metal:"\u{1F918}", +metro:"\u{1F687}\uFE0F",mexico:"\u{1F1F2}\u{1F1FD}",microbe:"\u{1F9A0}",micronesia:"\u{1F1EB}\u{1F1F2}",microphone:"\u{1F3A4}",microscope:"\u{1F52C}",military_helmet:"\u{1FA96}",milk_glass:"\u{1F95B}", +milky_way:"\u{1F30C}",minibus:"\u{1F690}",minidisc:"\u{1F4BD}",mirror:"\u{1FA9E}",mirror_ball:"\u{1FAA9}",mobile_phone_off:"\u{1F4F4}",moldova:"\u{1F1F2}\u{1F1E9}",monaco:"\u{1F1F2}\u{1F1E8}",money_mouth_face:"\ +\u{1F911}",money_with_wings:"\u{1F4B8}",moneybag:"\u{1F4B0}\uFE0F",mongolia:"\u{1F1F2}\u{1F1F3}",monkey:"\u{1F412}",monkey_face:"\u{1F435}",monocle_face:"\u{1F9D0}",monorail:"\u{1F69D}",montenegro:"\u{1F1F2}\ +\u{1F1EA}",montserrat:"\u{1F1F2}\u{1F1F8}",moon:"\u{1F314}",waxing_gibbous_moon:"\u{1F314}",moon_cake:"\u{1F96E}",moose:"\u{1FACE}",morocco:"\u{1F1F2}\u{1F1E6}",mortar_board:"\u{1F393}\uFE0F",mosque:"\ +\u{1F54C}",mosquito:"\u{1F99F}",motor_boat:"\u{1F6E5}\uFE0F",motor_scooter:"\u{1F6F5}",motorcycle:"\u{1F3CD}\uFE0F",motorized_wheelchair:"\u{1F9BC}",motorway:"\u{1F6E3}\uFE0F",mount_fuji:"\u{1F5FB}",mountain:"\ +\u26F0\uFE0F",mountain_bicyclist:"\u{1F6B5}",mountain_biking_man:"\u{1F6B5}\u200D\u2642\uFE0F",mountain_biking_woman:"\u{1F6B5}\u200D\u2640\uFE0F",mountain_cableway:"\u{1F6A0}",mountain_railway:"\u{1F69E}", +mountain_snow:"\u{1F3D4}\uFE0F",mouse:"\u{1F42D}",mouse2:"\u{1F401}",mouse_trap:"\u{1FAA4}",movie_camera:"\u{1F3A5}",moyai:"\u{1F5FF}",mozambique:"\u{1F1F2}\u{1F1FF}",mrs_claus:"\u{1F936}",muscle:"\u{1F4AA}", +mushroom:"\u{1F344}",musical_keyboard:"\u{1F3B9}",musical_note:"\u{1F3B5}",musical_score:"\u{1F3BC}",mute:"\u{1F507}",mx_claus:"\u{1F9D1}\u200D\u{1F384}",myanmar:"\u{1F1F2}\u{1F1F2}",nail_care:"\u{1F485}", +name_badge:"\u{1F4DB}",namibia:"\u{1F1F3}\u{1F1E6}",national_park:"\u{1F3DE}\uFE0F",nauru:"\u{1F1F3}\u{1F1F7}",nauseated_face:"\u{1F922}",nazar_amulet:"\u{1F9FF}",necktie:"\u{1F454}",negative_squared_cross_mark:"\ +\u274E\uFE0F",nepal:"\u{1F1F3}\u{1F1F5}",nerd_face:"\u{1F913}",nest_with_eggs:"\u{1FABA}",nesting_dolls:"\u{1FA86}",netherlands:"\u{1F1F3}\u{1F1F1}",neutral_face:"\u{1F610}\uFE0F",new:"\u{1F195}",new_caledonia:"\ +\u{1F1F3}\u{1F1E8}",new_moon:"\u{1F311}",new_moon_with_face:"\u{1F31A}",new_zealand:"\u{1F1F3}\u{1F1FF}",newspaper:"\u{1F4F0}",newspaper_roll:"\u{1F5DE}\uFE0F",next_track_button:"\u23ED\uFE0F",ng:"\u{1F196}", +ng_man:"\u{1F645}\u200D\u2642\uFE0F",no_good_man:"\u{1F645}\u200D\u2642\uFE0F",ng_woman:"\u{1F645}\u200D\u2640\uFE0F",no_good_woman:"\u{1F645}\u200D\u2640\uFE0F",nicaragua:"\u{1F1F3}\u{1F1EE}",niger:"\ +\u{1F1F3}\u{1F1EA}",nigeria:"\u{1F1F3}\u{1F1EC}",night_with_stars:"\u{1F303}",nine:"9\uFE0F\u20E3",ninja:"\u{1F977}",niue:"\u{1F1F3}\u{1F1FA}",no_bell:"\u{1F515}",no_bicycles:"\u{1F6B3}",no_entry:"\u26D4\uFE0F", +no_entry_sign:"\u{1F6AB}",no_good:"\u{1F645}",no_mobile_phones:"\u{1F4F5}",no_mouth:"\u{1F636}",no_pedestrians:"\u{1F6B7}",no_smoking:"\u{1F6AD}\uFE0F","non-potable_water":"\u{1F6B1}",norfolk_island:"\ +\u{1F1F3}\u{1F1EB}",north_korea:"\u{1F1F0}\u{1F1F5}",northern_mariana_islands:"\u{1F1F2}\u{1F1F5}",norway:"\u{1F1F3}\u{1F1F4}",nose:"\u{1F443}",notebook:"\u{1F4D3}",notebook_with_decorative_cover:"\u{1F4D4}", +notes:"\u{1F3B6}",nut_and_bolt:"\u{1F529}",o:"\u2B55\uFE0F",o2:"\u{1F17E}\uFE0F",ocean:"\u{1F30A}",octopus:"\u{1F419}",oden:"\u{1F362}",office:"\u{1F3E2}",office_worker:"\u{1F9D1}\u200D\u{1F4BC}",oil_drum:"\ +\u{1F6E2}\uFE0F",ok:"\u{1F197}",ok_hand:"\u{1F44C}",ok_man:"\u{1F646}\u200D\u2642\uFE0F",ok_person:"\u{1F646}",ok_woman:"\u{1F646}\u200D\u2640\uFE0F",old_key:"\u{1F5DD}\uFE0F",older_adult:"\u{1F9D3}", +older_man:"\u{1F474}",older_woman:"\u{1F475}",olive:"\u{1FAD2}",om:"\u{1F549}\uFE0F",oman:"\u{1F1F4}\u{1F1F2}",on:"\u{1F51B}",oncoming_automobile:"\u{1F698}\uFE0F",oncoming_bus:"\u{1F68D}\uFE0F",oncoming_police_car:"\ +\u{1F694}\uFE0F",oncoming_taxi:"\u{1F696}",one:"1\uFE0F\u20E3",one_piece_swimsuit:"\u{1FA71}",onion:"\u{1F9C5}",open_file_folder:"\u{1F4C2}",open_hands:"\u{1F450}",open_mouth:"\u{1F62E}",ophiuchus:"\u26CE\uFE0F", +orange_book:"\u{1F4D9}",orange_circle:"\u{1F7E0}",orange_heart:"\u{1F9E1}",orange_square:"\u{1F7E7}",orangutan:"\u{1F9A7}",otter:"\u{1F9A6}",outbox_tray:"\u{1F4E4}\uFE0F",owl:"\u{1F989}",ox:"\u{1F402}", +oyster:"\u{1F9AA}",package:"\u{1F4E6}\uFE0F",page_facing_up:"\u{1F4C4}",page_with_curl:"\u{1F4C3}",pager:"\u{1F4DF}\uFE0F",paintbrush:"\u{1F58C}\uFE0F",pakistan:"\u{1F1F5}\u{1F1F0}",palau:"\u{1F1F5}\u{1F1FC}", +palestinian_territories:"\u{1F1F5}\u{1F1F8}",palm_down_hand:"\u{1FAF3}",palm_tree:"\u{1F334}",palm_up_hand:"\u{1FAF4}",palms_up_together:"\u{1F932}",panama:"\u{1F1F5}\u{1F1E6}",pancakes:"\u{1F95E}",panda_face:"\ +\u{1F43C}",paperclip:"\u{1F4CE}",paperclips:"\u{1F587}\uFE0F",papua_new_guinea:"\u{1F1F5}\u{1F1EC}",parachute:"\u{1FA82}",paraguay:"\u{1F1F5}\u{1F1FE}",parasol_on_ground:"\u26F1\uFE0F",parking:"\u{1F17F}\uFE0F", +parrot:"\u{1F99C}",part_alternation_mark:"\u303D\uFE0F",partly_sunny:"\u26C5\uFE0F",partying_face:"\u{1F973}",passenger_ship:"\u{1F6F3}\uFE0F",passport_control:"\u{1F6C2}",pause_button:"\u23F8\uFE0F", +pea_pod:"\u{1FADB}",peace_symbol:"\u262E\uFE0F",peach:"\u{1F351}",peacock:"\u{1F99A}",peanuts:"\u{1F95C}",pear:"\u{1F350}",pen:"\u{1F58A}\uFE0F",pencil2:"\u270F\uFE0F",penguin:"\u{1F427}",pensive:"\u{1F614}", +people_holding_hands:"\u{1F9D1}\u200D\u{1F91D}\u200D\u{1F9D1}",people_hugging:"\u{1FAC2}",performing_arts:"\u{1F3AD}\uFE0F",persevere:"\u{1F623}",person_bald:"\u{1F9D1}\u200D\u{1F9B2}",person_curly_hair:"\ +\u{1F9D1}\u200D\u{1F9B1}",person_feeding_baby:"\u{1F9D1}\u200D\u{1F37C}",person_fencing:"\u{1F93A}",person_in_manual_wheelchair:"\u{1F9D1}\u200D\u{1F9BD}",person_in_motorized_wheelchair:"\u{1F9D1}\u200D\u{1F9BC}", +person_in_tuxedo:"\u{1F935}",person_red_hair:"\u{1F9D1}\u200D\u{1F9B0}",person_white_hair:"\u{1F9D1}\u200D\u{1F9B3}",person_with_crown:"\u{1FAC5}",person_with_probing_cane:"\u{1F9D1}\u200D\u{1F9AF}",person_with_turban:"\ +\u{1F473}",person_with_veil:"\u{1F470}",peru:"\u{1F1F5}\u{1F1EA}",petri_dish:"\u{1F9EB}",philippines:"\u{1F1F5}\u{1F1ED}",phone:"\u260E\uFE0F",telephone:"\u260E\uFE0F",pick:"\u26CF\uFE0F",pickup_truck:"\ +\u{1F6FB}",pie:"\u{1F967}",pig:"\u{1F437}",pig2:"\u{1F416}",pig_nose:"\u{1F43D}",pill:"\u{1F48A}",pilot:"\u{1F9D1}\u200D\u2708\uFE0F",pinata:"\u{1FA85}",pinched_fingers:"\u{1F90C}",pinching_hand:"\u{1F90F}", +pineapple:"\u{1F34D}",ping_pong:"\u{1F3D3}",pink_heart:"\u{1FA77}",pirate_flag:"\u{1F3F4}\u200D\u2620\uFE0F",pitcairn_islands:"\u{1F1F5}\u{1F1F3}",pizza:"\u{1F355}",placard:"\u{1FAA7}",place_of_worship:"\ +\u{1F6D0}",plate_with_cutlery:"\u{1F37D}\uFE0F",play_or_pause_button:"\u23EF\uFE0F",playground_slide:"\u{1F6DD}",pleading_face:"\u{1F97A}",plunger:"\u{1FAA0}",point_down:"\u{1F447}\uFE0F",point_left:"\ +\u{1F448}\uFE0F",point_right:"\u{1F449}\uFE0F",point_up:"\u261D\uFE0F",point_up_2:"\u{1F446}\uFE0F",poland:"\u{1F1F5}\u{1F1F1}",polar_bear:"\u{1F43B}\u200D\u2744\uFE0F",police_car:"\u{1F693}",policeman:"\ +\u{1F46E}\u200D\u2642\uFE0F",policewoman:"\u{1F46E}\u200D\u2640\uFE0F",poodle:"\u{1F429}",popcorn:"\u{1F37F}",portugal:"\u{1F1F5}\u{1F1F9}",post_office:"\u{1F3E3}",postal_horn:"\u{1F4EF}",postbox:"\u{1F4EE}", +potable_water:"\u{1F6B0}",potato:"\u{1F954}",potted_plant:"\u{1FAB4}",pouch:"\u{1F45D}",poultry_leg:"\u{1F357}",pound:"\u{1F4B7}",pouring_liquid:"\u{1FAD7}",pout:"\u{1F621}",rage:"\u{1F621}",pouting_cat:"\ +\u{1F63E}",pouting_face:"\u{1F64E}",pouting_man:"\u{1F64E}\u200D\u2642\uFE0F",pouting_woman:"\u{1F64E}\u200D\u2640\uFE0F",pray:"\u{1F64F}",prayer_beads:"\u{1F4FF}",pregnant_man:"\u{1FAC3}",pregnant_person:"\ +\u{1FAC4}",pregnant_woman:"\u{1F930}",pretzel:"\u{1F968}",previous_track_button:"\u23EE\uFE0F",prince:"\u{1F934}",princess:"\u{1F478}",printer:"\u{1F5A8}\uFE0F",probing_cane:"\u{1F9AF}",puerto_rico:"\u{1F1F5}\ +\u{1F1F7}",purple_circle:"\u{1F7E3}",purple_heart:"\u{1F49C}",purple_square:"\u{1F7EA}",purse:"\u{1F45B}",pushpin:"\u{1F4CC}",put_litter_in_its_place:"\u{1F6AE}",qatar:"\u{1F1F6}\u{1F1E6}",rabbit:"\u{1F430}", +rabbit2:"\u{1F407}",raccoon:"\u{1F99D}",racehorse:"\u{1F40E}",racing_car:"\u{1F3CE}\uFE0F",radio:"\u{1F4FB}\uFE0F",radio_button:"\u{1F518}",railway_car:"\u{1F683}",railway_track:"\u{1F6E4}\uFE0F",rainbow:"\ +\u{1F308}",rainbow_flag:"\u{1F3F3}\uFE0F\u200D\u{1F308}",raised_back_of_hand:"\u{1F91A}",raised_eyebrow:"\u{1F928}",raised_hand_with_fingers_splayed:"\u{1F590}\uFE0F",raised_hands:"\u{1F64C}",raising_hand:"\ +\u{1F64B}",raising_hand_man:"\u{1F64B}\u200D\u2642\uFE0F",raising_hand_woman:"\u{1F64B}\u200D\u2640\uFE0F",ram:"\u{1F40F}",ramen:"\u{1F35C}",rat:"\u{1F400}",razor:"\u{1FA92}",receipt:"\u{1F9FE}",record_button:"\ +\u23FA\uFE0F",recycle:"\u267B\uFE0F",red_circle:"\u{1F534}",red_envelope:"\u{1F9E7}",red_haired_man:"\u{1F468}\u200D\u{1F9B0}",red_haired_woman:"\u{1F469}\u200D\u{1F9B0}",red_square:"\u{1F7E5}",registered:"\ +\xAE\uFE0F",relaxed:"\u263A\uFE0F",relieved:"\u{1F60C}",reminder_ribbon:"\u{1F397}\uFE0F",repeat:"\u{1F501}",repeat_one:"\u{1F502}",rescue_worker_helmet:"\u26D1\uFE0F",restroom:"\u{1F6BB}",reunion:"\u{1F1F7}\ +\u{1F1EA}",revolving_hearts:"\u{1F49E}",rewind:"\u23EA\uFE0F",rhinoceros:"\u{1F98F}",ribbon:"\u{1F380}",rice:"\u{1F35A}",rice_ball:"\u{1F359}",rice_cracker:"\u{1F358}",rice_scene:"\u{1F391}",right_anger_bubble:"\ +\u{1F5EF}\uFE0F",rightwards_hand:"\u{1FAF1}",rightwards_pushing_hand:"\u{1FAF8}",ring:"\u{1F48D}",ring_buoy:"\u{1F6DF}",ringed_planet:"\u{1FA90}",robot:"\u{1F916}",rock:"\u{1FAA8}",rocket:"\u{1F680}", +rofl:"\u{1F923}",roll_eyes:"\u{1F644}",roll_of_paper:"\u{1F9FB}",roller_coaster:"\u{1F3A2}",roller_skate:"\u{1F6FC}",romania:"\u{1F1F7}\u{1F1F4}",rooster:"\u{1F413}",rose:"\u{1F339}",rosette:"\u{1F3F5}\uFE0F", +rotating_light:"\u{1F6A8}",round_pushpin:"\u{1F4CD}",rowboat:"\u{1F6A3}",rowing_man:"\u{1F6A3}\u200D\u2642\uFE0F",rowing_woman:"\u{1F6A3}\u200D\u2640\uFE0F",ru:"\u{1F1F7}\u{1F1FA}",rugby_football:"\u{1F3C9}", +runner:"\u{1F3C3}",running:"\u{1F3C3}",running_man:"\u{1F3C3}\u200D\u2642\uFE0F",running_shirt_with_sash:"\u{1F3BD}",running_woman:"\u{1F3C3}\u200D\u2640\uFE0F",rwanda:"\u{1F1F7}\u{1F1FC}",sa:"\u{1F202}\uFE0F", +safety_pin:"\u{1F9F7}",safety_vest:"\u{1F9BA}",sake:"\u{1F376}",salt:"\u{1F9C2}",saluting_face:"\u{1FAE1}",samoa:"\u{1F1FC}\u{1F1F8}",san_marino:"\u{1F1F8}\u{1F1F2}",sandal:"\u{1F461}",sandwich:"\u{1F96A}", +santa:"\u{1F385}",sao_tome_principe:"\u{1F1F8}\u{1F1F9}",sari:"\u{1F97B}",sassy_man:"\u{1F481}\u200D\u2642\uFE0F",tipping_hand_man:"\u{1F481}\u200D\u2642\uFE0F",sassy_woman:"\u{1F481}\u200D\u2640\uFE0F", +tipping_hand_woman:"\u{1F481}\u200D\u2640\uFE0F",satellite:"\u{1F4E1}",saudi_arabia:"\u{1F1F8}\u{1F1E6}",sauna_man:"\u{1F9D6}\u200D\u2642\uFE0F",sauna_person:"\u{1F9D6}",sauna_woman:"\u{1F9D6}\u200D\u2640\uFE0F", +sauropod:"\u{1F995}",saxophone:"\u{1F3B7}",scarf:"\u{1F9E3}",school:"\u{1F3EB}",school_satchel:"\u{1F392}",scientist:"\u{1F9D1}\u200D\u{1F52C}",scorpion:"\u{1F982}",scorpius:"\u264F\uFE0F",scotland:"\u{1F3F4}\ +\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}",scream:"\u{1F631}",scream_cat:"\u{1F640}",screwdriver:"\u{1FA9B}",scroll:"\u{1F4DC}",seal:"\u{1F9AD}",seat:"\u{1F4BA}",see_no_evil:"\u{1F648}",seedling:"\ +\u{1F331}",selfie:"\u{1F933}",senegal:"\u{1F1F8}\u{1F1F3}",serbia:"\u{1F1F7}\u{1F1F8}",service_dog:"\u{1F415}\u200D\u{1F9BA}",seven:"7\uFE0F\u20E3",sewing_needle:"\u{1FAA1}",seychelles:"\u{1F1F8}\u{1F1E8}", +shaking_face:"\u{1FAE8}",shallow_pan_of_food:"\u{1F958}",shark:"\u{1F988}",shaved_ice:"\u{1F367}",sheep:"\u{1F411}",shell:"\u{1F41A}",shield:"\u{1F6E1}\uFE0F",shinto_shrine:"\u26E9\uFE0F",ship:"\u{1F6A2}", +shirt:"\u{1F455}",tshirt:"\u{1F455}",shopping:"\u{1F6CD}\uFE0F",shopping_cart:"\u{1F6D2}",shorts:"\u{1FA73}",shower:"\u{1F6BF}",shrimp:"\u{1F990}",shrug:"\u{1F937}",shushing_face:"\u{1F92B}",sierra_leone:"\ +\u{1F1F8}\u{1F1F1}",signal_strength:"\u{1F4F6}",singapore:"\u{1F1F8}\u{1F1EC}",singer:"\u{1F9D1}\u200D\u{1F3A4}",sint_maarten:"\u{1F1F8}\u{1F1FD}",six:"6\uFE0F\u20E3",six_pointed_star:"\u{1F52F}",skateboard:"\ +\u{1F6F9}",ski:"\u{1F3BF}",skier:"\u26F7\uFE0F",skull:"\u{1F480}",skunk:"\u{1F9A8}",sled:"\u{1F6F7}",sleeping:"\u{1F634}",sleeping_bed:"\u{1F6CC}",sleepy:"\u{1F62A}",slightly_frowning_face:"\u{1F641}", +slightly_smiling_face:"\u{1F642}",slot_machine:"\u{1F3B0}",sloth:"\u{1F9A5}",slovakia:"\u{1F1F8}\u{1F1F0}",slovenia:"\u{1F1F8}\u{1F1EE}",small_airplane:"\u{1F6E9}\uFE0F",small_blue_diamond:"\u{1F539}", +small_orange_diamond:"\u{1F538}",small_red_triangle:"\u{1F53A}",small_red_triangle_down:"\u{1F53B}",smile:"\u{1F604}",smile_cat:"\u{1F638}",smiley:"\u{1F603}",smiley_cat:"\u{1F63A}",smiling_face_with_tear:"\ +\u{1F972}",smiling_face_with_three_hearts:"\u{1F970}",smiling_imp:"\u{1F608}",smirk:"\u{1F60F}",smirk_cat:"\u{1F63C}",smoking:"\u{1F6AC}",snail:"\u{1F40C}",snake:"\u{1F40D}",sneezing_face:"\u{1F927}", +snowboarder:"\u{1F3C2}\uFE0F",snowman:"\u26C4\uFE0F",soap:"\u{1F9FC}",sob:"\u{1F62D}",soccer:"\u26BD\uFE0F",socks:"\u{1F9E6}",softball:"\u{1F94E}",solomon_islands:"\u{1F1F8}\u{1F1E7}",somalia:"\u{1F1F8}\u{1F1F4}", +soon:"\u{1F51C}",sos:"\u{1F198}",sound:"\u{1F509}",south_africa:"\u{1F1FF}\u{1F1E6}",south_georgia_south_sandwich_islands:"\u{1F1EC}\u{1F1F8}",south_sudan:"\u{1F1F8}\u{1F1F8}",space_invader:"\u{1F47E}", +spaghetti:"\u{1F35D}",sparkler:"\u{1F387}",sparkling_heart:"\u{1F496}",speak_no_evil:"\u{1F64A}",speaker:"\u{1F508}\uFE0F",speaking_head:"\u{1F5E3}\uFE0F",speech_balloon:"\u{1F4AC}",speedboat:"\u{1F6A4}", +spider:"\u{1F577}\uFE0F",spider_web:"\u{1F578}\uFE0F",spiral_calendar:"\u{1F5D3}\uFE0F",spiral_notepad:"\u{1F5D2}\uFE0F",sponge:"\u{1F9FD}",spoon:"\u{1F944}",squid:"\u{1F991}",sri_lanka:"\u{1F1F1}\u{1F1F0}", +st_barthelemy:"\u{1F1E7}\u{1F1F1}",st_helena:"\u{1F1F8}\u{1F1ED}",st_kitts_nevis:"\u{1F1F0}\u{1F1F3}",st_lucia:"\u{1F1F1}\u{1F1E8}",st_martin:"\u{1F1F2}\u{1F1EB}",st_pierre_miquelon:"\u{1F1F5}\u{1F1F2}", +st_vincent_grenadines:"\u{1F1FB}\u{1F1E8}",stadium:"\u{1F3DF}\uFE0F",standing_man:"\u{1F9CD}\u200D\u2642\uFE0F",standing_person:"\u{1F9CD}",standing_woman:"\u{1F9CD}\u200D\u2640\uFE0F",star:"\u2B50\uFE0F", +star2:"\u{1F31F}",star_and_crescent:"\u262A\uFE0F",star_struck:"\u{1F929}",stars:"\u{1F320}",station:"\u{1F689}",statue_of_liberty:"\u{1F5FD}",steam_locomotive:"\u{1F682}",stethoscope:"\u{1FA7A}",stew:"\ +\u{1F372}",stop_button:"\u23F9\uFE0F",stop_sign:"\u{1F6D1}",stopwatch:"\u23F1\uFE0F",straight_ruler:"\u{1F4CF}",strawberry:"\u{1F353}",stuck_out_tongue:"\u{1F61B}",stuck_out_tongue_closed_eyes:"\u{1F61D}", +stuck_out_tongue_winking_eye:"\u{1F61C}",student:"\u{1F9D1}\u200D\u{1F393}",studio_microphone:"\u{1F399}\uFE0F",stuffed_flatbread:"\u{1F959}",sudan:"\u{1F1F8}\u{1F1E9}",sun_behind_large_cloud:"\u{1F325}\uFE0F", +sun_behind_rain_cloud:"\u{1F326}\uFE0F",sun_behind_small_cloud:"\u{1F324}\uFE0F",sun_with_face:"\u{1F31E}",sunflower:"\u{1F33B}",sunglasses:"\u{1F60E}",sunrise:"\u{1F305}",sunrise_over_mountains:"\u{1F304}", +superhero:"\u{1F9B8}",superhero_man:"\u{1F9B8}\u200D\u2642\uFE0F",superhero_woman:"\u{1F9B8}\u200D\u2640\uFE0F",supervillain:"\u{1F9B9}",supervillain_man:"\u{1F9B9}\u200D\u2642\uFE0F",supervillain_woman:"\ +\u{1F9B9}\u200D\u2640\uFE0F",surfer:"\u{1F3C4}\uFE0F",surfing_man:"\u{1F3C4}\u200D\u2642\uFE0F",surfing_woman:"\u{1F3C4}\u200D\u2640\uFE0F",suriname:"\u{1F1F8}\u{1F1F7}",sushi:"\u{1F363}",suspension_railway:"\ +\u{1F69F}",svalbard_jan_mayen:"\u{1F1F8}\u{1F1EF}",swan:"\u{1F9A2}",swaziland:"\u{1F1F8}\u{1F1FF}",sweat:"\u{1F613}",sweat_drops:"\u{1F4A6}",sweat_smile:"\u{1F605}",sweden:"\u{1F1F8}\u{1F1EA}",sweet_potato:"\ +\u{1F360}",swim_brief:"\u{1FA72}",swimmer:"\u{1F3CA}\uFE0F",swimming_man:"\u{1F3CA}\u200D\u2642\uFE0F",swimming_woman:"\u{1F3CA}\u200D\u2640\uFE0F",switzerland:"\u{1F1E8}\u{1F1ED}",symbols:"\u{1F523}", +synagogue:"\u{1F54D}",syria:"\u{1F1F8}\u{1F1FE}",syringe:"\u{1F489}","t-rex":"\u{1F996}",taco:"\u{1F32E}",tada:"\u{1F389}",taiwan:"\u{1F1F9}\u{1F1FC}",tajikistan:"\u{1F1F9}\u{1F1EF}",takeout_box:"\u{1F961}", +tamale:"\u{1FAD4}",tanabata_tree:"\u{1F38B}",tanzania:"\u{1F1F9}\u{1F1FF}",taxi:"\u{1F695}",tea:"\u{1F375}",teacher:"\u{1F9D1}\u200D\u{1F3EB}",teapot:"\u{1FAD6}",technologist:"\u{1F9D1}\u200D\u{1F4BB}", +teddy_bear:"\u{1F9F8}",telephone_receiver:"\u{1F4DE}",telescope:"\u{1F52D}",tennis:"\u{1F3BE}",tent:"\u26FA\uFE0F",test_tube:"\u{1F9EA}",thailand:"\u{1F1F9}\u{1F1ED}",thermometer:"\u{1F321}\uFE0F",thinking:"\ +\u{1F914}",thong_sandal:"\u{1FA74}",thought_balloon:"\u{1F4AD}",thread:"\u{1F9F5}",three:"3\uFE0F\u20E3",ticket:"\u{1F3AB}",tickets:"\u{1F39F}\uFE0F",tiger:"\u{1F42F}",tiger2:"\u{1F405}",timer_clock:"\ +\u23F2\uFE0F",timor_leste:"\u{1F1F9}\u{1F1F1}",tired_face:"\u{1F62B}",togo:"\u{1F1F9}\u{1F1EC}",toilet:"\u{1F6BD}",tokelau:"\u{1F1F9}\u{1F1F0}",tokyo_tower:"\u{1F5FC}",tomato:"\u{1F345}",tonga:"\u{1F1F9}\u{1F1F4}", +tongue:"\u{1F445}",toolbox:"\u{1F9F0}",tooth:"\u{1F9B7}",toothbrush:"\u{1FAA5}",top:"\u{1F51D}",tophat:"\u{1F3A9}",tornado:"\u{1F32A}\uFE0F",tr:"\u{1F1F9}\u{1F1F7}",trackball:"\u{1F5B2}\uFE0F",tractor:"\ +\u{1F69C}",traffic_light:"\u{1F6A5}",train:"\u{1F68B}",train2:"\u{1F686}",tram:"\u{1F68A}",transgender_flag:"\u{1F3F3}\uFE0F\u200D\u26A7\uFE0F",transgender_symbol:"\u26A7\uFE0F",triangular_flag_on_post:"\ +\u{1F6A9}",triangular_ruler:"\u{1F4D0}",trident:"\u{1F531}",trinidad_tobago:"\u{1F1F9}\u{1F1F9}",tristan_da_cunha:"\u{1F1F9}\u{1F1E6}",triumph:"\u{1F624}",troll:"\u{1F9CC}",trolleybus:"\u{1F68E}",trophy:"\ +\u{1F3C6}\uFE0F",tropical_drink:"\u{1F379}",tropical_fish:"\u{1F420}",truck:"\u{1F69A}",trumpet:"\u{1F3BA}",tulip:"\u{1F337}",tumbler_glass:"\u{1F943}",tunisia:"\u{1F1F9}\u{1F1F3}",turkey:"\u{1F983}", +turkmenistan:"\u{1F1F9}\u{1F1F2}",turks_caicos_islands:"\u{1F1F9}\u{1F1E8}",turtle:"\u{1F422}",tuvalu:"\u{1F1F9}\u{1F1FB}",tv:"\u{1F4FA}\uFE0F",twisted_rightwards_arrows:"\u{1F500}",two:"2\uFE0F\u20E3", +two_hearts:"\u{1F495}",two_men_holding_hands:"\u{1F46C}",two_women_holding_hands:"\u{1F46D}",u5272:"\u{1F239}",u5408:"\u{1F234}",u55b6:"\u{1F23A}",u6307:"\u{1F22F}\uFE0F",u6708:"\u{1F237}\uFE0F",u6709:"\ +\u{1F236}",u6e80:"\u{1F235}",u7121:"\u{1F21A}\uFE0F",u7533:"\u{1F238}",u7981:"\u{1F232}",u7a7a:"\u{1F233}",uganda:"\u{1F1FA}\u{1F1EC}",ukraine:"\u{1F1FA}\u{1F1E6}",unamused:"\u{1F612}",underage:"\u{1F51E}", +unicorn:"\u{1F984}",united_arab_emirates:"\u{1F1E6}\u{1F1EA}",united_nations:"\u{1F1FA}\u{1F1F3}",unlock:"\u{1F513}\uFE0F",up:"\u{1F199}",upside_down_face:"\u{1F643}",uruguay:"\u{1F1FA}\u{1F1FE}",us:"\ +\u{1F1FA}\u{1F1F8}",us_outlying_islands:"\u{1F1FA}\u{1F1F2}",us_virgin_islands:"\u{1F1FB}\u{1F1EE}",uzbekistan:"\u{1F1FA}\u{1F1FF}",v:"\u270C\uFE0F",vampire:"\u{1F9DB}",vampire_man:"\u{1F9DB}\u200D\u2642\uFE0F", +vampire_woman:"\u{1F9DB}\u200D\u2640\uFE0F",vanuatu:"\u{1F1FB}\u{1F1FA}",vatican_city:"\u{1F1FB}\u{1F1E6}",venezuela:"\u{1F1FB}\u{1F1EA}",vertical_traffic_light:"\u{1F6A6}",vhs:"\u{1F4FC}",vibration_mode:"\ +\u{1F4F3}",video_camera:"\u{1F4F9}\uFE0F",video_game:"\u{1F3AE}\uFE0F",vietnam:"\u{1F1FB}\u{1F1F3}",violin:"\u{1F3BB}",virgo:"\u264D\uFE0F",volcano:"\u{1F30B}",volleyball:"\u{1F3D0}",vomiting_face:"\u{1F92E}", +vs:"\u{1F19A}",vulcan_salute:"\u{1F596}",waffle:"\u{1F9C7}",wales:"\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}",walking:"\u{1F6B6}",walking_man:"\u{1F6B6}\u200D\u2642\uFE0F",walking_woman:"\ +\u{1F6B6}\u200D\u2640\uFE0F",wallis_futuna:"\u{1F1FC}\u{1F1EB}",waning_crescent_moon:"\u{1F318}",waning_gibbous_moon:"\u{1F316}",warning:"\u26A0\uFE0F",wastebasket:"\u{1F5D1}\uFE0F",watch:"\u231A\uFE0F", +water_buffalo:"\u{1F403}",water_polo:"\u{1F93D}",watermelon:"\u{1F349}",wave:"\u{1F44B}",waxing_crescent_moon:"\u{1F312}",wc:"\u{1F6BE}",weary:"\u{1F629}",wedding:"\u{1F492}",weight_lifting:"\u{1F3CB}\uFE0F", +weight_lifting_man:"\u{1F3CB}\uFE0F\u200D\u2642\uFE0F",weight_lifting_woman:"\u{1F3CB}\uFE0F\u200D\u2640\uFE0F",western_sahara:"\u{1F1EA}\u{1F1ED}",whale:"\u{1F433}",whale2:"\u{1F40B}",wheel:"\u{1F6DE}", +wheelchair:"\u267F\uFE0F",white_circle:"\u26AA\uFE0F",white_flag:"\u{1F3F3}\uFE0F",white_flower:"\u{1F4AE}",white_haired_man:"\u{1F468}\u200D\u{1F9B3}",white_haired_woman:"\u{1F469}\u200D\u{1F9B3}",white_heart:"\ +\u{1F90D}",white_large_square:"\u2B1C\uFE0F",white_medium_small_square:"\u25FD\uFE0F",white_medium_square:"\u25FB\uFE0F",white_small_square:"\u25AB\uFE0F",white_square_button:"\u{1F533}",wilted_flower:"\ +\u{1F940}",wind_chime:"\u{1F390}",wind_face:"\u{1F32C}\uFE0F",window:"\u{1FA9F}",wine_glass:"\u{1F377}",wing:"\u{1FABD}",wink:"\u{1F609}",wireless:"\u{1F6DC}",wolf:"\u{1F43A}",woman:"\u{1F469}",woman_artist:"\ +\u{1F469}\u200D\u{1F3A8}",woman_astronaut:"\u{1F469}\u200D\u{1F680}",woman_beard:"\u{1F9D4}\u200D\u2640\uFE0F",woman_cartwheeling:"\u{1F938}\u200D\u2640\uFE0F",woman_cook:"\u{1F469}\u200D\u{1F373}",woman_facepalming:"\ +\u{1F926}\u200D\u2640\uFE0F",woman_factory_worker:"\u{1F469}\u200D\u{1F3ED}",woman_farmer:"\u{1F469}\u200D\u{1F33E}",woman_feeding_baby:"\u{1F469}\u200D\u{1F37C}",woman_firefighter:"\u{1F469}\u200D\u{1F692}", +woman_health_worker:"\u{1F469}\u200D\u2695\uFE0F",woman_in_manual_wheelchair:"\u{1F469}\u200D\u{1F9BD}",woman_in_motorized_wheelchair:"\u{1F469}\u200D\u{1F9BC}",woman_in_tuxedo:"\u{1F935}\u200D\u2640\uFE0F", +woman_judge:"\u{1F469}\u200D\u2696\uFE0F",woman_juggling:"\u{1F939}\u200D\u2640\uFE0F",woman_mechanic:"\u{1F469}\u200D\u{1F527}",woman_office_worker:"\u{1F469}\u200D\u{1F4BC}",woman_pilot:"\u{1F469}\u200D\u2708\uFE0F", +woman_playing_handball:"\u{1F93E}\u200D\u2640\uFE0F",woman_playing_water_polo:"\u{1F93D}\u200D\u2640\uFE0F",woman_scientist:"\u{1F469}\u200D\u{1F52C}",woman_shrugging:"\u{1F937}\u200D\u2640\uFE0F",woman_singer:"\ +\u{1F469}\u200D\u{1F3A4}",woman_student:"\u{1F469}\u200D\u{1F393}",woman_teacher:"\u{1F469}\u200D\u{1F3EB}",woman_technologist:"\u{1F469}\u200D\u{1F4BB}",woman_with_headscarf:"\u{1F9D5}",woman_with_probing_cane:"\ +\u{1F469}\u200D\u{1F9AF}",woman_with_turban:"\u{1F473}\u200D\u2640\uFE0F",womans_clothes:"\u{1F45A}",womans_hat:"\u{1F452}",women_wrestling:"\u{1F93C}\u200D\u2640\uFE0F",womens:"\u{1F6BA}\uFE0F",wood:"\ +\u{1FAB5}",woozy_face:"\u{1F974}",world_map:"\u{1F5FA}\uFE0F",worm:"\u{1FAB1}",worried:"\u{1F61F}",wrench:"\u{1F527}",wrestling:"\u{1F93C}",writing_hand:"\u270D\uFE0F",x:"\u274C\uFE0F",x_ray:"\u{1FA7B}", +yarn:"\u{1F9F6}",yawning_face:"\u{1F971}",yellow_circle:"\u{1F7E1}",yellow_heart:"\u{1F49B}",yellow_square:"\u{1F7E8}",yemen:"\u{1F1FE}\u{1F1EA}",yen:"\u{1F4B4}",yin_yang:"\u262F\uFE0F",yo_yo:"\u{1FA80}", +yum:"\u{1F60B}",zambia:"\u{1F1FF}\u{1F1F2}",zany_face:"\u{1F92A}",zap:"\u26A1\uFE0F",zebra:"\u{1F993}",zero:"0\uFE0F\u20E3",zimbabwe:"\u{1F1FF}\u{1F1FC}",zipper_mouth_face:"\u{1F910}",zombie:"\u{1F9DF}", +zombie_man:"\u{1F9DF}\u200D\u2642\uFE0F",zombie_woman:"\u{1F9DF}\u200D\u2640\uFE0F",zzz:"\u{1F4A4}"};var emojiMap=emojiMap_default;var getEmoji=name=>emojiMap[name];var parseBoolean=value=>{if(typeof value==="boolean"){return value}if(typeof value==="string"){if(value.toLowerCase()==="true"){return true}if(value.toLowerCase()==="false"){return false}}return void 0}; +var parseArray=str=>{if(!str){return[]}return str.split(",")};var clampValue=(number2,min,max)=>{if(Number.isNaN(Number.parseInt(String(number2),10))){return min}return Math.max(min,Math.min(Number(number2), +max))};var lowercaseTrim=name=>name.toLowerCase().trim();var chunkArray=(arr,perChunk)=>{const chunks=[];for(const[index,item]of arr.entries()){const chunkIndex=Math.floor(index/perChunk);const chunk=chunks[chunkIndex]?? +[];chunk.push(item);chunks[chunkIndex]=chunk}return chunks};var parseEmojis=str=>{if(!str){throw new Error("[parseEmoji]: str argument not provided")}return str.replaceAll(/:(?[\w+-]+):/g,(_match,shortcode)=>getEmoji( +shortcode)??"")};var isOwnerAffiliation=value=>OWNER_AFFILIATIONS.some(affiliation=>affiliation===value);var parseOwnerAffiliations=affiliations=>{const normalized=affiliations.length>0?affiliations.map( +affiliation=>affiliation.toUpperCase()):["OWNER"];if(!normalized.every(value=>isOwnerAffiliation(value))){throw CardError.invalidParam("role",INVALID_AFFILIATION)}return normalized};var buildSearchFilter=(repos=[],owners=[])=>{ +const repoFilter=Array.isArray(repos)&&repos.length>0?repos.map(repo=>`repo:${repo} `).join(""):"";const orgFilter=Array.isArray(owners)&&owners.length>0?owners.map(owner=>`owner:${owner} `).join(""): +"";return repoFilter+orgFilter};var flexLayout=({items,gap,direction,sizes=[]})=>{if(sizes.some(size=>!Number.isFinite(size))){throw new Error("flexLayout: `sizes` must contain only numbers")}const laidOut=items.filter(Boolean);if(laidOut. +length===1){return laidOut}let lastSize=0;return laidOut.map((item,i)=>{const offset=lastSize;lastSize+=(sizes[i]??0)+gap;const transform2=offset===0?void 0:direction==="column"?`translate(0, ${offset}\ +)`:`translate(${offset}, 0)`;return el("g",{transform:transform2},item)})};var createLanguageNode=(langName,langColor)=>{if(!isPrefixedHexColor(langColor)){throw new Error(`Invalid language color: "${langColor}\ +"`)}return el("g",{"data-testid":"primary-lang"},el("circle",{"data-testid":"lang-color",cx:0,cy:-5,r:6,fill:langColor}),el("text",{"data-testid":"lang-name",class:"gray",x:15},langName))};var createProgressNode=({ +x,y,width,color,progress,delay})=>{if(color!==void 0&&!isPrefixedHexColor(color)){throw new Error(`Invalid progress color: "${color}"`)}if(!Number.isFinite(width)){throw new TypeError(`Invalid width: \ +"${width}"`)}if(!Number.isFinite(x)){throw new TypeError(`Invalid x: "${x}"`)}if(!Number.isFinite(y)){throw new TypeError(`Invalid y: "${y}"`)}if(!Number.isFinite(delay)){throw new TypeError(`Invalid \ +delay: "${delay}"`)}const progressPercentage=clampValue(progress,2,100);return el("svg",{width,x,y},el("rect",{"data-testid":"progress-background",class:"progress-background",rx:5,ry:5,x:0,y:0,width,height:8}), +el("svg",{"data-testid":"lang-progress",width:`${progressPercentage}%`},el("rect",{height:8,fill:color,rx:5,ry:5,x:0,y:0,class:"lang-progress",style:`animation-delay: ${delay}ms;`})))};var wrappedTextNode=({ +text,x,y,width,height,lineCount,className,testId})=>{if(!Number.isFinite(x)){throw new TypeError(`Invalid x: "${x}"`)}if(!Number.isFinite(y)){throw new TypeError(`Invalid y: "${y}"`)}if(!Number.isFinite( +width)){throw new TypeError(`Invalid width: "${width}"`)}if(!Number.isFinite(height)){throw new TypeError(`Invalid height: "${height}"`)}if(!Number.isFinite(lineCount)){throw new TypeError(`Invalid li\ +neCount: "${lineCount}"`)}return el("foreignObject",{x,y,width,height},el("div",{xmlns:"http://www.w3.org/1999/xhtml",class:className,style:`--lines: ${lineCount};`,"data-testid":testId},text))};var wrappedTextStyles=color=>{ +if(!isPrefixedHexColor(color)){throw new Error(`Invalid text color: "${color}"`)}return{color,margin:0,"line-height":1.2,"overflow-wrap":"anywhere","word-break":"break-word",display:"-webkit-box","-we\ +bkit-box-orient":"vertical","-webkit-line-clamp":"var(--lines)","line-clamp":"var(--lines)",overflow:"hidden","text-overflow":"ellipsis","padding-bottom":"0.15em"}};var iconWithLabel=(icon,label,testid,iconSize)=>{ +if(typeof label==="number"&&label<=0){return void 0}if(!Number.isFinite(iconSize)){throw new TypeError(`Invalid iconSize: "${iconSize}"`)}return flexLayout({items:[el("svg",{class:"icon",y:-12,viewBox:"\ +0 0 16 16",version:"1.1",width:iconSize,height:iconSize},icon),el("text",{"data-testid":testid,class:"gray"},String(label))],gap:20})};var createTextNode=({icon,label,value,id,unitSymbol,index,showIcons, +shiftValuePos,valueAnchorX,bold,labelBold=bold,numberFormat,numberPrecision,link,labelXOffset=25})=>{if(!Number.isFinite(labelXOffset)){throw new TypeError(`Invalid labelXOffset: "${labelXOffset}"`)}if(!Number. +isFinite(shiftValuePos)){throw new TypeError(`Invalid shiftValuePos: "${shiftValuePos}"`)}if(!Number.isFinite(index)){throw new TypeError(`Invalid index: "${index}"`)}if(valueAnchorX!==void 0&&!Number. +isFinite(valueAnchorX)){throw new Error(`Invalid valueAnchorX: "${valueAnchorX}"`)}const precision=numberPrecision!==void 0&&Number.isFinite(numberPrecision)?clampValue(numberPrecision,0,2):void 0;const rawValue=numberFormat. +toLowerCase()==="long"||id==="prs_merged_percentage";const kValue=rawValue||typeof value!=="number"?value:kFormatter(value,precision);const staggerDelay=120+index*40;const boldClass=bold?"bold":"not_b\ +old";const labelBoldClass=labelBold?"bold":"not_bold";const valueX=(showIcons?140:120)+(bold?5:0)+shiftValuePos;const unit=unitSymbol?` ${unitSymbol}`:"";const content=[showIcons&&el("svg",{"data-test\ +id":"icon",class:"icon",viewBox:"0 0 16 16",version:"1.1",width:16,height:16},icon),el("text",{class:`stat ${labelBoldClass}`,x:showIcons?labelXOffset:void 0,y:12.5},`${label}:`),el("text",{class:`sta\ +t ${boldClass}`,x:valueAnchorX??valueX,"text-anchor":valueAnchorX===void 0?void 0:"end",y:12.5,"data-testid":id},`${String(kValue)}${unit}`)];return el("g",{class:"stagger",style:`animation-delay: ${staggerDelay}\ +ms`,transform:"translate(25, 0)"},link?el("a",{href:link},content):content)};var ERROR_CARD_LENGTH=576.5;var UPSTREAM_API_ERRORS=new Set([TRY_AGAIN_LATER,SECONDARY_ERROR_MESSAGES.rate_limited]);var renderError=({ +message,secondaryMessage="",renderOptions={}})=>{const{title_color,text_color,bg_color,border_color,theme="default",show_repo_link=true}=renderOptions;const{titleColor,textColor,bgColor,borderColor}=getCardColors( +{title_color,text_color,icon_color:"",bg_color,border_color,ring_color:"",theme});const hint=UPSTREAM_API_ERRORS.has(secondaryMessage)||!show_repo_link?"":" file an issue at https://tinyurl.com/github\ +-stats";return renderMarkup(el("svg",{width:ERROR_CARD_LENGTH,height:120,viewBox:`0 0 ${ERROR_CARD_LENGTH} 120`,fill:String(bgColor),xmlns:"http://www.w3.org/2000/svg",role:"img","aria-labelledby":"ti\ +tleId descId"},el("title",{id:"titleId"},message),el("desc",{id:"descId"},secondaryMessage),style(rule(".text",{font:"600 16px 'Segoe UI', Ubuntu, Sans-Serif",fill:titleColor}),rule(".small",{font:"60\ +0 12px 'Segoe UI', Ubuntu, Sans-Serif",fill:textColor}),rule(".gray",{fill:"#858585"})),el("rect",{x:.5,y:.5,width:ERROR_CARD_LENGTH-1,height:"99%",rx:8,fill:String(bgColor),stroke:borderColor}),el("t\ +ext",{x:25,y:45,class:"text"},`Something went wrong!${hint}`),el("text",{"data-testid":"message",x:25,y:55,class:"text small"},el("tspan",{x:25,dy:18},message),el("tspan",{x:25,dy:18,class:"gray"},secondaryMessage))))}; +var measureText=(str,fontSize=10)=>{const widths=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.2733333110809326,.28499999046325686,.39166667461395266,.5900000095367431,.5383333206176758, +.8183333396911621,.8,.22999999523162842,.30166666507720946,.30166666507720946,.41666665077209475,.6833333492279052,.21666667461395264,.4,.21666667461395264,.3900000095367432,.5383333206176758,.5383333206176758, +.5383333206176758,.5383333206176758,.5383333206176758,.5383333206176758,.5383333206176758,.5383333206176758,.5383333206176758,.5383333206176758,.21666667461395264,.21666667461395264,.6833333492279052, +.6833333492279052,.6833333492279052,.4483333110809326,.9550000190734863,.6449999809265137,.5733333110809327,.6183333396911621,.7016666889190674,.5066666603088379,.48833332061767576,.6866666793823242,.7099999904632568, +.26666667461395266,.35666666030883787,.5800000190734863,.4699999809265137,.8983333587646485,.7483333110809326,.753333330154419,.5599999904632569,.753333330154419,.5983333110809326,.5316666603088379,.5233333110809326, +.6866666793823242,.621666669845581,.9333333015441895,.5900000095367431,.553333330154419,.5699999809265137,.30166666507720946,.37833333015441895,.30166666507720946,.6833333492279052,.41500000953674315, +.26833333969116213,.5083333492279053,.5883333206176757,.4616666793823242,.5883333206176757,.5233333110809326,.3133333444595337,.5883333206176757,.5666666507720948,.24166667461395264,.24166667461395264, +.49666666984558105,.24166667461395264,.8616666793823242,.5666666507720948,.5866666793823242,.5883333206176757,.5883333206176757,.3483333349227905,.425,.33833334445953367,.5666666507720948,.4783333301544189, +.7233333110809326,.45833334922790525,.4833333492279053,.45166668891906736,.30166666507720946,.24000000953674316,.30166666507720946,.6833333492279052];const avg=.5131403493881227;const cjkRange=/[\u3000-\u9FFF\uFF00-\uFFEF]/; +return[...str].map(char=>{if(cjkRange.test(char)||char==="\u3000"){return 1}const code=char.codePointAt(0)??0;if(codeacc+cur)*fontSize}; +var splitWrappedText=(text,fontSize,maxWidth)=>{if(!text){return[]}const normalizedText=text.replaceAll(/[\t\n\r ]+/g," ");const tokens=normalizedText.match(/\s|[\u3000-\u9FFF\uFF00-\uFFEF]|[^\s\u3000-\u9FFF\uFF00-\uFFEF]+/g); +if(!tokens){return[]}const takeFittingSegment=(token,availableWidth)=>{const characters=[...token];let segment="";let width=0;for(const character of characters){const characterWidth=measureText(character, +fontSize);if(segment&&width+characterWidth>availableWidth){break}segment+=character;width+=characterWidth}return{segment,width}};const lines=[""];let currentWidth=0;for(const token of tokens){if(token=== +" "){if(currentWidth===0){continue}lines[lines.length-1]=(lines.at(-1)??"")+token;currentWidth+=measureText(token,fontSize);continue}let remaining=token;while(remaining){const w=measureText(remaining, +fontSize);if(currentWidth+w<=maxWidth){lines[lines.length-1]=(lines.at(-1)??"")+remaining;currentWidth+=w;break}if(currentWidth>0){lines.push("");currentWidth=0;continue}const{segment,width}=takeFittingSegment( +remaining,maxWidth);lines[lines.length-1]=(lines.at(-1)??"")+segment;currentWidth=width;remaining=remaining.slice(segment.length)}}return lines.map(line=>line.replace(/[\t\n\r ]+$/,""))};var wrapTextMultiline=(text,width,fontSize,maxLines=3)=>{ +const wrapped=splitWrappedText(text,fontSize,width);const lines=wrapped.map(line=>line.trim()).slice(0,maxLines);if(wrapped.length>maxLines){const lastIndex=maxLines-1;const lastLine=lines[lastIndex]; +if(lastLine!==void 0){lines[lastIndex]=`${lastLine}...`}}const multiLineText=lines.filter(Boolean);return multiLineText};var countWrappedLines=(text,fontSize,maxWidth,maxLines)=>Math.min(Math.max(1,splitWrappedText( +text,fontSize,maxWidth).length),maxLines);var NO_MOTION={"animation-duration":"0s !important","animation-delay":"0s !important"};var getAnimations=()=>[cssComment("Animations"),atRule("@keyframes scaleInAnimation",rule("from",{transform:"tran\ +slate(-5px, 5px) scale(0)"}),rule("to",{transform:"translate(-5px, 5px) scale(1)"})),atRule("@keyframes fadeInAnimation",rule("from",{opacity:0}),rule("to",{opacity:1})),atRule("@media (prefers-reduce\ +d-motion: reduce)",rule("*",NO_MOTION))];var buildGradientDef=(id,bgColor)=>{const gradients=bgColor.slice(1);return el("linearGradient",{id,gradientTransform:`rotate(${String(bgColor[0])})`,gradientUnits:"\ +userSpaceOnUse"},gradients.map((grad,index)=>el("stop",{offset:`${index*100/(gradients.length-1)}%`,"stop-color":`#${grad}`})))};var Card=class{width;height;hideBorder;hideTitle;border_radius;colors;title;css;darkCss;paddingX;paddingY;titlePrefixIcon;animations;a11yTitle;a11yDesc;constructor({ +width=100,height=100,border_radius=8,colors={light:getCardColors({}),dark:null},customTitle,defaultTitle="",titlePrefixIcon}){this.width=width;this.height=height;this.hideBorder=false;this.hideTitle=false; +this.border_radius=Number.parseFloat(String(border_radius));this.colors=colors;this.title=customTitle??defaultTitle;this.css=[];this.darkCss=[];this.paddingX=25;this.paddingY=35;this.titlePrefixIcon=titlePrefixIcon; +this.animations=true;this.a11yTitle="";this.a11yDesc=""}disableAnimations(){this.animations=false}setAccessibilityLabel({title,desc}){this.a11yTitle=title;this.a11yDesc=desc}setCSS({light,dark}){this. +css=light(this.colors.light);this.darkCss=this.colors.dark?dark(this.colors.dark):[]}setHideBorder(value){this.hideBorder=value}setHideTitle(value){if(value&&!this.hideTitle){this.height-=30}if(!value&& +this.hideTitle){this.height+=30}this.hideTitle=value}setTitle(text){this.title=text}renderTitle(){return el("g",{"data-testid":"card-title",transform:`translate(${this.paddingX}, ${this.paddingY})`},flexLayout( +{items:[this.titlePrefixIcon&&el("svg",{class:"icon",x:0,y:-13,viewBox:"0 0 16 16",version:"1.1",width:16,height:16},this.titlePrefixIcon),el("text",{x:0,y:0,class:"header","data-testid":"header"},this. +title)],gap:25}))}renderGradient(){if(typeof this.colors.light.bgColor==="object"&&!isValidGradient(this.colors.light.bgColor)){throw new Error(`Invalid gradient: ${this.colors.light.bgColor.join(",")}`)} +if(this.colors.dark&&typeof this.colors.dark.bgColor==="object"&&!isValidGradient(this.colors.dark.bgColor)){throw new Error(`Invalid dark gradient: ${this.colors.dark.bgColor.join(",")}`)}const defs=[ +typeof this.colors.light.bgColor==="object"&&buildGradientDef("gradient",this.colors.light.bgColor),this.colors.dark&&typeof this.colors.dark.bgColor==="object"&&buildGradientDef("gradient-dark",this. +colors.dark.bgColor)].filter(Boolean);return defs.length===0?void 0:el("defs",{},defs)}renderDarkMediaBlock(){if(!this.colors.dark){return void 0}const bgFill=typeof this.colors.dark.bgColor==="object"? +"url(#gradient-dark)":this.colors.dark.bgColor;return atRule("@media (prefers-color-scheme: dark)",rule(".header",{fill:this.colors.dark.titleColor}),rule(".card-bg",{fill:bgFill,stroke:this.colors.dark. +borderColor}),this.darkCss)}render(body){if(!Number.isFinite(this.border_radius)){throw new TypeError(`Invalid border radius: "${this.border_radius}"`)}if(!isPrefixedHexColor(this.colors.light.titleColor)){ +throw new Error(`Invalid title color: "${this.colors.light.titleColor}"`)}if(!isPrefixedHexColor(this.colors.light.borderColor)){throw new Error(`Invalid border color: "${this.colors.light.borderColor}\ +"`)}if(!(typeof this.colors.light.bgColor==="object"?isValidGradient(this.colors.light.bgColor):isPrefixedHexColor(this.colors.light.bgColor))){throw new Error(`Invalid background color: ${String(this. +colors.light.bgColor)}`)}return renderMarkup(el("svg",{width:this.width,height:this.height,viewBox:`0 0 ${this.width} ${this.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg",role:"img","aria-la\ +belledby":"titleId descId"},el("title",{id:"titleId"},this.a11yTitle),el("desc",{id:"descId"},this.a11yDesc),style(rule(".header",{font:"600 18px 'Segoe UI', Ubuntu, Sans-Serif",fill:this.colors.light. +titleColor,animation:"fadeInAnimation 0.8s ease-in-out forwards"}),atRule("@supports(-moz-appearance: auto)",cssComment("Selector detects Firefox"),rule(".header",{"font-size":"15.5px"})),this.css,this. +renderDarkMediaBlock(),getAnimations(),!this.animations&&rule("*",NO_MOTION)),this.renderGradient(),el("rect",{"data-testid":"card-bg",class:"card-bg",x:.5,y:.5,rx:this.border_radius,height:"99%",stroke:this. +colors.light.borderColor,width:this.width-1,fill:typeof this.colors.light.bgColor==="object"?"url(#gradient)":this.colors.light.bgColor,"stroke-opacity":this.hideBorder?0:1}),!this.hideTitle&&this.renderTitle(), +el("g",{"data-testid":"main-card-body",transform:`translate(0, ${this.hideTitle?this.paddingX:this.paddingY+20})`},body)))}};var icons={star:el("path",{"fill-rule":"evenodd",d:"M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1\ +.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0\ + 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"}),commits:el("path",{"fill-rule":"evenodd",d:"M1.643 3.143L.427 1.927A.25.25 0 000 2.104V5.\ +75c0 .138.112.25.25.25h3.646a.25.25 0 00.177-.427L2.715 4.215a6.5 6.5 0 11-1.18 4.458.75.75 0 10-1.493.154 8.001 8.001 0 101.6-5.684zM7.75 4a.75.75 0 01.75.75v2.992l2.028.812a.75.75 0 01-.557 1.392l-2\ +.5-1A.75.75 0 017 8.25v-3.5A.75.75 0 017.75 4z"}),prs:el("path",{"fill-rule":"evenodd",d:"M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.\ +75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1\ + 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"}),prs_merged:el("path",{"fill-rule":"evenodd",d:"M5.45 5.154A4.25 4.25 0 0 0 9.25 7.5h1.378a2.251 2.251 0 1 1 0 1.\ +5H9.25A5.734 5.734 0 0 1 5 7.123v3.505a2.25 2.25 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.95-.218ZM4.25 13.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm8.5-4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5ZM5 3.25a.75.7\ +5 0 1 0 0 .005V3.25Z"}),prs_merged_percentage:el("path",{"fill-rule":"evenodd",d:"M13.442 2.558a.625.625 0 0 1 0 .884l-10 10a.625.625 0 1 1-.884-.884l10-10a.625.625 0 0 1 .884 0zM4.5 6a1.5 1.5 0 1 1 0\ +-3 1.5 1.5 0 0 1 0 3zm0 1a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zm7 6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm0 1a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z"}),issues:el("path",{"fill-rule":"evenodd",d:"M8 1.5a6.\ +5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm9 3a1 1 0 11-2 0 1 1 0 012 0zm-.25-6.25a.75.75 0 00-1.5 0v3.5a.75.75 0 001.5 0v-3.5z"}),icon:el("path",{"fill-rule":"evenodd",d:"M2 2.5A2\ +.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V\ +2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"}),contribs:el("path",{"fill-rule":"evenodd",d:"\ +M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074\ +-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"}),fork:el("path",{"fill-rule":"evenodd", +d:"M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a\ +.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"}),reviews:el("path",{"fill-rule":"evenodd",d:"M8 2c1.981 0 3.6\ +71.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14c-1.981 0-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a\ +1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2ZM1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5c1.473 0 2.825-.742 3.955\ +-1.715 1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5c-1.473 0-2.825.742-3.955 1.715-1.124.967-1.954 2.096-2.366 2.717ZM8 10a2 2 \ +0 1 1-.001-3.999A2 2 0 0 1 8 10Z"}),discussions_started:el("path",{"fill-rule":"evenodd",d:"M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11\ +.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.\ +25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 \ +0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"}),discussions_answered:el("path",{"fill-rule":"evenodd",d:"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.2\ +5a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"}),comments:el("path",{d:"M1 2.75C1 1.784 1.784 1 2.75 1h10.5c.966 0 1.75.784 \ +1.75 1.75v7.5A1.75 1.75 0 0 1 13.25 12H9.06l-2.573 2.573A1.458 1.458 0 0 1 4 13.543V12H2.75A1.75 1.75 0 0 1 1 10.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.7\ +2-2.72a.749.749 0 0 1 .53-.22h4.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"}),contributions:el("path",{d:"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm7.25-3.\ +25v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5a.75.75 0 0 1 1.5 0Z"}),gist:el("path",{"fill-rule":"evenodd",d:"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 \ +0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.7\ +5 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-\ +.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"})};var RANK_TEXT={x:-5,"alignment-baseline":"central","dominant-baseline":"central","text-anchor":"middle"};var rankIcon=(kind,rankLevel,percentile)=>{ +switch(kind){case"github":{return el("svg",{x:-38,y:-30,height:66,width:66,"aria-hidden":"true",viewBox:"0 0 16 16",version:"1.1","data-view-component":"true","data-testid":"github-rank-icon"},el("pat\ +h",{d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 \ +0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.\ +55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"}))}case"percentile":{ +return[el("text",{...RANK_TEXT,y:-12,"data-testid":"percentile-top-header",class:"rank-percentile-header"},"Top"),el("text",{...RANK_TEXT,y:12,"data-testid":"percentile-rank-value",class:"rank-percent\ +ile-text"},`${percentile.toFixed(1)}%`)]}case"default":default:{return el("text",{...RANK_TEXT,y:3,"data-testid":"level-rank-icon"},rankLevel)}}};var languageColors_default={"1C Enterprise":"#814CCC","2-Dimensional Array":"#38761D","4D":"#004289",ABAP:"#E8274B","ABAP CDS":"#555e25","AGS Script":"#B9D9FF",AIDL:"#34EB6B",AL:"#3AA2B5",ALGOL:"#D1E0\ +DB",AMPL:"#E6EFBB",ANTLR:"#9DC3FF","API Blueprint":"#2ACCA8",APL:"#5A8164","ASP.NET":"#9400ff",ATS:"#1ac620",ActionScript:"#882B0F",Ada:"#02f88c","Adblock Filter List":"#800000","Adobe Font Metrics":"\ +#fa0f00",Agda:"#315665",Aiken:"#640ff8",Aleo:"#154BF9",Alloy:"#64C800","Alpine Abuild":"#0D597F","Altium Designer":"#A89663",AngelScript:"#C7D7DC","Answer Set Programming":"#A9CC29","Ant Build System":"\ +#A9157E",Antlers:"#ff269e",ApacheConf:"#d12127",Apex:"#1797c0","Apollo Guidance Computer":"#0B3D91",AppleScript:"#101F1F",Arc:"#aa2afe",AsciiDoc:"#73a0c5",AspectJ:"#a957b0",Assembly:"#6E4C13",Astro:"#\ +ff5a03",Asymptote:"#ff0000",Augeas:"#9CC134",AutoHotkey:"#6594b9",AutoIt:"#1C3552","Avro IDL":"#0040FF",Awk:"#c30e9b",B:"#da7666","B (Formal Method)":"#8aa8c5",B4X:"#00e4ff",BAML:"#a855f7",BASIC:"#ff0\ +000",BBCode:"#CAFF42",BIRD2:"#b6d7e4",BQN:"#2b7067",Ballerina:"#FF5000",Batchfile:"#C1F12E",Beef:"#a52f4e",Berry:"#15A13C",BibTeX:"#778899",Bicep:"#519aba",Bikeshed:"#5562ac",Bison:"#6A463F",BitBake:"\ +#00bce4",Blade:"#f7523f",BlitzBasic:"#00FFAE",BlitzMax:"#cd6400",Blueprint:"#3584E4",Bluespec:"#12223c","Bluespec BH":"#12223c",Boo:"#d4bec1",Boogie:"#c80fa0",Brainfuck:"#2F2530",BrighterScript:"#66AA\ +BB",Brightscript:"#662D91",Browserslist:"#ffd539",Bru:"#F4AA41",BuildStream:"#006bff",C:"#555555","C#":"#7355dd","C++":"#f34b7d",C3:"#2563eb","CAP CDS":"#0092d1",CLIPS:"#00A300",CMake:"#DA3434",COLLADA:"\ +#F1A42B",CQL:"#006091",CSON:"#244776",CSS:"#663399",CSV:"#237346",CUE:"#5886E1",CWeb:"#00007a","Cabal Config":"#483465",Caddyfile:"#22b638",Cadence:"#00ef8b",Cairo:"#ff4a48","Cairo Zero":"#ff4a48",CameLIGO:"\ +#3be133",Cangjie:"#00868B","Cap'n Proto":"#c42727",Carbon:"#222222",Ceylon:"#dfa535",Chapel:"#8dc63f",ChucK:"#3f8000",Circom:"#707575",Cirru:"#ccccff",Clarion:"#db901e",Clarity:"#5546ff","Classic ASP":"\ +#6a40fd",Clean:"#3F85AF",Click:"#E4E6F3",Clojure:"#db5855","Closure Templates":"#0d948f","Cloud Firestore Security Rules":"#FFA000",Clue:"#0009b5",CodeQL:"#140f46",CoffeeScript:"#244776",ColdFusion:"#\ +ed2cd6","ColdFusion CFC":"#ed2cd6","Common Lisp":"#3fb68b","Common Workflow Language":"#B5314C","Component Pascal":"#B0CE4E",Cooklang:"#E15A29",Crystal:"#000100",Csound:"#1a1a1a","Csound Document":"#1\ +a1a1a","Csound Score":"#1a1a1a",Cuda:"#3A4E3A",Curry:"#531242",Cylc:"#00b3fd",Cypher:"#34c0eb",Cython:"#fedf5b",D:"#ba595e",D2:"#526ee8",DM:"#447265",Dafny:"#FFEC25","Darcs Patch":"#8eff23",Dart:"#00B\ +4AB",Daslang:"#d3d3d3",DataWeave:"#003a52","Debian Package Control File":"#D70751",DenizenScript:"#FBEE96",Dhall:"#dfafff","DirectX 3D File":"#aace60",Dockerfile:"#384d54",Dogescript:"#cca760",Dotenv:"\ +#e5d559",Dune:"#89421e",Dylan:"#6c616e",E:"#ccce35",ECL:"#8a1267",ECLiPSe:"#001d9d",EJS:"#a91e50",EQ:"#a78649",Earthly:"#2af0ff",Easybuild:"#069406","Ecere Projects":"#913960",Ecmarkup:"#eb8131",Edge:"\ +#0dffe0",EdgeQL:"#31A7FF",EditorConfig:"#fff1f2",Eiffel:"#4d6977",Elixir:"#6e4a7e",Elm:"#60B5CC",Elvish:"#55BB55","Elvish Transcript":"#55BB55","Emacs Lisp":"#c065db",EmberScript:"#FFF4F3",Erlang:"#B8\ +3998",Euphoria:"#FF790B","F#":"#b845fc","F*":"#572e30","FIGlet Font":"#FFDDBB",FIRRTL:"#2f632f",FLUX:"#88ccff",FPP:"#d37327",Factor:"#636746",Fancy:"#7b9db4",Fantom:"#14253c",Faust:"#c37240",Fennel:"#\ +fff3d7","Filebench WML":"#F6B900",FlatBuffers:"#ed284a",Flix:"#d44a45",Fluent:"#ffcc33",Forth:"#341708",Fortran:"#4d41b1","Fortran Free Form":"#4d41b1",FreeBASIC:"#141AC9",FreeMarker:"#0050b2",Frege:"\ +#00cafe",Futhark:"#5f021f","G-code":"#D08CF2",GAML:"#FFC766",GAMS:"#f49a22",GAP:"#0000cc","GCC Machine Description":"#FFCFAB",GDScript:"#355570",GDShader:"#478CBF",GEDCOM:"#003058",GLSL:"#5686a5",GSC:"\ +#FF6800","Game Maker Language":"#71b417","Gemfile.lock":"#701516",Gemini:"#ff6900","Genero 4gl":"#63408e","Genero per":"#d8df39",Genie:"#fb855d",Genshi:"#951531","Gentoo Ebuild":"#9400ff","Gentoo Ecla\ +ss":"#9400ff","Gerber Image":"#d20b00",Gherkin:"#5B2063","Git Attributes":"#F44D27","Git Commit":"#F44D27","Git Config":"#F44D27","Git Revision List":"#F44D27",Gleam:"#ffaff3","Glimmer JS":"#F5835F","\ +Glimmer TS":"#3178c6",Glyph:"#c1ac7f",Gno:"#226c57",Gnuplot:"#f0a9f0",Go:"#00ADD8","Go Checksums":"#00ADD8","Go Module":"#00ADD8","Go Template":"#00ADD8","Go Workspace":"#00ADD8","Godot Resource":"#35\ +5570",Golo:"#88562A",Gosu:"#82937f",Grace:"#615f8b",Gradle:"#02303a","Gradle Kotlin DSL":"#02303a","Grammatical Framework":"#ff0000",GraphQL:"#e10098","Graphviz (DOT)":"#2596be",Groovy:"#4298b8","Groo\ +vy Server Pages":"#4298b8",GtkRC:"#7fe719",HAProxy:"#106da9",HCL:"#844FBA",HIP:"#4F3A4F",HLSL:"#aace60",HOCON:"#9ff8ee",HTML:"#e34c26","HTML+ECR":"#2e1052","HTML+EEX":"#6e4a7e","HTML+ERB":"#701516","H\ +TML+PHP":"#4f5d95","HTML+Razor":"#512be4",HTTP:"#005C9C",HXML:"#f68712",Hack:"#878787",Haml:"#ece2a9",Handlebars:"#f7931e",Harbour:"#0e60e3",Hare:"#9d7424",Haskell:"#5e5086",Haxe:"#df7900",HiveQL:"#dc\ +e200",HolyC:"#ffefaf","Hosts File":"#308888",Hurl:"#FF0288",Hy:"#7790B2",IDL:"#a3522f","IGOR Pro":"#0000cc","IL Assembly":"#512BD4",INI:"#d1dbe0",ISPC:"#2D68B1",Idris:"#b30000","Ignore List":"#000000", +"ImHex Pattern Language":"#3a6be0","ImageJ Macro":"#99AAFF",Imba:"#16cec6","Inno Setup":"#264b99",Io:"#a9188d",Ioke:"#078193",Isabelle:"#FEFE00","Isabelle ROOT":"#FEFE00",J:"#9EEDFF","JAR Manifest":"#\ +b07219",JASS:"#FF0303",JCL:"#d90e09",JFlex:"#DBCA00",JSON:"#292929","JSON with Comments":"#292929",JSON5:"#267CB9",JSONLD:"#0c479c",JSONiq:"#40d47e",Jac:"#FC792D",Jai:"#ab8b4b",Janet:"#0886a5",Jasmin:"\ +#d03600",Java:"#b07219","Java Properties":"#2A6277","Java Server Pages":"#2A6277","Java Template Engine":"#2A6277",JavaScript:"#f1e05a","JavaScript+ERB":"#f1e05a","Jest Snapshot":"#15c213","JetBrains \ +MPS":"#21D789",Jinja:"#a52a22",Jison:"#56b3cb","Jison Lex":"#56b3cb",Jolie:"#843179",Jsonnet:"#0064bd",Julia:"#a270ba","Julia REPL":"#a270ba","Jupyter Notebook":"#DA5B0B",Just:"#384d54",KCL:"#7ABABF", +KDL:"#ffb3b3",KFramework:"#4195c5",KRL:"#28430A","Kaitai Struct":"#773b37",KakouneScript:"#6f8042",KerboScript:"#41adf0","KiCad Layout":"#2f4aab","KiCad Legacy Layout":"#2f4aab","KiCad Schematic":"#2f\ +4aab","KoLmafia ASH":"#B9D9B9",Koka:"#215166",Kotlin:"#A97BFF",LFE:"#4C3023",LLVM:"#185619",LOLCODE:"#cc9900",LSL:"#3d9970",LabVIEW:"#fede06",Lambdapi:"#8027a3",Langium:"#2c8c87",Lark:"#2980B9",Lasso:"\ +#999999",Latte:"#f2a542",Leo:"#C4FFC2",Less:"#1d365d",Lex:"#DBCA00",LigoLANG:"#0e74ff",LilyPond:"#9ccc7c",Liquid:"#67b8de",Liquidsoap:"#990066","Literate Agda":"#315665","Literate CoffeeScript":"#2447\ +76","Literate Haskell":"#5e5086","LiveCode Script":"#0c5ba5",LiveScript:"#499886",Lobster:"#f95428",Logtalk:"#295b9a",LookML:"#652B81",Lua:"#000080",Luau:"#00A2FF",M3U:"#179C7D",MATLAB:"#e16737",MAXScript:"\ +#00a6a6",MDX:"#fcb32c",MLIR:"#5EC8DB",MQL4:"#62A8D6",MQL5:"#4A76B8",MTML:"#b7e1f4",Macaulay2:"#d8ffff",Makefile:"#427819",Mako:"#7e858d",Markdown:"#083fa1",Marko:"#42bff2",Mask:"#f97732","Mathematical\ + Programming System":"#0530ad",Max:"#c4a79c",MeTTa:"#6a5acd",Mercury:"#ff2b2b",Mermaid:"#ff3670",Meson:"#007800",Metal:"#8f14e9",MiniScript:"#4B4A56",MiniYAML:"#ff1111",MiniZinc:"#06a9e6",Mint:"#02b04\ +6",Mirah:"#c7a938",Modelica:"#de1d31","Modula-2":"#10253f","Modula-3":"#223388",Mojo:"#ff4c1f","Monkey C":"#8D6747",MoonBit:"#b92381",MoonScript:"#ff4585",Motoko:"#fbb03b","Motorola 68K Assembly":"#00\ +5daa",Move:"#4a137a",Mustache:"#724b3b",NCL:"#28431f",NMODL:"#00356B","NPM Config":"#cb3837",NWScript:"#111522",Nasal:"#1d2c4e",Nearley:"#990000",Nemerle:"#3d3c6e",NetLinx:"#0aa0ff","NetLinx+ERB":"#74\ +7faa",NetLogo:"#ff6375",NewLisp:"#87AED7",Nextflow:"#3ac486",Nginx:"#009639",Nickel:"#E0C3FC",Nim:"#ffc200",Nit:"#009917",Nix:"#7e7eff",Noir:"#2f1f49",Nu:"#c9df40",NumPy:"#9C8AF9",Nunjucks:"#3d8137",Nushell:"\ +#4E9906","OASv2-json":"#85ea2d","OASv2-yaml":"#85ea2d","OASv3-json":"#85ea2d","OASv3-yaml":"#85ea2d",OCaml:"#ef7a08","OMNeT++ MSG":"#a0e0a0","OMNeT++ NED":"#08607c",ObjectScript:"#424893","Objective-C":"\ +#438eff","Objective-C++":"#6866fb","Objective-J":"#ff0c5a",Odin:"#60AFFE",Omgrofl:"#cabbff",Opal:"#f7ede0","Open Policy Agent":"#7d9199","OpenAPI Specification v2":"#85ea2d","OpenAPI Specification v3":"\ +#85ea2d",OpenCL:"#ed2e2d","OpenEdge ABL":"#5ce600",OpenQASM:"#AA70FF",OpenSCAD:"#e5cd45","Option List":"#476732",Org:"#77aa99",OverPy:"#78b355",OverpassQL:"#cce2aa",Oxygene:"#cdd0e3",Oz:"#fab738",P4:"\ +#7055b5",PDDL:"#0d00ff","PEG.js":"#234d6b",PHP:"#4F5D95",PLSQL:"#dad8d8",PLpgSQL:"#336790","POV-Ray SDL":"#6bac65",Pact:"#F7A8B8",Pan:"#cc0000",Papyrus:"#6600cc",Parrot:"#f3ca0a",Pascal:"#E3F171",Pawn:"\ +#dbb284",Pep8:"#C76F5B",Perl:"#0298c3",PicoLisp:"#6067af",PigLatin:"#fcd7de",Pike:"#005390","Pip Requirements":"#FFD343",Pkl:"#6b9543",PlantUML:"#fbbd16",PogoScript:"#d80074",Polar:"#ae81ff",Portugol:"\ +#f8bd00",PostCSS:"#dc3a0c",PostScript:"#da291c","Power Query":"#d38e0d",PowerBuilder:"#8f0f8d",PowerShell:"#012456",Praat:"#c8506d",Prisma:"#0c344b","Pro*C":"#bb8368",Processing:"#0096D8",Procfile:"#3\ +B2F63",Prolog:"#74283c",Promela:"#de0000","Propeller Spin":"#7fa2a7",Pug:"#a86454",Puppet:"#302B6D",PureBasic:"#5a6986",PureScript:"#1D222D",Pyret:"#ee1e10",Python:"#3572A5","Python console":"#3572A5", +"Python traceback":"#3572A5","Q#":"#fed659",QML:"#44a51c","Qt Script":"#00b841",Quake:"#882233",QuakeC:"#975777","Quartus Simulation IP":"#58C42E",QuickBASIC:"#008080",Quint:"#9d6ce5",R:"#198CE7",RAML:"\ +#77d9fb",RAScript:"#2C97FA",RBS:"#701516",RDoc:"#701516",REXX:"#d90e09",RMarkdown:"#198ce7",RON:"#a62c00","ROS Interface":"#22314e",RPGLE:"#2BDE21",RUNOFF:"#665a4e",Racket:"#3c5caa",Ragel:"#9d5200",Raku:"\ +#0000fb",Rascal:"#fffaa0",ReScript:"#ed5051",Reason:"#ff5847",ReasonLIGO:"#ff5847",Rebol:"#358a5b","Record Jar":"#0673ba",Red:"#f50000",Redscript:"#f44336","Regular Expression":"#009a00","Ren'Py":"#ff\ +7f7f",Rez:"#FFDAB3",Rhai:"#FBA63B",Ring:"#2D54CB",Riot:"#A71E49",RobotFramework:"#00c0b5",Roc:"#7c38f5","Rocq Prover":"#d0b68c",Roff:"#ecdebe","Roff Manpage":"#ecdebe",Rouge:"#cc0088","RouterOS Script":"\ +#DE3941",Ruby:"#701516",Rust:"#dea584",SAS:"#B34936",SCSS:"#c6538c",SIP:"#4E8D83",SPARQL:"#0C4597",SQF:"#3F3F3F",SQL:"#e38c00",SQLPL:"#e38c00","SRecode Template":"#348a34",STL:"#373b5e",SVG:"#ff9900", +Sail:"#259dd5",Salt:"#57bcad",Sass:"#a53b70",Scala:"#c22d40",Scaml:"#bd181a",Scenic:"#fdc700",Scheme:"#1e4aec",Scilab:"#ca0f21",Self:"#0579aa",ShaderLab:"#222c37",Shell:"#89e051","ShellCheck Config":"\ +#cecfcb",Shen:"#120F14","Simple File Verification":"#C9BFED",Singularity:"#64E6AD",Slang:"#1fbec9",Slash:"#007eff",Slice:"#003fa2",Slim:"#2b2b2b",Slint:"#2379F4",SmPL:"#c94949",Smalltalk:"#596706",Smarty:"\ +#f0c040",Smithy:"#c44536",Snakemake:"#419179",Solidity:"#AA6746",SourcePawn:"#f69e1d","SpiceDB Schema":"#a5318a",Squirrel:"#800000",Stan:"#b2011d","Standard ML":"#dc566d",Starlark:"#76d275",Stata:"#1a\ +5f91",StringTemplate:"#3fb34f",Stylus:"#ff6347","SubRip Text":"#9e0101",SugarSS:"#2fcc9f",SuperCollider:"#46390b",SurrealQL:"#ff00a0","Survex data":"#ffcc99",Svelte:"#ff3e00",Sway:"#00F58C",Sweave:"#1\ +98ce7",Swift:"#F05138",SystemVerilog:"#DAE1C2","TI Program":"#A0AA87","TL-Verilog":"#C40023",TLA:"#4b0079",TMDL:"#f0c913",TOML:"#9c4221",TSQL:"#e38c00",TSV:"#237346",TSX:"#3178c6",TXL:"#0178b8",Tact:"\ +#48b5ff",Talon:"#333333",Tcl:"#e4cc98",TeX:"#3D6117",Teal:"#00B1BC",Terra:"#00004c","Terraform Template":"#7b42bb",TextGrid:"#c8506d","TextMate Properties":"#df66e4",Textile:"#ffe7ac",Thrift:"#D12127", +Toit:"#c2c9fb",Tolk:"#30A1F5","Tor Config":"#59316b","Tree-sitter Query":"#8ea64c",Turing:"#cf142b",Twig:"#c1d026",TypeScript:"#3178c6",TypeSpec:"#4A3665",Typst:"#239dad","Unified Parallel C":"#4e3617", +"Unity3D Asset":"#222c37",Uno:"#9933cc",UnrealScript:"#a54c4d","Untyped Plutus Core":"#36adbd",UrWeb:"#ccccee",V:"#4f87c4",VBA:"#867db1",VBScript:"#15dcdc",VCL:"#148AA8",VHDL:"#adb2cb",Vala:"#a56de2", +"Valve Data Format":"#f26025","Velocity Template Language":"#507cff",Vento:"#ff0080",Verilog:"#b2b7f8",Verse:"#518ef8","Vespa Schema Definition":"#61D790","Vim Help File":"#199f4b","Vim Snippet":"#199\ +f4b","Vim script":"#199f4b","Visual Basic .NET":"#945db7","Visual Basic 6.0":"#2c6353",Volt:"#1F1F1F",Vue:"#41b883",Vyper:"#9F4CF2",WDL:"#42f1f4",WGSL:"#1a5e9a","Web Ontology Language":"#5b70bd",WebAssembly:"\ +#04133b","WebAssembly Interface Type":"#6250e7",Whiley:"#d5c397",Wikitext:"#fc5757","Windows Registry Entries":"#52d5ff","Witcher Script":"#ff0000","Wolfram Language":"#dd1100",Wollok:"#a23738","World\ + of Warcraft Addon Data":"#f7e43f",Wren:"#383838",X10:"#4B6BEF",XC:"#99DA07",XML:"#0060ac","XML Property List":"#0060ac",XQuery:"#5232e7",XSLT:"#EB8CEB",Xmake:"#22a079",Xojo:"#81bd41",Xonsh:"#285EEF", +Xtend:"#24255d",YAML:"#cb171e",YARA:"#220000",YASnippet:"#32AB90",Yacc:"#4B6C4B",Yul:"#794932",ZAP:"#0d665e",ZIL:"#dc75e5",ZenScript:"#00BCD1",Zephir:"#118f9e",Zig:"#ec915c",Zimpl:"#d67711",Zmodel:"#f\ +f7100",crontab:"#ead7ac",eC:"#913960",fish:"#4aae47",hoon:"#00b171",iCalendar:"#ec564c",jq:"#c7254e",kvlang:"#1da6e0","mIRC Script":"#3d57c3",mcfunction:"#E22837",mdsvex:"#5f9ea0",mupad:"#244963",nanorc:"\ +#2d004d",nesC:"#94B0C7",ooc:"#b0b77e","pkg-config":"#2b5e82",q:"#0040cd",reStructuredText:"#141414",sed:"#64b970",templ:"#66D0DD",ucode:"#00b8d4",vCard:"#ee2647",wisp:"#7582D1",xBase:"#403a40"};var DEFAULT_LANG_COLOR="#858585";var languageColors=languageColors_default;var getLanguageColor=name=>languageColors[name]??DEFAULT_LANG_COLOR;var ICON_SIZE=16;var CARD_DEFAULT_WIDTH=400;var X_OFFSET=25;var HEADER_MAX_LENGTH=35;var DESCRIPTION_BOX_WIDTH=CARD_DEFAULT_WIDTH-2*X_OFFSET;var DESCRIPTION_FONT_SIZE=13;var DESCRIPTION_LINE_HEIGHT_PX=16; +var DESCRIPTION_MAX_LINES=10;var renderGistCard=(gistData,options={})=>{const{name,nameWithOwner,description,language,starsCount,forksCount}=gistData;const{theme="default_repocard",border_radius,show_owner=false, +browser_rendering=false,hide_border=false}=options;const{lightColors,darkColors}=getLightDarkColors({...options,theme});const desc=parseEmojis(description||"No description provided");let descriptionLines; +let descriptionSvg;if(browser_rendering){descriptionLines=countWrappedLines(desc,DESCRIPTION_FONT_SIZE,DESCRIPTION_BOX_WIDTH,DESCRIPTION_MAX_LINES);descriptionSvg=wrappedTextNode({text:desc,x:X_OFFSET, +y:-3,width:DESCRIPTION_BOX_WIDTH,height:descriptionLines*DESCRIPTION_LINE_HEIGHT_PX+10,lineCount:descriptionLines,className:"description",testId:"description-text"})}else{const linesLimit=10;const multiLineDescription=wrapTextMultiline( +desc,DESCRIPTION_BOX_WIDTH,DESCRIPTION_FONT_SIZE,linesLimit);descriptionLines=multiLineDescription.length;descriptionSvg=el("text",{class:"description",x:X_OFFSET,y:-5},multiLineDescription.map(line=>el( +"tspan",{dy:"1.2em",x:X_OFFSET},line)))}const lineHeight=descriptionLines>3?12:10;const height=(descriptionLines>1?120:110)+descriptionLines*lineHeight;const totalStars=kFormatter(starsCount);const totalForks=kFormatter( +forksCount);const svgStars=iconWithLabel(icons.star,totalStars,"starsCount",ICON_SIZE);const svgForks=iconWithLabel(icons.fork,totalForks,"forksCount",ICON_SIZE);const languageName=language||"Unspecif\ +ied";const languageColor=getLanguageColor(languageName);const svgLanguage=createLanguageNode(languageName,languageColor);const starAndForkCount=flexLayout({items:[svgLanguage,svgStars,svgForks],sizes:[ +measureText(languageName,12),ICON_SIZE+measureText(`${totalStars}`,12),ICON_SIZE+measureText(`${totalForks}`,12)],gap:25});const header=show_owner?nameWithOwner:name;const card=new Card({defaultTitle:header. +length>HEADER_MAX_LENGTH?`${header.slice(0,HEADER_MAX_LENGTH)}...`:header,titlePrefixIcon:icons.gist,width:CARD_DEFAULT_WIDTH,height,border_radius,colors:{light:lightColors,dark:darkColors}});card.setCSS( +{light:({textColor,iconColor})=>[rule(".description",{font:`400 ${DESCRIPTION_FONT_SIZE}px 'Segoe UI', Ubuntu, Sans-Serif`,fill:textColor,...browser_rendering?wrappedTextStyles(textColor):{}}),rule(".\ +gray",{font:"400 12px 'Segoe UI', Ubuntu, Sans-Serif",fill:textColor}),rule(".icon",{fill:iconColor})],dark:({textColor,iconColor})=>[rule(".description",{fill:textColor,...browser_rendering?wrappedTextStyles( +textColor):{}}),rule(".gray",{fill:textColor}),rule(".icon",{fill:iconColor})]});card.setHideBorder(hide_border);card.setAccessibilityLabel({title:card.title,desc:`${desc}. Language: ${languageName}, \ +Stars: ${totalStars}, Forks: ${totalForks}`});return card.render([descriptionSvg,el("g",{transform:`translate(30, ${height-75})`},starAndForkCount)])};var GITHUB_GRAPHQL_API="https://api.github.com/graphql";var defaultFetch=(input,init)=>fetch(input,init);var httpRequest=async(fetchImpl,url,init)=>{const response=await fetchImpl(url,init);const body=await response. +text();let data;try{data=JSON.parse(body)}catch{data=body}return{status:response.status,statusText:response.statusText,data}};var createGraphQLFetcher=(document,scheme)=>(variables,token,{fetch:fetch2})=>httpRequest( +fetch2,GITHUB_GRAPHQL_API,{method:"POST",headers:{Authorization:`${scheme} ${token}`,"Content-Type":"application/json"},body:JSON.stringify({query:document.text,variables})});var logger={log:console.log,error:console.error};function getRandomInt(max){return Math.floor(Math.random()*max)}var retryer=async(fetcher5,variables,config2)=>{const PATs=config2.pats;if(PATs.length===0){throw new CardError("No GitHub API tokens fo\ +und",{code:"no_tokens"})}const startPAT=getRandomInt(PATs.length);for(let retries=0;retries({text});var GistInfoDocument=graphqlDocument(` query gistInfo($gistName: String!) { viewer { gist(name: $gistName) { @@ -22799,1560 +3418,367 @@ fragment GistFileInfo on GistFile { name } size -}`); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/fetchers/gist.js -var fetcher = createGraphQLFetcher(GistInfoDocument, "token"); -var calculatePrimaryLanguage = (files) => { - const languages = {}; - for (const file of files) { - if (file.language) { - languages[file.language.name] = (languages[file.language.name] ?? 0) + (file.size ?? 0); - } - } - let primaryLanguage = null; - let maxSize = -1; - for (const [language, size] of Object.entries(languages)) { - if (size > maxSize) { - maxSize = size; - primaryLanguage = language; - } - } - return primaryLanguage; -}; -var fetchGist = async ({ id }, config2) => { - if (!id) { - throw CardError.missingParam(["id"], "/api/gist?id=GIST_ID"); - } - const res = await retryer(fetcher, { gistName: id }, config2); - if (res.data.errors) { - throw new CardError(res.data.errors[0]?.message ?? "Could not fetch gist.", { - code: "upstream" - }); - } - const gist2 = res.data.data.viewer.gist; - if (!gist2) { - throw new CardError("Gist not found", { - code: "not_found", - secondaryMessage: GIST_NOT_FOUND - }); - } - const firstFile = gist2.files?.[0]; - if (!firstFile?.name) { - throw new CardError("Gist has no files", { code: "not_found" }); - } - return { - name: firstFile.name, - nameWithOwner: `${gist2.owner?.login ?? ""}/${firstFile.name}`, - description: gist2.description, - language: calculatePrimaryLanguage(gist2.files?.filter((file) => !!file) ?? []), - starsCount: gist2.stargazerCount, - forksCount: gist2.forks.totalCount - }; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/api-result.js -var errorResult = (err, renderOptions) => { - const error2 = CardError.from(err); - return { - status: "error", - retryable: error2.retryable, - error: { - code: error2.code, - message: error2.message, - secondaryMessage: error2.secondaryMessage, - param: error2.param - }, - content: renderError({ - message: error2.message, - secondaryMessage: error2.secondaryMessage, - renderOptions: { - ...renderOptions, - // A missing param is the caller's to fix, so the card links its docs instead. - show_repo_link: error2.code !== "missing_param" - } - }) - }; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/translations.js -var statCardLocales = ({ name, apostrophe }) => { - const encodedName = encodeHTML(name); - return { - "statcard.title": { - en: `${encodedName}'${apostrophe} GitHub Stats`, - ar: `${encodedName} \u0625\u062D\u0635\u0627\u0626\u064A\u0627\u062A \u062C\u064A\u062A \u0647\u0627\u0628`, - az: `${encodedName}'${apostrophe} Hesab\u0131n\u0131n GitHub Statistikas\u0131`, - ca: `Estad\xEDstiques de GitHub de ${encodedName}`, - cn: `${encodedName} \u7684 GitHub \u7EDF\u8BA1\u6570\u636E`, - "zh-tw": `${encodedName} \u7684 GitHub \u7D71\u8A08\u8CC7\u6599`, - cs: `GitHub statistiky u\u017Eivatele ${encodedName}`, - de: `${encodedName + apostrophe} GitHub-Statistiken`, - sw: `GitHub Stats za ${encodedName}`, - ur: `${encodedName} \u06A9\u06D2 \u06AF\u0679 \u06C1\u0628 \u06A9\u06D2 \u0627\u0639\u062F\u0627\u062F \u0648 \u0634\u0645\u0627\u0631`, - bg: `GitHub \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B ${encodedName}`, - bn: `${encodedName} \u098F\u09B0 GitHub \u09AA\u09B0\u09BF\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u09A8`, - es: `Estad\xEDsticas de GitHub de ${encodedName}`, - fa: `\u0622\u0645\u0627\u0631 \u06AF\u06CC\u062A\u200C\u0647\u0627\u0628 ${encodedName}`, - fi: `${encodedName}:n GitHub-tilastot`, - fr: `Statistiques GitHub de ${encodedName}`, - hi: `${encodedName} \u0915\u0947 GitHub \u0906\u0901\u0915\u0921\u093C\u0947`, - sa: `${encodedName} \u0907\u0924\u094D\u092F\u0938\u094D\u092F GitHub \u0938\u093E\u0902\u0916\u094D\u092F\u093F\u0915\u0940`, - hu: `${encodedName} GitHub statisztika`, - it: `Statistiche GitHub di ${encodedName}`, - ja: `${encodedName}\u306E GitHub \u7D71\u8A08`, - kr: `${encodedName}\uC758 GitHub \uD1B5\uACC4`, - nl: `${encodedName}'${apostrophe} GitHub-statistieken`, - "pt-pt": `Estat\xEDsticas do GitHub de ${encodedName}`, - "pt-br": `Estat\xEDsticas do GitHub de ${encodedName}`, - np: `${encodedName}'${apostrophe} \u0917\u093F\u091F\u0939\u092C \u0924\u0925\u094D\u092F\u093E\u0919\u094D\u0915`, - el: `\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC GitHub \u03C4\u03BF\u03C5 ${encodedName}`, - ro: `Statisticile GitHub ale lui ${encodedName}`, - ru: `\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 GitHub \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F ${encodedName}`, - "uk-ua": `\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 GitHub \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 ${encodedName}`, - id: `Statistik GitHub ${encodedName}`, - ml: `${encodedName}'${apostrophe} \u0D17\u0D3F\u0D31\u0D4D\u0D31\u0D4D\u0D39\u0D2C\u0D4D \u0D38\u0D4D\u0D25\u0D3F\u0D24\u0D3F\u0D35\u0D3F\u0D35\u0D30\u0D15\u0D4D\u0D15\u0D23\u0D15\u0D4D\u0D15\u0D41\u0D15\u0D7E`, - my: `${encodedName} \u101B\u1032\u1037 GitHub \u1021\u1001\u103C\u1031\u1021\u1014\u1031\u1019\u103B\u102C\u1038`, - ta: `${encodedName} \u0B95\u0BBF\u0B9F\u0BCD\u0BB9\u0BAA\u0BCD \u0BAA\u0BC1\u0BB3\u0BCD\u0BB3\u0BBF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BCD`, - sk: `GitHub \u0161tatistiky pou\u017E\xEDvate\u013Ea ${encodedName}`, - tr: `${encodedName} Hesab\u0131n\u0131n GitHub \u0130statistikleri`, - pl: `Statystyki GitHub u\u017Cytkownika ${encodedName}`, - uz: `${encodedName}ning GitHub'dagi statistikasi`, - vi: `Th\u1ED1ng K\xEA GitHub ${encodedName}`, - se: `GitHubstatistik f\xF6r ${encodedName}`, - he: `\u05E1\u05D8\u05D8\u05D9\u05E1\u05D8\u05D9\u05E7\u05D5\u05EA \u05D4\u05D2\u05D9\u05D8\u05D4\u05D0\u05D1 \u05E9\u05DC ${encodedName}`, - fil: `Mga Stats ng GitHub ni ${encodedName}`, - th: `\u0E2A\u0E16\u0E34\u0E15\u0E34 GitHub \u0E02\u0E2D\u0E07 ${encodedName}`, - sr: `GitHub \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043A\u043E\u0440\u0438\u0441\u043D\u0438\u043A\u0430 ${encodedName}`, - "sr-latn": `GitHub statistika korisnika ${encodedName}`, - no: `GitHub-statistikk for ${encodedName}`, - be: `\u0421\u0442\u0430\u0442\u044B\u0441\u0442\u044B\u043A\u0430 GitHub \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A\u0430 ${encodedName}` - }, - "statcard.ranktitle": { - en: `${encodedName}'${apostrophe} GitHub Rank`, - ar: `${encodedName} \u0625\u062D\u0635\u0627\u0626\u064A\u0627\u062A \u062C\u064A\u062A \u0647\u0627\u0628`, - az: `${encodedName}'${apostrophe} Hesab\u0131n\u0131n GitHub Statistikas\u0131`, - ca: `Estad\xEDstiques de GitHub de ${encodedName}`, - cn: `${encodedName} \u7684 GitHub \u7EDF\u8BA1\u6570\u636E`, - "zh-tw": `${encodedName} \u7684 GitHub \u7D71\u8A08\u8CC7\u6599`, - cs: `GitHub statistiky u\u017Eivatele ${encodedName}`, - de: `${encodedName + apostrophe} GitHub-Statistiken`, - sw: `GitHub Rank ya ${encodedName}`, - ur: `${encodedName} \u06A9\u06CC \u06AF\u0679 \u06C1\u0628 \u0631\u06CC\u0646\u06A9`, - bg: `GitHub \u0440\u0430\u043D\u0433 \u043D\u0430 ${encodedName}`, - bn: `${encodedName} \u098F\u09B0 GitHub \u09AA\u09B0\u09BF\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u09A8`, - es: `Estad\xEDsticas de GitHub de ${encodedName}`, - fa: `\u0631\u062A\u0628\u0647 \u06AF\u06CC\u062A\u200C\u0647\u0627\u0628 ${encodedName}`, - fi: `${encodedName}:n GitHub-sijoitus`, - fr: `Statistiques GitHub de ${encodedName}`, - hi: `${encodedName} \u0915\u093E GitHub \u0938\u094D\u0925\u093E\u0928`, - sa: `${encodedName} \u0907\u0924\u094D\u092F\u0938\u094D\u092F GitHub \u0938\u094D\u0925\u093E\u0928\u092E\u094D`, - hu: `${encodedName} GitHub statisztika`, - it: `Statistiche GitHub di ${encodedName}`, - ja: `${encodedName} \u306E GitHub \u30E9\u30F3\u30AF`, - kr: `${encodedName}\uC758 GitHub \uD1B5\uACC4`, - nl: `${encodedName}'${apostrophe} GitHub-statistieken`, - "pt-pt": `Estat\xEDsticas do GitHub de ${encodedName}`, - "pt-br": `Estat\xEDsticas do GitHub de ${encodedName}`, - np: `${encodedName}'${apostrophe} \u0917\u093F\u091F\u0939\u092C \u0924\u0925\u094D\u092F\u093E\u0919\u094D\u0915`, - el: `\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC GitHub \u03C4\u03BF\u03C5 ${encodedName}`, - ro: `Rankul GitHub al lui ${encodedName}`, - ru: `\u0420\u0435\u0439\u0442\u0438\u043D\u0433 GitHub \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F ${encodedName}`, - "uk-ua": `\u0420\u0435\u0439\u0442\u0438\u043D\u0433 GitHub \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 ${encodedName}`, - id: `Statistik GitHub ${encodedName}`, - ml: `${encodedName}'${apostrophe} \u0D17\u0D3F\u0D31\u0D4D\u0D31\u0D4D\u0D39\u0D2C\u0D4D \u0D38\u0D4D\u0D25\u0D3F\u0D24\u0D3F\u0D35\u0D3F\u0D35\u0D30\u0D15\u0D4D\u0D15\u0D23\u0D15\u0D4D\u0D15\u0D41\u0D15\u0D7E`, - my: `${encodedName} \u101B\u1032\u1037 GitHub \u1021\u1006\u1004\u1037\u103A`, - ta: `${encodedName} \u0B95\u0BBF\u0B9F\u0BCD\u0BB9\u0BAA\u0BCD \u0BA4\u0BB0\u0BB5\u0BB0\u0BBF\u0B9A\u0BC8`, - sk: `GitHub \u0161tatistiky pou\u017E\xEDvate\u013Ea ${encodedName}`, - tr: `${encodedName} Hesab\u0131n\u0131n GitHub Y\u0131ld\u0131zlar\u0131`, - pl: `Statystyki GitHub u\u017Cytkownika ${encodedName}`, - uz: `${encodedName}ning GitHub'dagi statistikasi`, - vi: `Th\u1ED1ng K\xEA GitHub ${encodedName}`, - se: `GitHubstatistik f\xF6r ${encodedName}`, - he: `\u05D3\u05E8\u05D2\u05EA \u05D4\u05D2\u05D9\u05D8\u05D4\u05D0\u05D1 \u05E9\u05DC ${encodedName}`, - fil: `Ranggo ng GitHub ni ${encodedName}`, - th: `\u0E2D\u0E31\u0E19\u0E14\u0E31\u0E1A GitHub \u0E02\u0E2D\u0E07 ${encodedName}`, - sr: `\u0420\u0430\u043D\u043A \u043A\u043E\u0440\u0438\u0441\u043D\u0438\u043A\u0430 ${encodedName}`, - "sr-latn": `Rank korisnika ${encodedName}`, - no: `GitHub-statistikk for ${encodedName}`, - be: `\u0420\u044D\u0439\u0442\u044B\u043D\u0433 GitHub \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A\u0430 ${encodedName}` - }, - "statcard.totalstars": { - en: "Total Stars Earned", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0646\u062C\u0648\u0645", - az: "\xDCmumi Ulduz", - ca: "Total d'estrelles", - cn: "\u83B7\u6807\u661F\u6570", - "zh-tw": "\u5F97\u6A19\u661F\u661F\u6578\u91CF\uFF08Star\uFF09", - cs: "Celkem hv\u011Bzd", - de: "Insgesamt erhaltene Sterne", - sw: "Medali(stars) ulizojishindia", - ur: "\u06A9\u0644 \u0633\u062A\u0627\u0631\u06D2 \u062D\u0627\u0635\u0644 \u06A9\u06CC\u06D2", - bg: "\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u0437\u0432\u0435\u0437\u0434\u0438", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F Star", - es: "Estrellas totales", - fa: "\u0645\u062C\u0645\u0648\u0639 \u0633\u062A\u0627\u0631\u0647\u200C\u0647\u0627\u06CC \u062F\u0631\u06CC\u0627\u0641\u062A\u200C\u0634\u062F\u0647", - fi: "Ansaitut t\xE4hdet yhteens\xE4", - fr: "Total d'\xE9toiles", - hi: "\u0915\u0941\u0932 \u0905\u0930\u094D\u091C\u093F\u0924 \u0938\u093F\u0924\u093E\u0930\u0947", - sa: "\u0905\u0930\u094D\u091C\u093F\u0924\u093E\u0903 \u0915\u0941\u0932-\u0924\u093E\u0930\u0915\u093E\u0903", - hu: "Csillagok", - it: "Stelle totali", - ja: "\u30B9\u30BF\u30FC\u3055\u308C\u305F\u6570", - kr: "\uBC1B\uC740 \uC2A4\uD0C0 \uC218", - nl: "Totaal Sterren Ontvangen", - "pt-pt": "Total de estrelas", - "pt-br": "Total de estrelas", - np: "\u0915\u0941\u0932 \u0924\u093E\u0930\u093E\u0939\u0930\u0942", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u0391\u03C3\u03C4\u03B5\u03C1\u03B9\u03CE\u03BD", - ro: "Total de stele c\xE2\u0219tigate", - ru: "\u0412\u0441\u0435\u0433\u043E \u0437\u0432\u0451\u0437\u0434", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u0437\u0456\u0440\u043E\u043A", - id: "Total Bintang", - ml: "\u0D06\u0D15\u0D46 \u0D28\u0D15\u0D4D\u0D37\u0D24\u0D4D\u0D30\u0D19\u0D4D\u0D19\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038\u1000\u103C\u101A\u103A\u1019\u103B\u102C\u1038", - ta: "\u0B9A\u0BAE\u0BCD\u0BAA\u0BBE\u0BA4\u0BBF\u0BA4\u0BCD\u0BA4 \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0BA8\u0B9F\u0BCD\u0B9A\u0BA4\u0BCD\u0BA4\u0BBF\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BCD", - sk: "Hviezdy", - tr: "Toplam Y\u0131ld\u0131z", - pl: "Liczba otrzymanych gwiazdek", - uz: "Yulduzchalar", - vi: "T\u1ED5ng S\u1ED1 Sao", - se: "Antal intj\xE4nade stj\xE4rnor", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05DB\u05D5\u05DB\u05D1\u05D9\u05DD \u05E9\u05D4\u05D5\u05E9\u05D2\u05D5", - fil: "Kabuuang Nakuhang Bituin", - th: "\u0E14\u0E32\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A", - sr: "\u0411\u0440\u043E\u0458 \u043E\u0441\u0432\u043E\u0458\u0435\u043D\u0438\u0445 \u0437\u0432\u0435\u0437\u0434\u0438\u0446\u0430", - "sr-latn": "Broj osvojenih zvezdica", - no: "Totalt antall stjerner", - be: "\u0417\u0430\u0440\u043E\u0431\u043B\u0435\u043D\u0430 \u0437\u043E\u0440\u0430\u043A \u0430\u0433\u0443\u043B\u0430\u043C" - }, - "statcard.commits": { - en: "Total Commits", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0645\u0633\u0627\u0647\u0645\u0627\u062A", - az: "\xDCmumi Commit", - ca: "Commits totals", - cn: "\u7D2F\u8BA1\u63D0\u4EA4\u603B\u6570", - "zh-tw": "\u7D2F\u8A08\u63D0\u4EA4\u6578\u91CF\uFF08Commit\uFF09", - cs: "Celkem commit\u016F", - de: "Anzahl Commits", - sw: "Matendo yako yote", - ur: "\u06A9\u0644 \u06A9\u0645\u0679", - bg: "\u041E\u0431\u0449\u043E \u0430\u043D\u0433\u0430\u0436\u0438\u043C\u0435\u043D\u0442\u0438", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F Commit", - es: "Commits totales", - fa: "\u0645\u062C\u0645\u0648\u0639 \u06A9\u0627\u0645\u06CC\u062A\u200C\u0647\u0627", - fi: "Yhteens\xE4 committeja", - fr: "Total des Commits", - hi: "\u0915\u0941\u0932 commits", - sa: "\u0915\u0941\u0932-\u0938\u092E\u093F\u0928\u094D\u091A\u092F\u0903", - hu: "\xD6sszes commit", - it: "Commit totali", - ja: "\u5408\u8A08\u30B3\u30DF\u30C3\u30C8\u6570", - kr: "\uC804\uCCB4 \uCEE4\uBC0B \uC218", - nl: "Aantal commits", - "pt-pt": "Total de Commits", - "pt-br": "Total de Commits", - np: "\u0915\u0941\u0932 Commits", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF Commits", - ro: "Total Commit-uri", - ru: "\u0412\u0441\u0435\u0433\u043E \u043A\u043E\u043C\u043C\u0438\u0442\u043E\u0432", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u043A\u043E\u043C\u0456\u0442\u0456\u0432", - id: "Total Komitmen", - ml: "\u0D06\u0D15\u0D46 \u0D15\u0D2E\u0D4D\u0D2E\u0D3F\u0D31\u0D4D\u0D31\u0D41\u0D15\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 Commit \u1019\u103B\u102C\u1038", - ta: `\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B95\u0BAE\u0BBF\u0B9F\u0BCD\u0B95\u0BB3\u0BCD`, - sk: "V\u0161etky commity", - tr: "Toplam Commit", - pl: "Wszystkie commity", - uz: "'Commit'lar", - vi: "T\u1ED5ng S\u1ED1 Cam K\u1EBFt", - se: "Totalt antal commits", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEcommits", - fil: "Kabuuang Commits", - th: "Commit \u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E commit-\u043E\u0432\u0430", - "sr-latn": "Ukupno commit-ova", - no: "Totalt antall commits", - be: "\u0410\u0433\u0443\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043B\u044C\u043A\u0430\u0441\u0446\u044C \u043A\u0430\u043C\u0456\u0442\u0430\u045E" - }, - "statcard.prs": { - en: "Total PRs", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628", - az: "\xDCmumi PR", - ca: "PRs totals", - cn: "\u53D1\u8D77\u7684 PR \u603B\u6570", - "zh-tw": "\u62C9\u53D6\u8ACB\u6C42\u6578\u91CF\uFF08PR\uFF09", - cs: "Celkem PRs", - de: "PRs Insgesamt", - sw: "PRs Zote", - ur: "\u06A9\u0644 \u067E\u06CC \u0622\u0631\u0632", - bg: "\u0417\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0438\u044F", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F PR", - es: "PRs totales", - fa: "\u0645\u062C\u0645\u0648\u0639 Pull Request", - fi: "Yhteens\xE4 PR:t", - fr: "Total des PRs", - hi: "\u0915\u0941\u0932 PR", - sa: "\u0915\u0941\u0932-\u092A\u0940\u0906\u0930", - hu: "\xD6sszes PR", - it: "PR totali", - ja: "\u5408\u8A08 PR", - kr: "PR \uD69F\uC218", - nl: "Aantal PR's", - "pt-pt": "Total de PRs", - "pt-br": "Total de PRs", - np: "\u0915\u0941\u0932 PRs", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF PRs", - ro: "Total PR-uri", - ru: "\u0412\u0441\u0435\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u0437\u0430\u043F\u0438\u0442\u0456\u0432 \u043D\u0430 \u0437\u043B\u0438\u0442\u0442\u044F", - id: "Total Permintaan Tarik", - ml: "\u0D06\u0D15\u0D46 \u0D2A\u0D41\u0D7E \u0D05\u0D2D\u0D4D\u0D2F\u0D7C\u0D24\u0D4D\u0D25\u0D28\u0D15\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 PR \u1019\u103B\u102C\u1038", - ta: `\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B87\u0BB4\u0BC1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD \u0B95\u0BCB\u0BB0\u0BBF\u0B95\u0BCD\u0B95\u0BC8\u0B95\u0BB3\u0BCD`, - sk: "V\u0161etky PR", - tr: "Toplam PR", - pl: "Wszystkie PR-y", - uz: "'Pull Request'lar", - vi: "T\u1ED5ng S\u1ED1 PR", - se: "Totalt antal PR", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEPRs", - fil: "Kabuuang PRs", - th: "PR \u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E PR-\u043E\u0432\u0430", - "sr-latn": "Ukupno PR-ova", - no: "Totalt antall PR", - be: "\u0410\u0433\u0443\u043B\u0430\u043C \u0437\u0430\u043F\u044B\u0442\u0430\u045E \u043D\u0430 \u0437\u043C\u0435\u043D\u044B, PR\u0430\u045E" - }, - "statcard.issues": { - en: "Total Issues", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u062A\u062D\u0633\u064A\u0646\u0627\u062A", - az: "\xDCmumi Problem", - ca: "Issues totals", - cn: "\u63D0\u51FA\u7684 issue \u603B\u6570", - "zh-tw": "\u63D0\u51FA\u554F\u984C\u6578\u91CF\uFF08Issue\uFF09", - cs: "Celkem probl\xE9m\u016F", - de: "Anzahl Issues", - sw: "Masuala Ibuka", - ur: "\u06A9\u0644 \u0645\u0633\u0627\u0626\u0644", - bg: "\u0411\u0440\u043E\u0439 \u0432\u044A\u043F\u0440\u043E\u0441\u0438", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F Issue", - es: "Issues totales", - fa: "\u0645\u062C\u0645\u0648\u0639 \u0645\u0633\u0627\u0626\u0644", - fi: "Yhteens\xE4 ongelmat", - fr: "Nombre total d'incidents", - hi: "\u0915\u0941\u0932 \u092E\u0941\u0926\u094D\u0926\u0947(Issues)", - sa: "\u0915\u0941\u0932-\u0938\u092E\u0938\u094D\u092F\u093E\u0903", - hu: "\xD6sszes hibajegy", - it: "Segnalazioni totali", - ja: "\u5408\u8A08 issue", - kr: "\uC774\uC288 \uAC1C\uC218", - nl: "Aantal kwesties", - "pt-pt": "Total de Issues", - "pt-br": "Total de Issues", - np: "\u0915\u0941\u0932 \u092E\u0941\u0926\u094D\u0926\u093E\u0939\u0930\u0942", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u0396\u03B7\u03C4\u03B7\u03BC\u03AC\u03C4\u03C9\u03BD", - ro: "Total Issue-uri", - ru: "\u0412\u0441\u0435\u0433\u043E \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u043F\u0438\u0442\u0430\u043D\u044C", - id: "Total Masalah Dilaporkan", - ml: "\u0D06\u0D15\u0D46 \u0D2A\u0D4D\u0D30\u0D36\u0D4D\u0D28\u0D19\u0D4D\u0D19\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038\u1015\u103C\u103F\u1014\u102C\u1019\u103B\u102C\u1038", - ta: `\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BCD\u0B95\u0BB3\u0BCD`, - sk: "V\u0161etky probl\xE9my", - tr: "Toplam Hata", - pl: "Wszystkie problemy", - uz: "'Issue'lar", - vi: "T\u1ED5ng S\u1ED1 V\u1EA5n \u0110\u1EC1", - se: "Total antal issues", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEissues", - fil: "Kabuuang mga Isyu", - th: "Issue \u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E \u043F\u0440\u0438\u0458\u0430\u0432\u0459\u0435\u043D\u0438\u0445 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430", - "sr-latn": "Ukupno prijavljenih problema", - no: "Totalt antall issues", - be: "\u0423\u0441\u044F\u0433\u043E \u043F\u044B\u0442\u0430\u043D\u043D\u044F\u045E" - }, - "statcard.contribs": { - en: "Contributed to (last year)", - ar: "\u0633\u0627\u0647\u0645 \u0641\u064A (\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0645\u0627\u0636\u064A)", - az: "T\xF6hf\u0259 verdi (\xF6t\u0259n il)", - ca: "Contribucions (l'any passat)", - cn: "\u8D21\u732E\u7684\u9879\u76EE\u6570\uFF08\u53BB\u5E74\uFF09", - "zh-tw": "\u53C3\u8207\u9805\u76EE\u6578\u91CF\uFF08\u53BB\u5E74\uFF09", - cs: "P\u0159isp\u011Bl k (minul\xFD rok)", - de: "Beigetragen zu (letztes Jahr)", - sw: "Idadi ya michango (mwaka mzima)", - ur: "\u067E\u0686\u06BE\u0644\u06D2 \u0633\u0627\u0644 \u0645\u06CC\u06BA \u062A\u0639\u0627\u0648\u0646 \u06A9\u06CC\u0627", - bg: "\u041F\u0440\u0438\u043D\u043E\u0441\u0438 (\u0437\u0430 \u0438\u0437\u043C\u0438\u043D\u0430\u043B\u0430\u0442\u0430 \u0433\u043E\u0434\u0438\u043D\u0430)", - bn: "\u0985\u09AC\u09A6\u09BE\u09A8 (\u0997\u09A4 \u09AC\u099B\u09B0)", - es: "Contribuciones en (el a\xF1o pasado)", - fa: "\u0645\u0634\u0627\u0631\u06A9\u062A \u062F\u0631 (\u0633\u0627\u0644 \u06AF\u0630\u0634\u062A\u0647)", - fi: "Osallistunut (viime vuonna)", - fr: "Contribu\xE9 \xE0 (l'ann\xE9e derni\xE8re)", - hi: "(\u092A\u093F\u091B\u0932\u0947 \u0935\u0930\u094D\u0937) \u092E\u0947\u0902 \u092F\u094B\u0917\u0926\u093E\u0928 \u0926\u093F\u092F\u093E", - sa: "(\u0917\u0924\u0947 \u0935\u0930\u094D\u0937\u0947) \u092F\u094B\u0917\u0926\u093E\u0928\u092E\u094D \u0915\u0943\u0924\u092E\u094D", - hu: "Hozz\xE1j\xE1rul\xE1sok (tavaly)", - it: "Ha contribuito a (l'anno scorso)", - ja: "\u8CA2\u732E\u3057\u305F\u30EA\u30DD\u30B8\u30C8\u30EA \uFF08\u6628\u5E74\uFF09", - kr: "(\uC791\uB144) \uAE30\uC5EC", - nl: "Bijgedragen aan (vorig jaar)", - "pt-pt": "Contribuiu em (ano passado)", - "pt-br": "Contribuiu para (ano passado)", - np: "\u0915\u0941\u0932 \u092F\u094B\u0917\u0926\u093E\u0928\u0939\u0930\u0942 (\u0917\u0924 \u0935\u0930\u094D\u0937)", - el: "\u03A3\u03C5\u03BD\u03B5\u03B9\u03C3\u03C6\u03AD\u03C1\u03B8\u03B7\u03BA\u03B5 \u03C3\u03B5 (\u03C0\u03AD\u03C1\u03C5\u03C3\u03B9)", - ro: "Total Contribuiri", - ru: "\u0412\u043D\u0435\u0441\u0435\u043D\u043E \u0432\u043A\u043B\u0430\u0434\u0430 (\u0437\u0430 \u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0433\u043E\u0434)", - "uk-ua": "\u0417\u0440\u043E\u0431\u043B\u0435\u043D\u043E \u0432\u043D\u0435\u0441\u043E\u043A (\u0437\u0430 \u043C\u0438\u043D\u0443\u043B\u0438\u0439 \u0440\u0456\u043A)", - id: "Berkontribusi ke (tahun lalu)", - ml: "(\u0D15\u0D34\u0D3F\u0D1E\u0D4D\u0D1E \u0D35\u0D7C\u0D37\u0D24\u0D4D\u0D24\u0D46)\u0D06\u0D15\u0D46 \u0D38\u0D02\u0D2D\u0D3E\u0D35\u0D28\u0D15\u0D7E ", - my: "\u1021\u1000\u1030\u1021\u100A\u102E\u1015\u1031\u1038\u1001\u1032\u1037\u101E\u100A\u103A (\u1015\u103C\u102E\u1038\u1001\u1032\u1037\u101E\u100A\u1037\u103A\u1014\u103E\u1005\u103A)", - ta: "(\u0B95\u0B9F\u0BA8\u0BCD\u0BA4 \u0B86\u0BA3\u0BCD\u0B9F\u0BC1) \u0BAA\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BA4\u0BCD\u0BA4\u0BA4\u0BC1", - sk: "\xDA\u010Dasti (minul\xFD rok)", - tr: "Katk\u0131 Verildi (ge\xE7en y\u0131l)", - pl: "Kontrybucje (w zesz\u0142ym roku)", - uz: "Hissa qo\u02BBshgan (o'tgan yili)", - vi: "\u0110\xE3 \u0110\xF3ng G\xF3p (n\u0103m ngo\xE1i)", - se: "Bidragit till (f\xF6rra \xE5ret)", - he: "\u05EA\u05E8\u05DD \u05DC... (\u05E9\u05E0\u05D4 \u05E9\u05E2\u05D1\u05E8\u05D4)", - fil: "Nag-ambag sa (nakaraang taon)", - th: "\u0E21\u0E35\u0E2A\u0E48\u0E27\u0E19\u0E23\u0E48\u0E27\u0E21\u0E43\u0E19 (\u0E1B\u0E35\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27)", - sr: "\u0414\u043E\u043F\u0440\u0438\u043D\u043E\u0441\u0438 (\u043F\u0440\u043E\u0448\u043B\u0430 \u0433\u043E\u0434\u0438\u043D\u0430)", - "sr-latn": "Doprinosi (pro\u0161la godina)", - no: "Bidro til (i fjor)", - be: "\u0423\u043A\u043B\u0430\u0434 (\u0437\u0430 \u043C\u0456\u043D\u0443\u043B\u044B \u0433\u043E\u0434)" - }, - "statcard.all-time-contribs": { - en: "Contributed to (all time)" - }, - "statcard.reviews": { - en: "Total PRs Reviewed", - ar: "\u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628 \u0627\u0644\u062A\u064A \u062A\u0645 \u0645\u0631\u0627\u062C\u0639\u062A\u0647\u0627", - az: "N\u0259z\u0259rd\u0259n Ke\xE7iril\u0259n \xDCmumi PR", - ca: "Total de PRs revisats", - cn: "\u5BA1\u67E5\u7684 PR \u603B\u6570", - "zh-tw": "\u5BE9\u6838\u7684 PR \u7E3D\u8A08", - cs: "Celkov\xFD po\u010Det PR", - de: "Insgesamt \xFCberpr\xFCfte PRs", - sw: "Idadi ya PRs zilizopitiliwa upya", - ur: "\u06A9\u0644 \u067E\u06CC \u0622\u0631\u0632 \u06A9\u0627 \u062C\u0627\u0626\u0632\u06C1 \u0644\u06CC\u0627", - bg: "\u0420\u0430\u0437\u0433\u043B\u0435\u0434\u0430\u043D\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0435", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F \u09AA\u09C1\u09A8\u09B0\u09BE\u09B2\u09CB\u099A\u09A8\u09BE \u0995\u09B0\u09BE PR", - es: "PR totales revisados", - fa: "\u0645\u062C\u0645\u0648\u0639 \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u200C\u0647\u0627\u06CC \u0627\u062F\u063A\u0627\u0645 \u0628\u0631\u0631\u0633\u06CC\u200C\u0634\u062F\u0647", - fi: "Yhteens\xE4 tarkastettuja PR:it\xE4", - fr: "Nombre total de PR examin\xE9s", - hi: "\u0915\u0941\u0932 PRs \u0915\u0940 \u0938\u092E\u0940\u0915\u094D\u0937\u093E \u0915\u0940 \u0917\u0908", - sa: "\u0938\u092E\u0940\u0915\u094D\u0937\u093F\u0924\u093E\u0903 \u0915\u0941\u0932-\u092A\u0940\u0906\u0930", - hu: "\xD6sszes ellen\u0151rz\xF6tt PR", - it: "PR totali esaminati", - ja: "\u30EC\u30D3\u30E5\u30FC\u3055\u308C\u305F PR \u306E\u7DCF\u6570", - kr: "\uAC80\uD1A0\uB41C \uCD1D PR", - nl: "Totaal beoordeelde PR's", - "pt-pt": "Total de PRs revistos", - "pt-br": "Total de PRs revisados", - np: "\u0915\u0941\u0932 \u092A\u0940\u0906\u0930 \u0938\u092E\u0940\u0915\u094D\u0937\u093F\u0924", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u0391\u03BD\u03B1\u03B8\u03B5\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03C9\u03BD PR", - ro: "Total PR-uri Revizuite", - ru: "\u0412\u0441\u0435\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u0437\u0430\u043F\u0438\u0442\u0456\u0432 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0435\u043D\u043E", - id: "Total PR yang Direview", - ml: "\u0D06\u0D15\u0D46 \u0D2A\u0D41\u0D7E \u0D05\u0D35\u0D32\u0D4B\u0D15\u0D28\u0D19\u0D4D\u0D19\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 PR \u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1015\u103C\u1014\u103A\u101C\u100A\u103A\u101E\u102F\u1036\u1038\u101E\u1015\u103A\u1001\u1032\u1037\u1019\u103E\u102F", - ta: "\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BBE\u0BAF\u0BCD\u0BB5\u0BC1 \u0B9A\u0BC6\u0BAF\u0BCD\u0BAF\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B87\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BB2\u0BCD \u0B95\u0BCB\u0BB0\u0BBF\u0B95\u0BCD\u0B95\u0BC8\u0B95\u0BB3\u0BCD", - sk: "Celkov\xFD po\u010Det PR", - tr: "\u0130ncelenen toplam PR", - pl: "\u0141\u0105cznie sprawdzonych PR", - uz: "Ko\u02BBrib chiqilgan PR-lar soni", - vi: "T\u1ED5ng S\u1ED1 PR \u0110\xE3 Xem X\xE9t", - se: "Totalt antal granskade PR", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEPRs \u05E9\u05E0\u05E1\u05E8\u05E7\u05D5", - fil: "Kabuuang PR na Na-review", - th: "\u0E23\u0E35\u0E27\u0E34\u0E27 PR \u0E41\u0E25\u0E49\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E \u043F\u0440\u0435\u0433\u043B\u0435\u0434\u0430\u043D\u0438\u0445 PR-\u043E\u0432\u0430", - "sr-latn": "Ukupno pregledanih PR-ova", - no: "Totalt antall vurderte PR", - be: "\u0410\u0433\u0443\u043B\u0430\u043C \u0440\u0430\u0437\u0433\u043B\u0435\u0434\u0436\u0430\u043D\u0430 PR" - }, - "statcard.discussions-started": { - en: "Total Discussions Started", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0645\u0646\u0627\u0642\u0634\u0627\u062A \u0627\u0644\u062A\u064A \u0628\u062F\u0623\u0647\u0627", - az: "Ba\u015Flad\u0131lan \xDCmumi M\xFCzakir\u0259", - ca: "Discussions totals iniciades", - cn: "\u53D1\u8D77\u7684\u8BA8\u8BBA\u603B\u6570", - "zh-tw": "\u767C\u8D77\u7684\u8A0E\u8AD6\u7E3D\u6578", - cs: "Celkem zah\xE1jen\xFDch diskus\xED", - de: "Gesamt gestartete Diskussionen", - sw: "Idadi ya majadiliano yaliyoanzishwa", - ur: "\u06A9\u0644 \u0645\u0628\u0627\u062D\u062B\u06D2 \u0634\u0631\u0648\u0639 \u06A9\u06CC\u06D2", - bg: "\u0417\u0430\u043F\u043E\u0447\u043D\u0430\u0442\u0438 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0438", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F \u0986\u09B2\u09CB\u099A\u09A8\u09BE \u09B6\u09C1\u09B0\u09C1", - es: "Discusiones totales iniciadas", - fa: "\u0645\u062C\u0645\u0648\u0639 \u0628\u062D\u062B\u200C\u0647\u0627\u06CC \u0622\u063A\u0627\u0632\u0634\u062F\u0647", - fi: "Aloitetut keskustelut yhteens\xE4", - fr: "Nombre total de discussions lanc\xE9es", - hi: "\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E\u090F\u0901 \u0936\u0941\u0930\u0942 \u0939\u0941\u0908\u0902", - sa: "\u092A\u094D\u0930\u093E\u0930\u092C\u094D\u0927\u093E\u0903 \u0915\u0941\u0932-\u091A\u0930\u094D\u091A\u093E\u0903", - hu: "\xD6sszes megkezdett megbesz\xE9l\xE9s", - it: "Discussioni totali avviate", - ja: "\u958B\u59CB\u3055\u308C\u305F\u30C7\u30A3\u30B9\u30AB\u30C3\u30B7\u30E7\u30F3\u306E\u7DCF\u6570", - kr: "\uC2DC\uC791\uB41C \uD1A0\uB860 \uCD1D \uC218", - nl: "Totaal gestarte discussies", - "pt-pt": "Total de Discuss\xF5es Iniciadas", - "pt-br": "Total de Discuss\xF5es Iniciadas", - np: "\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E \u0938\u0941\u0930\u0941", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u03A3\u03C5\u03B6\u03B7\u03C4\u03AE\u03C3\u03B5\u03C9\u03BD \u03C0\u03BF\u03C5 \u039E\u03B5\u03BA\u03AF\u03BD\u03B7\u03C3\u03B1\u03BD", - ro: "Total Discu\u021Bii \xCEncepute", - ru: "\u0412\u0441\u0435\u0433\u043E \u043D\u0430\u0447\u0430\u0442\u044B\u0445 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u0440\u043E\u0437\u043F\u043E\u0447\u0430\u0442\u0438\u0445 \u0434\u0438\u0441\u043A\u0443\u0441\u0456\u0439", - id: "Total Diskusi Dimulai", - ml: "\u0D06\u0D30\u0D02\u0D2D\u0D3F\u0D1A\u0D4D\u0D1A \u0D06\u0D32\u0D4B\u0D1A\u0D28\u0D15\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 \u1005\u1010\u1004\u103A\u1001\u1032\u1037\u101E\u1031\u102C \u1006\u103D\u1031\u1038\u1014\u103D\u1031\u1038\u1019\u103E\u102F\u1019\u103B\u102C\u1038", - ta: "\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0BB5\u0BBF\u0BB5\u0BBE\u0BA4\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95\u0BBF\u0BA9", - sk: "Celkov\xFD po\u010Det za\u010Dat\xFDch diskusi\xED", - tr: "Ba\u015Flat\u0131lan Toplam Tart\u0131\u015Fma", - pl: "\u0141\u0105cznie rozpocz\u0119tych dyskusji", - uz: "Boshlangan muzokaralar soni", - vi: "T\u1ED5ng S\u1ED1 Th\u1EA3o Lu\u1EADn B\u1EAFt \u0110\u1EA7u", - se: "Totalt antal diskussioner startade", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05D3\u05D9\u05D5\u05E0\u05D9\u05DD \u05E9\u05D4\u05D5\u05EA\u05D7\u05DC\u05D5", - fil: "Kabuuang mga Diskusyon na Sinimulan", - th: "\u0E40\u0E23\u0E34\u0E48\u0E21\u0E2B\u0E31\u0E27\u0E02\u0E49\u0E2D\u0E2A\u0E19\u0E17\u0E19\u0E32\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E \u043F\u043E\u043A\u0440\u0435\u043D\u0443\u0442\u0438\u0445 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0458\u0430", - "sr-latn": "Ukupno pokrenutih diskusija", - no: "Totalt antall startede diskusjoner", - be: "\u0410\u0433\u0443\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043B\u044C\u043A\u0430\u0441\u0446\u044C \u043F\u0430\u0447\u0430\u0442\u044B\u0445 \u0430\u0431\u043C\u0435\u0440\u043A\u0430\u0432\u0430\u043D\u043D\u044F\u045E" - }, - "statcard.discussions-answered": { - en: "Total Discussions Answered", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0645\u0646\u0627\u0642\u0634\u0627\u062A \u0627\u0644\u0645\u064F\u062C\u0627\u0628\u0629", - az: "Cavabland\u0131r\u0131lan \xDCmumi M\xFCzakir\u0259", - ca: "Discussions totals respostes", - cn: "\u56DE\u590D\u7684\u8BA8\u8BBA\u603B\u6570", - "zh-tw": "\u56DE\u8986\u8A0E\u8AD6\u7E3D\u8A08", - cs: "Celkem zodpov\u011Bzen\xFDch diskus\xED", - de: "Gesamt beantwortete Diskussionen", - sw: "Idadi ya majadiliano yaliyojibiwa", - ur: "\u06A9\u0644 \u0645\u0628\u0627\u062D\u062B\u06D2 \u062C\u0648\u0627\u0628 \u062F\u06CC\u06D2", - bg: "\u041E\u0442\u0433\u043E\u0432\u043E\u0440\u0435\u043D\u0438 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0438", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F \u0986\u09B2\u09CB\u099A\u09A8\u09BE \u0989\u09A4\u09CD\u09A4\u09B0", - es: "Discusiones totales respondidas", - fa: "\u0645\u062C\u0645\u0648\u0639 \u0628\u062D\u062B\u200C\u0647\u0627\u06CC \u067E\u0627\u0633\u062E\u200C\u062F\u0627\u062F\u0647\u200C\u0634\u062F\u0647", - fi: "Vastatut keskustelut yhteens\xE4", - fr: "Nombre total de discussions r\xE9pondues", - hi: "\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E\u0913\u0902 \u0915\u0947 \u0909\u0924\u094D\u0924\u0930", - sa: "\u0909\u0924\u094D\u0924\u0930\u093F\u0924\u093E\u0903 \u0915\u0941\u0932-\u091A\u0930\u094D\u091A\u093E\u0903", - hu: "\xD6sszes megv\xE1laszolt megbesz\xE9l\xE9s", - it: "Discussioni totali risposte", - ja: "\u56DE\u7B54\u3055\u308C\u305F\u30C7\u30A3\u30B9\u30AB\u30C3\u30B7\u30E7\u30F3\u306E\u7DCF\u6570", - kr: "\uB2F5\uBCC0\uB41C \uD1A0\uB860 \uCD1D \uC218", - nl: "Totaal beantwoorde discussies", - "pt-pt": "Total de Discuss\xF5es Respondidas", - "pt-br": "Total de Discuss\xF5es Respondidas", - np: "\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E \u0909\u0924\u094D\u0924\u0930", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u03A3\u03C5\u03B6\u03B7\u03C4\u03AE\u03C3\u03B5\u03C9\u03BD \u03C0\u03BF\u03C5 \u0391\u03C0\u03B1\u03BD\u03C4\u03AE\u03B8\u03B7\u03BA\u03B1\u03BD", - ro: "Total R\u0103spunsuri La Discu\u021Bii", - ru: "\u0412\u0441\u0435\u0433\u043E \u043E\u0442\u0432\u0435\u0447\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0435\u0439 \u043D\u0430 \u0434\u0438\u0441\u043A\u0443\u0441\u0456\u0457", - id: "Total Diskusi Dibalas", - ml: "\u0D09\u0D24\u0D4D\u0D24\u0D30\u0D02 \u0D28\u0D7D\u0D15\u0D3F\u0D2F \u0D06\u0D32\u0D4B\u0D1A\u0D28\u0D15\u0D7E", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 \u1015\u103C\u1014\u103A\u101C\u100A\u103A\u1016\u103C\u1031\u1000\u103C\u102C\u1038\u1001\u1032\u1037\u101E\u1031\u102C \u1006\u103D\u1031\u1038\u1014\u103D\u1031\u1038\u1019\u103E\u102F\u1019\u103B\u102C\u1038", - ta: "\u0BAA\u0BA4\u0BBF\u0BB2\u0BB3\u0BBF\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0BB5\u0BBF\u0BB5\u0BBE\u0BA4\u0B99\u0BCD\u0B95\u0BB3\u0BCD", - sk: "Celkov\xFD po\u010Det zodpovedan\xFDch diskusi\xED", - tr: "Toplam Cevaplanan Tart\u0131\u015Fma", - pl: "\u0141\u0105cznie odpowiedzianych dyskusji", - uz: "Javob berilgan muzokaralar soni", - vi: "T\u1ED5ng S\u1ED1 Th\u1EA3o Lu\u1EADn \u0110\xE3 Tr\u1EA3 L\u1EDDi", - se: "Totalt antal diskussioner besvarade", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05D3\u05D9\u05D5\u05E0\u05D9\u05DD \u05E9\u05E0\u05E2\u05E0\u05D5", - fil: "Kabuuang mga Diskusyon na Sinagot", - th: "\u0E15\u0E2D\u0E1A\u0E01\u0E25\u0E31\u0E1A\u0E2B\u0E31\u0E27\u0E02\u0E49\u0E2D\u0E2A\u0E19\u0E17\u0E19\u0E32\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E \u043E\u0434\u0433\u043E\u0432\u043E\u0440\u0435\u043D\u0438\u0445 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0458\u0430", - "sr-latn": "Ukupno odgovorenih diskusija", - no: "Totalt antall besvarte diskusjoner", - be: "\u0423\u0441\u044F\u0433\u043E \u0430\u0434\u043A\u0430\u0437\u0430\u045E \u0443 \u0430\u0431\u043C\u0435\u0440\u043A\u0430\u0432\u0430\u043D\u043D\u044F\u0445" - }, - "statcard.prs-authored": { - en: "PRs Created", - "zh-tw": "\u5EFA\u7ACB\u7684\u62C9\u53D6\u8ACB\u6C42" - }, - "statcard.prs-commented": { - en: "PRs Commented", - "zh-tw": "\u53C3\u8207\u8A0E\u8AD6\u7684\u62C9\u53D6\u8ACB\u6C42" - }, - "statcard.prs-reviewed": { - en: "PRs Reviewed", - "zh-tw": "\u5BE9\u6838\u7684\u62C9\u53D6\u8ACB\u6C42" - }, - "statcard.issues-authored": { - en: "Issues Created", - "zh-tw": "\u5EFA\u7ACB\u7684\u8B70\u984C" - }, - "statcard.issues-commented": { - en: "Issues Commented", - "zh-tw": "\u53C3\u8207\u8A0E\u8AD6\u7684\u8B70\u984C" - }, - "statcard.contributions": { - en: "Total Contributions", - "zh-tw": "\u7E3D\u8CA2\u737B\u6578\u91CF" - }, - "statcard.prs-merged": { - en: "Total PRs Merged", - ar: "\u0645\u062C\u0645\u0648\u0639 \u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628 \u0627\u0644\u0645\u064F\u062F\u0645\u062C\u0629", - az: "Birl\u0259\u015Fdirilmi\u015F \xDCmumi PR", - ca: "PRs totals fusionats", - cn: "\u5408\u5E76\u7684 PR \u603B\u6570", - "zh-tw": "\u5408\u4F75\u7684 PR \u7E3D\u8A08", - cs: "Celkem slou\u010Den\xFDch PR", - de: "Insgesamt zusammengef\xFChrte PRs", - sw: "Idadi ya PRs zilizounganishwa", - ur: "\u06A9\u0644 \u067E\u06CC \u0622\u0631\u0632 \u0636\u0645 \u06A9\u06CC\u06D2", - bg: "\u0421\u043B\u044F\u0442\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0438\u044F", - bn: "\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F PR \u098F\u0995\u09A4\u09CD\u09B0\u09C0\u0995\u09C3\u09A4", - es: "PR totales fusionados", - fa: "\u0645\u062C\u0645\u0648\u0639 \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u200C\u0647\u0627\u06CC \u0627\u062F\u063A\u0627\u0645 \u0634\u062F\u0647", - fi: "Yhteens\xE4 yhdistetyt PR:t", - fr: "Nombre total de PR fusionn\xE9s", - hi: "\u0915\u0941\u0932 PR \u0915\u093E \u0935\u093F\u0932\u092F", - sa: "\u0935\u093F\u0932\u0940\u0928\u093E\u0903 \u0915\u0941\u0932-\u092A\u0940\u0906\u0930", - hu: "\xD6sszes egyes\xEDtett PR", - it: "PR totali uniti", - ja: "\u30DE\u30FC\u30B8\u3055\u308C\u305F PR \u306E\u7DCF\u6570", - kr: "\uBCD1\uD569\uB41C \uCD1D PR", - nl: "Totaal samengevoegde PR's", - "pt-pt": "Total de PRs Fundidos", - "pt-br": "Total de PRs Integrados", - np: "\u0915\u0941\u0932 \u0935\u093F\u0932\u092F\u093F\u0924 PRs", - el: "\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u03A3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03C5\u03BC\u03AD\u03BD\u03C9\u03BD PR", - ro: "Total PR-uri Fuzionate", - ru: "\u0412\u0441\u0435\u0433\u043E \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432", - "uk-ua": "\u0412\u0441\u044C\u043E\u0433\u043E \u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432", - id: "Total PR Digabungkan", - my: "\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 \u1015\u1031\u102B\u1004\u103A\u1038\u1005\u100A\u103A\u1038\u1001\u1032\u1037\u101E\u1031\u102C PR \u1019\u103B\u102C\u1038", - ta: "\u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 PR\u0B95\u0BB3\u0BCD", - sk: "Celkov\xFD po\u010Det zl\xFA\u010Den\xFDch PR", - tr: "Toplam Birle\u015Ftirilmi\u015F PR", - pl: "\u0141\u0105cznie po\u0142\u0105czonych PR", - uz: "Birlangan PR-lar soni", - vi: "T\u1ED5ng S\u1ED1 PR \u0110\xE3 H\u1EE3p Nh\u1EA5t", - se: "Totalt antal sammanfogade PR", - he: "\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEPRs \u05E9\u05E9\u05D5\u05DC\u05D1\u05D5", - fil: "Kabuuang mga PR na Pinagsama", - th: "PR \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01 Merged \u0E41\u0E25\u0E49\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u0423\u043A\u0443\u043F\u043D\u043E \u0441\u043F\u043E\u0458\u0435\u043D\u0438\u0445 PR-\u043E\u0432\u0430", - "sr-latn": "Ukupno spojenih PR-ova", - no: "Totalt antall sammensl\xE5tte PR", - be: "\u0423\u0441\u044F\u0433\u043E PR \u043F\u0440\u044B\u043D\u044F\u0442\u0430" - }, - "statcard.prs-merged-percentage": { - en: "Merged PRs Percentage", - ar: "\u0646\u0633\u0628\u0629 \u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628 \u0627\u0644\u0645\u064F\u062F\u0645\u062C\u0629", - az: "Birl\u0259\u015Fdirilmi\u015F PR-lar\u0131n Faizi", - ca: "Percentatge de PRs fusionats", - cn: "\u88AB\u5408\u5E76\u7684 PR \u5360\u6BD4", - "zh-tw": "\u5408\u4F75\u7684 PR \u767E\u5206\u6BD4", - cs: "Slou\u010Den\xE9 PRs v procentech", - de: "Zusammengef\xFChrte PRs in Prozent", - sw: "Asilimia ya PRs zilizounganishwa", - ur: "\u0636\u0645 \u06A9\u06CC\u06D2 \u06AF\u0626\u06D2 \u067E\u06CC \u0622\u0631\u0632 \u06A9\u06CC \u0634\u0631\u062D", - bg: "\u041F\u0440\u043E\u0446\u0435\u043D\u0442 \u0441\u043B\u044F\u0442\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0438\u044F", - bn: "PR \u098F\u0995\u09A4\u09CD\u09B0\u09C0\u0995\u09B0\u09A3\u09C7\u09B0 \u09B6\u09A4\u09BE\u0982\u09B6", - es: "Porcentaje de PR fusionados", - fa: "\u062F\u0631\u0635\u062F \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u200C\u0647\u0627\u06CC \u0627\u062F\u063A\u0627\u0645\u200C\u0634\u062F\u0647", - fi: "Yhdistettyjen PR:ien prosentti", - fr: "Pourcentage de PR fusionn\xE9s", - hi: "\u092E\u0930\u094D\u091C \u0915\u093F\u090F \u0917\u090F PRs \u092A\u094D\u0930\u0924\u093F\u0936\u0924", - sa: "\u0935\u093F\u0932\u0940\u0928-\u092A\u0940\u0906\u0930 \u092A\u094D\u0930\u0924\u093F\u0936\u0924\u092E\u094D", - hu: "Egyes\xEDtett PR-k sz\xE1zal\xE9ka", - it: "Percentuale di PR uniti", - ja: "\u30DE\u30FC\u30B8\u3055\u308C\u305F PR \u306E\u5272\u5408", - kr: "\uBCD1\uD569\uB41C PR\uC758 \uBE44\uC728", - nl: "Percentage samengevoegde PR's", - "pt-pt": "Percentagem de PRs Fundidos", - "pt-br": "Porcentagem de PRs Integrados", - np: "PR \u092E\u0930\u094D\u091C \u0917\u0930\u093F\u090F\u0915\u094B \u092A\u094D\u0930\u0924\u093F\u0936\u0924", - el: "\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03A3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03C5\u03BC\u03AD\u03BD\u03C9\u03BD PR", - ro: "Procentaj PR-uri Fuzionate", - ru: "\u041F\u0440\u043E\u0446\u0435\u043D\u0442 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432", - "uk-ua": "\u0412\u0456\u0434\u0441\u043E\u0442\u043E\u043A \u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432", - id: "Persentase PR Digabungkan", - my: "PR \u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1015\u1031\u102B\u1004\u103A\u1038\u1005\u100A\u103A\u1038\u1001\u1032\u1037\u101E\u1031\u102C \u101B\u102C\u1001\u102D\u102F\u1004\u103A\u1014\u103E\u102F\u1014\u103A\u1038", - ta: "\u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F PR\u0B95\u0BB3\u0BCD \u0B9A\u0BA4\u0BB5\u0BC0\u0BA4\u0BAE\u0BCD", - sk: "Percento zl\xFA\u010Den\xFDch PR", - tr: "Birle\u015Ftirilmi\u015F PR Y\xFCzdesi", - pl: "Procent po\u0142\u0105czonych PR", - uz: "Birlangan PR-lar foizi", - vi: "T\u1EF7 L\u1EC7 PR \u0110\xE3 H\u1EE3p Nh\u1EA5t", - se: "Procent av sammanfogade PR", - he: "\u05D0\u05D7\u05D5\u05D6 \u05D4\u05BEPRs \u05E9\u05E9\u05D5\u05DC\u05D1\u05D5", - fil: "Porsyento ng mga PR na Pinagsama", - th: "\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C PR \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01 Merged \u0E41\u0E25\u0E49\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", - sr: "\u041F\u0440\u043E\u0446\u0435\u043D\u0430\u0442 \u0441\u043F\u043E\u0458\u0435\u043D\u0438\u0445 PR-\u043E\u0432\u0430", - "sr-latn": "Procenat spojenih PR-ova", - no: "Prosentandel sammensl\xE5tte PR", - be: "\u0410\u0434\u0441\u043E\u0442\u0430\u043A \u0430\u0431'\u044F\u0434\u043D\u0430\u043D\u044B\u0445 PR" - } - }; -}; -var repoCardLocales = { - "repocard.template": { - en: "Template", - ar: "\u0642\u0627\u0644\u0628", - az: "\u015Eablon", - bg: "\u0428\u0430\u0431\u043B\u043E\u043D", - bn: "\u099F\u09C7\u09AE\u09AA\u09CD\u09B2\u09C7\u099F", - ca: "Plantilla", - cn: "\u6A21\u677F", - "zh-tw": "\u6A21\u677F", - cs: "\u0160ablona", - de: "Vorlage", - sw: "Kigezo", - ur: "\u0633\u0627\u0646\u0686\u06C1", - es: "Plantilla", - fa: "\u0627\u0644\u06AF\u0648", - fi: "Malli", - fr: "Mod\xE8le", - hi: "\u0916\u093E\u0915\u093E", - sa: "\u092A\u094D\u0930\u093E\u0930\u0942\u092A\u092E\u094D", - hu: "Sablon", - it: "Template", - ja: "\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8", - kr: "\uD15C\uD50C\uB9BF", - nl: "Sjabloon", - "pt-pt": "Modelo", - "pt-br": "Modelo", - np: "\u091F\u0947\u092E\u094D\u092A\u0932\u0947\u091F", - el: "\u03A0\u03C1\u03CC\u03C4\u03C5\u03C0\u03BF", - ro: "\u0218ablon", - ru: "\u0428\u0430\u0431\u043B\u043E\u043D", - "uk-ua": "\u0428\u0430\u0431\u043B\u043E\u043D", - id: "Pola", - ml: "\u0D1F\u0D46\u0D02\u0D2A\u0D4D\u0D32\u0D47\u0D31\u0D4D\u0D31\u0D4D", - my: "\u1015\u102F\u1036\u1005\u1036", - ta: `\u0B9F\u0BC6\u0BAE\u0BCD\u0BAA\u0BCD\u0BB3\u0BC7\u0B9F\u0BCD`, - sk: "\u0160abl\xF3na", - tr: "\u015Eablon", - pl: "Szablony", - uz: "Shablon", - vi: "M\u1EABu", - se: "Mall", - he: "\u05EA\u05D1\u05E0\u05D9\u05EA", - fil: "Suleras", - th: "\u0E40\u0E17\u0E21\u0E40\u0E1E\u0E25\u0E15", - sr: "\u0428\u0430\u0431\u043B\u043E\u043D", - "sr-latn": "\u0160ablon", - no: "Mal", - be: "\u0428\u0430\u0431\u043B\u043E\u043D" - }, - "repocard.archived": { - en: "Archived", - ar: "\u0645\u064F\u0624\u0631\u0634\u0641", - az: "Arxiv", - bg: "\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u0438", - bn: "\u0986\u09B0\u09CD\u0995\u09BE\u0987\u09AD\u09A1", - ca: "Arxivats", - cn: "\u5DF2\u5F52\u6863", - "zh-tw": "\u5DF2\u5C01\u5B58", - cs: "Archivov\xE1no", - de: "Archiviert", - sw: "Hifadhiwa kwenye kumbukumbu", - ur: "\u0645\u062D\u0641\u0648\u0638 \u0634\u062F\u06C1", - es: "Archivados", - fa: "\u0628\u0627\u06CC\u06AF\u0627\u0646\u06CC\u200C\u0634\u062F\u0647", - fi: "Arkistoitu", - fr: "Archiv\xE9", - hi: "\u0938\u0902\u0917\u094D\u0930\u0939\u0940\u0924", - sa: "\u0938\u0902\u0917\u0943\u0939\u0940\u0924\u092E\u094D", - hu: "Archiv\xE1lt", - it: "Archiviata", - ja: "\u30A2\u30FC\u30AB\u30A4\u30D6\u6E08\u307F", - kr: "\uBCF4\uAD00\uB428", - nl: "Gearchiveerd", - "pt-pt": "Arquivados", - "pt-br": "Arquivados", - np: "\u0905\u092D\u093F\u0932\u0947\u0916 \u0930\u093E\u0916\u093F\u092F\u094B", - el: "\u0391\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03B7\u03BC\u03AD\u03BD\u03B1", - ro: "Arhivat", - ru: "\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D", - "uk-ua": "\u0410\u0440\u0445\u0438\u0432\u043E\u0432\u0430\u043D\u0438\u0439", - id: "Arsip", - ml: "\u0D36\u0D47\u0D16\u0D30\u0D3F\u0D1A\u0D4D\u0D1A\u0D24\u0D4D", - my: "\u101E\u102D\u102F\u101C\u103E\u1031\u102C\u1004\u103A\u1015\u103C\u102E\u1038", - ta: `\u0B95\u0BBE\u0BAA\u0BCD\u0BAA\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1`, - sk: "Archivovan\xE9", - tr: "Ar\u015Fiv", - pl: "Zarchiwizowano", - uz: "Arxivlangan", - vi: "\u0110\xE3 L\u01B0u Tr\u1EEF", - se: "Arkiverade", - he: "\u05D2\u05E0\u05D5\u05D6", - fil: "Naka-arkibo", - th: "\u0E40\u0E01\u0E47\u0E1A\u0E16\u0E32\u0E27\u0E23", - sr: "\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u043E", - "sr-latn": "Arhivirano", - no: "Arkivert", - be: "\u0410\u0440\u0445\u0456\u0432\u0430\u0432\u0430\u043D\u044B" - }, - "repocard.prs-authored": { - en: "my created PRs", - "zh-tw": "\u6211\u6240\u5275\u5EFA\u7684\u62C9\u53D6\u8ACB\u6C42" - }, - "repocard.prs-commented": { - en: "my commented PRs", - "zh-tw": "\u6211\u6240\u53C3\u8207\u7684\u62C9\u53D6\u8ACB\u6C42" - }, - "repocard.prs-reviewed": { - en: "my reviewed PRs", - "zh-tw": "\u6211\u6240\u5BE9\u6838\u7684\u62C9\u53D6\u8ACB\u6C42" - }, - "repocard.issues-authored": { - en: "my created issues", - "zh-tw": "\u6211\u6240\u5275\u5EFA\u7684\u8B70\u984C" - }, - "repocard.issues-commented": { - en: "my commented issues", - "zh-tw": "\u6211\u6240\u53C3\u8207\u7684\u8B70\u984C" - } -}; -var langCardLocales = { - "langcard.title": { - en: "Most Used Languages", - ar: "\u0623\u0643\u062B\u0631 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0633\u062A\u062E\u062F\u0627\u0645\u064B\u0627", - az: "\u018Fn \xC7ox \u0130stifad\u0259 Olunan Dill\u0259r", - ca: "Llenguatges m\xE9s utilitzats", - cn: "\u6700\u5E38\u7528\u7684\u8BED\u8A00", - "zh-tw": "\u6700\u5E38\u7528\u7684\u8A9E\u8A00", - cs: "Nejpou\u017E\xEDvan\u011Bj\u0161\xED jazyky", - de: "Meist verwendete Sprachen", - bg: "\u041D\u0430\u0439-\u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0435\u0437\u0438\u0446\u0438", - bn: "\u09B8\u09B0\u09CD\u09AC\u09BE\u09A7\u09BF\u0995 \u09AC\u09CD\u09AF\u09AC\u09B9\u09C3\u09A4 \u09AD\u09BE\u09B7\u09BE \u09B8\u09AE\u09C2\u09B9", - sw: "Lugha zilizotumika zaidi", - ur: "\u0633\u0628 \u0633\u06D2 \u0632\u06CC\u0627\u062F\u06C1 \u0627\u0633\u062A\u0639\u0645\u0627\u0644 \u0634\u062F\u06C1 \u0632\u0628\u0627\u0646\u06CC\u06BA", - es: "Lenguajes m\xE1s usados", - fa: "\u0632\u0628\u0627\u0646\u200C\u0647\u0627\u06CC \u067E\u0631\u06A9\u0627\u0631\u0628\u0631\u062F", - fi: "K\xE4ytetyimm\xE4t kielet", - fr: "Langages les plus utilis\xE9s", - hi: "\u0938\u0930\u094D\u0935\u093E\u0927\u093F\u0915 \u092A\u094D\u0930\u092F\u0941\u0915\u094D\u0924 \u092D\u093E\u0937\u093E", - sa: "\u0938\u0930\u094D\u0935\u093E\u0927\u093F\u0915-\u092A\u094D\u0930\u092F\u0941\u0915\u094D\u0924\u093E\u0903 \u092D\u093E\u0937\u093E\u0903", - hu: "Leggyakrabban haszn\xE1lt nyelvek", - it: "Linguaggi pi\xF9 utilizzati", - ja: "\u6700\u3082\u3088\u304F\u4F7F\u3063\u3066\u3044\u308B\u8A00\u8A9E", - kr: "\uAC00\uC7A5 \uB9CE\uC774 \uC0AC\uC6A9\uB41C \uC5B8\uC5B4", - nl: "Meest gebruikte talen", - "pt-pt": "Linguagens mais usadas", - "pt-br": "Linguagens mais usadas", - np: "\u0905\u0927\u093F\u0915 \u092A\u094D\u0930\u092F\u094B\u0917 \u0917\u0930\u093F\u090F\u0915\u094B \u092D\u093E\u0937\u093E\u0939\u0930\u0942", - el: "\u039F\u03B9 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03BF \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03BF\u03CD\u03BC\u03B5\u03BD\u03B5\u03C2 \u03B3\u03BB\u03CE\u03C3\u03C3\u03B5\u03C2", - ro: "Cele Mai Folosite Limbaje", - ru: "\u041D\u0430\u0438\u0431\u043E\u043B\u0435\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435 \u044F\u0437\u044B\u043A\u0438", - "uk-ua": "\u041D\u0430\u0439\u0431\u0456\u043B\u044C\u0448 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u043D\u0456 \u043C\u043E\u0432\u0438", - id: "Bahasa Yang Paling Banyak Digunakan", - ml: "\u0D15\u0D42\u0D1F\u0D41\u0D24\u0D7D \u0D09\u0D2A\u0D2F\u0D4B\u0D17\u0D3F\u0D1A\u0D4D\u0D1A \u0D2D\u0D3E\u0D37\u0D15\u0D7E", - my: "\u1021\u1019\u103B\u102C\u1038\u1006\u102F\u1036\u1038\u1021\u101E\u102F\u1036\u1038\u1015\u103C\u102F\u101E\u1031\u102C\u1018\u102C\u101E\u102C\u1005\u1000\u102C\u1038\u1019\u103B\u102C\u1038", - ta: `\u0B85\u0BA4\u0BBF\u0B95\u0BAE\u0BCD \u0BAA\u0BAF\u0BA9\u0BCD\u0BAA\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BAA\u0BCD\u0BAA\u0B9F\u0BC1\u0BAE\u0BCD \u0BAE\u0BCA\u0BB4\u0BBF\u0B95\u0BB3\u0BCD`, - sk: "Najviac pou\u017E\xEDvan\xE9 jazyky", - tr: "En \xC7ok Kullan\u0131lan Diller", - pl: "Najcz\u0119\u015Bciej u\u017Cywane j\u0119zyki", - uz: "Eng ko\u02BBp ishlatiladigan tillar", - vi: "Ng\xF4n Ng\u1EEF Th\u01B0\u1EDDng S\u1EED D\u1EE5ng", - se: "Mest anv\xE4nda spr\xE5ken", - he: "\u05D4\u05E9\u05E4\u05D5\u05EA \u05D4\u05DB\u05D9 \u05DE\u05E9\u05D5\u05DE\u05E9\u05D5\u05EA", - fil: "Mga Pinakamadalas na Ginagamit na Wika", - th: "\u0E20\u0E32\u0E29\u0E32\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E1A\u0E48\u0E2D\u0E22\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14", - sr: "\u041D\u0430\u0458\u043A\u043E\u0440\u0438\u0448\u045B\u0435\u043D\u0438\u0458\u0438 \u0458\u0435\u0437\u0438\u0446\u0438", - "sr-latn": "Najkori\u0161\u0107eniji jezici", - no: "Mest brukte spr\xE5k", - be: "\u041D\u0430\u0439\u0431\u043E\u043B\u044C\u0448 \u0443\u0436\u044B\u0432\u0430\u043D\u044B\u044F \u043C\u043E\u0432\u044B" - }, - "langcard.nodata": { - en: "No languages data.", - ar: "\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0644\u0644\u063A\u0627\u062A.", - az: "Dil m\u0259lumat\u0131 yoxdur.", - ca: "Sense dades d'idiomes", - cn: "\u6CA1\u6709\u8BED\u8A00\u6570\u636E\u3002", - "zh-tw": "\u6C92\u6709\u8A9E\u8A00\u8CC7\u6599\u3002", - cs: "\u017D\xE1dn\xE9 jazykov\xE9 \xFAdaje.", - de: "Keine Sprachdaten.", - bg: "\u041D\u044F\u043C\u0430 \u0434\u0430\u043D\u043D\u0438 \u0437\u0430 \u0435\u0437\u0438\u0446\u0438", - bn: "\u0995\u09CB\u09A8 \u09AD\u09BE\u09B7\u09BE\u09B0 \u09A1\u09C7\u099F\u09BE \u09A8\u09C7\u0987\u0964", - sw: "Hakuna kumbukumbu ya lugha zozote", - ur: "\u06A9\u0648\u0626\u06CC \u0632\u0628\u0627\u0646 \u06A9\u0627 \u0688\u06CC\u0679\u0627 \u0646\u06C1\u06CC\u06BA\u06D4", - es: "Sin datos de idiomas.", - fa: "\u062F\u0627\u062F\u0647\u200C\u0627\u06CC \u0628\u0631\u0627\u06CC \u0632\u0628\u0627\u0646\u200C\u0647\u0627 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F.", - fi: "Ei kielitietoja.", - fr: "Aucune donn\xE9e sur les langues.", - hi: "\u0915\u094B\u0908 \u092D\u093E\u0937\u093E \u0921\u0947\u091F\u093E \u0928\u0939\u0940\u0902", - sa: "\u092D\u093E\u0937\u093E-\u0935\u093F\u0935\u0930\u0923\u0902 \u0928\u093E\u0938\u094D\u0924\u093F\u0964", - hu: "Nincsenek nyelvi adatok.", - it: "Nessun dato sulle lingue.", - ja: "\u8A00\u8A9E\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093\u3002", - kr: "\uC5B8\uC5B4 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.", - nl: "Ingen sprogdata.", - "pt-pt": "Sem dados de linguagens.", - "pt-br": "Sem dados de linguagens.", - np: "\u0915\u0941\u0928\u0948 \u092D\u093E\u0937\u093E \u0921\u093E\u091F\u093E \u091B\u0948\u0928\u0964", - el: "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1 \u03B3\u03BB\u03C9\u03C3\u03C3\u03CE\u03BD.", - ro: "Lipsesc date despre limb\u0103.", - ru: "\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u043E \u044F\u0437\u044B\u043A\u0430\u0445.", - "uk-ua": "\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445 \u043F\u0440\u043E \u043C\u043E\u0432\u0438.", - id: "Tidak ada data bahasa.", - ml: "\u0D2D\u0D3E\u0D37\u0D3E \u0D21\u0D3E\u0D31\u0D4D\u0D31\u0D2F\u0D3F\u0D32\u0D4D\u0D32.", - my: "\u1012\u1031\u1010\u102C \u1019\u101B\u103E\u102D\u1015\u102B\u104B", - ta: `\u0BAE\u0BCA\u0BB4\u0BBF \u0BA4\u0BB0\u0BB5\u0BC1 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.`, - sk: "\u017Diadne \xFAdaje o jazykoch.", - tr: "Dil verisi yok.", - pl: "Brak danych dotycz\u0105cych j\u0119zyk\xF3w.", - uz: "Til haqida ma'lumot yo'q.", - vi: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u ng\xF4n ng\u1EEF.", - se: "Inga spr\xE5kdata.", - he: "\u05D0\u05D9\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9 \u05E9\u05E4\u05D5\u05EA", - fil: "Walang datos ng lenggwahe.", - th: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E20\u0E32\u0E29\u0E32", - sr: "\u041D\u0435\u043C\u0430 \u043F\u043E\u0434\u0430\u0442\u0430\u043A\u0430 \u043E \u0458\u0435\u0437\u0438\u0446\u0438\u043C\u0430.", - "sr-latn": "Nema podataka o jezicima.", - no: "Ingen spr\xE5kdata.", - be: "\u041D\u044F\u043C\u0430 \u0434\u0430\u0434\u0437\u0435\u043D\u044B\u0445 \u043F\u0440\u0430 \u043C\u043E\u0432\u044B." - } -}; -var wakatimeCardLocales = { - "wakatimecard.title": { - en: "WakaTime Stats", - ar: "\u0625\u062D\u0635\u0627\u0626\u064A\u0627\u062A \u0648\u0627\u0643\u0627 \u062A\u0627\u064A\u0645", - az: "WakaTime Statistikas\u0131", - ca: "Estad\xEDstiques de WakaTime", - cn: "WakaTime \u5468\u7EDF\u8BA1", - "zh-tw": "WakaTime \u5468\u7D71\u8A08", - cs: "Statistiky WakaTime", - de: "WakaTime Status", - sw: "Takwimu ya WakaTime", - ur: "\u0648\u06A9\u0627\u0679\u0627\u0626\u0645 \u06A9\u06D2 \u0627\u0639\u062F\u0627\u062F \u0648 \u0634\u0645\u0627\u0631", - bg: "WakaTime \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430", - bn: "WakaTime \u09B8\u09CD\u099F\u09CD\u09AF\u09BE\u099F\u09BE\u09B8", - es: "Estad\xEDsticas de WakaTime", - fa: "\u0622\u0645\u0627\u0631 WakaTime", - fi: "WakaTime-tilastot", - fr: "Statistiques de WakaTime", - hi: "\u0935\u093E\u0915\u093E\u091F\u093E\u0907\u092E \u0906\u0901\u0915\u0921\u093C\u0947", - sa: "WakaTime \u0938\u093E\u0902\u0916\u094D\u092F\u093F\u0915\u0940", - hu: "WakaTime statisztika", - it: "Statistiche WakaTime", - ja: "WakaTime \u30EF\u30AB\u30BF\u30A4\u30E0\u7D71\u8A08", - kr: "WakaTime \uC8FC\uAC04 \uD1B5\uACC4", - nl: "WakaTime-statistieken", - "pt-pt": "Estat\xEDsticas WakaTime", - "pt-br": "Estat\xEDsticas WakaTime", - np: "WakaTime \u0924\u0925\u094D\u092F\u093E .\u094D\u0915", - el: "\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC WakaTime", - ro: "Statistici WakaTime", - ru: "\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 WakaTime", - "uk-ua": "\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 WakaTime", - id: "Status WakaTime", - ml: "\u0D35\u0D3E\u0D15\u0D1F\u0D48\u0D02 \u0D38\u0D4D\u0D25\u0D3F\u0D24\u0D3F\u0D35\u0D3F\u0D35\u0D30\u0D15\u0D4D\u0D15\u0D23\u0D15\u0D4D\u0D15\u0D41\u0D15\u0D7E", - my: "WakaTime \u1021\u1001\u103B\u1000\u103A\u1021\u101C\u1000\u103A\u1019\u103B\u102C\u1038", - ta: `WakaTime \u0BAA\u0BC1\u0BB3\u0BCD\u0BB3\u0BBF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BCD`, - sk: "WakaTime \u0161tatistika", - tr: "WakaTime \u0130statistikler", - pl: "Statystyki WakaTime", - uz: "WakaTime statistikasi", - vi: "Th\u1ED1ng K\xEA WakaTime", - se: "WakaTime statistik", - he: "\u05E1\u05D8\u05D8\u05D9\u05E1\u05D8\u05D9\u05E7\u05D5\u05EA WakaTime", - fil: "Mga Estadistika ng WakaTime", - th: "\u0E2A\u0E16\u0E34\u0E15\u0E34 WakaTime", - sr: "WakaTime \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430", - "sr-latn": "WakaTime statistika", - no: "WakaTime-statistikk", - be: "\u0421\u0442\u0430\u0442\u044B\u0441\u0442\u044B\u043A\u0430 WakaTime" - }, - "wakatimecard.lastyear": { - en: "last year", - ar: "\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0645\u0627\u0636\u064A", - az: "\xD6t\u0259n il", - ca: "L'any passat", - cn: "\u53BB\u5E74", - "zh-tw": "\u53BB\u5E74", - cs: "Minul\xFD rok", - de: "Letztes Jahr", - sw: "Mwaka uliopita", - ur: "\u067E\u0686\u06BE\u0644\u0627 \u0633\u0627\u0644", - bg: "\u043C\u0438\u043D\u0430\u043B\u0430\u0442\u0430 \u0433\u043E\u0434.", - bn: "\u0997\u09A4 \u09AC\u099B\u09B0", - es: "El a\xF1o pasado", - fa: "\u0633\u0627\u0644 \u06AF\u0630\u0634\u062A\u0647", - fi: "Viime vuosi", - fr: "L'ann\xE9e derni\xE8re", - hi: "\u092A\u093F\u091B\u0932\u0947 \u0938\u093E\u0932", - sa: "\u0917\u0924\u0935\u0930\u094D\u0937\u0947", - hu: "Tavaly", - it: "L'anno scorso", - ja: "\u6628\u5E74", - kr: "\uC791\uB144", - nl: "Vorig jaar", - "pt-pt": "Ano passado", - "pt-br": "Ano passado", - np: "\u0917\u0924 \u0935\u0930\u094D\u0937", - el: "\u03A0\u03AD\u03C1\u03C5\u03C3\u03B9", - ro: "Anul trecut", - ru: "\u0417\u0430 \u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0433\u043E\u0434", - "uk-ua": "\u0417\u0430 \u043C\u0438\u043D\u0443\u043B\u0438\u0439 \u0440\u0456\u043A", - id: "Tahun lalu", - ml: "\u0D15\u0D34\u0D3F\u0D1E\u0D4D\u0D1E \u0D35\u0D7C\u0D37\u0D02", - my: "\u1019\u1014\u103E\u1005\u103A\u1000", - ta: `\u0B95\u0B9F\u0BA8\u0BCD\u0BA4 \u0B86\u0BA3\u0BCD\u0B9F\u0BC1`, - sk: "Minul\xFD rok", - tr: "Ge\xE7en y\u0131l", - pl: "W zesz\u0142ym roku", - uz: "O'tgan yil", - vi: "N\u0103m ngo\xE1i", - se: "F\xF6rra \xE5ret", - he: "\u05E9\u05E0\u05D4 \u05E9\u05E2\u05D1\u05E8\u05D4", - fil: "Nakaraang Taon", - th: "\u0E1B\u0E35\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27", - sr: "\u041F\u0440\u043E\u0448\u043B\u0430 \u0433\u043E\u0434.", - "sr-latn": "Pro\u0161la god.", - no: "I fjor", - be: "\u043C\u0456\u043D\u0443\u043B\u044B \u0433\u043E\u0434" - }, - "wakatimecard.last7days": { - en: "last 7 days", - ar: "\u0622\u062E\u0631 7 \u0623\u064A\u0627\u0645", - az: "Son 7 g\xFCn", - ca: "Ultims 7 dies", - cn: "\u6700\u8FD1 7 \u5929", - "zh-tw": "\u6700\u8FD1 7 \u5929", - cs: "Posledn\xEDch 7 dn\xED", - de: "Letzte 7 Tage", - sw: "Siku 7 zilizopita", - ur: "\u067E\u0686\u06BE\u0644\u06D2 7 \u062F\u0646", - bg: "\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 7 \u0434\u043D\u0438", - bn: "\u0997\u09A4 \u09ED \u09A6\u09BF\u09A8", - es: "\xDAltimos 7 d\xEDas", - fa: "\u0647\u0641\u062A \u0631\u0648\u0632 \u06AF\u0630\u0634\u062A\u0647", - fi: "Viimeiset 7 p\xE4iv\xE4\xE4", - fr: "7 derniers jours", - hi: "\u092A\u093F\u091B\u0932\u0947 7 \u0926\u093F\u0928", - sa: "\u0935\u093F\u0917\u0924\u0938\u092A\u094D\u0924\u0926\u093F\u0928\u0947\u0937\u0941", - hu: "Elm\xFAlt 7 nap", - it: "Ultimi 7 giorni", - ja: "\u904E\u53BB 7 \u65E5\u9593", - kr: "\uC9C0\uB09C 7 \uC77C", - nl: "Afgelopen 7 dagen", - "pt-pt": "\xDAltimos 7 dias", - "pt-br": "\xDAltimos 7 dias", - np: "\u0917\u0924 \u096D \u0926\u093F\u0928", - el: "\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B5\u03C2 7 \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2", - ro: "Ultimele 7 zile", - ru: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 7 \u0434\u043D\u0435\u0439", - "uk-ua": "\u041E\u0441\u0442\u0430\u043D\u043D\u0456 7 \u0434\u043D\u0456\u0432", - id: "7 hari terakhir", - ml: "\u0D15\u0D34\u0D3F\u0D1E\u0D4D\u0D1E 7 \u0D26\u0D3F\u0D35\u0D38\u0D02", - my: "7 \u101B\u1000\u103A\u1021\u1010\u103D\u1004\u103A\u1038", - ta: `\u0B95\u0B9F\u0BA8\u0BCD\u0BA4 7 \u0BA8\u0BBE\u0B9F\u0BCD\u0B95\u0BB3\u0BCD`, - sk: "Posledn\xFDch 7 dn\xED", - tr: "Son 7 g\xFCn", - pl: "Ostatnie 7 dni", - uz: "O'tgan 7 kun", - vi: "7 ng\xE0y qua", - se: "Senaste 7 dagarna", - he: "\u05D1\u05BE7 \u05D4\u05D9\u05DE\u05D9\u05DD \u05D4\u05D0\u05D7\u05E8\u05D5\u05E0\u05D9\u05DD", - fil: "Huling 7 Araw", - th: "7 \u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E1C\u0E48\u0E32\u0E19\u0E21\u0E32", - sr: "\u041F\u0440\u0435\u0442\u0445\u043E\u0434\u043D\u0438\u0445 7 \u0434\u0430\u043D\u0430", - "sr-latn": "Prethodnih 7 dana", - no: "Siste 7 dager", - be: "\u0430\u043F\u043E\u0448\u043D\u0456\u044F 7 \u0434\u0437\u0451\u043D" - }, - "wakatimecard.notpublic": { - en: "WakaTime user profile not public", - ar: "\u0645\u0644\u0641 \u0645\u0633\u062A\u062E\u062F\u0645 \u0648\u0627\u0643\u0627 \u062A\u0627\u064A\u0645 \u0634\u062E\u0635\u064A", - az: "WakaTime istifad\u0259\xE7i profili ictimai deyil", - ca: "Perfil d'usuari de WakaTime no p\xFAblic", - cn: "WakaTime \u7528\u6237\u4E2A\u4EBA\u8D44\u6599\u672A\u516C\u5F00", - "zh-tw": "WakaTime \u4F7F\u7528\u8005\u500B\u4EBA\u8CC7\u6599\u672A\u516C\u958B", - cs: "Profil u\u017Eivatele WakaTime nen\xED ve\u0159ejn\xFD", - de: "WakaTime-Benutzerprofil nicht \xF6ffentlich", - sw: "Maelezo ya mtumizi wa WakaTime si ya watu wote(umma)", - ur: "\u0648\u06A9\u0627\u0679\u0627\u0626\u0645 \u0635\u0627\u0631\u0641 \u06A9\u0627 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0639\u0648\u0627\u0645\u06CC \u0646\u06C1\u06CC\u06BA", - bg: "\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043F\u0440\u043E\u0444\u0438\u043B \u0432 WakaTime \u043D\u0435 \u0435 \u043E\u0431\u0449\u043E\u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D", - bn: "WakaTime \u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09B0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AA\u09CD\u09B0\u0995\u09BE\u09B6\u09CD\u09AF \u09A8\u09DF", - es: "Perfil de usuario de WakaTime no p\xFAblico", - fa: "\u067E\u0631\u0648\u0641\u0627\u06CC\u0644 \u06A9\u0627\u0631\u0628\u0631\u06CC WakaTime \u0639\u0645\u0648\u0645\u06CC \u0646\u06CC\u0633\u062A", - fi: "WakaTime-k\xE4ytt\xE4j\xE4profiili ei ole julkinen", - fr: "Profil utilisateur WakaTime non public", - hi: "WakaTime \u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u0928\u0939\u0940\u0902 \u0939\u0948", - sa: "WakaTime \u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E-\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915\u0902 \u0928\u093E\u0938\u094D\u0924\u093F", - hu: "A WakaTime felhaszn\xE1l\xF3i profilja nem nyilv\xE1nos", - it: "Profilo utente WakaTime non pubblico", - ja: "WakaTime \u30E6\u30FC\u30B6\u30FC\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306F\u516C\u958B\u3055\u308C\u3066\u3044\u307E\u305B\u3093", - kr: "WakaTime \uC0AC\uC6A9\uC790 \uD504\uB85C\uD544\uC774 \uACF5\uAC1C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4", - nl: "WakaTime gebruikersprofiel niet openbaar", - "pt-pt": "Perfil de utilizador WakaTime n\xE3o p\xFAblico", - "pt-br": "Perfil de usu\xE1rio WakaTime n\xE3o p\xFAblico", - np: "WakaTime \u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u091B\u0948\u0928", - el: "\u03A4\u03BF \u03C0\u03C1\u03BF\u03C6\u03AF\u03BB \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7 WakaTime \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B7\u03BC\u03CC\u03C3\u03B9\u03BF", - ro: "Profilul utilizatorului de Wakatime nu este public", - ru: "\u041F\u0440\u043E\u0444\u0438\u043B\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F WakaTime \u043D\u0435 \u043E\u0431\u0449\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439", - "uk-ua": "\u041F\u0440\u043E\u0444\u0456\u043B\u044C \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 WakaTime \u043D\u0435 \u043F\u0443\u0431\u043B\u0456\u0447\u043D\u0438\u0439", - id: "Profil pengguna WakaTime tidak publik", - ml: "WakaTime \u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D43 \u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D2A\u0D4A\u0D24\u0D41\u0D35\u0D3E\u0D2F\u0D3F \u0D2A\u0D4D\u0D30\u0D38\u0D3F\u0D26\u0D4D\u0D27\u0D40\u0D15\u0D30\u0D3F\u0D15\u0D4D\u0D15\u0D2A\u0D4D\u0D2A\u0D46\u0D1F\u0D3E\u0D24\u0D4D\u0D24\u0D24\u0D3E\u0D23\u0D4D", - my: "Public Profile \u1019\u101F\u102F\u1010\u103A\u1015\u102B\u104B", - ta: `WakaTime \u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BAE\u0BCD \u0BAA\u0BCA\u0BA4\u0BC1\u0BB5\u0BBF\u0BB2\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.`, - sk: "Profil pou\u017E\xEDvate\u013Ea WakaTime nie je verejn\xFD", - tr: "WakaTime kullan\u0131c\u0131 profili herkese a\xE7\u0131k de\u011Fil", - pl: "Profil u\u017Cytkownika WakaTime nie jest publiczny", - uz: "WakaTime foydalanuvchi profili ochiq emas", - vi: "H\u1ED3 s\u01A1 ng\u01B0\u1EDDi d\xF9ng WakaTime kh\xF4ng c\xF4ng khai", - se: "WakaTime anv\xE4ndarprofil inte offentlig", - he: "\u05E4\u05E8\u05D5\u05E4\u05D9\u05DC \u05DE\u05E9\u05EA\u05DE\u05E9 WakaTime \u05DC\u05D0 \u05E4\u05D5\u05DE\u05D1\u05D9", - fil: "Hindi pampubliko ang profile ng gumagamit ng WakaTime", - th: "\u0E42\u0E1B\u0E23\u0E44\u0E1F\u0E25\u0E4C\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 WakaTime \u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E32\u0E18\u0E32\u0E23\u0E13\u0E30", - sr: "WakaTime \u043F\u0440\u043E\u0444\u0438\u043B \u043A\u043E\u0440\u0438\u0441\u043D\u0438\u043A\u0430 \u043D\u0438\u0458\u0435 \u0458\u0430\u0432\u0430\u043D", - "sr-latn": "WakaTime profil korisnika nije javan", - no: "WakaTime brukerprofil ikke offentlig", - be: "\u041F\u0440\u043E\u0444\u0456\u043B\u044C \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A\u0430 WakaTime \u043D\u0435 \u043F\u0443\u0431\u043B\u0456\u0447\u043D\u044B" - }, - "wakatimecard.nocodedetails": { - en: "User doesn't publicly share detailed code statistics", - ar: "\u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645 \u0644\u0627 \u064A\u0634\u0627\u0631\u0643 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u062A\u0641\u0635\u064A\u0644\u064A\u0629", - az: "\u0130stifad\u0259\xE7i kod statistikalar\u0131n\u0131 ictimai \u015F\u0259kild\u0259 payla\u015Fm\u0131r", - ca: "L'usuari no comparteix dades p\xFAbliques del seu codi", - cn: "\u7528\u6237\u4E0D\u516C\u5F00\u5206\u4EAB\u8BE6\u7EC6\u7684\u4EE3\u7801\u7EDF\u8BA1\u4FE1\u606F", - "zh-tw": "\u4F7F\u7528\u8005\u4E0D\u516C\u958B\u5206\u4EAB\u8A73\u7D30\u7684\u7A0B\u5F0F\u78BC\u7D71\u8A08\u8CC7\u8A0A", - cs: "U\u017Eivatel nesd\xEDl\xED podrobn\xE9 statistiky k\xF3du", - de: "Benutzer teilt keine detaillierten Code-Statistiken", - sw: "Mtumizi hagawi kila kitu au takwimu na umma", - ur: "\u0635\u0627\u0631\u0641 \u0639\u0648\u0627\u0645\u06CC \u0637\u0648\u0631 \u067E\u0631 \u062A\u0641\u0635\u06CC\u0644\u06CC \u06A9\u0648\u0688 \u06A9\u06D2 \u0627\u0639\u062F\u0627\u062F \u0648 \u0634\u0645\u0627\u0631 \u0634\u06CC\u0626\u0631 \u0646\u06C1\u06CC\u06BA \u06A9\u0631\u062A\u0627", - bg: "\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F\u0442 \u043D\u0435 \u0441\u043F\u043E\u0434\u0435\u043B\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u043A\u043E\u0434", - bn: "\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u09AC\u09BF\u09B8\u09CD\u09A4\u09BE\u09B0\u09BF\u09A4 \u0995\u09CB\u09A1 \u09AA\u09B0\u09BF\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u09A8 \u09AA\u09CD\u09B0\u0995\u09BE\u09B6 \u0995\u09B0\u09C7\u09A8 \u09A8\u09BE", - es: "El usuario no comparte p\xFAblicamente estad\xEDsticas detalladas de c\xF3digo", - fa: "\u06A9\u0627\u0631\u0628\u0631 \u0622\u0645\u0627\u0631 \u06A9\u062F \u062A\u0641\u0635\u06CC\u0644\u06CC \u0631\u0627 \u0628\u0647\u200C\u0635\u0648\u0631\u062A \u0639\u0645\u0648\u0645\u06CC \u0628\u0647 \u0627\u0634\u062A\u0631\u0627\u06A9 \u0646\u0645\u06CC\u200C\u06AF\u0630\u0627\u0631\u062F", - fi: "K\xE4ytt\xE4j\xE4 ei jaa julkisesti tarkkoja kooditilastoja", - fr: "L'utilisateur ne partage pas publiquement de statistiques de code d\xE9taill\xE9es", - hi: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0935\u093F\u0938\u094D\u0924\u0943\u0924 \u0915\u094B\u0921 \u0906\u0901\u0915\u0921\u093C\u0947 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u0930\u0942\u092A \u0938\u0947 \u0938\u093E\u091D\u093E \u0928\u0939\u0940\u0902 \u0915\u0930\u0924\u093E \u0939\u0948", - sa: "\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0935\u093F\u0938\u094D\u0924\u0943\u0924-\u0915\u094B\u0921-\u0938\u093E\u0902\u0916\u094D\u092F\u093F\u0915\u0940\u0902 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915\u0930\u0942\u092A\u0947\u0923 \u0928 \u0926\u0930\u094D\u0936\u092F\u0924\u093F", - hu: "A felhaszn\xE1l\xF3 nem osztja meg nyilv\xE1nosan a r\xE9szletes k\xF3dstatisztik\xE1kat", - it: "L'utente non condivide pubblicamente statistiche dettagliate sul codice", - ja: "\u30E6\u30FC\u30B6\u30FC\u306F\u8A73\u7D30\u306A\u30B3\u30FC\u30C9\u7D71\u8A08\u3092\u516C\u958B\u3057\u307E\u305B\u3093", - kr: "\uC0AC\uC6A9\uC790\uB294 \uC790\uC138\uD55C \uCF54\uB4DC \uD1B5\uACC4\uB97C \uACF5\uAC1C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4", - nl: "Gebruiker deelt geen gedetailleerde code-statistieken", - "pt-pt": "O utilizador n\xE3o partilha publicamente estat\xEDsticas detalhadas de c\xF3digo", - "pt-br": "O usu\xE1rio n\xE3o compartilha publicamente estat\xEDsticas detalhadas de c\xF3digo", - np: "\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u0930\u0942\u092A\u092E\u093E \u0935\u093F\u0938\u094D\u0924\u0943\u0924 \u0915\u094B\u0921 \u0924\u0925\u094D\u092F\u093E\u0919\u094D\u0915 \u0938\u093E\u091D\u093E \u0917\u0930\u094D\u0926\u0948\u0928", - el: "\u039F \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 \u03B4\u03B5\u03BD \u03B4\u03B7\u03BC\u03BF\u03C3\u03B9\u03B5\u03CD\u03B5\u03B9 \u03B4\u03B7\u03BC\u03CC\u03C3\u03B9\u03B1 \u03BB\u03B5\u03C0\u03C4\u03BF\u03BC\u03B5\u03C1\u03B5\u03AF\u03C2 \u03C3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AD\u03C2 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1", - ro: "Utilizatorul nu \xEE\u0219i public\u0103 statisticile detaliate ale codului", - ru: "\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0434\u0435\u043B\u0438\u0442\u0441\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u043E\u0439 \u043A\u043E\u0434\u0430", - "uk-ua": "\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u043D\u0435 \u043F\u0443\u0431\u043B\u0456\u043A\u0443\u0454 \u0434\u0435\u0442\u0430\u043B\u044C\u043D\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u043A\u043E\u0434\u0443", - id: "Pengguna tidak membagikan statistik kode terperinci secara publik", - ml: "\u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D3E\u0D35\u0D4D \u0D2A\u0D4A\u0D24\u0D41\u0D35\u0D3E\u0D2F\u0D3F \u0D35\u0D3F\u0D36\u0D26\u0D40\u0D15\u0D30\u0D3F\u0D1A\u0D4D\u0D1A \u0D15\u0D4B\u0D21\u0D4D \u0D38\u0D4D\u0D31\u0D4D\u0D31\u0D3E\u0D31\u0D4D\u0D31\u0D3F\u0D38\u0D4D\u0D31\u0D4D\u0D31\u0D3F\u0D15\u0D4D\u0D38\u0D4D \u0D2A\u0D19\u0D4D\u0D15\u0D3F\u0D1F\u0D41\u0D28\u0D4D\u0D28\u0D3F\u0D32\u0D4D\u0D32", - my: "\u1021\u101E\u102F\u1036\u1038\u1015\u103C\u102F\u101E\u1030\u101E\u100A\u103A \u1021\u101E\u1031\u1038\u1005\u102D\u1010\u103A \u1000\u102F\u1012\u103A \u1005\u102C\u101B\u1004\u103A\u1038\u1021\u1004\u103A\u1038\u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1021\u1019\u103B\u102C\u1038\u101E\u102D\u102F\u1037 \u1019\u1019\u103B\u103E\u101D\u1031\u1015\u102B\u104B", - ta: `\u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0BB5\u0BBF\u0BB0\u0BBF\u0BB5\u0BBE\u0BA9 \u0B95\u0BC1\u0BB1\u0BBF\u0BAF\u0BC0\u0B9F\u0BCD\u0B9F\u0BC1 \u0BAA\u0BC1\u0BB3\u0BCD\u0BB3\u0BBF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BC8\u0BAA\u0BCD \u0BAA\u0BCA\u0BA4\u0BC1\u0BB5\u0BBF\u0BB2\u0BCD \u0BAA\u0B95\u0BBF\u0BB0\u0BCD\u0BB5\u0BA4\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8.`, - sk: "Pou\u017E\xEDvate\u013E neposkytuje verejne podrobn\xE9 \u0161tatistiky k\xF3du", - tr: "Kullan\u0131c\u0131 ayr\u0131nt\u0131l\u0131 kod istatistiklerini herkese a\xE7\u0131k olarak payla\u015Fm\u0131yor", - pl: "U\u017Cytkownik nie udost\u0119pnia publicznie szczeg\xF3\u0142owych statystyk kodu", - uz: "Foydalanuvchi umumiy ko`d statistikasini ochiq ravishda almashmaydi", - vi: "Ng\u01B0\u1EDDi d\xF9ng kh\xF4ng chia s\u1EBB th\u1ED1ng k\xEA m\xE3 chi ti\u1EBFt c\xF4ng khai", - se: "Anv\xE4ndaren delar inte offentligt detaljerad kodstatistik", - he: "\u05DE\u05E9\u05EA\u05DE\u05E9 \u05DC\u05D0 \u05DE\u05E4\u05E8\u05E1\u05DD \u05E4\u05D5\u05DE\u05D1\u05D9\u05EA \u05E1\u05D8\u05D8\u05D9\u05E1\u05D8\u05D9\u05E7\u05D5\u05EA \u05E7\u05D5\u05D3 \u05DE\u05E4\u05D5\u05E8\u05D8\u05D5\u05EA", - fil: "Hindi ibinabahagi ng gumagamit ang detalyadong estadistika ng code nang pampubliko", - th: "\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E41\u0E0A\u0E23\u0E4C\u0E2A\u0E16\u0E34\u0E15\u0E34\u0E42\u0E04\u0E49\u0E14\u0E41\u0E1A\u0E1A\u0E2A\u0E32\u0E18\u0E32\u0E23\u0E13\u0E30", - sr: "\u041A\u043E\u0440\u0438\u0441\u043D\u0438\u043A \u043D\u0435 \u0434\u0435\u043B\u0438 \u0458\u0430\u0432\u043D\u043E \u0434\u0435\u0442\u0430\u0459\u043D\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u043A\u043E\u0434\u0430", - "sr-latn": "Korisnik ne deli javno detaljnu statistiku koda", - no: "Brukeren deler ikke detaljert kodestatistikk offentlig", - be: "\u041A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A \u043D\u0435 \u0434\u0437\u0435\u043B\u0456\u0446\u0446\u0430 \u043F\u0430\u0434\u0440\u0430\u0431\u044F\u0437\u043D\u0430\u0439 \u0441\u0442\u0430\u0442\u044B\u0441\u0442\u044B\u043A\u0430\u0439 \u043A\u043E\u0434\u0430 \u043F\u0443\u0431\u043B\u0456\u0447\u043D\u0430" - }, - "wakatimecard.nocodingactivity": { - en: "No coding activity this week", - ar: "\u0644\u0627 \u064A\u0648\u062C\u062F \u0646\u0634\u0627\u0637 \u0628\u0631\u0645\u062C\u064A \u0644\u0647\u0630\u0627 \u0627\u0644\u0623\u0633\u0628\u0648\u0639", - az: "Bu h\u0259ft\u0259 he\xE7 bir kodla\u015Fd\u0131rma f\u0259aliyy\u0259ti olmay\u0131b", - ca: "No hi ha activitat de codificaci\xF3 aquesta setmana", - cn: "\u672C\u5468\u6CA1\u6709\u7F16\u7A0B\u6D3B\u52A8", - "zh-tw": "\u672C\u5468\u6C92\u6709\u7DE8\u7A0B\u6D3B\u52D5", - cs: "Tento t\xFDden \u017E\xE1dn\xE1 aktivita v k\xF3dov\xE1n\xED", - de: "Keine Aktivit\xE4ten in dieser Woche", - sw: "Hakuna matukio yoyote ya kusimba wiki hii", - ur: "\u0627\u0633 \u06C1\u0641\u062A\u06D2 \u06A9\u0648\u0626\u06CC \u06A9\u0648\u0688\u0646\u06AF \u0633\u0631\u06AF\u0631\u0645\u06CC \u0646\u06C1\u06CC\u06BA", - bg: "\u041D\u044F\u043C\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442 \u043F\u0440\u0438 \u043A\u043E\u0434\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u0442\u0430\u0437\u0438 \u0441\u0435\u0434\u043C\u0438\u0446\u0430", - bn: "\u098F\u0987 \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9\u09C7 \u0995\u09CB\u09A8 \u0995\u09CB\u09A1\u09BF\u0982 \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u099F\u09BF\u09AD\u09BF\u099F\u09BF \u09A8\u09C7\u0987", - es: "No hay actividad de codificaci\xF3n esta semana", - fa: "\u0641\u0639\u0627\u0644\u06CC\u062A \u06A9\u062F\u0646\u0648\u06CC\u0633\u06CC \u062F\u0631 \u0627\u06CC\u0646 \u0647\u0641\u062A\u0647 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F", - fi: "Ei koodaustoimintaa t\xE4ll\xE4 viikolla", - fr: "Aucune activit\xE9 de codage cette semaine", - hi: "\u0907\u0938 \u0938\u092A\u094D\u0924\u093E\u0939 \u0915\u094B\u0908 \u0915\u094B\u0921\u093F\u0902\u0917 \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0928\u0939\u0940\u0902 ", - sa: "\u0905\u0938\u094D\u092E\u093F\u0928\u094D \u0938\u092A\u094D\u0924\u093E\u0939\u0947 \u0915\u094B\u0921\u093F\u0919\u094D-\u0915\u093E\u0930\u094D\u092F\u0902 \u0928\u093E\u0938\u094D\u0924\u093F", - hu: "Nem volt aktivit\xE1s ezen a h\xE9ten", - it: "Nessuna attivit\xE0 in questa settimana", - ja: "\u4ECA\u9031\u306E\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u6D3B\u52D5\u306F\u3042\u308A\u307E\u305B\u3093", - kr: "\uC774\uBC88 \uC8FC \uC791\uC5C5\uB0B4\uC5ED \uC5C6\uC74C", - nl: "Geen programmeeractiviteit deze week", - "pt-pt": "Sem atividade esta semana", - "pt-br": "Nenhuma atividade de codifica\xE7\xE3o esta semana", - np: "\u092F\u0938 \u0939\u092A\u094D\u0924\u093E \u0915\u0941\u0928\u0948 \u0915\u094B\u0921\u093F\u0902\u0917 \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u091B\u0948\u0928", - el: "\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03B4\u03C1\u03B1\u03C3\u03C4\u03B7\u03C1\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1 \u03B3\u03B9' \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7\u03BD \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1", - ro: "Nicio activitate de programare s\u0103pt\u0103m\xE2na aceasta", - ru: "\u041D\u0430 \u044D\u0442\u043E\u0439 \u043D\u0435\u0434\u0435\u043B\u0435 \u043D\u0435 \u0431\u044B\u043B\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438", - "uk-ua": "\u0426\u044C\u043E\u0433\u043E \u0442\u0438\u0436\u043D\u044F \u043D\u0435 \u0431\u0443\u043B\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0456", - id: "Tidak ada aktivitas perkodingan minggu ini", - ml: "\u0D08 \u0D06\u0D34\u0D4D\u0D1A \u0D15\u0D4B\u0D21\u0D3F\u0D02\u0D17\u0D4D \u0D2A\u0D4D\u0D30\u0D35\u0D7C\u0D24\u0D4D\u0D24\u0D28\u0D19\u0D4D\u0D19\u0D33\u0D4A\u0D28\u0D4D\u0D28\u0D41\u0D2E\u0D3F\u0D32\u0D4D\u0D32", - my: "\u1012\u102E\u1021\u1015\u1010\u103A\u1019\u103E\u102C \u1000\u102F\u1012\u103A\u101B\u1031\u1038\u1001\u103C\u1004\u103A\u1038 \u1019\u101B\u103E\u102D\u1015\u102B\u104B", - ta: `\u0B87\u0BA8\u0BCD\u0BA4 \u0BB5\u0BBE\u0BB0\u0BAE\u0BCD \u0B95\u0BC1\u0BB1\u0BBF\u0BAF\u0BC0\u0B9F\u0BCD\u0B9F\u0BC1 \u0B9A\u0BC6\u0BAF\u0BB2\u0BCD\u0BAA\u0BBE\u0B9F\u0BC1 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.`, - sk: "\u017Diadna k\xF3dovacia aktivita tento t\xFD\u017Ede\u0148", - tr: "Bu hafta herhangi bir kod yazma aktivitesi olmad\u0131", - pl: "Brak aktywno\u015Bci w tym tygodniu", - uz: "Bu hafta faol bo'lmadi", - vi: "Kh\xF4ng C\xF3 Ho\u1EA1t \u0110\u1ED9ng Trong Tu\u1EA7n N\xE0y", - se: "Ingen aktivitet denna vecka", - he: "\u05D0\u05D9\u05DF \u05E4\u05E2\u05D9\u05DC\u05D5\u05EA \u05EA\u05DB\u05E0\u05D5\u05EA\u05D9\u05EA \u05D4\u05E9\u05D1\u05D5\u05E2", - fil: "Walang aktibidad sa pag-code ngayong linggo", - th: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E34\u0E08\u0E01\u0E23\u0E23\u0E21\u0E01\u0E32\u0E23\u0E40\u0E02\u0E35\u0E22\u0E19\u0E42\u0E04\u0E49\u0E14\u0E43\u0E19\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C\u0E19\u0E35\u0E49", - sr: "\u0422\u043E\u043A\u043E\u043C \u043E\u0432\u0435 \u043D\u0435\u0434\u0435\u0459\u0435 \u043D\u0438\u0458\u0435 \u0431\u0438\u043B\u043E \u043D\u0438\u043A\u0430\u043A\u0432\u0438\u0445 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438", - "sr-latn": "Tokom ove nedelje nije bilo nikakvih aktivnosti", - no: "Ingen kodeaktivitet denne uken", - be: "\u041D\u0430 \u0433\u044D\u0442\u044B\u043C \u0442\u044B\u0434\u043D\u0456 \u043D\u0435 \u0431\u044B\u043B\u043E \u0430\u043A\u0442\u044B\u045E\u043D\u0430\u0441\u0446\u0456" - } -}; -var availableLocales = Object.keys(repoCardLocales["repocard.archived"]); -var isLocaleAvailable = (locale) => { - return availableLocales.includes(locale.toLowerCase()); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/params.js -var rawParam = optional(string2()); -var SAFE_PATTERN = /^[-\w/.,]+$/; -var REJECTION_MESSAGES = { - number: (param) => `Invalid number input for parameter "${param}"`, - year: (param) => `Invalid number input for parameter "${param}"`, - unsafe: (param) => `Parameter "${param}" contains unsafe characters`, - locale: () => "Locale not found", - enum: (param) => `Incorrect ${param} input`, - color: (param) => `Invalid color input for parameter "${param}"` -}; -var rejects = (kind, passes) => refine((value) => typeof value !== "string" || passes(value), { - error: (issue3) => REJECTION_MESSAGES[kind](String(issue3.path?.[0] ?? "")) -}); -var booleanParam = pipe( - rawParam, - // Narrowed: `parseBoolean` also takes booleans, which a query string cannot hold. - transform((value) => parseBoolean(value)) -); -var listParam = pipe(rawParam, transform(parseArray)); -var numberParam = pipe(rawParam.check(rejects("number", (value) => Number.isFinite(parseFloat(value)))), transform((value) => value === void 0 ? void 0 : parseFloat(value))); -var looseIntParam = pipe(rawParam, transform((value) => value === void 0 ? void 0 : parseInt(value, 10))); -var yearParam = pipe(rawParam.check(rejects("year", (value) => /^\d{4}$/.test(value))), transform((value) => value === void 0 ? void 0 : Number(value))); -var safeParam = rawParam.check(rejects("unsafe", (value) => !value || SAFE_PATTERN.test(value))); -var safeListParam = pipe(safeParam, transform(parseArray)); -var localeParam = pipe(rawParam.check(rejects("locale", (value) => !value || isLocaleAvailable(value))), transform((value) => value?.toLowerCase())); -var enumParam = (values) => rawParam.check(rejects("enum", (value) => values.includes(value))); -var colorParamsSchema = object(Object.fromEntries(COLOR_PARAM_KEYS.map((key) => [ - key, - THEME_PARAM_KEYS.includes(key) ? rawParam : rawParam.check(rejects("color", isValidColorInput)) -]))); -var toCardError = (error2) => { - const issue3 = error2.issues[0]; - return CardError.invalidParam(String(issue3?.path[0] ?? ""), issue3?.message ?? "Invalid input"); -}; -var parseParams = (schema, query) => { - const result = safeParse(schema, query); - if (!result.success) { - throw toCardError(result.error); - } - return result.data; -}; -var parseColorParams = (query) => parseParams(colorParamsSchema, query); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/gist.js -var gistQuery = object({ - id: safeParam, - border_radius: numberParam, - show_owner: booleanParam, - browser_rendering: booleanParam, - hide_border: booleanParam -}); -var gist = async (query, config2) => { - let colors; - try { - colors = parseColorParams(query); - } catch (err) { - return errorResult(err); - } - try { - const { id, border_radius, show_owner, browser_rendering, hide_border } = parseParams(gistQuery, query); - const gistData = await fetchGist({ id }, config2); - return { - status: "success", - content: renderGistCard(gistData, { - ...colors, - border_radius, - show_owner, - browser_rendering, - hide_border - }) - }; - } catch (err) { - return errorResult(err, colors); - } -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/I18n.js -var FALLBACK_LOCALE = "en"; -var I18n = class { - locale; - translations; - /** - * @param props Constructor arguments. - * @param props.locale Locale. - * @param props.translations Translations. - */ - constructor({ locale, translations }) { - this.locale = locale || FALLBACK_LOCALE; - this.translations = translations; - } - /** - * Get translation. - * - * @param str String to translate. - * @returns Translated string. - */ - t(str) { - const translation = this.translations[str]; - if (!translation) { - throw new Error(`${str} Translation string not found`); - } - const localized = translation[this.locale]; - if (!localized) { - throw new Error(`'${str}' translation not found for locale '${this.locale}'`); - } - return localized; - } -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/cards/repo.js -var ICON_SIZE2 = 16; -var CARD_DEFAULT_WIDTH2 = 400; -var X_OFFSET2 = 25; -var DESCRIPTION_FONT_SIZE2 = 13; -var DESCRIPTION_LINE_HEIGHT_PX2 = 16; -var DESCRIPTION_MAX_LINES2 = 3; -var getBadgeSVG = (label, xOffset = 0) => { - if (!Number.isFinite(xOffset)) { - throw new Error(`Invalid xOffset: "${xOffset}"`); - } - return ` - - - - ${encodeHTML(label)} - - - `; -}; -var renderRepoCard = (repo, options = {}) => { - const { name, nameWithOwner, description, primaryLanguage, isArchived, isTemplate, stargazerCount, forkCount, totalPRsAuthored, totalPRsCommented, totalPRsReviewed, totalIssuesAuthored, totalIssuesCommented } = repo; - const { hide_border = false, card_width_input, show_owner = false, browser_rendering = false, show = [], show_icons = true, number_format = "short", text_bold = false, line_height = 22, username, theme = "default_repocard", border_radius, locale, description_lines_count } = options; - const card_width = card_width_input && !isNaN(card_width_input) ? card_width_input : show.length >= 2 ? CARD_DEFAULT_WIDTH2 + 30 : CARD_DEFAULT_WIDTH2; - const i18n = new I18n({ - locale, - translations: repoCardLocales - }); - const repoFilter = encodeURIComponent(buildSearchFilter([nameWithOwner], [])); - const encodedUsername = encodeURIComponent(username ?? ""); - const STATS = {}; - if (show.includes("prs_authored")) { - STATS["prs_authored"] = { - icon: icons.prs, - label: i18n.t("repocard.prs-authored"), - value: totalPRsAuthored, - id: "prs_authored", - link: `https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=pullrequests` - }; - } - if (show.includes("prs_commented")) { - STATS["prs_commented"] = { - icon: icons.comments, - label: i18n.t("repocard.prs-commented"), - value: totalPRsCommented, - id: "prs_commented", - link: `https://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests` - }; - } - if (show.includes("prs_reviewed")) { - STATS["prs_reviewed"] = { - icon: icons.reviews, - label: i18n.t("repocard.prs-reviewed"), - value: totalPRsReviewed, - id: "prs_reviewed", - link: `https://github.com/search?q=${repoFilter}reviewed-by%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests` - }; - } - if (show.includes("issues_authored")) { - STATS["issues_authored"] = { - icon: icons.issues, - label: i18n.t("repocard.issues-authored"), - value: totalIssuesAuthored, - id: "issues_authored", - link: `https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=issues` - }; - } - if (show.includes("issues_commented")) { - STATS["issues_commented"] = { - icon: icons.discussions_started, - label: i18n.t("repocard.issues-commented"), - value: totalIssuesCommented, - id: "issues_commented", - link: `https://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=issues` - }; - } - const statItems = Object.values(STATS).map((stat2, index) => ( - // create the text nodes, and pass index so that we can calculate the line spacing - createTextNode({ - icon: stat2.icon, - label: stat2.label, - value: stat2.value ?? 0, - id: stat2.id, - unitSymbol: stat2.unitSymbol, - index, - showIcons: show_icons, - shiftValuePos: 14.01, - bold: text_bold, - numberFormat: number_format, - link: stat2.link, - labelXOffset: 23 - }) - )); - const extraLHeight = parseInt(String(line_height), 10); - const lineHeight = 10; - const header = show_owner ? nameWithOwner : name; - const langName = primaryLanguage && primaryLanguage.name || "Unspecified"; - const langColor = primaryLanguage && primaryLanguage.color || "#333"; - const desc = parseEmojis(description || "No description provided"); - const descriptionBoxWidth = card_width - 2 * X_OFFSET2; - let descriptionLinesCount; - let descriptionSvg; - if (browser_rendering) { - descriptionLinesCount = description_lines_count ? clampValue(description_lines_count, 1, DESCRIPTION_MAX_LINES2) : countWrappedLines(desc, DESCRIPTION_FONT_SIZE2, descriptionBoxWidth, DESCRIPTION_MAX_LINES2); - descriptionSvg = wrappedTextNode({ - text: desc, - x: X_OFFSET2, - y: -3, - width: descriptionBoxWidth, - height: descriptionLinesCount * DESCRIPTION_LINE_HEIGHT_PX2 + 10, - // 10px extra for "descenders" like g, j, q, p, y - lineCount: descriptionLinesCount, - className: "description", - testId: "description-text" - }); - } else { - const descriptionMaxLines = description_lines_count ? clampValue(description_lines_count, 1, DESCRIPTION_MAX_LINES2) : DESCRIPTION_MAX_LINES2; - const multiLineDescription = wrapTextMultiline(desc, descriptionBoxWidth, DESCRIPTION_FONT_SIZE2, descriptionMaxLines); - descriptionLinesCount = description_lines_count ? clampValue(description_lines_count, 1, DESCRIPTION_MAX_LINES2) : multiLineDescription.length; - descriptionSvg = multiLineDescription.map((line) => `${encodeHTML(line)}`).join(""); - descriptionSvg = ` - ${descriptionSvg} - `; - } - const extraHeight = Object.keys(STATS).length ? -7 + (Math.ceil(statItems.length / 2) + 1) * extraLHeight : 0; - const height = (descriptionLinesCount > 1 ? 120 : 110) + descriptionLinesCount * lineHeight + extraHeight; - const { lightColors, darkColors } = getLightDarkColors({ ...options, theme }); - const svgLanguage = primaryLanguage ? createLanguageNode(langName, langColor) : ""; - const totalStars = kFormatter(stargazerCount); - const totalForks = kFormatter(forkCount); - const svgStars = iconWithLabel(icons.star, totalStars, "stargazers", ICON_SIZE2); - const svgForks = iconWithLabel(icons.fork, totalForks, "forkcount", ICON_SIZE2); - const starAndForkCount = flexLayout({ - items: [svgLanguage, svgStars, svgForks], - sizes: [ - measureText(langName, 12), - ICON_SIZE2 + measureText(`${totalStars}`, 12), - ICON_SIZE2 + measureText(`${totalForks}`, 12) - ], - gap: 25 - }).join(""); - const extraRows = []; - for (let i = 0; i < statItems.length; i += 2) { - extraRows.push(flexLayout({ - items: statItems.slice(i, i + 2), - gap: 210, - direction: "row" - }).join("")); - } - const extraItems = ` - - ${flexLayout({ - items: extraRows, - gap: extraLHeight, - direction: "column" - }).join("")} - - `; - const card = new Card({ - defaultTitle: header.length > 35 ? `${header.slice(0, 35)}...` : header, - titlePrefixIcon: icons.contribs, - width: card_width, - height, - border_radius, - colors: { light: lightColors, dark: darkColors } - }); - card.disableAnimations(); - card.setHideBorder(hide_border); - card.setHideTitle(false); - card.setCSS({ - light: ({ textColor, iconColor }) => ` - .description { - font: 400 ${DESCRIPTION_FONT_SIZE2}px 'Segoe UI', Ubuntu, Sans-Serif;fill: ${textColor}; - ${browser_rendering ? wrappedTextStyles(textColor) : ""} - } - .gray { font: 400 12px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${textColor} } - .badge { font: 600 11px 'Segoe UI', Ubuntu, Sans-Serif; } - .badge rect { opacity: 0.2; stroke: ${textColor} } - .badge text { fill: ${textColor} } - - .stat { font: 400 12px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${textColor} } - .stagger { - opacity: 0; - animation: fadeInAnimation 0.3s ease-in-out forwards; - } - .not_bold { font-weight: 400 } - .bold { font-weight: 700 } - .icon { - fill: ${iconColor}; - display: block; - } - `, - dark: ({ textColor, iconColor }) => ` - .description { - fill: ${textColor}; - ${browser_rendering ? wrappedTextStyles(textColor) : ""} - } - .gray { fill: ${textColor} } - .badge rect { stroke: ${textColor} } - .badge text { fill: ${textColor} } - .stat { fill: ${textColor} } - .icon { fill: ${iconColor}; } - ` - }); - const extraStatLabels = Object.values(STATS).map((stat2) => `${stat2.label}: ${stat2.value ?? 0}`).join(", "); - card.setAccessibilityLabel({ - title: card.title, - desc: [`${desc}.`, primaryLanguage ? langName : "", extraStatLabels].filter(Boolean).join(", ") - }); - return card.render(` - ${isTemplate ? getBadgeSVG(i18n.t("repocard.template"), card_width - CARD_DEFAULT_WIDTH2) : isArchived ? getBadgeSVG(i18n.t("repocard.archived"), card_width - CARD_DEFAULT_WIDTH2) : ""} - - ${descriptionSvg} - - - ${starAndForkCount} - - ${extraItems} - `); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/generated/repo.js -var GetRepoDocument = graphqlDocument(` +}`);var fetcher=createGraphQLFetcher(GistInfoDocument,"token");var calculatePrimaryLanguage=files=>{const languages={};for(const file of files){if(file.language){languages[file.language.name]=(languages[file. +language.name]??0)+(file.size??0)}}let primaryLanguage=null;let maxSize=-1;for(const[language,size]of Object.entries(languages)){if(size>maxSize){maxSize=size;primaryLanguage=language}}return primaryLanguage}; +var fetchGist=async({id},config2)=>{if(!id){throw CardError.missingParam(["id"],"/api/gist?id=GIST_ID")}const res=await retryer(fetcher,{gistName:id},config2);if(res.data.errors){throw new CardError(res. +data.errors[0]?.message??"Could not fetch gist.",{code:"upstream"})}const{gist:gist2}=res.data.data.viewer;if(!gist2){throw new CardError("Gist not found",{code:"not_found",secondaryMessage:GIST_NOT_FOUND})} +const firstFile=gist2.files?.[0];if(!firstFile?.name){throw new CardError("Gist has no files",{code:"not_found"})}return{name:firstFile.name,nameWithOwner:`${gist2.owner?.login??""}/${firstFile.name}`, +description:gist2.description,language:calculatePrimaryLanguage(gist2.files?.filter(file=>!!file)??[]),starsCount:gist2.stargazerCount,forksCount:gist2.forks.totalCount}};var errorResult=(err,renderOptions)=>{const error2=CardError.from(err);return{status:"error",retryable:error2.retryable,error:{code:error2.code,message:error2.message,secondaryMessage:error2.secondaryMessage, +param:error2.param},content:renderError({message:error2.message,secondaryMessage:error2.secondaryMessage,renderOptions:{...renderOptions,show_repo_link:error2.code!=="missing_param"}})}};var statCardLocales=({name,apostrophe})=>({"statcard.title":{en:`${name}'${apostrophe} GitHub Stats`,ar:`${name} \u0625\u062D\u0635\u0627\u0626\u064A\u0627\u062A \u062C\u064A\u062A \u0647\u0627\u0628`, +az:`${name}'${apostrophe} Hesab\u0131n\u0131n GitHub Statistikas\u0131`,ca:`Estad\xEDstiques de GitHub de ${name}`,cn:`${name} \u7684 GitHub \u7EDF\u8BA1\u6570\u636E`,"zh-tw":`${name} \u7684 GitHub \u7D71\u8A08\u8CC7\u6599`, +cs:`GitHub statistiky u\u017Eivatele ${name}`,de:`${name+apostrophe} GitHub-Statistiken`,sw:`GitHub Stats za ${name}`,ur:`${name} \u06A9\u06D2 \u06AF\u0679 \u06C1\u0628 \u06A9\u06D2 \u0627\u0639\u062F\u0627\u062F \u0648 \u0634\u0645\u0627\u0631`, +bg:`GitHub \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043D\u0430 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B ${name}`,bn:`${name} \u098F\u09B0 GitHub \u09AA\u09B0\u09BF\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u09A8`, +es:`Estad\xEDsticas de GitHub de ${name}`,fa:`\u0622\u0645\u0627\u0631 \u06AF\u06CC\u062A\u200C\u0647\u0627\u0628 ${name}`,fi:`${name}:n GitHub-tilastot`,fr:`Statistiques GitHub de ${name}`,hi:`${name}\ + \u0915\u0947 GitHub \u0906\u0901\u0915\u0921\u093C\u0947`,sa:`${name} \u0907\u0924\u094D\u092F\u0938\u094D\u092F GitHub \u0938\u093E\u0902\u0916\u094D\u092F\u093F\u0915\u0940`,hu:`${name} GitHub stat\ +isztika`,it:`Statistiche GitHub di ${name}`,ja:`${name}\u306E GitHub \u7D71\u8A08`,kr:`${name}\uC758 GitHub \uD1B5\uACC4`,nl:`${name}'${apostrophe} GitHub-statistieken`,"pt-pt":`Estat\xEDsticas do GitHub\ + de ${name}`,"pt-br":`Estat\xEDsticas do GitHub de ${name}`,np:`${name}'${apostrophe} \u0917\u093F\u091F\u0939\u092C \u0924\u0925\u094D\u092F\u093E\u0919\u094D\u0915`,el:`\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC GitHub \u03C4\u03BF\u03C5 ${name}`, +ro:`Statisticile GitHub ale lui ${name}`,ru:`\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 GitHub \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F ${name}`,"uk-u\ +a":`\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 GitHub \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 ${name}`,id:`Statistik GitHub ${name}`,ml:`${name}'${apostrophe}\ + \u0D17\u0D3F\u0D31\u0D4D\u0D31\u0D4D\u0D39\u0D2C\u0D4D \u0D38\u0D4D\u0D25\u0D3F\u0D24\u0D3F\u0D35\u0D3F\u0D35\u0D30\u0D15\u0D4D\u0D15\u0D23\u0D15\u0D4D\u0D15\u0D41\u0D15\u0D7E`,my:`${name} \u101B\u1032\u1037 GitHub\ + \u1021\u1001\u103C\u1031\u1021\u1014\u1031\u1019\u103B\u102C\u1038`,ta:`${name} \u0B95\u0BBF\u0B9F\u0BCD\u0BB9\u0BAA\u0BCD \u0BAA\u0BC1\u0BB3\u0BCD\u0BB3\u0BBF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BCD`, +sk:`GitHub \u0161tatistiky pou\u017E\xEDvate\u013Ea ${name}`,tr:`${name} Hesab\u0131n\u0131n GitHub \u0130statistikleri`,pl:`Statystyki GitHub u\u017Cytkownika ${name}`,uz:`${name}ning GitHub'dagi sta\ +tistikasi`,vi:`Th\u1ED1ng K\xEA GitHub ${name}`,se:`GitHubstatistik f\xF6r ${name}`,he:`\u05E1\u05D8\u05D8\u05D9\u05E1\u05D8\u05D9\u05E7\u05D5\u05EA \u05D4\u05D2\u05D9\u05D8\u05D4\u05D0\u05D1 \u05E9\u05DC ${name}`, +fil:`Mga Stats ng GitHub ni ${name}`,th:`\u0E2A\u0E16\u0E34\u0E15\u0E34 GitHub \u0E02\u0E2D\u0E07 ${name}`,sr:`GitHub \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u043A\u043E\u0440\u0438\u0441\u043D\u0438\u043A\u0430 ${name}`, +"sr-latn":`GitHub statistika korisnika ${name}`,no:`GitHub-statistikk for ${name}`,be:`\u0421\u0442\u0430\u0442\u044B\u0441\u0442\u044B\u043A\u0430 GitHub \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A\u0430 ${name}`}, +"statcard.ranktitle":{en:`${name}'${apostrophe} GitHub Rank`,ar:`${name} \u0625\u062D\u0635\u0627\u0626\u064A\u0627\u062A \u062C\u064A\u062A \u0647\u0627\u0628`,az:`${name}'${apostrophe} Hesab\u0131n\u0131n Git\ +Hub Statistikas\u0131`,ca:`Estad\xEDstiques de GitHub de ${name}`,cn:`${name} \u7684 GitHub \u7EDF\u8BA1\u6570\u636E`,"zh-tw":`${name} \u7684 GitHub \u7D71\u8A08\u8CC7\u6599`,cs:`GitHub statistiky u\u017Ei\ +vatele ${name}`,de:`${name+apostrophe} GitHub-Statistiken`,sw:`GitHub Rank ya ${name}`,ur:`${name} \u06A9\u06CC \u06AF\u0679 \u06C1\u0628 \u0631\u06CC\u0646\u06A9`,bg:`GitHub \u0440\u0430\u043D\u0433 \u043D\u0430 ${name}`, +bn:`${name} \u098F\u09B0 GitHub \u09AA\u09B0\u09BF\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u09A8`,es:`Estad\xEDsticas de GitHub de ${name}`,fa:`\u0631\u062A\u0628\u0647 \u06AF\u06CC\u062A\u200C\u0647\u0627\u0628 ${name}`, +fi:`${name}:n GitHub-sijoitus`,fr:`Statistiques GitHub de ${name}`,hi:`${name} \u0915\u093E GitHub \u0938\u094D\u0925\u093E\u0928`,sa:`${name} \u0907\u0924\u094D\u092F\u0938\u094D\u092F GitHub \u0938\u094D\u0925\u093E\u0928\u092E\u094D`, +hu:`${name} GitHub statisztika`,it:`Statistiche GitHub di ${name}`,ja:`${name} \u306E GitHub \u30E9\u30F3\u30AF`,kr:`${name}\uC758 GitHub \uD1B5\uACC4`,nl:`${name}'${apostrophe} GitHub-statistieken`,"\ +pt-pt":`Estat\xEDsticas do GitHub de ${name}`,"pt-br":`Estat\xEDsticas do GitHub de ${name}`,np:`${name}'${apostrophe} \u0917\u093F\u091F\u0939\u092C \u0924\u0925\u094D\u092F\u093E\u0919\u094D\u0915`, +el:`\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC GitHub \u03C4\u03BF\u03C5 ${name}`,ro:`Rankul GitHub al lui ${name}`,ru:`\u0420\u0435\u0439\u0442\u0438\u043D\u0433 GitHub \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F ${name}`, +"uk-ua":`\u0420\u0435\u0439\u0442\u0438\u043D\u0433 GitHub \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 ${name}`,id:`Statistik GitHub ${name}`,ml:`${name}'${apostrophe} \u0D17\u0D3F\u0D31\u0D4D\u0D31\u0D4D\u0D39\u0D2C\u0D4D\ + \u0D38\u0D4D\u0D25\u0D3F\u0D24\u0D3F\u0D35\u0D3F\u0D35\u0D30\u0D15\u0D4D\u0D15\u0D23\u0D15\u0D4D\u0D15\u0D41\u0D15\u0D7E`,my:`${name} \u101B\u1032\u1037 GitHub \u1021\u1006\u1004\u1037\u103A`,ta:`${name}\ + \u0B95\u0BBF\u0B9F\u0BCD\u0BB9\u0BAA\u0BCD \u0BA4\u0BB0\u0BB5\u0BB0\u0BBF\u0B9A\u0BC8`,sk:`GitHub \u0161tatistiky pou\u017E\xEDvate\u013Ea ${name}`,tr:`${name} Hesab\u0131n\u0131n GitHub Y\u0131ld\u0131zlar\u0131`, +pl:`Statystyki GitHub u\u017Cytkownika ${name}`,uz:`${name}ning GitHub'dagi statistikasi`,vi:`Th\u1ED1ng K\xEA GitHub ${name}`,se:`GitHubstatistik f\xF6r ${name}`,he:`\u05D3\u05E8\u05D2\u05EA \u05D4\u05D2\u05D9\u05D8\u05D4\u05D0\u05D1 \u05E9\u05DC ${name}`, +fil:`Ranggo ng GitHub ni ${name}`,th:`\u0E2D\u0E31\u0E19\u0E14\u0E31\u0E1A GitHub \u0E02\u0E2D\u0E07 ${name}`,sr:`\u0420\u0430\u043D\u043A \u043A\u043E\u0440\u0438\u0441\u043D\u0438\u043A\u0430 ${name}`, +"sr-latn":`Rank korisnika ${name}`,no:`GitHub-statistikk for ${name}`,be:`\u0420\u044D\u0439\u0442\u044B\u043D\u0433 GitHub \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A\u0430 ${name}`}, +"statcard.totalstars":{en:"Total Stars Earned",ar:"\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0646\u062C\u0648\u0645",az:"\xDCmumi Ulduz",ca:"Total d'estrelles",cn:"\u83B7\u6807\u661F\u6570","zh-tw":"\ +\u5F97\u6A19\u661F\u661F\u6578\u91CF\uFF08Star\uFF09",cs:"Celkem hv\u011Bzd",de:"Insgesamt erhaltene Sterne",sw:"Medali(stars) ulizojishindia",ur:"\u06A9\u0644 \u0633\u062A\u0627\u0631\u06D2 \u062D\u0627\u0635\u0644 \u06A9\u06CC\u06D2", +bg:"\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u0438 \u0437\u0432\u0435\u0437\u0434\u0438",bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F Star",es:"Estrellas totales",fa:"\u0645\u062C\u0645\u0648\u0639 \u0633\u062A\u0627\u0631\u0647\u200C\u0647\u0627\u06CC \u062F\u0631\u06CC\u0627\u0641\u062A\u200C\u0634\u062F\u0647", +fi:"Ansaitut t\xE4hdet yhteens\xE4",fr:"Total d'\xE9toiles",hi:"\u0915\u0941\u0932 \u0905\u0930\u094D\u091C\u093F\u0924 \u0938\u093F\u0924\u093E\u0930\u0947",sa:"\u0905\u0930\u094D\u091C\u093F\u0924\u093E\u0903 \u0915\u0941\u0932-\u0924\u093E\u0930\u0915\u093E\u0903", +hu:"Csillagok",it:"Stelle totali",ja:"\u30B9\u30BF\u30FC\u3055\u308C\u305F\u6570",kr:"\uBC1B\uC740 \uC2A4\uD0C0 \uC218",nl:"Totaal Sterren Ontvangen","pt-pt":"Total de estrelas","pt-br":"Total de estr\ +elas",np:"\u0915\u0941\u0932 \u0924\u093E\u0930\u093E\u0939\u0930\u0942",el:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u0391\u03C3\u03C4\u03B5\u03C1\u03B9\u03CE\u03BD",ro:"Total de stele c\xE2\u0219tigate", +ru:"\u0412\u0441\u0435\u0433\u043E \u0437\u0432\u0451\u0437\u0434","uk-ua":"\u0412\u0441\u044C\u043E\u0433\u043E \u0437\u0456\u0440\u043E\u043A",id:"Total Bintang",ml:"\u0D06\u0D15\u0D46 \u0D28\u0D15\u0D4D\u0D37\u0D24\u0D4D\u0D30\u0D19\u0D4D\u0D19\u0D7E", +my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038\u1000\u103C\u101A\u103A\u1019\u103B\u102C\u1038",ta:"\u0B9A\u0BAE\u0BCD\u0BAA\u0BBE\u0BA4\u0BBF\u0BA4\u0BCD\u0BA4 \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0BA8\u0B9F\u0BCD\u0B9A\u0BA4\u0BCD\u0BA4\u0BBF\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BCD", +sk:"Hviezdy",tr:"Toplam Y\u0131ld\u0131z",pl:"Liczba otrzymanych gwiazdek",uz:"Yulduzchalar",vi:"T\u1ED5ng S\u1ED1 Sao",se:"Antal intj\xE4nade stj\xE4rnor",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05DB\u05D5\u05DB\u05D1\u05D9\u05DD \u05E9\u05D4\u05D5\u05E9\u05D2\u05D5", +fil:"Kabuuang Nakuhang Bituin",th:"\u0E14\u0E32\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14\u0E17\u0E35\u0E48\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A",sr:"\u0411\u0440\u043E\u0458 \u043E\u0441\u0432\u043E\u0458\u0435\u043D\u0438\u0445 \u0437\u0432\u0435\u0437\u0434\u0438\u0446\u0430", +"sr-latn":"Broj osvojenih zvezdica",no:"Totalt antall stjerner",be:"\u0417\u0430\u0440\u043E\u0431\u043B\u0435\u043D\u0430 \u0437\u043E\u0440\u0430\u043A \u0430\u0433\u0443\u043B\u0430\u043C"},"statca\ +rd.commits":{en:"Total Commits",ar:"\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0645\u0633\u0627\u0647\u0645\u0627\u062A",az:"\xDCmumi Commit",ca:"Commits totals",cn:"\u7D2F\u8BA1\u63D0\u4EA4\u603B\u6570", +"zh-tw":"\u7D2F\u8A08\u63D0\u4EA4\u6578\u91CF\uFF08Commit\uFF09",cs:"Celkem commit\u016F",de:"Anzahl Commits",sw:"Matendo yako yote",ur:"\u06A9\u0644 \u06A9\u0645\u0679",bg:"\u041E\u0431\u0449\u043E \u0430\u043D\u0433\u0430\u0436\u0438\u043C\u0435\u043D\u0442\u0438", +bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F Commit",es:"Commits totales",fa:"\u0645\u062C\u0645\u0648\u0639 \u06A9\u0627\u0645\u06CC\u062A\u200C\u0647\u0627",fi:"Yhteens\xE4 committeja",fr:"Total d\ +es Commits",hi:"\u0915\u0941\u0932 commits",sa:"\u0915\u0941\u0932-\u0938\u092E\u093F\u0928\u094D\u091A\u092F\u0903",hu:"\xD6sszes commit",it:"Commit totali",ja:"\u5408\u8A08\u30B3\u30DF\u30C3\u30C8\u6570", +kr:"\uC804\uCCB4 \uCEE4\uBC0B \uC218",nl:"Aantal commits","pt-pt":"Total de Commits","pt-br":"Total de Commits",np:"\u0915\u0941\u0932 Commits",el:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF Commits",ro:"To\ +tal Commit-uri",ru:"\u0412\u0441\u0435\u0433\u043E \u043A\u043E\u043C\u043C\u0438\u0442\u043E\u0432","uk-ua":"\u0412\u0441\u044C\u043E\u0433\u043E \u043A\u043E\u043C\u0456\u0442\u0456\u0432",id:"Total\ + Komitmen",ml:"\u0D06\u0D15\u0D46 \u0D15\u0D2E\u0D4D\u0D2E\u0D3F\u0D31\u0D4D\u0D31\u0D41\u0D15\u0D7E",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 Commit \u1019\u103B\u102C\u1038", +ta:`\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B95\u0BAE\u0BBF\u0B9F\u0BCD\u0B95\u0BB3\u0BCD`,sk:"V\u0161etky commity",tr:"Toplam Commit",pl:"Wszystkie commity",uz:"'Commit'lar",vi:"T\u1ED5ng S\u1ED1 Cam K\u1EBFt", +se:"Totalt antal commits",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEcommits",fil:"Kabuuang Commits",th:"Commit \u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",sr:"\u0423\u043A\u0443\u043F\u043D\u043E commit-\u043E\u0432\u0430", +"sr-latn":"Ukupno commit-ova",no:"Totalt antall commits",be:"\u0410\u0433\u0443\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043B\u044C\u043A\u0430\u0441\u0446\u044C \u043A\u0430\u043C\u0456\u0442\u0430\u045E"}, +"statcard.prs":{en:"Total PRs",ar:"\u0645\u062C\u0645\u0648\u0639 \u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628",az:"\xDCmumi PR",ca:"PRs totals",cn:"\u53D1\u8D77\u7684 PR \u603B\u6570", +"zh-tw":"\u62C9\u53D6\u8ACB\u6C42\u6578\u91CF\uFF08PR\uFF09",cs:"Celkem PRs",de:"PRs Insgesamt",sw:"PRs Zote",ur:"\u06A9\u0644 \u067E\u06CC \u0622\u0631\u0632",bg:"\u0417\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0438\u044F", +bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F PR",es:"PRs totales",fa:"\u0645\u062C\u0645\u0648\u0639 Pull Request",fi:"Yhteens\xE4 PR:t",fr:"Total des PRs",hi:"\u0915\u0941\u0932 PR",sa:"\u0915\u0941\u0932-\u092A\u0940\u0906\u0930", +hu:"\xD6sszes PR",it:"PR totali",ja:"\u5408\u8A08 PR",kr:"PR \uD69F\uC218",nl:"Aantal PR's","pt-pt":"Total de PRs","pt-br":"Total de PRs",np:"\u0915\u0941\u0932 PRs",el:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF PRs", +ro:"Total PR-uri",ru:"\u0412\u0441\u0435\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439","uk-ua":"\u0412\u0441\u044C\u043E\u0433\u043E \u0437\u0430\u043F\u0438\u0442\u0456\u0432 \u043D\u0430 \u0437\u043B\u0438\u0442\u0442\u044F", +id:"Total Permintaan Tarik",ml:"\u0D06\u0D15\u0D46 \u0D2A\u0D41\u0D7E \u0D05\u0D2D\u0D4D\u0D2F\u0D7C\u0D24\u0D4D\u0D25\u0D28\u0D15\u0D7E",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 PR \u1019\u103B\u102C\u1038", +ta:`\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B87\u0BB4\u0BC1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD \u0B95\u0BCB\u0BB0\u0BBF\u0B95\u0BCD\u0B95\u0BC8\u0B95\u0BB3\u0BCD`,sk:"V\u0161etky PR",tr:"Toplam PR",pl:"Wsz\ +ystkie PR-y",uz:"'Pull Request'lar",vi:"T\u1ED5ng S\u1ED1 PR",se:"Totalt antal PR",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEPRs",fil:"Kabuuang PRs",th:"PR \u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", +sr:"\u0423\u043A\u0443\u043F\u043D\u043E PR-\u043E\u0432\u0430","sr-latn":"Ukupno PR-ova",no:"Totalt antall PR",be:"\u0410\u0433\u0443\u043B\u0430\u043C \u0437\u0430\u043F\u044B\u0442\u0430\u045E \u043D\u0430 \u0437\u043C\u0435\u043D\u044B, PR\u0430\u045E"}, +"statcard.issues":{en:"Total Issues",ar:"\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u062A\u062D\u0633\u064A\u0646\u0627\u062A",az:"\xDCmumi Problem",ca:"Issues totals",cn:"\u63D0\u51FA\u7684 issue \u603B\u6570", +"zh-tw":"\u63D0\u51FA\u554F\u984C\u6578\u91CF\uFF08Issue\uFF09",cs:"Celkem probl\xE9m\u016F",de:"Anzahl Issues",sw:"Masuala Ibuka",ur:"\u06A9\u0644 \u0645\u0633\u0627\u0626\u0644",bg:"\u0411\u0440\u043E\u0439 \u0432\u044A\u043F\u0440\u043E\u0441\u0438", +bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F Issue",es:"Issues totales",fa:"\u0645\u062C\u0645\u0648\u0639 \u0645\u0633\u0627\u0626\u0644",fi:"Yhteens\xE4 ongelmat",fr:"Nombre total d'incidents",hi:"\ +\u0915\u0941\u0932 \u092E\u0941\u0926\u094D\u0926\u0947(Issues)",sa:"\u0915\u0941\u0932-\u0938\u092E\u0938\u094D\u092F\u093E\u0903",hu:"\xD6sszes hibajegy",it:"Segnalazioni totali",ja:"\u5408\u8A08 issue", +kr:"\uC774\uC288 \uAC1C\uC218",nl:"Aantal kwesties","pt-pt":"Total de Issues","pt-br":"Total de Issues",np:"\u0915\u0941\u0932 \u092E\u0941\u0926\u094D\u0926\u093E\u0939\u0930\u0942",el:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u0396\u03B7\u03C4\u03B7\u03BC\u03AC\ +\u03C4\u03C9\u03BD",ro:"Total Issue-uri",ru:"\u0412\u0441\u0435\u0433\u043E \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432","uk-ua":"\u0412\u0441\u044C\u043E\u0433\u043E \u043F\u0438\u0442\u0430\u043D\u044C", +id:"Total Masalah Dilaporkan",ml:"\u0D06\u0D15\u0D46 \u0D2A\u0D4D\u0D30\u0D36\u0D4D\u0D28\u0D19\u0D4D\u0D19\u0D7E",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038\u1015\u103C\u103F\u1014\u102C\u1019\u103B\u102C\u1038", +ta:`\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BCD\u0B95\u0BB3\u0BCD`,sk:"V\u0161etky probl\xE9my",tr:"Toplam Hata",pl:"Wszystkie problemy",uz:"'Issue'lar",vi:"T\u1ED5ng S\u1ED1 V\u1EA5n \u0110\ +\u1EC1",se:"Total antal issues",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEissues",fil:"Kabuuang mga Isyu",th:"Issue \u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",sr:"\u0423\u043A\u0443\u043F\u043D\u043E \u043F\u0440\u0438\u0458\u0430\u0432\u0459\u0435\u043D\u0438\u0445 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0430", +"sr-latn":"Ukupno prijavljenih problema",no:"Totalt antall issues",be:"\u0423\u0441\u044F\u0433\u043E \u043F\u044B\u0442\u0430\u043D\u043D\u044F\u045E"},"statcard.contribs":{en:"Contributed to (last y\ +ear)",ar:"\u0633\u0627\u0647\u0645 \u0641\u064A (\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0645\u0627\u0636\u064A)",az:"T\xF6hf\u0259 verdi (\xF6t\u0259n il)",ca:"Contribucions (l'any passat)",cn:"\ +\u8D21\u732E\u7684\u9879\u76EE\u6570\uFF08\u53BB\u5E74\uFF09","zh-tw":"\u53C3\u8207\u9805\u76EE\u6578\u91CF\uFF08\u53BB\u5E74\uFF09",cs:"P\u0159isp\u011Bl k (minul\xFD rok)",de:"Beigetragen zu (letzte\ +s Jahr)",sw:"Idadi ya michango (mwaka mzima)",ur:"\u067E\u0686\u06BE\u0644\u06D2 \u0633\u0627\u0644 \u0645\u06CC\u06BA \u062A\u0639\u0627\u0648\u0646 \u06A9\u06CC\u0627",bg:"\u041F\u0440\u0438\u043D\u043E\u0441\u0438 (\u0437\u0430 \u0438\u0437\u043C\u0438\u043D\u0430\u043B\u0430\u0442\u0430 \u0433\u043E\u0434\ +\u0438\u043D\u0430)",bn:"\u0985\u09AC\u09A6\u09BE\u09A8 (\u0997\u09A4 \u09AC\u099B\u09B0)",es:"Contribuciones en (el a\xF1o pasado)",fa:"\u0645\u0634\u0627\u0631\u06A9\u062A \u062F\u0631 (\u0633\u0627\u0644 \u06AF\u0630\u0634\u062A\u0647)", +fi:"Osallistunut (viime vuonna)",fr:"Contribu\xE9 \xE0 (l'ann\xE9e derni\xE8re)",hi:"(\u092A\u093F\u091B\u0932\u0947 \u0935\u0930\u094D\u0937) \u092E\u0947\u0902 \u092F\u094B\u0917\u0926\u093E\u0928 \u0926\u093F\u092F\u093E", +sa:"(\u0917\u0924\u0947 \u0935\u0930\u094D\u0937\u0947) \u092F\u094B\u0917\u0926\u093E\u0928\u092E\u094D \u0915\u0943\u0924\u092E\u094D",hu:"Hozz\xE1j\xE1rul\xE1sok (tavaly)",it:"Ha contribuito a (l'a\ +nno scorso)",ja:"\u8CA2\u732E\u3057\u305F\u30EA\u30DD\u30B8\u30C8\u30EA \uFF08\u6628\u5E74\uFF09",kr:"(\uC791\uB144) \uAE30\uC5EC",nl:"Bijgedragen aan (vorig jaar)","pt-pt":"Contribuiu em (ano passado\ +)","pt-br":"Contribuiu para (ano passado)",np:"\u0915\u0941\u0932 \u092F\u094B\u0917\u0926\u093E\u0928\u0939\u0930\u0942 (\u0917\u0924 \u0935\u0930\u094D\u0937)",el:"\u03A3\u03C5\u03BD\u03B5\u03B9\u03C3\u03C6\u03AD\u03C1\u03B8\u03B7\u03BA\u03B5 \u03C3\u03B5 (\u03C0\u03AD\u03C1\u03C5\u03C3\u03B9)", +ro:"Total Contribuiri",ru:"\u0412\u043D\u0435\u0441\u0435\u043D\u043E \u0432\u043A\u043B\u0430\u0434\u0430 (\u0437\u0430 \u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0433\u043E\u0434)","uk-ua":"\u0417\u0440\u043E\u0431\u043B\u0435\ +\u043D\u043E \u0432\u043D\u0435\u0441\u043E\u043A (\u0437\u0430 \u043C\u0438\u043D\u0443\u043B\u0438\u0439 \u0440\u0456\u043A)",id:"Berkontribusi ke (tahun lalu)",ml:"(\u0D15\u0D34\u0D3F\u0D1E\u0D4D\u0D1E \u0D35\u0D7C\u0D37\u0D24\u0D4D\u0D24\u0D46)\u0D06\u0D15\u0D46 \u0D38\u0D02\u0D2D\u0D3E\u0D35\u0D28\u0D15\u0D7E ", +my:"\u1021\u1000\u1030\u1021\u100A\u102E\u1015\u1031\u1038\u1001\u1032\u1037\u101E\u100A\u103A (\u1015\u103C\u102E\u1038\u1001\u1032\u1037\u101E\u100A\u1037\u103A\u1014\u103E\u1005\u103A)",ta:"(\u0B95\u0B9F\u0BA8\u0BCD\u0BA4 \ +\u0B86\u0BA3\u0BCD\u0B9F\u0BC1) \u0BAA\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BA4\u0BCD\u0BA4\u0BA4\u0BC1",sk:"\xDA\u010Dasti (minul\xFD rok)",tr:"Katk\u0131 Verildi (ge\xE7en y\u0131l)",pl:"Kontrybucje (w z\ +esz\u0142ym roku)",uz:"Hissa qo\u02BBshgan (o'tgan yili)",vi:"\u0110\xE3 \u0110\xF3ng G\xF3p (n\u0103m ngo\xE1i)",se:"Bidragit till (f\xF6rra \xE5ret)",he:"\u05EA\u05E8\u05DD \u05DC... (\u05E9\u05E0\u05D4 \u05E9\u05E2\u05D1\u05E8\u05D4)", +fil:"Nag-ambag sa (nakaraang taon)",th:"\u0E21\u0E35\u0E2A\u0E48\u0E27\u0E19\u0E23\u0E48\u0E27\u0E21\u0E43\u0E19 (\u0E1B\u0E35\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27)",sr:"\u0414\u043E\u043F\u0440\u0438\u043D\u043E\u0441\u0438 (\u043F\u0440\u043E\u0448\u043B\u0430 \u0433\u043E\u0434\u0438\u043D\u0430)", +"sr-latn":"Doprinosi (pro\u0161la godina)",no:"Bidro til (i fjor)",be:"\u0423\u043A\u043B\u0430\u0434 (\u0437\u0430 \u043C\u0456\u043D\u0443\u043B\u044B \u0433\u043E\u0434)"},"statcard.all-time-contri\ +bs":{en:"Contributed to (all time)"},"statcard.reviews":{en:"Total PRs Reviewed",ar:"\u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628 \u0627\u0644\u062A\u064A \u062A\u0645 \u0645\u0631\u0627\u062C\u0639\u062A\u0647\u0627", +az:"N\u0259z\u0259rd\u0259n Ke\xE7iril\u0259n \xDCmumi PR",ca:"Total de PRs revisats",cn:"\u5BA1\u67E5\u7684 PR \u603B\u6570","zh-tw":"\u5BE9\u6838\u7684 PR \u7E3D\u8A08",cs:"Celkov\xFD po\u010Det PR", +de:"Insgesamt \xFCberpr\xFCfte PRs",sw:"Idadi ya PRs zilizopitiliwa upya",ur:"\u06A9\u0644 \u067E\u06CC \u0622\u0631\u0632 \u06A9\u0627 \u062C\u0627\u0626\u0632\u06C1 \u0644\u06CC\u0627",bg:"\u0420\u0430\u0437\u0433\u043B\u0435\u0434\u0430\u043D\ +\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0435",bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F \u09AA\u09C1\u09A8\u09B0\u09BE\u09B2\u09CB\u099A\u09A8\u09BE \u0995\u09B0\u09BE PR", +es:"PR totales revisados",fa:"\u0645\u062C\u0645\u0648\u0639 \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u200C\u0647\u0627\u06CC \u0627\u062F\u063A\u0627\u0645 \u0628\u0631\u0631\u0633\u06CC\u200C\u0634\u062F\u0647", +fi:"Yhteens\xE4 tarkastettuja PR:it\xE4",fr:"Nombre total de PR examin\xE9s",hi:"\u0915\u0941\u0932 PRs \u0915\u0940 \u0938\u092E\u0940\u0915\u094D\u0937\u093E \u0915\u0940 \u0917\u0908",sa:"\u0938\u092E\u0940\u0915\u094D\u0937\u093F\u0924\u093E\ +\u0903 \u0915\u0941\u0932-\u092A\u0940\u0906\u0930",hu:"\xD6sszes ellen\u0151rz\xF6tt PR",it:"PR totali esaminati",ja:"\u30EC\u30D3\u30E5\u30FC\u3055\u308C\u305F PR \u306E\u7DCF\u6570",kr:"\uAC80\uD1A0\uB41C \uCD1D PR", +nl:"Totaal beoordeelde PR's","pt-pt":"Total de PRs revistos","pt-br":"Total de PRs revisados",np:"\u0915\u0941\u0932 \u092A\u0940\u0906\u0930 \u0938\u092E\u0940\u0915\u094D\u0937\u093F\u0924",el:"\u03A3\u03CD\u03BD\u03BF\ +\u03BB\u03BF \u0391\u03BD\u03B1\u03B8\u03B5\u03C9\u03C1\u03B7\u03BC\u03AD\u03BD\u03C9\u03BD PR",ro:"Total PR-uri Revizuite",ru:"\u0412\u0441\u0435\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0440\u043E\u0432\u0435\u0440\u0435\u043D\u043E", +"uk-ua":"\u0412\u0441\u044C\u043E\u0433\u043E \u0437\u0430\u043F\u0438\u0442\u0456\u0432 \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0435\u043D\u043E",id:"Total PR yang Direview",ml:"\u0D06\u0D15\u0D46 \u0D2A\u0D41\u0D7E \u0D05\u0D35\u0D32\u0D4B\u0D15\u0D28\u0D19\u0D4D\u0D19\ +\u0D7E",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 PR \u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1015\u103C\u1014\u103A\u101C\u100A\u103A\u101E\u102F\u1036\u1038\u101E\u1015\u103A\u1001\u1032\u1037\u1019\u103E\u102F", +ta:"\u0BAE\u0BA4\u0BBF\u0BAA\u0BCD\u0BAA\u0BBE\u0BAF\u0BCD\u0BB5\u0BC1 \u0B9A\u0BC6\u0BAF\u0BCD\u0BAF\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0B87\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BB2\u0BCD \u0B95\u0BCB\u0BB0\u0BBF\u0B95\u0BCD\u0B95\u0BC8\u0B95\u0BB3\u0BCD", +sk:"Celkov\xFD po\u010Det PR",tr:"\u0130ncelenen toplam PR",pl:"\u0141\u0105cznie sprawdzonych PR",uz:"Ko\u02BBrib chiqilgan PR-lar soni",vi:"T\u1ED5ng S\u1ED1 PR \u0110\xE3 Xem X\xE9t",se:"Totalt ant\ +al granskade PR",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEPRs \u05E9\u05E0\u05E1\u05E8\u05E7\u05D5",fil:"Kabuuang PR na Na-review",th:"\u0E23\u0E35\u0E27\u0E34\u0E27 PR \u0E41\u0E25\u0E49\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", +sr:"\u0423\u043A\u0443\u043F\u043D\u043E \u043F\u0440\u0435\u0433\u043B\u0435\u0434\u0430\u043D\u0438\u0445 PR-\u043E\u0432\u0430","sr-latn":"Ukupno pregledanih PR-ova",no:"Totalt antall vurderte PR", +be:"\u0410\u0433\u0443\u043B\u0430\u043C \u0440\u0430\u0437\u0433\u043B\u0435\u0434\u0436\u0430\u043D\u0430 PR"},"statcard.discussions-started":{en:"Total Discussions Started",ar:"\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0645\u0646\u0627\u0642\u0634\u0627\u062A \u0627\u0644\u062A\u064A\ + \u0628\u062F\u0623\u0647\u0627",az:"Ba\u015Flad\u0131lan \xDCmumi M\xFCzakir\u0259",ca:"Discussions totals iniciades",cn:"\u53D1\u8D77\u7684\u8BA8\u8BBA\u603B\u6570","zh-tw":"\u767C\u8D77\u7684\u8A0E\u8AD6\u7E3D\u6578", +cs:"Celkem zah\xE1jen\xFDch diskus\xED",de:"Gesamt gestartete Diskussionen",sw:"Idadi ya majadiliano yaliyoanzishwa",ur:"\u06A9\u0644 \u0645\u0628\u0627\u062D\u062B\u06D2 \u0634\u0631\u0648\u0639 \u06A9\u06CC\u06D2", +bg:"\u0417\u0430\u043F\u043E\u0447\u043D\u0430\u0442\u0438 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0438",bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F \u0986\u09B2\u09CB\u099A\u09A8\u09BE \u09B6\u09C1\u09B0\u09C1", +es:"Discusiones totales iniciadas",fa:"\u0645\u062C\u0645\u0648\u0639 \u0628\u062D\u062B\u200C\u0647\u0627\u06CC \u0622\u063A\u0627\u0632\u0634\u062F\u0647",fi:"Aloitetut keskustelut yhteens\xE4",fr:"\ +Nombre total de discussions lanc\xE9es",hi:"\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E\u090F\u0901 \u0936\u0941\u0930\u0942 \u0939\u0941\u0908\u0902",sa:"\u092A\u094D\u0930\u093E\u0930\u092C\u094D\u0927\u093E\u0903 \u0915\u0941\u0932-\u091A\u0930\u094D\u091A\u093E\u0903", +hu:"\xD6sszes megkezdett megbesz\xE9l\xE9s",it:"Discussioni totali avviate",ja:"\u958B\u59CB\u3055\u308C\u305F\u30C7\u30A3\u30B9\u30AB\u30C3\u30B7\u30E7\u30F3\u306E\u7DCF\u6570",kr:"\uC2DC\uC791\uB41C \uD1A0\uB860 \uCD1D \uC218", +nl:"Totaal gestarte discussies","pt-pt":"Total de Discuss\xF5es Iniciadas","pt-br":"Total de Discuss\xF5es Iniciadas",np:"\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E \u0938\u0941\u0930\u0941",el:"\ +\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u03A3\u03C5\u03B6\u03B7\u03C4\u03AE\u03C3\u03B5\u03C9\u03BD \u03C0\u03BF\u03C5 \u039E\u03B5\u03BA\u03AF\u03BD\u03B7\u03C3\u03B1\u03BD",ro:"Total Discu\u021Bii \xCEncepute", +ru:"\u0412\u0441\u0435\u0433\u043E \u043D\u0430\u0447\u0430\u0442\u044B\u0445 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439","uk-ua":"\u0412\u0441\u044C\u043E\u0433\u043E \u0440\u043E\u0437\u043F\u043E\u0447\u0430\u0442\u0438\u0445 \u0434\u0438\u0441\u043A\u0443\u0441\u0456\u0439", +id:"Total Diskusi Dimulai",ml:"\u0D06\u0D30\u0D02\u0D2D\u0D3F\u0D1A\u0D4D\u0D1A \u0D06\u0D32\u0D4B\u0D1A\u0D28\u0D15\u0D7E",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 \u1005\u1010\u1004\u103A\u1001\u1032\u1037\u101E\u1031\u102C \u1006\u103D\u1031\u1038\u1014\u103D\u1031\u1038\u1019\u103E\u102F\u1019\u103B\u102C\u1038", +ta:"\u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0BB5\u0BBF\u0BB5\u0BBE\u0BA4\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95\u0BBF\u0BA9",sk:"Celkov\xFD po\u010Det za\u010Dat\xFDch diskusi\xED", +tr:"Ba\u015Flat\u0131lan Toplam Tart\u0131\u015Fma",pl:"\u0141\u0105cznie rozpocz\u0119tych dyskusji",uz:"Boshlangan muzokaralar soni",vi:"T\u1ED5ng S\u1ED1 Th\u1EA3o Lu\u1EADn B\u1EAFt \u0110\u1EA7u", +se:"Totalt antal diskussioner startade",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05D3\u05D9\u05D5\u05E0\u05D9\u05DD \u05E9\u05D4\u05D5\u05EA\u05D7\u05DC\u05D5",fil:"Kabuuang mga Diskusyon na Sinimulan",th:"\ +\u0E40\u0E23\u0E34\u0E48\u0E21\u0E2B\u0E31\u0E27\u0E02\u0E49\u0E2D\u0E2A\u0E19\u0E17\u0E19\u0E32\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",sr:"\u0423\u043A\u0443\u043F\u043D\u043E \u043F\u043E\u043A\u0440\u0435\u043D\u0443\u0442\u0438\u0445 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0458\u0430", +"sr-latn":"Ukupno pokrenutih diskusija",no:"Totalt antall startede diskusjoner",be:"\u0410\u0433\u0443\u043B\u044C\u043D\u0430\u044F \u043A\u043E\u043B\u044C\u043A\u0430\u0441\u0446\u044C \u043F\u0430\u0447\u0430\u0442\u044B\u0445 \u0430\u0431\u043C\u0435\u0440\u043A\u0430\u0432\u0430\u043D\u043D\u044F\u045E"}, +"statcard.discussions-answered":{en:"Total Discussions Answered",ar:"\u0645\u062C\u0645\u0648\u0639 \u0627\u0644\u0645\u0646\u0627\u0642\u0634\u0627\u062A \u0627\u0644\u0645\u064F\u062C\u0627\u0628\u0629", +az:"Cavabland\u0131r\u0131lan \xDCmumi M\xFCzakir\u0259",ca:"Discussions totals respostes",cn:"\u56DE\u590D\u7684\u8BA8\u8BBA\u603B\u6570","zh-tw":"\u56DE\u8986\u8A0E\u8AD6\u7E3D\u8A08",cs:"Celkem zod\ +pov\u011Bzen\xFDch diskus\xED",de:"Gesamt beantwortete Diskussionen",sw:"Idadi ya majadiliano yaliyojibiwa",ur:"\u06A9\u0644 \u0645\u0628\u0627\u062D\u062B\u06D2 \u062C\u0648\u0627\u0628 \u062F\u06CC\u06D2", +bg:"\u041E\u0442\u0433\u043E\u0432\u043E\u0440\u0435\u043D\u0438 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0438",bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F \u0986\u09B2\u09CB\u099A\u09A8\u09BE \u0989\u09A4\u09CD\u09A4\u09B0", +es:"Discusiones totales respondidas",fa:"\u0645\u062C\u0645\u0648\u0639 \u0628\u062D\u062B\u200C\u0647\u0627\u06CC \u067E\u0627\u0633\u062E\u200C\u062F\u0627\u062F\u0647\u200C\u0634\u062F\u0647",fi:"V\ +astatut keskustelut yhteens\xE4",fr:"Nombre total de discussions r\xE9pondues",hi:"\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E\u0913\u0902 \u0915\u0947 \u0909\u0924\u094D\u0924\u0930",sa:"\u0909\u0924\u094D\u0924\u0930\u093F\ +\u0924\u093E\u0903 \u0915\u0941\u0932-\u091A\u0930\u094D\u091A\u093E\u0903",hu:"\xD6sszes megv\xE1laszolt megbesz\xE9l\xE9s",it:"Discussioni totali risposte",ja:"\u56DE\u7B54\u3055\u308C\u305F\u30C7\u30A3\u30B9\u30AB\u30C3\u30B7\u30E7\u30F3\u306E\u7DCF\u6570", +kr:"\uB2F5\uBCC0\uB41C \uD1A0\uB860 \uCD1D \uC218",nl:"Totaal beantwoorde discussies","pt-pt":"Total de Discuss\xF5es Respondidas","pt-br":"Total de Discuss\xF5es Respondidas",np:"\u0915\u0941\u0932 \u091A\u0930\u094D\u091A\u093E \u0909\u0924\u094D\u0924\u0930", +el:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u03A3\u03C5\u03B6\u03B7\u03C4\u03AE\u03C3\u03B5\u03C9\u03BD \u03C0\u03BF\u03C5 \u0391\u03C0\u03B1\u03BD\u03C4\u03AE\u03B8\u03B7\u03BA\u03B1\u03BD",ro:"Total R\ +\u0103spunsuri La Discu\u021Bii",ru:"\u0412\u0441\u0435\u0433\u043E \u043E\u0442\u0432\u0435\u0447\u0435\u043D\u043D\u044B\u0445 \u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439","uk-ua":"\ +\u0412\u0441\u044C\u043E\u0433\u043E \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0435\u0439 \u043D\u0430 \u0434\u0438\u0441\u043A\u0443\u0441\u0456\u0457",id:"Total Diskusi Dibalas",ml:"\u0D09\u0D24\u0D4D\u0D24\u0D30\u0D02 \u0D28\ +\u0D7D\u0D15\u0D3F\u0D2F \u0D06\u0D32\u0D4B\u0D1A\u0D28\u0D15\u0D7E",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 \u1015\u103C\u1014\u103A\u101C\u100A\u103A\u1016\u103C\u1031\u1000\u103C\u102C\u1038\u1001\u1032\u1037\u101E\u1031\u102C \u1006\u103D\u1031\u1038\u1014\u103D\u1031\u1038\u1019\u103E\u102F\u1019\u103B\u102C\u1038", +ta:"\u0BAA\u0BA4\u0BBF\u0BB2\u0BB3\u0BBF\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 \u0BB5\u0BBF\u0BB5\u0BBE\u0BA4\u0B99\u0BCD\u0B95\u0BB3\u0BCD",sk:"Celkov\xFD \ +po\u010Det zodpovedan\xFDch diskusi\xED",tr:"Toplam Cevaplanan Tart\u0131\u015Fma",pl:"\u0141\u0105cznie odpowiedzianych dyskusji",uz:"Javob berilgan muzokaralar soni",vi:"T\u1ED5ng S\u1ED1 Th\u1EA3o Lu\u1EADn \u0110\xE3 Tr\u1EA3 L\u1EDDi", +se:"Totalt antal diskussioner besvarade",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05D3\u05D9\u05D5\u05E0\u05D9\u05DD \u05E9\u05E0\u05E2\u05E0\u05D5",fil:"Kabuuang mga Diskusyon na Sinagot",th:"\u0E15\u0E2D\u0E1A\u0E01\u0E25\u0E31\u0E1A\u0E2B\u0E31\u0E27\ +\u0E02\u0E49\u0E2D\u0E2A\u0E19\u0E17\u0E19\u0E32\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",sr:"\u0423\u043A\u0443\u043F\u043D\u043E \u043E\u0434\u0433\u043E\u0432\u043E\u0440\u0435\u043D\u0438\u0445 \u0434\u0438\u0441\u043A\u0443\u0441\u0438\u0458\u0430", +"sr-latn":"Ukupno odgovorenih diskusija",no:"Totalt antall besvarte diskusjoner",be:"\u0423\u0441\u044F\u0433\u043E \u0430\u0434\u043A\u0430\u0437\u0430\u045E \u0443 \u0430\u0431\u043C\u0435\u0440\u043A\u0430\u0432\u0430\u043D\u043D\u044F\u0445"}, +"statcard.prs-authored":{en:"PRs Created","zh-tw":"\u5EFA\u7ACB\u7684\u62C9\u53D6\u8ACB\u6C42"},"statcard.prs-commented":{en:"PRs Commented","zh-tw":"\u53C3\u8207\u8A0E\u8AD6\u7684\u62C9\u53D6\u8ACB\u6C42"}, +"statcard.prs-reviewed":{en:"PRs Reviewed","zh-tw":"\u5BE9\u6838\u7684\u62C9\u53D6\u8ACB\u6C42"},"statcard.issues-authored":{en:"Issues Created","zh-tw":"\u5EFA\u7ACB\u7684\u8B70\u984C"},"statcard.iss\ +ues-commented":{en:"Issues Commented","zh-tw":"\u53C3\u8207\u8A0E\u8AD6\u7684\u8B70\u984C"},"statcard.contributions":{en:"Total Contributions","zh-tw":"\u7E3D\u8CA2\u737B\u6578\u91CF"},"statcard.prs-m\ +erged":{en:"Total PRs Merged",ar:"\u0645\u062C\u0645\u0648\u0639 \u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628 \u0627\u0644\u0645\u064F\u062F\u0645\u062C\u0629",az:"Birl\u0259\u015Fdirilmi\u015F \xDCmum\ +i PR",ca:"PRs totals fusionats",cn:"\u5408\u5E76\u7684 PR \u603B\u6570","zh-tw":"\u5408\u4F75\u7684 PR \u7E3D\u8A08",cs:"Celkem slou\u010Den\xFDch PR",de:"Insgesamt zusammengef\xFChrte PRs",sw:"Idadi \ +ya PRs zilizounganishwa",ur:"\u06A9\u0644 \u067E\u06CC \u0622\u0631\u0632 \u0636\u0645 \u06A9\u06CC\u06D2",bg:"\u0421\u043B\u044F\u0442\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\u043D\u0438\u044F", +bn:"\u09B8\u09B0\u09CD\u09AC\u09AE\u09CB\u099F PR \u098F\u0995\u09A4\u09CD\u09B0\u09C0\u0995\u09C3\u09A4",es:"PR totales fusionados",fa:"\u0645\u062C\u0645\u0648\u0639 \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u200C\u0647\u0627\u06CC \u0627\u062F\u063A\u0627\u0645 \u0634\u062F\u0647", +fi:"Yhteens\xE4 yhdistetyt PR:t",fr:"Nombre total de PR fusionn\xE9s",hi:"\u0915\u0941\u0932 PR \u0915\u093E \u0935\u093F\u0932\u092F",sa:"\u0935\u093F\u0932\u0940\u0928\u093E\u0903 \u0915\u0941\u0932-\u092A\u0940\u0906\u0930", +hu:"\xD6sszes egyes\xEDtett PR",it:"PR totali uniti",ja:"\u30DE\u30FC\u30B8\u3055\u308C\u305F PR \u306E\u7DCF\u6570",kr:"\uBCD1\uD569\uB41C \uCD1D PR",nl:"Totaal samengevoegde PR's","pt-pt":"Total de \ +PRs Fundidos","pt-br":"Total de PRs Integrados",np:"\u0915\u0941\u0932 \u0935\u093F\u0932\u092F\u093F\u0924 PRs",el:"\u03A3\u03CD\u03BD\u03BF\u03BB\u03BF \u03A3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03C5\u03BC\u03AD\u03BD\u03C9\u03BD PR", +ro:"Total PR-uri Fuzionate",ru:"\u0412\u0441\u0435\u0433\u043E \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432","uk-ua":"\u0412\u0441\u044C\u043E\u0433\ +\u043E \u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432",id:"Total PR Digabungkan",my:"\u1005\u102F\u1005\u102F\u1015\u1031\u102B\u1004\u103A\u1038 \u1015\u1031\u102B\u1004\u103A\u1038\u1005\u100A\u103A\u1038\u1001\u1032\u1037\u101E\u1031\u102C PR \u1019\u103B\u102C\u1038", +ta:"\u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F \u0BAE\u0BCA\u0BA4\u0BCD\u0BA4 PR\u0B95\u0BB3\u0BCD",sk:"Celkov\xFD po\u010Det zl\xFA\u010Den\xFDch PR",tr:"Toplam Birle\u015Fti\ +rilmi\u015F PR",pl:"\u0141\u0105cznie po\u0142\u0105czonych PR",uz:"Birlangan PR-lar soni",vi:"T\u1ED5ng S\u1ED1 PR \u0110\xE3 H\u1EE3p Nh\u1EA5t",se:"Totalt antal sammanfogade PR",he:"\u05E1\u05DA \u05DB\u05DC \u05D4\u05BEPRs \u05E9\u05E9\u05D5\ +\u05DC\u05D1\u05D5",fil:"Kabuuang mga PR na Pinagsama",th:"PR \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01 Merged \u0E41\u0E25\u0E49\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",sr:"\u0423\u043A\u0443\u043F\u043D\u043E \u0441\u043F\u043E\u0458\u0435\u043D\u0438\u0445 PR-\u043E\u0432\u0430", +"sr-latn":"Ukupno spojenih PR-ova",no:"Totalt antall sammensl\xE5tte PR",be:"\u0423\u0441\u044F\u0433\u043E PR \u043F\u0440\u044B\u043D\u044F\u0442\u0430"},"statcard.prs-merged-percentage":{en:"Merged\ + PRs Percentage",ar:"\u0646\u0633\u0628\u0629 \u0637\u0644\u0628\u0627\u062A \u0627\u0644\u0633\u062D\u0628 \u0627\u0644\u0645\u064F\u062F\u0645\u062C\u0629",az:"Birl\u0259\u015Fdirilmi\u015F PR-lar\u0131n Faizi", +ca:"Percentatge de PRs fusionats",cn:"\u88AB\u5408\u5E76\u7684 PR \u5360\u6BD4","zh-tw":"\u5408\u4F75\u7684 PR \u767E\u5206\u6BD4",cs:"Slou\u010Den\xE9 PRs v procentech",de:"Zusammengef\xFChrte PRs in Pr\ +ozent",sw:"Asilimia ya PRs zilizounganishwa",ur:"\u0636\u0645 \u06A9\u06CC\u06D2 \u06AF\u0626\u06D2 \u067E\u06CC \u0622\u0631\u0632 \u06A9\u06CC \u0634\u0631\u062D",bg:"\u041F\u0440\u043E\u0446\u0435\u043D\u0442 \u0441\u043B\u044F\u0442\u0438 \u0437\u0430\u044F\u0432\u043A\u0438 \u0437\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u044F\ +\u043D\u0438\u044F",bn:"PR \u098F\u0995\u09A4\u09CD\u09B0\u09C0\u0995\u09B0\u09A3\u09C7\u09B0 \u09B6\u09A4\u09BE\u0982\u09B6",es:"Porcentaje de PR fusionados",fa:"\u062F\u0631\u0635\u062F \u062F\u0631\u062E\u0648\u0627\u0633\u062A\u200C\u0647\u0627\u06CC \u0627\u062F\u063A\u0627\u0645\u200C\u0634\u062F\u0647", +fi:"Yhdistettyjen PR:ien prosentti",fr:"Pourcentage de PR fusionn\xE9s",hi:"\u092E\u0930\u094D\u091C \u0915\u093F\u090F \u0917\u090F PRs \u092A\u094D\u0930\u0924\u093F\u0936\u0924",sa:"\u0935\u093F\u0932\u0940\u0928-\u092A\u0940\u0906\u0930 \u092A\u094D\u0930\u0924\ +\u093F\u0936\u0924\u092E\u094D",hu:"Egyes\xEDtett PR-k sz\xE1zal\xE9ka",it:"Percentuale di PR uniti",ja:"\u30DE\u30FC\u30B8\u3055\u308C\u305F PR \u306E\u5272\u5408",kr:"\uBCD1\uD569\uB41C PR\uC758 \uBE44\uC728", +nl:"Percentage samengevoegde PR's","pt-pt":"Percentagem de PRs Fundidos","pt-br":"Porcentagem de PRs Integrados",np:"PR \u092E\u0930\u094D\u091C \u0917\u0930\u093F\u090F\u0915\u094B \u092A\u094D\u0930\u0924\u093F\u0936\u0924", +el:"\u03A0\u03BF\u03C3\u03BF\u03C3\u03C4\u03CC \u03A3\u03C5\u03B3\u03C7\u03C9\u03BD\u03B5\u03C5\u03BC\u03AD\u03BD\u03C9\u03BD PR",ro:"Procentaj PR-uri Fuzionate",ru:"\u041F\u0440\u043E\u0446\u0435\u043D\u0442 \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432", +"uk-ua":"\u0412\u0456\u0434\u0441\u043E\u0442\u043E\u043A \u043E\u0431'\u0454\u0434\u043D\u0430\u043D\u0438\u0445 \u0437\u0430\u043F\u0438\u0442\u0456\u0432",id:"Persentase PR Digabungkan",my:"PR \u1019\u103B\u102C\u1038\ +\u1000\u102D\u102F \u1015\u1031\u102B\u1004\u103A\u1038\u1005\u100A\u103A\u1038\u1001\u1032\u1037\u101E\u1031\u102C \u101B\u102C\u1001\u102D\u102F\u1004\u103A\u1014\u103E\u102F\u1014\u103A\u1038",ta:"\ +\u0B87\u0BA3\u0BC8\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F PR\u0B95\u0BB3\u0BCD \u0B9A\u0BA4\u0BB5\u0BC0\u0BA4\u0BAE\u0BCD",sk:"Percento zl\xFA\u010Den\xFDch PR",tr:"Birle\u015Ftirilmi\u015F PR Y\xFC\ +zdesi",pl:"Procent po\u0142\u0105czonych PR",uz:"Birlangan PR-lar foizi",vi:"T\u1EF7 L\u1EC7 PR \u0110\xE3 H\u1EE3p Nh\u1EA5t",se:"Procent av sammanfogade PR",he:"\u05D0\u05D7\u05D5\u05D6 \u05D4\u05BEPRs \u05E9\u05E9\u05D5\u05DC\u05D1\u05D5", +fil:"Porsyento ng mga PR na Pinagsama",th:"\u0E40\u0E1B\u0E2D\u0E23\u0E4C\u0E40\u0E0B\u0E47\u0E19\u0E15\u0E4C PR \u0E17\u0E35\u0E48\u0E16\u0E39\u0E01 Merged \u0E41\u0E25\u0E49\u0E27\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14", +sr:"\u041F\u0440\u043E\u0446\u0435\u043D\u0430\u0442 \u0441\u043F\u043E\u0458\u0435\u043D\u0438\u0445 PR-\u043E\u0432\u0430","sr-latn":"Procenat spojenih PR-ova",no:"Prosentandel sammensl\xE5tte PR",be:"\ +\u0410\u0434\u0441\u043E\u0442\u0430\u043A \u0430\u0431'\u044F\u0434\u043D\u0430\u043D\u044B\u0445 PR"}});var repoCardLocales={"repocard.template":{en:"Template",ar:"\u0642\u0627\u0644\u0628",az:"\u015Eabl\ +on",bg:"\u0428\u0430\u0431\u043B\u043E\u043D",bn:"\u099F\u09C7\u09AE\u09AA\u09CD\u09B2\u09C7\u099F",ca:"Plantilla",cn:"\u6A21\u677F","zh-tw":"\u6A21\u677F",cs:"\u0160ablona",de:"Vorlage",sw:"Kigezo",ur:"\ +\u0633\u0627\u0646\u0686\u06C1",es:"Plantilla",fa:"\u0627\u0644\u06AF\u0648",fi:"Malli",fr:"Mod\xE8le",hi:"\u0916\u093E\u0915\u093E",sa:"\u092A\u094D\u0930\u093E\u0930\u0942\u092A\u092E\u094D",hu:"Sab\ +lon",it:"Template",ja:"\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8",kr:"\uD15C\uD50C\uB9BF",nl:"Sjabloon","pt-pt":"Modelo","pt-br":"Modelo",np:"\u091F\u0947\u092E\u094D\u092A\u0932\u0947\u091F",el:"\u03A0\u03C1\u03CC\u03C4\u03C5\u03C0\u03BF", +ro:"\u0218ablon",ru:"\u0428\u0430\u0431\u043B\u043E\u043D","uk-ua":"\u0428\u0430\u0431\u043B\u043E\u043D",id:"Pola",ml:"\u0D1F\u0D46\u0D02\u0D2A\u0D4D\u0D32\u0D47\u0D31\u0D4D\u0D31\u0D4D",my:"\u1015\u102F\u1036\u1005\u1036", +ta:`\u0B9F\u0BC6\u0BAE\u0BCD\u0BAA\u0BCD\u0BB3\u0BC7\u0B9F\u0BCD`,sk:"\u0160abl\xF3na",tr:"\u015Eablon",pl:"Szablony",uz:"Shablon",vi:"M\u1EABu",se:"Mall",he:"\u05EA\u05D1\u05E0\u05D9\u05EA",fil:"Sule\ +ras",th:"\u0E40\u0E17\u0E21\u0E40\u0E1E\u0E25\u0E15",sr:"\u0428\u0430\u0431\u043B\u043E\u043D","sr-latn":"\u0160ablon",no:"Mal",be:"\u0428\u0430\u0431\u043B\u043E\u043D"},"repocard.archived":{en:"Arch\ +ived",ar:"\u0645\u064F\u0624\u0631\u0634\u0641",az:"Arxiv",bg:"\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u0438",bn:"\u0986\u09B0\u09CD\u0995\u09BE\u0987\u09AD\u09A1",ca:"Arxivats",cn:"\u5DF2\u5F52\u6863", +"zh-tw":"\u5DF2\u5C01\u5B58",cs:"Archivov\xE1no",de:"Archiviert",sw:"Hifadhiwa kwenye kumbukumbu",ur:"\u0645\u062D\u0641\u0648\u0638 \u0634\u062F\u06C1",es:"Archivados",fa:"\u0628\u0627\u06CC\u06AF\u0627\u0646\u06CC\u200C\u0634\u062F\u0647", +fi:"Arkistoitu",fr:"Archiv\xE9",hi:"\u0938\u0902\u0917\u094D\u0930\u0939\u0940\u0924",sa:"\u0938\u0902\u0917\u0943\u0939\u0940\u0924\u092E\u094D",hu:"Archiv\xE1lt",it:"Archiviata",ja:"\u30A2\u30FC\u30AB\u30A4\u30D6\u6E08\u307F", +kr:"\uBCF4\uAD00\uB428",nl:"Gearchiveerd","pt-pt":"Arquivados","pt-br":"Arquivados",np:"\u0905\u092D\u093F\u0932\u0947\u0916 \u0930\u093E\u0916\u093F\u092F\u094B",el:"\u0391\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03B7\u03BC\u03AD\u03BD\u03B1", +ro:"Arhivat",ru:"\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D","uk-ua":"\u0410\u0440\u0445\u0438\u0432\u043E\u0432\u0430\u043D\u0438\u0439",id:"Arsip",ml:"\u0D36\u0D47\u0D16\u0D30\u0D3F\u0D1A\u0D4D\u0D1A\u0D24\u0D4D", +my:"\u101E\u102D\u102F\u101C\u103E\u1031\u102C\u1004\u103A\u1015\u103C\u102E\u1038",ta:`\u0B95\u0BBE\u0BAA\u0BCD\u0BAA\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1`, +sk:"Archivovan\xE9",tr:"Ar\u015Fiv",pl:"Zarchiwizowano",uz:"Arxivlangan",vi:"\u0110\xE3 L\u01B0u Tr\u1EEF",se:"Arkiverade",he:"\u05D2\u05E0\u05D5\u05D6",fil:"Naka-arkibo",th:"\u0E40\u0E01\u0E47\u0E1A\u0E16\u0E32\u0E27\u0E23", +sr:"\u0410\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u043E","sr-latn":"Arhivirano",no:"Arkivert",be:"\u0410\u0440\u0445\u0456\u0432\u0430\u0432\u0430\u043D\u044B"},"repocard.prs-authored":{en:"m\ +y created PRs","zh-tw":"\u6211\u6240\u5275\u5EFA\u7684\u62C9\u53D6\u8ACB\u6C42"},"repocard.prs-commented":{en:"my commented PRs","zh-tw":"\u6211\u6240\u53C3\u8207\u7684\u62C9\u53D6\u8ACB\u6C42"},"repo\ +card.prs-reviewed":{en:"my reviewed PRs","zh-tw":"\u6211\u6240\u5BE9\u6838\u7684\u62C9\u53D6\u8ACB\u6C42"},"repocard.issues-authored":{en:"my created issues","zh-tw":"\u6211\u6240\u5275\u5EFA\u7684\u8B70\u984C"}, +"repocard.issues-commented":{en:"my commented issues","zh-tw":"\u6211\u6240\u53C3\u8207\u7684\u8B70\u984C"}};var langCardLocales={"langcard.title":{en:"Most Used Languages",ar:"\u0623\u0643\u062B\u0631 \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0633\u062A\u062E\u062F\u0627\u0645\u064B\u0627", +az:"\u018Fn \xC7ox \u0130stifad\u0259 Olunan Dill\u0259r",ca:"Llenguatges m\xE9s utilitzats",cn:"\u6700\u5E38\u7528\u7684\u8BED\u8A00","zh-tw":"\u6700\u5E38\u7528\u7684\u8A9E\u8A00",cs:"Nejpou\u017E\xEDvan\u011Bj\u0161\ +\xED jazyky",de:"Meist verwendete Sprachen",bg:"\u041D\u0430\u0439-\u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0435\u0437\u0438\u0446\u0438",bn:"\u09B8\u09B0\u09CD\u09AC\u09BE\u09A7\u09BF\u0995 \u09AC\u09CD\u09AF\u09AC\u09B9\u09C3\u09A4 \u09AD\u09BE\u09B7\u09BE \u09B8\u09AE\u09C2\u09B9", +sw:"Lugha zilizotumika zaidi",ur:"\u0633\u0628 \u0633\u06D2 \u0632\u06CC\u0627\u062F\u06C1 \u0627\u0633\u062A\u0639\u0645\u0627\u0644 \u0634\u062F\u06C1 \u0632\u0628\u0627\u0646\u06CC\u06BA",es:"Lengu\ +ajes m\xE1s usados",fa:"\u0632\u0628\u0627\u0646\u200C\u0647\u0627\u06CC \u067E\u0631\u06A9\u0627\u0631\u0628\u0631\u062F",fi:"K\xE4ytetyimm\xE4t kielet",fr:"Langages les plus utilis\xE9s",hi:"\u0938\u0930\u094D\u0935\u093E\u0927\u093F\ +\u0915 \u092A\u094D\u0930\u092F\u0941\u0915\u094D\u0924 \u092D\u093E\u0937\u093E",sa:"\u0938\u0930\u094D\u0935\u093E\u0927\u093F\u0915-\u092A\u094D\u0930\u092F\u0941\u0915\u094D\u0924\u093E\u0903 \u092D\u093E\u0937\u093E\u0903", +hu:"Leggyakrabban haszn\xE1lt nyelvek",it:"Linguaggi pi\xF9 utilizzati",ja:"\u6700\u3082\u3088\u304F\u4F7F\u3063\u3066\u3044\u308B\u8A00\u8A9E",kr:"\uAC00\uC7A5 \uB9CE\uC774 \uC0AC\uC6A9\uB41C \uC5B8\uC5B4", +nl:"Meest gebruikte talen","pt-pt":"Linguagens mais usadas","pt-br":"Linguagens mais usadas",np:"\u0905\u0927\u093F\u0915 \u092A\u094D\u0930\u092F\u094B\u0917 \u0917\u0930\u093F\u090F\u0915\u094B \u092D\u093E\u0937\u093E\u0939\u0930\u0942", +el:"\u039F\u03B9 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03BF \u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03BF\u03CD\u03BC\u03B5\u03BD\u03B5\u03C2 \u03B3\u03BB\u03CE\u03C3\u03C3\u03B5\u03C2", +ro:"Cele Mai Folosite Limbaje",ru:"\u041D\u0430\u0438\u0431\u043E\u043B\u0435\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435 \u044F\u0437\u044B\u043A\u0438","uk-ua":"\u041D\u0430\ +\u0439\u0431\u0456\u043B\u044C\u0448 \u0432\u0438\u043A\u043E\u0440\u0438\u0441\u0442\u043E\u0432\u0443\u0432\u0430\u043D\u0456 \u043C\u043E\u0432\u0438",id:"Bahasa Yang Paling Banyak Digunakan",ml:"\u0D15\ +\u0D42\u0D1F\u0D41\u0D24\u0D7D \u0D09\u0D2A\u0D2F\u0D4B\u0D17\u0D3F\u0D1A\u0D4D\u0D1A \u0D2D\u0D3E\u0D37\u0D15\u0D7E",my:"\u1021\u1019\u103B\u102C\u1038\u1006\u102F\u1036\u1038\u1021\u101E\u102F\u1036\u1038\u1015\u103C\u102F\u101E\u1031\u102C\u1018\u102C\u101E\u102C\u1005\u1000\u102C\u1038\u1019\u103B\u102C\u1038", +ta:`\u0B85\u0BA4\u0BBF\u0B95\u0BAE\u0BCD \u0BAA\u0BAF\u0BA9\u0BCD\u0BAA\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BAA\u0BCD\u0BAA\u0B9F\u0BC1\u0BAE\u0BCD \u0BAE\u0BCA\u0BB4\u0BBF\u0B95\u0BB3\u0BCD`,sk:"Najviac \ +pou\u017E\xEDvan\xE9 jazyky",tr:"En \xC7ok Kullan\u0131lan Diller",pl:"Najcz\u0119\u015Bciej u\u017Cywane j\u0119zyki",uz:"Eng ko\u02BBp ishlatiladigan tillar",vi:"Ng\xF4n Ng\u1EEF Th\u01B0\u1EDDng S\u1EED D\u1EE5ng", +se:"Mest anv\xE4nda spr\xE5ken",he:"\u05D4\u05E9\u05E4\u05D5\u05EA \u05D4\u05DB\u05D9 \u05DE\u05E9\u05D5\u05DE\u05E9\u05D5\u05EA",fil:"Mga Pinakamadalas na Ginagamit na Wika",th:"\u0E20\u0E32\u0E29\u0E32\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E1A\u0E48\u0E2D\u0E22\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14", +sr:"\u041D\u0430\u0458\u043A\u043E\u0440\u0438\u0448\u045B\u0435\u043D\u0438\u0458\u0438 \u0458\u0435\u0437\u0438\u0446\u0438","sr-latn":"Najkori\u0161\u0107eniji jezici",no:"Mest brukte spr\xE5k",be:"\ +\u041D\u0430\u0439\u0431\u043E\u043B\u044C\u0448 \u0443\u0436\u044B\u0432\u0430\u043D\u044B\u044F \u043C\u043E\u0432\u044B"},"langcard.nodata":{en:"No languages data.",ar:"\u0644\u0627 \u062A\u0648\u062C\u062F \u0628\u064A\u0627\u0646\u0627\u062A \u0644\u0644\u063A\u0627\u062A.", +az:"Dil m\u0259lumat\u0131 yoxdur.",ca:"Sense dades d'idiomes",cn:"\u6CA1\u6709\u8BED\u8A00\u6570\u636E\u3002","zh-tw":"\u6C92\u6709\u8A9E\u8A00\u8CC7\u6599\u3002",cs:"\u017D\xE1dn\xE9 jazykov\xE9 \xFAdaje.", +de:"Keine Sprachdaten.",bg:"\u041D\u044F\u043C\u0430 \u0434\u0430\u043D\u043D\u0438 \u0437\u0430 \u0435\u0437\u0438\u0446\u0438",bn:"\u0995\u09CB\u09A8 \u09AD\u09BE\u09B7\u09BE\u09B0 \u09A1\u09C7\u099F\u09BE \u09A8\u09C7\u0987\u0964", +sw:"Hakuna kumbukumbu ya lugha zozote",ur:"\u06A9\u0648\u0626\u06CC \u0632\u0628\u0627\u0646 \u06A9\u0627 \u0688\u06CC\u0679\u0627 \u0646\u06C1\u06CC\u06BA\u06D4",es:"Sin datos de idiomas.",fa:"\u062F\u0627\u062F\u0647\u200C\u0627\ +\u06CC \u0628\u0631\u0627\u06CC \u0632\u0628\u0627\u0646\u200C\u0647\u0627 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F.",fi:"Ei kielitietoja.",fr:"Aucune donn\xE9e sur les langues.",hi:"\u0915\u094B\ +\u0908 \u092D\u093E\u0937\u093E \u0921\u0947\u091F\u093E \u0928\u0939\u0940\u0902",sa:"\u092D\u093E\u0937\u093E-\u0935\u093F\u0935\u0930\u0923\u0902 \u0928\u093E\u0938\u094D\u0924\u093F\u0964",hu:"Nin\ +csenek nyelvi adatok.",it:"Nessun dato sulle lingue.",ja:"\u8A00\u8A9E\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093\u3002",kr:"\uC5B8\uC5B4 \uB370\uC774\uD130\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.", +nl:"Ingen sprogdata.","pt-pt":"Sem dados de linguagens.","pt-br":"Sem dados de linguagens.",np:"\u0915\u0941\u0928\u0948 \u092D\u093E\u0937\u093E \u0921\u093E\u091F\u093E \u091B\u0948\u0928\u0964",el:"\ +\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B5\u03B4\u03BF\u03BC\u03AD\u03BD\u03B1 \u03B3\u03BB\u03C9\u03C3\u03C3\u03CE\u03BD.",ro:"Lipsesc date despre limb\u0103.",ru:"\ +\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445 \u043E \u044F\u0437\u044B\u043A\u0430\u0445.","uk-ua":"\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445 \u043F\u0440\u043E \u043C\u043E\u0432\u0438.", +id:"Tidak ada data bahasa.",ml:"\u0D2D\u0D3E\u0D37\u0D3E \u0D21\u0D3E\u0D31\u0D4D\u0D31\u0D2F\u0D3F\u0D32\u0D4D\u0D32.",my:"\u1012\u1031\u1010\u102C \u1019\u101B\u103E\u102D\u1015\u102B\u104B",ta:`\u0BAE\u0BCA\u0BB4\ +\u0BBF \u0BA4\u0BB0\u0BB5\u0BC1 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.`,sk:"\u017Diadne \xFAdaje o jazykoch.",tr:"Dil verisi yok.",pl:"Brak danych dotycz\u0105cych j\u0119zyk\xF3w.",uz:"Til haqida ma'lumot y\ +o'q.",vi:"Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u ng\xF4n ng\u1EEF.",se:"Inga spr\xE5kdata.",he:"\u05D0\u05D9\u05DF \u05E0\u05EA\u05D5\u05E0\u05D9 \u05E9\u05E4\u05D5\u05EA",fil:"Walang datos ng lenggwahe.",th:"\ +\u0E44\u0E21\u0E48\u0E21\u0E35\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E20\u0E32\u0E29\u0E32",sr:"\u041D\u0435\u043C\u0430 \u043F\u043E\u0434\u0430\u0442\u0430\u043A\u0430 \u043E \u0458\u0435\u0437\u0438\u0446\u0438\u043C\u0430.", +"sr-latn":"Nema podataka o jezicima.",no:"Ingen spr\xE5kdata.",be:"\u041D\u044F\u043C\u0430 \u0434\u0430\u0434\u0437\u0435\u043D\u044B\u0445 \u043F\u0440\u0430 \u043C\u043E\u0432\u044B."}};var wakatimeCardLocales={ +"wakatimecard.title":{en:"WakaTime Stats",ar:"\u0625\u062D\u0635\u0627\u0626\u064A\u0627\u062A \u0648\u0627\u0643\u0627 \u062A\u0627\u064A\u0645",az:"WakaTime Statistikas\u0131",ca:"Estad\xEDstiques de W\ +akaTime",cn:"WakaTime \u5468\u7EDF\u8BA1","zh-tw":"WakaTime \u5468\u7D71\u8A08",cs:"Statistiky WakaTime",de:"WakaTime Status",sw:"Takwimu ya WakaTime",ur:"\u0648\u06A9\u0627\u0679\u0627\u0626\u0645 \u06A9\u06D2 \u0627\u0639\u062F\u0627\u062F \u0648 \u0634\u0645\u0627\u0631", +bg:"WakaTime \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430",bn:"WakaTime \u09B8\u09CD\u099F\u09CD\u09AF\u09BE\u099F\u09BE\u09B8",es:"Estad\xEDsticas de WakaTime",fa:"\u0622\u0645\u0627\u0631 WakaTime", +fi:"WakaTime-tilastot",fr:"Statistiques de WakaTime",hi:"\u0935\u093E\u0915\u093E\u091F\u093E\u0907\u092E \u0906\u0901\u0915\u0921\u093C\u0947",sa:"WakaTime \u0938\u093E\u0902\u0916\u094D\u092F\u093F\u0915\u0940", +hu:"WakaTime statisztika",it:"Statistiche WakaTime",ja:"WakaTime \u30EF\u30AB\u30BF\u30A4\u30E0\u7D71\u8A08",kr:"WakaTime \uC8FC\uAC04 \uD1B5\uACC4",nl:"WakaTime-statistieken","pt-pt":"Estat\xEDsticas Wa\ +kaTime","pt-br":"Estat\xEDsticas WakaTime",np:"WakaTime \u0924\u0925\u094D\u092F\u093E .\u094D\u0915",el:"\u03A3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AC WakaTime",ro:"Statistici WakaTime", +ru:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 WakaTime","uk-ua":"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 WakaTime",id:"Status WakaTime",ml:"\u0D35\u0D3E\u0D15\u0D1F\u0D48\u0D02 \u0D38\u0D4D\u0D25\u0D3F\u0D24\u0D3F\u0D35\u0D3F\u0D35\u0D30\u0D15\u0D4D\u0D15\ +\u0D23\u0D15\u0D4D\u0D15\u0D41\u0D15\u0D7E",my:"WakaTime \u1021\u1001\u103B\u1000\u103A\u1021\u101C\u1000\u103A\u1019\u103B\u102C\u1038",ta:`WakaTime \u0BAA\u0BC1\u0BB3\u0BCD\u0BB3\u0BBF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BCD`, +sk:"WakaTime \u0161tatistika",tr:"WakaTime \u0130statistikler",pl:"Statystyki WakaTime",uz:"WakaTime statistikasi",vi:"Th\u1ED1ng K\xEA WakaTime",se:"WakaTime statistik",he:"\u05E1\u05D8\u05D8\u05D9\u05E1\u05D8\u05D9\u05E7\u05D5\u05EA WakaTime", +fil:"Mga Estadistika ng WakaTime",th:"\u0E2A\u0E16\u0E34\u0E15\u0E34 WakaTime",sr:"WakaTime \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430","sr-latn":"WakaTime statistika",no:"WakaTime-s\ +tatistikk",be:"\u0421\u0442\u0430\u0442\u044B\u0441\u0442\u044B\u043A\u0430 WakaTime"},"wakatimecard.lastyear":{en:"last year",ar:"\u0627\u0644\u0639\u0627\u0645 \u0627\u0644\u0645\u0627\u0636\u064A", +az:"\xD6t\u0259n il",ca:"L'any passat",cn:"\u53BB\u5E74","zh-tw":"\u53BB\u5E74",cs:"Minul\xFD rok",de:"Letztes Jahr",sw:"Mwaka uliopita",ur:"\u067E\u0686\u06BE\u0644\u0627 \u0633\u0627\u0644",bg:"\u043C\u0438\u043D\u0430\ +\u043B\u0430\u0442\u0430 \u0433\u043E\u0434.",bn:"\u0997\u09A4 \u09AC\u099B\u09B0",es:"El a\xF1o pasado",fa:"\u0633\u0627\u0644 \u06AF\u0630\u0634\u062A\u0647",fi:"Viime vuosi",fr:"L'ann\xE9e derni\xE8re", +hi:"\u092A\u093F\u091B\u0932\u0947 \u0938\u093E\u0932",sa:"\u0917\u0924\u0935\u0930\u094D\u0937\u0947",hu:"Tavaly",it:"L'anno scorso",ja:"\u6628\u5E74",kr:"\uC791\uB144",nl:"Vorig jaar","pt-pt":"Ano p\ +assado","pt-br":"Ano passado",np:"\u0917\u0924 \u0935\u0930\u094D\u0937",el:"\u03A0\u03AD\u03C1\u03C5\u03C3\u03B9",ro:"Anul trecut",ru:"\u0417\u0430 \u043F\u0440\u043E\u0448\u043B\u044B\u0439 \u0433\u043E\u0434", +"uk-ua":"\u0417\u0430 \u043C\u0438\u043D\u0443\u043B\u0438\u0439 \u0440\u0456\u043A",id:"Tahun lalu",ml:"\u0D15\u0D34\u0D3F\u0D1E\u0D4D\u0D1E \u0D35\u0D7C\u0D37\u0D02",my:"\u1019\u1014\u103E\u1005\u103A\u1000", +ta:`\u0B95\u0B9F\u0BA8\u0BCD\u0BA4 \u0B86\u0BA3\u0BCD\u0B9F\u0BC1`,sk:"Minul\xFD rok",tr:"Ge\xE7en y\u0131l",pl:"W zesz\u0142ym roku",uz:"O'tgan yil",vi:"N\u0103m ngo\xE1i",se:"F\xF6rra \xE5ret",he:"\u05E9\ +\u05E0\u05D4 \u05E9\u05E2\u05D1\u05E8\u05D4",fil:"Nakaraang Taon",th:"\u0E1B\u0E35\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27",sr:"\u041F\u0440\u043E\u0448\u043B\u0430 \u0433\u043E\u0434.","sr-latn":"P\ +ro\u0161la god.",no:"I fjor",be:"\u043C\u0456\u043D\u0443\u043B\u044B \u0433\u043E\u0434"},"wakatimecard.last7days":{en:"last 7 days",ar:"\u0622\u062E\u0631 7 \u0623\u064A\u0627\u0645",az:"Son 7 g\xFCn", +ca:"Ultims 7 dies",cn:"\u6700\u8FD1 7 \u5929","zh-tw":"\u6700\u8FD1 7 \u5929",cs:"Posledn\xEDch 7 dn\xED",de:"Letzte 7 Tage",sw:"Siku 7 zilizopita",ur:"\u067E\u0686\u06BE\u0644\u06D2 7 \u062F\u0646",bg:"\ +\u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 7 \u0434\u043D\u0438",bn:"\u0997\u09A4 \u09ED \u09A6\u09BF\u09A8",es:"\xDAltimos 7 d\xEDas",fa:"\u0647\u0641\u062A \u0631\u0648\u0632 \u06AF\u0630\u0634\u062A\u0647", +fi:"Viimeiset 7 p\xE4iv\xE4\xE4",fr:"7 derniers jours",hi:"\u092A\u093F\u091B\u0932\u0947 7 \u0926\u093F\u0928",sa:"\u0935\u093F\u0917\u0924\u0938\u092A\u094D\u0924\u0926\u093F\u0928\u0947\u0937\u0941", +hu:"Elm\xFAlt 7 nap",it:"Ultimi 7 giorni",ja:"\u904E\u53BB 7 \u65E5\u9593",kr:"\uC9C0\uB09C 7 \uC77C",nl:"Afgelopen 7 dagen","pt-pt":"\xDAltimos 7 dias","pt-br":"\xDAltimos 7 dias",np:"\u0917\u0924 \u096D \u0926\u093F\u0928", +el:"\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B5\u03C2 7 \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2",ro:"Ultimele 7 zile",ru:"\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 7 \u0434\u043D\u0435\u0439", +"uk-ua":"\u041E\u0441\u0442\u0430\u043D\u043D\u0456 7 \u0434\u043D\u0456\u0432",id:"7 hari terakhir",ml:"\u0D15\u0D34\u0D3F\u0D1E\u0D4D\u0D1E 7 \u0D26\u0D3F\u0D35\u0D38\u0D02",my:"7 \u101B\u1000\u103A\u1021\u1010\u103D\u1004\u103A\u1038", +ta:`\u0B95\u0B9F\u0BA8\u0BCD\u0BA4 7 \u0BA8\u0BBE\u0B9F\u0BCD\u0B95\u0BB3\u0BCD`,sk:"Posledn\xFDch 7 dn\xED",tr:"Son 7 g\xFCn",pl:"Ostatnie 7 dni",uz:"O'tgan 7 kun",vi:"7 ng\xE0y qua",se:"Senaste 7 da\ +garna",he:"\u05D1\u05BE7 \u05D4\u05D9\u05DE\u05D9\u05DD \u05D4\u05D0\u05D7\u05E8\u05D5\u05E0\u05D9\u05DD",fil:"Huling 7 Araw",th:"7 \u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E1C\u0E48\u0E32\u0E19\u0E21\u0E32", +sr:"\u041F\u0440\u0435\u0442\u0445\u043E\u0434\u043D\u0438\u0445 7 \u0434\u0430\u043D\u0430","sr-latn":"Prethodnih 7 dana",no:"Siste 7 dager",be:"\u0430\u043F\u043E\u0448\u043D\u0456\u044F 7 \u0434\u0437\u0451\u043D"}, +"wakatimecard.notpublic":{en:"WakaTime user profile not public",ar:"\u0645\u0644\u0641 \u0645\u0633\u062A\u062E\u062F\u0645 \u0648\u0627\u0643\u0627 \u062A\u0627\u064A\u0645 \u0634\u062E\u0635\u064A", +az:"WakaTime istifad\u0259\xE7i profili ictimai deyil",ca:"Perfil d'usuari de WakaTime no p\xFAblic",cn:"WakaTime \u7528\u6237\u4E2A\u4EBA\u8D44\u6599\u672A\u516C\u5F00","zh-tw":"WakaTime \u4F7F\u7528\u8005\u500B\u4EBA\u8CC7\u6599\u672A\u516C\u958B", +cs:"Profil u\u017Eivatele WakaTime nen\xED ve\u0159ejn\xFD",de:"WakaTime-Benutzerprofil nicht \xF6ffentlich",sw:"Maelezo ya mtumizi wa WakaTime si ya watu wote(umma)",ur:"\u0648\u06A9\u0627\u0679\u0627\u0626\u0645 \u0635\u0627\u0631\u0641 \u06A9\u0627 \u067E\u0631\u0648\u0641\u0627\u0626\u0644 \u0639\u0648\u0627\u0645\u06CC\ + \u0646\u06C1\u06CC\u06BA",bg:"\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043F\u0440\u043E\u0444\u0438\u043B \u0432 WakaTime \u043D\u0435 \u0435 \u043E\u0431\u0449\u043E\u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D", +bn:"WakaTime \u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0\u09B0 \u09AA\u09CD\u09B0\u09CB\u09AB\u09BE\u0987\u09B2 \u09AA\u09CD\u09B0\u0995\u09BE\u09B6\u09CD\u09AF \u09A8\u09DF",es:"\ +Perfil de usuario de WakaTime no p\xFAblico",fa:"\u067E\u0631\u0648\u0641\u0627\u06CC\u0644 \u06A9\u0627\u0631\u0628\u0631\u06CC WakaTime \u0639\u0645\u0648\u0645\u06CC \u0646\u06CC\u0633\u062A",fi:"W\ +akaTime-k\xE4ytt\xE4j\xE4profiili ei ole julkinen",fr:"Profil utilisateur WakaTime non public",hi:"WakaTime \u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u0928\u0939\u0940\u0902 \u0939\u0948", +sa:"WakaTime \u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E-\u092A\u094D\u0930\u094B\u092B\u093C\u093E\u0907\u0932 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915\u0902 \u0928\u093E\u0938\u094D\u0924\u093F", +hu:"A WakaTime felhaszn\xE1l\xF3i profilja nem nyilv\xE1nos",it:"Profilo utente WakaTime non pubblico",ja:"WakaTime \u30E6\u30FC\u30B6\u30FC\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u306F\u516C\u958B\u3055\u308C\u3066\u3044\u307E\u305B\u3093", +kr:"WakaTime \uC0AC\uC6A9\uC790 \uD504\uB85C\uD544\uC774 \uACF5\uAC1C\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4",nl:"WakaTime gebruikersprofiel niet openbaar","pt-pt":"Perfil de utilizador WakaTime n\ +\xE3o p\xFAblico","pt-br":"Perfil de usu\xE1rio WakaTime n\xE3o p\xFAblico",np:"WakaTime \u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u092A\u094D\u0930\u094B\u092B\u093E\u0907\u0932 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u091B\u0948\u0928", +el:"\u03A4\u03BF \u03C0\u03C1\u03BF\u03C6\u03AF\u03BB \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7 WakaTime \u03B4\u03B5\u03BD \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B7\u03BC\u03CC\u03C3\u03B9\u03BF",ro:"Pr\ +ofilul utilizatorului de Wakatime nu este public",ru:"\u041F\u0440\u043E\u0444\u0438\u043B\u044C \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F WakaTime \u043D\u0435 \u043E\u0431\u0449\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439", +"uk-ua":"\u041F\u0440\u043E\u0444\u0456\u043B\u044C \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 WakaTime \u043D\u0435 \u043F\u0443\u0431\u043B\u0456\u0447\u043D\u0438\u0439",id:"\ +Profil pengguna WakaTime tidak publik",ml:"WakaTime \u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D43 \u0D2A\u0D4D\u0D30\u0D4A\u0D2B\u0D48\u0D7D \u0D2A\u0D4A\u0D24\u0D41\u0D35\u0D3E\u0D2F\u0D3F \u0D2A\u0D4D\u0D30\u0D38\u0D3F\u0D26\u0D4D\u0D27\u0D40\u0D15\u0D30\u0D3F\u0D15\u0D4D\u0D15\u0D2A\u0D4D\u0D2A\u0D46\u0D1F\u0D3E\u0D24\u0D4D\u0D24\u0D24\u0D3E\u0D23\u0D4D", +my:"Public Profile \u1019\u101F\u102F\u1010\u103A\u1015\u102B\u104B",ta:`WakaTime \u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0B9A\u0BC1\u0BAF\u0BB5\u0BBF\u0BB5\u0BB0\u0BAE\u0BCD \u0BAA\u0BCA\u0BA4\u0BC1\u0BB5\u0BBF\u0BB2\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.`, +sk:"Profil pou\u017E\xEDvate\u013Ea WakaTime nie je verejn\xFD",tr:"WakaTime kullan\u0131c\u0131 profili herkese a\xE7\u0131k de\u011Fil",pl:"Profil u\u017Cytkownika WakaTime nie jest publiczny",uz:"W\ +akaTime foydalanuvchi profili ochiq emas",vi:"H\u1ED3 s\u01A1 ng\u01B0\u1EDDi d\xF9ng WakaTime kh\xF4ng c\xF4ng khai",se:"WakaTime anv\xE4ndarprofil inte offentlig",he:"\u05E4\u05E8\u05D5\u05E4\u05D9\u05DC \u05DE\u05E9\u05EA\u05DE\u05E9 WakaTime \u05DC\u05D0 \u05E4\u05D5\u05DE\u05D1\u05D9", +fil:"Hindi pampubliko ang profile ng gumagamit ng WakaTime",th:"\u0E42\u0E1B\u0E23\u0E44\u0E1F\u0E25\u0E4C\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49 WakaTime \u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E40\u0E1B\u0E47\u0E19\u0E2A\u0E32\u0E18\u0E32\u0E23\u0E13\u0E30", +sr:"WakaTime \u043F\u0440\u043E\u0444\u0438\u043B \u043A\u043E\u0440\u0438\u0441\u043D\u0438\u043A\u0430 \u043D\u0438\u0458\u0435 \u0458\u0430\u0432\u0430\u043D","sr-latn":"WakaTime profil korisnika n\ +ije javan",no:"WakaTime brukerprofil ikke offentlig",be:"\u041F\u0440\u043E\u0444\u0456\u043B\u044C \u043A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A\u0430 WakaTime \u043D\u0435 \u043F\u0443\u0431\u043B\u0456\u0447\u043D\u044B"}, +"wakatimecard.nocodedetails":{en:"User doesn't publicly share detailed code statistics",ar:"\u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645 \u0644\u0627 \u064A\u0634\u0627\u0631\u0643 \u0627\u0644\u0645\u0639\u0644\u0648\u0645\u0627\u062A \u0627\u0644\u062A\u0641\u0635\u064A\u0644\u064A\u0629", +az:"\u0130stifad\u0259\xE7i kod statistikalar\u0131n\u0131 ictimai \u015F\u0259kild\u0259 payla\u015Fm\u0131r",ca:"L'usuari no comparteix dades p\xFAbliques del seu codi",cn:"\u7528\u6237\u4E0D\u516C\u5F00\u5206\u4EAB\u8BE6\u7EC6\u7684\u4EE3\u7801\u7EDF\u8BA1\u4FE1\u606F", +"zh-tw":"\u4F7F\u7528\u8005\u4E0D\u516C\u958B\u5206\u4EAB\u8A73\u7D30\u7684\u7A0B\u5F0F\u78BC\u7D71\u8A08\u8CC7\u8A0A",cs:"U\u017Eivatel nesd\xEDl\xED podrobn\xE9 statistiky k\xF3du",de:"Benutzer teil\ +t keine detaillierten Code-Statistiken",sw:"Mtumizi hagawi kila kitu au takwimu na umma",ur:"\u0635\u0627\u0631\u0641 \u0639\u0648\u0627\u0645\u06CC \u0637\u0648\u0631 \u067E\u0631 \u062A\u0641\u0635\u06CC\u0644\u06CC \u06A9\u0648\u0688 \u06A9\u06D2 \u0627\u0639\u062F\u0627\u062F \u0648 \u0634\u0645\u0627\u0631 \u0634\u06CC\u0626\u0631 \u0646\u06C1\u06CC\u06BA \u06A9\u0631\u062A\u0627", +bg:"\u041F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u044F\u0442 \u043D\u0435 \u0441\u043F\u043E\u0434\u0435\u043B\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0437\u0430 \u043A\u043E\u0434", +bn:"\u09AC\u09CD\u09AF\u09AC\u09B9\u09BE\u09B0\u0995\u09BE\u09B0\u09C0 \u09AC\u09BF\u09B8\u09CD\u09A4\u09BE\u09B0\u09BF\u09A4 \u0995\u09CB\u09A1 \u09AA\u09B0\u09BF\u09B8\u0982\u0996\u09CD\u09AF\u09BE\u09A8 \u09AA\u09CD\u09B0\u0995\u09BE\u09B6 \u0995\u09B0\u09C7\u09A8 \u09A8\u09BE", +es:"El usuario no comparte p\xFAblicamente estad\xEDsticas detalladas de c\xF3digo",fa:"\u06A9\u0627\u0631\u0628\u0631 \u0622\u0645\u0627\u0631 \u06A9\u062F \u062A\u0641\u0635\u06CC\u0644\u06CC \u0631\u0627 \u0628\u0647\u200C\u0635\u0648\u0631\u062A \u0639\u0645\u0648\u0645\u06CC \u0628\u0647 \u0627\u0634\u062A\u0631\u0627\u06A9 \u0646\u0645\u06CC\u200C\u06AF\u0630\u0627\u0631\u062F", +fi:"K\xE4ytt\xE4j\xE4 ei jaa julkisesti tarkkoja kooditilastoja",fr:"L'utilisateur ne partage pas publiquement de statistiques de code d\xE9taill\xE9es",hi:"\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0935\u093F\u0938\u094D\u0924\u0943\u0924 \u0915\u094B\u0921 \u0906\u0901\u0915\u0921\u093C\u0947 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915 \u0930\u0942\u092A\ + \u0938\u0947 \u0938\u093E\u091D\u093E \u0928\u0939\u0940\u0902 \u0915\u0930\u0924\u093E \u0939\u0948",sa:"\u0909\u092A\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0935\u093F\u0938\u094D\u0924\u0943\u0924-\u0915\u094B\u0921-\u0938\u093E\u0902\u0916\u094D\u092F\u093F\u0915\u0940\u0902 \u0938\u093E\u0930\u094D\u0935\u091C\u0928\u093F\u0915\u0930\u0942\u092A\u0947\u0923 \u0928 \u0926\u0930\u094D\u0936\u092F\u0924\u093F", +hu:"A felhaszn\xE1l\xF3 nem osztja meg nyilv\xE1nosan a r\xE9szletes k\xF3dstatisztik\xE1kat",it:"L'utente non condivide pubblicamente statistiche dettagliate sul codice",ja:"\u30E6\u30FC\u30B6\u30FC\u306F\u8A73\u7D30\u306A\u30B3\u30FC\u30C9\u7D71\u8A08\u3092\u516C\u958B\u3057\u307E\u305B\u3093", +kr:"\uC0AC\uC6A9\uC790\uB294 \uC790\uC138\uD55C \uCF54\uB4DC \uD1B5\uACC4\uB97C \uACF5\uAC1C\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",nl:"Gebruiker deelt geen gedetailleerde code-statistieken","pt-pt":"O\ + utilizador n\xE3o partilha publicamente estat\xEDsticas detalhadas de c\xF3digo","pt-br":"O usu\xE1rio n\xE3o compartilha publicamente estat\xEDsticas detalhadas de c\xF3digo",np:"\u092A\u094D\u0930\u092F\u094B\u0917\u0915\u0930\u094D\u0924\u093E \u0938\u093E\u0930\u094D\u0935\u091C\u0928\ +\u093F\u0915 \u0930\u0942\u092A\u092E\u093E \u0935\u093F\u0938\u094D\u0924\u0943\u0924 \u0915\u094B\u0921 \u0924\u0925\u094D\u092F\u093E\u0919\u094D\u0915 \u0938\u093E\u091D\u093E \u0917\u0930\u094D\u0926\u0948\u0928", +el:"\u039F \u03C7\u03C1\u03AE\u03C3\u03C4\u03B7\u03C2 \u03B4\u03B5\u03BD \u03B4\u03B7\u03BC\u03BF\u03C3\u03B9\u03B5\u03CD\u03B5\u03B9 \u03B4\u03B7\u03BC\u03CC\u03C3\u03B9\u03B1 \u03BB\u03B5\u03C0\u03C4\u03BF\u03BC\u03B5\u03C1\u03B5\u03AF\u03C2 \u03C3\u03C4\u03B1\u03C4\u03B9\u03C3\u03C4\u03B9\u03BA\u03AD\u03C2 \u03BA\u03CE\u03B4\u03B9\u03BA\u03B1", +ro:"Utilizatorul nu \xEE\u0219i public\u0103 statisticile detaliate ale codului",ru:"\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0434\u0435\u043B\u0438\u0442\u0441\u044F \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u043E\u0439 \u043A\u043E\u0434\u0430", +"uk-ua":"\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 \u043D\u0435 \u043F\u0443\u0431\u043B\u0456\u043A\u0443\u0454 \u0434\u0435\u0442\u0430\u043B\u044C\u043D\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u043A\u043E\u0434\u0443", +id:"Pengguna tidak membagikan statistik kode terperinci secara publik",ml:"\u0D09\u0D2A\u0D2F\u0D4B\u0D15\u0D4D\u0D24\u0D3E\u0D35\u0D4D \u0D2A\u0D4A\u0D24\u0D41\u0D35\u0D3E\u0D2F\u0D3F \u0D35\u0D3F\u0D36\u0D26\u0D40\u0D15\u0D30\u0D3F\u0D1A\u0D4D\u0D1A \u0D15\u0D4B\u0D21\u0D4D \u0D38\u0D4D\u0D31\u0D4D\u0D31\u0D3E\u0D31\u0D4D\u0D31\u0D3F\u0D38\u0D4D\u0D31\u0D4D\u0D31\u0D3F\u0D15\u0D4D\u0D38\u0D4D \u0D2A\u0D19\u0D4D\u0D15\u0D3F\u0D1F\u0D41\u0D28\u0D4D\u0D28\u0D3F\u0D32\u0D4D\u0D32", +my:"\u1021\u101E\u102F\u1036\u1038\u1015\u103C\u102F\u101E\u1030\u101E\u100A\u103A \u1021\u101E\u1031\u1038\u1005\u102D\u1010\u103A \u1000\u102F\u1012\u103A \u1005\u102C\u101B\u1004\u103A\u1038\u1021\u1004\u103A\u1038\u1019\u103B\u102C\u1038\u1000\u102D\u102F \u1021\u1019\u103B\u102C\u1038\u101E\u102D\u102F\u1037 \u1019\u1019\u103B\u103E\u101D\u1031\u1015\u102B\u104B", +ta:`\u0BAA\u0BAF\u0BA9\u0BB0\u0BCD \u0BB5\u0BBF\u0BB0\u0BBF\u0BB5\u0BBE\u0BA9 \u0B95\u0BC1\u0BB1\u0BBF\u0BAF\u0BC0\u0B9F\u0BCD\u0B9F\u0BC1 \u0BAA\u0BC1\u0BB3\u0BCD\u0BB3\u0BBF\u0BB5\u0BBF\u0BB5\u0BB0\u0B99\u0BCD\u0B95\u0BB3\u0BC8\u0BAA\u0BCD \u0BAA\u0BCA\u0BA4\u0BC1\u0BB5\u0BBF\u0BB2\u0BCD \u0BAA\u0B95\u0BBF\u0BB0\u0BCD\u0BB5\u0BA4\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8.`, +sk:"Pou\u017E\xEDvate\u013E neposkytuje verejne podrobn\xE9 \u0161tatistiky k\xF3du",tr:"Kullan\u0131c\u0131 ayr\u0131nt\u0131l\u0131 kod istatistiklerini herkese a\xE7\u0131k olarak payla\u015Fm\u0131yor", +pl:"U\u017Cytkownik nie udost\u0119pnia publicznie szczeg\xF3\u0142owych statystyk kodu",uz:"Foydalanuvchi umumiy ko`d statistikasini ochiq ravishda almashmaydi",vi:"Ng\u01B0\u1EDDi d\xF9ng kh\xF4ng chia s\u1EBB th\u1ED1ng k\xEA \ +m\xE3 chi ti\u1EBFt c\xF4ng khai",se:"Anv\xE4ndaren delar inte offentligt detaljerad kodstatistik",he:"\u05DE\u05E9\u05EA\u05DE\u05E9 \u05DC\u05D0 \u05DE\u05E4\u05E8\u05E1\u05DD \u05E4\u05D5\u05DE\u05D1\u05D9\u05EA \u05E1\u05D8\u05D8\u05D9\u05E1\u05D8\u05D9\u05E7\u05D5\u05EA \u05E7\u05D5\u05D3 \u05DE\u05E4\u05D5\u05E8\u05D8\u05D5\u05EA", +fil:"Hindi ibinabahagi ng gumagamit ang detalyadong estadistika ng code nang pampubliko",th:"\u0E1C\u0E39\u0E49\u0E43\u0E0A\u0E49\u0E44\u0E21\u0E48\u0E44\u0E14\u0E49\u0E41\u0E0A\u0E23\u0E4C\u0E2A\u0E16\u0E34\u0E15\u0E34\u0E42\u0E04\u0E49\u0E14\u0E41\u0E1A\u0E1A\u0E2A\u0E32\u0E18\u0E32\u0E23\u0E13\u0E30", +sr:"\u041A\u043E\u0440\u0438\u0441\u043D\u0438\u043A \u043D\u0435 \u0434\u0435\u043B\u0438 \u0458\u0430\u0432\u043D\u043E \u0434\u0435\u0442\u0430\u0459\u043D\u0443 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443 \u043A\u043E\u0434\u0430", +"sr-latn":"Korisnik ne deli javno detaljnu statistiku koda",no:"Brukeren deler ikke detaljert kodestatistikk offentlig",be:"\u041A\u0430\u0440\u044B\u0441\u0442\u0430\u043B\u044C\u043D\u0456\u043A \u043D\u0435 \u0434\u0437\u0435\u043B\u0456\u0446\u0446\u0430 \u043F\u0430\u0434\u0440\u0430\u0431\u044F\u0437\u043D\u0430\u0439 \u0441\u0442\u0430\u0442\u044B\u0441\u0442\u044B\u043A\u0430\u0439 \u043A\u043E\u0434\u0430 \u043F\u0443\u0431\u043B\u0456\u0447\u043D\u0430"}, +"wakatimecard.nocodingactivity":{en:"No coding activity this week",ar:"\u0644\u0627 \u064A\u0648\u062C\u062F \u0646\u0634\u0627\u0637 \u0628\u0631\u0645\u062C\u064A \u0644\u0647\u0630\u0627 \u0627\u0644\u0623\u0633\u0628\u0648\u0639", +az:"Bu h\u0259ft\u0259 he\xE7 bir kodla\u015Fd\u0131rma f\u0259aliyy\u0259ti olmay\u0131b",ca:"No hi ha activitat de codificaci\xF3 aquesta setmana",cn:"\u672C\u5468\u6CA1\u6709\u7F16\u7A0B\u6D3B\u52A8", +"zh-tw":"\u672C\u5468\u6C92\u6709\u7DE8\u7A0B\u6D3B\u52D5",cs:"Tento t\xFDden \u017E\xE1dn\xE1 aktivita v k\xF3dov\xE1n\xED",de:"Keine Aktivit\xE4ten in dieser Woche",sw:"Hakuna matukio yoyote ya kusi\ +mba wiki hii",ur:"\u0627\u0633 \u06C1\u0641\u062A\u06D2 \u06A9\u0648\u0626\u06CC \u06A9\u0648\u0688\u0646\u06AF \u0633\u0631\u06AF\u0631\u0645\u06CC \u0646\u06C1\u06CC\u06BA",bg:"\u041D\u044F\u043C\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442 \u043F\u0440\u0438 \u043A\u043E\ +\u0434\u0438\u0440\u0430\u043D\u0435\u0442\u043E \u0442\u0430\u0437\u0438 \u0441\u0435\u0434\u043C\u0438\u0446\u0430",bn:"\u098F\u0987 \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9\u09C7 \u0995\u09CB\u09A8 \u0995\u09CB\u09A1\u09BF\u0982 \u0985\u09CD\u09AF\u09BE\u0995\u09CD\u099F\u09BF\u09AD\u09BF\u099F\u09BF \u09A8\u09C7\u0987", +es:"No hay actividad de codificaci\xF3n esta semana",fa:"\u0641\u0639\u0627\u0644\u06CC\u062A \u06A9\u062F\u0646\u0648\u06CC\u0633\u06CC \u062F\u0631 \u0627\u06CC\u0646 \u0647\u0641\u062A\u0647 \u0648\u062C\u0648\u062F \u0646\u062F\u0627\u0631\u062F", +fi:"Ei koodaustoimintaa t\xE4ll\xE4 viikolla",fr:"Aucune activit\xE9 de codage cette semaine",hi:"\u0907\u0938 \u0938\u092A\u094D\u0924\u093E\u0939 \u0915\u094B\u0908 \u0915\u094B\u0921\u093F\u0902\u0917 \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u0928\u0939\u0940\u0902 ", +sa:"\u0905\u0938\u094D\u092E\u093F\u0928\u094D \u0938\u092A\u094D\u0924\u093E\u0939\u0947 \u0915\u094B\u0921\u093F\u0919\u094D-\u0915\u093E\u0930\u094D\u092F\u0902 \u0928\u093E\u0938\u094D\u0924\u093F", +hu:"Nem volt aktivit\xE1s ezen a h\xE9ten",it:"Nessuna attivit\xE0 in questa settimana",ja:"\u4ECA\u9031\u306E\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u6D3B\u52D5\u306F\u3042\u308A\u307E\u305B\u3093",kr:"\ +\uC774\uBC88 \uC8FC \uC791\uC5C5\uB0B4\uC5ED \uC5C6\uC74C",nl:"Geen programmeeractiviteit deze week","pt-pt":"Sem atividade esta semana","pt-br":"Nenhuma atividade de codifica\xE7\xE3o esta semana",np:"\ +\u092F\u0938 \u0939\u092A\u094D\u0924\u093E \u0915\u0941\u0928\u0948 \u0915\u094B\u0921\u093F\u0902\u0917 \u0917\u0924\u093F\u0935\u093F\u0927\u093F \u091B\u0948\u0928",el:"\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03B4\u03C1\u03B1\u03C3\u03C4\u03B7\u03C1\u03B9\u03CC\u03C4\u03B7\u03C4\u03B1 \u03BA\ +\u03CE\u03B4\u03B9\u03BA\u03B1 \u03B3\u03B9' \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7\u03BD \u03B5\u03B2\u03B4\u03BF\u03BC\u03AC\u03B4\u03B1",ro:"Nicio activitate de programare s\u0103pt\u0103m\xE2na aceasta", +ru:"\u041D\u0430 \u044D\u0442\u043E\u0439 \u043D\u0435\u0434\u0435\u043B\u0435 \u043D\u0435 \u0431\u044B\u043B\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438","uk-ua":"\u0426\u044C\u043E\u0433\u043E \u0442\u0438\u0436\u043D\u044F \ +\u043D\u0435 \u0431\u0443\u043B\u043E \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0456",id:"Tidak ada aktivitas perkodingan minggu ini",ml:"\u0D08 \u0D06\u0D34\u0D4D\u0D1A \u0D15\u0D4B\u0D21\u0D3F\u0D02\u0D17\u0D4D \u0D2A\u0D4D\u0D30\u0D35\u0D7C\u0D24\u0D4D\u0D24\u0D28\u0D19\u0D4D\u0D19\u0D33\u0D4A\u0D28\u0D4D\u0D28\u0D41\u0D2E\u0D3F\u0D32\u0D4D\u0D32", +my:"\u1012\u102E\u1021\u1015\u1010\u103A\u1019\u103E\u102C \u1000\u102F\u1012\u103A\u101B\u1031\u1038\u1001\u103C\u1004\u103A\u1038 \u1019\u101B\u103E\u102D\u1015\u102B\u104B",ta:`\u0B87\u0BA8\u0BCD\u0BA4 \u0BB5\u0BBE\u0BB0\u0BAE\u0BCD \u0B95\u0BC1\u0BB1\u0BBF\u0BAF\u0BC0\u0B9F\u0BCD\u0B9F\ +\u0BC1 \u0B9A\u0BC6\u0BAF\u0BB2\u0BCD\u0BAA\u0BBE\u0B9F\u0BC1 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8.`,sk:"\u017Diadna k\xF3dovacia aktivita tento t\xFD\u017Ede\u0148",tr:"Bu hafta herhangi bir kod yazma akti\ +vitesi olmad\u0131",pl:"Brak aktywno\u015Bci w tym tygodniu",uz:"Bu hafta faol bo'lmadi",vi:"Kh\xF4ng C\xF3 Ho\u1EA1t \u0110\u1ED9ng Trong Tu\u1EA7n N\xE0y",se:"Ingen aktivitet denna vecka",he:"\u05D0\u05D9\u05DF \u05E4\u05E2\ +\u05D9\u05DC\u05D5\u05EA \u05EA\u05DB\u05E0\u05D5\u05EA\u05D9\u05EA \u05D4\u05E9\u05D1\u05D5\u05E2",fil:"Walang aktibidad sa pag-code ngayong linggo",th:"\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E34\u0E08\u0E01\u0E23\u0E23\u0E21\u0E01\u0E32\u0E23\u0E40\u0E02\u0E35\u0E22\u0E19\u0E42\u0E04\u0E49\u0E14\u0E43\u0E19\u0E2A\u0E31\u0E1B\u0E14\u0E32\u0E2B\u0E4C\u0E19\u0E35\u0E49", +sr:"\u0422\u043E\u043A\u043E\u043C \u043E\u0432\u0435 \u043D\u0435\u0434\u0435\u0459\u0435 \u043D\u0438\u0458\u0435 \u0431\u0438\u043B\u043E \u043D\u0438\u043A\u0430\u043A\u0432\u0438\u0445 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438", +"sr-latn":"Tokom ove nedelje nije bilo nikakvih aktivnosti",no:"Ingen kodeaktivitet denne uken",be:"\u041D\u0430 \u0433\u044D\u0442\u044B\u043C \u0442\u044B\u0434\u043D\u0456 \u043D\u0435 \u0431\u044B\u043B\u043E \u0430\u043A\u0442\u044B\u045E\u043D\u0430\u0441\u0446\u0456"}}; +var availableLocales=Object.keys(repoCardLocales["repocard.archived"]);var isLocaleAvailable=locale=>availableLocales.includes(locale.toLowerCase());var rawParam=optional(string2());var SAFE_PATTERN=/^[-\w/.,]+$/;var REJECTION_MESSAGES={number:param=>`Invalid number input for parameter "${param}"`,year:param=>`Invalid number input for parameter "${param}\ +"`,unsafe:param=>`Parameter "${param}" contains unsafe characters`,username:param=>`Invalid username input for parameter "${param}"`,locale:()=>"Locale not found",enum:param=>`Incorrect ${param} input`, +color:param=>`Invalid color input for parameter "${param}"`};var rejects=(kind,passes)=>refine(value=>typeof value!=="string"||passes(value),{error:issue3=>REJECTION_MESSAGES[kind](String(issue3.path?.[0]?? +""))});var booleanParam=pipe(rawParam,transform(value=>parseBoolean(value)));var listParam=pipe(rawParam,transform(parseArray));var numberParam=pipe(rawParam.check(rejects("number",value=>Number.isFinite( +Number.parseFloat(value)))),transform(value=>value===void 0?void 0:Number.parseFloat(value)));var looseIntParam=pipe(rawParam,transform(value=>value===void 0?void 0:Number.parseInt(value,10)));var yearParam=pipe( +rawParam.check(rejects("year",value=>/^\d{4}$/.test(value))),transform(value=>value===void 0?void 0:Number(value)));var safeParam=rawParam.check(rejects("unsafe",value=>!value||SAFE_PATTERN.test(value))); +var usernameParam=rawParam.check(rejects("username",value=>!value||GITHUB_USERNAME_PATTERN.test(value)));var safeListParam=pipe(safeParam,transform(parseArray));var localeParam=pipe(rawParam.check(rejects( +"locale",value=>!value||isLocaleAvailable(value))),transform(value=>value?.toLowerCase()));var enumParam=values=>rawParam.check(rejects("enum",value=>values.includes(value)));var colorParamsSchema=object( +Object.fromEntries(COLOR_PARAM_KEYS.map(key=>[key,THEME_PARAM_KEYS.includes(key)?rawParam:rawParam.check(rejects("color",isValidColorInput))])));var toCardError=error2=>{const[issue3]=error2.issues;return CardError. +invalidParam(String(issue3?.path[0]??""),issue3?.message??"Invalid input")};var parseParams=(schema,query)=>{const result=safeParse(schema,query);if(!result.success){throw toCardError(result.error)}return result. +data};var parseColorParams=query=>parseParams(colorParamsSchema,query);var gistQuery=object({id:safeParam,border_radius:numberParam,show_owner:booleanParam,browser_rendering:booleanParam,hide_border:booleanParam});var gist=async(query,config2)=>{let colors;try{colors=parseColorParams( +query)}catch(error2){return errorResult(error2)}try{const{id,border_radius,show_owner,browser_rendering,hide_border}=parseParams(gistQuery,query);const gistData=await fetchGist({id},config2);return{status:"\ +success",content:renderGistCard(gistData,{...colors,border_radius,show_owner,browser_rendering,hide_border})}}catch(error2){return errorResult(error2,colors)}};var FALLBACK_LOCALE="en";var I18n=class{locale;translations;constructor({locale,translations}){this.locale=locale||FALLBACK_LOCALE;this.translations=translations}t(str){const translation=this.translations[str]; +if(!translation){throw new Error(`${str} Translation string not found`)}const localized=translation[this.locale];if(!localized){throw new Error(`'${str}' translation not found for locale '${this.locale}\ +'`)}return localized}};var ICON_SIZE2=16;var CARD_DEFAULT_WIDTH2=400;var X_OFFSET2=25;var DESCRIPTION_FONT_SIZE2=13;var DESCRIPTION_LINE_HEIGHT_PX2=16;var DESCRIPTION_MAX_LINES2=3;var getBadgeSVG=(label,xOffset=0)=>{if(!Number. +isFinite(xOffset)){throw new TypeError(`Invalid xOffset: "${xOffset}"`)}return el("g",{"data-testid":"badge",class:"badge",transform:`translate(${320+xOffset}, -18)`},el("rect",{"stroke-width":1,width:70, +height:20,x:-12,y:-14,ry:10,rx:10}),el("text",{x:23,y:-5,"alignment-baseline":"central","dominant-baseline":"central","text-anchor":"middle"},label))};var renderRepoCard=(repo,options={})=>{const{name, +nameWithOwner,description,primaryLanguage,isArchived,isTemplate,stargazerCount,forkCount,totalPRsAuthored,totalPRsCommented,totalPRsReviewed,totalIssuesAuthored,totalIssuesCommented}=repo;const{hide_border=false, +card_width_input,show_owner=false,browser_rendering=false,show=[],show_icons=true,number_format="short",text_bold=false,line_height=22,username,theme="default_repocard",border_radius,locale,description_lines_count}=options; +const card_width=card_width_input&&!Number.isNaN(card_width_input)?card_width_input:show.length>=2?CARD_DEFAULT_WIDTH2+30:CARD_DEFAULT_WIDTH2;const i18n=new I18n({locale,translations:repoCardLocales}); +const repoFilter=encodeURIComponent(buildSearchFilter([nameWithOwner],[]));const encodedUsername=encodeURIComponent(username??"");const STATS={};if(show.includes("prs_authored")){STATS["prs_authored"]= +{icon:icons.prs,label:i18n.t("repocard.prs-authored"),value:totalPRsAuthored,id:"prs_authored",link:`https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=pullrequests`}}if(show. +includes("prs_commented")){STATS["prs_commented"]={icon:icons.comments,label:i18n.t("repocard.prs-commented"),value:totalPRsCommented,id:"prs_commented",link:`https://github.com/search?q=${repoFilter}\ +commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests`}}if(show.includes("prs_reviewed")){STATS["prs_reviewed"]={icon:icons.reviews,label:i18n.t("repocard.prs-reviewed"),value:totalPRsReviewed, +id:"prs_reviewed",link:`https://github.com/search?q=${repoFilter}reviewed-by%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests`}}if(show.includes("issues_authored")){STATS["issue\ +s_authored"]={icon:icons.issues,label:i18n.t("repocard.issues-authored"),value:totalIssuesAuthored,id:"issues_authored",link:`https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&t\ +ype=issues`}}if(show.includes("issues_commented")){STATS["issues_commented"]={icon:icons.discussions_started,label:i18n.t("repocard.issues-commented"),value:totalIssuesCommented,id:"issues_commented", +link:`https://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=issues`}}const statItems=Object.values(STATS).map((stat2,index)=>createTextNode({icon:stat2. +icon,label:stat2.label,value:stat2.value??0,id:stat2.id,unitSymbol:stat2.unitSymbol,index,showIcons:show_icons,shiftValuePos:14.01,bold:text_bold,numberFormat:number_format,link:stat2.link,labelXOffset:23})); +const extraLHeight=Number.parseInt(String(line_height),10);const lineHeight=10;const header=show_owner?nameWithOwner:name;const langName=primaryLanguage?.name||"Unspecified";const langColor=primaryLanguage?. +color||"#333";const desc=parseEmojis(description||"No description provided");const descriptionBoxWidth=card_width-2*X_OFFSET2;let descriptionLinesCount;let descriptionSvg;if(browser_rendering){descriptionLinesCount= +description_lines_count?clampValue(description_lines_count,1,DESCRIPTION_MAX_LINES2):countWrappedLines(desc,DESCRIPTION_FONT_SIZE2,descriptionBoxWidth,DESCRIPTION_MAX_LINES2);descriptionSvg=wrappedTextNode( +{text:desc,x:X_OFFSET2,y:-3,width:descriptionBoxWidth,height:descriptionLinesCount*DESCRIPTION_LINE_HEIGHT_PX2+10,lineCount:descriptionLinesCount,className:"description",testId:"description-text"})}else{ +const descriptionMaxLines=description_lines_count?clampValue(description_lines_count,1,DESCRIPTION_MAX_LINES2):DESCRIPTION_MAX_LINES2;const multiLineDescription=wrapTextMultiline(desc,descriptionBoxWidth, +DESCRIPTION_FONT_SIZE2,descriptionMaxLines);descriptionLinesCount=description_lines_count?clampValue(description_lines_count,1,DESCRIPTION_MAX_LINES2):multiLineDescription.length;descriptionSvg=el("te\ +xt",{class:"description",x:X_OFFSET2,y:-5},multiLineDescription.map(line=>el("tspan",{dy:"1.2em",x:X_OFFSET2},line)))}const extraHeight=Object.keys(STATS).length>0?-7+(Math.ceil(statItems.length/2)+1)* +extraLHeight:0;const height=(descriptionLinesCount>1?120:110)+descriptionLinesCount*lineHeight+extraHeight;const{lightColors,darkColors}=getLightDarkColors({...options,theme});const svgLanguage=primaryLanguage? +createLanguageNode(langName,langColor):void 0;const totalStars=kFormatter(stargazerCount);const totalForks=kFormatter(forkCount);const svgStars=iconWithLabel(icons.star,totalStars,"stargazers",ICON_SIZE2); +const svgForks=iconWithLabel(icons.fork,totalForks,"forkcount",ICON_SIZE2);const starAndForkCount=flexLayout({items:[svgLanguage,svgStars,svgForks],sizes:[measureText(langName,12),ICON_SIZE2+measureText( +`${totalStars}`,12),ICON_SIZE2+measureText(`${totalForks}`,12)],gap:25});const extraRows=[];for(let i=0;i35?`${header.slice(0,35)}...`:header,titlePrefixIcon:icons.contribs,width:card_width,height,border_radius,colors:{light:lightColors,dark:darkColors}});card.disableAnimations();card.setHideBorder( +hide_border);card.setHideTitle(false);card.setCSS({light:({textColor,iconColor})=>[rule(".description",{font:`400 ${DESCRIPTION_FONT_SIZE2}px 'Segoe UI', Ubuntu, Sans-Serif`,fill:textColor,...browser_rendering? +wrappedTextStyles(textColor):{}}),rule(".gray",{font:"400 12px 'Segoe UI', Ubuntu, Sans-Serif",fill:textColor}),rule(".badge",{font:"600 11px 'Segoe UI', Ubuntu, Sans-Serif"}),rule(".badge rect",{opacity:.2, +stroke:textColor}),rule(".badge text",{fill:textColor}),rule(".stat",{font:"400 12px 'Segoe UI', Ubuntu, Sans-Serif",fill:textColor}),rule(".stagger",{opacity:0,animation:"fadeInAnimation 0.3s ease-in\ +-out forwards"}),rule(".not_bold",{"font-weight":400}),rule(".bold",{"font-weight":700}),rule(".icon",{fill:iconColor,display:"block"})],dark:({textColor,iconColor})=>[rule(".description",{fill:textColor, +...browser_rendering?wrappedTextStyles(textColor):{}}),rule(".gray",{fill:textColor}),rule(".badge rect",{stroke:textColor}),rule(".badge text",{fill:textColor}),rule(".stat",{fill:textColor}),rule(".\ +icon",{fill:iconColor})]});const extraStatLabels=Object.values(STATS).map(stat2=>`${stat2.label}: ${stat2.value??0}`).join(", ");card.setAccessibilityLabel({title:card.title,desc:[`${desc}.`,primaryLanguage? +langName:"",extraStatLabels].filter(Boolean).join(", ")});return card.render([isTemplate?getBadgeSVG(i18n.t("repocard.template"),card_width-CARD_DEFAULT_WIDTH2):isArchived?getBadgeSVG(i18n.t("repocard\ +.archived"),card_width-CARD_DEFAULT_WIDTH2):void 0,descriptionSvg,el("g",{transform:`translate(30, ${height-75-extraHeight})`},starAndForkCount),extraItems])};var GetRepoDocument=graphqlDocument(` query getRepo($login: String!, $repo: String!) { user(login: $login) { repository(name: $repo) { @@ -24379,50 +3805,13 @@ fragment RepoInfo on Repository { name } forkCount -}`); - -// node_modules/.pnpm/github-username-regex@1.0.0/node_modules/github-username-regex/module.js -var module_default = /^[a-z\d](?:[a-z\d]|-(?=[a-z\d])){0,38}$/i; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/calculateRank.js -function exponential_cdf(x) { - return 1 - 2 ** -x; -} -function log_normal_cdf(x) { - return x / (1 + x); -} -function calculateRank({ all_commits, commits, prs, issues, reviews, stars, followers }) { - const COMMITS_MEDIAN = all_commits ? 1e3 : 250, COMMITS_WEIGHT = 2; - const PRS_MEDIAN = 50, PRS_WEIGHT = 3; - const ISSUES_MEDIAN = 25, ISSUES_WEIGHT = 1; - const REVIEWS_MEDIAN = 2, REVIEWS_WEIGHT = 1; - const STARS_MEDIAN = 50, STARS_WEIGHT = 4; - const FOLLOWERS_MEDIAN = 10, FOLLOWERS_WEIGHT = 1; - const TOTAL_WEIGHT = COMMITS_WEIGHT + PRS_WEIGHT + ISSUES_WEIGHT + REVIEWS_WEIGHT + STARS_WEIGHT + FOLLOWERS_WEIGHT; - const THRESHOLDS = [1, 12.5, 25, 37.5, 50, 62.5, 75, 87.5, 100]; - const LEVELS = ["S", "A+", "A", "A-", "B+", "B", "B-", "C+", "C"]; - const rank = 1 - (COMMITS_WEIGHT * exponential_cdf(commits / COMMITS_MEDIAN) + PRS_WEIGHT * exponential_cdf(prs / PRS_MEDIAN) + ISSUES_WEIGHT * exponential_cdf(issues / ISSUES_MEDIAN) + REVIEWS_WEIGHT * exponential_cdf(reviews / REVIEWS_MEDIAN) + STARS_WEIGHT * log_normal_cdf(stars / STARS_MEDIAN) + FOLLOWERS_WEIGHT * log_normal_cdf(followers / FOLLOWERS_MEDIAN)) / TOTAL_WEIGHT; - const level = LEVELS[THRESHOLDS.findIndex((t) => rank * 100 <= t)]; - if (level === void 0) { - throw new Error("Unable to determine rank level"); - } - return { level, percentile: rank * 100 }; -} - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/date.js -var toGitHubDateTime = (date2) => `${date2.toISOString().slice(0, 19)}Z`; -var getGitHubYearRange = (year) => ({ - from: new Date(Date.UTC(year, 0, 1)), - to: new Date(Date.UTC(year, 11, 31, 23, 59, 59)) -}); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/contributionsDocument.js -var buildContributionsDocument = (years) => { - const yearFields = years.map((year) => { - const { from, to } = getGitHubYearRange(year); - return `year_${year}: contributionsCollection(from: "${toGitHubDateTime(from)}", to: "${toGitHubDateTime(to)}") { ...YearContributions }`; - }).join("\n"); - return graphqlDocument(` +}`);function exponential_cdf(x){return 1-2**-x}function log_normal_cdf(x){return x/(1+x)}function calculateRank({all_commits,commits,prs,issues,reviews,stars,followers}){const COMMITS_MEDIAN=all_commits?1e3: +250;const COMMITS_WEIGHT=2;const PRS_MEDIAN=50;const PRS_WEIGHT=3;const ISSUES_MEDIAN=25;const ISSUES_WEIGHT=1;const REVIEWS_MEDIAN=2;const REVIEWS_WEIGHT=1;const STARS_MEDIAN=50;const STARS_WEIGHT=4; +const FOLLOWERS_MEDIAN=10;const FOLLOWERS_WEIGHT=1;const TOTAL_WEIGHT=COMMITS_WEIGHT+PRS_WEIGHT+ISSUES_WEIGHT+REVIEWS_WEIGHT+STARS_WEIGHT+FOLLOWERS_WEIGHT;const THRESHOLDS=[1,12.5,25,37.5,50,62.5,75,87.5, +100];const LEVELS=["S","A+","A","A-","B+","B","B-","C+","C"];const rank=1-(COMMITS_WEIGHT*exponential_cdf(commits/COMMITS_MEDIAN)+PRS_WEIGHT*exponential_cdf(prs/PRS_MEDIAN)+ISSUES_WEIGHT*exponential_cdf( +issues/ISSUES_MEDIAN)+REVIEWS_WEIGHT*exponential_cdf(reviews/REVIEWS_MEDIAN)+STARS_WEIGHT*log_normal_cdf(stars/STARS_MEDIAN)+FOLLOWERS_WEIGHT*log_normal_cdf(followers/FOLLOWERS_MEDIAN))/TOTAL_WEIGHT;const level=LEVELS[THRESHOLDS. +findIndex(t=>rank*100<=t)];if(level===void 0){throw new Error("Unable to determine rank level")}return{level,percentile:rank*100}}var toGitHubDateTime=date2=>`${date2.toISOString().slice(0,19)}Z`;var getGitHubYearRange=year=>({from:new Date(Date.UTC(year,0,1)),to:new Date(Date.UTC(year,11,31,23,59,59))});var buildContributionsDocument=years=>{const yearFields=years.map(year=>{const{from,to}=getGitHubYearRange(year);return`year_${year}: contributionsCollection(from: "${toGitHubDateTime(from)}", to: "${toGitHubDateTime( +to)}") { ...YearContributions }`}).join("\n");return graphqlDocument(` query userContributions($login: String!) { user(login: $login) { ${yearFields} @@ -24432,11 +3821,7 @@ fragment YearContributions on ContributionsCollection { contributionCalendar { totalContributions } -}`); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/generated/stats.js -var UserReposDocument = graphqlDocument(` +}`)};var UserReposDocument=graphqlDocument(` query userRepos($login: String!, $after: String, $ownerAffiliations: [RepositoryAffiliation]) { user(login: $login) { ...RepoStars @@ -24462,9 +3847,9 @@ fragment RepoStars on User { fragment RepoNode on Repository { name stargazerCount -}`); -var UserInfoDocument = graphqlDocument(` -query userInfo($login: String!, $after: String, $includeMergedPullRequests: Boolean!, $includeDiscussions: Boolean!, $includeDiscussionsAnswers: Boolean!, $startTime: DateTime = null, $ownerAffiliations: [RepositoryAffiliation], $includeUserRepositories: Boolean!) { +}`);var UserInfoDocument=graphqlDocument(` +query userInfo($login: String!, $after: String, $includeMergedPullRequests: Boolean!, $includeDiscussions: Boolean!, $includeDiscussionsAnswers: Boolean!, $startTime: DateTime = null, $ownerAffiliatio\ +ns: [RepositoryAffiliation], $includeUserRepositories: Boolean!) { user(login: $login) { name login @@ -24528,20 +3913,14 @@ fragment RepoStars on User { fragment RepoNode on Repository { name stargazerCount -}`); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/reposContributedToDocument.js -var MAX_REPOSITORIES_LIMIT = 100; -var buildReposContributedToDocument = (ranges, includeOwnRepos) => { - const rangeFields = ranges.map(({ from, to }, index) => `range_${index}: contributionsCollection(from: "${toGitHubDateTime(from)}", to: "${toGitHubDateTime(to)}") { ...RangeContributionsByRepo }`).join("\n"); - const ownRepoField = includeOwnRepos ? `repositoryContributions(first: $maxRepositories) { +}`);var MAX_REPOSITORIES_LIMIT=100;var buildReposContributedToDocument=(ranges,includeOwnRepos)=>{const rangeFields=ranges.map(({from,to},index)=>`range_${index}: contributionsCollection(from: "${toGitHubDateTime( +from)}", to: "${toGitHubDateTime(to)}") { ...RangeContributionsByRepo }`).join("\n");const ownRepoField=includeOwnRepos?`repositoryContributions(first: $maxRepositories) { nodes { repository { nameWithOwner } } - }` : ""; - return graphqlDocument(` + }`:"";return graphqlDocument(` query userReposContributedTo($login: String!, $maxRepositories: Int!) { user(login: $login) { ${rangeFields} @@ -24564,1434 +3943,194 @@ fragment RangeContributionsByRepo on ContributionsCollection { } } ${ownRepoField} -}`); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/fetchers/stats.js -var fetcher2 = createGraphQLFetcher(UserInfoDocument, "bearer"); -var reposFetcher = createGraphQLFetcher(UserReposDocument, "bearer"); -var statsFetcher = async ({ username, includeMergedPullRequests, includeDiscussions, includeDiscussionsAnswers, startTime, ownerAffiliations, includeUserRepositories }, config2) => { - let stats2 = await retryer(fetcher2, { - login: username, - after: null, - includeMergedPullRequests, - includeDiscussions, - includeDiscussionsAnswers, - startTime, - ownerAffiliations, - includeUserRepositories - }, config2); - if (stats2.data.errors) { - return stats2; - } - const pageLimit = config2.fetchMultiPageStars; - const extraRepoNodes = []; - let pageRepositories = stats2.data.data.user?.repositories; - let previousCursor = null; - let fetchedPages = 1; - while (fetchedPages < pageLimit && // an unstarred repo on the page means the starred ones are exhausted - !pageRepositories?.nodes?.some((node) => node?.stargazerCount === 0) && pageRepositories?.pageInfo.hasNextPage) { - const after = pageRepositories.pageInfo.endCursor; - if (after === null || after === previousCursor) { - break; - } - previousCursor = after; - const page = await retryer(reposFetcher, { login: username, after, ownerAffiliations }, config2); - if (page.data.errors) { - return { - data: { ...stats2.data, errors: page.data.errors }, - statusText: page.statusText - }; - } - pageRepositories = page.data.data.user?.repositories; - extraRepoNodes.push(...pageRepositories?.nodes ?? []); - fetchedPages++; - } - if (extraRepoNodes.length > 0) { - stats2 = structuredClone({ - data: stats2.data, - statusText: stats2.statusText - }); - stats2.data.data.user?.repositories.nodes?.push(...extraRepoNodes); - } - return stats2; -}; -var fetchTotalItems = (variables, token, { fetch: fetch2 }) => { - const type = String(variables["type"]); - const filter = String(variables["filter"]); - const repo = variables["repo"]; - const owner = variables["owner"]; - return httpRequest(fetch2, `https://api.github.com/search/${type}?per_page=1&q=` + buildSearchFilter(repo, owner).replaceAll(" ", "+") + filter, { - method: "GET", - headers: { - "Content-Type": "application/json", - Accept: "application/vnd.github.cloak-preview", - Authorization: `token ${token}` - } - }); -}; -var totalItemsFetcher = async ({ username, repo, owner, type, filter }, config2) => { - if (!module_default.test(username)) { - logger.log("Invalid username provided."); - throw new CardError("Invalid username provided.", { - code: "invalid_param", - param: "username" - }); - } - let res; - try { - res = await retryer(fetchTotalItems, { login: username, repo, owner, type, filter }, config2); - } catch (err) { - logger.log(err); - throw err; - } - const totalCount = res.data.total_count; - if (totalCount === void 0 || isNaN(totalCount)) { - logger.error("GitHub error: " + JSON.stringify(res.data)); - throw new CardError("Could not fetch data from GitHub REST API.", { - code: "upstream" - }); - } - return totalCount; -}; -var fetchRepoUserStats = async ({ username, repo = [], owner = [], include_prs_authored = false, include_prs_commented = false, include_prs_reviewed = false, include_issues_authored = false, include_issues_commented = false }, config2) => { - const stats2 = {}; - if (include_prs_authored) { - stats2.totalPRsAuthored = await totalItemsFetcher({ - username, - repo, - owner, - type: "issues", - filter: `author:${username}+type:pr` - }, config2); - } - if (include_prs_commented) { - stats2.totalPRsCommented = await totalItemsFetcher({ - username, - repo, - owner, - type: "issues", - filter: `commenter:${username}+-author:${username}+type:pr` - }, config2); - } - if (include_prs_reviewed) { - stats2.totalPRsReviewed = await totalItemsFetcher({ - username, - repo, - owner, - type: "issues", - filter: `reviewed-by:${username}+-author:${username}+type:pr` - }, config2); - } - if (include_issues_authored) { - stats2.totalIssuesAuthored = await totalItemsFetcher({ - username, - repo, - owner, - type: "issues", - filter: `author:${username}+type:issue` - }, config2); - } - if (include_issues_commented) { - stats2.totalIssuesCommented = await totalItemsFetcher({ - username, - repo, - owner, - type: "issues", - filter: `commenter:${username}+-author:${username}+type:issue` - }, config2); - } - return stats2; -}; -var graphqlError = (errors, statusText, fallback) => { - logger.error(errors); - const message = errors[0]?.message; - return message ? new CardError(wrapTextMultiline(message, 525, 12)[0] ?? "", { - code: "upstream", - secondaryMessage: statusText - }) : new CardError(fallback, { code: "upstream" }); -}; -var fetchTotalContributions = async (username, years, config2) => { - if (years.length === 0) { - return 0; - } - const contributionsFetcher = createGraphQLFetcher(buildContributionsDocument(years), "bearer"); - const contribRes = await retryer(contributionsFetcher, { login: username }, config2); - if (contribRes.data.errors) { - throw graphqlError(contribRes.data.errors, contribRes.statusText, "Something went wrong while trying to retrieve the contributions data using the GraphQL API."); - } - const user = contribRes.data.data.user; - if (!user) { - return 0; - } - let total = 0; - for (const year of years) { - const yearBlock = user[`year_${year}`]; - if (yearBlock?.contributionCalendar.totalContributions) { - total += yearBlock.contributionCalendar.totalContributions; - } - } - return total; -}; -var MS_PER_DAY = 24 * 60 * 60 * 1e3; -var MAX_RANGES_PER_REQUEST = 100; -var REPOS_CONTRIBUTED_TO_ERROR = "Something went wrong while trying to retrieve the repository contributions data using the GraphQL API."; -var fetchAllTimeReposContributedTo = async (canonicalUsername, years, includeOwnRepos, config2) => { - const repos = /* @__PURE__ */ new Set(); - let pending = years.map(getGitHubYearRange); - while (pending.length > 0) { - const nextPending = []; - for (const chunk of chunkArray(pending, MAX_RANGES_PER_REQUEST)) { - const fetcher5 = createGraphQLFetcher(buildReposContributedToDocument(chunk, includeOwnRepos), "bearer"); - const res = await retryer(fetcher5, { login: canonicalUsername, maxRepositories: MAX_REPOSITORIES_LIMIT }, config2); - if (res.data.errors) { - throw graphqlError(res.data.errors, res.statusText, REPOS_CONTRIBUTED_TO_ERROR); - } - const user = res.data.data.user; - if (!user) { - throw new CardError(REPOS_CONTRIBUTED_TO_ERROR, { code: "upstream" }); - } - for (const [index, range] of chunk.entries()) { - const rangeResponse = user[`range_${index}`]; - if (!rangeResponse) { - throw new CardError(REPOS_CONTRIBUTED_TO_ERROR, { - code: "upstream" - }); - } - const lists = [ - rangeResponse.commitContributionsByRepository, - rangeResponse.issueContributionsByRepository, - rangeResponse.pullRequestContributionsByRepository, - (rangeResponse.repositoryContributions?.nodes ?? []).filter((node) => node !== null) - ]; - const isSaturated = lists.some((list) => list.length >= MAX_REPOSITORIES_LIMIT); - const rangeDays = Math.round((range.to.getTime() - range.from.getTime()) / MS_PER_DAY); - if (isSaturated && rangeDays >= 2) { - const mid = new Date(range.from.getTime() + Math.floor(rangeDays / 2) * MS_PER_DAY); - nextPending.push({ from: range.from, to: new Date(mid.getTime() - 1e3) }, { from: mid, to: range.to }); - continue; - } - if (isSaturated) { - logger.log(`Range ${range.from.toISOString()} - ${range.to.toISOString()} is saturated but cannot be split further.`); - } - for (const { repository } of lists.flat()) { - const name = repository.nameWithOwner; - if (includeOwnRepos || !name.startsWith(`${canonicalUsername}/`)) { - repos.add(name); - } - } - } - } - const saturatedCount = nextPending.length / 2; - if (saturatedCount > 0) { - logger.log(`found ${saturatedCount} saturated ranges, splitting and retrying...`); - } - pending = nextPending; - } - return repos.size; -}; -var fetchStats = async ({ username, include_all_commits = false, exclude_repo = [], include_merged_pull_requests = false, include_discussions = false, include_discussions_answers = false, commits_year, repo = [], owner = [], include_prs_authored = false, include_prs_commented = false, include_prs_reviewed = false, include_issues_authored = false, include_issues_commented = false, ownerAffiliations = [], include_contributions = false, include_all_time_contribs = false, contribs_include_own_repos = false }, config2) => { - if (!username) { - throw CardError.missingParam(["username"]); - } - const stats2 = { - name: "", - totalPRs: 0, - totalPRsMerged: 0, - mergedPRsPercentage: 0, - totalReviews: 0, - totalCommits: 0, - totalIssues: 0, - totalStars: 0, - totalDiscussionsStarted: 0, - totalDiscussionsAnswered: 0, - contributedTo: 0, - allTimeContributedTo: 0, - totalPRsAuthored: 0, - totalPRsCommented: 0, - totalPRsReviewed: 0, - totalIssuesAuthored: 0, - totalIssuesCommented: 0, - totalContributions: 0, - rank: { level: "C", percentile: 100 } - }; - const affiliations = parseOwnerAffiliations(ownerAffiliations); - const res = await statsFetcher({ - username, - includeMergedPullRequests: include_merged_pull_requests, - includeDiscussions: include_discussions, - includeDiscussionsAnswers: include_discussions_answers, - startTime: commits_year === void 0 ? void 0 : toGitHubDateTime(getGitHubYearRange(commits_year).from), - ownerAffiliations: affiliations, - includeUserRepositories: contribs_include_own_repos - }, config2); - if (res.data.errors) { - logger.error(res.data.errors); - const firstError = res.data.errors[0]; - if (firstError?.type === "NOT_FOUND") { - throw new CardError(firstError.message || "Could not fetch user.", { - code: "not_found", - secondaryMessage: USER_NOT_FOUND - }); - } - if (firstError?.message) { - throw new CardError(wrapTextMultiline(firstError.message, 525, 12)[0] ?? "", { - code: "upstream", - secondaryMessage: res.statusText - }); - } - throw new CardError("Something went wrong while trying to retrieve the stats data using the GraphQL API.", { code: "upstream" }); - } - const user = res.data.data.user; - if (!user) { - throw new CardError("Could not fetch user.", { - code: "not_found", - secondaryMessage: USER_NOT_FOUND - }); - } - stats2.name = user.name || user.login; - if (include_all_commits) { - stats2.totalCommits = await totalItemsFetcher({ - username, - repo, - owner, - type: "commits", - filter: `author:${username}` - }, config2); - } else { - stats2.totalCommits = user.commits.totalCommitContributions; - } - const repoUserStats = await fetchRepoUserStats({ - username, - repo, - owner, - include_prs_authored, - include_prs_commented, - include_prs_reviewed, - include_issues_authored, - include_issues_commented - }, config2); - Object.assign(stats2, repoUserStats); - stats2.totalPRs = user.pullRequests.totalCount; - if (include_merged_pull_requests) { - const mergedCount = user.mergedPullRequests?.totalCount ?? 0; - stats2.totalPRsMerged = mergedCount; - stats2.mergedPRsPercentage = mergedCount / user.pullRequests.totalCount * 100 || 0; - } - stats2.totalReviews = user.reviews.totalPullRequestReviewContributions; - stats2.totalIssues = user.openIssues.totalCount + user.closedIssues.totalCount; - if (include_discussions) { - stats2.totalDiscussionsStarted = user.repositoryDiscussions?.totalCount ?? 0; - } - if (include_discussions_answers) { - stats2.totalDiscussionsAnswered = user.repositoryDiscussionComments?.totalCount ?? 0; - } - stats2.contributedTo = user.repositoriesContributedTo.totalCount; - if (include_contributions) { - stats2.totalContributions = await fetchTotalContributions(username, user.contributionsCollection.contributionYears, config2); - } - if (include_all_time_contribs) { - stats2.allTimeContributedTo = await fetchAllTimeReposContributedTo(user.login, user.contributionsCollection.contributionYears, contribs_include_own_repos, config2); - } - const allExcludedRepos = [...exclude_repo, ...config2.excludeRepositories]; - const repoToHide = new Set(allExcludedRepos); - stats2.totalStars = (user.repositories.nodes ?? []).filter((data) => !!data && !repoToHide.has(data.name)).reduce((prev, curr) => prev + (curr?.stargazerCount ?? 0), 0); - stats2.rank = calculateRank({ - all_commits: include_all_commits, - commits: stats2.totalCommits, - prs: stats2.totalPRs, - reviews: stats2.totalReviews, - issues: stats2.totalIssues, - repos: user.repositories.totalCount, - stars: stats2.totalStars, - followers: user.followers.totalCount - }); - return stats2; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/fetchers/repo.js -var fetcher3 = createGraphQLFetcher(GetRepoDocument, "token"); -var urlExample = "/api/pin?username=USERNAME&repo=REPO_NAME"; -var fetchRepo = async ({ username, reponame, include_prs_authored = false, include_prs_commented = false, include_prs_reviewed = false, include_issues_authored = false, include_issues_commented = false }, config2) => { - let owner = username; - if (reponame && reponame.includes("/")) { - const [parsedOwner, parsedRepo] = reponame.split("/"); - owner = parsedOwner ?? ""; - reponame = parsedRepo ?? ""; - } - if (owner && !username) { - username = owner; - } - if (username && !owner) { - owner = username; - } - if (!username && !reponame) { - throw CardError.missingParam(["username", "repo"], urlExample); - } - if (!username) { - throw CardError.missingParam(["username"], urlExample); - } - if (!reponame) { - throw CardError.missingParam(["repo"], urlExample); - } - const repoOwner = owner ?? username; - const res = await retryer(fetcher3, { login: repoOwner, repo: reponame }, config2); - const data = res.data.data; - if (!data.user && !data.organization) { - throw new CardError("Not found", { - code: "not_found", - secondaryMessage: REPO_NOT_FOUND - }); - } - if (data.organization === null && data.user) { - const repository = data.user.repository; - if (!repository || repository.isPrivate) { - throw new CardError("User Repository Not found", { - code: "not_found", - secondaryMessage: REPO_NOT_FOUND - }); - } - const repoUserStats = await fetchRepoUserStats({ - username, - repo: [`${repoOwner}/${reponame}`], - include_prs_authored, - include_prs_commented, - include_prs_reviewed, - include_issues_authored, - include_issues_commented - }, config2); - return { - ...repoUserStats, - ...repository - }; - } - if (data.user === null && data.organization) { - const repository = data.organization.repository; - if (!repository || repository.isPrivate) { - throw new CardError("Organization Repository Not found", { - code: "not_found", - secondaryMessage: REPO_NOT_FOUND - }); - } - const repoUserStats = await fetchRepoUserStats({ - username, - repo: [`${repoOwner}/${reponame}`], - include_prs_authored, - include_prs_commented, - include_prs_reviewed, - include_issues_authored, - include_issues_commented - }, config2); - return { - ...repoUserStats, - ...repository - }; - } - throw new CardError("Unexpected behavior", { code: "upstream" }); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/pin.js -var pinQuery = object({ - username: safeParam, - repo: safeParam, - hide_border: booleanParam, - card_width: looseIntParam, - show_owner: booleanParam, - browser_rendering: booleanParam, - show: listParam, - show_icons: booleanParam, - number_format: rawParam, - text_bold: booleanParam, - line_height: rawParam, - locale: localeParam, - border_radius: numberParam, - description_lines_count: looseIntParam -}); -var pin = async (query, config2) => { - let colors; - try { - colors = parseColorParams(query); - } catch (err) { - return errorResult(err); - } - try { - const { username, repo, hide_border, card_width, show_owner, browser_rendering, show, show_icons, number_format, text_bold, line_height, locale, border_radius, description_lines_count } = parseParams(pinQuery, query); - const repoData = await fetchRepo({ - username, - reponame: repo, - include_prs_authored: show.includes("prs_authored"), - include_prs_commented: show.includes("prs_commented"), - include_prs_reviewed: show.includes("prs_reviewed"), - include_issues_authored: show.includes("issues_authored"), - include_issues_commented: show.includes("issues_commented") - }, config2); - return { - status: "success", - content: renderRepoCard(repoData, { - ...colors, - hide_border, - border_radius, - card_width_input: card_width, - show_owner, - browser_rendering, - show, - show_icons, - number_format, - text_bold, - line_height, - username, - locale, - description_lines_count - }) - }; - } catch (err) { - return errorResult(err, colors); - } -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/cards/stats.js -var CARD_MIN_WIDTH = 287; -var CARD_DEFAULT_WIDTH3 = 287; -var RANK_CARD_MIN_WIDTH = 420; -var RANK_CARD_DEFAULT_WIDTH = 450; -var RANK_ONLY_CARD_MIN_WIDTH = 290; -var RANK_ONLY_CARD_DEFAULT_WIDTH = 290; -var RANK_ICONS = ["default", "github", "percentile"]; -var LONG_LOCALES = [ - "az", - "bg", - "cs", - "de", - "el", - "es", - "fil", - "fi", - "fr", - "hu", - "id", - "ja", - "ml", - "my", - "nl", - "pl", - "pt-br", - "pt-pt", - "ru", - "sr", - "sr-latn", - "sw", - "ta", - "uk-ua", - "uz", - "zh-tw" -]; -var calculateCircleProgress = (value) => { - const radius = 40; - const c = Math.PI * (radius * 2); - if (value < 0) { - value = 0; - } - if (value > 100) { - value = 100; - } - return (100 - value) / 100 * c; -}; -var getProgressAnimation = ({ progress }) => { - return ` - @keyframes rankAnimation { - from { - stroke-dashoffset: ${calculateCircleProgress(0)}; - } - to { - stroke-dashoffset: ${calculateCircleProgress(progress)}; - } - } - `; -}; -var getStyles = ({ textColor, iconColor, ringColor, show_icons, progress }) => { - return ` - .stat { - font: 600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif; fill: ${textColor}; - } - @supports(-moz-appearance: auto) { - /* Selector detects Firefox */ - .stat { font-size:12px; } - } - .stagger { - opacity: 0; - animation: fadeInAnimation 0.3s ease-in-out forwards; - } - .rank-text { - font: 800 24px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${textColor}; - animation: scaleInAnimation 0.3s ease-in-out forwards; - } - .rank-percentile-header { - font-size: 14px; - } - .rank-percentile-text { - font-size: 16px; - } - - .not_bold { font-weight: 400 } - .bold { font-weight: 700 } - .icon { - fill: ${iconColor}; - display: ${show_icons ? "block" : "none"}; - } - - .rank-circle-rim { - stroke: ${ringColor}; - fill: none; - stroke-width: 6; - opacity: 0.2; - } - .rank-circle { - stroke: ${ringColor}; - stroke-dasharray: 250; - fill: none; - stroke-width: 6; - stroke-linecap: round; - opacity: 0.8; - transform-origin: -10px 8px; - transform: rotate(-90deg); - animation: rankAnimation 1s forwards ease-in-out; - } - ${getProgressAnimation({ progress })} - `; -}; -var getTotalCommitsYearLabel = (include_all_commits, commits_year, i18n) => include_all_commits ? "" : commits_year ? ` (${commits_year})` : ` (${i18n.t("wakatimecard.lastyear")})`; -var renderStatsCard = (stats2, options = {}, username, repo = [], owner = []) => { - const { name, totalStars, totalCommits, totalIssues, totalPRs, totalPRsMerged, mergedPRsPercentage, totalReviews, totalDiscussionsStarted, totalDiscussionsAnswered, contributedTo, allTimeContributedTo, totalPRsAuthored, totalPRsCommented, totalPRsReviewed, totalIssuesAuthored, totalIssuesCommented, totalContributions, rank } = stats2; - const { hide: hide2 = [], show_icons = false, hide_title = false, hide_border = false, card_width, hide_rank = false, include_all_commits = false, commits_year, line_height = 25, text_bold = true, custom_title, border_radius, number_format = "short", number_precision, locale, disable_animations = false, rank_icon = "default", show = [] } = options; - const lheight = parseInt(String(line_height), 10); - const { lightColors, darkColors } = getLightDarkColors(options); - const apostrophe = /s$/i.test(name.trim()) ? "" : "s"; - const i18n = new I18n({ - locale, - translations: { - ...statCardLocales({ name, apostrophe }), - ...wakatimeCardLocales - } - }); - const STATS = {}; - STATS["stars"] = { - icon: icons.star, - label: i18n.t("statcard.totalstars"), - value: totalStars, - id: "stars" - }; - if (show.includes("contributions")) { - STATS["contributions"] = { - icon: icons.contributions, - label: i18n.t("statcard.contributions"), - value: totalContributions, - id: "contributions" - }; - } - STATS["commits"] = { - icon: icons.commits, - label: `${i18n.t("statcard.commits")}${getTotalCommitsYearLabel(include_all_commits, commits_year, i18n)}`, - value: totalCommits, - id: "commits" - }; - STATS["prs"] = { - icon: icons.prs, - label: i18n.t("statcard.prs"), - value: totalPRs, - id: "prs" - }; - if (show.includes("prs_merged")) { - STATS["prs_merged"] = { - icon: icons.prs_merged, - label: i18n.t("statcard.prs-merged"), - value: totalPRsMerged, - id: "prs_merged" - }; - } - if (show.includes("prs_merged_percentage")) { - STATS["prs_merged_percentage"] = { - icon: icons.prs_merged_percentage, - label: i18n.t("statcard.prs-merged-percentage"), - value: mergedPRsPercentage.toFixed(number_precision !== void 0 && Number.isFinite(number_precision) ? clampValue(number_precision, 0, 2) : 2), - id: "prs_merged_percentage", - unitSymbol: "%" - }; - } - if (show.includes("reviews")) { - STATS["reviews"] = { - icon: icons.reviews, - label: i18n.t("statcard.reviews"), - value: totalReviews, - id: "reviews" - }; - } - STATS["issues"] = { - icon: icons.issues, - label: i18n.t("statcard.issues"), - value: totalIssues, - id: "issues" - }; - if (show.includes("discussions_started")) { - STATS["discussions_started"] = { - icon: icons.discussions_started, - label: i18n.t("statcard.discussions-started"), - value: totalDiscussionsStarted, - id: "discussions_started" - }; - } - if (show.includes("discussions_answered")) { - STATS["discussions_answered"] = { - icon: icons.discussions_answered, - label: i18n.t("statcard.discussions-answered"), - value: totalDiscussionsAnswered, - id: "discussions_answered" - }; - } - const repoFilter = encodeURIComponent(buildSearchFilter(repo, owner)); - const encodedUsername = encodeURIComponent(username ?? ""); - if (show.includes("prs_authored")) { - STATS["prs_authored"] = { - icon: icons.prs, - label: i18n.t("statcard.prs-authored"), - value: totalPRsAuthored, - id: "prs_authored", - link: `https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=pullrequests` - }; - } - if (show.includes("prs_commented")) { - STATS["prs_commented"] = { - icon: icons.comments, - label: i18n.t("statcard.prs-commented"), - value: totalPRsCommented, - id: "prs_commented", - link: `https://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests` - }; - } - if (show.includes("prs_reviewed")) { - STATS["prs_reviewed"] = { - icon: icons.reviews, - label: i18n.t("statcard.prs-reviewed"), - value: totalPRsReviewed, - id: "prs_reviewed", - link: `https://github.com/search?q=${repoFilter}reviewed-by%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests` - }; - } - if (show.includes("issues_authored")) { - STATS["issues_authored"] = { - icon: icons.issues, - label: i18n.t("statcard.issues-authored"), - value: totalIssuesAuthored, - id: "issues_authored", - link: `https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=issues` - }; - } - if (show.includes("issues_commented")) { - STATS["issues_commented"] = { - icon: icons.discussions_started, - label: i18n.t("statcard.issues-commented"), - value: totalIssuesCommented, - id: "issues_commented", - link: `https://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=issues` - }; - } - STATS["contribs"] = { - icon: icons.contribs, - label: i18n.t("statcard.contribs"), - value: contributedTo, - id: "contribs" - }; - if (show.includes("all_time_contribs")) { - STATS["all_time_contribs"] = { - icon: icons.contribs, - label: i18n.t("statcard.all-time-contribs"), - value: allTimeContributedTo, - id: "all_time_contribs" - }; - } - const isLongLocale = locale ? LONG_LOCALES.includes(locale) : false; - const longLabels = Object.entries(STATS).filter(([key]) => !hide2.includes(key)).some(([, stat2]) => stat2.label.length > 18); - const statItems = Object.entries(STATS).filter(([key]) => !hide2.includes(key)).map(([, stat2], index) => createTextNode({ - icon: stat2.icon, - label: stat2.label, - value: stat2.value, - id: stat2.id, - unitSymbol: stat2.unitSymbol, - index, - showIcons: show_icons, - shiftValuePos: 29.01 + (longLabels ? 50 : 0) + (isLongLocale ? 50 : 0), - bold: text_bold, - numberFormat: number_format, - numberPrecision: number_precision, - link: stat2.link - })); - if (statItems.length === 0 && hide_rank) { - throw new CardError("Could not render stats card.", { - code: "invalid_param", - secondaryMessage: "Either stats or rank are required." - }); - } - const height = Math.max(45 + (statItems.length + 1) * lheight, hide_rank ? 0 : statItems.length ? 150 : 180); - const progress = 100 - rank.percentile; - const calculateTextWidth = () => { - return measureText(custom_title ? custom_title : statItems.length ? i18n.t("statcard.title") : i18n.t("statcard.ranktitle")); - }; - const iconWidth = show_icons && statItems.length ? 16 + /* padding */ - 1 : 0; - const minCardWidth = (hide_rank ? clampValue(50 + calculateTextWidth() * 2, CARD_MIN_WIDTH, Infinity) : statItems.length ? RANK_CARD_MIN_WIDTH : RANK_ONLY_CARD_MIN_WIDTH) + iconWidth; - const defaultCardWidth = (hide_rank ? CARD_DEFAULT_WIDTH3 : statItems.length ? RANK_CARD_DEFAULT_WIDTH : RANK_ONLY_CARD_DEFAULT_WIDTH) + iconWidth; - const width = card_width ? isNaN(card_width) ? Math.max(defaultCardWidth, minCardWidth) : card_width : Math.max(defaultCardWidth, minCardWidth); - const card = new Card({ - customTitle: custom_title, - defaultTitle: statItems.length ? i18n.t("statcard.title") : i18n.t("statcard.ranktitle"), - width, - height, - border_radius, - colors: { light: lightColors, dark: darkColors } - }); - card.setHideBorder(hide_border); - card.setHideTitle(hide_title); - const cardStyles = ({ ringColor, textColor, iconColor }) => getStyles({ ringColor, textColor, iconColor, show_icons, progress }); - card.setCSS({ light: cardStyles, dark: cardStyles }); - if (disable_animations) { - card.disableAnimations(); - } - const calculateRankXTranslation = () => { - if (statItems.length) { - const minXTranslation = RANK_CARD_MIN_WIDTH + iconWidth - 70; - if (width > RANK_CARD_DEFAULT_WIDTH) { - const xMaxExpansion = minXTranslation + (450 - minCardWidth) / 2; - return xMaxExpansion + width - RANK_CARD_DEFAULT_WIDTH; - } else { - return minXTranslation + (width - minCardWidth) / 2; - } - } else { - return width / 2 + 20 - 10; - } - }; - const rankCircle = hide_rank ? "" : ` - - - - ${rankIcon(rank_icon, rank.level, rank.percentile)} - - `; - const labels = Object.entries(STATS).filter(([key]) => !hide2.includes(key)).map(([key, stat2]) => { - if (key === "commits") { - return `${i18n.t("statcard.commits")} ${getTotalCommitsYearLabel(include_all_commits, commits_year, i18n)} : ${stat2.value}`; - } - return `${stat2.label}: ${stat2.value}`; - }).join(", "); - card.setAccessibilityLabel({ - title: `${card.title}, Rank: ${rank.level}`, - desc: labels - }); - return card.render(` - ${rankCircle} - - ${flexLayout({ - items: statItems, - gap: lheight, - direction: "column" - }).join("")} - - `); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/stats.js -var statsQuery = object({ - username: safeParam, - repo: safeListParam, - owner: safeListParam, - hide: listParam, - hide_title: booleanParam, - hide_border: booleanParam, - card_width: looseIntParam, - hide_rank: booleanParam, - show_icons: booleanParam, - include_all_commits: booleanParam, - commits_year: yearParam, - line_height: rawParam, - text_bold: booleanParam, - exclude_repo: listParam, - custom_title: rawParam, - locale: localeParam, - disable_animations: booleanParam, - border_radius: numberParam, - number_format: rawParam, - role: listParam, - number_precision: looseIntParam, - rank_icon: enumParam(RANK_ICONS), - show: listParam, - contribs_include_own_repos: booleanParam -}); -var renderStats = async (query, config2) => { - let colors; - try { - colors = parseColorParams(query); - } catch (err) { - return errorResult(err); - } - try { - const { username, repo, owner, hide: hide2, hide_title, hide_border, card_width, hide_rank, show_icons, include_all_commits, commits_year, line_height, text_bold, exclude_repo, custom_title, locale, disable_animations, border_radius, number_format, role, number_precision, rank_icon, show, contribs_include_own_repos } = parseParams(statsQuery, query); - const repository = repo.map((name) => name.includes("/") ? name : `${username ?? ""}/${name}`); - const stats2 = await fetchStats({ - username, - include_all_commits, - exclude_repo, - include_merged_pull_requests: show.includes("prs_merged") || show.includes("prs_merged_percentage"), - include_discussions: show.includes("discussions_started"), - include_discussions_answers: show.includes("discussions_answered"), - commits_year, - repo: repository, - owner, - include_prs_authored: show.includes("prs_authored"), - include_prs_commented: show.includes("prs_commented"), - include_prs_reviewed: show.includes("prs_reviewed"), - include_issues_authored: show.includes("issues_authored"), - include_issues_commented: show.includes("issues_commented"), - ownerAffiliations: role, - include_contributions: show.includes("contributions"), - include_all_time_contribs: show.includes("all_time_contribs"), - contribs_include_own_repos - }, config2); - return { - status: "success", - content: renderStatsCard(stats2, { - ...colors, - hide: hide2, - show_icons, - hide_title, - hide_border, - card_width, - hide_rank, - include_all_commits, - commits_year, - line_height, - text_bold, - custom_title, - border_radius, - number_format, - number_precision, - locale, - disable_animations, - rank_icon, - show - }, username, repository, owner) - }; - } catch (err) { - return errorResult(err, colors); - } -}; -var stats = Object.assign(renderStats, { - RANK_ICONS -}); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/cards/top-languages.js -var DEFAULT_CARD_WIDTH = 300; -var MIN_CARD_WIDTH = 280; -var CARD_PADDING = 25; -var COMPACT_LAYOUT_BASE_HEIGHT = 90; -var MAXIMUM_LANGS_COUNT = 20; -var NORMAL_LAYOUT_DEFAULT_LANGS_COUNT = 5; -var COMPACT_LAYOUT_DEFAULT_LANGS_COUNT = 6; -var DONUT_LAYOUT_DEFAULT_LANGS_COUNT = 5; -var PIE_LAYOUT_DEFAULT_LANGS_COUNT = 6; -var DONUT_VERTICAL_LAYOUT_DEFAULT_LANGS_COUNT = 6; -var TOP_LANG_LAYOUTS = ["compact", "normal", "donut", "donut-vertical", "pie"]; -var TOP_LANG_STATS_FORMATS = ["percentages", "bytes"]; -var getLongestLang = (arr) => arr.reduce((savedLang, lang) => lang.name.length > savedLang.name.length ? lang : savedLang, { name: "", size: 0, color: "" }); -var degreesToRadians = (angleInDegrees) => angleInDegrees * (Math.PI / 180); -var polarToCartesian = (centerX, centerY, radius, angleInDegrees) => { - const rads = degreesToRadians(angleInDegrees); - return { - x: centerX + radius * Math.cos(rads), - y: centerY + radius * Math.sin(rads) - }; -}; -var getCircleLength = (radius) => { - return 2 * Math.PI * radius; -}; -var calculateCompactLayoutHeight = (totalLangs) => { - return COMPACT_LAYOUT_BASE_HEIGHT + Math.round(totalLangs / 2) * 25; -}; -var calculateNormalLayoutHeight = (totalLangs) => { - return 45 + (totalLangs + 1) * 40; -}; -var calculateDonutLayoutHeight = (totalLangs) => { - return 215 + Math.max(totalLangs - 5, 0) * 32; -}; -var calculateDonutVerticalLayoutHeight = (totalLangs) => { - return 300 + Math.round(totalLangs / 2) * 25; -}; -var calculatePieLayoutHeight = (totalLangs) => { - return 300 + Math.round(totalLangs / 2) * 25; -}; -var donutCenterTranslation = (totalLangs) => { - return -45 + Math.max(totalLangs - 5, 0) * 16; -}; -var trimTopLanguages = (topLangs2, langs_count, hide2) => { - let langs = Object.values(topLangs2); - const langsToHide = {}; - const langsCount = clampValue(langs_count, 1, MAXIMUM_LANGS_COUNT); - if (hide2) { - hide2.forEach((langName) => { - langsToHide[lowercaseTrim(langName)] = true; - }); - } - langs = langs.sort((a, b) => b.size - a.size).filter((lang) => !langsToHide[lowercaseTrim(lang.name)]).slice(0, langsCount); - const totalLanguageSize = langs.reduce((acc, curr) => acc + curr.size, 0); - return { langs, totalLanguageSize }; -}; -var getDisplayValue = (size, percentages, format) => { - return format === "bytes" ? formatBytes(size) : `${percentages.toFixed(2)}%`; -}; -var resolveLangColor = (lang) => { - const color = lang.color || DEFAULT_LANG_COLOR; - if (!isPrefixedHexColor(color)) { - throw new Error(`Invalid language color: "${color}"`); - } - return color; -}; -var createProgressTextNode = ({ width, color, name, size, totalSize, statsFormat, hideValues, index }) => { - const staggerDelay = (index + 3) * 150; - const paddingRight = hideValues ? CARD_PADDING * 2 : 95; - const progressTextX = width - paddingRight + 10; - const progressWidth = width - paddingRight; - const progress = size / totalSize * 100; - const displayValue = getDisplayValue(size, progress, statsFormat); - return ` - - ${encodeHTML(name)} - ${hideValues ? "" : `${encodeHTML(displayValue)}`} - ${createProgressNode({ - x: 0, - y: 25, - color, - width: progressWidth, - progress, - delay: staggerDelay + 300 - })} - - `; -}; -var createCompactLangNode = ({ lang, totalSize, hideProgress, hideValues, statsFormat = "percentages", index }) => { - const percentages = lang.size / totalSize * 100; - const displayValue = getDisplayValue(lang.size, percentages, statsFormat); - const staggerDelay = (index + 3) * 150; - const color = resolveLangColor(lang); - return ` - - - - ${encodeHTML(lang.name)} ${hideProgress || hideValues ? "" : encodeHTML(displayValue)} - - - `; -}; -var createLanguageTextNode = ({ langs, totalSize, hideProgress, hideValues, statsFormat }) => { - const longestLang = getLongestLang(langs); - const chunked = chunkArray(langs, langs.length / 2); - const layouts = chunked.map((array) => { - const items = array.map((lang, index) => createCompactLangNode({ - lang, - totalSize, - hideProgress, - hideValues, - statsFormat, - index - })); - return flexLayout({ - items, - gap: 25, - direction: "column" - }).join(""); - }); - const percent = (longestLang.size / totalSize * 100).toFixed(2); - const minGap = 150; - const maxGap = 20 + measureText(`${longestLang.name} ${percent}%`, 11); - return flexLayout({ - items: layouts, - gap: maxGap < minGap ? minGap : maxGap - }).join(""); -}; -var createDonutLanguagesNode = ({ langs, totalSize, hideValues, statsFormat }) => { - return flexLayout({ - items: langs.map((lang, index) => { - return createCompactLangNode({ - lang, - totalSize, - hideProgress: false, - hideValues, - statsFormat, - index - }); - }), - gap: 32, - direction: "column" - }).join(""); -}; -var renderNormalLayout = (langs, width, totalLanguageSize, statsFormat, hideValues) => { - return flexLayout({ - items: langs.map((lang, index) => { - return createProgressTextNode({ - width, - name: lang.name, - color: lang.color || DEFAULT_LANG_COLOR, - size: lang.size, - totalSize: totalLanguageSize, - statsFormat, - hideValues, - index - }); - }), - gap: 40, - direction: "column" - }).join(""); -}; -var renderCompactLayout = (langs, width, totalLanguageSize, hideProgress, statsFormat = "percentages", hideValues) => { - const paddingRight = 50; - const offsetWidth = width - paddingRight; - let progressOffset = 0; - const compactProgressBar = langs.map((lang) => { - const langColor = resolveLangColor(lang); - const percentage = parseFloat((lang.size / totalLanguageSize * offsetWidth).toFixed(2)); - const progress = percentage < 10 ? percentage + 10 : percentage; - const output = ` - - `; - progressOffset += percentage; - return output; - }).join(""); - return ` - ${hideProgress ? "" : ` - - - - ${compactProgressBar} - `} - - ${createLanguageTextNode({ - langs, - totalSize: totalLanguageSize, - hideProgress, - statsFormat, - hideValues - })} - - `; -}; -var renderDonutVerticalLayout = (langs, totalLanguageSize, statsFormat, hideValues) => { - const radius = 80; - const totalCircleLength = getCircleLength(radius); - const circles = []; - let indent = 0; - let startDelayCoefficient = 1; - for (const lang of langs) { - const langColor = resolveLangColor(lang); - const percentage = lang.size / totalLanguageSize * 100; - const circleLength = totalCircleLength * (percentage / 100); - const delay = startDelayCoefficient * 100; - circles.push(` - - - - `); - indent += circleLength; - startDelayCoefficient += 1; - } - return ` - - - - ${circles.join("")} - - - - - ${createLanguageTextNode({ - langs, - totalSize: totalLanguageSize, - hideProgress: false, - statsFormat, - hideValues - })} - - - - `; -}; -var renderPieLayout = (langs, totalLanguageSize, statsFormat, hideValues) => { - const radius = 90; - const centerX = 150; - const centerY = 100; - let startAngle = 0; - let startDelayCoefficient = 1; - const paths = []; - for (const lang of langs) { - const langColor = resolveLangColor(lang); - if (langs.length === 1) { - paths.push(` - - `); - break; - } - const langSizePart = lang.size / totalLanguageSize; - const percentage = langSizePart * 100; - const angle = langSizePart * 360; - const endAngle = startAngle + angle; - const startPoint = polarToCartesian(centerX, centerY, radius, startAngle); - const endPoint = polarToCartesian(centerX, centerY, radius, endAngle); - const largeArcFlag = angle > 180 ? 1 : 0; - const delay = startDelayCoefficient * 100; - paths.push(` - - - - `); - startAngle = endAngle; - startDelayCoefficient += 1; - } - return ` - - - - ${paths.join("")} - - - - - ${createLanguageTextNode({ - langs, - totalSize: totalLanguageSize, - hideProgress: false, - statsFormat, - hideValues - })} - - - - `; -}; -var createDonutPaths = (cx, cy, radius, percentages) => { - const paths = []; - let startAngle = 0; - const totalPercent = percentages.reduce((acc, curr) => acc + curr, 0); - for (const rawPercent of percentages) { - const percent = parseFloat((rawPercent / totalPercent * 100).toFixed(2)); - const endAngle = 3.6 * percent + startAngle; - const startPoint = polarToCartesian(cx, cy, radius, endAngle - 90); - const endPoint = polarToCartesian(cx, cy, radius, startAngle - 90); - const largeArc = endAngle - startAngle <= 180 ? 0 : 1; - paths.push({ - percent, - d: `M ${startPoint.x} ${startPoint.y} A ${radius} ${radius} 0 ${largeArc} 0 ${endPoint.x} ${endPoint.y}` - }); - startAngle = endAngle; - } - return paths; -}; -var renderDonutLayout = (langs, width, totalLanguageSize, statsFormat, hideValues) => { - if (!Number.isFinite(width)) { - throw new Error(`Invalid width: "${width}"`); - } - const centerX = width / 3; - const centerY = width / 3; - const radius = centerX - 60; - const strokeWidth = 12; - const colors = langs.map(resolveLangColor); - const langsPercents = langs.map((lang) => parseFloat((lang.size / totalLanguageSize * 100).toFixed(2))); - const langPaths = createDonutPaths(centerX, centerY, radius, langsPercents); - const donutPaths = langs.length === 1 ? `` : langPaths.map((section, index) => { - const staggerDelay = (index + 3) * 100; - const delay = staggerDelay + 300; - const output = ` - - - - - `; - return output; - }).join(""); - const donut = `${donutPaths}`; - return ` - - - ${createDonutLanguagesNode({ langs, totalSize: totalLanguageSize, hideValues, statsFormat })} - - - - ${donut} - - - `; -}; -var noLanguagesDataNode = ({ text, layout }) => { - return ` - ${encodeHTML(text)} - `; -}; -var getDefaultLanguagesCountByLayout = ({ layout, hide_progress }) => { - if (layout === "compact" || hide_progress === true) { - return COMPACT_LAYOUT_DEFAULT_LANGS_COUNT; - } else if (layout === "donut") { - return DONUT_LAYOUT_DEFAULT_LANGS_COUNT; - } else if (layout === "donut-vertical") { - return DONUT_VERTICAL_LAYOUT_DEFAULT_LANGS_COUNT; - } else if (layout === "pie") { - return PIE_LAYOUT_DEFAULT_LANGS_COUNT; - } else { - return NORMAL_LAYOUT_DEFAULT_LANGS_COUNT; - } -}; -var renderTopLanguages = (topLangs2, options = {}) => { - const { hide_title = false, hide_border = false, card_width, hide: hide2, hide_progress, hide_values, layout, custom_title, locale, langs_count = getDefaultLanguagesCountByLayout({ layout, hide_progress }), border_radius, disable_animations, stats_format = "percentages" } = options; - const i18n = new I18n({ - locale, - translations: langCardLocales - }); - const { langs, totalLanguageSize } = trimTopLanguages(topLangs2, langs_count, hide2); - let width = card_width ? isNaN(card_width) ? DEFAULT_CARD_WIDTH : card_width < MIN_CARD_WIDTH ? MIN_CARD_WIDTH : card_width : DEFAULT_CARD_WIDTH; - let height = calculateNormalLayoutHeight(langs.length); - const { lightColors, darkColors } = getLightDarkColors(options); - let finalLayout; - if (langs.length === 0) { - height = COMPACT_LAYOUT_BASE_HEIGHT; - finalLayout = noLanguagesDataNode({ - text: i18n.t("langcard.nodata"), - layout - }); - } else if (layout === "pie") { - height = calculatePieLayoutHeight(langs.length); - finalLayout = renderPieLayout(langs, totalLanguageSize, stats_format, hide_values); - } else if (layout === "donut-vertical") { - height = calculateDonutVerticalLayoutHeight(langs.length); - finalLayout = renderDonutVerticalLayout(langs, totalLanguageSize, stats_format, hide_values); - } else if (layout === "compact" || hide_progress === true) { - height = calculateCompactLayoutHeight(langs.length) + (hide_progress ? -25 : 0); - finalLayout = renderCompactLayout(langs, width, totalLanguageSize, hide_progress, stats_format, hide_values); - } else if (layout === "donut") { - height = calculateDonutLayoutHeight(langs.length); - width = width + 50; - finalLayout = renderDonutLayout(langs, width, totalLanguageSize, stats_format, hide_values); - } else { - finalLayout = renderNormalLayout(langs, width, totalLanguageSize, stats_format, hide_values); - } - const card = new Card({ - customTitle: custom_title, - defaultTitle: i18n.t("langcard.title"), - width, - height, - border_radius, - colors: { light: lightColors, dark: darkColors } - }); - if (disable_animations) { - card.disableAnimations(); - } - card.setHideBorder(hide_border); - card.setHideTitle(hide_title); - card.setCSS({ - light: ({ textColor, progBarBgColor }) => ` - @keyframes slideInAnimation { - from { - width: 0; - } - to { - width: calc(100%-100px); - } - } - @keyframes growWidthAnimation { - from { - width: 0; - } - to { - width: 100%; - } - } - .stat { - font: 600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif; fill: ${textColor}; - } - @supports(-moz-appearance: auto) { - /* Selector detects Firefox */ - .stat { font-size:12px; } - } - .bold { font-weight: 700 } - .lang-name { - font: 400 11px "Segoe UI", Ubuntu, Sans-Serif; - fill: ${textColor}; - } - .stagger { - opacity: 0; - animation: fadeInAnimation 0.3s ease-in-out forwards; - } - #rect-mask rect{ - animation: slideInAnimation 1s ease-in-out forwards; - } - .lang-progress{ - animation: growWidthAnimation 0.6s ease-in-out forwards; - } - .progress-background { fill: ${progBarBgColor}; } - `, - dark: ({ textColor, progBarBgColor }) => ` - .stat { fill: ${textColor}; } - .lang-name { fill: ${textColor}; } - .progress-background { fill: ${progBarBgColor}; } - ` - }); - card.setAccessibilityLabel({ - title: card.title, - desc: langs.map((lang) => `${lang.name} ${(lang.size / totalLanguageSize * 100).toFixed(2)}%`).join(", ") - }); - if (layout === "pie" || layout === "donut-vertical") { - return card.render(finalLayout); - } - return card.render(` - - ${finalLayout} - - `); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/graphql/generated/top-languages.js -var TopLanguagesDocument = graphqlDocument(` +}`)};var fetcher2=createGraphQLFetcher(UserInfoDocument,"bearer");var reposFetcher=createGraphQLFetcher(UserReposDocument,"bearer");var statsFetcher=async({username,includeMergedPullRequests,includeDiscussions, +includeDiscussionsAnswers,startTime,ownerAffiliations,includeUserRepositories},config2)=>{let stats2=await retryer(fetcher2,{login:username,after:null,includeMergedPullRequests,includeDiscussions,includeDiscussionsAnswers, +startTime,ownerAffiliations,includeUserRepositories},config2);if(stats2.data.errors){return stats2}const pageLimit=config2.fetchMultiPageStars;const extraRepoNodes=[];let pageRepositories=stats2.data. +data.user?.repositories;let previousCursor=null;let fetchedPages=1;while(fetchedPagesnode?.stargazerCount===0)&&pageRepositories?.pageInfo.hasNextPage){ +const after=pageRepositories.pageInfo.endCursor;if(after===null||after===previousCursor){break}previousCursor=after;const page=await retryer(reposFetcher,{login:username,after,ownerAffiliations},config2); +if(page.data.errors){return{data:{...stats2.data,errors:page.data.errors},statusText:page.statusText}}pageRepositories=page.data.data.user?.repositories;extraRepoNodes.push(...pageRepositories?.nodes?? +[]);fetchedPages+=1}if(extraRepoNodes.length>0){stats2=structuredClone({data:stats2.data,statusText:stats2.statusText});stats2.data.data.user?.repositories.nodes?.push(...extraRepoNodes)}return stats2}; +var fetchTotalItems=(variables,token,{fetch:fetch2})=>{const type=String(variables["type"]);const filter=String(variables["filter"]);const repo=variables["repo"];const owner=variables["owner"];return httpRequest( +fetch2,`https://api.github.com/search/${type}?per_page=1&q=${buildSearchFilter(repo,owner).replaceAll(" ","+")}${filter}`,{method:"GET",headers:{"Content-Type":"application/json",Accept:"application/v\ +nd.github.cloak-preview",Authorization:`token ${token}`}})};var totalItemsFetcher=async({username,repo,owner,type,filter},config2)=>{if(!GITHUB_USERNAME_PATTERN.test(username)){logger.log("Invalid use\ +rname provided.");throw new CardError("Invalid username provided.",{code:"invalid_param",param:"username"})}let res;try{res=await retryer(fetchTotalItems,{login:username,repo,owner,type,filter},config2)}catch(error2){ +logger.log(error2);throw error2}const totalCount=res.data.total_count;if(typeof totalCount!=="number"||Number.isNaN(totalCount)){logger.error(`GitHub error: ${JSON.stringify(res.data)}`);throw new CardError( +"Could not fetch data from GitHub REST API.",{code:"upstream"})}return totalCount};var fetchRepoUserStats=async({username,repo=[],owner=[],include_prs_authored=false,include_prs_commented=false,include_prs_reviewed=false, +include_issues_authored=false,include_issues_commented=false},config2)=>{const stats2={};if(include_prs_authored){stats2.totalPRsAuthored=await totalItemsFetcher({username,repo,owner,type:"issues",filter:`\ +author:${username}+type:pr`},config2)}if(include_prs_commented){stats2.totalPRsCommented=await totalItemsFetcher({username,repo,owner,type:"issues",filter:`commenter:${username}+-author:${username}+ty\ +pe:pr`},config2)}if(include_prs_reviewed){stats2.totalPRsReviewed=await totalItemsFetcher({username,repo,owner,type:"issues",filter:`reviewed-by:${username}+-author:${username}+type:pr`},config2)}if(include_issues_authored){ +stats2.totalIssuesAuthored=await totalItemsFetcher({username,repo,owner,type:"issues",filter:`author:${username}+type:issue`},config2)}if(include_issues_commented){stats2.totalIssuesCommented=await totalItemsFetcher( +{username,repo,owner,type:"issues",filter:`commenter:${username}+-author:${username}+type:issue`},config2)}return stats2};var graphqlError=(errors,statusText,fallback)=>{logger.error(errors);const message=errors[0]?. +message;return message?new CardError(wrapTextMultiline(message,525,12)[0]??"",{code:"upstream",secondaryMessage:statusText}):new CardError(fallback,{code:"upstream"})};var fetchTotalContributions=async(username,years,config2)=>{ +if(years.length===0){return 0}const contributionsFetcher=createGraphQLFetcher(buildContributionsDocument(years),"bearer");const contribRes=await retryer(contributionsFetcher,{login:username},config2); +if(contribRes.data.errors){throw graphqlError(contribRes.data.errors,contribRes.statusText,"Something went wrong while trying to retrieve the contributions data using the GraphQL API.")}const{user}=contribRes. +data.data;if(!user){return 0}let total=0;for(const year of years){const yearBlock=user[`year_${year}`];if(yearBlock?.contributionCalendar.totalContributions){total+=yearBlock.contributionCalendar.totalContributions}} +return total};var MS_PER_DAY=24*60*60*1e3;var MAX_RANGES_PER_REQUEST=100;var REPOS_CONTRIBUTED_TO_ERROR="Something went wrong while trying to retrieve the repository contributions data using the Graph\ +QL API.";var fetchAllTimeReposContributedTo=async(canonicalUsername,years,includeOwnRepos,config2)=>{const repos=new Set;let pending=years.map(year=>getGitHubYearRange(year));while(pending.length>0){const nextPending=[]; +for(const chunk of chunkArray(pending,MAX_RANGES_PER_REQUEST)){const chunkFetcher=createGraphQLFetcher(buildReposContributedToDocument(chunk,includeOwnRepos),"bearer");const res=await retryer(chunkFetcher, +{login:canonicalUsername,maxRepositories:MAX_REPOSITORIES_LIMIT},config2);if(res.data.errors){throw graphqlError(res.data.errors,res.statusText,REPOS_CONTRIBUTED_TO_ERROR)}const{user}=res.data.data;if(!user){ +throw new CardError(REPOS_CONTRIBUTED_TO_ERROR,{code:"upstream"})}for(const[index,range]of chunk.entries()){const rangeResponse=user[`range_${index}`];if(!rangeResponse){throw new CardError(REPOS_CONTRIBUTED_TO_ERROR, +{code:"upstream"})}const lists=[rangeResponse.commitContributionsByRepository,rangeResponse.issueContributionsByRepository,rangeResponse.pullRequestContributionsByRepository,(rangeResponse.repositoryContributions?. +nodes??[]).filter(node=>node!==null)];const isSaturated=lists.some(list=>list.length>=MAX_REPOSITORIES_LIMIT);const rangeDays=Math.round((range.to.getTime()-range.from.getTime())/MS_PER_DAY);if(isSaturated&& +rangeDays>=2){const mid=new Date(range.from.getTime()+Math.floor(rangeDays/2)*MS_PER_DAY);nextPending.push({from:range.from,to:new Date(mid.getTime()-1e3)},{from:mid,to:range.to});continue}if(isSaturated){ +logger.log(`Range ${range.from.toISOString()} - ${range.to.toISOString()} is saturated but cannot be split further.`)}for(const{repository}of lists.flat()){const name=repository.nameWithOwner;if(includeOwnRepos|| +!name.startsWith(`${canonicalUsername}/`)){repos.add(name)}}}}const saturatedCount=nextPending.length/2;if(saturatedCount>0){logger.log(`found ${saturatedCount} saturated ranges, splitting and retryin\ +g...`)}pending=nextPending}return repos.size};var fetchStats=async({username,include_all_commits=false,exclude_repo=[],include_merged_pull_requests=false,include_discussions=false,include_discussions_answers=false, +commits_year,repo=[],owner=[],include_prs_authored=false,include_prs_commented=false,include_prs_reviewed=false,include_issues_authored=false,include_issues_commented=false,ownerAffiliations=[],include_contributions=false, +include_all_time_contribs=false,contribs_include_own_repos=false},config2)=>{if(!username){throw CardError.missingParam(["username"])}const stats2={name:"",totalPRs:0,totalPRsMerged:0,mergedPRsPercentage:0, +totalReviews:0,totalCommits:0,totalIssues:0,totalStars:0,totalDiscussionsStarted:0,totalDiscussionsAnswered:0,contributedTo:0,allTimeContributedTo:0,totalPRsAuthored:0,totalPRsCommented:0,totalPRsReviewed:0, +totalIssuesAuthored:0,totalIssuesCommented:0,totalContributions:0,rank:{level:"C",percentile:100}};const affiliations=parseOwnerAffiliations(ownerAffiliations);const res=await statsFetcher({username,includeMergedPullRequests:include_merged_pull_requests, +includeDiscussions:include_discussions,includeDiscussionsAnswers:include_discussions_answers,startTime:commits_year===void 0?void 0:toGitHubDateTime(getGitHubYearRange(commits_year).from),ownerAffiliations:affiliations, +includeUserRepositories:contribs_include_own_repos},config2);if(res.data.errors){logger.error(res.data.errors);const[firstError]=res.data.errors;if(firstError?.type==="NOT_FOUND"){throw new CardError( +firstError.message||"Could not fetch user.",{code:"not_found",secondaryMessage:USER_NOT_FOUND})}if(firstError?.message){throw new CardError(wrapTextMultiline(firstError.message,525,12)[0]??"",{code:"u\ +pstream",secondaryMessage:res.statusText})}throw new CardError("Something went wrong while trying to retrieve the stats data using the GraphQL API.",{code:"upstream"})}const{user}=res.data.data;if(!user){ +throw new CardError("Could not fetch user.",{code:"not_found",secondaryMessage:USER_NOT_FOUND})}stats2.name=user.name||user.login;if(include_all_commits){stats2.totalCommits=await totalItemsFetcher({username, +repo,owner,type:"commits",filter:`author:${username}`},config2)}else{stats2.totalCommits=user.commits.totalCommitContributions}const repoUserStats=await fetchRepoUserStats({username,repo,owner,include_prs_authored, +include_prs_commented,include_prs_reviewed,include_issues_authored,include_issues_commented},config2);Object.assign(stats2,repoUserStats);stats2.totalPRs=user.pullRequests.totalCount;if(include_merged_pull_requests){ +const mergedCount=user.mergedPullRequests?.totalCount??0;stats2.totalPRsMerged=mergedCount;stats2.mergedPRsPercentage=mergedCount/user.pullRequests.totalCount*100||0}stats2.totalReviews=user.reviews.totalPullRequestReviewContributions; +stats2.totalIssues=user.openIssues.totalCount+user.closedIssues.totalCount;if(include_discussions){stats2.totalDiscussionsStarted=user.repositoryDiscussions?.totalCount??0}if(include_discussions_answers){ +stats2.totalDiscussionsAnswered=user.repositoryDiscussionComments?.totalCount??0}stats2.contributedTo=user.repositoriesContributedTo.totalCount;if(include_contributions){stats2.totalContributions=await fetchTotalContributions( +username,user.contributionsCollection.contributionYears,config2)}if(include_all_time_contribs){stats2.allTimeContributedTo=await fetchAllTimeReposContributedTo(user.login,user.contributionsCollection. +contributionYears,contribs_include_own_repos,config2)}const allExcludedRepos=[...exclude_repo,...config2.excludeRepositories];const repoToHide=new Set(allExcludedRepos);stats2.totalStars=(user.repositories. +nodes??[]).filter(data=>!!data&&!repoToHide.has(data.name)).reduce((prev,curr)=>prev+(curr?.stargazerCount??0),0);stats2.rank=calculateRank({all_commits:include_all_commits,commits:stats2.totalCommits, +prs:stats2.totalPRs,reviews:stats2.totalReviews,issues:stats2.totalIssues,repos:user.repositories.totalCount,stars:stats2.totalStars,followers:user.followers.totalCount});return stats2};var fetcher3=createGraphQLFetcher(GetRepoDocument,"token");var urlExample="/api/pin?username=USERNAME&repo=REPO_NAME";var fetchRepo=async({username,reponame,include_prs_authored=false,include_prs_commented=false, +include_prs_reviewed=false,include_issues_authored=false,include_issues_commented=false},config2)=>{let parsedOwner=username;let repo=reponame;if(repo?.includes("/")){const[ownerFromRepo,nameFromRepo]=repo. +split("/");parsedOwner=ownerFromRepo??"";repo=nameFromRepo??""}const login=username||parsedOwner;if(!login&&!repo){throw CardError.missingParam(["username","repo"],urlExample)}if(!login){throw CardError. +missingParam(["username"],urlExample)}if(!repo){throw CardError.missingParam(["repo"],urlExample)}const repoOwner=parsedOwner||login;const res=await retryer(fetcher3,{login:repoOwner,repo},config2);const{ +data}=res.data;if(!data.user&&!data.organization){throw new CardError("Not found",{code:"not_found",secondaryMessage:REPO_NOT_FOUND})}if(data.organization===null&&data.user){const{repository}=data.user; +if(!repository||repository.isPrivate){throw new CardError("User Repository Not found",{code:"not_found",secondaryMessage:REPO_NOT_FOUND})}const repoUserStats=await fetchRepoUserStats({username:login,repo:[ +`${repoOwner}/${repo}`],include_prs_authored,include_prs_commented,include_prs_reviewed,include_issues_authored,include_issues_commented},config2);return{...repoUserStats,...repository}}if(data.user=== +null&&data.organization){const{repository}=data.organization;if(!repository||repository.isPrivate){throw new CardError("Organization Repository Not found",{code:"not_found",secondaryMessage:REPO_NOT_FOUND})} +const repoUserStats=await fetchRepoUserStats({username:login,repo:[`${repoOwner}/${repo}`],include_prs_authored,include_prs_commented,include_prs_reviewed,include_issues_authored,include_issues_commented}, +config2);return{...repoUserStats,...repository}}throw new CardError("Unexpected behavior",{code:"upstream"})};var pinQuery=object({username:usernameParam,repo:safeParam,hide_border:booleanParam,card_width:looseIntParam,show_owner:booleanParam,browser_rendering:booleanParam,show:listParam,show_icons:booleanParam, +number_format:rawParam,text_bold:booleanParam,line_height:rawParam,locale:localeParam,border_radius:numberParam,description_lines_count:looseIntParam});var pin=async(query,config2)=>{let colors;try{colors= +parseColorParams(query)}catch(error2){return errorResult(error2)}try{const{username,repo,hide_border,card_width,show_owner,browser_rendering,show,show_icons,number_format,text_bold,line_height,locale, +border_radius,description_lines_count}=parseParams(pinQuery,query);const repoData=await fetchRepo({username,reponame:repo,include_prs_authored:show.includes("prs_authored"),include_prs_commented:show. +includes("prs_commented"),include_prs_reviewed:show.includes("prs_reviewed"),include_issues_authored:show.includes("issues_authored"),include_issues_commented:show.includes("issues_commented")},config2); +return{status:"success",content:renderRepoCard(repoData,{...colors,hide_border,border_radius,card_width_input:card_width,show_owner,browser_rendering,show,show_icons,number_format,text_bold,line_height, +username,locale,description_lines_count})}}catch(error2){return errorResult(error2,colors)}};var CARD_MIN_WIDTH=287;var CARD_DEFAULT_WIDTH3=287;var RANK_CARD_MIN_WIDTH=420;var RANK_CARD_DEFAULT_WIDTH=450;var RANK_ONLY_CARD_MIN_WIDTH=290;var RANK_ONLY_CARD_DEFAULT_WIDTH=290;var STAT_FONT_SIZE=14; +var CARD_PADDING_X=25;var STAT_ROW_X=25;var RANK_GUTTER=120;var LABEL_X_OFFSET=25;var LABEL_VALUE_GAP=16;var RANK_ICONS=["default","github","percentile"];var LONG_LOCALES=new Set(["az","bg","cs","de", +"el","es","fil","fi","fr","hu","id","ja","ml","my","nl","pl","pt-br","pt-pt","ru","sr","sr-latn","sw","ta","uk-ua","uz","zh-tw"]);var calculateCircleProgress=value=>{const radius=40;const circumference=Math. +PI*(radius*2);const clamped=Math.min(Math.max(value,0),100);return(100-clamped)/100*circumference};var getProgressAnimation=({progress})=>atRule("@keyframes rankAnimation",rule("from",{"stroke-dashoff\ +set":calculateCircleProgress(0)}),rule("to",{"stroke-dashoffset":calculateCircleProgress(progress)}));var getStyles=({textColor,iconColor,ringColor,show_icons,progress})=>[rule(".stat",{font:`400 ${STAT_FONT_SIZE}\ +px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif`,fill:textColor,"font-variant-numeric":"tabular-nums"}),atRule("@supports(-moz-appearance: auto)",cssComment("Selector detects Firefox"),rule(".stat", +{"font-size":"12px"})),rule(".stagger",{opacity:0,animation:"fadeInAnimation 0.3s ease-in-out forwards"}),rule(".rank-text",{font:"700 22px 'Segoe UI', Ubuntu, Sans-Serif",fill:textColor,animation:"sc\ +aleInAnimation 0.3s ease-in-out forwards"}),rule(".rank-percentile-header",{"font-size":"14px"}),rule(".rank-percentile-text",{"font-size":"16px"}),cssComment("Labels recede so that the values read fi\ +rst."),rule(".not_bold",{"font-weight":400,opacity:.75}),rule(".bold",{"font-weight":600}),rule(".icon",{fill:iconColor,opacity:.75,display:show_icons?"block":"none"}),rule(".rank-circle-rim",{stroke:ringColor, +fill:"none","stroke-width":4,opacity:.15}),rule(".rank-circle",{stroke:ringColor,"stroke-dasharray":250,fill:"none","stroke-width":4,"stroke-linecap":"round",opacity:1,"transform-origin":"-10px 8px",transform:"\ +rotate(-90deg)",animation:"rankAnimation 0.8s forwards ease-in-out"}),getProgressAnimation({progress})];var getTotalCommitsYearLabel=(include_all_commits,commits_year,i18n)=>include_all_commits?"":commits_year? +` (${commits_year})`:` (${i18n.t("wakatimecard.lastyear")})`;var renderStatsCard=(stats2,options={},username,repo=[],owner=[])=>{const{name,totalStars,totalCommits,totalIssues,totalPRs,totalPRsMerged, +mergedPRsPercentage,totalReviews,totalDiscussionsStarted,totalDiscussionsAnswered,contributedTo,allTimeContributedTo,totalPRsAuthored,totalPRsCommented,totalPRsReviewed,totalIssuesAuthored,totalIssuesCommented, +totalContributions,rank}=stats2;const{hide:hide2=[],show_icons=false,hide_title=false,hide_border=false,card_width,hide_rank=false,include_all_commits=false,commits_year,line_height=25,text_bold=true, +custom_title,border_radius,number_format="short",number_precision,locale,disable_animations=false,rank_icon="default",show=[]}=options;const lheight=Number.parseInt(String(line_height),10);const{lightColors, +darkColors}=getLightDarkColors(options);const apostrophe=/s$/i.test(name.trim())?"":"s";const i18n=new I18n({locale,translations:{...statCardLocales({name,apostrophe}),...wakatimeCardLocales}});const STATS={ +stars:{icon:icons.star,label:i18n.t("statcard.totalstars"),value:totalStars,id:"stars"}};if(show.includes("contributions")){STATS["contributions"]={icon:icons.contributions,label:i18n.t("statcard.cont\ +ributions"),value:totalContributions,id:"contributions"}}STATS["commits"]={icon:icons.commits,label:`${i18n.t("statcard.commits")}${getTotalCommitsYearLabel(include_all_commits,commits_year,i18n)}`,value:totalCommits, +id:"commits"};STATS["prs"]={icon:icons.prs,label:i18n.t("statcard.prs"),value:totalPRs,id:"prs"};if(show.includes("prs_merged")){STATS["prs_merged"]={icon:icons.prs_merged,label:i18n.t("statcard.prs-m\ +erged"),value:totalPRsMerged,id:"prs_merged"}}if(show.includes("prs_merged_percentage")){STATS["prs_merged_percentage"]={icon:icons.prs_merged_percentage,label:i18n.t("statcard.prs-merged-percentage"), +value:mergedPRsPercentage.toFixed(number_precision!==void 0&&Number.isFinite(number_precision)?clampValue(number_precision,0,2):2),id:"prs_merged_percentage",unitSymbol:"%"}}if(show.includes("reviews")){ +STATS["reviews"]={icon:icons.reviews,label:i18n.t("statcard.reviews"),value:totalReviews,id:"reviews"}}STATS["issues"]={icon:icons.issues,label:i18n.t("statcard.issues"),value:totalIssues,id:"issues"}; +if(show.includes("discussions_started")){STATS["discussions_started"]={icon:icons.discussions_started,label:i18n.t("statcard.discussions-started"),value:totalDiscussionsStarted,id:"discussions_started"}} +if(show.includes("discussions_answered")){STATS["discussions_answered"]={icon:icons.discussions_answered,label:i18n.t("statcard.discussions-answered"),value:totalDiscussionsAnswered,id:"discussions_an\ +swered"}}const repoFilter=encodeURIComponent(buildSearchFilter(repo,owner));const encodedUsername=encodeURIComponent(username??"");if(show.includes("prs_authored")){STATS["prs_authored"]={icon:icons.prs, +label:i18n.t("statcard.prs-authored"),value:totalPRsAuthored,id:"prs_authored",link:`https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=pullrequests`}}if(show.includes("prs_\ +commented")){STATS["prs_commented"]={icon:icons.comments,label:i18n.t("statcard.prs-commented"),value:totalPRsCommented,id:"prs_commented",link:`https://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}\ ++-author%3A${encodedUsername}&type=pullrequests`}}if(show.includes("prs_reviewed")){STATS["prs_reviewed"]={icon:icons.reviews,label:i18n.t("statcard.prs-reviewed"),value:totalPRsReviewed,id:"prs_r\ +eviewed",link:`https://github.com/search?q=${repoFilter}reviewed-by%3A${encodedUsername}+-author%3A${encodedUsername}&type=pullrequests`}}if(show.includes("issues_authored")){STATS["issues_authore\ +d"]={icon:icons.issues,label:i18n.t("statcard.issues-authored"),value:totalIssuesAuthored,id:"issues_authored",link:`https://github.com/search?q=${repoFilter}author%3A${encodedUsername}&type=issue\ +s`}}if(show.includes("issues_commented")){STATS["issues_commented"]={icon:icons.discussions_started,label:i18n.t("statcard.issues-commented"),value:totalIssuesCommented,id:"issues_commented",link:`htt\ +ps://github.com/search?q=${repoFilter}commenter%3A${encodedUsername}+-author%3A${encodedUsername}&type=issues`}}STATS["contribs"]={icon:icons.contribs,label:i18n.t("statcard.contribs"),value:contributedTo, +id:"contribs"};if(show.includes("all_time_contribs")){STATS["all_time_contribs"]={icon:icons.contribs,label:i18n.t("statcard.all-time-contribs"),value:allTimeContributedTo,id:"all_time_contribs"}}const isLongLocale=locale? +LONG_LOCALES.has(locale):false;const visibleStats=Object.entries(STATS).filter(([key])=>!hide2.includes(key));if(visibleStats.length===0&&hide_rank){throw new CardError("Could not render stats card.", +{code:"invalid_param",secondaryMessage:"Either stats or rank are required."})}const longLabels=visibleStats.some(([,stat2])=>stat2.label.length>18);const height=Math.max(45+(visibleStats.length+1)*lheight, +hide_rank?0:visibleStats.length>0?150:180);const progress=100-rank.percentile;const calculateTextWidth=()=>measureText(custom_title||(visibleStats.length>0?i18n.t("statcard.title"):i18n.t("statcard.ra\ +nktitle")));const iconWidth=show_icons&&visibleStats.length>0?16+1:0;const minCardWidth=(hide_rank?clampValue(50+calculateTextWidth()*2,CARD_MIN_WIDTH,Infinity):visibleStats.length>0?RANK_CARD_MIN_WIDTH: +RANK_ONLY_CARD_MIN_WIDTH)+iconWidth;const defaultCardWidth=(hide_rank?CARD_DEFAULT_WIDTH3:visibleStats.length>0?RANK_CARD_DEFAULT_WIDTH:RANK_ONLY_CARD_DEFAULT_WIDTH)+iconWidth;const width=card_width?Number. +isNaN(card_width)?Math.max(defaultCardWidth,minCardWidth):card_width:Math.max(defaultCardWidth,minCardWidth);const widestLabel=visibleStats.length>0?Math.max(...visibleStats.map(([,stat2])=>measureText( +`${stat2.label}:`,STAT_FONT_SIZE))):0;const valueAnchorX=Math.round(Math.max(width-CARD_PADDING_X-STAT_ROW_X-(hide_rank?0:RANK_GUTTER),(show_icons?LABEL_X_OFFSET:0)+widestLabel+LABEL_VALUE_GAP));const statItems=visibleStats. +map(([,stat2],index)=>createTextNode({icon:stat2.icon,label:stat2.label,value:stat2.value,id:stat2.id,unitSymbol:stat2.unitSymbol,index,showIcons:show_icons,shiftValuePos:29.01+(longLabels?50:0)+(isLongLocale? +50:0),valueAnchorX,bold:text_bold,labelBold:false,numberFormat:number_format,numberPrecision:number_precision,link:stat2.link}));const card=new Card({customTitle:custom_title,defaultTitle:visibleStats. +length>0?i18n.t("statcard.title"):i18n.t("statcard.ranktitle"),width,height,border_radius,colors:{light:lightColors,dark:darkColors}});card.setHideBorder(hide_border);card.setHideTitle(hide_title);const cardStyles=({ +ringColor,textColor,iconColor})=>getStyles({ringColor,textColor,iconColor,show_icons,progress});card.setCSS({light:cardStyles,dark:cardStyles});if(disable_animations){card.disableAnimations()}const calculateRankXTranslation=()=>{ +if(visibleStats.length>0){const minXTranslation=RANK_CARD_MIN_WIDTH+iconWidth-70;if(width>RANK_CARD_DEFAULT_WIDTH){const xMaxExpansion=minXTranslation+(450-minCardWidth)/2;return xMaxExpansion+width-RANK_CARD_DEFAULT_WIDTH} +return minXTranslation+(width-minCardWidth)/2}return width/2+20-10};const rankCircle=!hide_rank&&el("g",{"data-testid":"rank-circle",transform:`translate(${calculateRankXTranslation()}, ${height/2-50}\ +)`},el("circle",{class:"rank-circle-rim",cx:-10,cy:8,r:40}),el("circle",{class:"rank-circle",cx:-10,cy:8,r:40}),el("g",{class:"rank-text"},rankIcon(rank_icon,rank.level,rank.percentile)));const labels=visibleStats. +map(([key,stat2])=>{if(key==="commits"){return`${i18n.t("statcard.commits")} ${getTotalCommitsYearLabel(include_all_commits,commits_year,i18n)} : ${stat2.value}`}return`${stat2.label}: ${stat2.value}`}). +join(", ");card.setAccessibilityLabel({title:`${card.title}, Rank: ${rank.level}`,desc:labels});return card.render([rankCircle,el("svg",{x:0,y:0},flexLayout({items:statItems,gap:lheight,direction:"col\ +umn"}))])};var statsQuery=object({username:usernameParam,repo:safeListParam,owner:safeListParam,hide:listParam,hide_title:booleanParam,hide_border:booleanParam,card_width:looseIntParam,hide_rank:booleanParam,show_icons:booleanParam, +include_all_commits:booleanParam,commits_year:yearParam,line_height:rawParam,text_bold:booleanParam,exclude_repo:listParam,custom_title:rawParam,locale:localeParam,disable_animations:booleanParam,border_radius:numberParam, +number_format:rawParam,role:listParam,number_precision:looseIntParam,rank_icon:enumParam(RANK_ICONS),show:listParam,contribs_include_own_repos:booleanParam});var renderStats=async(query,config2)=>{let colors; +try{colors=parseColorParams(query)}catch(error2){return errorResult(error2)}try{const{username,repo,owner,hide:hide2,hide_title,hide_border,card_width,hide_rank,show_icons,include_all_commits,commits_year, +line_height,text_bold,exclude_repo,custom_title,locale,disable_animations,border_radius,number_format,role,number_precision,rank_icon,show,contribs_include_own_repos}=parseParams(statsQuery,query);const repository=repo. +map(name=>name.includes("/")?name:`${username??""}/${name}`);const stats2=await fetchStats({username,include_all_commits,exclude_repo,include_merged_pull_requests:show.includes("prs_merged")||show.includes( +"prs_merged_percentage"),include_discussions:show.includes("discussions_started"),include_discussions_answers:show.includes("discussions_answered"),commits_year,repo:repository,owner,include_prs_authored:show. +includes("prs_authored"),include_prs_commented:show.includes("prs_commented"),include_prs_reviewed:show.includes("prs_reviewed"),include_issues_authored:show.includes("issues_authored"),include_issues_commented:show. +includes("issues_commented"),ownerAffiliations:role,include_contributions:show.includes("contributions"),include_all_time_contribs:show.includes("all_time_contribs"),contribs_include_own_repos},config2); +return{status:"success",content:renderStatsCard(stats2,{...colors,hide:hide2,show_icons,hide_title,hide_border,card_width,hide_rank,include_all_commits,commits_year,line_height,text_bold,custom_title, +border_radius,number_format,number_precision,locale,disable_animations,rank_icon,show},username,repository,owner)}}catch(error2){return errorResult(error2,colors)}};var stats=Object.assign(renderStats, +{RANK_ICONS});var DEFAULT_CARD_WIDTH=300;var MIN_CARD_WIDTH=280;var CARD_PADDING=25;var COMPACT_LAYOUT_BASE_HEIGHT=90;var MAXIMUM_LANGS_COUNT=20;var NORMAL_LAYOUT_DEFAULT_LANGS_COUNT=5;var COMPACT_LAYOUT_DEFAULT_LANGS_COUNT=6; +var DONUT_LAYOUT_DEFAULT_LANGS_COUNT=5;var PIE_LAYOUT_DEFAULT_LANGS_COUNT=6;var DONUT_VERTICAL_LAYOUT_DEFAULT_LANGS_COUNT=6;var TOP_LANG_LAYOUTS=["compact","normal","donut","donut-vertical","pie"];var TOP_LANG_STATS_FORMATS=[ +"percentages","bytes"];var getLongestLang=arr=>{let longest={name:"",size:0,color:""};for(const lang of arr){if(lang.name.length>longest.name.length){longest=lang}}return longest};var degreesToRadians=angleInDegrees=>angleInDegrees* +(Math.PI/180);var polarToCartesian=(centerX,centerY,radius,angleInDegrees)=>{const rads=degreesToRadians(angleInDegrees);return{x:centerX+radius*Math.cos(rads),y:centerY+radius*Math.sin(rads)}};var getCircleLength=radius=>2*Math.PI*radius;var calculateCompactLayoutHeight=totalLangs=>COMPACT_LAYOUT_BASE_HEIGHT+Math.round(totalLangs/2)*25;var calculateNormalLayoutHeight=totalLangs=>45+(totalLangs+ +1)*40;var calculateDonutLayoutHeight=totalLangs=>215+Math.max(totalLangs-5,0)*32;var calculateDonutVerticalLayoutHeight=totalLangs=>300+Math.round(totalLangs/2)*25;var calculatePieLayoutHeight=totalLangs=>300+ +Math.round(totalLangs/2)*25;var donutCenterTranslation=totalLangs=>-45+Math.max(totalLangs-5,0)*16;var trimTopLanguages=(topLangs2,langs_count,hide2)=>{let langs=Object.values(topLangs2);const langsToHide={}; +const langsCount=clampValue(langs_count,1,MAXIMUM_LANGS_COUNT);if(hide2){for(const langName of hide2){langsToHide[lowercaseTrim(langName)]=true}}langs=langs.toSorted((a,b)=>b.size-a.size).filter(lang=>!langsToHide[lowercaseTrim( +lang.name)]).slice(0,langsCount);const totalLanguageSize=langs.reduce((acc,curr)=>acc+curr.size,0);return{langs,totalLanguageSize}};var getDisplayValue=(size,percentages,format)=>format==="bytes"?formatBytes( +size):`${percentages.toFixed(2)}%`;var resolveLangColor=lang=>{const color=lang.color||DEFAULT_LANG_COLOR;if(!isPrefixedHexColor(color)){throw new Error(`Invalid language color: "${color}"`)}return color}; +var createProgressTextNode=({width,color,name,size,totalSize,statsFormat,hideValues,index})=>{const staggerDelay=(index+3)*150;const paddingRight=hideValues?CARD_PADDING*2:95;const progressTextX=width- +paddingRight+10;const progressWidth=width-paddingRight;const progress=size/totalSize*100;const displayValue=getDisplayValue(size,progress,statsFormat);return el("g",{class:"stagger",style:`animation-d\ +elay: ${staggerDelay}ms`},el("text",{"data-testid":"lang-name",x:2,y:15,class:"lang-name"},name),!hideValues&&el("text",{x:progressTextX,y:34,class:"lang-name"},displayValue),createProgressNode({x:0,y:25, +color,width:progressWidth,progress,delay:staggerDelay+300}))};var createCompactLangNode=({lang,totalSize,hideProgress,hideValues,statsFormat="percentages",index})=>{const percentages=lang.size/totalSize* +100;const displayValue=getDisplayValue(lang.size,percentages,statsFormat);const staggerDelay=(index+3)*150;const color=resolveLangColor(lang);const label=hideProgress||hideValues?lang.name:`${lang.name}\ + ${displayValue}`;return el("g",{class:"stagger",style:`animation-delay: ${staggerDelay}ms`},el("circle",{cx:5,cy:6,r:5,fill:color}),el("text",{"data-testid":"lang-name",x:15,y:10,class:"lang-name"},label))}; +var createLanguageTextNode=({langs,totalSize,hideProgress,hideValues,statsFormat})=>{const longestLang=getLongestLang(langs);const chunked=chunkArray(langs,langs.length/2);const layouts=chunked.map(array=>{ +const items=array.map((lang,index)=>createCompactLangNode({lang,totalSize,hideProgress,hideValues,statsFormat,index}));return flexLayout({items,gap:25,direction:"column"})});const percent=(longestLang. +size/totalSize*100).toFixed(2);const minGap=150;const maxGap=20+measureText(`${longestLang.name} ${percent}%`,11);return flexLayout({items:layouts,gap:maxGapflexLayout({items:langs.map((lang,index)=>createCompactLangNode({lang,totalSize,hideProgress:false,hideValues,statsFormat,index})),gap:32,direction:"column"}); +var renderNormalLayout=(langs,width,totalLanguageSize,statsFormat,hideValues)=>flexLayout({items:langs.map((lang,index)=>createProgressTextNode({width,name:lang.name,color:lang.color||DEFAULT_LANG_COLOR, +size:lang.size,totalSize:totalLanguageSize,statsFormat,hideValues,index})),gap:40,direction:"column"});var renderCompactLayout=(langs,width,totalLanguageSize,hideProgress,statsFormat="percentages",hideValues)=>{ +const paddingRight=50;const offsetWidth=width-paddingRight;let progressOffset=0;const compactProgressBar=langs.map(lang=>{const percentage=Number.parseFloat((lang.size/totalLanguageSize*offsetWidth).toFixed( +2));const x=progressOffset;progressOffset+=percentage;return el("rect",{mask:"url(#rect-mask)","data-testid":"lang-progress",x,y:0,width:percentage<10?percentage+10:percentage,height:8,fill:resolveLangColor( +lang)})});return[!hideProgress&&[el("mask",{id:"rect-mask"},el("rect",{x:0,y:0,width:offsetWidth,height:8,fill:"white",rx:5})),compactProgressBar],el("g",{transform:`translate(0, ${hideProgress?0:25})`}, +createLanguageTextNode({langs,totalSize:totalLanguageSize,hideProgress,statsFormat,hideValues}))]};var renderDonutVerticalLayout=(langs,totalLanguageSize,statsFormat,hideValues)=>{const radius=80;const totalCircleLength=getCircleLength( +radius);const circles=[];let indent=0;let startDelayCoefficient=1;for(const lang of langs){const langColor=resolveLangColor(lang);const percentage=lang.size/totalLanguageSize*100;const circleLength=totalCircleLength* +(percentage/100);const delay=startDelayCoefficient*100;circles.push(el("g",{class:"stagger",style:`animation-delay: ${delay}ms`},el("circle",{cx:150,cy:100,r:radius,fill:"transparent",stroke:langColor, +"stroke-width":25,"stroke-dasharray":totalCircleLength,"stroke-dashoffset":indent,size:percentage,"data-testid":"lang-donut"})));indent+=circleLength;startDelayCoefficient+=1}return el("svg",{"data-te\ +stid":"lang-items"},el("svg",{"data-testid":"donut"},circles),el("g",{transform:"translate(0, 220)"},el("svg",{"data-testid":"lang-names",x:CARD_PADDING},createLanguageTextNode({langs,totalSize:totalLanguageSize, +hideProgress:false,statsFormat,hideValues}))))};var renderPieLayout=(langs,totalLanguageSize,statsFormat,hideValues)=>{const radius=90;const centerX=150;const centerY=100;let startAngle=0;let startDelayCoefficient=1; +const paths=[];for(const lang of langs){const langColor=resolveLangColor(lang);if(langs.length===1){paths.push(el("circle",{cx:centerX,cy:centerY,r:radius,stroke:"none",fill:langColor,"data-testid":"l\ +ang-pie",size:100}));break}const langSizePart=lang.size/totalLanguageSize;const percentage=langSizePart*100;const angle=langSizePart*360;const endAngle=startAngle+angle;const startPoint=polarToCartesian( +centerX,centerY,radius,startAngle);const endPoint=polarToCartesian(centerX,centerY,radius,endAngle);const largeArcFlag=angle>180?1:0;const delay=startDelayCoefficient*100;paths.push(el("g",{class:"sta\ +gger",style:`animation-delay: ${delay}ms`},el("path",{"data-testid":"lang-pie",size:percentage,d:`M ${centerX} ${centerY} L ${startPoint.x} ${startPoint.y} A ${radius} ${radius} 0 ${largeArcFlag} 1 ${endPoint. +x} ${endPoint.y} Z`,fill:langColor})));startAngle=endAngle;startDelayCoefficient+=1}return el("svg",{"data-testid":"lang-items"},el("svg",{"data-testid":"pie"},paths),el("g",{transform:"translate(0, 2\ +20)"},el("svg",{"data-testid":"lang-names",x:CARD_PADDING},createLanguageTextNode({langs,totalSize:totalLanguageSize,hideProgress:false,statsFormat,hideValues}))))};var createDonutPaths=(cx,cy,radius,percentages)=>{ +const paths=[];let startAngle=0;const totalPercent=percentages.reduce((acc,curr)=>acc+curr,0);for(const rawPercent of percentages){const percent=Number.parseFloat((rawPercent/totalPercent*100).toFixed( +2));const endAngle=3.6*percent+startAngle;const startPoint=polarToCartesian(cx,cy,radius,endAngle-90);const endPoint=polarToCartesian(cx,cy,radius,startAngle-90);const largeArc=endAngle-startAngle<=180? +0:1;paths.push({percent,d:`M ${startPoint.x} ${startPoint.y} A ${radius} ${radius} 0 ${largeArc} 0 ${endPoint.x} ${endPoint.y}`});startAngle=endAngle}return paths};var renderDonutLayout=(langs,width,totalLanguageSize,statsFormat,hideValues)=>{ +if(!Number.isFinite(width)){throw new TypeError(`Invalid width: "${width}"`)}const centerX=width/3;const centerY=width/3;const radius=centerX-60;const strokeWidth=12;const colors=langs.map(lang=>resolveLangColor( +lang));const langsPercents=langs.map(lang=>Number.parseFloat((lang.size/totalLanguageSize*100).toFixed(2)));const langPaths=createDonutPaths(centerX,centerY,radius,langsPercents);const donutPaths=langs. +length===1?[el("circle",{cx:centerX,cy:centerY,r:radius,stroke:colors[0]??DEFAULT_LANG_COLOR,fill:"none","stroke-width":strokeWidth,"data-testid":"lang-donut",size:100})]:langPaths.map((section,index)=>el( +"g",{class:"stagger",style:`animation-delay: ${(index+3)*100+300}ms`},el("path",{"data-testid":"lang-donut",size:section.percent,d:section.d,stroke:colors[index]??DEFAULT_LANG_COLOR,fill:"none","strok\ +e-width":strokeWidth})));return[createDonutLanguagesNode({langs,totalSize:totalLanguageSize,hideValues,statsFormat}),el("g",{transform:`translate(125, ${donutCenterTranslation(langs.length)})`},el("sv\ +g",{width,height:width},donutPaths))]};var noLanguagesDataNode=({text,layout})=>el("text",{x:layout==="pie"||layout==="donut-vertical"?CARD_PADDING:0,y:11,class:"stat bold"},text);var getDefaultLanguagesCountByLayout=({ +layout,hide_progress})=>{if(layout==="compact"||hide_progress===true){return COMPACT_LAYOUT_DEFAULT_LANGS_COUNT}if(layout==="donut"){return DONUT_LAYOUT_DEFAULT_LANGS_COUNT}if(layout==="donut-vertical"){ +return DONUT_VERTICAL_LAYOUT_DEFAULT_LANGS_COUNT}if(layout==="pie"){return PIE_LAYOUT_DEFAULT_LANGS_COUNT}return NORMAL_LAYOUT_DEFAULT_LANGS_COUNT};var renderTopLanguages=(topLangs2,options={})=>{const{ +hide_title=false,hide_border=false,card_width,hide:hide2,hide_progress,hide_values,layout,custom_title,locale,langs_count=getDefaultLanguagesCountByLayout({layout,hide_progress}),border_radius,disable_animations, +stats_format="percentages"}=options;const i18n=new I18n({locale,translations:langCardLocales});const{langs,totalLanguageSize}=trimTopLanguages(topLangs2,langs_count,hide2);let width=card_width?Number. +isNaN(card_width)?DEFAULT_CARD_WIDTH:card_width[atRule("@keyframes slideInAnimation",rule("from",{width:0}),rule("to",{width:"calc(100%-100px)"})),atRule("@keyframes growWidthAnimation",rule("from",{width:0}),rule("to", +{width:"100%"})),rule(".stat",{font:`600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif`,fill:textColor}),atRule("@supports(-moz-appearance: auto)",cssComment("Selector detects Firefox"),rule("\ +.stat",{"font-size":"12px"})),rule(".bold",{"font-weight":700}),rule(".lang-name",{font:'400 11px "Segoe UI", Ubuntu, Sans-Serif',fill:textColor}),rule(".stagger",{opacity:0,animation:"fadeInAnimation\ + 0.3s ease-in-out forwards"}),rule("#rect-mask rect",{animation:"slideInAnimation 1s ease-in-out forwards"}),rule(".lang-progress",{animation:"growWidthAnimation 0.6s ease-in-out forwards"}),rule(".pr\ +ogress-background",{fill:progBarBgColor})],dark:({textColor,progBarBgColor})=>[rule(".stat",{fill:textColor}),rule(".lang-name",{fill:textColor}),rule(".progress-background",{fill:progBarBgColor})]}); +card.setAccessibilityLabel({title:card.title,desc:langs.map(lang=>`${lang.name} ${(lang.size/totalLanguageSize*100).toFixed(2)}%`).join(", ")});if(layout==="pie"||layout==="donut-vertical"){return card. +render(finalLayout)}return card.render(el("svg",{"data-testid":"lang-items",x:CARD_PADDING},finalLayout))};var TopLanguagesDocument=graphqlDocument(` query topLanguages($login: String!, $ownerAffiliations: [RepositoryAffiliation]) { user(login: $login) { repositories(ownerAffiliations: $ownerAffiliations, isFork: false, first: 100) { @@ -26015,619 +4154,80 @@ fragment TopLanguage on LanguageEdge { color name } -}`); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/fetchers/top-languages.js -var fetcher4 = createGraphQLFetcher(TopLanguagesDocument, "token"); -var fetchTopLanguages = async ({ username, exclude_repo = [], size_weight = 1, count_weight = 0, ownerAffiliations = [] }, config2) => { - if (!username) { - throw CardError.missingParam(["username"]); - } - const affiliations = parseOwnerAffiliations(ownerAffiliations); - const res = await retryer(fetcher4, { - login: username, - ownerAffiliations: affiliations - }, config2); - if (res.data.errors) { - logger.error(res.data.errors); - const firstError = res.data.errors[0]; - if (firstError?.type === "NOT_FOUND") { - throw new CardError(firstError.message || "Could not fetch user.", { - code: "not_found", - secondaryMessage: USER_NOT_FOUND - }); - } - if (firstError?.message) { - throw new CardError(wrapTextMultiline(firstError.message, 525, 12)[0] ?? "", { - code: "upstream", - secondaryMessage: res.statusText - }); - } - throw new CardError("Something went wrong while trying to retrieve the language data using the GraphQL API.", { code: "upstream" }); - } - const repoToHide = {}; - const allExcludedRepos = [...exclude_repo, ...config2.excludeRepositories]; - allExcludedRepos.forEach((repoName) => { - repoToHide[repoName] = true; - }); - const repoNodes = (res.data.data.user?.repositories.nodes ?? []).filter((node) => !!node && !repoToHide[node.name]); - const languageEdges = repoNodes.reduce((acc, repo) => { - const edges = (repo.languages?.edges ?? []).filter((edge) => !!edge); - return edges.length > 0 ? edges.concat(acc) : acc; - }, []); - const languageMap = {}; - let repoCount = 0; - for (const edge of languageEdges) { - const existing = languageMap[edge.node.name]; - let langSize = edge.size; - if (existing && edge.node.name === existing.name) { - langSize = edge.size + existing.size; - repoCount += 1; - } else { - repoCount = 1; - } - languageMap[edge.node.name] = { - name: edge.node.name, - color: edge.node.color, - size: langSize, - count: repoCount - }; - } - for (const lang of Object.values(languageMap)) { - lang.size = Math.pow(lang.size, size_weight) * Math.pow(lang.count, count_weight); - } - return Object.fromEntries(Object.entries(languageMap).sort(([, a], [, b]) => b.size - a.size)); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/top-langs.js -var topLangsQuery = object({ - username: safeParam, - hide: listParam, - hide_title: booleanParam, - hide_border: booleanParam, - card_width: looseIntParam, - layout: enumParam(TOP_LANG_LAYOUTS), - langs_count: looseIntParam, - exclude_repo: listParam, - size_weight: numberParam, - count_weight: numberParam, - custom_title: rawParam, - locale: localeParam, - border_radius: numberParam, - role: listParam, - disable_animations: booleanParam, - hide_progress: booleanParam, - hide_values: booleanParam, - stats_format: enumParam(TOP_LANG_STATS_FORMATS) -}); -var renderTopLangs = async (query, config2) => { - let colors; - try { - colors = parseColorParams(query); - } catch (err) { - return errorResult(err); - } - try { - const { username, hide: hide2, hide_title, hide_border, card_width, layout, langs_count, exclude_repo, size_weight, count_weight, custom_title, locale, border_radius, role, disable_animations, hide_progress, hide_values, stats_format } = parseParams(topLangsQuery, query); - const topLangs2 = await fetchTopLanguages({ - username, - exclude_repo, - size_weight, - count_weight, - ownerAffiliations: role - }, config2); - return { - status: "success", - content: renderTopLanguages(topLangs2, { - ...colors, - custom_title, - hide_title, - hide_border, - card_width, - hide: hide2, - layout, - langs_count, - border_radius, - locale, - disable_animations, - hide_progress, - hide_values, - stats_format - }) - }; - } catch (err) { - return errorResult(err, colors); - } -}; -var topLangs = Object.assign(renderTopLangs, { - LAYOUTS: TOP_LANG_LAYOUTS, - STATS_FORMATS: TOP_LANG_STATS_FORMATS -}); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/cards/wakatime.js -var DEFAULT_CARD_WIDTH2 = 495; -var MIN_CARD_WIDTH2 = 250; -var COMPACT_LAYOUT_MIN_WIDTH = 400; -var DEFAULT_LINE_HEIGHT = 25; -var PROGRESSBAR_PADDING = 130; -var HIDDEN_PROGRESSBAR_PADDING = 170; -var COMPACT_LAYOUT_PROGRESSBAR_PADDING = 25; -var TOTAL_TEXT_WIDTH = 275; -var WAKATIME_LAYOUTS = ["compact", "normal"]; -var DISPLAY_FORMATS = ["time", "percent"]; -var noCodingActivityNode = ({ text }) => { - return ` - ${encodeHTML(text)} - `; -}; -var formatLanguageValue = ({ display_format, lang }) => { - return display_format === "percent" ? `${lang.percent.toFixed(2)} %` : lang.text; -}; -var createCompactLangNode2 = ({ lang, x, y, display_format }) => { - if (!Number.isFinite(x)) { - throw new Error(`Invalid x: "${x}"`); - } - if (!Number.isFinite(y)) { - throw new Error(`Invalid y: "${y}"`); - } - const color = getLanguageColor(lang.name); - const value = formatLanguageValue({ display_format, lang }); - return ` - - - - ${encodeHTML(lang.name)} - ${encodeHTML(value)} - - - `; -}; -var createLanguageTextNode2 = ({ langs, y, display_format, card_width }) => { - const LEFT_X = 25; - const RIGHT_X_BASE = 230; - const rightOffset = (card_width - DEFAULT_CARD_WIDTH2) / 2; - const RIGHT_X = RIGHT_X_BASE + rightOffset; - return langs.map((lang, index) => { - const isLeft = index % 2 === 0; - return createCompactLangNode2({ - lang, - x: isLeft ? LEFT_X : RIGHT_X, - y: y + DEFAULT_LINE_HEIGHT * Math.floor(index / 2), - display_format - }); - }); -}; -var createTextNode2 = ({ id, label, value, index, percent, hideProgress, progressBarWidth }) => { - if (!Number.isFinite(index)) { - throw new Error(`Invalid index: "${index}"`); - } - if (!Number.isFinite(progressBarWidth)) { - throw new Error(`Invalid progressBarWidth: "${progressBarWidth}"`); - } - const staggerDelay = (index + 3) * 150; - const cardProgress = hideProgress ? null : createProgressNode({ - x: 110, - y: 4, - progress: percent, - width: progressBarWidth, - delay: staggerDelay + 300 - }); - return ` - - ${encodeHTML(label)}: - ${encodeHTML(value)} - ${String(cardProgress)} - - `; -}; -var recalculatePercentages = (languages) => { - const totalSum = languages.reduce((totalSum2, language) => totalSum2 + language.percent, 0); - const weight = +(100 / totalSum).toFixed(2); - languages.forEach((language) => { - language.percent = +(language.percent * weight).toFixed(2); - }); -}; -var getStyles2 = ({ textColor }) => { - if (!isPrefixedHexColor(textColor)) { - throw new Error(`Invalid text color: "${textColor}"`); - } - return ` - .stat { - font: 600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif; fill: ${textColor}; - } - @supports(-moz-appearance: auto) { - /* Selector detects Firefox */ - .stat { font-size:12px; } - } - .stagger { - opacity: 0; - animation: fadeInAnimation 0.3s ease-in-out forwards; - } - .not_bold { font-weight: 400 } - .bold { font-weight: 700 } - `; -}; -var normalizeCardWidth = ({ value, layout }) => { - if (value === void 0 || isNaN(value)) { - return DEFAULT_CARD_WIDTH2; - } - return Math.max(layout === "compact" ? COMPACT_LAYOUT_MIN_WIDTH : MIN_CARD_WIDTH2, value); -}; -var renderWakatimeCard = (stats2 = {}, options = { hide: [] }) => { - let { languages = [] } = stats2; - const { hide_title = false, hide_border = false, card_width, hide: hide2, line_height = DEFAULT_LINE_HEIGHT, hide_progress, custom_title, locale, layout, langs_count = languages.length, border_radius, display_format = "time", disable_animations } = options; - const normalizedWidth = normalizeCardWidth({ value: card_width, layout }); - const shouldHideLangs = Array.isArray(hide2) && hide2.length > 0; - if (shouldHideLangs) { - const languagesToHide = new Set(hide2.map((lang) => lowercaseTrim(lang))); - languages = languages.filter((lang) => !languagesToHide.has(lowercaseTrim(lang.name))); - } - languages = languages.slice(0, langs_count); - recalculatePercentages(languages); - const i18n = new I18n({ - locale, - translations: wakatimeCardLocales - }); - const lheight = parseInt(String(line_height), 10); - const langsCount = clampValue(langs_count, 1, langs_count); - const { lightColors, darkColors } = getLightDarkColors(options); - const filteredLanguages = languages.filter((language) => language.hours || language.minutes).slice(0, langsCount); - let height = Math.max(45 + (filteredLanguages.length + 1) * lheight, 150); - let finalLayout; - if (layout === "compact") { - const width = normalizedWidth - 5; - height = 90 + Math.round(filteredLanguages.length / 2) * DEFAULT_LINE_HEIGHT; - let progressOffset = 0; - const compactProgressBar = filteredLanguages.map((language) => { - const progress = (width - COMPACT_LAYOUT_PROGRESSBAR_PADDING) * language.percent / 100; - const languageColor = getLanguageColor(language.name); - const output = ` - - `; - progressOffset += progress; - return output; - }).join(""); - finalLayout = ` - - - - ${compactProgressBar} - ${filteredLanguages.length ? createLanguageTextNode2({ - y: 25, - langs: filteredLanguages, - display_format, - card_width: normalizedWidth - }).join("") : noCodingActivityNode({ - text: stats2.is_coding_activity_visible ? stats2.is_other_usage_visible ? i18n.t("wakatimecard.nocodingactivity") : i18n.t("wakatimecard.nocodedetails") : i18n.t("wakatimecard.notpublic") - })} - `; - } else { - finalLayout = flexLayout({ - items: filteredLanguages.length ? filteredLanguages.map((language, index) => { - return createTextNode2({ - id: language.name, - label: language.name, - value: formatLanguageValue({ display_format, lang: language }), - index, - percent: language.percent, - hideProgress: hide_progress, - progressBarWidth: normalizedWidth - TOTAL_TEXT_WIDTH - }); - }) : [ - noCodingActivityNode({ - text: stats2.is_coding_activity_visible ? stats2.is_other_usage_visible ? i18n.t("wakatimecard.nocodingactivity") : i18n.t("wakatimecard.nocodedetails") : i18n.t("wakatimecard.notpublic") - }) - ], - gap: lheight, - direction: "column" - }).join(""); - } - let titleText = i18n.t("wakatimecard.title"); - switch (stats2.range) { - case "last_7_days": - titleText += ` (${i18n.t("wakatimecard.last7days")})`; - break; - case "last_year": - titleText += ` (${i18n.t("wakatimecard.lastyear")})`; - break; - } - const card = new Card({ - customTitle: custom_title, - defaultTitle: titleText, - width: normalizedWidth, - height, - border_radius, - colors: { light: lightColors, dark: darkColors } - }); - if (disable_animations) { - card.disableAnimations(); - } - card.setHideBorder(hide_border); - card.setHideTitle(hide_title); - card.setCSS({ - light: ({ titleColor, textColor }) => ` - ${getStyles2({ textColor })} - @keyframes slideInAnimation { - from { - width: 0; - } - to { - width: calc(100%-100px); - } - } - @keyframes growWidthAnimation { - from { - width: 0; - } - to { - width: 100%; - } - } - .lang-name { font: 400 11px 'Segoe UI', Ubuntu, Sans-Serif; fill: ${textColor} } - #rect-mask rect{ - animation: slideInAnimation 1s ease-in-out forwards; - } - .lang-progress{ - animation: growWidthAnimation 0.6s ease-in-out forwards; - fill: ${titleColor}; - } - .progress-background { fill: ${textColor === titleColor ? "#fff0" : textColor}; } - `, - dark: ({ titleColor, textColor }) => ` - ${getStyles2({ textColor })} - .lang-name { fill: ${textColor} } - .lang-progress { fill: ${titleColor}; } - .progress-background { fill: ${textColor === titleColor ? "#fff0" : textColor}; } - ` - }); - card.setAccessibilityLabel({ - title: card.title, - desc: filteredLanguages.length ? filteredLanguages.map((lang) => `${lang.name}: ${formatLanguageValue({ display_format, lang })}`).join(", ") : i18n.t("wakatimecard.nocodingactivity") - }); - return card.render(` - - ${finalLayout} - - `); -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/fetchers/wakatime.js -var fetchWakatimeStats = async ({ username, api_domain }, config2) => { - if (!username) { - throw CardError.missingParam(["username"]); - } - const domain = api_domain ? api_domain.replace(/\/$/gi, "") : "wakatime.com"; - const res = await httpRequest(config2.fetch, `https://${domain}/api/v1/users/${username}/stats?is_including_today=true`); - if (res.status === 404) { - throw new CardError(`Could not resolve to a User with the login of '${username}'`, { - code: "not_found", - secondaryMessage: WAKATIME_USER_NOT_FOUND - }); - } - if (res.status < 200 || res.status > 299) { - throw new CardError(`Could not fetch the WakaTime stats of '${username}'`, { - code: "upstream" - }); - } - return res.data.data; -}; - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/api/wakatime.js -var wakatimeQuery = object({ - username: safeParam, - hide_border: booleanParam, - card_width: looseIntParam, - line_height: rawParam, - hide_title: booleanParam, - hide_progress: booleanParam, - custom_title: rawParam, - locale: localeParam, - layout: enumParam(WAKATIME_LAYOUTS), - langs_count: looseIntParam, - hide: listParam, - api_domain: rawParam, - border_radius: numberParam, - display_format: enumParam(DISPLAY_FORMATS), - disable_animations: booleanParam -}); -var renderWakatime = async (query, config2) => { - let colors; - try { - colors = parseColorParams(query); - } catch (err) { - return errorResult(err); - } - try { - const { username, hide_border, card_width, line_height, hide_title, hide_progress, custom_title, locale, layout, langs_count, hide: hide2, api_domain, border_radius, display_format, disable_animations } = parseParams(wakatimeQuery, query); - const stats2 = await fetchWakatimeStats({ username, api_domain }, config2); - return { - status: "success", - content: renderWakatimeCard(stats2, { - ...colors, - custom_title, - hide_title, - hide_border, - card_width, - hide: hide2, - line_height, - hide_progress, - border_radius, - locale, - layout, - langs_count, - display_format, - disable_animations - }) - }; - } catch (err) { - return errorResult(err, colors); - } -}; -var wakatime = Object.assign(renderWakatime, { - LAYOUTS: WAKATIME_LAYOUTS, - DISPLAY_FORMATS -}); - -// node_modules/.pnpm/@stats-forge+github-stats-forge-core@0.0.2/node_modules/@stats-forge/github-stats-forge-core/build/common/config.js -var parseCsv = (value) => value ? value.split(",") : void 0; -var parseFetchMultiPageStars = (value) => { - if (value === "true") { - return Infinity; - } - const limit = Number(value); - return limit > 0 ? limit : 1; -}; -var parsePATsFromEnv = (env) => Object.keys(env).filter((key) => /PAT_\d*$/.exec(key)).map((name) => ({ name, value: env[name] ?? "" })); -var CardConfig = class _CardConfig { - pats; - /** Allowed usernames; `undefined` means no allowlist configured. */ - usernameAllowlist; - /** Allowed gist ids; `undefined` means no allowlist configured. */ - gistAllowlist; - excludeRepositories; - /** Max pages of starred repos; `Infinity` means every page, `1` only the first. */ - fetchMultiPageStars; - /** Transport every fetcher sends through; defaults to `globalThis.fetch`. */ - fetch; - constructor(init = {}) { - this.pats = init.pats ?? []; - this.usernameAllowlist = init.usernameAllowlist; - this.gistAllowlist = init.gistAllowlist; - this.excludeRepositories = init.excludeRepositories ?? []; - this.fetchMultiPageStars = init.fetchMultiPageStars ?? 1; - this.fetch = init.fetch ?? defaultFetch; - } - /** - * @param env Environment variables to read — the host passes `process.env` or an equivalent. - * @returns Config for this deployment. - */ - static fromEnv(env) { - return new _CardConfig({ - pats: parsePATsFromEnv(env), - usernameAllowlist: parseCsv(env["WHITELIST"]), - gistAllowlist: parseCsv(env["GIST_WHITELIST"]), - excludeRepositories: parseCsv(env["EXCLUDE_REPO"]) ?? [], - fetchMultiPageStars: parseFetchMultiPageStars(env["FETCH_MULTI_PAGE_STARS"]) - }); - } - /** - * @param id Username or gist id being requested. - * @param kind Which allowlist applies. - * @returns Whether this deployment serves the id. - */ - isAllowed(id, kind) { - const list = kind === "gist" ? this.gistAllowlist : this.usernameAllowlist; - return list === void 0 || list.includes(id); - } - /** - * @param overrides Fields to replace. - * @returns A copy with `overrides` applied — how a host swaps in a user's PAT per request. - */ - with(overrides) { - return new _CardConfig({ - pats: this.pats, - usernameAllowlist: this.usernameAllowlist, - gistAllowlist: this.gistAllowlist, - excludeRepositories: this.excludeRepositories, - fetchMultiPageStars: this.fetchMultiPageStars, - fetch: this.fetch, - ...overrides - }); - } -}; - -// src/action.ts -var CARDS = { - stats: { handler: stats, requires: "username" }, - "top-langs": { handler: topLangs, requires: "username" }, - pin: { handler: pin, requires: "repo" }, - wakatime: { handler: wakatime, requires: "username" }, - gist: { handler: gist, requires: "id" } -}; -var isCardName = (value) => Object.hasOwn(CARDS, value); -var parseOptions = (value) => { - const trimmed = value.trim(); - if (!trimmed) { - return {}; - } - if (trimmed.startsWith("{")) { - let parsed; - try { - parsed = JSON.parse(trimmed); - } catch { - throw new Error("Invalid JSON in options."); - } - if (typeof parsed !== "object" || parsed === null) { - throw new Error("Invalid JSON in options."); - } - return Object.fromEntries( - Object.entries(parsed).filter(([, entry]) => entry !== null && entry !== void 0).map(([key, entry]) => [key, Array.isArray(entry) ? entry.join(",") : String(entry)]) - ); - } - const params = new URLSearchParams(trimmed); - return Object.fromEntries( - [...new Set(params.keys())].map((key) => [key, params.getAll(key).join(",")]) - ); -}; -var resolveCard = (card, options) => { - if (!isCardName(card)) { - throw new Error( - `Unsupported card type: ${card}. Expected one of ${Object.keys(CARDS).join(", ")}.` - ); - } - const definition = CARDS[card]; - if (!options[definition.requires]) { - throw new Error(`${definition.requires} is required for the ${card} card.`); - } - return definition; -}; -var run = async () => { - const card = getInput("card", { required: true }).toLowerCase(); - const options = parseOptions(getInput("options")); - const repositoryOwner = process.env["GITHUB_REPOSITORY_OWNER"]; - if (!options["username"] && repositoryOwner) { - options["username"] = repositoryOwner; - warning("username not provided; defaulting to repository owner."); - } - const { handler } = resolveCard(card, options); - const token = getInput("token"); - const config2 = new CardConfig({ - pats: token ? [{ name: "action input `token`", value: token }] : [] - }); - const result = await handler(options, config2); - if (result.status === "error") { - throw new Error( - result.retryable ? `Card generation failed while fetching data: ${result.error.message}` : `Card generation failed: ${result.error.message}` - ); - } - if (!result.content) { - throw new Error("Card renderer returned empty output."); - } - const outputPath = getInput("path") || path.join("profile", `${card}.svg`); - const resolved = path.resolve(process.cwd(), outputPath); - await mkdir2(path.dirname(resolved), { recursive: true }); - await writeFile2(resolved, result.content, "utf8"); - info(`Wrote ${resolved}`); - setOutput("path", outputPath); -}; - -// src/index.ts -try { - await run(); -} catch (error2) { - setFailed(error2 instanceof Error ? error2.message : String(error2)); -} +}`);var fetcher4=createGraphQLFetcher(TopLanguagesDocument,"token");var fetchTopLanguages=async({username,exclude_repo=[],size_weight=1,count_weight=0,ownerAffiliations=[]},config2)=>{if(!username){throw CardError. +missingParam(["username"])}const affiliations=parseOwnerAffiliations(ownerAffiliations);const res=await retryer(fetcher4,{login:username,ownerAffiliations:affiliations},config2);if(res.data.errors){logger. +error(res.data.errors);const[firstError]=res.data.errors;if(firstError?.type==="NOT_FOUND"){throw new CardError(firstError.message||"Could not fetch user.",{code:"not_found",secondaryMessage:USER_NOT_FOUND})} +if(firstError?.message){throw new CardError(wrapTextMultiline(firstError.message,525,12)[0]??"",{code:"upstream",secondaryMessage:res.statusText})}throw new CardError("Something went wrong while tryin\ +g to retrieve the language data using the GraphQL API.",{code:"upstream"})}const repoToHide={};const allExcludedRepos=[...exclude_repo,...config2.excludeRepositories];for(const repoName of allExcludedRepos){ +repoToHide[repoName]=true}const repoNodes=(res.data.data.user?.repositories.nodes??[]).filter(node=>!!node&&!repoToHide[node.name]);let languageEdges=[];for(const repo of repoNodes){const edges=(repo. +languages?.edges??[]).filter(edge=>!!edge);if(edges.length>0){languageEdges=[...edges,...languageEdges]}}const languageMap={};for(const edge of languageEdges){const existing=languageMap[edge.node.name]; +languageMap[edge.node.name]={name:edge.node.name,color:edge.node.color,size:edge.size+(existing?.size??0),count:(existing?.count??0)+1}}for(const lang of Object.values(languageMap)){lang.size=lang.size** +size_weight*lang.count**count_weight}return Object.fromEntries(Object.entries(languageMap).toSorted(([,a],[,b])=>b.size-a.size))};var topLangsQuery=object({username:usernameParam,hide:listParam,hide_title:booleanParam,hide_border:booleanParam,card_width:looseIntParam,layout:enumParam(TOP_LANG_LAYOUTS),langs_count:looseIntParam,exclude_repo:listParam, +size_weight:numberParam,count_weight:numberParam,custom_title:rawParam,locale:localeParam,border_radius:numberParam,role:listParam,disable_animations:booleanParam,hide_progress:booleanParam,hide_values:booleanParam, +stats_format:enumParam(TOP_LANG_STATS_FORMATS)});var renderTopLangs=async(query,config2)=>{let colors;try{colors=parseColorParams(query)}catch(error2){return errorResult(error2)}try{const{username,hide:hide2, +hide_title,hide_border,card_width,layout,langs_count,exclude_repo,size_weight,count_weight,custom_title,locale,border_radius,role,disable_animations,hide_progress,hide_values,stats_format}=parseParams( +topLangsQuery,query);const topLangs2=await fetchTopLanguages({username,exclude_repo,size_weight,count_weight,ownerAffiliations:role},config2);return{status:"success",content:renderTopLanguages(topLangs2, +{...colors,custom_title,hide_title,hide_border,card_width,hide:hide2,layout,langs_count,border_radius,locale,disable_animations,hide_progress,hide_values,stats_format})}}catch(error2){return errorResult( +error2,colors)}};var topLangs=Object.assign(renderTopLangs,{LAYOUTS:TOP_LANG_LAYOUTS,STATS_FORMATS:TOP_LANG_STATS_FORMATS});var DEFAULT_CARD_WIDTH2=495;var MIN_CARD_WIDTH2=250;var COMPACT_LAYOUT_MIN_WIDTH=400;var DEFAULT_LINE_HEIGHT=25;var PROGRESSBAR_PADDING=130;var HIDDEN_PROGRESSBAR_PADDING=170;var COMPACT_LAYOUT_PROGRESSBAR_PADDING=25; +var TOTAL_TEXT_WIDTH=275;var WAKATIME_LAYOUTS=["compact","normal"];var DISPLAY_FORMATS=["time","percent"];var noCodingActivityNode=({text})=>el("text",{x:25,y:11,class:"stat bold"},text);var formatLanguageValue=({ +display_format,lang})=>display_format==="percent"?`${lang.percent.toFixed(2)} %`:lang.text;var createCompactLangNode2=({lang,x,y,display_format})=>{if(!Number.isFinite(x)){throw new TypeError(`Invalid\ + x: "${x}"`)}if(!Number.isFinite(y)){throw new TypeError(`Invalid y: "${y}"`)}const color=getLanguageColor(lang.name);const value=formatLanguageValue({display_format,lang});return el("g",{transform:`t\ +ranslate(${x}, ${y})`},el("circle",{cx:5,cy:6,r:5,fill:color}),el("text",{"data-testid":"lang-name",x:15,y:10,class:"lang-name"},`${lang.name} - ${value}`))};var createLanguageTextNode2=({langs,y,display_format, +card_width})=>{const LEFT_X=25;const RIGHT_X_BASE=230;const rightOffset=(card_width-DEFAULT_CARD_WIDTH2)/2;const RIGHT_X=RIGHT_X_BASE+rightOffset;return langs.map((lang,index)=>{const isLeft=index%2=== +0;return createCompactLangNode2({lang,x:isLeft?LEFT_X:RIGHT_X,y:y+DEFAULT_LINE_HEIGHT*Math.floor(index/2),display_format})})};var createTextNode2=({id,label,value,index,percent,hideProgress,progressBarWidth})=>{ +if(!Number.isFinite(index)){throw new TypeError(`Invalid index: "${index}"`)}if(!Number.isFinite(progressBarWidth)){throw new TypeError(`Invalid progressBarWidth: "${progressBarWidth}"`)}const staggerDelay=(index+ +3)*150;return el("g",{class:"stagger",style:`animation-delay: ${staggerDelay}ms`,transform:"translate(25, 0)"},el("text",{class:"stat bold",y:12.5,"data-testid":id},`${label}:`),el("text",{class:"stat", +x:hideProgress?HIDDEN_PROGRESSBAR_PADDING:PROGRESSBAR_PADDING+progressBarWidth,y:12.5},value),!hideProgress&&createProgressNode({x:110,y:4,progress:percent,width:progressBarWidth,delay:staggerDelay+300}))}; +var recalculatePercentages=languages=>{const totalSum=languages.reduce((sum,language)=>sum+language.percent,0);const weight=Number((100/totalSum).toFixed(2));for(const language of languages){language. +percent=Number((language.percent*weight).toFixed(2))}};var getStyles2=({textColor})=>{if(!isPrefixedHexColor(textColor)){throw new Error(`Invalid text color: "${textColor}"`)}return[rule(".stat",{font:`\ +600 14px 'Segoe UI', Ubuntu, "Helvetica Neue", Sans-Serif`,fill:textColor}),atRule("@supports(-moz-appearance: auto)",cssComment("Selector detects Firefox"),rule(".stat",{"font-size":"12px"})),rule(".\ +stagger",{opacity:0,animation:"fadeInAnimation 0.3s ease-in-out forwards"}),rule(".not_bold",{"font-weight":400}),rule(".bold",{"font-weight":700})]};var progressBackground=(titleColor,textColor)=>textColor=== +titleColor?"#fff0":textColor;var normalizeCardWidth=({value,layout})=>{if(value===void 0||Number.isNaN(value)){return DEFAULT_CARD_WIDTH2}return Math.max(layout==="compact"?COMPACT_LAYOUT_MIN_WIDTH:MIN_CARD_WIDTH2, +value)};var renderWakatimeCard=(stats2={},options={})=>{let{languages=[]}=stats2;const{hide_title=false,hide_border=false,card_width,hide:hide2,line_height=DEFAULT_LINE_HEIGHT,hide_progress,custom_title, +locale,layout,langs_count=languages.length,border_radius,display_format="time",disable_animations}=options;const normalizedWidth=normalizeCardWidth({value:card_width,layout});const shouldHideLangs=Array. +isArray(hide2)&&hide2.length>0;if(shouldHideLangs){const languagesToHide=new Set(hide2.map(lang=>lowercaseTrim(lang)));languages=languages.filter(lang=>!languagesToHide.has(lowercaseTrim(lang.name)))} +languages=languages.slice(0,langs_count);recalculatePercentages(languages);const i18n=new I18n({locale,translations:wakatimeCardLocales});const lheight=Number.parseInt(String(line_height),10);const langsCount=clampValue( +langs_count,1,langs_count);const{lightColors,darkColors}=getLightDarkColors(options);const filteredLanguages=languages.filter(language=>language.hours||language.minutes).slice(0,langsCount);let height=Math. +max(45+(filteredLanguages.length+1)*lheight,150);let finalLayout;if(layout==="compact"){const width=normalizedWidth-5;height=90+Math.round(filteredLanguages.length/2)*DEFAULT_LINE_HEIGHT;let progressOffset=0; +const compactProgressBar=filteredLanguages.map(language=>{const progress=(width-COMPACT_LAYOUT_PROGRESSBAR_PADDING)*language.percent/100;const x=progressOffset;progressOffset+=progress;return el("rect", +{mask:"url(#rect-mask)","data-testid":"lang-progress",x,y:0,width:progress,height:8,fill:getLanguageColor(language.name)})});finalLayout=[el("mask",{id:"rect-mask"},el("rect",{x:COMPACT_LAYOUT_PROGRESSBAR_PADDING, +y:0,width:width-2*COMPACT_LAYOUT_PROGRESSBAR_PADDING,height:8,fill:"white",rx:5})),compactProgressBar,filteredLanguages.length>0?createLanguageTextNode2({y:25,langs:filteredLanguages,display_format,card_width:normalizedWidth}): +noCodingActivityNode({text:stats2.is_coding_activity_visible?stats2.is_other_usage_visible?i18n.t("wakatimecard.nocodingactivity"):i18n.t("wakatimecard.nocodedetails"):i18n.t("wakatimecard.notpublic")})]}else{ +finalLayout=flexLayout({items:filteredLanguages.length>0?filteredLanguages.map((language,index)=>createTextNode2({id:language.name,label:language.name,value:formatLanguageValue({display_format,lang:language}), +index,percent:language.percent,hideProgress:hide_progress,progressBarWidth:normalizedWidth-TOTAL_TEXT_WIDTH})):[noCodingActivityNode({text:stats2.is_coding_activity_visible?stats2.is_other_usage_visible? +i18n.t("wakatimecard.nocodingactivity"):i18n.t("wakatimecard.nocodedetails"):i18n.t("wakatimecard.notpublic")})],gap:lheight,direction:"column"})}let titleText=i18n.t("wakatimecard.title");switch(stats2. +range){case"last_7_days":{titleText+=` (${i18n.t("wakatimecard.last7days")})`;break}case"last_year":{titleText+=` (${i18n.t("wakatimecard.lastyear")})`;break}default:{break}}const card=new Card({customTitle:custom_title, +defaultTitle:titleText,width:normalizedWidth,height,border_radius,colors:{light:lightColors,dark:darkColors}});if(disable_animations){card.disableAnimations()}card.setHideBorder(hide_border);card.setHideTitle( +hide_title);card.setCSS({light:({titleColor,textColor})=>[getStyles2({textColor}),atRule("@keyframes slideInAnimation",rule("from",{width:0}),rule("to",{width:"calc(100%-100px)"})),atRule("@keyframes \ +growWidthAnimation",rule("from",{width:0}),rule("to",{width:"100%"})),rule(".lang-name",{font:"400 11px 'Segoe UI', Ubuntu, Sans-Serif",fill:textColor}),rule("#rect-mask rect",{animation:"slideInAnima\ +tion 1s ease-in-out forwards"}),rule(".lang-progress",{animation:"growWidthAnimation 0.6s ease-in-out forwards",fill:titleColor}),rule(".progress-background",{fill:progressBackground(titleColor,textColor)})], +dark:({titleColor,textColor})=>[getStyles2({textColor}),rule(".lang-name",{fill:textColor}),rule(".lang-progress",{fill:titleColor}),rule(".progress-background",{fill:progressBackground(titleColor,textColor)})]}); +card.setAccessibilityLabel({title:card.title,desc:filteredLanguages.length>0?filteredLanguages.map(lang=>`${lang.name}: ${formatLanguageValue({display_format,lang})}`).join(", "):i18n.t("wakatimecard.\ +nocodingactivity")});return card.render(el("svg",{x:0,y:0,width:"100%"},finalLayout))};var fetchWakatimeStats=async({username,api_domain},config2)=>{if(!username){throw CardError.missingParam(["username"])}const domain=api_domain?api_domain.replaceAll(/\/$/gi,""):"wakatime.com";const res=await httpRequest( +config2.fetch,`https://${domain}/api/v1/users/${username}/stats?is_including_today=true`);if(res.status===404){throw new CardError(`Could not resolve to a User with the login of '${username}'`,{code:"\ +not_found",secondaryMessage:WAKATIME_USER_NOT_FOUND})}if(res.status<200||res.status>299){throw new CardError(`Could not fetch the WakaTime stats of '${username}'`,{code:"upstream"})}return res.data.data};var wakatimeQuery=object({username:safeParam,hide_border:booleanParam,card_width:looseIntParam,line_height:rawParam,hide_title:booleanParam,hide_progress:booleanParam,custom_title:rawParam,locale:localeParam, +layout:enumParam(WAKATIME_LAYOUTS),langs_count:looseIntParam,hide:listParam,api_domain:rawParam,border_radius:numberParam,display_format:enumParam(DISPLAY_FORMATS),disable_animations:booleanParam});var renderWakatime=async(query,config2)=>{ +let colors;try{colors=parseColorParams(query)}catch(error2){return errorResult(error2)}try{const{username,hide_border,card_width,line_height,hide_title,hide_progress,custom_title,locale,layout,langs_count, +hide:hide2,api_domain,border_radius,display_format,disable_animations}=parseParams(wakatimeQuery,query);const stats2=await fetchWakatimeStats({username,api_domain},config2);return{status:"success",content:renderWakatimeCard( +stats2,{...colors,custom_title,hide_title,hide_border,card_width,hide:hide2,line_height,hide_progress,border_radius,locale,layout,langs_count,display_format,disable_animations})}}catch(error2){return errorResult( +error2,colors)}};var wakatime=Object.assign(renderWakatime,{LAYOUTS:WAKATIME_LAYOUTS,DISPLAY_FORMATS});var parseCsv=value=>value?value.split(","):void 0;var parseFetchMultiPageStars=value=>{if(value==="true"){return Infinity}const limit=Number(value);return limit>0?limit:1};var parsePATsFromEnv=env=>Object. +keys(env).filter(key=>/PAT_\d*$/.exec(key)).map(name=>({name,value:env[name]??""}));var CardConfig=class _CardConfig{pats;usernameAllowlist;gistAllowlist;excludeRepositories;fetchMultiPageStars;fetch;constructor(init={}){ +this.pats=init.pats??[];this.usernameAllowlist=init.usernameAllowlist;this.gistAllowlist=init.gistAllowlist;this.excludeRepositories=init.excludeRepositories??[];this.fetchMultiPageStars=init.fetchMultiPageStars?? +1;this.fetch=init.fetch??defaultFetch}static fromEnv(env){return new _CardConfig({pats:parsePATsFromEnv(env),usernameAllowlist:parseCsv(env["WHITELIST"]),gistAllowlist:parseCsv(env["GIST_WHITELIST"]), +excludeRepositories:parseCsv(env["EXCLUDE_REPO"])??[],fetchMultiPageStars:parseFetchMultiPageStars(env["FETCH_MULTI_PAGE_STARS"])})}isAllowed(id,kind){const list=kind==="gist"?this.gistAllowlist:this. +usernameAllowlist;return list===void 0||list.includes(id)}with(overrides){return new _CardConfig({pats:this.pats,usernameAllowlist:this.usernameAllowlist,gistAllowlist:this.gistAllowlist,excludeRepositories:this. +excludeRepositories,fetchMultiPageStars:this.fetchMultiPageStars,fetch:this.fetch,...overrides})}};var CARDS={stats:{handler:stats,requires:"username"},"top-langs":{handler:topLangs,requires:"username"},pin:{handler:pin,requires:"repo"},wakatime:{handler:wakatime,requires:"username"},gist:{handler:gist, +requires:"id"}};var isCardName=value=>Object.hasOwn(CARDS,value);var parseOptions=value=>{const trimmed=value.trim();if(!trimmed){return{}}if(trimmed.startsWith("{")){let parsed;try{parsed=JSON.parse( +trimmed)}catch{throw new Error("Invalid JSON in options.")}if(typeof parsed!=="object"||parsed===null){throw new Error("Invalid JSON in options.")}return Object.fromEntries(Object.entries(parsed).filter( +([,entry])=>entry!==null&&entry!==void 0).map(([key,entry])=>[key,Array.isArray(entry)?entry.join(","):String(entry)]))}const params=new URLSearchParams(trimmed);return Object.fromEntries([...new Set( +params.keys())].map(key=>[key,params.getAll(key).join(",")]))};var resolveCard=(card,options)=>{if(!isCardName(card)){throw new Error(`Unsupported card type: ${card}. Expected one of ${Object.keys(CARDS). +join(", ")}.`)}const definition=CARDS[card];if(!options[definition.requires]){throw new Error(`${definition.requires} is required for the ${card} card.`)}return definition};var run=async()=>{const card=getInput( +"card",{required:true}).toLowerCase();const options=parseOptions(getInput("options"));const repositoryOwner=process.env["GITHUB_REPOSITORY_OWNER"];if(!options["username"]&&repositoryOwner){options["us\ +ername"]=repositoryOwner;warning("username not provided; defaulting to repository owner.")}const{handler}=resolveCard(card,options);const token=getInput("token");const config2=new CardConfig({pats:token? +[{name:"action input `token`",value:token}]:[]});const result=await handler(options,config2);if(result.status==="error"){throw new Error(result.retryable?`Card generation failed while fetching data: ${result. +error.message}`:`Card generation failed: ${result.error.message}`)}if(!result.content){throw new Error("Card renderer returned empty output.")}const outputPath=getInput("path")||path.join("profile",`${card}\ +.svg`);const resolved=path.resolve(process.cwd(),outputPath);await mkdir2(path.dirname(resolved),{recursive:true});await writeFile2(resolved,result.content,"utf8");info(`Wrote ${resolved}`);setOutput( +"path",outputPath)};try{await run()}catch(error2){setFailed(error2 instanceof Error?error2.message:String(error2))} /*! Bundled license information: undici/lib/web/fetch/body.js: diff --git a/esbuild.config.ts b/esbuild.config.ts new file mode 100644 index 0000000..09ed86b --- /dev/null +++ b/esbuild.config.ts @@ -0,0 +1,18 @@ +import { build } from 'esbuild'; + +await build({ + entryPoints: ['src/index.ts'], + outfile: 'dist/index.js', + bundle: true, + platform: 'node', + target: 'node24', + format: 'esm', + // Bundled dependencies still call `require`, which ESM does not define. + banner: { + js: "import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);", + }, + // Drops the comments the dependencies bring along. + minifyWhitespace: true, + // Without it, `minifyWhitespace` collapses the bundle into a few enormous lines. + lineLimit: 200, +}); diff --git a/knip.jsonc b/knip.jsonc index f9ac799..061631f 100644 --- a/knip.jsonc +++ b/knip.jsonc @@ -5,7 +5,7 @@ "project": ["src/**/*.ts"], // Build output, not source. // knip hints "Remove from ignore" while `dist/` is absent, but with the bundle - // present, dropping this makes it scan 1.1mb of CJS and report its requires. + // present, dropping this makes it scan the whole bundle and report its requires. "ignore": ["dist/**"], "vitest": { "entry": ["tests/*.spec.ts"], diff --git a/lefthook.yml b/lefthook.yml index 8d4fd3a..a2f2ef5 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -22,6 +22,7 @@ pre-commit: - name: build glob: - 'src/**' + - 'esbuild.config.ts' - 'package.json' - 'pnpm-lock.yaml' # the bundle ships from the repo, so it belongs in the commit that changed it diff --git a/oxfmt.config.ts b/oxfmt.config.ts index eef8d24..38075f6 100644 --- a/oxfmt.config.ts +++ b/oxfmt.config.ts @@ -4,11 +4,10 @@ import { defineConfig } from 'oxfmt'; export default defineConfig({ ...oxfmtConfig, ignorePatterns: [ - // The committed bundle: generated, and 1.1mb of it. + // The committed bundle: // `.gitignore` cannot hold it, because the action runs `dist/` from the repo. 'dist', - // Written by release-please on every release. - // Reformatting it only fights whatever it generates next. + // Written by release-please on every release (no option to format it). 'CHANGELOG.md', ], }); diff --git a/package.json b/package.json index 0549675..4190aec 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "type": "module", "scripts": { "prepare": "lefthook install", - "build": "esbuild src/index.ts --bundle --platform=node --target=node24 --format=esm --banner:js=\"import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);\" --outfile=dist/index.js", + "build": "node esbuild.config.ts", "typecheck": "tsc -p tsconfig.json", "test": "vitest", "format": "oxfmt --write .", @@ -22,7 +22,7 @@ }, "dependencies": { "@actions/core": "3.0.1", - "@stats-forge/github-stats-forge-core": "0.0.2" + "@stats-forge/github-stats-forge-core": "0.1.0" }, "devDependencies": { "@marcalexiei/oxfmt-config": "1.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7dd1ad5..8cd01b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: 3.0.1 version: 3.0.1 '@stats-forge/github-stats-forge-core': - specifier: 0.0.2 - version: 0.0.2 + specifier: 0.1.0 + version: 0.1.0 devDependencies: '@marcalexiei/oxfmt-config': specifier: 1.3.0 @@ -870,9 +870,9 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@stats-forge/github-stats-forge-core@0.0.2': - resolution: {integrity: sha512-iCKHGE7eP625JeXfzwWcHVcLvipjw2KNNHCVuj/1AawbxQZMapewxebW04j0llxPQotLWQGqqzXFrzk5sFuhfQ==} - engines: {node: '>=24'} + '@stats-forge/github-stats-forge-core@0.1.0': + resolution: {integrity: sha512-4Zr725kCYiQrYYKlm9azJsAgAU2VrBBDbFDke8ya7z9j8cR7iWUHHA6lyHTTmTdxoetF16btz/afesLl0exhZw==} + engines: {node: ^24 || >=26} '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -1053,9 +1053,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - emoji-name-map@2.0.3: - resolution: {integrity: sha512-3KBuQuhYkRtLd9utBKfTtclbWP3IytC1FNcXg+NKARltPSYpkg/MLiklGv4vLwl8A8jMQjdneXNBYx8k0rrg+g==} - es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} @@ -1096,9 +1093,6 @@ packages: get-tsconfig@4.14.0: resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} - github-username-regex@1.0.0: - resolution: {integrity: sha512-EqDVkN0/5MQyDPOSDLInVRRXdeISRfcN1UW/1FUqD2knV1HHw8DndMB3UPNn5lO51DvRnjzbLXwWqNNV86PLOw==} - jiti@2.7.0: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true @@ -1471,6 +1465,9 @@ packages: zod@4.5.2: resolution: {integrity: sha512-XkYXCol10+ba/6F/cueWV+TezUeOqXW0hdeJt5CdXjTYeAgAQg5N03RQdJ80mhfFE72+pblvYMW4wy2Qp4Qbrg==} + zod@4.5.4: + resolution: {integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==} + snapshots: '@actions/core@3.0.1': @@ -1930,11 +1927,9 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stats-forge/github-stats-forge-core@0.0.2': + '@stats-forge/github-stats-forge-core@0.1.0': dependencies: - emoji-name-map: 2.0.3 - github-username-regex: 1.0.0 - zod: 4.5.2 + zod: 4.5.4 '@tybys/wasm-util@0.10.3': dependencies: @@ -2063,8 +2058,6 @@ snapshots: detect-libc@2.1.2: {} - emoji-name-map@2.0.3: {} - es-module-lexer@2.3.2: {} esbuild@0.28.2: @@ -2121,8 +2114,6 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 - github-username-regex@1.0.0: {} - jiti@2.7.0: {} knip@6.27.0: @@ -2489,3 +2480,5 @@ snapshots: yaml@2.9.0: {} zod@4.5.2: {} + + zod@4.5.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dd0091f..cc1c77b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -19,8 +19,9 @@ minimumReleaseAge: 4320 # It buys nothing against our own packages, and would hold the action three days # behind every release we make ourselves. minimumReleaseAgeExclude: - - '@stats-forge/*' - - '@marcalexiei/*' + - '@stats-forge/github-stats-forge-core' + - '@marcalexiei/oxfmt-config' + - '@marcalexiei/oxlint-config' # Reject a version with weaker publish trust evidence than an earlier one. trustPolicy: no-downgrade diff --git a/tsconfig.json b/tsconfig.json index 5f2d1cc..8d6acd2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,5 +17,12 @@ "noEmit": true }, - "include": ["src", "tests", "oxfmt.config.ts", "oxlint.config.ts", "vitest.config.ts"] + "include": [ + "src", + "tests", + "esbuild.config.ts", + "oxfmt.config.ts", + "oxlint.config.ts", + "vitest.config.ts" + ] }