'use strict'; var assert50 = require('assert'); var module2 = require('module'); var path3 = require('path'); var fs23 = require('fs'); var os10 = require('os'); var util2 = require('util'); var Url = require('url'); var process7 = require('process'); var tty = require('tty'); var childProcess = require('child_process'); var crypto2 = require('crypto'); var fs12 = require('fs/promises'); var esbuild = require('esbuild'); var miniflare = require('miniflare'); var async_hooks = require('async_hooks'); var console$1 = require('console'); var S = require('readline'); var Stream = require('stream'); var http = require('http'); var https = require('https'); var zlib = require('zlib'); var web = require('stream/web'); var events = require('events'); var buffer = require('buffer'); var net = require('net'); var domain = require('domain'); var consumers = require('stream/consumers'); var string_decoder = require('string_decoder'); var blake3Wasm = require('blake3-wasm'); var promises = require('timers/promises'); var workerd = require('workerd'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var assert50__default = /*#__PURE__*/_interopDefault(assert50); var module2__default = /*#__PURE__*/_interopDefault(module2); var path3__namespace = /*#__PURE__*/_interopNamespace(path3); var fs23__namespace = /*#__PURE__*/_interopNamespace(fs23); var os10__namespace = /*#__PURE__*/_interopNamespace(os10); var util2__namespace = /*#__PURE__*/_interopNamespace(util2); var Url__default = /*#__PURE__*/_interopDefault(Url); var process7__default = /*#__PURE__*/_interopDefault(process7); var tty__default = /*#__PURE__*/_interopDefault(tty); var childProcess__default = /*#__PURE__*/_interopDefault(childProcess); var crypto2__default = /*#__PURE__*/_interopDefault(crypto2); var fs12__default = /*#__PURE__*/_interopDefault(fs12); var esbuild__namespace = /*#__PURE__*/_interopNamespace(esbuild); var async_hooks__namespace = /*#__PURE__*/_interopNamespace(async_hooks); var S__default = /*#__PURE__*/_interopDefault(S); var Stream__namespace = /*#__PURE__*/_interopNamespace(Stream); var http__namespace = /*#__PURE__*/_interopNamespace(http); var https__namespace = /*#__PURE__*/_interopNamespace(https); var zlib__namespace = /*#__PURE__*/_interopNamespace(zlib); var events__default = /*#__PURE__*/_interopDefault(events); var net__default = /*#__PURE__*/_interopDefault(net); var domain__namespace = /*#__PURE__*/_interopNamespace(domain); 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 __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __require = /* @__PURE__ */ ((x7) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x7, { get: (a7, b11) => (typeof require !== "undefined" ? require : a7)[b11] }) : x7)(function(x7) { if (typeof require !== "undefined") return require.apply(this, arguments); throw Error('Dynamic require of "' + x7 + '" is not supported'); }); var __esm = (fn2, res) => function __init() { return fn2 && (res = (0, fn2[__getOwnPropNames(fn2)[0]])(fn2 = 0)), res; }; var __commonJS = (cb2, mod) => function __require3() { return mod || (0, cb2[__getOwnPropNames(cb2)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all3) => { for (var name2 in all3) __defProp(target, name2, { get: all3[name2], enumerable: true }); }; 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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget); 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 )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // import_meta_url.js var import_meta_url; var init_import_meta_url = __esm({ "import_meta_url.js"() { import_meta_url = __require("url").pathToFileURL(__filename); } }); // ../../node_modules/.pnpm/cloudflare@5.2.0_encoding@0.1.13/node_modules/cloudflare/_shims/registry.mjs function setShims(shims, options = { auto: false }) { if (auto) { throw new Error(`you must \`import 'cloudflare/shims/${shims.kind}'\` before importing anything else from cloudflare`); } if (kind) { throw new Error(`can't \`import 'cloudflare/shims/${shims.kind}'\` after \`import 'cloudflare/shims/${kind}'\``); } auto = options.auto; kind = shims.kind; fetch2 = shims.fetch; shims.Request; shims.Response; shims.Headers; FormData2 = shims.FormData; shims.Blob; File2 = shims.File; shims.ReadableStream; getMultipartRequestOptions = shims.getMultipartRequestOptions; getDefaultAgent = shims.getDefaultAgent; fileFromPath = shims.fileFromPath; isFsReadStream = shims.isFsReadStream; } var auto, kind, fetch2, FormData2, File2, getMultipartRequestOptions, getDefaultAgent, fileFromPath, isFsReadStream; var init_registry = __esm({ "../../node_modules/.pnpm/cloudflare@5.2.0_encoding@0.1.13/node_modules/cloudflare/_shims/registry.mjs"() { init_import_meta_url(); auto = false; kind = void 0; fetch2 = void 0; FormData2 = void 0; File2 = void 0; getMultipartRequestOptions = void 0; getDefaultAgent = void 0; fileFromPath = void 0; isFsReadStream = void 0; __name(setShims, "setShims"); } }); // ../../node_modules/.pnpm/cloudflare@5.2.0_encoding@0.1.13/node_modules/cloudflare/_shims/MultipartBody.mjs var MultipartBody; var init_MultipartBody = __esm({ "../../node_modules/.pnpm/cloudflare@5.2.0_encoding@0.1.13/node_modules/cloudflare/_shims/MultipartBody.mjs"() { init_import_meta_url(); MultipartBody = class { static { __name(this, "MultipartBody"); } constructor(body) { this.body = body; } get [Symbol.toStringTag]() { return "MultipartBody"; } }; } }); // ../workers-utils/dist/chunk-LDFBMPMW.mjs var __create2, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __getProtoOf2, __hasOwnProp2, __name2, __require2, __commonJS2, __export2, __copyProps2, __reExport2, __toESM2, INHERIT_SYMBOL, SERVICE_TAG_PREFIX, ENVIRONMENT_TAG_PREFIX, PATH_TO_DEPLOY_CONFIG, JSON_CONFIG_FORMATS; var init_chunk_LDFBMPMW = __esm({ "../workers-utils/dist/chunk-LDFBMPMW.mjs"() { init_import_meta_url(); __create2 = Object.create; __defProp2 = Object.defineProperty; __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; __getOwnPropNames2 = Object.getOwnPropertyNames; __getProtoOf2 = Object.getPrototypeOf; __hasOwnProp2 = Object.prototype.hasOwnProperty; __name2 = /* @__PURE__ */ __name((target, value) => __defProp2(target, "name", { value, configurable: true }), "__name"); __require2 = /* @__PURE__ */ ((x7) => typeof __require !== "undefined" ? __require : typeof Proxy !== "undefined" ? new Proxy(x7, { get: /* @__PURE__ */ __name((a7, b11) => (typeof __require !== "undefined" ? __require : a7)[b11], "get") }) : x7)(function(x7) { if (typeof __require !== "undefined") return __require.apply(this, arguments); throw Error('Dynamic require of "' + x7 + '" is not supported'); }); __commonJS2 = /* @__PURE__ */ __name((cb2, mod) => /* @__PURE__ */ __name(function __require22() { return mod || (0, cb2[__getOwnPropNames2(cb2)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }, "__require2"), "__commonJS"); __export2 = /* @__PURE__ */ __name((target, all3) => { for (var name2 in all3) __defProp2(target, name2, { get: all3[name2], enumerable: true }); }, "__export"); __copyProps2 = /* @__PURE__ */ __name((to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames2(from)) if (!__hasOwnProp2.call(to, key) && key !== except) __defProp2(to, key, { get: /* @__PURE__ */ __name(() => from[key], "get"), enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable }); } return to; }, "__copyProps"); __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport"); __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2( // 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 ? __defProp2(target, "default", { value: mod, enumerable: true }) : target, mod )), "__toESM"); INHERIT_SYMBOL = Symbol.for("inherit_binding"); SERVICE_TAG_PREFIX = "cf:service="; ENVIRONMENT_TAG_PREFIX = "cf:environment="; PATH_TO_DEPLOY_CONFIG = ".wrangler/deploy/config.json"; JSON_CONFIG_FORMATS = ["json", "jsonc"]; } }); function getLocalWorkerdCompatibilityDate({ projectPath = process.cwd() } = {}) { try { const projectRequire = module2__default.default.createRequire( path3__namespace.default.join(projectPath, "package.json") ); const miniflareEntry = projectRequire.resolve("miniflare"); const miniflareRequire = module2__default.default.createRequire(miniflareEntry); const miniflareWorkerd = miniflareRequire("workerd"); const workerdDate = miniflareWorkerd.compatibilityDate; return { date: toSafeCompatibilityDate(new Date(workerdDate)), source: "workerd" }; } catch { } return { date: "2025-09-27", source: "fallback" }; } function toSafeCompatibilityDate(date) { if (date.getTime() > Date.now()) { return formatCompatibilityDate(/* @__PURE__ */ new Date()); } return formatCompatibilityDate(date); } function isCompatDate(str) { return /^\d{4}-\d{2}-\d{2}$/.test(str); } function formatCompatibilityDate(date) { const compatDate = date.toISOString().slice(0, 10); assert50__default.default(isCompatDate(compatDate)); return compatDate; } function assertNever(_value) { } function mapWorkerMetadataBindings(bindings) { return bindings.filter((binding) => binding.type !== "secret_text").reduce((configObj, binding) => { switch (binding.type) { case "plain_text": { configObj.vars = { ...configObj.vars ?? {}, [binding.name]: binding.text }; } break; case "json": { configObj.vars = { ...configObj.vars ?? {}, name: binding.name, json: binding.json }; } break; case "kv_namespace": { configObj.kv_namespaces = [ ...configObj.kv_namespaces ?? [], { id: binding.namespace_id, binding: binding.name } ]; } break; case "durable_object_namespace": { configObj.durable_objects = { bindings: [ ...configObj.durable_objects?.bindings ?? [], { name: binding.name, class_name: binding.class_name, script_name: binding.script_name, environment: binding.environment } ] }; } break; case "d1": { configObj.d1_databases = [ ...configObj.d1_databases ?? [], { binding: binding.name, database_id: binding.id } ]; } break; case "browser": { configObj.browser = { binding: binding.name }; } break; case "ai": { configObj.ai = { binding: binding.name }; } break; case "images": { configObj.images = { binding: binding.name }; } break; case "media": { configObj.media = { binding: binding.name }; } break; case "r2_bucket": { configObj.r2_buckets = [ ...configObj.r2_buckets ?? [], { binding: binding.name, bucket_name: binding.bucket_name, jurisdiction: binding.jurisdiction } ]; } break; case "secrets_store_secret": { configObj.secrets_store_secrets = [ ...configObj.secrets_store_secrets ?? [], { binding: binding.name, store_id: binding.store_id, secret_name: binding.secret_name } ]; } break; case "unsafe_hello_world": { configObj.unsafe_hello_world = [ ...configObj.unsafe_hello_world ?? [], { binding: binding.name, enable_timer: binding.enable_timer } ]; break; } case "service": { configObj.services = [ ...configObj.services ?? [], { binding: binding.name, service: binding.service, environment: binding.environment, entrypoint: binding.entrypoint } ]; } break; case "analytics_engine": { configObj.analytics_engine_datasets = [ ...configObj.analytics_engine_datasets ?? [], { binding: binding.name, dataset: binding.dataset } ]; } break; case "dispatch_namespace": { configObj.dispatch_namespaces = [ ...configObj.dispatch_namespaces ?? [], { binding: binding.name, namespace: binding.namespace, ...binding.outbound && { outbound: { service: binding.outbound.worker.service, environment: binding.outbound.worker.environment, parameters: binding.outbound.params?.map((p7) => p7.name) ?? [] } } } ]; } break; case "logfwdr": { configObj.logfwdr = { bindings: [ ...configObj.logfwdr?.bindings ?? [], { name: binding.name, destination: binding.destination } ] }; } break; case "wasm_module": { configObj.wasm_modules = { ...configObj.wasm_modules ?? {}, [binding.name]: binding.part }; } break; case "text_blob": { configObj.text_blobs = { ...configObj.text_blobs ?? {}, [binding.name]: binding.part }; } break; case "data_blob": { configObj.data_blobs = { ...configObj.data_blobs ?? {}, [binding.name]: binding.part }; } break; case "secret_text": break; case "version_metadata": { { configObj.version_metadata = { binding: binding.name }; } break; } case "send_email": { configObj.send_email = [ ...configObj.send_email ?? [], { name: binding.name, destination_address: binding.destination_address, allowed_destination_addresses: binding.allowed_destination_addresses, allowed_sender_addresses: binding.allowed_sender_addresses } ]; break; } case "queue": configObj.queues ??= { producers: [] }; configObj.queues.producers = [ ...configObj.queues.producers ?? [], { binding: binding.name, queue: binding.queue_name, delivery_delay: binding.delivery_delay } ]; break; case "vectorize": configObj.vectorize = [ ...configObj.vectorize ?? [], { binding: binding.name, index_name: binding.index_name } ]; break; case "hyperdrive": configObj.hyperdrive = [ ...configObj.hyperdrive ?? [], { binding: binding.name, id: binding.id } ]; break; case "mtls_certificate": configObj.mtls_certificates = [ ...configObj.mtls_certificates ?? [], { binding: binding.name, certificate_id: binding.certificate_id } ]; break; case "pipelines": configObj.pipelines = [ ...configObj.pipelines ?? [], { binding: binding.name, pipeline: binding.pipeline } ]; break; case "assets": configObj.assets = { binding: binding.name // Note: we currently don't get all the assets information from the // API, so here we are only able to set the name of the binding // hopefully in the future we can properly fully support the binding }; break; case "inherit": configObj.unsafe = { bindings: [...configObj.unsafe?.bindings ?? [], binding], metadata: configObj.unsafe?.metadata ?? void 0 }; break; case "workflow": { configObj.workflows = [ ...configObj.workflows ?? [], { binding: binding.name, name: binding.workflow_name, class_name: binding.class_name, script_name: binding.script_name } ]; } break; case "worker_loader": { configObj.worker_loaders = [ ...configObj.worker_loaders ?? [], { binding: binding.name } ]; } break; case "ratelimit": { configObj.ratelimits = [ ...configObj.ratelimits ?? [], { name: binding.name, namespace_id: binding.namespace_id, simple: { limit: binding.simple.limit, period: binding.simple.period } } ]; } break; case "vpc_service": { configObj.vpc_services = [ ...configObj.vpc_services ?? [], { binding: binding.name, service_id: binding.service_id } ]; } break; default: { configObj.unsafe = { bindings: [...configObj.unsafe?.bindings ?? [], binding], metadata: configObj.unsafe?.metadata ?? void 0 }; } } return configObj; }, {}); } function convertWorkerToWranglerConfig(config) { const mappedBindings = mapWorkerMetadataBindings(config.bindings); const durableObjectClassNames = config.bindings.filter( (binding) => binding.type === "durable_object_namespace" && binding.script_name === config.name ).map( (durableObject) => durableObject.class_name ); const allRoutes = [ ...config.routes.map((r9) => ({ pattern: r9.pattern, zone_name: r9.zone_name })), ...config.domains.map((c8) => ({ pattern: c8.hostname, zone_name: c8.zone_name, custom_domain: true })) ]; return { name: config.name, main: config.entrypoint, workers_dev: config.subdomain.enabled, preview_urls: config.subdomain.previews_enabled, compatibility_date: config.compatibility_date ?? formatCompatibilityDate(/* @__PURE__ */ new Date()), compatibility_flags: config.compatibility_flags, ...allRoutes.length ? { routes: allRoutes } : {}, placement: config.placement?.mode === "smart" ? { mode: "smart" } : void 0, limits: config.limits, ...durableObjectClassNames.length && config.migration_tag ? { migrations: [ { tag: config.migration_tag, new_classes: durableObjectClassNames } ] } : {}, ...config.schedules.length ? { triggers: { crons: config.schedules.map((scheduled) => scheduled.cron) } } : {}, tail_consumers: config.tail_consumers ?? void 0, observability: config.observability, ...mappedBindings }; } function constructWranglerConfig(workerOrWorkers) { let workers; if (Array.isArray(workerOrWorkers)) { workers = workerOrWorkers; } else { workers = [workerOrWorkers]; } const topLevelEnv = workers.find( (w7) => !w7.tags?.some((t12) => t12.startsWith(ENVIRONMENT_TAG_PREFIX)) ); const workerName = topLevelEnv?.name ?? workers[0].name; const entrypoint = topLevelEnv?.entrypoint ?? workers[0].entrypoint; let combinedConfig; if (topLevelEnv) { combinedConfig = convertWorkerToWranglerConfig(topLevelEnv); } else { combinedConfig = { name: workerName, main: entrypoint }; } for (const env6 of workers) { const serviceTag = env6.tags?.find( (t12) => t12 === `${SERVICE_TAG_PREFIX}${workerName}` ); const envTag = env6.tags?.find((t12) => t12.startsWith(ENVIRONMENT_TAG_PREFIX)); if (serviceTag !== `${SERVICE_TAG_PREFIX}${workerName}` || envTag === void 0) { continue; } const [_5, envName] = envTag.split("="); combinedConfig.env ??= {}; combinedConfig.env[envName] = convertWorkerToWranglerConfig(env6); } return combinedConfig; } var init_chunk_4233U5MA = __esm({ "../workers-utils/dist/chunk-4233U5MA.mjs"() { init_import_meta_url(); init_chunk_LDFBMPMW(); __name(getLocalWorkerdCompatibilityDate, "getLocalWorkerdCompatibilityDate"); __name2(getLocalWorkerdCompatibilityDate, "getLocalWorkerdCompatibilityDate"); __name(toSafeCompatibilityDate, "toSafeCompatibilityDate"); __name2(toSafeCompatibilityDate, "toSafeCompatibilityDate"); __name(isCompatDate, "isCompatDate"); __name2(isCompatDate, "isCompatDate"); __name(formatCompatibilityDate, "formatCompatibilityDate"); __name2(formatCompatibilityDate, "formatCompatibilityDate"); __name(assertNever, "assertNever"); __name2(assertNever, "assertNever"); __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings"); __name2(mapWorkerMetadataBindings, "mapWorkerMetadataBindings"); __name(convertWorkerToWranglerConfig, "convertWorkerToWranglerConfig"); __name2(convertWorkerToWranglerConfig, "convertWorkerToWranglerConfig"); __name(constructWranglerConfig, "constructWranglerConfig"); __name2(constructWranglerConfig, "constructWranglerConfig"); } }); function createFatalError(message, isJson, code, telemetryMessage) { if (isJson) { return new JsonFriendlyFatalError( JSON.stringify(message), code, telemetryMessage ); } else { return new FatalError(`${message}`, code, telemetryMessage); } } function createScanner(text, ignoreTrivia = false) { const len = text.length; let pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0; function scanHexDigits(count, exact) { let digits2 = 0; let value2 = 0; while (digits2 < count || !exact) { let ch2 = text.charCodeAt(pos); if (ch2 >= 48 && ch2 <= 57) { value2 = value2 * 16 + ch2 - 48; } else if (ch2 >= 65 && ch2 <= 70) { value2 = value2 * 16 + ch2 - 65 + 10; } else if (ch2 >= 97 && ch2 <= 102) { value2 = value2 * 16 + ch2 - 97 + 10; } else { break; } pos++; digits2++; } if (digits2 < count) { value2 = -1; } return value2; } __name(scanHexDigits, "scanHexDigits"); __name2(scanHexDigits, "scanHexDigits"); function setPosition(newPosition) { pos = newPosition; value = ""; tokenOffset = 0; token = 16; scanError = 0; } __name(setPosition, "setPosition"); __name2(setPosition, "setPosition"); function scanNumber() { let start = pos; if (text.charCodeAt(pos) === 48) { pos++; } else { pos++; while (pos < text.length && isDigit(text.charCodeAt(pos))) { pos++; } } if (pos < text.length && text.charCodeAt(pos) === 46) { pos++; if (pos < text.length && isDigit(text.charCodeAt(pos))) { pos++; while (pos < text.length && isDigit(text.charCodeAt(pos))) { pos++; } } else { scanError = 3; return text.substring(start, pos); } } let end = pos; if (pos < text.length && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) { pos++; if (pos < text.length && text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) { pos++; } if (pos < text.length && isDigit(text.charCodeAt(pos))) { pos++; while (pos < text.length && isDigit(text.charCodeAt(pos))) { pos++; } end = pos; } else { scanError = 3; } } return text.substring(start, end); } __name(scanNumber, "scanNumber"); __name2(scanNumber, "scanNumber"); function scanString() { let result = "", start = pos; while (true) { if (pos >= len) { result += text.substring(start, pos); scanError = 2; break; } const ch2 = text.charCodeAt(pos); if (ch2 === 34) { result += text.substring(start, pos); pos++; break; } if (ch2 === 92) { result += text.substring(start, pos); pos++; if (pos >= len) { scanError = 2; break; } const ch22 = text.charCodeAt(pos++); switch (ch22) { case 34: result += '"'; break; case 92: result += "\\"; break; case 47: result += "/"; break; case 98: result += "\b"; break; case 102: result += "\f"; break; case 110: result += "\n"; break; case 114: result += "\r"; break; case 116: result += " "; break; case 117: const ch3 = scanHexDigits(4, true); if (ch3 >= 0) { result += String.fromCharCode(ch3); } else { scanError = 4; } break; default: scanError = 5; } start = pos; continue; } if (ch2 >= 0 && ch2 <= 31) { if (isLineBreak(ch2)) { result += text.substring(start, pos); scanError = 2; break; } else { scanError = 6; } } pos++; } return result; } __name(scanString, "scanString"); __name2(scanString, "scanString"); function scanNext() { value = ""; scanError = 0; tokenOffset = pos; lineStartOffset = lineNumber; prevTokenLineStartOffset = tokenLineStartOffset; if (pos >= len) { tokenOffset = len; return token = 17; } let code = text.charCodeAt(pos); if (isWhiteSpace(code)) { do { pos++; value += String.fromCharCode(code); code = text.charCodeAt(pos); } while (isWhiteSpace(code)); return token = 15; } if (isLineBreak(code)) { pos++; value += String.fromCharCode(code); if (code === 13 && text.charCodeAt(pos) === 10) { pos++; value += "\n"; } lineNumber++; tokenLineStartOffset = pos; return token = 14; } switch (code) { // tokens: []{}:, case 123: pos++; return token = 1; case 125: pos++; return token = 2; case 91: pos++; return token = 3; case 93: pos++; return token = 4; case 58: pos++; return token = 6; case 44: pos++; return token = 5; // strings case 34: pos++; value = scanString(); return token = 10; // comments case 47: const start = pos - 1; if (text.charCodeAt(pos + 1) === 47) { pos += 2; while (pos < len) { if (isLineBreak(text.charCodeAt(pos))) { break; } pos++; } value = text.substring(start, pos); return token = 12; } if (text.charCodeAt(pos + 1) === 42) { pos += 2; const safeLength = len - 1; let commentClosed = false; while (pos < safeLength) { const ch2 = text.charCodeAt(pos); if (ch2 === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; commentClosed = true; break; } pos++; if (isLineBreak(ch2)) { if (ch2 === 13 && text.charCodeAt(pos) === 10) { pos++; } lineNumber++; tokenLineStartOffset = pos; } } if (!commentClosed) { pos++; scanError = 1; } value = text.substring(start, pos); return token = 13; } value += String.fromCharCode(code); pos++; return token = 16; // numbers case 45: value += String.fromCharCode(code); pos++; if (pos === len || !isDigit(text.charCodeAt(pos))) { return token = 16; } // found a minus, followed by a number so // we fall through to proceed with scanning // numbers case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: value += scanNumber(); return token = 11; // literals and unknown symbols default: while (pos < len && isUnknownContentCharacter(code)) { pos++; code = text.charCodeAt(pos); } if (tokenOffset !== pos) { value = text.substring(tokenOffset, pos); switch (value) { case "true": return token = 8; case "false": return token = 9; case "null": return token = 7; } return token = 16; } value += String.fromCharCode(code); pos++; return token = 16; } } __name(scanNext, "scanNext"); __name2(scanNext, "scanNext"); function isUnknownContentCharacter(code) { if (isWhiteSpace(code) || isLineBreak(code)) { return false; } switch (code) { case 125: case 93: case 123: case 91: case 34: case 58: case 44: case 47: return false; } return true; } __name(isUnknownContentCharacter, "isUnknownContentCharacter"); __name2(isUnknownContentCharacter, "isUnknownContentCharacter"); function scanNextNonTrivia() { let result; do { result = scanNext(); } while (result >= 12 && result <= 15); return result; } __name(scanNextNonTrivia, "scanNextNonTrivia"); __name2(scanNextNonTrivia, "scanNextNonTrivia"); return { setPosition, getPosition: /* @__PURE__ */ __name2(() => pos, "getPosition"), scan: ignoreTrivia ? scanNextNonTrivia : scanNext, getToken: /* @__PURE__ */ __name2(() => token, "getToken"), getTokenValue: /* @__PURE__ */ __name2(() => value, "getTokenValue"), getTokenOffset: /* @__PURE__ */ __name2(() => tokenOffset, "getTokenOffset"), getTokenLength: /* @__PURE__ */ __name2(() => pos - tokenOffset, "getTokenLength"), getTokenStartLine: /* @__PURE__ */ __name2(() => lineStartOffset, "getTokenStartLine"), getTokenStartCharacter: /* @__PURE__ */ __name2(() => tokenOffset - prevTokenLineStartOffset, "getTokenStartCharacter"), getTokenError: /* @__PURE__ */ __name2(() => scanError, "getTokenError") }; } function isWhiteSpace(ch2) { return ch2 === 32 || ch2 === 9; } function isLineBreak(ch2) { return ch2 === 10 || ch2 === 13; } function isDigit(ch2) { return ch2 >= 48 && ch2 <= 57; } function format(documentText, range, options) { let initialIndentLevel; let formatText; let formatTextStart; let rangeStart; let rangeEnd; if (range) { rangeStart = range.offset; rangeEnd = rangeStart + range.length; formatTextStart = rangeStart; while (formatTextStart > 0 && !isEOL(documentText, formatTextStart - 1)) { formatTextStart--; } let endOffset = rangeEnd; while (endOffset < documentText.length && !isEOL(documentText, endOffset)) { endOffset++; } formatText = documentText.substring(formatTextStart, endOffset); initialIndentLevel = computeIndentLevel(formatText, options); } else { formatText = documentText; initialIndentLevel = 0; formatTextStart = 0; rangeStart = 0; rangeEnd = documentText.length; } const eol = getEOL(options, documentText); let numberLineBreaks = 0; let indentLevel = 0; let indentValue; if (options.insertSpaces) { indentValue = repeat(" ", options.tabSize || 4); } else { indentValue = " "; } let scanner = createScanner(formatText, false); let hasError = false; function newLinesAndIndent() { if (numberLineBreaks > 1) { return repeat(eol, numberLineBreaks) + repeat(indentValue, initialIndentLevel + indentLevel); } else { return eol + repeat(indentValue, initialIndentLevel + indentLevel); } } __name(newLinesAndIndent, "newLinesAndIndent"); __name2(newLinesAndIndent, "newLinesAndIndent"); function scanNext() { let token = scanner.scan(); numberLineBreaks = 0; while (token === 15 || token === 14) { if (token === 14 && options.keepLines) { numberLineBreaks += 1; } else if (token === 14) { numberLineBreaks = 1; } token = scanner.scan(); } hasError = token === 16 || scanner.getTokenError() !== 0; return token; } __name(scanNext, "scanNext"); __name2(scanNext, "scanNext"); const editOperations = []; function addEdit(text, startOffset, endOffset) { if (!hasError && (!range || startOffset < rangeEnd && endOffset > rangeStart) && documentText.substring(startOffset, endOffset) !== text) { editOperations.push({ offset: startOffset, length: endOffset - startOffset, content: text }); } } __name(addEdit, "addEdit"); __name2(addEdit, "addEdit"); let firstToken = scanNext(); if (options.keepLines && numberLineBreaks > 0) { addEdit(repeat(eol, numberLineBreaks), 0, 0); } if (firstToken !== 17) { let firstTokenStart = scanner.getTokenOffset() + formatTextStart; let initialIndent = repeat(indentValue, initialIndentLevel); addEdit(initialIndent, formatTextStart, firstTokenStart); } while (firstToken !== 17) { let firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart; let secondToken = scanNext(); let replaceContent = ""; let needsLineBreak = false; while (numberLineBreaks === 0 && (secondToken === 12 || secondToken === 13)) { let commentTokenStart = scanner.getTokenOffset() + formatTextStart; addEdit(" ", firstTokenEnd, commentTokenStart); firstTokenEnd = scanner.getTokenOffset() + scanner.getTokenLength() + formatTextStart; needsLineBreak = secondToken === 12; replaceContent = needsLineBreak ? newLinesAndIndent() : ""; secondToken = scanNext(); } if (secondToken === 2) { if (firstToken !== 1) { indentLevel--; } if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 1) { replaceContent = newLinesAndIndent(); } else if (options.keepLines) { replaceContent = " "; } } else if (secondToken === 4) { if (firstToken !== 3) { indentLevel--; } if (options.keepLines && numberLineBreaks > 0 || !options.keepLines && firstToken !== 3) { replaceContent = newLinesAndIndent(); } else if (options.keepLines) { replaceContent = " "; } } else { switch (firstToken) { case 3: case 1: indentLevel++; if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) { replaceContent = newLinesAndIndent(); } else { replaceContent = " "; } break; case 5: if (options.keepLines && numberLineBreaks > 0 || !options.keepLines) { replaceContent = newLinesAndIndent(); } else { replaceContent = " "; } break; case 12: replaceContent = newLinesAndIndent(); break; case 13: if (numberLineBreaks > 0) { replaceContent = newLinesAndIndent(); } else if (!needsLineBreak) { replaceContent = " "; } break; case 6: if (options.keepLines && numberLineBreaks > 0) { replaceContent = newLinesAndIndent(); } else if (!needsLineBreak) { replaceContent = " "; } break; case 10: if (options.keepLines && numberLineBreaks > 0) { replaceContent = newLinesAndIndent(); } else if (secondToken === 6 && !needsLineBreak) { replaceContent = ""; } break; case 7: case 8: case 9: case 11: case 2: case 4: if (options.keepLines && numberLineBreaks > 0) { replaceContent = newLinesAndIndent(); } else { if ((secondToken === 12 || secondToken === 13) && !needsLineBreak) { replaceContent = " "; } else if (secondToken !== 5 && secondToken !== 17) { hasError = true; } } break; case 16: hasError = true; break; } if (numberLineBreaks > 0 && (secondToken === 12 || secondToken === 13)) { replaceContent = newLinesAndIndent(); } } if (secondToken === 17) { if (options.keepLines && numberLineBreaks > 0) { replaceContent = newLinesAndIndent(); } else { replaceContent = options.insertFinalNewline ? eol : ""; } } const secondTokenStart = scanner.getTokenOffset() + formatTextStart; addEdit(replaceContent, firstTokenEnd, secondTokenStart); firstToken = secondToken; } return editOperations; } function repeat(s7, count) { let result = ""; for (let i7 = 0; i7 < count; i7++) { result += s7; } return result; } function computeIndentLevel(content, options) { let i7 = 0; let nChars = 0; const tabSize = options.tabSize || 4; while (i7 < content.length) { let ch2 = content.charAt(i7); if (ch2 === " ") { nChars++; } else if (ch2 === " ") { nChars += tabSize; } else { break; } i7++; } return Math.floor(nChars / tabSize); } function getEOL(options, text) { for (let i7 = 0; i7 < text.length; i7++) { const ch2 = text.charAt(i7); if (ch2 === "\r") { if (i7 + 1 < text.length && text.charAt(i7 + 1) === "\n") { return "\r\n"; } return "\r"; } else if (ch2 === "\n") { return "\n"; } } return options && options.eol || "\n"; } function isEOL(text, offset) { return "\r\n".indexOf(text.charAt(offset)) !== -1; } function parse(text, errors = [], options = ParseOptions.DEFAULT) { let currentProperty = null; let currentParent = []; const previousParents = []; function onValue(value) { if (Array.isArray(currentParent)) { currentParent.push(value); } else if (currentProperty !== null) { currentParent[currentProperty] = value; } } __name(onValue, "onValue"); __name2(onValue, "onValue"); const visitor = { onObjectBegin: /* @__PURE__ */ __name2(() => { const object = {}; onValue(object); previousParents.push(currentParent); currentParent = object; currentProperty = null; }, "onObjectBegin"), onObjectProperty: /* @__PURE__ */ __name2((name2) => { currentProperty = name2; }, "onObjectProperty"), onObjectEnd: /* @__PURE__ */ __name2(() => { currentParent = previousParents.pop(); }, "onObjectEnd"), onArrayBegin: /* @__PURE__ */ __name2(() => { const array = []; onValue(array); previousParents.push(currentParent); currentParent = array; currentProperty = null; }, "onArrayBegin"), onArrayEnd: /* @__PURE__ */ __name2(() => { currentParent = previousParents.pop(); }, "onArrayEnd"), onLiteralValue: onValue, onError: /* @__PURE__ */ __name2((error2, offset, length) => { errors.push({ error: error2, offset, length }); }, "onError") }; visit(text, visitor, options); return currentParent[0]; } function parseTree(text, errors = [], options = ParseOptions.DEFAULT) { let currentParent = { type: "array", offset: -1, length: -1, children: [], parent: void 0 }; function ensurePropertyComplete(endOffset) { if (currentParent.type === "property") { currentParent.length = endOffset - currentParent.offset; currentParent = currentParent.parent; } } __name(ensurePropertyComplete, "ensurePropertyComplete"); __name2(ensurePropertyComplete, "ensurePropertyComplete"); function onValue(valueNode) { currentParent.children.push(valueNode); return valueNode; } __name(onValue, "onValue"); __name2(onValue, "onValue"); const visitor = { onObjectBegin: /* @__PURE__ */ __name2((offset) => { currentParent = onValue({ type: "object", offset, length: -1, parent: currentParent, children: [] }); }, "onObjectBegin"), onObjectProperty: /* @__PURE__ */ __name2((name2, offset, length) => { currentParent = onValue({ type: "property", offset, length: -1, parent: currentParent, children: [] }); currentParent.children.push({ type: "string", value: name2, offset, length, parent: currentParent }); }, "onObjectProperty"), onObjectEnd: /* @__PURE__ */ __name2((offset, length) => { ensurePropertyComplete(offset + length); currentParent.length = offset + length - currentParent.offset; currentParent = currentParent.parent; ensurePropertyComplete(offset + length); }, "onObjectEnd"), onArrayBegin: /* @__PURE__ */ __name2((offset, length) => { currentParent = onValue({ type: "array", offset, length: -1, parent: currentParent, children: [] }); }, "onArrayBegin"), onArrayEnd: /* @__PURE__ */ __name2((offset, length) => { currentParent.length = offset + length - currentParent.offset; currentParent = currentParent.parent; ensurePropertyComplete(offset + length); }, "onArrayEnd"), onLiteralValue: /* @__PURE__ */ __name2((value, offset, length) => { onValue({ type: getNodeType(value), offset, length, parent: currentParent, value }); ensurePropertyComplete(offset + length); }, "onLiteralValue"), onSeparator: /* @__PURE__ */ __name2((sep6, offset, length) => { if (currentParent.type === "property") { if (sep6 === ":") { currentParent.colonOffset = offset; } else if (sep6 === ",") { ensurePropertyComplete(offset); } } }, "onSeparator"), onError: /* @__PURE__ */ __name2((error2, offset, length) => { errors.push({ error: error2, offset, length }); }, "onError") }; visit(text, visitor, options); const result = currentParent.children[0]; if (result) { delete result.parent; } return result; } function findNodeAtLocation(root, path210) { if (!root) { return void 0; } let node2 = root; for (let segment of path210) { if (typeof segment === "string") { if (node2.type !== "object" || !Array.isArray(node2.children)) { return void 0; } let found = false; for (const propertyNode of node2.children) { if (Array.isArray(propertyNode.children) && propertyNode.children[0].value === segment && propertyNode.children.length === 2) { node2 = propertyNode.children[1]; found = true; break; } } if (!found) { return void 0; } } else { const index = segment; if (node2.type !== "array" || index < 0 || !Array.isArray(node2.children) || index >= node2.children.length) { return void 0; } node2 = node2.children[index]; } } return node2; } function visit(text, visitor, options = ParseOptions.DEFAULT) { const _scanner = createScanner(text, false); const _jsonPath = []; function toNoArgVisit(visitFunction) { return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; } __name(toNoArgVisit, "toNoArgVisit"); __name2(toNoArgVisit, "toNoArgVisit"); function toNoArgVisitWithPath(visitFunction) { return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; } __name(toNoArgVisitWithPath, "toNoArgVisitWithPath"); __name2(toNoArgVisitWithPath, "toNoArgVisitWithPath"); function toOneArgVisit(visitFunction) { return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; } __name(toOneArgVisit, "toOneArgVisit"); __name2(toOneArgVisit, "toOneArgVisit"); function toOneArgVisitWithPath(visitFunction) { return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; } __name(toOneArgVisitWithPath, "toOneArgVisitWithPath"); __name2(toOneArgVisitWithPath, "toOneArgVisitWithPath"); const onObjectBegin = toNoArgVisitWithPath(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toNoArgVisit(visitor.onObjectEnd), onArrayBegin = toNoArgVisitWithPath(visitor.onArrayBegin), onArrayEnd = toNoArgVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError); const disallowComments = options && options.disallowComments; const allowTrailingComma = options && options.allowTrailingComma; function scanNext() { while (true) { const token = _scanner.scan(); switch (_scanner.getTokenError()) { case 4: handleError2( 14 /* ParseErrorCode.InvalidUnicode */ ); break; case 5: handleError2( 15 /* ParseErrorCode.InvalidEscapeCharacter */ ); break; case 3: handleError2( 13 /* ParseErrorCode.UnexpectedEndOfNumber */ ); break; case 1: if (!disallowComments) { handleError2( 11 /* ParseErrorCode.UnexpectedEndOfComment */ ); } break; case 2: handleError2( 12 /* ParseErrorCode.UnexpectedEndOfString */ ); break; case 6: handleError2( 16 /* ParseErrorCode.InvalidCharacter */ ); break; } switch (token) { case 12: case 13: if (disallowComments) { handleError2( 10 /* ParseErrorCode.InvalidCommentToken */ ); } else { onComment(); } break; case 16: handleError2( 1 /* ParseErrorCode.InvalidSymbol */ ); break; case 15: case 14: break; default: return token; } } } __name(scanNext, "scanNext"); __name2(scanNext, "scanNext"); function handleError2(error2, skipUntilAfter = [], skipUntil22 = []) { onError(error2); if (skipUntilAfter.length + skipUntil22.length > 0) { let token = _scanner.getToken(); while (token !== 17) { if (skipUntilAfter.indexOf(token) !== -1) { scanNext(); break; } else if (skipUntil22.indexOf(token) !== -1) { break; } token = scanNext(); } } } __name(handleError2, "handleError"); __name2(handleError2, "handleError"); function parseString22(isValue) { const value = _scanner.getTokenValue(); if (isValue) { onLiteralValue(value); } else { onObjectProperty(value); _jsonPath.push(value); } scanNext(); return true; } __name(parseString22, "parseString2"); __name2(parseString22, "parseString"); function parseLiteral() { switch (_scanner.getToken()) { case 11: const tokenValue = _scanner.getTokenValue(); let value = Number(tokenValue); if (isNaN(value)) { handleError2( 2 /* ParseErrorCode.InvalidNumberFormat */ ); value = 0; } onLiteralValue(value); break; case 7: onLiteralValue(null); break; case 8: onLiteralValue(true); break; case 9: onLiteralValue(false); break; default: return false; } scanNext(); return true; } __name(parseLiteral, "parseLiteral"); __name2(parseLiteral, "parseLiteral"); function parseProperty() { if (_scanner.getToken() !== 10) { handleError2(3, [], [ 2, 5 /* SyntaxKind.CommaToken */ ]); return false; } parseString22(false); if (_scanner.getToken() === 6) { onSeparator(":"); scanNext(); if (!parseValue22()) { handleError2(4, [], [ 2, 5 /* SyntaxKind.CommaToken */ ]); } } else { handleError2(5, [], [ 2, 5 /* SyntaxKind.CommaToken */ ]); } _jsonPath.pop(); return true; } __name(parseProperty, "parseProperty"); __name2(parseProperty, "parseProperty"); function parseObject() { onObjectBegin(); scanNext(); let needsComma = false; while (_scanner.getToken() !== 2 && _scanner.getToken() !== 17) { if (_scanner.getToken() === 5) { if (!needsComma) { handleError2(4, [], []); } onSeparator(","); scanNext(); if (_scanner.getToken() === 2 && allowTrailingComma) { break; } } else if (needsComma) { handleError2(6, [], []); } if (!parseProperty()) { handleError2(4, [], [ 2, 5 /* SyntaxKind.CommaToken */ ]); } needsComma = true; } onObjectEnd(); if (_scanner.getToken() !== 2) { handleError2(7, [ 2 /* SyntaxKind.CloseBraceToken */ ], []); } else { scanNext(); } return true; } __name(parseObject, "parseObject"); __name2(parseObject, "parseObject"); function parseArray22() { onArrayBegin(); scanNext(); let isFirstElement = true; let needsComma = false; while (_scanner.getToken() !== 4 && _scanner.getToken() !== 17) { if (_scanner.getToken() === 5) { if (!needsComma) { handleError2(4, [], []); } onSeparator(","); scanNext(); if (_scanner.getToken() === 4 && allowTrailingComma) { break; } } else if (needsComma) { handleError2(6, [], []); } if (isFirstElement) { _jsonPath.push(0); isFirstElement = false; } else { _jsonPath[_jsonPath.length - 1]++; } if (!parseValue22()) { handleError2(4, [], [ 4, 5 /* SyntaxKind.CommaToken */ ]); } needsComma = true; } onArrayEnd(); if (!isFirstElement) { _jsonPath.pop(); } if (_scanner.getToken() !== 4) { handleError2(8, [ 4 /* SyntaxKind.CloseBracketToken */ ], []); } else { scanNext(); } return true; } __name(parseArray22, "parseArray2"); __name2(parseArray22, "parseArray"); function parseValue22() { switch (_scanner.getToken()) { case 3: return parseArray22(); case 1: return parseObject(); case 10: return parseString22(true); default: return parseLiteral(); } } __name(parseValue22, "parseValue2"); __name2(parseValue22, "parseValue"); scanNext(); if (_scanner.getToken() === 17) { if (options.allowEmptyContent) { return true; } handleError2(4, [], []); return false; } if (!parseValue22()) { handleError2(4, [], []); return false; } if (_scanner.getToken() !== 17) { handleError2(9, [], []); } return true; } function getNodeType(value) { switch (typeof value) { case "boolean": return "boolean"; case "number": return "number"; case "string": return "string"; case "object": { if (!value) { return "null"; } else if (Array.isArray(value)) { return "array"; } return "object"; } default: return "null"; } } function setProperty(text, originalPath, value, options) { const path210 = originalPath.slice(); const errors = []; const root = parseTree(text, errors); let parent = void 0; let lastSegment = void 0; while (path210.length > 0) { lastSegment = path210.pop(); parent = findNodeAtLocation(root, path210); if (parent === void 0 && value !== void 0) { if (typeof lastSegment === "string") { value = { [lastSegment]: value }; } else { value = [value]; } } else { break; } } if (!parent) { if (value === void 0) { throw new Error("Can not delete in empty document"); } return withFormatting(text, { offset: root ? root.offset : 0, length: root ? root.length : 0, content: JSON.stringify(value) }, options); } else if (parent.type === "object" && typeof lastSegment === "string" && Array.isArray(parent.children)) { const existing = findNodeAtLocation(parent, [lastSegment]); if (existing !== void 0) { if (value === void 0) { if (!existing.parent) { throw new Error("Malformed AST"); } const propertyIndex = parent.children.indexOf(existing.parent); let removeBegin; let removeEnd = existing.parent.offset + existing.parent.length; if (propertyIndex > 0) { let previous = parent.children[propertyIndex - 1]; removeBegin = previous.offset + previous.length; } else { removeBegin = parent.offset + 1; if (parent.children.length > 1) { let next = parent.children[1]; removeEnd = next.offset; } } return withFormatting(text, { offset: removeBegin, length: removeEnd - removeBegin, content: "" }, options); } else { return withFormatting(text, { offset: existing.offset, length: existing.length, content: JSON.stringify(value) }, options); } } else { if (value === void 0) { return []; } const newProperty = `${JSON.stringify(lastSegment)}: ${JSON.stringify(value)}`; const index = options.getInsertionIndex ? options.getInsertionIndex(parent.children.map((p7) => p7.children[0].value)) : parent.children.length; let edit; if (index > 0) { let previous = parent.children[index - 1]; edit = { offset: previous.offset + previous.length, length: 0, content: "," + newProperty }; } else if (parent.children.length === 0) { edit = { offset: parent.offset + 1, length: 0, content: newProperty }; } else { edit = { offset: parent.offset + 1, length: 0, content: newProperty + "," }; } return withFormatting(text, edit, options); } } else if (parent.type === "array" && typeof lastSegment === "number" && Array.isArray(parent.children)) { const insertIndex = lastSegment; if (insertIndex === -1) { const newProperty = `${JSON.stringify(value)}`; let edit; if (parent.children.length === 0) { edit = { offset: parent.offset + 1, length: 0, content: newProperty }; } else { const previous = parent.children[parent.children.length - 1]; edit = { offset: previous.offset + previous.length, length: 0, content: "," + newProperty }; } return withFormatting(text, edit, options); } else if (value === void 0 && parent.children.length >= 0) { const removalIndex = lastSegment; const toRemove = parent.children[removalIndex]; let edit; if (parent.children.length === 1) { edit = { offset: parent.offset + 1, length: parent.length - 2, content: "" }; } else if (parent.children.length - 1 === removalIndex) { let previous = parent.children[removalIndex - 1]; let offset = previous.offset + previous.length; let parentEndOffset = parent.offset + parent.length; edit = { offset, length: parentEndOffset - 2 - offset, content: "" }; } else { edit = { offset: toRemove.offset, length: parent.children[removalIndex + 1].offset - toRemove.offset, content: "" }; } return withFormatting(text, edit, options); } else if (value !== void 0) { let edit; const newProperty = `${JSON.stringify(value)}`; if (!options.isArrayInsertion && parent.children.length > lastSegment) { const toModify = parent.children[lastSegment]; edit = { offset: toModify.offset, length: toModify.length, content: newProperty }; } else if (parent.children.length === 0 || lastSegment === 0) { edit = { offset: parent.offset + 1, length: 0, content: parent.children.length === 0 ? newProperty : newProperty + "," }; } else { const index = lastSegment > parent.children.length ? parent.children.length : lastSegment; const previous = parent.children[index - 1]; edit = { offset: previous.offset + previous.length, length: 0, content: "," + newProperty }; } return withFormatting(text, edit, options); } else { throw new Error(`Can not ${value === void 0 ? "remove" : options.isArrayInsertion ? "insert" : "modify"} Array index ${insertIndex} as length is not sufficient`); } } else { throw new Error(`Can not add ${typeof lastSegment !== "number" ? "index" : "property"} to parent of type ${parent.type}`); } } function withFormatting(text, edit, options) { if (!options.formattingOptions) { return [edit]; } let newText = applyEdit(text, edit); let begin = edit.offset; let end = edit.offset + edit.content.length; if (edit.length === 0 || edit.content.length === 0) { while (begin > 0 && !isEOL(newText, begin - 1)) { begin--; } while (end < newText.length && !isEOL(newText, end)) { end++; } } const edits = format(newText, { offset: begin, length: end - begin }, { ...options.formattingOptions, keepLines: false }); for (let i7 = edits.length - 1; i7 >= 0; i7--) { const edit2 = edits[i7]; newText = applyEdit(newText, edit2); begin = Math.min(begin, edit2.offset); end = Math.max(end, edit2.offset + edit2.length); end += edit2.content.length - edit2.length; } const editLength = text.length - (newText.length - end) - begin; return [{ offset: begin, length: editLength, content: newText.substring(begin, end) }]; } function applyEdit(text, edit) { return text.substring(0, edit.offset) + edit.content + text.substring(edit.offset + edit.length); } function printParseErrorCode(code) { switch (code) { case 1: return "InvalidSymbol"; case 2: return "InvalidNumberFormat"; case 3: return "PropertyNameExpected"; case 4: return "ValueExpected"; case 5: return "ColonExpected"; case 6: return "CommaExpected"; case 7: return "CloseBraceExpected"; case 8: return "CloseBracketExpected"; case 9: return "EndOfFileExpected"; case 10: return "InvalidCommentToken"; case 11: return "UnexpectedEndOfComment"; case 12: return "UnexpectedEndOfString"; case 13: return "UnexpectedEndOfNumber"; case 14: return "InvalidUnicode"; case 15: return "InvalidEscapeCharacter"; case 16: return "InvalidCharacter"; } return ""; } function format2(documentText, range, options) { return format(documentText, range, options); } function modify(text, path210, value, options) { return setProperty(text, path210, value, options); } function applyEdits(text, edits) { let sortedEdits = edits.slice(0).sort((a7, b11) => { const diff = a7.offset - b11.offset; if (diff === 0) { return a7.length - b11.length; } return diff; }); let lastModifiedOffset = text.length; for (let i7 = sortedEdits.length - 1; i7 >= 0; i7--) { let e9 = sortedEdits[i7]; if (e9.offset + e9.length <= lastModifiedOffset) { text = applyEdit(text, e9); } else { throw new Error("Overlapping edit"); } lastModifiedOffset = e9.offset; } return text; } function getLineColFromPtr(string, ptr) { let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g); return [lines.length, lines.pop().length + 1]; } function makeCodeBlock(string, line, column) { let lines = string.split(/\r\n|\n|\r/g); let codeblock = ""; let numberLen = (Math.log10(line + 1) | 0) + 1; for (let i7 = line - 1; i7 <= line + 1; i7++) { let l8 = lines[i7 - 1]; if (!l8) continue; codeblock += i7.toString().padEnd(numberLen, " "); codeblock += ": "; codeblock += l8; codeblock += "\n"; if (i7 === line) { codeblock += " ".repeat(numberLen + column + 2); codeblock += "^\n"; } } return codeblock; } function isEscaped(str, ptr) { let i7 = 0; while (str[ptr - ++i7] === "\\") ; return --i7 && i7 % 2; } function indexOfNewline(str, start = 0, end = str.length) { let idx = str.indexOf("\n", start); if (str[idx - 1] === "\r") idx--; return idx <= end ? idx : -1; } function skipComment(str, ptr) { for (let i7 = ptr; i7 < str.length; i7++) { let c8 = str[i7]; if (c8 === "\n") return i7; if (c8 === "\r" && str[i7 + 1] === "\n") return i7 + 1; if (c8 < " " && c8 !== " " || c8 === "\x7F") { throw new TomlError("control characters are not allowed in comments", { toml: str, ptr }); } } return str.length; } function skipVoid(str, ptr, banNewLines, banComments) { let c8; while ((c8 = str[ptr]) === " " || c8 === " " || !banNewLines && (c8 === "\n" || c8 === "\r" && str[ptr + 1] === "\n")) ptr++; return banComments || c8 !== "#" ? ptr : skipVoid(str, skipComment(str, ptr), banNewLines); } function skipUntil(str, ptr, sep6, end, banNewLines = false) { if (!end) { ptr = indexOfNewline(str, ptr); return ptr < 0 ? str.length : ptr; } for (let i7 = ptr; i7 < str.length; i7++) { let c8 = str[i7]; if (c8 === "#") { i7 = indexOfNewline(str, i7); } else if (c8 === sep6) { return i7 + 1; } else if (c8 === end || banNewLines && (c8 === "\n" || c8 === "\r" && str[i7 + 1] === "\n")) { return i7; } } throw new TomlError("cannot find end of structure", { toml: str, ptr }); } function getStringEnd(str, seek) { let first = str[seek]; let target = first === str[seek + 1] && str[seek + 1] === str[seek + 2] ? str.slice(seek, seek + 3) : first; seek += target.length - 1; do seek = str.indexOf(target, ++seek); while (seek > -1 && first !== "'" && isEscaped(str, seek)); if (seek > -1) { seek += target.length; if (target.length > 1) { if (str[seek] === first) seek++; if (str[seek] === first) seek++; } } return seek; } function parseString(str, ptr = 0, endPtr = str.length) { let isLiteral = str[ptr] === "'"; let isMultiline = str[ptr++] === str[ptr] && str[ptr] === str[ptr + 1]; if (isMultiline) { endPtr -= 2; if (str[ptr += 2] === "\r") ptr++; if (str[ptr] === "\n") ptr++; } let tmp = 0; let isEscape; let parsed = ""; let sliceStart = ptr; while (ptr < endPtr - 1) { let c8 = str[ptr++]; if (c8 === "\n" || c8 === "\r" && str[ptr] === "\n") { if (!isMultiline) { throw new TomlError("newlines are not allowed in strings", { toml: str, ptr: ptr - 1 }); } } else if (c8 < " " && c8 !== " " || c8 === "\x7F") { throw new TomlError("control characters are not allowed in strings", { toml: str, ptr: ptr - 1 }); } if (isEscape) { isEscape = false; if (c8 === "u" || c8 === "U") { let code = str.slice(ptr, ptr += c8 === "u" ? 4 : 8); if (!ESCAPE_REGEX.test(code)) { throw new TomlError("invalid unicode escape", { toml: str, ptr: tmp }); } try { parsed += String.fromCodePoint(parseInt(code, 16)); } catch { throw new TomlError("invalid unicode escape", { toml: str, ptr: tmp }); } } else if (isMultiline && (c8 === "\n" || c8 === " " || c8 === " " || c8 === "\r")) { ptr = skipVoid(str, ptr - 1, true); if (str[ptr] !== "\n" && str[ptr] !== "\r") { throw new TomlError("invalid escape: only line-ending whitespace may be escaped", { toml: str, ptr: tmp }); } ptr = skipVoid(str, ptr); } else if (c8 in ESC_MAP) { parsed += ESC_MAP[c8]; } else { throw new TomlError("unrecognized escape sequence", { toml: str, ptr: tmp }); } sliceStart = ptr; } else if (!isLiteral && c8 === "\\") { tmp = ptr - 1; isEscape = true; parsed += str.slice(sliceStart, tmp); } } return parsed + str.slice(sliceStart, endPtr - 1); } function parseValue(value, toml, ptr, integersAsBigInt) { if (value === "true") return true; if (value === "false") return false; if (value === "-inf") return -Infinity; if (value === "inf" || value === "+inf") return Infinity; if (value === "nan" || value === "+nan" || value === "-nan") return NaN; if (value === "-0") return integersAsBigInt ? 0n : 0; let isInt = INT_REGEX.test(value); if (isInt || FLOAT_REGEX.test(value)) { if (LEADING_ZERO.test(value)) { throw new TomlError("leading zeroes are not allowed", { toml, ptr }); } value = value.replace(/_/g, ""); let numeric = +value; if (isNaN(numeric)) { throw new TomlError("invalid number", { toml, ptr }); } if (isInt) { if ((isInt = !Number.isSafeInteger(numeric)) && !integersAsBigInt) { throw new TomlError("integer value cannot be represented losslessly", { toml, ptr }); } if (isInt || integersAsBigInt === true) numeric = BigInt(value); } return numeric; } const date = new TomlDate(value); if (!date.isValid()) { throw new TomlError("invalid value", { toml, ptr }); } return date; } function sliceAndTrimEndOf(str, startPtr, endPtr, allowNewLines) { let value = str.slice(startPtr, endPtr); let commentIdx = value.indexOf("#"); if (commentIdx > -1) { skipComment(str, commentIdx); value = value.slice(0, commentIdx); } let trimmed = value.trimEnd(); if (!allowNewLines) { let newlineIdx = value.indexOf("\n", trimmed.length); if (newlineIdx > -1) { throw new TomlError("newlines are not allowed in inline tables", { toml: str, ptr: startPtr + newlineIdx }); } } return [trimmed, commentIdx]; } function extractValue(str, ptr, end, depth, integersAsBigInt) { if (depth === 0) { throw new TomlError("document contains excessively nested structures. aborting.", { toml: str, ptr }); } let c8 = str[ptr]; if (c8 === "[" || c8 === "{") { let [value, endPtr2] = c8 === "[" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt); let newPtr = end ? skipUntil(str, endPtr2, ",", end) : endPtr2; if (endPtr2 - newPtr && end === "}") { let nextNewLine = indexOfNewline(str, endPtr2, newPtr); if (nextNewLine > -1) { throw new TomlError("newlines are not allowed in inline tables", { toml: str, ptr: nextNewLine }); } } return [value, newPtr]; } let endPtr; if (c8 === '"' || c8 === "'") { endPtr = getStringEnd(str, ptr); let parsed = parseString(str, ptr, endPtr); if (end) { endPtr = skipVoid(str, endPtr, end !== "]"); if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") { throw new TomlError("unexpected character encountered", { toml: str, ptr: endPtr }); } endPtr += +(str[endPtr] === ","); } return [parsed, endPtr]; } endPtr = skipUntil(str, ptr, ",", end); let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === ","), end === "]"); if (!slice[0]) { throw new TomlError("incomplete key-value declaration: no value specified", { toml: str, ptr }); } if (end && slice[1] > -1) { endPtr = skipVoid(str, ptr + slice[1]); endPtr += +(str[endPtr] === ","); } return [ parseValue(slice[0], str, ptr, integersAsBigInt), endPtr ]; } function parseKey(str, ptr, end = "=") { let dot = ptr - 1; let parsed = []; let endPtr = str.indexOf(end, ptr); if (endPtr < 0) { throw new TomlError("incomplete key-value: cannot find end of key", { toml: str, ptr }); } do { let c8 = str[ptr = ++dot]; if (c8 !== " " && c8 !== " ") { if (c8 === '"' || c8 === "'") { if (c8 === str[ptr + 1] && c8 === str[ptr + 2]) { throw new TomlError("multiline strings are not allowed in keys", { toml: str, ptr }); } let eos = getStringEnd(str, ptr); if (eos < 0) { throw new TomlError("unfinished string encountered", { toml: str, ptr }); } dot = str.indexOf(".", eos); let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot); let newLine = indexOfNewline(strEnd); if (newLine > -1) { throw new TomlError("newlines are not allowed in keys", { toml: str, ptr: ptr + dot + newLine }); } if (strEnd.trimStart()) { throw new TomlError("found extra tokens after the string part", { toml: str, ptr: eos }); } if (endPtr < eos) { endPtr = str.indexOf(end, eos); if (endPtr < 0) { throw new TomlError("incomplete key-value: cannot find end of key", { toml: str, ptr }); } } parsed.push(parseString(str, ptr, eos)); } else { dot = str.indexOf(".", ptr); let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot); if (!KEY_PART_RE.test(part)) { throw new TomlError("only letter, numbers, dashes and underscores are allowed in keys", { toml: str, ptr }); } parsed.push(part.trimEnd()); } } } while (dot + 1 && dot < endPtr); return [parsed, skipVoid(str, endPtr + 1, true, true)]; } function parseInlineTable(str, ptr, depth, integersAsBigInt) { let res = {}; let seen = /* @__PURE__ */ new Set(); let c8; let comma = 0; ptr++; while ((c8 = str[ptr++]) !== "}" && c8) { let err = { toml: str, ptr: ptr - 1 }; if (c8 === "\n") { throw new TomlError("newlines are not allowed in inline tables", err); } else if (c8 === "#") { throw new TomlError("inline tables cannot contain comments", err); } else if (c8 === ",") { throw new TomlError("expected key-value, found comma", err); } else if (c8 !== " " && c8 !== " ") { let k7; let t12 = res; let hasOwn2 = false; let [key, keyEndPtr] = parseKey(str, ptr - 1); for (let i7 = 0; i7 < key.length; i7++) { if (i7) t12 = hasOwn2 ? t12[k7] : t12[k7] = {}; k7 = key[i7]; if ((hasOwn2 = Object.hasOwn(t12, k7)) && (typeof t12[k7] !== "object" || seen.has(t12[k7]))) { throw new TomlError("trying to redefine an already defined value", { toml: str, ptr }); } if (!hasOwn2 && k7 === "__proto__") { Object.defineProperty(t12, k7, { enumerable: true, configurable: true, writable: true }); } } if (hasOwn2) { throw new TomlError("trying to redefine an already defined value", { toml: str, ptr }); } let [value, valueEndPtr] = extractValue(str, keyEndPtr, "}", depth - 1, integersAsBigInt); seen.add(value); t12[k7] = value; ptr = valueEndPtr; comma = str[ptr - 1] === "," ? ptr - 1 : 0; } } if (comma) { throw new TomlError("trailing commas are not allowed in inline tables", { toml: str, ptr: comma }); } if (!c8) { throw new TomlError("unfinished table encountered", { toml: str, ptr }); } return [res, ptr]; } function parseArray(str, ptr, depth, integersAsBigInt) { let res = []; let c8; ptr++; while ((c8 = str[ptr++]) !== "]" && c8) { if (c8 === ",") { throw new TomlError("expected value, found comma", { toml: str, ptr: ptr - 1 }); } else if (c8 === "#") ptr = skipComment(str, ptr); else if (c8 !== " " && c8 !== " " && c8 !== "\n" && c8 !== "\r") { let e9 = extractValue(str, ptr - 1, "]", depth - 1, integersAsBigInt); res.push(e9[0]); ptr = e9[1]; } } if (!c8) { throw new TomlError("unfinished array encountered", { toml: str, ptr }); } return [res, ptr]; } function peekTable(key, table, meta, type) { let t12 = table; let m7 = meta; let k7; let hasOwn2 = false; let state2; for (let i7 = 0; i7 < key.length; i7++) { if (i7) { t12 = hasOwn2 ? t12[k7] : t12[k7] = {}; m7 = (state2 = m7[k7]).c; if (type === 0 && (state2.t === 1 || state2.t === 2)) { return null; } if (state2.t === 2) { let l8 = t12.length - 1; t12 = t12[l8]; m7 = m7[l8].c; } } k7 = key[i7]; if ((hasOwn2 = Object.hasOwn(t12, k7)) && m7[k7]?.t === 0 && m7[k7]?.d) { return null; } if (!hasOwn2) { if (k7 === "__proto__") { Object.defineProperty(t12, k7, { enumerable: true, configurable: true, writable: true }); Object.defineProperty(m7, k7, { enumerable: true, configurable: true, writable: true }); } m7[k7] = { t: i7 < key.length - 1 && type === 2 ? 3 : type, d: false, i: 0, c: {} }; } } state2 = m7[k7]; if (state2.t !== type && !(type === 1 && state2.t === 3)) { return null; } if (type === 2) { if (!state2.d) { state2.d = true; t12[k7] = []; } t12[k7].push(t12 = {}); state2.c[state2.i++] = state2 = { t: 1, d: false, i: 0, c: {} }; } if (state2.d) { return null; } state2.d = true; if (type === 1) { t12 = hasOwn2 ? t12[k7] : t12[k7] = {}; } else if (type === 0 && hasOwn2) { return null; } return [k7, t12, state2.c]; } function parse3(toml, { maxDepth = 1e3, integersAsBigInt } = {}) { let res = {}; let meta = {}; let tbl = res; let m7 = meta; for (let ptr = skipVoid(toml, 0); ptr < toml.length; ) { if (toml[ptr] === "[") { let isTableArray = toml[++ptr] === "["; let k7 = parseKey(toml, ptr += +isTableArray, "]"); if (isTableArray) { if (toml[k7[1] - 1] !== "]") { throw new TomlError("expected end of table declaration", { toml, ptr: k7[1] - 1 }); } k7[1]++; } let p7 = peekTable( k7[0], res, meta, isTableArray ? 2 : 1 /* Type.EXPLICIT */ ); if (!p7) { throw new TomlError("trying to redefine an already defined table or value", { toml, ptr }); } m7 = p7[2]; tbl = p7[1]; ptr = k7[1]; } else { let k7 = parseKey(toml, ptr); let p7 = peekTable( k7[0], tbl, m7, 0 /* Type.DOTTED */ ); if (!p7) { throw new TomlError("trying to redefine an already defined table or value", { toml, ptr }); } let v8 = extractValue(toml, k7[1], void 0, maxDepth, integersAsBigInt); p7[1][p7[0]] = v8[0]; ptr = v8[1]; } ptr = skipVoid(toml, ptr, true); if (toml[ptr] && toml[ptr] !== "\n" && toml[ptr] !== "\r") { throw new TomlError("each key-value declaration must be followed by an end-of-line", { toml, ptr }); } ptr = skipVoid(toml, ptr); } return res; } function extendedTypeOf(obj) { let type = typeof obj; if (type === "object") { if (Array.isArray(obj)) return "array"; if (obj instanceof Date) return "date"; } return type; } function isArrayOfTables(obj) { for (let i7 = 0; i7 < obj.length; i7++) { if (extendedTypeOf(obj[i7]) !== "object") return false; } return obj.length != 0; } function formatString(s7) { return JSON.stringify(s7).replace(/\x7f/g, "\\u007f"); } function stringifyValue(val2, type, depth, numberAsFloat) { if (depth === 0) { throw new Error("Could not stringify the object: maximum object depth exceeded"); } if (type === "number") { if (isNaN(val2)) return "nan"; if (val2 === Infinity) return "inf"; if (val2 === -Infinity) return "-inf"; if (numberAsFloat && Number.isInteger(val2)) return val2.toFixed(1); return val2.toString(); } if (type === "bigint" || type === "boolean") { return val2.toString(); } if (type === "string") { return formatString(val2); } if (type === "date") { if (isNaN(val2.getTime())) { throw new TypeError("cannot serialize invalid date"); } return val2.toISOString(); } if (type === "object") { return stringifyInlineTable(val2, depth, numberAsFloat); } if (type === "array") { return stringifyArray(val2, depth, numberAsFloat); } } function stringifyInlineTable(obj, depth, numberAsFloat) { let keys = Object.keys(obj); if (keys.length === 0) return "{}"; let res = "{ "; for (let i7 = 0; i7 < keys.length; i7++) { let k7 = keys[i7]; if (i7) res += ", "; res += BARE_KEY.test(k7) ? k7 : formatString(k7); res += " = "; res += stringifyValue(obj[k7], extendedTypeOf(obj[k7]), depth - 1, numberAsFloat); } return res + " }"; } function stringifyArray(array, depth, numberAsFloat) { if (array.length === 0) return "[]"; let res = "[ "; for (let i7 = 0; i7 < array.length; i7++) { if (i7) res += ", "; if (array[i7] === null || array[i7] === void 0) { throw new TypeError("arrays cannot contain null or undefined values"); } res += stringifyValue(array[i7], extendedTypeOf(array[i7]), depth - 1, numberAsFloat); } return res + " ]"; } function stringifyArrayTable(array, key, depth, numberAsFloat) { if (depth === 0) { throw new Error("Could not stringify the object: maximum object depth exceeded"); } let res = ""; for (let i7 = 0; i7 < array.length; i7++) { res += `${res && "\n"}[[${key}]] `; res += stringifyTable(0, array[i7], key, depth, numberAsFloat); } return res; } function stringifyTable(tableKey, obj, prefix, depth, numberAsFloat) { if (depth === 0) { throw new Error("Could not stringify the object: maximum object depth exceeded"); } let preamble = ""; let tables = ""; let keys = Object.keys(obj); for (let i7 = 0; i7 < keys.length; i7++) { let k7 = keys[i7]; if (obj[k7] !== null && obj[k7] !== void 0) { let type = extendedTypeOf(obj[k7]); if (type === "symbol" || type === "function") { throw new TypeError(`cannot serialize values of type '${type}'`); } let key = BARE_KEY.test(k7) ? k7 : formatString(k7); if (type === "array" && isArrayOfTables(obj[k7])) { tables += (tables && "\n") + stringifyArrayTable(obj[k7], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat); } else if (type === "object") { let tblKey = prefix ? `${prefix}.${key}` : key; tables += (tables && "\n") + stringifyTable(tblKey, obj[k7], tblKey, depth - 1, numberAsFloat); } else { preamble += key; preamble += " = "; preamble += stringifyValue(obj[k7], type, depth, numberAsFloat); preamble += "\n"; } } } if (tableKey && (preamble || !tables)) preamble = preamble ? `[${tableKey}] ${preamble}` : `[${tableKey}]`; return preamble && tables ? `${preamble} ${tables}` : preamble || tables; } function stringify(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) { if (extendedTypeOf(obj) !== "object") { throw new TypeError("stringify can only be called with an object"); } let str = stringifyTable(0, obj, "", maxDepth, numbersAsFloat); if (str[str.length - 1] !== "\n") return str + "\n"; return str; } function parseTOML(tomlContent, filePath) { try { return dist_default.parse(tomlContent); } catch (err) { if (!(err instanceof TomlError)) { throw err; } const location = { lineText: tomlContent.split("\n")[err.line - 1], line: err.line, column: err.column - 1, file: filePath, fileText: tomlContent }; throw new ParseError({ text: err.message.substring(0, err.message.indexOf("\n")), location, telemetryMessage: "TOML parse error" }); } } function parsePackageJSON(input, file22) { return parseJSON(input, file22); } function parseJSON(input, file22) { return parseJSONC(input, file22, { allowEmptyContent: false, allowTrailingComma: false, disallowComments: true }); } function parseJSONC(input, file22, options = { allowTrailingComma: true }) { const errors = []; const data = parse2(input, errors, options); if (errors.length) { throw new ParseError({ text: printParseErrorCode(errors[0].error), location: { ...indexLocation({ file: file22, fileText: input }, errors[0].offset + 1), length: errors[0].length }, telemetryMessage: "JSON(C) parse error" }); } return data; } function readFileSyncToBuffer(file22) { try { return fs23.readFileSync(file22); } catch (err) { const { message } = err; throw new ParseError({ text: `Could not read file: ${file22}`, notes: [ { text: message.replace(file22, path3.resolve(file22)) } ] }); } } function readFileSync(file22) { try { const buffer = fs23.readFileSync(file22); return removeBOMAndValidate(buffer, file22); } catch (err) { if (err instanceof ParseError) { throw err; } const { message } = err; throw new ParseError({ text: `Could not read file: ${file22}`, notes: [ { text: message.replace(file22, path3.resolve(file22)) } ], telemetryMessage: "Could not read file" }); } } function indexLocation(file22, index) { let lineText, line = 0, column = 0, cursor = 0; const { fileText = "" } = file22; for (const row of fileText.split("\n")) { line++; cursor += row.length + 1; if (cursor >= index) { lineText = row; column = row.length - (cursor - index); break; } } return { lineText, line, column, ...file22 }; } function searchLocation(file22, query) { let lineText, length, line = 0, column = 0; const queryText = String(query); const { fileText = "" } = file22; for (const content of fileText.split("\n")) { line++; const index = content.indexOf(queryText); if (index >= 0) { lineText = content; column = index; length = queryText.length; break; } } return { lineText, line, column, length, ...file22 }; } function parseHumanDuration(s7) { const unitsMap = new Map(Object.entries(units)); s7 = s7.trim().toLowerCase(); let base = 1; for (const [name2, _5] of unitsMap) { if (s7.endsWith(name2)) { s7 = s7.substring(0, s7.length - name2.length); base = unitsMap.get(name2) || 1; break; } } return Number(s7) * base; } function parseNonHyphenedUuid(uuid) { if (uuid == null || uuid.includes("-")) { return uuid; } if (uuid.length != 32) { return null; } const uuid_parts = []; uuid_parts.push(uuid.slice(0, 8)); uuid_parts.push(uuid.slice(8, 12)); uuid_parts.push(uuid.slice(12, 16)); uuid_parts.push(uuid.slice(16, 20)); uuid_parts.push(uuid.slice(20)); let hyphenated = ""; uuid_parts.forEach((part) => hyphenated += part + "-"); return hyphenated.slice(0, 36); } function parseByteSize(s7, base = void 0) { const match3 = s7.match( /^(\d*\.*\d*)\s*([kKmMgGtTpP]{0,1})([i]{0,1}[bB]{0,1})$/ ); if (!match3) { return NaN; } const size = match3[1]; if (size.length === 0 || isNaN(Number(size))) { return NaN; } const unit = match3[2].toLowerCase(); const sizeUnits = { k: 1, m: 2, g: 3, t: 4, p: 5 }; if (unit.length !== 0 && !(unit in sizeUnits)) { return NaN; } const binary = match3[3].toLowerCase() == "ib"; if (binary && unit.length === 0) { return NaN; } const pow = sizeUnits[unit] || 0; return Math.floor( Number(size) * Math.pow(base ?? (binary ? 1024 : 1e3), pow) ); } function removeBOMAndValidate(buffer, file22) { for (const bom of UNSUPPORTED_BOMS) { if (buffer.length >= bom.buffer.length && buffer.subarray(0, bom.buffer.length).equals(bom.buffer)) { throw new ParseError({ text: `Configuration file contains ${bom.encoding} byte order marker`, notes: [ { text: `The file "${file22}" appears to be encoded as ${bom.encoding}. Please save the file as UTF-8 without BOM.` } ], location: { file: file22, line: 1, column: 0 }, telemetryMessage: `${bom.encoding} BOM detected` }); } } const content = buffer.toString("utf-8"); if (content.charCodeAt(0) === 65279) { return content.slice(1); } return content; } function absolute(input, root) { return path3.isAbsolute(input) ? input : path3.resolve(root || ".", input); } function up(base, options) { let { last, cwd: cwd2 } = options || {}; let tmp = absolute(base, cwd2); let root = absolute(last || "/", cwd2); let prev, arr = []; while (prev !== root) { arr.push(tmp); tmp = path3.dirname(prev = tmp); if (tmp === prev) break; } return arr; } function file(name2, options) { let dir2, tmp; let start = options && options.cwd || ""; for (dir2 of up(start, options)) { try { tmp = path3.join(dir2, name2); if (fs23.statSync(tmp).isFile()) return tmp; } catch { } } } function dedent(templ) { var values = []; for (var _i2 = 1; _i2 < arguments.length; _i2++) { values[_i2 - 1] = arguments[_i2]; } var strings = Array.from(typeof templ === "string" ? [templ] : templ); strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, ""); var indentLengths = strings.reduce(function(arr, str) { var matches = str.match(/\n([\t ]+|(?!\s).)/g); if (matches) { return arr.concat(matches.map(function(match3) { var _a5, _b2; return (_b2 = (_a5 = match3.match(/[\t ]/g)) === null || _a5 === void 0 ? void 0 : _a5.length) !== null && _b2 !== void 0 ? _b2 : 0; })); } return arr; }, []); if (indentLengths.length) { var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g"); strings = strings.map(function(str) { return str.replace(pattern_1, "\n"); }); } strings[0] = strings[0].replace(/^\r?\n/, ""); var string = strings[0]; values.forEach(function(value, i7) { var endentations = string.match(/(?:^|\n)( *)$/); var endentation = endentations ? endentations[1] : ""; var indentedValue = value; if (typeof value === "string" && value.includes("\n")) { indentedValue = String(value).split("\n").map(function(str, i22) { return i22 === 0 ? str : "" + endentation + str; }).join("\n"); } string += indentedValue + strings[i7 + 1]; }); return string; } function resolveWranglerConfigPath({ config, script }, options) { if (config !== void 0) { return { userConfigPath: config, configPath: config, deployConfigPath: void 0, redirected: false }; } const leafPath = script !== void 0 ? path3__namespace.default.dirname(script) : process.cwd(); return findWranglerConfig(leafPath, options); } function findWranglerConfig(referencePath = process.cwd(), { useRedirectIfAvailable = false } = {}) { const userConfigPath = file(`wrangler.json`, { cwd: referencePath }) ?? file(`wrangler.jsonc`, { cwd: referencePath }) ?? file(`wrangler.toml`, { cwd: referencePath }); if (!useRedirectIfAvailable) { return { userConfigPath, configPath: userConfigPath, deployConfigPath: void 0, redirected: false }; } const { configPath, deployConfigPath, redirected } = findRedirectedWranglerConfig(referencePath, userConfigPath); return { userConfigPath, configPath, deployConfigPath, redirected }; } function findRedirectedWranglerConfig(cwd2, userConfigPath) { const deployConfigPath = file(PATH_TO_DEPLOY_CONFIG, { cwd: cwd2 }); if (deployConfigPath === void 0) { return { configPath: userConfigPath, deployConfigPath, redirected: false }; } let redirectedConfigPath; const deployConfigFile = readFileSync(deployConfigPath); try { const deployConfig = parseJSONC(deployConfigFile, deployConfigPath); redirectedConfigPath = deployConfig.configPath && path3__namespace.default.resolve(path3__namespace.default.dirname(deployConfigPath), deployConfig.configPath); } catch (e9) { throw new UserError( `Failed to parse the deploy configuration file at ${path3__namespace.default.relative(".", deployConfigPath)}`, { cause: e9 } ); } if (!redirectedConfigPath) { throw new UserError(esm_default` A deploy configuration file was found at "${path3__namespace.default.relative(".", deployConfigPath)}". But this is not valid - the required "configPath" property was not found. Instead this file contains: \`\`\` ${deployConfigFile} \`\`\` `); } if (!fs23.existsSync(redirectedConfigPath)) { throw new UserError(esm_default` There is a deploy configuration at "${path3__namespace.default.relative(".", deployConfigPath)}". But the redirected configuration path it points to, "${path3__namespace.default.relative(".", redirectedConfigPath)}", does not exist. `); } if (userConfigPath) { if (path3__namespace.default.join(path3__namespace.default.dirname(userConfigPath), PATH_TO_DEPLOY_CONFIG) !== deployConfigPath) { throw new UserError(esm_default` Found both a user configuration file at "${path3__namespace.default.relative(".", userConfigPath)}" and a deploy configuration file at "${path3__namespace.default.relative(".", deployConfigPath)}". But these do not share the same base path so it is not clear which should be used. `); } } return { configPath: redirectedConfigPath, deployConfigPath, redirected: true }; } function isRedirectedRawConfig(rawConfig, configPath, userConfigPath) { return configPath !== void 0 && configPath !== userConfigPath; } function configFormat(configPath) { if (configPath?.endsWith("toml")) { return "toml"; } if (configPath?.endsWith("jsonc")) { return "jsonc"; } if (configPath?.endsWith("json")) { return "json"; } return "none"; } function configFileName(configPath) { const format32 = configFormat(configPath); switch (format32) { case "toml": return "wrangler.toml"; case "json": return "wrangler.json"; case "jsonc": return "wrangler.jsonc"; default: return "Wrangler configuration"; } } function formatConfigSnippet(snippet, configPath, formatted = true) { const format32 = configFormat(configPath); if (format32 === "toml") { return dist_default.stringify(snippet); } else { return formatted ? JSON.stringify(snippet, null, 2) : JSON.stringify(snippet); } } function isDirectory(path210) { return fs23__namespace.default.statSync(path210, { throwIfNoEntry: false })?.isDirectory() ?? false; } function removeDir(dirPath, { fireAndForget = false } = {}) { const result = fs23__namespace.default.promises.rm(dirPath, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 }); if (fireAndForget) { void result.catch(() => { }); } else { return result; } } function removeDirSync(dirPath) { fs23__namespace.default.rmSync(dirPath, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 }); } var UserError, FatalError, CommandLineArgsError, JsonFriendlyFatalError, MissingConfigError, CharacterCodes, ParseOptions, ScanError, SyntaxKind, parse2, ParseErrorCode, TomlError, DATE_TIME_RE, TomlDate, INT_REGEX, FLOAT_REGEX, LEADING_ZERO, ESCAPE_REGEX, ESC_MAP, KEY_PART_RE, BARE_KEY, dist_default, ParseError, APIError, units, UNSUPPORTED_BOMS, esm_default, parseRawConfigFile; exports.experimental_readRawConfig = void 0; var init_chunk_NNMRVG4F = __esm({ "../workers-utils/dist/chunk-NNMRVG4F.mjs"() { init_import_meta_url(); init_chunk_LDFBMPMW(); UserError = class extends Error { static { __name(this, "UserError"); } static { __name2(this, "UserError"); } telemetryMessage; constructor(message, options) { super(message, options); Object.setPrototypeOf(this, new.target.prototype); this.telemetryMessage = options?.telemetryMessage === true ? message : options?.telemetryMessage; } }; (class extends UserError { static { __name(this, "DeprecationError"); } static { __name2(this, "DeprecationError"); } constructor(message, options) { super(`Deprecation: ${message}`, options); } }); FatalError = class extends UserError { static { __name(this, "FatalError"); } constructor(message, code, options) { super(message, options); this.code = code; } static { __name2(this, "FatalError"); } }; CommandLineArgsError = class extends UserError { static { __name(this, "CommandLineArgsError"); } static { __name2(this, "CommandLineArgsError"); } }; JsonFriendlyFatalError = class extends FatalError { static { __name(this, "JsonFriendlyFatalError"); } constructor(message, code, options) { super(message, code, options); this.code = code; } static { __name2(this, "JsonFriendlyFatalError"); } }; MissingConfigError = class extends Error { static { __name(this, "MissingConfigError"); } static { __name2(this, "MissingConfigError"); } telemetryMessage; constructor(key) { super(`Missing config value for ${key}`); this.telemetryMessage = `Missing config value for ${key}`; } }; __name(createFatalError, "createFatalError"); __name2(createFatalError, "createFatalError"); __name(createScanner, "createScanner"); __name2(createScanner, "createScanner"); __name(isWhiteSpace, "isWhiteSpace"); __name2(isWhiteSpace, "isWhiteSpace"); __name(isLineBreak, "isLineBreak"); __name2(isLineBreak, "isLineBreak"); __name(isDigit, "isDigit"); __name2(isDigit, "isDigit"); (function(CharacterCodes22) { CharacterCodes22[CharacterCodes22["lineFeed"] = 10] = "lineFeed"; CharacterCodes22[CharacterCodes22["carriageReturn"] = 13] = "carriageReturn"; CharacterCodes22[CharacterCodes22["space"] = 32] = "space"; CharacterCodes22[CharacterCodes22["_0"] = 48] = "_0"; CharacterCodes22[CharacterCodes22["_1"] = 49] = "_1"; CharacterCodes22[CharacterCodes22["_2"] = 50] = "_2"; CharacterCodes22[CharacterCodes22["_3"] = 51] = "_3"; CharacterCodes22[CharacterCodes22["_4"] = 52] = "_4"; CharacterCodes22[CharacterCodes22["_5"] = 53] = "_5"; CharacterCodes22[CharacterCodes22["_6"] = 54] = "_6"; CharacterCodes22[CharacterCodes22["_7"] = 55] = "_7"; CharacterCodes22[CharacterCodes22["_8"] = 56] = "_8"; CharacterCodes22[CharacterCodes22["_9"] = 57] = "_9"; CharacterCodes22[CharacterCodes22["a"] = 97] = "a"; CharacterCodes22[CharacterCodes22["b"] = 98] = "b"; CharacterCodes22[CharacterCodes22["c"] = 99] = "c"; CharacterCodes22[CharacterCodes22["d"] = 100] = "d"; CharacterCodes22[CharacterCodes22["e"] = 101] = "e"; CharacterCodes22[CharacterCodes22["f"] = 102] = "f"; CharacterCodes22[CharacterCodes22["g"] = 103] = "g"; CharacterCodes22[CharacterCodes22["h"] = 104] = "h"; CharacterCodes22[CharacterCodes22["i"] = 105] = "i"; CharacterCodes22[CharacterCodes22["j"] = 106] = "j"; CharacterCodes22[CharacterCodes22["k"] = 107] = "k"; CharacterCodes22[CharacterCodes22["l"] = 108] = "l"; CharacterCodes22[CharacterCodes22["m"] = 109] = "m"; CharacterCodes22[CharacterCodes22["n"] = 110] = "n"; CharacterCodes22[CharacterCodes22["o"] = 111] = "o"; CharacterCodes22[CharacterCodes22["p"] = 112] = "p"; CharacterCodes22[CharacterCodes22["q"] = 113] = "q"; CharacterCodes22[CharacterCodes22["r"] = 114] = "r"; CharacterCodes22[CharacterCodes22["s"] = 115] = "s"; CharacterCodes22[CharacterCodes22["t"] = 116] = "t"; CharacterCodes22[CharacterCodes22["u"] = 117] = "u"; CharacterCodes22[CharacterCodes22["v"] = 118] = "v"; CharacterCodes22[CharacterCodes22["w"] = 119] = "w"; CharacterCodes22[CharacterCodes22["x"] = 120] = "x"; CharacterCodes22[CharacterCodes22["y"] = 121] = "y"; CharacterCodes22[CharacterCodes22["z"] = 122] = "z"; CharacterCodes22[CharacterCodes22["A"] = 65] = "A"; CharacterCodes22[CharacterCodes22["B"] = 66] = "B"; CharacterCodes22[CharacterCodes22["C"] = 67] = "C"; CharacterCodes22[CharacterCodes22["D"] = 68] = "D"; CharacterCodes22[CharacterCodes22["E"] = 69] = "E"; CharacterCodes22[CharacterCodes22["F"] = 70] = "F"; CharacterCodes22[CharacterCodes22["G"] = 71] = "G"; CharacterCodes22[CharacterCodes22["H"] = 72] = "H"; CharacterCodes22[CharacterCodes22["I"] = 73] = "I"; CharacterCodes22[CharacterCodes22["J"] = 74] = "J"; CharacterCodes22[CharacterCodes22["K"] = 75] = "K"; CharacterCodes22[CharacterCodes22["L"] = 76] = "L"; CharacterCodes22[CharacterCodes22["M"] = 77] = "M"; CharacterCodes22[CharacterCodes22["N"] = 78] = "N"; CharacterCodes22[CharacterCodes22["O"] = 79] = "O"; CharacterCodes22[CharacterCodes22["P"] = 80] = "P"; CharacterCodes22[CharacterCodes22["Q"] = 81] = "Q"; CharacterCodes22[CharacterCodes22["R"] = 82] = "R"; CharacterCodes22[CharacterCodes22["S"] = 83] = "S"; CharacterCodes22[CharacterCodes22["T"] = 84] = "T"; CharacterCodes22[CharacterCodes22["U"] = 85] = "U"; CharacterCodes22[CharacterCodes22["V"] = 86] = "V"; CharacterCodes22[CharacterCodes22["W"] = 87] = "W"; CharacterCodes22[CharacterCodes22["X"] = 88] = "X"; CharacterCodes22[CharacterCodes22["Y"] = 89] = "Y"; CharacterCodes22[CharacterCodes22["Z"] = 90] = "Z"; CharacterCodes22[CharacterCodes22["asterisk"] = 42] = "asterisk"; CharacterCodes22[CharacterCodes22["backslash"] = 92] = "backslash"; CharacterCodes22[CharacterCodes22["closeBrace"] = 125] = "closeBrace"; CharacterCodes22[CharacterCodes22["closeBracket"] = 93] = "closeBracket"; CharacterCodes22[CharacterCodes22["colon"] = 58] = "colon"; CharacterCodes22[CharacterCodes22["comma"] = 44] = "comma"; CharacterCodes22[CharacterCodes22["dot"] = 46] = "dot"; CharacterCodes22[CharacterCodes22["doubleQuote"] = 34] = "doubleQuote"; CharacterCodes22[CharacterCodes22["minus"] = 45] = "minus"; CharacterCodes22[CharacterCodes22["openBrace"] = 123] = "openBrace"; CharacterCodes22[CharacterCodes22["openBracket"] = 91] = "openBracket"; CharacterCodes22[CharacterCodes22["plus"] = 43] = "plus"; CharacterCodes22[CharacterCodes22["slash"] = 47] = "slash"; CharacterCodes22[CharacterCodes22["formFeed"] = 12] = "formFeed"; CharacterCodes22[CharacterCodes22["tab"] = 9] = "tab"; })(CharacterCodes || (CharacterCodes = {})); __name(format, "format"); __name2(format, "format"); __name(repeat, "repeat"); __name2(repeat, "repeat"); __name(computeIndentLevel, "computeIndentLevel"); __name2(computeIndentLevel, "computeIndentLevel"); __name(getEOL, "getEOL"); __name2(getEOL, "getEOL"); __name(isEOL, "isEOL"); __name2(isEOL, "isEOL"); (function(ParseOptions22) { ParseOptions22.DEFAULT = { allowTrailingComma: false }; })(ParseOptions || (ParseOptions = {})); __name(parse, "parse"); __name2(parse, "parse"); __name(parseTree, "parseTree"); __name2(parseTree, "parseTree"); __name(findNodeAtLocation, "findNodeAtLocation"); __name2(findNodeAtLocation, "findNodeAtLocation"); __name(visit, "visit"); __name2(visit, "visit"); __name(getNodeType, "getNodeType"); __name2(getNodeType, "getNodeType"); __name(setProperty, "setProperty"); __name2(setProperty, "setProperty"); __name(withFormatting, "withFormatting"); __name2(withFormatting, "withFormatting"); __name(applyEdit, "applyEdit"); __name2(applyEdit, "applyEdit"); (function(ScanError22) { ScanError22[ScanError22["None"] = 0] = "None"; ScanError22[ScanError22["UnexpectedEndOfComment"] = 1] = "UnexpectedEndOfComment"; ScanError22[ScanError22["UnexpectedEndOfString"] = 2] = "UnexpectedEndOfString"; ScanError22[ScanError22["UnexpectedEndOfNumber"] = 3] = "UnexpectedEndOfNumber"; ScanError22[ScanError22["InvalidUnicode"] = 4] = "InvalidUnicode"; ScanError22[ScanError22["InvalidEscapeCharacter"] = 5] = "InvalidEscapeCharacter"; ScanError22[ScanError22["InvalidCharacter"] = 6] = "InvalidCharacter"; })(ScanError || (ScanError = {})); (function(SyntaxKind22) { SyntaxKind22[SyntaxKind22["OpenBraceToken"] = 1] = "OpenBraceToken"; SyntaxKind22[SyntaxKind22["CloseBraceToken"] = 2] = "CloseBraceToken"; SyntaxKind22[SyntaxKind22["OpenBracketToken"] = 3] = "OpenBracketToken"; SyntaxKind22[SyntaxKind22["CloseBracketToken"] = 4] = "CloseBracketToken"; SyntaxKind22[SyntaxKind22["CommaToken"] = 5] = "CommaToken"; SyntaxKind22[SyntaxKind22["ColonToken"] = 6] = "ColonToken"; SyntaxKind22[SyntaxKind22["NullKeyword"] = 7] = "NullKeyword"; SyntaxKind22[SyntaxKind22["TrueKeyword"] = 8] = "TrueKeyword"; SyntaxKind22[SyntaxKind22["FalseKeyword"] = 9] = "FalseKeyword"; SyntaxKind22[SyntaxKind22["StringLiteral"] = 10] = "StringLiteral"; SyntaxKind22[SyntaxKind22["NumericLiteral"] = 11] = "NumericLiteral"; SyntaxKind22[SyntaxKind22["LineCommentTrivia"] = 12] = "LineCommentTrivia"; SyntaxKind22[SyntaxKind22["BlockCommentTrivia"] = 13] = "BlockCommentTrivia"; SyntaxKind22[SyntaxKind22["LineBreakTrivia"] = 14] = "LineBreakTrivia"; SyntaxKind22[SyntaxKind22["Trivia"] = 15] = "Trivia"; SyntaxKind22[SyntaxKind22["Unknown"] = 16] = "Unknown"; SyntaxKind22[SyntaxKind22["EOF"] = 17] = "EOF"; })(SyntaxKind || (SyntaxKind = {})); parse2 = parse; (function(ParseErrorCode22) { ParseErrorCode22[ParseErrorCode22["InvalidSymbol"] = 1] = "InvalidSymbol"; ParseErrorCode22[ParseErrorCode22["InvalidNumberFormat"] = 2] = "InvalidNumberFormat"; ParseErrorCode22[ParseErrorCode22["PropertyNameExpected"] = 3] = "PropertyNameExpected"; ParseErrorCode22[ParseErrorCode22["ValueExpected"] = 4] = "ValueExpected"; ParseErrorCode22[ParseErrorCode22["ColonExpected"] = 5] = "ColonExpected"; ParseErrorCode22[ParseErrorCode22["CommaExpected"] = 6] = "CommaExpected"; ParseErrorCode22[ParseErrorCode22["CloseBraceExpected"] = 7] = "CloseBraceExpected"; ParseErrorCode22[ParseErrorCode22["CloseBracketExpected"] = 8] = "CloseBracketExpected"; ParseErrorCode22[ParseErrorCode22["EndOfFileExpected"] = 9] = "EndOfFileExpected"; ParseErrorCode22[ParseErrorCode22["InvalidCommentToken"] = 10] = "InvalidCommentToken"; ParseErrorCode22[ParseErrorCode22["UnexpectedEndOfComment"] = 11] = "UnexpectedEndOfComment"; ParseErrorCode22[ParseErrorCode22["UnexpectedEndOfString"] = 12] = "UnexpectedEndOfString"; ParseErrorCode22[ParseErrorCode22["UnexpectedEndOfNumber"] = 13] = "UnexpectedEndOfNumber"; ParseErrorCode22[ParseErrorCode22["InvalidUnicode"] = 14] = "InvalidUnicode"; ParseErrorCode22[ParseErrorCode22["InvalidEscapeCharacter"] = 15] = "InvalidEscapeCharacter"; ParseErrorCode22[ParseErrorCode22["InvalidCharacter"] = 16] = "InvalidCharacter"; })(ParseErrorCode || (ParseErrorCode = {})); __name(printParseErrorCode, "printParseErrorCode"); __name2(printParseErrorCode, "printParseErrorCode"); __name(format2, "format2"); __name2(format2, "format"); __name(modify, "modify"); __name2(modify, "modify"); __name(applyEdits, "applyEdits"); __name2(applyEdits, "applyEdits"); __name(getLineColFromPtr, "getLineColFromPtr"); __name2(getLineColFromPtr, "getLineColFromPtr"); __name(makeCodeBlock, "makeCodeBlock"); __name2(makeCodeBlock, "makeCodeBlock"); TomlError = class extends Error { static { __name(this, "TomlError"); } static { __name2(this, "TomlError"); } line; column; codeblock; constructor(message, options) { const [line, column] = getLineColFromPtr(options.toml, options.ptr); const codeblock = makeCodeBlock(options.toml, line, column); super(`Invalid TOML document: ${message} ${codeblock}`, options); this.line = line; this.column = column; this.codeblock = codeblock; } }; __name(isEscaped, "isEscaped"); __name2(isEscaped, "isEscaped"); __name(indexOfNewline, "indexOfNewline"); __name2(indexOfNewline, "indexOfNewline"); __name(skipComment, "skipComment"); __name2(skipComment, "skipComment"); __name(skipVoid, "skipVoid"); __name2(skipVoid, "skipVoid"); __name(skipUntil, "skipUntil"); __name2(skipUntil, "skipUntil"); __name(getStringEnd, "getStringEnd"); __name2(getStringEnd, "getStringEnd"); DATE_TIME_RE = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i; TomlDate = class _TomlDate extends Date { static { __name(this, "_TomlDate"); } static { __name2(this, "TomlDate"); } #hasDate = false; #hasTime = false; #offset = null; constructor(date) { let hasDate = true; let hasTime = true; let offset = "Z"; if (typeof date === "string") { let match3 = date.match(DATE_TIME_RE); if (match3) { if (!match3[1]) { hasDate = false; date = `0000-01-01T${date}`; } hasTime = !!match3[2]; hasTime && date[10] === " " && (date = date.replace(" ", "T")); if (match3[2] && +match3[2] > 23) { date = ""; } else { offset = match3[3] || null; date = date.toUpperCase(); if (!offset && hasTime) date += "Z"; } } else { date = ""; } } super(date); if (!isNaN(this.getTime())) { this.#hasDate = hasDate; this.#hasTime = hasTime; this.#offset = offset; } } isDateTime() { return this.#hasDate && this.#hasTime; } isLocal() { return !this.#hasDate || !this.#hasTime || !this.#offset; } isDate() { return this.#hasDate && !this.#hasTime; } isTime() { return this.#hasTime && !this.#hasDate; } isValid() { return this.#hasDate || this.#hasTime; } toISOString() { let iso = super.toISOString(); if (this.isDate()) return iso.slice(0, 10); if (this.isTime()) return iso.slice(11, 23); if (this.#offset === null) return iso.slice(0, -1); if (this.#offset === "Z") return iso; let offset = +this.#offset.slice(1, 3) * 60 + +this.#offset.slice(4, 6); offset = this.#offset[0] === "-" ? offset : -offset; let offsetDate = new Date(this.getTime() - offset * 6e4); return offsetDate.toISOString().slice(0, -1) + this.#offset; } static wrapAsOffsetDateTime(jsDate, offset = "Z") { let date = new _TomlDate(jsDate); date.#offset = offset; return date; } static wrapAsLocalDateTime(jsDate) { let date = new _TomlDate(jsDate); date.#offset = null; return date; } static wrapAsLocalDate(jsDate) { let date = new _TomlDate(jsDate); date.#hasTime = false; date.#offset = null; return date; } static wrapAsLocalTime(jsDate) { let date = new _TomlDate(jsDate); date.#hasDate = false; date.#offset = null; return date; } }; INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/; FLOAT_REGEX = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/; LEADING_ZERO = /^[+-]?0[0-9_]/; ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i; ESC_MAP = { b: "\b", t: " ", n: "\n", f: "\f", r: "\r", '"': '"', "\\": "\\" }; __name(parseString, "parseString"); __name2(parseString, "parseString"); __name(parseValue, "parseValue"); __name2(parseValue, "parseValue"); __name(sliceAndTrimEndOf, "sliceAndTrimEndOf"); __name2(sliceAndTrimEndOf, "sliceAndTrimEndOf"); __name(extractValue, "extractValue"); __name2(extractValue, "extractValue"); KEY_PART_RE = /^[a-zA-Z0-9-_]+[ \t]*$/; __name(parseKey, "parseKey"); __name2(parseKey, "parseKey"); __name(parseInlineTable, "parseInlineTable"); __name2(parseInlineTable, "parseInlineTable"); __name(parseArray, "parseArray"); __name2(parseArray, "parseArray"); __name(peekTable, "peekTable"); __name2(peekTable, "peekTable"); __name(parse3, "parse3"); __name2(parse3, "parse"); BARE_KEY = /^[a-z0-9-_]+$/i; __name(extendedTypeOf, "extendedTypeOf"); __name2(extendedTypeOf, "extendedTypeOf"); __name(isArrayOfTables, "isArrayOfTables"); __name2(isArrayOfTables, "isArrayOfTables"); __name(formatString, "formatString"); __name2(formatString, "formatString"); __name(stringifyValue, "stringifyValue"); __name2(stringifyValue, "stringifyValue"); __name(stringifyInlineTable, "stringifyInlineTable"); __name2(stringifyInlineTable, "stringifyInlineTable"); __name(stringifyArray, "stringifyArray"); __name2(stringifyArray, "stringifyArray"); __name(stringifyArrayTable, "stringifyArrayTable"); __name2(stringifyArrayTable, "stringifyArrayTable"); __name(stringifyTable, "stringifyTable"); __name2(stringifyTable, "stringifyTable"); __name(stringify, "stringify"); __name2(stringify, "stringify"); dist_default = { parse: parse3, stringify, TomlDate, TomlError }; ParseError = class extends UserError { static { __name(this, "ParseError"); } static { __name2(this, "ParseError"); } text; notes; location; kind; constructor({ text, notes, location, kind: kind2, telemetryMessage }) { super(text, { telemetryMessage }); this.name = this.constructor.name; this.text = text; this.notes = notes ?? []; this.location = location; this.kind = kind2 ?? "error"; } }; APIError = class extends ParseError { static { __name(this, "APIError"); } static { __name2(this, "APIError"); } #status; code; accountTag; constructor({ status: status2, ...rest }) { super(rest); this.name = this.constructor.name; this.#status = status2; } isGatewayError() { if (this.#status !== void 0) { return [524].includes(this.#status); } return false; } isRetryable() { return String(this.#status).startsWith("5"); } // Allow `APIError`s to be marked as handled. #reportable = true; get reportable() { return this.#reportable; } preventReport() { this.#reportable = false; } }; __name(parseTOML, "parseTOML"); __name2(parseTOML, "parseTOML"); __name(parsePackageJSON, "parsePackageJSON"); __name2(parsePackageJSON, "parsePackageJSON"); __name(parseJSON, "parseJSON"); __name2(parseJSON, "parseJSON"); __name(parseJSONC, "parseJSONC"); __name2(parseJSONC, "parseJSONC"); __name(readFileSyncToBuffer, "readFileSyncToBuffer"); __name2(readFileSyncToBuffer, "readFileSyncToBuffer"); __name(readFileSync, "readFileSync"); __name2(readFileSync, "readFileSync"); __name(indexLocation, "indexLocation"); __name2(indexLocation, "indexLocation"); __name(searchLocation, "searchLocation"); __name2(searchLocation, "searchLocation"); units = { nanoseconds: 1e-9, nanosecond: 1e-9, microseconds: 1e-6, microsecond: 1e-6, milliseconds: 1e-3, millisecond: 1e-3, seconds: 1, second: 1, minutes: 60, minute: 60, hours: 3600, hour: 3600, days: 86400, day: 86400, weeks: 604800, week: 604800, month: 18144e3, year: 220752e3, nsecs: 1e-9, nsec: 1e-9, usecs: 1e-6, usec: 1e-6, msecs: 1e-3, msec: 1e-3, secs: 1, sec: 1, mins: 60, min: 60, ns: 1e-9, us: 1e-6, ms: 1e-3, mo: 18144e3, yr: 220752e3, s: 1, m: 60, h: 3600, d: 86400, w: 604800, y: 220752e3 }; __name(parseHumanDuration, "parseHumanDuration"); __name2(parseHumanDuration, "parseHumanDuration"); __name(parseNonHyphenedUuid, "parseNonHyphenedUuid"); __name2(parseNonHyphenedUuid, "parseNonHyphenedUuid"); __name(parseByteSize, "parseByteSize"); __name2(parseByteSize, "parseByteSize"); UNSUPPORTED_BOMS = [ { buffer: Buffer.from([0, 0, 254, 255]), encoding: "UTF-32 BE" }, { buffer: Buffer.from([255, 254, 0, 0]), encoding: "UTF-32 LE" }, { buffer: Buffer.from([254, 255]), encoding: "UTF-16 BE" }, { buffer: Buffer.from([255, 254]), encoding: "UTF-16 LE" } ]; __name(removeBOMAndValidate, "removeBOMAndValidate"); __name2(removeBOMAndValidate, "removeBOMAndValidate"); __name(absolute, "absolute"); __name2(absolute, "absolute"); __name(up, "up"); __name2(up, "up"); __name(file, "file"); __name2(file, "file"); __name(dedent, "dedent"); __name2(dedent, "dedent"); esm_default = dedent; __name(resolveWranglerConfigPath, "resolveWranglerConfigPath"); __name2(resolveWranglerConfigPath, "resolveWranglerConfigPath"); __name(findWranglerConfig, "findWranglerConfig"); __name2(findWranglerConfig, "findWranglerConfig"); __name(findRedirectedWranglerConfig, "findRedirectedWranglerConfig"); __name2(findRedirectedWranglerConfig, "findRedirectedWranglerConfig"); __name(isRedirectedRawConfig, "isRedirectedRawConfig"); __name2(isRedirectedRawConfig, "isRedirectedRawConfig"); __name(configFormat, "configFormat"); __name2(configFormat, "configFormat"); __name(configFileName, "configFileName"); __name2(configFileName, "configFileName"); __name(formatConfigSnippet, "formatConfigSnippet"); __name2(formatConfigSnippet, "formatConfigSnippet"); parseRawConfigFile = /* @__PURE__ */ __name2((configPath) => { if (configPath.endsWith(".toml")) { return parseTOML(readFileSync(configPath), configPath); } if (configPath.endsWith(".json") || configPath.endsWith(".jsonc")) { return parseJSONC(readFileSync(configPath), configPath); } return {}; }, "parseRawConfigFile"); exports.experimental_readRawConfig = /* @__PURE__ */ __name2((args, options = {}) => { const { configPath, userConfigPath, deployConfigPath, redirected } = resolveWranglerConfigPath(args, options); const rawConfig = parseRawConfigFile(configPath ?? ""); return { rawConfig, configPath, userConfigPath, deployConfigPath, redirected }; }, "experimental_readRawConfig"); __name(isDirectory, "isDirectory"); __name2(isDirectory, "isDirectory"); __name(removeDir, "removeDir"); __name2(removeDir, "removeDir"); __name(removeDirSync, "removeDirSync"); __name2(removeDirSync, "removeDirSync"); } }); function isValidWorkflowName(name2) { if (typeof name2 !== "string") { return false; } if (name2.length > MAX_WORKFLOW_NAME_LENGTH) { return false; } return ALLOWED_WORKFLOW_NAME_REGEX.test(name2); } function getGlobalWranglerConfigPath() { const configDir = mod_esm_default(".wrangler").config(); const legacyConfigDir = path3__namespace.default.join(os10__namespace.default.homedir(), ".wrangler"); if (isDirectory(legacyConfigDir)) { return legacyConfigDir; } else { return configDir; } } function getBooleanEnvironmentVariableFactory(options) { return () => { if (!(options.variableName in process.env) || process.env[options.variableName] === void 0) { return typeof options.defaultValue === "function" ? options.defaultValue() : options.defaultValue; } switch (process.env[options.variableName]?.toLowerCase()) { case "true": return true; case "false": return false; default: throw new UserError( `Expected ${options.variableName} to be "true" or "false", but got ${JSON.stringify( process.env[options.variableName] )}` ); } }; } function getEnvironmentVariableFactory({ variableName, deprecatedName, choices, defaultValue }) { let hasWarned = false; return () => { if (variableName in process.env) { return getProcessEnv(variableName, choices); } if (deprecatedName && deprecatedName in process.env) { if (!hasWarned) { hasWarned = true; console.warn( `Using "${deprecatedName}" environment variable. This is deprecated. Please use "${variableName}", instead.` ); } return getProcessEnv(deprecatedName, choices); } return defaultValue?.(); }; } function getProcessEnv(variableName, choices) { assertOneOf(choices, process.env[variableName]); return process.env[variableName]; } function assertOneOf(choices, value) { if (Array.isArray(choices) && !choices.includes(value)) { throw new UserError( `Expected ${JSON.stringify(value)} to be one of ${JSON.stringify(choices)}` ); } } function getComplianceRegionSubdomain(complianceConfig) { return getCloudflareComplianceRegion(complianceConfig) === "fedramp_high" ? ".fed" : ""; } function getStagingSubdomain() { return getCloudflareApiEnvironmentFromEnv() === "staging" ? ".staging" : ""; } function indentText(str) { return str.split("\n").map( (line, index) => (index === 0 ? line : ` ${line}`).replace(/^\s*$/, "") ).join("\n"); } function deprecated(diagnostics, config, fieldPath, message, remove, title = "Deprecation", type = "warning") { const BOLD = "\x1B[1m"; const NORMAL = "\x1B[0m"; const diagnosticMessage = `${BOLD}${title}${NORMAL}: "${fieldPath}": ${message}`; const result = unwindPropertyPath(config, fieldPath); if (result !== void 0 && result.field in result.container) { diagnostics[`${type}s`].push(diagnosticMessage); if (remove) { delete result.container[result.field]; } } } function experimental(diagnostics, config, fieldPath) { const result = unwindPropertyPath(config, fieldPath); if (result !== void 0 && result.field in result.container && !("WRANGLER_DISABLE_EXPERIMENTAL_WARNING" in process.env)) { diagnostics.warnings.push( `"${fieldPath}" fields are experimental and may change or break at any time.` ); } } function inheritable(diagnostics, topLevelEnv, rawEnv, field, validate3, defaultValue, transformFn = (v8) => v8) { validate3(diagnostics, field, rawEnv[field], topLevelEnv); return ( // `rawEnv === topLevelEnv` is a special case where the user has provided an environment name // but that named environment is not actually defined in the configuration. // In that case we have reused the topLevelEnv as the rawEnv, // and so we need to process the `transformFn()` anyway rather than just using the field in the `rawEnv`. (rawEnv !== topLevelEnv ? rawEnv[field] : void 0) ?? transformFn(topLevelEnv?.[field]) ?? defaultValue ); } function inheritableInWranglerEnvironments(diagnostics, useServiceEnvironments2, topLevelEnv, rawEnv, field, validate3, transformFn = (v8) => v8, defaultValue) { const usingServiceEnvironments = useServiceEnvironments2 && topLevelEnv !== void 0; return usingServiceEnvironments ? notAllowedInNamedServiceEnvironment( diagnostics, topLevelEnv, rawEnv, field ) : inheritable( diagnostics, topLevelEnv, rawEnv, field, validate3, defaultValue, transformFn ); } function notAllowedInNamedServiceEnvironment(diagnostics, topLevelEnv, rawEnv, field) { if (field in rawEnv) { diagnostics.errors.push( `The "${field}" field is not allowed in named service environments. Please remove the field from this environment.` ); } return topLevelEnv[field]; } function notInheritable(diagnostics, topLevelEnv, rawConfig, rawEnv, envName, field, validate3, defaultValue) { if (rawEnv[field] !== void 0) { validate3(diagnostics, field, rawEnv[field], topLevelEnv); } else { if (rawConfig?.[field] !== void 0) { diagnostics.warnings.push( `"${field}" exists at the top level, but not on "env.${envName}". This is not what you probably want, since "${field}" is not inherited by environments. Please add "${field}" to "env.${envName}".` ); } } return rawEnv[field] ?? defaultValue; } function unwindPropertyPath(root, path410) { let container = root; const parts = path410.split("."); for (let i7 = 0; i7 < parts.length - 1; i7++) { if (!hasProperty(container, parts[i7])) { return; } container = container[parts[i7]]; } return { container, field: parts[parts.length - 1] }; } function isValidR2BucketName(name2) { return typeof name2 === "string" && /^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$/.test(name2); } function getBindingTypeFriendlyName(bindingType) { if (bindingType in bindingTypeFriendlyNames) { return bindingTypeFriendlyNames[bindingType]; } if (bindingType.startsWith("unsafe_")) { return "Unsafe Metadata"; } return bindingType; } function isPagesConfig(rawConfig) { return rawConfig.pages_build_output_dir !== void 0; } function normalizeAndValidateConfig(rawConfig, configPath, userConfigPath, args, preserveOriginalMain = false) { const diagnostics = new Diagnostics( `Processing ${configPath ? path3__namespace.default.relative(process.cwd(), configPath) : "wrangler"} configuration:` ); validateOptionalProperty( diagnostics, "", "legacy_env", rawConfig.legacy_env, "boolean" ); validateOptionalProperty( diagnostics, "", "send_metrics", rawConfig.send_metrics, "boolean" ); validateOptionalProperty( diagnostics, "", "keep_vars", rawConfig.keep_vars, "boolean" ); validateOptionalProperty( diagnostics, "", "pages_build_output_dir", rawConfig.pages_build_output_dir, "string" ); validateOptionalProperty( diagnostics, "", "$schema", rawConfig.$schema, "string" ); const useServiceEnvironments2 = !(args["legacy-env"] ?? rawConfig.legacy_env ?? true); if (useServiceEnvironments2) { diagnostics.warnings.push( "Service environments are deprecated, and will be removed in the future. DO NOT USE IN PRODUCTION." ); } const isDispatchNamespace = typeof args["dispatch-namespace"] === "string" && args["dispatch-namespace"].trim() !== ""; const topLevelEnv = normalizeAndValidateEnvironment( diagnostics, configPath, rawConfig, isDispatchNamespace, preserveOriginalMain ); const isRedirectedConfig = isRedirectedRawConfig( rawConfig, configPath, userConfigPath ); const definedEnvironments = Object.keys(rawConfig.env ?? {}); if (isRedirectedConfig && definedEnvironments.length > 0) { diagnostics.errors.push( dedent` Redirected configurations cannot include environments but the following have been found:\n${definedEnvironments.map((env6) => ` - ${env6}`).join("\n")} Such configurations are generated by tools, meaning that one of the tools your application is using is generating the incorrect configuration. Report this issue to the tool's author so that this can be fixed there. ` ); } const envName = args.env ?? getCloudflareEnv(); assert50__default.default(envName === void 0 || typeof envName === "string"); let activeEnv = topLevelEnv; if (envName) { if (isRedirectedConfig) { if (!isPagesConfig(rawConfig) && rawConfig.targetEnvironment && rawConfig.targetEnvironment !== envName) { const via = args.env !== void 0 ? "via the `--env/-e` CLI argument" : "via the CLOUDFLARE_ENV environment variable"; throw new Error(dedent` You have specified the environment "${envName}" ${via}. This does not match the target environment "${rawConfig.targetEnvironment}" that was used when building the application. Perhaps you need to re-run the custom build of the project with "${envName}" as the selected environment? `); } } else { const envDiagnostics = new Diagnostics( `"env.${envName}" environment configuration` ); const rawEnv = rawConfig.env?.[envName]; if (rawEnv !== void 0) { activeEnv = normalizeAndValidateEnvironment( envDiagnostics, configPath, rawEnv, isDispatchNamespace, preserveOriginalMain, envName, topLevelEnv, useServiceEnvironments2, rawConfig ); diagnostics.addChild(envDiagnostics); } else if (!isPagesConfig(rawConfig)) { activeEnv = normalizeAndValidateEnvironment( envDiagnostics, configPath, topLevelEnv, // in this case reuse the topLevelEnv to ensure that nonInherited fields are not removed isDispatchNamespace, preserveOriginalMain, envName, topLevelEnv, useServiceEnvironments2, rawConfig ); const envNames = rawConfig.env ? `The available configured environment names are: ${JSON.stringify( Object.keys(rawConfig.env) )} ` : ""; const message = `No environment found in configuration with name "${envName}". Before using \`--env=${envName}\` there should be an equivalent environment section in the configuration. ${envNames} Consider adding an environment configuration section to the ${configFileName(configPath)} file: \`\`\` [env.` + envName + "]\n```\n"; if (envNames.length > 0) { diagnostics.errors.push(message); } else { diagnostics.warnings.push(message); } } } } const config = { configPath, userConfigPath, topLevelName: isRedirectedConfig ? rawConfig.topLevelName : rawConfig.name, definedEnvironments: isRedirectedConfig ? rawConfig.definedEnvironments : definedEnvironments, targetEnvironment: isRedirectedConfig ? rawConfig.targetEnvironment : envName, pages_build_output_dir: normalizeAndValidatePagesBuildOutputDir( configPath, rawConfig.pages_build_output_dir ), /** Legacy_env is wrangler environments, as opposed to service environments. Wrangler environments is not legacy. */ legacy_env: !useServiceEnvironments2, send_metrics: rawConfig.send_metrics, keep_vars: rawConfig.keep_vars, ...activeEnv, dev: normalizeAndValidateDev(diagnostics, rawConfig.dev ?? {}, args), site: normalizeAndValidateSite( diagnostics, configPath, rawConfig, activeEnv.main ), alias: normalizeAndValidateAliases(diagnostics, configPath, rawConfig), wasm_modules: normalizeAndValidateModulePaths( diagnostics, configPath, "wasm_modules", rawConfig.wasm_modules ), text_blobs: normalizeAndValidateModulePaths( diagnostics, configPath, "text_blobs", rawConfig.text_blobs ), data_blobs: normalizeAndValidateModulePaths( diagnostics, configPath, "data_blobs", rawConfig.data_blobs ) }; validateBindingsHaveUniqueNames(diagnostics, config); validateAdditionalProperties( diagnostics, "top-level", Object.keys(rawConfig), [...Object.keys(config), "env", "$schema"] ); applyPythonConfig(config, args); return { config, diagnostics }; } function applyPythonConfig(config, args) { const mainModule = args.script ?? config.main; if (typeof mainModule === "string" && mainModule.endsWith(".py")) { config.no_bundle = true; if (!config.rules.some((rule) => rule.type === "PythonModule")) { config.rules.push({ type: "PythonModule", globs: ["**/*.py"] }); } if (!config.compatibility_flags.includes("python_workers")) { throw new UserError( "The `python_workers` compatibility flag is required to use Python." ); } } } function normalizeAndValidateBuild(diagnostics, rawEnv, rawBuild, configPath) { const { command: command2, cwd: cwd2, watch_dir = "./src", ...rest } = rawBuild; validateAdditionalProperties(diagnostics, "build", Object.keys(rest), []); validateOptionalProperty(diagnostics, "build", "command", command2, "string"); validateOptionalProperty(diagnostics, "build", "cwd", cwd2, "string"); if (Array.isArray(watch_dir)) { validateTypedArray(diagnostics, "build.watch_dir", watch_dir, "string"); } else { validateOptionalProperty( diagnostics, "build", "watch_dir", watch_dir, "string" ); } return { command: command2, watch_dir: ( // - `watch_dir` only matters when `command` is defined, so we apply // a default only when `command` is defined // - `configPath` will always be defined since `build` can only // be configured in the Wrangler configuration file, but who knows, that may // change in the future, so we do a check anyway command2 && configPath ? Array.isArray(watch_dir) ? watch_dir.map( (dir2) => path3__namespace.default.relative( process.cwd(), path3__namespace.default.join(path3__namespace.default.dirname(configPath), `${dir2}`) ) ) : path3__namespace.default.relative( process.cwd(), path3__namespace.default.join(path3__namespace.default.dirname(configPath), `${watch_dir}`) ) : watch_dir ), cwd: cwd2 }; } function normalizeAndValidateMainField(configPath, rawMain) { const configDir = path3__namespace.default.dirname(configPath ?? "wrangler.toml"); if (rawMain !== void 0) { if (typeof rawMain === "string") { const directory = path3__namespace.default.resolve(configDir); return path3__namespace.default.resolve(directory, rawMain); } else { return rawMain; } } else { return; } } function normalizeAndValidateBaseDirField(configPath, rawDir) { const configDir = path3__namespace.default.dirname(configPath ?? "wrangler.toml"); if (rawDir !== void 0) { if (typeof rawDir === "string") { const directory = path3__namespace.default.resolve(configDir); return path3__namespace.default.resolve(directory, rawDir); } else { return rawDir; } } else { return; } } function normalizeAndValidatePagesBuildOutputDir(configPath, rawPagesDir) { const configDir = path3__namespace.default.dirname(configPath ?? "wrangler.toml"); if (rawPagesDir !== void 0) { if (typeof rawPagesDir === "string") { const directory = path3__namespace.default.resolve(configDir); return path3__namespace.default.resolve(directory, rawPagesDir); } else { return rawPagesDir; } } else { return; } } function normalizeAndValidateDev(diagnostics, rawDev, args) { assert50__default.default(typeof args === "object" && args !== null && !Array.isArray(args)); const { localProtocol: localProtocolArg, upstreamProtocol: upstreamProtocolArg, remote: remoteArg, enableContainers: enableContainersArg, generateTypes: generateTypesArg } = args; assert50__default.default( localProtocolArg === void 0 || localProtocolArg === "http" || localProtocolArg === "https" ); assert50__default.default( upstreamProtocolArg === void 0 || upstreamProtocolArg === "http" || upstreamProtocolArg === "https" ); assert50__default.default(remoteArg === void 0 || typeof remoteArg === "boolean"); assert50__default.default( enableContainersArg === void 0 || typeof enableContainersArg === "boolean" ); assert50__default.default( generateTypesArg === void 0 || typeof generateTypesArg === "boolean" ); const { // On Windows, when specifying `localhost` as the socket hostname, `workerd` // will only listen on the IPv4 loopback `127.0.0.1`, not the IPv6 `::1`: // https://github.com/cloudflare/workerd/issues/1408 // On Node 17+, `fetch()` will only try to fetch the IPv6 address. // For now, on Windows, we default to listening on IPv4 only and using // `127.0.0.1` when sending control requests to `workerd` (e.g. with the // `ProxyController`). ip = process.platform === "win32" ? "127.0.0.1" : "localhost", port, inspector_port, inspector_ip, local_protocol = localProtocolArg ?? "http", // In remote mode upstream_protocol must be https, otherwise it defaults to local_protocol. upstream_protocol = upstreamProtocolArg ?? remoteArg ? "https" : local_protocol, host, enable_containers = enableContainersArg ?? true, container_engine, generate_types = generateTypesArg ?? false, ...rest } = rawDev; validateAdditionalProperties(diagnostics, "dev", Object.keys(rest), []); validateOptionalProperty(diagnostics, "dev", "ip", ip, "string"); validateOptionalProperty(diagnostics, "dev", "port", port, "number"); validateOptionalProperty( diagnostics, "dev", "inspector_port", inspector_port, "number" ); validateOptionalProperty( diagnostics, "dev", "inspector_ip", inspector_ip, "string" ); validateOptionalProperty( diagnostics, "dev", "local_protocol", local_protocol, "string", ["http", "https"] ); validateOptionalProperty( diagnostics, "dev", "upstream_protocol", upstream_protocol, "string", ["http", "https"] ); validateOptionalProperty(diagnostics, "dev", "host", host, "string"); validateOptionalProperty( diagnostics, "dev", "enable_containers", enable_containers, "boolean" ); validateOptionalProperty( diagnostics, "dev", "container_engine", container_engine, "string" ); validateOptionalProperty( diagnostics, "dev", "generate_types", generate_types, "boolean" ); return { ip, port, inspector_port, inspector_ip, local_protocol, upstream_protocol, host, enable_containers, container_engine, generate_types }; } function normalizeAndValidateAssets(diagnostics, topLevelEnv, rawEnv) { return inheritable( diagnostics, topLevelEnv, rawEnv, "assets", validateAssetsConfig, void 0 ); } function normalizeAndValidateSite(diagnostics, configPath, rawConfig, mainEntryPoint) { if (rawConfig?.site !== void 0) { const { bucket, include = [], exclude = [], ...rest } = rawConfig.site; validateAdditionalProperties(diagnostics, "site", Object.keys(rest), [ "entry-point" ]); validateRequiredProperty(diagnostics, "site", "bucket", bucket, "string"); validateTypedArray(diagnostics, "sites.include", include, "string"); validateTypedArray(diagnostics, "sites.exclude", exclude, "string"); validateOptionalProperty( diagnostics, "site", "entry-point", rawConfig.site["entry-point"], "string" ); deprecated( diagnostics, rawConfig, `site.entry-point`, `Delete the \`site.entry-point\` field, then add the top level \`main\` field to your configuration file: \`\`\` main = "${path3__namespace.default.join( String(rawConfig.site["entry-point"]) || "workers-site", path3__namespace.default.extname(String(rawConfig.site["entry-point"]) || "workers-site") ? "" : "index.js" )}" \`\`\``, false, void 0, "warning" ); let siteEntryPoint = rawConfig.site["entry-point"]; if (!mainEntryPoint && !siteEntryPoint) { diagnostics.warnings.push( `Because you've defined a [site] configuration, we're defaulting to "workers-site" for the deprecated \`site.entry-point\`field. Add the top level \`main\` field to your configuration file: \`\`\` main = "workers-site/index.js" \`\`\`` ); siteEntryPoint = "workers-site"; } else if (mainEntryPoint && siteEntryPoint) { diagnostics.errors.push( `Don't define both the \`main\` and \`site.entry-point\` fields in your configuration. They serve the same purpose: to point to the entry-point of your worker. Delete the deprecated \`site.entry-point\` field from your config.` ); } if (configPath && siteEntryPoint) { siteEntryPoint = path3__namespace.default.relative( process.cwd(), path3__namespace.default.join(path3__namespace.default.dirname(configPath), siteEntryPoint) ); } return { bucket, "entry-point": siteEntryPoint, include, exclude }; } return void 0; } function normalizeAndValidateAliases(diagnostics, configPath, rawConfig) { if (rawConfig?.alias === void 0) { return void 0; } if (["string", "boolean", "number"].includes(typeof rawConfig?.alias) || typeof rawConfig?.alias !== "object") { diagnostics.errors.push( `Expected alias to be an object, but got ${typeof rawConfig?.alias}` ); return void 0; } let isValid2 = true; for (const [key, value] of Object.entries(rawConfig?.alias)) { if (typeof value !== "string") { diagnostics.errors.push( `Expected alias["${key}"] to be a string, but got ${typeof value}` ); isValid2 = false; } } if (isValid2) { return rawConfig.alias; } return; } function normalizeAndValidateModulePaths(diagnostics, configPath, field, rawMapping) { if (rawMapping === void 0) { return void 0; } const mapping = {}; for (const [name2, filePath] of Object.entries(rawMapping)) { if (isString(diagnostics, `${field}['${name2}']`, filePath, void 0)) { if (configPath) { mapping[name2] = configPath ? path3__namespace.default.relative( process.cwd(), path3__namespace.default.join(path3__namespace.default.dirname(configPath), filePath) ) : filePath; } } } return mapping; } function isValidRouteValue(item) { if (!item) { return false; } if (typeof item === "string") { return true; } if (typeof item === "object") { if (!hasProperty(item, "pattern") || typeof item.pattern !== "string") { return false; } const otherKeys = Object.keys(item).length - 1; const hasZoneId = hasProperty(item, "zone_id") && typeof item.zone_id === "string"; const hasZoneName = hasProperty(item, "zone_name") && typeof item.zone_name === "string"; const hasCustomDomainFlag = hasProperty(item, "custom_domain") && typeof item.custom_domain === "boolean"; if (otherKeys === 2 && hasCustomDomainFlag && (hasZoneId || hasZoneName)) { return true; } else if (otherKeys === 1 && (hasZoneId || hasZoneName || hasCustomDomainFlag)) { return true; } } return false; } function mutateEmptyStringAccountIDValue(diagnostics, rawEnv) { if (rawEnv.account_id === "") { diagnostics.warnings.push( `The "account_id" field in your configuration is an empty string and will be ignored. Please remove the "account_id" field from your configuration.` ); rawEnv.account_id = void 0; } return rawEnv; } function mutateEmptyStringRouteValue(diagnostics, rawEnv) { if (rawEnv["route"] === "") { diagnostics.warnings.push( `The "route" field in your configuration is an empty string and will be ignored. Please remove the "route" field from your configuration.` ); rawEnv["route"] = void 0; } return rawEnv; } function normalizeAndValidateRoute(diagnostics, topLevelEnv, rawEnv) { return inheritable( diagnostics, topLevelEnv, mutateEmptyStringRouteValue(diagnostics, rawEnv), "route", isRoute, void 0 ); } function validateRoutes(diagnostics, topLevelEnv, rawEnv) { return inheritable( diagnostics, topLevelEnv, rawEnv, "routes", all(isRouteArray, isMutuallyExclusiveWith(rawEnv, "route")), void 0 ); } function normalizeAndValidatePlacement(diagnostics, topLevelEnv, rawEnv) { if (rawEnv.placement) { const placement = rawEnv.placement; const hasHint = "hint" in placement; const hasRegion = "region" in placement; const hasHost = "host" in placement; const hasHostname = "hostname" in placement; const hasTargetedFields = hasRegion || hasHost || hasHostname; if (hasHint && hasTargetedFields) { diagnostics.errors.push( `"placement" cannot have both "hint" (smart format) and "region"/"host"/"hostname" (targeted format) fields` ); return inheritable( diagnostics, topLevelEnv, rawEnv, "placement", () => true, void 0 ); } if (hasHint) { validateRequiredProperty( diagnostics, "placement", "mode", placement.mode, "string", ["off", "smart"] ); const mode = placement.mode; const hint = placement.hint; if (hint !== void 0 && typeof hint !== "string") { diagnostics.errors.push( `"placement.hint" must be a string when "placement.mode" is "${mode}"` ); } if (hint && mode !== "smart") { diagnostics.errors.push( `"placement.hint" can only be set when "placement.mode" is "smart"` ); } } else if (hasTargetedFields) { validateOptionalProperty( diagnostics, "placement", "mode", placement.mode, "string", ["off", "targeted"] ); if (hasRegion) { validateOptionalProperty( diagnostics, "placement", "region", placement.region, "string" ); } if (hasHost) { validateOptionalProperty( diagnostics, "placement", "host", placement.host, "string" ); } if (hasHostname) { validateOptionalProperty( diagnostics, "placement", "hostname", placement.hostname, "string" ); } const fieldsPresent = [hasRegion, hasHost, hasHostname].filter(Boolean); if (fieldsPresent.length > 1) { const presentFields = []; if (hasRegion) { presentFields.push("region"); } if (hasHost) { presentFields.push("host"); } if (hasHostname) { presentFields.push("hostname"); } diagnostics.errors.push( `"placement" fields ${presentFields.map((f8) => `"${f8}"`).join(", ")} are mutually exclusive. Only one can be specified.` ); } } else { validateRequiredProperty( diagnostics, "placement", "mode", placement.mode, "string", ["off", "smart", "targeted"] ); } } return inheritable( diagnostics, topLevelEnv, rawEnv, "placement", () => true, void 0 ); } function validateTailConsumer(diagnostics, field, value) { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" should be an object but got ${JSON.stringify(value)}.` ); return false; } let isValid2 = true; isValid2 = isValid2 && validateRequiredProperty( diagnostics, field, "service", value.service, "string" ); isValid2 = isValid2 && validateOptionalProperty( diagnostics, field, "environment", value.environment, "string" ); return isValid2; } function validateStreamingTailConsumer(diagnostics, field, value) { if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `"${field}" should be an object but got ${JSON.stringify(value)}.` ); return false; } return validateRequiredProperty( diagnostics, field, "service", value.service, "string" ); } function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDispatchNamespace, preserveOriginalMain, envName = "top level", topLevelEnv, useServiceEnvironments2, rawConfig) { deprecated( diagnostics, rawEnv, // @ts-expect-error Removed from the config type "node_compat", `The "node_compat" field is no longer supported as of Wrangler v4. Instead, use the \`nodejs_compat\` compatibility flag. This includes the functionality from legacy \`node_compat\` polyfills and natively implemented Node.js APIs. See https://developers.cloudflare.com/workers/runtime-apis/nodejs for more information.`, true, "Removed", "error" ); experimental(diagnostics, rawEnv, "unsafe"); experimental(diagnostics, rawEnv, "secrets"); const route = normalizeAndValidateRoute(diagnostics, topLevelEnv, rawEnv); const account_id = inheritableInWranglerEnvironments( diagnostics, useServiceEnvironments2, topLevelEnv, mutateEmptyStringAccountIDValue(diagnostics, rawEnv), "account_id", isString, void 0, void 0 ); const routes = validateRoutes(diagnostics, topLevelEnv, rawEnv); const workers_dev = inheritable( diagnostics, topLevelEnv, rawEnv, "workers_dev", isBoolean, void 0 ); const preview_urls = inheritable( diagnostics, topLevelEnv, rawEnv, "preview_urls", isBoolean, void 0 ); const build5 = normalizeAndValidateBuild( diagnostics, rawEnv, rawEnv.build ?? topLevelEnv?.build ?? {}, configPath ); const environment = { // Inherited fields account_id, compatibility_date: inheritable( diagnostics, topLevelEnv, rawEnv, "compatibility_date", validateCompatibilityDate, void 0 ), compatibility_flags: inheritable( diagnostics, topLevelEnv, rawEnv, "compatibility_flags", isStringArray, [] ), jsx_factory: inheritable( diagnostics, topLevelEnv, rawEnv, "jsx_factory", isString, "React.createElement" ), jsx_fragment: inheritable( diagnostics, topLevelEnv, rawEnv, "jsx_fragment", isString, "React.Fragment" ), tsconfig: validateAndNormalizeTsconfig( diagnostics, topLevelEnv, rawEnv, configPath ), rules: validateAndNormalizeRules(diagnostics, topLevelEnv, rawEnv, envName), name: inheritableInWranglerEnvironments( diagnostics, useServiceEnvironments2, topLevelEnv, rawEnv, "name", isDispatchNamespace ? isString : isValidName, appendEnvName(envName), void 0 ), main: preserveOriginalMain ? inheritable( diagnostics, topLevelEnv, rawEnv, "main", isString, void 0 ) : normalizeAndValidateMainField( configPath, inheritable( diagnostics, topLevelEnv, rawEnv, "main", isString, void 0 ) ), find_additional_modules: inheritable( diagnostics, topLevelEnv, rawEnv, "find_additional_modules", isBoolean, void 0 ), preserve_file_names: inheritable( diagnostics, topLevelEnv, rawEnv, "preserve_file_names", isBoolean, void 0 ), base_dir: normalizeAndValidateBaseDirField( configPath, inheritable( diagnostics, topLevelEnv, rawEnv, "base_dir", isString, void 0 ) ), route, routes, triggers: inheritable( diagnostics, topLevelEnv, rawEnv, "triggers", validateTriggers, { crons: void 0 } ), assets: normalizeAndValidateAssets(diagnostics, topLevelEnv, rawEnv), limits: normalizeAndValidateLimits(diagnostics, topLevelEnv, rawEnv), placement: normalizeAndValidatePlacement(diagnostics, topLevelEnv, rawEnv), build: build5, workers_dev, preview_urls, // Not inherited fields vars: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "vars", validateVars(envName), {} ), secrets: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "secrets", validateSecrets(envName), void 0 ), define: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "define", validateDefines(envName), {} ), durable_objects: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "durable_objects", validateBindingsProperty(envName, validateDurableObjectBinding), { bindings: [] } ), workflows: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "workflows", all( validateBindingArray(envName, validateWorkflowBinding), validateUniqueNameProperty ), [] ), migrations: inheritable( diagnostics, topLevelEnv, rawEnv, "migrations", validateMigrations, [] ), kv_namespaces: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "kv_namespaces", validateBindingArray(envName, validateKVBinding), [] ), cloudchamber: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "cloudchamber", validateCloudchamberConfig, {} ), containers: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "containers", validateContainerApp(envName, rawEnv.name, configPath), void 0 ), send_email: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "send_email", validateBindingArray(envName, validateSendEmailBinding), [] ), queues: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "queues", validateQueues(envName), { producers: [], consumers: [] } ), r2_buckets: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "r2_buckets", validateBindingArray(envName, validateR2Binding), [] ), d1_databases: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "d1_databases", validateBindingArray(envName, validateD1Binding), [] ), vectorize: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "vectorize", validateBindingArray(envName, validateVectorizeBinding), [] ), hyperdrive: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "hyperdrive", validateBindingArray(envName, validateHyperdriveBinding), [] ), services: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "services", validateBindingArray(envName, validateServiceBinding), [] ), analytics_engine_datasets: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "analytics_engine_datasets", validateBindingArray(envName, validateAnalyticsEngineBinding), [] ), dispatch_namespaces: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "dispatch_namespaces", validateBindingArray(envName, validateWorkerNamespaceBinding), [] ), mtls_certificates: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "mtls_certificates", validateBindingArray(envName, validateMTlsCertificateBinding), [] ), tail_consumers: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "tail_consumers", validateTailConsumers, void 0 ), streaming_tail_consumers: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "streaming_tail_consumers", validateStreamingTailConsumers, void 0 ), unsafe: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "unsafe", validateUnsafeSettings(envName), {} ), browser: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "browser", validateNamedSimpleBinding(envName), void 0 ), ai: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "ai", validateAIBinding(envName), void 0 ), images: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "images", validateNamedSimpleBinding(envName), void 0 ), media: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "media", validateNamedSimpleBinding(envName), void 0 ), pipelines: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "pipelines", validateBindingArray(envName, validatePipelineBinding), [] ), secrets_store_secrets: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "secrets_store_secrets", validateBindingArray(envName, validateSecretsStoreSecretBinding), [] ), unsafe_hello_world: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "unsafe_hello_world", validateBindingArray(envName, validateHelloWorldBinding), [] ), worker_loaders: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "worker_loaders", validateBindingArray(envName, validateWorkerLoaderBinding), [] ), ratelimits: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "ratelimits", validateBindingArray(envName, validateRateLimitBinding), [] ), vpc_services: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "vpc_services", validateBindingArray(envName, validateVpcServiceBinding), [] ), version_metadata: notInheritable( diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "version_metadata", validateVersionMetadataBinding(envName), void 0 ), logfwdr: inheritable( diagnostics, topLevelEnv, rawEnv, "logfwdr", validateCflogfwdrObject(envName), { bindings: [] } ), no_bundle: inheritable( diagnostics, topLevelEnv, rawEnv, "no_bundle", isBoolean, void 0 ), minify: inheritable( diagnostics, topLevelEnv, rawEnv, "minify", isBoolean, void 0 ), keep_names: inheritable( diagnostics, topLevelEnv, rawEnv, "keep_names", isBoolean, void 0 ), first_party_worker: inheritable( diagnostics, topLevelEnv, rawEnv, "first_party_worker", isBoolean, void 0 ), logpush: inheritable( diagnostics, topLevelEnv, rawEnv, "logpush", isBoolean, void 0 ), upload_source_maps: inheritable( diagnostics, topLevelEnv, rawEnv, "upload_source_maps", isBoolean, void 0 ), observability: inheritable( diagnostics, topLevelEnv, rawEnv, "observability", validateObservability, void 0 ), cache: inheritable( diagnostics, topLevelEnv, rawEnv, "cache", validateCache, void 0 ), compliance_region: inheritable( diagnostics, topLevelEnv, rawEnv, "compliance_region", isOneOf("public", "fedramp_high"), void 0 ), python_modules: inheritable( diagnostics, topLevelEnv, rawEnv, "python_modules", validatePythonModules, { exclude: ["**/*.pyc"] } ) }; warnIfDurableObjectsHaveNoMigrations( diagnostics, environment.durable_objects, environment.migrations, configPath ); if (envName !== "top level") { validateAdditionalProperties( diagnostics, "env." + envName, Object.keys(rawEnv), Object.keys(environment) ); } return environment; } function validateAndNormalizeTsconfig(diagnostics, topLevelEnv, rawEnv, configPath) { const tsconfig = inheritable( diagnostics, topLevelEnv, rawEnv, "tsconfig", isString, void 0 ); return configPath && tsconfig ? path3__namespace.default.relative( process.cwd(), path3__namespace.default.join(path3__namespace.default.dirname(configPath), tsconfig) ) : tsconfig; } function validateContainerApp(envName, topLevelName, configPath) { return (diagnostics, field, value, config) => { if (!value) { return true; } if (!Array.isArray(value)) { diagnostics.errors.push( `"containers" field should be an array, but got ${JSON.stringify(value)}` ); return false; } for (const containerAppOptional of value) { if (!isOptionalProperty(value, "name", "string")) { diagnostics.errors.push( `Field "name", when present, should be a string, but got ${JSON.stringify(value)}` ); } validateRequiredProperty( diagnostics, field, "class_name", containerAppOptional.class_name, "string" ); validateOptionalProperty( diagnostics, field, "name", containerAppOptional.name, "string" ); if (!containerAppOptional.name) { if (!topLevelName || !isOptionalProperty(containerAppOptional, "class_name", "string")) { diagnostics.errors.push( `Must have either a top level "name" and "containers.class_name" field defined, or have field "containers.name" defined.` ); } let name2 = `${topLevelName}-${containerAppOptional.class_name}`; name2 += config === void 0 ? "" : `-${envName}`; containerAppOptional.name = name2.toLowerCase().replace(/ /g, "-"); } if (!containerAppOptional.configuration?.image && !containerAppOptional.image) { diagnostics.errors.push( `"containers.image" field must be defined for each container app. This should be the path to your Dockerfile or an image URI pointing to the Cloudflare registry.` ); } if ("configuration" in containerAppOptional) { diagnostics.warnings.push( `"containers.configuration" is deprecated. Use top level "containers" fields instead. "configuration.image" should be "image", limits should be set via "instance_type".` ); if (typeof containerAppOptional.configuration !== "object" || Array.isArray(containerAppOptional.configuration)) { diagnostics.errors.push( `"containers.configuration" should be an object` ); } if (containerAppOptional.instance_type && (containerAppOptional.configuration.disk !== void 0 || containerAppOptional.configuration.vcpu !== void 0 || containerAppOptional.configuration.memory_mib !== void 0)) { diagnostics.errors.push( `Cannot set custom limits via "containers.configuration" and use preset "instance_type" limits at the same time.` ); } } validateOptionalProperty( diagnostics, field, "image_build_context", containerAppOptional.image_build_context, "string" ); let resolvedImage = containerAppOptional.image ?? containerAppOptional.configuration?.image; let resolvedBuildContextPath = void 0; try { if (isDockerfile(resolvedImage, configPath)) { const baseDir = configPath ? path3__namespace.default.dirname(configPath) : process.cwd(); resolvedImage = path3__namespace.default.resolve(baseDir, resolvedImage); resolvedBuildContextPath = containerAppOptional.image_build_context ? path3__namespace.default.resolve(baseDir, containerAppOptional.image_build_context) : path3__namespace.default.dirname(resolvedImage); } } catch (err) { if (err instanceof Error && err.message) { diagnostics.errors.push(err.message); } else { throw err; } } containerAppOptional.image = resolvedImage; containerAppOptional.image_build_context = resolvedBuildContextPath; if (containerAppOptional.rollout_step_percentage !== void 0) { const rolloutStep = containerAppOptional.rollout_step_percentage; if (typeof rolloutStep === "number") { const allowedSingleValues = [5, 10, 20, 25, 50, 100]; if (!allowedSingleValues.includes(rolloutStep)) { diagnostics.errors.push( `"containers.rollout_step_percentage" must be one of [5, 10, 20, 25, 50, 100], but got ${rolloutStep}` ); } } else if (Array.isArray(rolloutStep)) { const nonNumber = []; const outOfRange = []; let index = 0; let ascending = true; for (const step of rolloutStep) { if (typeof step !== "number") { nonNumber.push(step); } else { if (step < 10 || step > 100) { outOfRange.push(step); } if (ascending && index > 0 && step < rolloutStep[index - 1]) { diagnostics.errors.push( `"containers.rollout_step_percentage" array elements must be in ascending order, but got "${rolloutStep}"` ); ascending = false; } if (index === rolloutStep.length - 1 && step !== 100) { diagnostics.errors.push( `The final step in "containers.rollout_step_percentage" must be 100, but got "${step}"` ); } index++; } } if (nonNumber.length) { diagnostics.errors.push( `"containers.rollout_step_percentage" array elements must be numbers, but got "${nonNumber.join(", ")}"` ); } if (outOfRange.length) { diagnostics.errors.push( `"containers.rollout_step_percentage" array elements must be between 10 and 100, but got "${outOfRange.join(", ")}"` ); } } else { diagnostics.errors.push( `"containers.rollout_step_percentage" must be a number or array of numbers, but got "${rolloutStep}"` ); } } validateOptionalProperty( diagnostics, field, "rollout_kind", containerAppOptional.rollout_kind, "string", ["full_auto", "full_manual", "none"] ); if (!isOptionalProperty( containerAppOptional, "rollout_active_grace_period", "number" ) || containerAppOptional.rollout_active_grace_period < 0) { diagnostics.errors.push( `"containers.rollout_active_grace_period" field should be a positive number but got "${containerAppOptional.rollout_active_grace_period}"` ); } validateOptionalProperty( diagnostics, field, "max_instances", containerAppOptional.max_instances, "number" ); if (containerAppOptional.max_instances !== void 0 && containerAppOptional.max_instances < 0) { diagnostics.errors.push( `"containers.max_instances" field should be a positive number, but got ${containerAppOptional.max_instances}` ); } if (containerAppOptional.rollout_step_percentage !== void 0 && containerAppOptional.max_instances !== void 0 && Array.isArray(containerAppOptional.rollout_step_percentage)) { const rolloutStepsCount = containerAppOptional.rollout_step_percentage.length; if (rolloutStepsCount > containerAppOptional.max_instances) { diagnostics.errors.push( `"containers.rollout_step_percentage" cannot have more steps (${rolloutStepsCount}) than "max_instances" (${containerAppOptional.max_instances})` ); } } validateOptionalProperty( diagnostics, field, "image_vars", containerAppOptional.image_vars, "object" ); validateOptionalProperty( diagnostics, field, "scheduling_policy", containerAppOptional.scheduling_policy, "string", ["regional", "moon", "default"] ); if ("instances" in containerAppOptional) { diagnostics.warnings.push( `"containers.instances" is deprecated. Use "containers.max_instances" instead.` ); } if ("durable_objects" in containerAppOptional) { diagnostics.warnings.push( `"containers.durable_objects" is deprecated. Use the "class_name" field instead.` ); } if ("unsafe" in containerAppOptional) { if (containerAppOptional.unsafe && typeof containerAppOptional.unsafe !== "object" || Array.isArray(containerAppOptional.unsafe)) { diagnostics.errors.push( `The field "containers.unsafe" should be an object but got ${JSON.stringify( typeof containerAppOptional.unsafe )}.` ); } } validateAdditionalProperties( diagnostics, field, Object.keys(containerAppOptional), [ "name", "instances", "max_instances", "image", "image_build_context", "image_vars", "class_name", "scheduling_policy", "instance_type", "wrangler_ssh", "authorized_keys", "trusted_user_ca_keys", "configuration", "constraints", "affinities", "rollout_step_percentage", "rollout_kind", "durable_objects", "rollout_active_grace_period", "unsafe" ] ); if ("configuration" in containerAppOptional) { validateAdditionalProperties( diagnostics, `${field}.configuration`, Object.keys(containerAppOptional.configuration), ["image", "secrets", "labels", "disk", "vcpu", "memory_mib"] ); } if ("wrangler_ssh" in containerAppOptional) { if (!isRequiredProperty( containerAppOptional.wrangler_ssh, "enabled", "boolean" )) { diagnostics.errors.push( `${field}.wrangler_ssh.enabled must be a boolean` ); } if (!isOptionalProperty( containerAppOptional.wrangler_ssh, "port", "number" ) || containerAppOptional.wrangler_ssh.port < 1 || containerAppOptional.wrangler_ssh.port > 65535) { diagnostics.errors.push( `${field}.wrangler_ssh.port must be a number between 1 and 65535 inclusive` ); } } if ("authorized_keys" in containerAppOptional) { if (!Array.isArray(containerAppOptional.authorized_keys)) { diagnostics.errors.push(`${field}.authorized_keys must be an array`); } else { for (const index in containerAppOptional.authorized_keys) { const fieldPath = `${field}.authorized_keys[${index}]`; const key = containerAppOptional.authorized_keys[index]; if (!isRequiredProperty(key, "name", "string")) { diagnostics.errors.push(`${fieldPath}.name must be a string`); } if (!isRequiredProperty(key, "public_key", "string")) { diagnostics.errors.push( `${fieldPath}.public_key must be a string` ); } if (!key.public_key.toLowerCase().startsWith("ssh-ed25519")) { diagnostics.errors.push( `${fieldPath}.public_key is a unsupported key type. Please provide a ED25519 public key.` ); } } } } if ("trusted_user_ca_keys" in containerAppOptional) { if (!Array.isArray(containerAppOptional.trusted_user_ca_keys)) { diagnostics.errors.push( `${field}.trusted_user_ca_keys must be an array` ); } else { for (const index in containerAppOptional.trusted_user_ca_keys) { const fieldPath = `${field}.trusted_user_ca_keys[${index}]`; const key = containerAppOptional.trusted_user_ca_keys[index]; if (!isOptionalProperty(key, "name", "string")) { diagnostics.errors.push(`${fieldPath}.name must be a string`); } if (!isRequiredProperty(key, "public_key", "string")) { diagnostics.errors.push( `${fieldPath}.public_key must be a string` ); } if (!key.public_key.toLowerCase().startsWith("ssh-ed25519")) { diagnostics.errors.push( `${fieldPath}.public_key is a unsupported key type. Please provide a ED25519 public key.` ); } } } } if (validateOptionalProperty( diagnostics, field, "constraints", containerAppOptional.constraints, "object" ) && containerAppOptional.constraints) { const constraints = containerAppOptional.constraints; if ("tier" in constraints) { diagnostics.warnings.push( `"constraints.tier" has been deprecated in favor of "constraints.tiers". Please update your configuration to use "constraints.tiers" instead.` ); if ("tiers" in constraints) { diagnostics.errors.push( `${field}.constraints.tier and ${field}.constraints.tiers cannot both be set` ); } } validateOptionalTypedArray( diagnostics, `${field}.constraints.tiers`, constraints.tiers, "number" ); } if (typeof containerAppOptional.instance_type === "string") { validateOptionalProperty( diagnostics, field, "instance_type", containerAppOptional.instance_type, "string", ALLOWED_INSTANCE_TYPES ); if (containerAppOptional.instance_type === "dev") { diagnostics.warnings.push( `The "dev" instance_type has been renamed to "lite" and will be removed in a subsequent version. Please update your configuration to use "lite" instead.` ); } if (containerAppOptional.instance_type === "standard") { diagnostics.warnings.push( `The "standard" instance_type has been renamed to "standard-1" and will be removed in a subsequent version. Please update your configuration to use "standard-1" instead.` ); } } else if (validateOptionalProperty( diagnostics, field, "instance_type", containerAppOptional.instance_type, "object" ) && containerAppOptional.instance_type) { const instanceTypeProperties = ["vcpu", "memory_mib", "disk_mb"]; instanceTypeProperties.forEach((key) => { if (!isOptionalProperty( containerAppOptional.instance_type, key, "number" )) { diagnostics.errors.push( `"containers.instance_type.${key}", when present, should be a number.` ); } }); validateAdditionalProperties( diagnostics, `${field}.instance_type`, Object.keys(containerAppOptional.instance_type), instanceTypeProperties ); } } if (diagnostics.errors.length > 0) { return false; } return true; }; } function validateWorkerNamespaceOutbound(diagnostics, field, value) { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" should be an object, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; isValid2 = isValid2 && validateRequiredProperty( diagnostics, field, "service", value.service, "string" ); isValid2 = isValid2 && validateOptionalProperty( diagnostics, field, "environment", value.environment, "string" ); isValid2 = isValid2 && validateOptionalTypedArray( diagnostics, `${field}.parameters`, value.parameters, "string" ); return isValid2; } function validateQueues(envName) { return (diagnostics, field, value, config) => { const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (typeof value !== "object" || Array.isArray(value) || value === null) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}.` ); return false; } let isValid2 = true; if (!validateAdditionalProperties( diagnostics, fieldPath, Object.keys(value), ["consumers", "producers"] )) { isValid2 = false; } if (hasProperty(value, "consumers")) { const consumers = value.consumers; if (!Array.isArray(consumers)) { diagnostics.errors.push( `The field "${fieldPath}.consumers" should be an array but got ${JSON.stringify( consumers )}.` ); isValid2 = false; } for (let i7 = 0; i7 < consumers.length; i7++) { const consumer = consumers[i7]; const consumerPath = `${fieldPath}.consumers[${i7}]`; if (!validateConsumer(diagnostics, consumerPath, consumer, config)) { isValid2 = false; } } } if (hasProperty(value, "producers")) { if (!validateBindingArray(envName, validateQueueBinding)( diagnostics, `${field}.producers`, value.producers, config )) { isValid2 = false; } } return isValid2; }; } function normalizeAndValidateLimits(diagnostics, topLevelEnv, rawEnv) { if (rawEnv.limits) { validateOptionalProperty( diagnostics, "limits", "cpu_ms", rawEnv.limits.cpu_ms, "number" ); validateOptionalProperty( diagnostics, "limits", "subrequests", rawEnv.limits.subrequests, "number" ); } return inheritable( diagnostics, topLevelEnv, rawEnv, "limits", () => true, void 0 ); } function warnIfDurableObjectsHaveNoMigrations(diagnostics, durableObjects, migrations, configPath) { if (Array.isArray(durableObjects.bindings) && durableObjects.bindings.length > 0) { const exportedDurableObjects = (durableObjects.bindings || []).filter( (binding) => !binding.script_name ); if (exportedDurableObjects.length > 0 && migrations.length === 0) { if (!exportedDurableObjects.some( (exportedDurableObject) => typeof exportedDurableObject.class_name !== "string" )) { const durableObjectClassnames = exportedDurableObjects.map( (durable) => durable.class_name ); diagnostics.warnings.push(dedent` In your ${configFileName(configPath)} file, you have configured \`durable_objects\` exported by this Worker (${durableObjectClassnames.join(", ")}), but no \`migrations\` for them. This may not work as expected until you add a \`migrations\` section to your ${configFileName(configPath)} file. Add the following configuration: \`\`\` ${formatConfigSnippet( { migrations: [ { tag: "v1", new_sqlite_classes: durableObjectClassnames } ] }, configPath )} \`\`\` Refer to https://developers.cloudflare.com/durable-objects/reference/durable-objects-migrations/ for more details.`); } } } } function isRemoteValid(targetObject, fieldPath, diagnostics) { if (!isOptionalProperty(targetObject, "remote", "boolean")) { diagnostics.errors.push( `"${fieldPath}" should, optionally, have a boolean "remote" field but got ${JSON.stringify( targetObject )}.` ); return false; } return true; } function isDockerfile(imagePath, configPath) { const baseDir = configPath ? path3__namespace.default.dirname(configPath) : process.cwd(); const maybeDockerfile = path3__namespace.default.resolve(baseDir, imagePath); if (fs23__namespace.default.existsSync(maybeDockerfile)) { if (isDirectory(maybeDockerfile)) { throw new UserError( `${imagePath} is a directory, you should specify a path to the Dockerfile` ); } return true; } const errorPrefix = `The image "${imagePath}" does not appear to be a valid path to a Dockerfile, or a valid image registry path: `; try { new URL(`https://${imagePath}`); } catch (e9) { if (e9 instanceof Error) { throw new UserError(errorPrefix + e9.message); } throw e9; } const imageParts = imagePath.split("/"); if (!imageParts[imageParts.length - 1]?.includes(":")) { throw new UserError( errorPrefix + `If this is an image registry path, it needs to include at least a tag ':' (e.g: docker.io/httpd:1)` ); } if (imagePath.includes("://")) { throw new UserError( errorPrefix + `Image reference should not include the protocol part (e.g: docker.io/httpd:1, not https://docker.io/httpd:1)` ); } return false; } function validatePagesConfig(config, envNames, projectName) { if (!config.pages_build_output_dir) { throw new FatalError(`Attempting to validate Pages configuration file, but "pages_build_output_dir" field was not found. "pages_build_output_dir" is required for Pages projects.`); } const diagnostics = new Diagnostics( `Running configuration file validation for Pages:` ); validateMainField(config, diagnostics); validateProjectName(projectName, diagnostics); validatePagesEnvironmentNames(envNames, diagnostics); validateUnsupportedFields(config, diagnostics); validateDurableObjectBinding2(config, diagnostics); return diagnostics; } function validateMainField(config, diagnostics) { if (config.main !== void 0) { diagnostics.errors.push( `Configuration file cannot contain both both "main" and "pages_build_output_dir" configuration keys. Please use "main" if you are deploying a Worker, or "pages_build_output_dir" if you are deploying a Pages project.` ); } } function validateProjectName(name2, diagnostics) { if (name2 === void 0 || name2.trim() === "") { diagnostics.errors.push( `Missing top-level field "name" in configuration file. Pages requires the name of your project to be configured at the top-level of your Wrangler configuration file. This is because, in Pages, environments target the same project.` ); } } function validatePagesEnvironmentNames(envNames, diagnostics) { if (!envNames?.length) { return; } const unsupportedPagesEnvNames = envNames.filter( (name2) => name2 !== "preview" && name2 !== "production" ); if (unsupportedPagesEnvNames.length > 0) { diagnostics.errors.push( `Configuration file contains the following environment names that are not supported by Pages projects: ${unsupportedPagesEnvNames.map((name2) => `"${name2}"`).join()}. The supported named-environments for Pages are "preview" and "production".` ); } } function validateUnsupportedFields(config, diagnostics) { const unsupportedFields = new Set(Object.keys(config)); for (const field of supportedPagesConfigFields) { if (field === "queues" && config.queues?.consumers?.length) { continue; } unsupportedFields.delete(field); } for (const field of unsupportedFields) { if (config[field] === void 0 || JSON.stringify(config[field]) === JSON.stringify(exports.unstable_defaultWranglerConfig[field])) { unsupportedFields.delete(field); } } if (unsupportedFields.size > 0) { const fields = Array.from(unsupportedFields.keys()); fields.forEach((field) => { if (field === "queues" && config.queues?.consumers?.length) { diagnostics.errors.push( `Configuration file for Pages projects does not support "queues.consumers"` ); } else { diagnostics.errors.push( `Configuration file for Pages projects does not support "${field}"` ); } }); } } function validateDurableObjectBinding2(config, diagnostics) { if (config.durable_objects.bindings.length > 0) { const invalidBindings = config.durable_objects.bindings.filter( (binding) => !isRequiredProperty(binding, "script_name", "string") ); if (invalidBindings.length > 0) { diagnostics.errors.push( `Durable Objects bindings should specify a "script_name". Pages requires Durable Object bindings to specify the name of the Worker where the Durable Object is defined.` ); } } } var require_XDGAppPaths, require_XDG, require_OSPaths, require_node, require_mod_cjs, require_node2, require_mod_cjs2, require_node3, require_mod_cjs3; exports.unstable_defaultWranglerConfig = void 0; exports.experimental_patchConfig = void 0; var getJSONPath, PatchConfigError, MAX_WORKFLOW_NAME_LENGTH, ALLOWED_STRING_ID_PATTERN, ALLOWED_WORKFLOW_INSTANCE_ID_REGEX, ALLOWED_WORKFLOW_NAME_REGEX, mod_esm_exports, import_mod_cjs, mod_esm_default, getC3CommandFromEnv, getWranglerSendMetricsFromEnv, getWranglerSendErrorReportsFromEnv, getCloudflareApiEnvironmentFromEnv, COMPLIANCE_REGION_CONFIG_PUBLIC, COMPLIANCE_REGION_CONFIG_UNKNOWN, getCloudflareComplianceRegionFromEnv, getCloudflareComplianceRegion, getCloudflareApiBaseUrlFromEnv, getCloudflareApiBaseUrl, getSanitizeLogs, getOutputFileDirectoryFromEnv, getOutputFilePathFromEnv, getCIMatchTag, getCIOverrideName, getCIOverrideNetworkModeHost, getCIGeneratePreviewAlias, getWorkersCIBranchName, getBuildConditionsFromEnv, getBuildPlatformFromEnv, getRegistryPath, getD1ExtraLocationChoices, getDockerPath, getSubdomainMixedStateCheckDisabled, getCloudflareLoadDevVarsFromDotEnv, getCloudflareIncludeProcessEnvFromEnv, getTraceHeader, getDisableConfigWatching, getWranglerHideBanner, getCloudflareEnv, getOpenNextDeployFromEnv, getLocalExplorerEnabledFromEnv, getWranglerCacheDirFromEnv, Diagnostics, appendEnvName, isString, isValidName, isValidDateTimeStringFormat, isStringArray, isOneOf, all, isMutuallyExclusiveWith, isBoolean, validateRequiredProperty, validateAtLeastOnePropertyRequired, validateOptionalProperty, validateTypedArray, validateOptionalTypedArray, isRequiredProperty, isOptionalProperty, hasProperty, validateAdditionalProperties, getBindingNames, isBindingList, isNamespaceList, isRecord, validateUniqueNameProperty, bucketFormatMessage, friendlyBindingNames, bindingTypeFriendlyNames, ENGLISH, ALLOWED_INSTANCE_TYPES, isRoute, isRouteArray, validateTailConsumers, validateStreamingTailConsumers, validateAndNormalizeRules, validateTriggers, validateRules, validateRule, validateDefines, validateVars, validateSecrets, validateBindingsProperty, validateUnsafeSettings, validateDurableObjectBinding, workflowNameFormatMessage, validateWorkflowBinding, validateCflogfwdrObject, validateCflogfwdrBinding, validateAssetsConfig, validateNamedSimpleBinding, validateAIBinding, validateVersionMetadataBinding, validateUnsafeBinding, validateBindingArray, validateCloudchamberConfig, validateKVBinding, validateSendEmailBinding, validateQueueBinding, validateR2Binding, validateD1Binding, validateVectorizeBinding, validateHyperdriveBinding, validateVpcServiceBinding, validateBindingsHaveUniqueNames, validateServiceBinding, validateAnalyticsEngineBinding, validateWorkerNamespaceBinding, validateMTlsCertificateBinding, validateConsumer, validateCompatibilityDate, validatePipelineBinding, validateSecretsStoreSecretBinding, validateHelloWorldBinding, validateWorkerLoaderBinding, validateRateLimitBinding, validateMigrations, validateObservability, validateCache, validatePythonModules, supportedPagesConfigFields; var init_dist = __esm({ "../workers-utils/dist/index.mjs"() { init_import_meta_url(); init_chunk_4233U5MA(); init_chunk_NNMRVG4F(); init_chunk_NNMRVG4F(); init_chunk_LDFBMPMW(); init_chunk_LDFBMPMW(); require_XDGAppPaths = __commonJS2({ "../../node_modules/.pnpm/xdg-app-paths@8.3.0/node_modules/xdg-app-paths/dist/cjs/lib/XDGAppPaths.js"(exports) { exports.__esModule = true; exports.Adapt = void 0; function isBoolean22(t12) { return typeOf(t12) === "boolean"; } __name(isBoolean22, "isBoolean2"); __name2(isBoolean22, "isBoolean"); function isObject4(t12) { return typeOf(t12) === "object"; } __name(isObject4, "isObject"); __name2(isObject4, "isObject"); function isString22(t12) { return typeOf(t12) === "string"; } __name(isString22, "isString2"); __name2(isString22, "isString"); function typeOf(t12) { return typeof t12; } __name(typeOf, "typeOf"); __name2(typeOf, "typeOf"); function Adapt(adapter_) { var meta = adapter_.meta, path410 = adapter_.path, xdg = adapter_.xdg; var XDGAppPaths_ = /* @__PURE__ */ function() { function XDGAppPaths_2(options_) { if (options_ === void 0) { options_ = {}; } var _a5, _b2, _c3; function XDGAppPaths(options2) { if (options2 === void 0) { options2 = {}; } return new XDGAppPaths_2(options2); } __name(XDGAppPaths, "XDGAppPaths"); __name2(XDGAppPaths, "XDGAppPaths"); var options = isObject4(options_) ? options_ : { name: options_ }; var suffix = (_a5 = options.suffix) !== null && _a5 !== void 0 ? _a5 : ""; var isolated_ = (_b2 = options.isolated) !== null && _b2 !== void 0 ? _b2 : true; var namePriorityList = [ options.name, meta.pkgMainFilename(), meta.mainFilename() ]; var nameFallback = "$eval"; var name2 = path410.parse(((_c3 = namePriorityList.find(function(e9) { return isString22(e9); })) !== null && _c3 !== void 0 ? _c3 : nameFallback) + suffix).name; XDGAppPaths.$name = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function $name() { return name2; }, "$name"), "$name"); XDGAppPaths.$isolated = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function $isolated() { return isolated_; }, "$isolated"), "$isolated"); function isIsolated(dirOptions) { var _a22; dirOptions = dirOptions !== null && dirOptions !== void 0 ? dirOptions : { isolated: isolated_ }; var isolated = isBoolean22(dirOptions) ? dirOptions : (_a22 = dirOptions.isolated) !== null && _a22 !== void 0 ? _a22 : isolated_; return isolated; } __name(isIsolated, "isIsolated"); __name2(isIsolated, "isIsolated"); function finalPathSegment(dirOptions) { return isIsolated(dirOptions) ? name2 : ""; } __name(finalPathSegment, "finalPathSegment"); __name2(finalPathSegment, "finalPathSegment"); XDGAppPaths.cache = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function cache6(dirOptions) { return path410.join(xdg.cache(), finalPathSegment(dirOptions)); }, "cache"), "cache"); XDGAppPaths.config = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function config(dirOptions) { return path410.join(xdg.config(), finalPathSegment(dirOptions)); }, "config"), "config"); XDGAppPaths.data = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function data(dirOptions) { return path410.join(xdg.data(), finalPathSegment(dirOptions)); }, "data"), "data"); XDGAppPaths.runtime = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function runtime(dirOptions) { return xdg.runtime() ? path410.join(xdg.runtime(), finalPathSegment(dirOptions)) : void 0; }, "runtime"), "runtime"); XDGAppPaths.state = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function state2(dirOptions) { return path410.join(xdg.state(), finalPathSegment(dirOptions)); }, "state"), "state"); XDGAppPaths.configDirs = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function configDirs(dirOptions) { return xdg.configDirs().map(function(s7) { return path410.join(s7, finalPathSegment(dirOptions)); }); }, "configDirs"), "configDirs"); XDGAppPaths.dataDirs = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function dataDirs(dirOptions) { return xdg.dataDirs().map(function(s7) { return path410.join(s7, finalPathSegment(dirOptions)); }); }, "dataDirs"), "dataDirs"); return XDGAppPaths; } __name(XDGAppPaths_2, "XDGAppPaths_2"); __name2(XDGAppPaths_2, "XDGAppPaths_"); return XDGAppPaths_2; }(); return { XDGAppPaths: new XDGAppPaths_() }; } __name(Adapt, "Adapt"); __name2(Adapt, "Adapt"); exports.Adapt = Adapt; } }); require_XDG = __commonJS2({ "../../node_modules/.pnpm/xdg-portable@10.6.0/node_modules/xdg-portable/dist/cjs/lib/XDG.js"(exports) { var __spreadArray2 = exports && exports.__spreadArray || function(to, from) { for (var i7 = 0, il = from.length, j7 = to.length; i7 < il; i7++, j7++) to[j7] = from[i7]; return to; }; exports.__esModule = true; exports.Adapt = void 0; function Adapt(adapter_) { var env6 = adapter_.env, osPaths = adapter_.osPaths, path410 = adapter_.path; var isMacOS = /^darwin$/i.test(adapter_.process.platform); var isWinOS = /^win/i.test(adapter_.process.platform); function baseDir() { return osPaths.home() || osPaths.temp(); } __name(baseDir, "baseDir"); __name2(baseDir, "baseDir"); function valOrPath(val2, pathSegments) { return val2 || path410.join.apply(path410, pathSegments); } __name(valOrPath, "valOrPath"); __name2(valOrPath, "valOrPath"); var linux = /* @__PURE__ */ __name2(function() { var cache6 = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_CACHE_HOME"), [baseDir(), ".cache"]); }, "cache"); var config = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_CONFIG_HOME"), [baseDir(), ".config"]); }, "config"); var data = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_DATA_HOME"), [baseDir(), ".local", "share"]); }, "data"); var runtime = /* @__PURE__ */ __name2(function() { return env6.get("XDG_RUNTIME_DIR") || void 0; }, "runtime"); var state2 = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_STATE_HOME"), [baseDir(), ".local", "state"]); }, "state"); return { cache: cache6, config, data, runtime, state: state2 }; }, "linux"); var macos = /* @__PURE__ */ __name2(function() { var cache6 = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_CACHE_HOME"), [baseDir(), "Library", "Caches"]); }, "cache"); var config = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_CONFIG_HOME"), [baseDir(), "Library", "Preferences"]); }, "config"); var data = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_DATA_HOME"), [baseDir(), "Library", "Application Support"]); }, "data"); var runtime = /* @__PURE__ */ __name2(function() { return env6.get("XDG_RUNTIME_DIR") || void 0; }, "runtime"); var state2 = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_STATE_HOME"), [baseDir(), "Library", "State"]); }, "state"); return { cache: cache6, config, data, runtime, state: state2 }; }, "macos"); var windows = /* @__PURE__ */ __name2(function() { function appData() { return valOrPath(env6.get("APPDATA"), [baseDir(), "AppData", "Roaming"]); } __name(appData, "appData"); __name2(appData, "appData"); function localAppData() { return valOrPath(env6.get("LOCALAPPDATA"), [baseDir(), "AppData", "Local"]); } __name(localAppData, "localAppData"); __name2(localAppData, "localAppData"); var cache6 = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_CACHE_HOME"), [localAppData(), "xdg.cache"]); }, "cache"); var config = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_CONFIG_HOME"), [appData(), "xdg.config"]); }, "config"); var data = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_DATA_HOME"), [appData(), "xdg.data"]); }, "data"); var runtime = /* @__PURE__ */ __name2(function() { return env6.get("XDG_RUNTIME_DIR") || void 0; }, "runtime"); var state2 = /* @__PURE__ */ __name2(function() { return valOrPath(env6.get("XDG_STATE_HOME"), [localAppData(), "xdg.state"]); }, "state"); return { cache: cache6, config, data, runtime, state: state2 }; }, "windows"); var XDG_ = /* @__PURE__ */ function() { function XDG_2() { function XDG() { return new XDG_2(); } __name(XDG, "XDG"); __name2(XDG, "XDG"); var extension = isMacOS ? macos() : isWinOS ? windows() : linux(); XDG.cache = extension.cache; XDG.config = extension.config; XDG.data = extension.data; XDG.runtime = extension.runtime; XDG.state = extension.state; XDG.configDirs = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function configDirs() { var pathList = env6.get("XDG_CONFIG_DIRS"); return __spreadArray2([extension.config()], pathList ? pathList.split(path410.delimiter) : []); }, "configDirs"), "configDirs"); XDG.dataDirs = /* @__PURE__ */ __name2(/* @__PURE__ */ __name(function dataDirs() { var pathList = env6.get("XDG_DATA_DIRS"); return __spreadArray2([extension.data()], pathList ? pathList.split(path410.delimiter) : []); }, "dataDirs"), "dataDirs"); return XDG; } __name(XDG_2, "XDG_2"); __name2(XDG_2, "XDG_"); return XDG_2; }(); return { XDG: new XDG_() }; } __name(Adapt, "Adapt"); __name2(Adapt, "Adapt"); exports.Adapt = Adapt; } }); require_OSPaths = __commonJS2({ "../../node_modules/.pnpm/os-paths@7.4.0/node_modules/os-paths/dist/cjs/lib/OSPaths.js"(exports) { var __spreadArray2 = exports && exports.__spreadArray || function(to, from) { for (var i7 = 0, il = from.length, j7 = to.length; i7 < il; i7++, j7++) to[j7] = from[i7]; return to; }; exports.__esModule = true; exports.Adapt = void 0; function isEmpty(s7) { return !s7; } __name(isEmpty, "isEmpty"); __name2(isEmpty, "isEmpty"); function Adapt(adapter_) { var env6 = adapter_.env, os22 = adapter_.os, path410 = adapter_.path; var isWinOS = /^win/i.test(adapter_.process.platform); function normalizePath2(path_) { return path_ ? adapter_.path.normalize(adapter_.path.join(path_, ".")) : void 0; } __name(normalizePath2, "normalizePath"); __name2(normalizePath2, "normalizePath"); function home() { var posix2 = /* @__PURE__ */ __name2(function() { return normalizePath2((typeof os22.homedir === "function" ? os22.homedir() : void 0) || env6.get("HOME")); }, "posix"); var windows = /* @__PURE__ */ __name2(function() { var priorityList = [ typeof os22.homedir === "function" ? os22.homedir() : void 0, env6.get("USERPROFILE"), env6.get("HOME"), env6.get("HOMEDRIVE") || env6.get("HOMEPATH") ? path410.join(env6.get("HOMEDRIVE") || "", env6.get("HOMEPATH") || "") : void 0 ]; return normalizePath2(priorityList.find(function(v8) { return !isEmpty(v8); })); }, "windows"); return isWinOS ? windows() : posix2(); } __name(home, "home"); __name2(home, "home"); function temp() { function joinPathToBase(base, segments) { return base ? path410.join.apply(path410, __spreadArray2([base], segments)) : void 0; } __name(joinPathToBase, "joinPathToBase"); __name2(joinPathToBase, "joinPathToBase"); function posix2() { var fallback = "/tmp"; var priorityList = [ typeof os22.tmpdir === "function" ? os22.tmpdir() : void 0, env6.get("TMPDIR"), env6.get("TEMP"), env6.get("TMP") ]; return normalizePath2(priorityList.find(function(v8) { return !isEmpty(v8); })) || fallback; } __name(posix2, "posix"); __name2(posix2, "posix"); function windows() { var fallback = "C:\\Temp"; var priorityListLazy = [ typeof os22.tmpdir === "function" ? os22.tmpdir : function() { return void 0; }, function() { return env6.get("TEMP"); }, function() { return env6.get("TMP"); }, function() { return joinPathToBase(env6.get("LOCALAPPDATA"), ["Temp"]); }, function() { return joinPathToBase(home(), ["AppData", "Local", "Temp"]); }, function() { return joinPathToBase(env6.get("ALLUSERSPROFILE"), ["Temp"]); }, function() { return joinPathToBase(env6.get("SystemRoot"), ["Temp"]); }, function() { return joinPathToBase(env6.get("windir"), ["Temp"]); }, function() { return joinPathToBase(env6.get("SystemDrive"), ["\\", "Temp"]); } ]; var v8 = priorityListLazy.find(function(v22) { return v22 && !isEmpty(v22()); }); return v8 && normalizePath2(v8()) || fallback; } __name(windows, "windows"); __name2(windows, "windows"); return isWinOS ? windows() : posix2(); } __name(temp, "temp"); __name2(temp, "temp"); var OSPaths_ = /* @__PURE__ */ function() { function OSPaths_2() { function OSPaths() { return new OSPaths_2(); } __name(OSPaths, "OSPaths"); __name2(OSPaths, "OSPaths"); OSPaths.home = home; OSPaths.temp = temp; return OSPaths; } __name(OSPaths_2, "OSPaths_2"); __name2(OSPaths_2, "OSPaths_"); return OSPaths_2; }(); return { OSPaths: new OSPaths_() }; } __name(Adapt, "Adapt"); __name2(Adapt, "Adapt"); exports.Adapt = Adapt; } }); require_node = __commonJS2({ "../../node_modules/.pnpm/os-paths@7.4.0/node_modules/os-paths/dist/cjs/platform-adapters/node.js"(exports) { var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o7, m7, k7, k22) { if (k22 === void 0) k22 = k7; Object.defineProperty(o7, k22, { enumerable: true, get: /* @__PURE__ */ __name2(function() { return m7[k7]; }, "get") }); } : function(o7, m7, k7, k22) { if (k22 === void 0) k22 = k7; o7[k22] = m7[k7]; }); var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o7, v8) { Object.defineProperty(o7, "default", { enumerable: true, value: v8 }); } : function(o7, v8) { o7["default"] = v8; }); var __importStar2 = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding2(result, mod, k7); } __setModuleDefault2(result, mod); return result; }; exports.__esModule = true; exports.adapter = void 0; var os22 = __importStar2(__require2("os")); var path410 = __importStar2(__require2("path")); exports.adapter = { atImportPermissions: { env: true }, env: { get: /* @__PURE__ */ __name2(function(s7) { return process.env[s7]; }, "get") }, os: os22, path: path410, process }; } }); require_mod_cjs = __commonJS2({ "../../node_modules/.pnpm/os-paths@7.4.0/node_modules/os-paths/dist/cjs/mod.cjs.js"(exports, module4) { var OSPaths_js_1 = require_OSPaths(); var node_js_1 = require_node(); module4.exports = OSPaths_js_1.Adapt(node_js_1.adapter).OSPaths; } }); require_node2 = __commonJS2({ "../../node_modules/.pnpm/xdg-portable@10.6.0/node_modules/xdg-portable/dist/cjs/platform-adapters/node.js"(exports) { var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o7, m7, k7, k22) { if (k22 === void 0) k22 = k7; Object.defineProperty(o7, k22, { enumerable: true, get: /* @__PURE__ */ __name2(function() { return m7[k7]; }, "get") }); } : function(o7, m7, k7, k22) { if (k22 === void 0) k22 = k7; o7[k22] = m7[k7]; }); var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o7, v8) { Object.defineProperty(o7, "default", { enumerable: true, value: v8 }); } : function(o7, v8) { o7["default"] = v8; }); var __importStar2 = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding2(result, mod, k7); } __setModuleDefault2(result, mod); return result; }; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; exports.__esModule = true; exports.adapter = void 0; var path410 = __importStar2(__require2("path")); var os_paths_1 = __importDefault2(require_mod_cjs()); exports.adapter = { atImportPermissions: { env: true }, env: { get: /* @__PURE__ */ __name2(function(s7) { return process.env[s7]; }, "get") }, osPaths: os_paths_1["default"], path: path410, process }; } }); require_mod_cjs2 = __commonJS2({ "../../node_modules/.pnpm/xdg-portable@10.6.0/node_modules/xdg-portable/dist/cjs/mod.cjs.js"(exports, module4) { var XDG_js_1 = require_XDG(); var node_js_1 = require_node2(); module4.exports = XDG_js_1.Adapt(node_js_1.adapter).XDG; } }); require_node3 = __commonJS2({ "../../node_modules/.pnpm/xdg-app-paths@8.3.0/node_modules/xdg-app-paths/dist/cjs/platform-adapters/node.js"(exports) { var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o7, m7, k7, k22) { if (k22 === void 0) k22 = k7; Object.defineProperty(o7, k22, { enumerable: true, get: /* @__PURE__ */ __name2(function() { return m7[k7]; }, "get") }); } : function(o7, m7, k7, k22) { if (k22 === void 0) k22 = k7; o7[k22] = m7[k7]; }); var __setModuleDefault2 = exports && exports.__setModuleDefault || (Object.create ? function(o7, v8) { Object.defineProperty(o7, "default", { enumerable: true, value: v8 }); } : function(o7, v8) { o7["default"] = v8; }); var __importStar2 = exports && exports.__importStar || function(mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) { for (var k7 in mod) if (k7 !== "default" && Object.prototype.hasOwnProperty.call(mod, k7)) __createBinding2(result, mod, k7); } __setModuleDefault2(result, mod); return result; }; var __importDefault2 = exports && exports.__importDefault || function(mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; exports.__esModule = true; exports.adapter = void 0; var path410 = __importStar2(__require2("path")); var xdg_portable_1 = __importDefault2(require_mod_cjs2()); exports.adapter = { atImportPermissions: { env: true, read: true }, meta: { mainFilename: /* @__PURE__ */ __name2(function() { var requireMain = typeof __require2 !== "undefined" && __require2 !== null && __require2.main ? __require2.main : { filename: void 0 }; var requireMainFilename = requireMain.filename; var filename = (requireMainFilename !== process.execArgv[0] ? requireMainFilename : void 0) || (typeof process._eval === "undefined" ? process.argv[1] : void 0); return filename; }, "mainFilename"), pkgMainFilename: /* @__PURE__ */ __name2(function() { return process.pkg ? process.execPath : void 0; }, "pkgMainFilename") }, path: path410, process, xdg: xdg_portable_1["default"] }; } }); require_mod_cjs3 = __commonJS2({ "../../node_modules/.pnpm/xdg-app-paths@8.3.0/node_modules/xdg-app-paths/dist/cjs/mod.cjs.js"(exports, module4) { var XDGAppPaths_js_1 = require_XDGAppPaths(); var node_js_1 = require_node3(); module4.exports = XDGAppPaths_js_1.Adapt(node_js_1.adapter).XDGAppPaths; } }); exports.unstable_defaultWranglerConfig = { /* COMPUTED_FIELDS */ configPath: void 0, userConfigPath: void 0, topLevelName: void 0, definedEnvironments: void 0, targetEnvironment: void 0, /*====================================================*/ /* Fields supported by both Workers & Pages */ /*====================================================*/ /* TOP-LEVEL ONLY FIELDS */ pages_build_output_dir: void 0, send_metrics: void 0, dev: { ip: process.platform === "win32" ? "127.0.0.1" : "localhost", port: void 0, // the default of 8787 is set at runtime inspector_port: void 0, // the default of 9229 is set at runtime inspector_ip: void 0, // the default of 127.0.0.1 is set at runtime local_protocol: "http", upstream_protocol: "http", host: void 0, // Note this one is also workers only enable_containers: true, container_engine: void 0, generate_types: false }, /** INHERITABLE ENVIRONMENT FIELDS **/ name: void 0, compatibility_date: void 0, compatibility_flags: [], limits: void 0, placement: void 0, /** NON-INHERITABLE ENVIRONMENT FIELDS **/ vars: {}, durable_objects: { bindings: [] }, kv_namespaces: [], queues: { producers: [], consumers: [] // WORKERS SUPPORT ONLY!! }, r2_buckets: [], d1_databases: [], vectorize: [], hyperdrive: [], workflows: [], secrets_store_secrets: [], services: [], analytics_engine_datasets: [], ai: void 0, images: void 0, media: void 0, version_metadata: void 0, unsafe_hello_world: [], ratelimits: [], worker_loaders: [], /*====================================================*/ /* Fields supported by Workers only */ /*====================================================*/ /* TOP-LEVEL ONLY FIELDS */ legacy_env: true, site: void 0, wasm_modules: void 0, text_blobs: void 0, data_blobs: void 0, keep_vars: void 0, alias: void 0, /** INHERITABLE ENVIRONMENT FIELDS **/ account_id: void 0, main: void 0, find_additional_modules: void 0, preserve_file_names: void 0, base_dir: void 0, workers_dev: void 0, preview_urls: void 0, route: void 0, routes: void 0, tsconfig: void 0, jsx_factory: "React.createElement", jsx_fragment: "React.Fragment", migrations: [], triggers: { crons: void 0 }, rules: [], build: { command: void 0, watch_dir: "./src", cwd: void 0 }, no_bundle: void 0, minify: void 0, keep_names: void 0, dispatch_namespaces: [], first_party_worker: void 0, logfwdr: { bindings: [] }, logpush: void 0, upload_source_maps: void 0, assets: void 0, observability: { enabled: true }, cache: void 0, /** The default here is undefined so that we can delegate to the CLOUDFLARE_COMPLIANCE_REGION environment variable. */ compliance_region: void 0, python_modules: { exclude: ["**/*.pyc"] }, /** NON-INHERITABLE ENVIRONMENT FIELDS **/ define: {}, cloudchamber: {}, containers: void 0, send_email: [], browser: void 0, unsafe: {}, mtls_certificates: [], tail_consumers: void 0, streaming_tail_consumers: void 0, pipelines: [], vpc_services: [] }; exports.experimental_patchConfig = /* @__PURE__ */ __name2((configPath, patch, isArrayInsertion = true) => { let configString = readFileSync(configPath); if (configPath.endsWith("toml")) { if (configString.includes("#")) { throw new PatchConfigError( "cannot patch .toml config if comments are present" ); } else { configString = JSON.stringify(parseTOML(configString)); } } const patchPaths = []; getJSONPath(patch, patchPaths, isArrayInsertion); for (const patchPath of patchPaths) { const value = patchPath.pop(); const edit = modify(configString, patchPath, value, { isArrayInsertion }); configString = applyEdits(configString, edit); } const formatEdit = format2(configString, void 0, {}); configString = applyEdits(configString, formatEdit); if (configPath.endsWith(".toml")) { configString = dist_default.stringify(parseJSONC(configString)); } fs23.writeFileSync(configPath, configString); return configString; }, "experimental_patchConfig"); getJSONPath = /* @__PURE__ */ __name2((obj, allPaths, isArrayInsertion, prevPath = []) => { for (const [k7, v8] of Object.entries(obj)) { const currentPath = [...prevPath, k7]; if (Array.isArray(v8)) { v8.forEach((x7, i7) => { if (isArrayInsertion) { allPaths.push([...currentPath, -1, x7]); } else if (typeof x7 === "object" && x7 !== null) { getJSONPath(x7, allPaths, isArrayInsertion, [...currentPath, i7]); } else { allPaths.push([...currentPath, i7, x7]); } }); } else if (typeof v8 === "object" && v8 !== null) { getJSONPath(v8, allPaths, isArrayInsertion, currentPath); } else { allPaths.push([...currentPath, v8]); } } }, "getJSONPath"); PatchConfigError = class extends Error { static { __name(this, "PatchConfigError"); } static { __name2(this, "PatchConfigError"); } }; MAX_WORKFLOW_NAME_LENGTH = 64; ALLOWED_STRING_ID_PATTERN = "^[a-zA-Z0-9_][a-zA-Z0-9-_]*$"; ALLOWED_WORKFLOW_INSTANCE_ID_REGEX = new RegExp( ALLOWED_STRING_ID_PATTERN ); ALLOWED_WORKFLOW_NAME_REGEX = ALLOWED_WORKFLOW_INSTANCE_ID_REGEX; __name(isValidWorkflowName, "isValidWorkflowName"); __name2(isValidWorkflowName, "isValidWorkflowName"); mod_esm_exports = {}; __export2(mod_esm_exports, { default: /* @__PURE__ */ __name(() => mod_esm_default, "default") }); import_mod_cjs = __toESM2(require_mod_cjs3(), 1); __reExport2(mod_esm_exports, __toESM2(require_mod_cjs3(), 1)); mod_esm_default = import_mod_cjs.default; __name(getGlobalWranglerConfigPath, "getGlobalWranglerConfigPath"); __name2(getGlobalWranglerConfigPath, "getGlobalWranglerConfigPath"); __name(getBooleanEnvironmentVariableFactory, "getBooleanEnvironmentVariableFactory"); __name2(getBooleanEnvironmentVariableFactory, "getBooleanEnvironmentVariableFactory"); __name(getEnvironmentVariableFactory, "getEnvironmentVariableFactory"); __name2(getEnvironmentVariableFactory, "getEnvironmentVariableFactory"); __name(getProcessEnv, "getProcessEnv"); __name2(getProcessEnv, "getProcessEnv"); __name(assertOneOf, "assertOneOf"); __name2(assertOneOf, "assertOneOf"); getC3CommandFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_C3_COMMAND", defaultValue: /* @__PURE__ */ __name2(() => "create cloudflare", "defaultValue") }); getWranglerSendMetricsFromEnv = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_SEND_METRICS" }); getWranglerSendErrorReportsFromEnv = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_SEND_ERROR_REPORTS" }); getCloudflareApiEnvironmentFromEnv = getEnvironmentVariableFactory( { variableName: "WRANGLER_API_ENVIRONMENT", defaultValue: /* @__PURE__ */ __name2(() => "production", "defaultValue"), choices: ["production", "staging"] } ); COMPLIANCE_REGION_CONFIG_PUBLIC = { compliance_region: "public" }; COMPLIANCE_REGION_CONFIG_UNKNOWN = { compliance_region: void 0 }; getCloudflareComplianceRegionFromEnv = getEnvironmentVariableFactory({ variableName: "CLOUDFLARE_COMPLIANCE_REGION", choices: ["public", "fedramp_high"] }); getCloudflareComplianceRegion = /* @__PURE__ */ __name2((complianceConfig) => { const complianceRegionFromEnv = getCloudflareComplianceRegionFromEnv(); if (complianceRegionFromEnv !== void 0 && complianceConfig?.compliance_region !== void 0 && complianceRegionFromEnv !== complianceConfig.compliance_region) { throw new UserError(dedent` The compliance region has been set to different values in two places: - \`CLOUDFLARE_COMPLIANCE_REGION\` environment variable: \`${complianceRegionFromEnv}\` - \`compliance_region\` configuration property: \`${complianceConfig.compliance_region}\` `); } return complianceRegionFromEnv || complianceConfig?.compliance_region || "public"; }, "getCloudflareComplianceRegion"); getCloudflareApiBaseUrlFromEnv = getEnvironmentVariableFactory({ variableName: "CLOUDFLARE_API_BASE_URL", deprecatedName: "CF_API_BASE_URL" }); getCloudflareApiBaseUrl = /* @__PURE__ */ __name2((complianceConfig) => getCloudflareApiBaseUrlFromEnv() ?? `https://api${getComplianceRegionSubdomain(complianceConfig)}${getStagingSubdomain()}.cloudflare.com/client/v4`, "getCloudflareApiBaseUrl"); __name(getComplianceRegionSubdomain, "getComplianceRegionSubdomain"); __name2(getComplianceRegionSubdomain, "getComplianceRegionSubdomain"); __name(getStagingSubdomain, "getStagingSubdomain"); __name2(getStagingSubdomain, "getStagingSubdomain"); getSanitizeLogs = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_LOG_SANITIZE", defaultValue: true }); getOutputFileDirectoryFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_OUTPUT_FILE_DIRECTORY" }); getOutputFilePathFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_OUTPUT_FILE_PATH" }); getCIMatchTag = getEnvironmentVariableFactory({ variableName: "WRANGLER_CI_MATCH_TAG" }); getCIOverrideName = getEnvironmentVariableFactory({ variableName: "WRANGLER_CI_OVERRIDE_NAME" }); getCIOverrideNetworkModeHost = getEnvironmentVariableFactory({ variableName: "WRANGLER_CI_OVERRIDE_NETWORK_MODE_HOST" }); getCIGeneratePreviewAlias = getEnvironmentVariableFactory({ variableName: "WRANGLER_CI_GENERATE_PREVIEW_ALIAS", defaultValue: /* @__PURE__ */ __name2(() => "false", "defaultValue"), choices: ["true", "false"] }); getWorkersCIBranchName = getEnvironmentVariableFactory({ variableName: "WORKERS_CI_BRANCH" }); getBuildConditionsFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_BUILD_CONDITIONS" }); getBuildPlatformFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_BUILD_PLATFORM" }); getRegistryPath = getEnvironmentVariableFactory({ variableName: "WRANGLER_REGISTRY_PATH", defaultValue() { return path3__namespace.default.join(getGlobalWranglerConfigPath(), "registry"); } }); getD1ExtraLocationChoices = getEnvironmentVariableFactory({ variableName: "WRANGLER_D1_EXTRA_LOCATION_CHOICES" }); getDockerPath = getEnvironmentVariableFactory({ variableName: "WRANGLER_DOCKER_BIN", defaultValue() { return "docker"; } }); getSubdomainMixedStateCheckDisabled = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_DISABLE_SUBDOMAIN_MIXED_STATE_CHECK", defaultValue: false }); getCloudflareLoadDevVarsFromDotEnv = getBooleanEnvironmentVariableFactory({ variableName: "CLOUDFLARE_LOAD_DEV_VARS_FROM_DOT_ENV", defaultValue: true }); getCloudflareIncludeProcessEnvFromEnv = getBooleanEnvironmentVariableFactory({ variableName: "CLOUDFLARE_INCLUDE_PROCESS_ENV", defaultValue: false }); getTraceHeader = getEnvironmentVariableFactory({ variableName: "WRANGLER_TRACE_ID" }); getDisableConfigWatching = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_CI_DISABLE_CONFIG_WATCHING", defaultValue: false }); getWranglerHideBanner = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_HIDE_BANNER", defaultValue: false }); getCloudflareEnv = getEnvironmentVariableFactory({ variableName: "CLOUDFLARE_ENV" }); getOpenNextDeployFromEnv = getEnvironmentVariableFactory({ variableName: "OPEN_NEXT_DEPLOY" }); getLocalExplorerEnabledFromEnv = getBooleanEnvironmentVariableFactory({ variableName: "X_LOCAL_EXPLORER", defaultValue: false }); getWranglerCacheDirFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_CACHE_DIR" }); Diagnostics = class { static { __name(this, "Diagnostics"); } /** * Create a new Diagnostics object. * @param description A general description of this collection of messages. */ constructor(description) { this.description = description; } static { __name2(this, "Diagnostics"); } errors = []; warnings = []; children = []; /** * Merge the given `diagnostics` into this as a child. */ addChild(diagnostics) { if (diagnostics.hasErrors() || diagnostics.hasWarnings()) { this.children.push(diagnostics); } } /** Does this or any of its children have errors. */ hasErrors() { if (this.errors.length > 0) { return true; } else { return this.children.some((child) => child.hasErrors()); } } /** Render the errors of this and all its children. */ renderErrors() { return this.render("errors"); } /** Does this or any of its children have warnings. */ hasWarnings() { if (this.warnings.length > 0) { return true; } else { return this.children.some((child) => child.hasWarnings()); } } /** Render the warnings of this and all its children. */ renderWarnings() { return this.render("warnings"); } render(field) { const hasMethod = field === "errors" ? "hasErrors" : "hasWarnings"; return indentText( `${this.description} ` + // Output all the fields (errors or warnings) at this level this[field].map((message) => `- ${indentText(message)}`).join("\n") + // Output all the child diagnostics at the next level this.children.map( (child) => child[hasMethod]() ? "\n- " + child.render(field) : "" ).filter((output) => output !== "").join("\n") ); } }; __name(indentText, "indentText"); __name2(indentText, "indentText"); __name(deprecated, "deprecated"); __name2(deprecated, "deprecated"); __name(experimental, "experimental"); __name2(experimental, "experimental"); __name(inheritable, "inheritable"); __name2(inheritable, "inheritable"); __name(inheritableInWranglerEnvironments, "inheritableInWranglerEnvironments"); __name2(inheritableInWranglerEnvironments, "inheritableInWranglerEnvironments"); appendEnvName = /* @__PURE__ */ __name2((envName) => (fieldValue) => fieldValue ? `${fieldValue}-${envName}` : void 0, "appendEnvName"); __name(notAllowedInNamedServiceEnvironment, "notAllowedInNamedServiceEnvironment"); __name2(notAllowedInNamedServiceEnvironment, "notAllowedInNamedServiceEnvironment"); __name(notInheritable, "notInheritable"); __name2(notInheritable, "notInheritable"); __name(unwindPropertyPath, "unwindPropertyPath"); __name2(unwindPropertyPath, "unwindPropertyPath"); isString = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value !== void 0 && typeof value !== "string") { diagnostics.errors.push( `Expected "${field}" to be of type string but got ${JSON.stringify( value )}.` ); return false; } return true; }, "isString"); isValidName = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value === "string" && /^$|^[a-z0-9_][a-z0-9-_]*$/.test(value) || value === void 0) { return true; } else { diagnostics.errors.push( `Expected "${field}" to be of type string, alphanumeric and lowercase with dashes only but got ${JSON.stringify( value )}.` ); return false; } }, "isValidName"); isValidDateTimeStringFormat = /* @__PURE__ */ __name2((diagnostics, field, value) => { let isValid2 = true; if (value.includes("\u2013") || // en-dash value.includes("\u2014")) { diagnostics.errors.push( `"${field}" field should use ISO-8601 accepted hyphens (-) rather than en-dashes (\u2013) or em-dashes (\u2014).` ); isValid2 = false; } const data = new Date(value.replaceAll(/–|—/g, "-")); if (isNaN(data.getTime())) { diagnostics.errors.push( `"${field}" field should be a valid ISO-8601 date (YYYY-MM-DD), but got ${JSON.stringify(value)}.` ); isValid2 = false; } return isValid2; }, "isValidDateTimeStringFormat"); isStringArray = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value !== void 0 && (!Array.isArray(value) || value.some((item) => typeof item !== "string"))) { diagnostics.errors.push( `Expected "${field}" to be of type string array but got ${JSON.stringify( value )}.` ); return false; } return true; }, "isStringArray"); isOneOf = /* @__PURE__ */ __name2((...choices) => (diagnostics, field, value) => { if (value !== void 0 && !choices.some((choice) => value === choice)) { diagnostics.errors.push( `Expected "${field}" field to be one of ${JSON.stringify( choices )} but got ${JSON.stringify(value)}.` ); return false; } return true; }, "isOneOf"); all = /* @__PURE__ */ __name2((...validations) => { return (diagnostics, field, value, config) => { let passedValidations = true; for (const validate3 of validations) { if (!validate3(diagnostics, field, value, config)) { passedValidations = false; } } return passedValidations; }; }, "all"); isMutuallyExclusiveWith = /* @__PURE__ */ __name2((container, ...fields) => { return (diagnostics, field, value) => { if (value === void 0) { return true; } for (const exclusiveWith of fields) { if (container[exclusiveWith] !== void 0) { diagnostics.errors.push( `Expected exactly one of the following fields ${JSON.stringify([ field, ...fields ])}.` ); return false; } } return true; }; }, "isMutuallyExclusiveWith"); isBoolean = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value !== void 0 && typeof value !== "boolean") { diagnostics.errors.push( `Expected "${field}" to be of type boolean but got ${JSON.stringify( value )}.` ); return false; } return true; }, "isBoolean"); validateRequiredProperty = /* @__PURE__ */ __name2((diagnostics, container, key, value, type, choices) => { if (container) { container += "."; } if (value === void 0) { diagnostics.errors.push(`"${container}${key}" is a required field.`); return false; } else if (typeof value !== type) { diagnostics.errors.push( `Expected "${container}${key}" to be of type ${type} but got ${JSON.stringify( value )}.` ); return false; } else if (choices) { if (!isOneOf(...choices)(diagnostics, `${container}${key}`, value, void 0)) { return false; } } return true; }, "validateRequiredProperty"); validateAtLeastOnePropertyRequired = /* @__PURE__ */ __name2((diagnostics, container, properties) => { const containerPath = container ? `${container}.` : ""; if (properties.every((property) => property.value === void 0)) { diagnostics.errors.push( `${properties.map(({ key }) => `"${containerPath}${key}"`).join(" or ")} is required.` ); return false; } const errors = []; for (const prop of properties) { if (typeof prop.value === prop.type) { return true; } errors.push( `Expected "${containerPath}${prop.key}" to be of type ${prop.type} but got ${JSON.stringify( prop.value )}.` ); } diagnostics.errors.push(...errors); return false; }, "validateAtLeastOnePropertyRequired"); validateOptionalProperty = /* @__PURE__ */ __name2((diagnostics, container, key, value, type, choices) => { if (value !== void 0) { return validateRequiredProperty( diagnostics, container, key, value, type, choices ); } return true; }, "validateOptionalProperty"); validateTypedArray = /* @__PURE__ */ __name2((diagnostics, container, value, type) => { let isValid2 = true; if (!Array.isArray(value)) { diagnostics.errors.push( `Expected "${container}" to be an array of ${type}s but got ${JSON.stringify( value )}` ); isValid2 = false; } else { for (let i7 = 0; i7 < value.length; i7++) { isValid2 = validateRequiredProperty( diagnostics, container, `[${i7}]`, value[i7], type ) && isValid2; } } return isValid2; }, "validateTypedArray"); validateOptionalTypedArray = /* @__PURE__ */ __name2((diagnostics, container, value, type) => { if (value !== void 0) { return validateTypedArray(diagnostics, container, value, type); } return true; }, "validateOptionalTypedArray"); isRequiredProperty = /* @__PURE__ */ __name2((target, property, type, choices) => hasProperty(target, property) && typeof target[property] === type && (choices === void 0 || choices.includes(target[property])), "isRequiredProperty"); isOptionalProperty = /* @__PURE__ */ __name2((target, property, type) => !hasProperty(target, property) || typeof target[property] === type, "isOptionalProperty"); hasProperty = /* @__PURE__ */ __name2((target, property) => property in target, "hasProperty"); validateAdditionalProperties = /* @__PURE__ */ __name2((diagnostics, fieldPath, restProps, knownProps) => { const restPropSet = new Set(restProps); for (const knownProp of knownProps) { restPropSet.delete(knownProp); } if (restPropSet.size > 0) { const fields = Array.from(restPropSet.keys()).map((field) => `"${field}"`); diagnostics.warnings.push( `Unexpected fields found in ${fieldPath} field: ${fields}` ); return false; } return true; }, "validateAdditionalProperties"); getBindingNames = /* @__PURE__ */ __name2((value) => { if (typeof value !== "object" || value === null) { return []; } if (isBindingList(value)) { return value.bindings.map(({ name: name2 }) => name2); } else if (isNamespaceList(value)) { return value.map(({ binding }) => binding); } else if (isRecord(value)) { if (value["binding"] !== void 0) { return [value["binding"]]; } return Object.keys(value).filter((k7) => value[k7] !== void 0); } else { return []; } }, "getBindingNames"); isBindingList = /* @__PURE__ */ __name2((value) => isRecord(value) && "bindings" in value && Array.isArray(value.bindings) && value.bindings.every( (binding) => isRecord(binding) && "name" in binding && typeof binding.name === "string" ), "isBindingList"); isNamespaceList = /* @__PURE__ */ __name2((value) => Array.isArray(value) && value.every( (entry) => isRecord(entry) && "binding" in entry && typeof entry.binding === "string" ), "isNamespaceList"); isRecord = /* @__PURE__ */ __name2((value) => typeof value === "object" && value !== null && !Array.isArray(value), "isRecord"); validateUniqueNameProperty = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (Array.isArray(value)) { const nameCount = /* @__PURE__ */ new Map(); Object.entries(value).forEach(([_22, entry]) => { nameCount.set(entry.name, (nameCount.get(entry.name) ?? 0) + 1); }); const duplicates = Array.from(nameCount.entries()).filter(([_22, count]) => count > 1).map(([name2]) => name2); if (duplicates.length > 0) { const list = duplicates.join('", "'); diagnostics.errors.push( `"${field}" bindings must have unique "name" values; duplicate(s) found: "${list}"` ); return false; } } return true; }, "validateUniqueNameProperty"); __name(isValidR2BucketName, "isValidR2BucketName"); __name2(isValidR2BucketName, "isValidR2BucketName"); bucketFormatMessage = `Bucket names must begin and end with an alphanumeric character, only contain lowercase letters, numbers, and hyphens, and be between 3 and 63 characters long.`; friendlyBindingNames = { data_blobs: "Data Blob", durable_objects: "Durable Object", kv_namespaces: "KV Namespace", send_email: "Send Email", queues: "Queue", d1_databases: "D1 Database", vectorize: "Vectorize Index", hyperdrive: "Hyperdrive Config", r2_buckets: "R2 Bucket", logfwdr: "logfwdr", services: "Worker", analytics_engine_datasets: "Analytics Engine Dataset", text_blobs: "Text Blob", browser: "Browser", ai: "AI", images: "Images", media: "Media", version_metadata: "Worker Version Metadata", unsafe: "Unsafe Metadata", vars: "Environment Variable", wasm_modules: "Wasm Module", dispatch_namespaces: "Dispatch Namespace", mtls_certificates: "mTLS Certificate", workflows: "Workflow", pipelines: "Pipeline", secrets_store_secrets: "Secrets Store Secret", ratelimits: "Rate Limit", assets: "Assets", unsafe_hello_world: "Hello World", worker_loaders: "Worker Loader", vpc_services: "VPC Service" }; bindingTypeFriendlyNames = { // The 3 binding types below are all rendered as "Environment Variable" to preserve existing behaviour (friendlyBindingNames.vars) plain_text: "Environment Variable", secret_text: "Environment Variable", json: "Environment Variable", kv_namespace: "KV Namespace", send_email: "Send Email", wasm_module: "Wasm Module", text_blob: "Text Blob", browser: "Browser", ai: "AI", images: "Images", version_metadata: "Worker Version Metadata", data_blob: "Data Blob", durable_object_namespace: "Durable Object", workflow: "Workflow", queue: "Queue", r2_bucket: "R2 Bucket", d1: "D1 Database", vectorize: "Vectorize Index", hyperdrive: "Hyperdrive Config", service: "Worker", fetcher: "Service Binding", analytics_engine: "Analytics Engine Dataset", dispatch_namespace: "Dispatch Namespace", mtls_certificate: "mTLS Certificate", pipeline: "Pipeline", secrets_store_secret: "Secrets Store Secret", logfwdr: "logfwdr", unsafe_hello_world: "Hello World", ratelimit: "Rate Limit", worker_loader: "Worker Loader", vpc_service: "VPC Service", media: "Media", assets: "Assets", inherit: "Inherited" }; __name(getBindingTypeFriendlyName, "getBindingTypeFriendlyName"); __name2(getBindingTypeFriendlyName, "getBindingTypeFriendlyName"); ENGLISH = new Intl.ListFormat("en-US"); ALLOWED_INSTANCE_TYPES = [ "lite", "basic", "standard-1", "standard-2", "standard-3", "standard-4", "dev", // legacy "standard" // legacy ]; __name(isPagesConfig, "isPagesConfig"); __name2(isPagesConfig, "isPagesConfig"); __name(normalizeAndValidateConfig, "normalizeAndValidateConfig"); __name2(normalizeAndValidateConfig, "normalizeAndValidateConfig"); __name(applyPythonConfig, "applyPythonConfig"); __name2(applyPythonConfig, "applyPythonConfig"); __name(normalizeAndValidateBuild, "normalizeAndValidateBuild"); __name2(normalizeAndValidateBuild, "normalizeAndValidateBuild"); __name(normalizeAndValidateMainField, "normalizeAndValidateMainField"); __name2(normalizeAndValidateMainField, "normalizeAndValidateMainField"); __name(normalizeAndValidateBaseDirField, "normalizeAndValidateBaseDirField"); __name2(normalizeAndValidateBaseDirField, "normalizeAndValidateBaseDirField"); __name(normalizeAndValidatePagesBuildOutputDir, "normalizeAndValidatePagesBuildOutputDir"); __name2(normalizeAndValidatePagesBuildOutputDir, "normalizeAndValidatePagesBuildOutputDir"); __name(normalizeAndValidateDev, "normalizeAndValidateDev"); __name2(normalizeAndValidateDev, "normalizeAndValidateDev"); __name(normalizeAndValidateAssets, "normalizeAndValidateAssets"); __name2(normalizeAndValidateAssets, "normalizeAndValidateAssets"); __name(normalizeAndValidateSite, "normalizeAndValidateSite"); __name2(normalizeAndValidateSite, "normalizeAndValidateSite"); __name(normalizeAndValidateAliases, "normalizeAndValidateAliases"); __name2(normalizeAndValidateAliases, "normalizeAndValidateAliases"); __name(normalizeAndValidateModulePaths, "normalizeAndValidateModulePaths"); __name2(normalizeAndValidateModulePaths, "normalizeAndValidateModulePaths"); __name(isValidRouteValue, "isValidRouteValue"); __name2(isValidRouteValue, "isValidRouteValue"); __name(mutateEmptyStringAccountIDValue, "mutateEmptyStringAccountIDValue"); __name2(mutateEmptyStringAccountIDValue, "mutateEmptyStringAccountIDValue"); __name(mutateEmptyStringRouteValue, "mutateEmptyStringRouteValue"); __name2(mutateEmptyStringRouteValue, "mutateEmptyStringRouteValue"); isRoute = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value !== void 0 && !isValidRouteValue(value)) { diagnostics.errors.push( `Expected "${field}" to be either a string, or an object with shape { pattern, custom_domain, zone_id | zone_name }, but got ${JSON.stringify( value )}.` ); return false; } return true; }, "isRoute"); isRouteArray = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value === void 0) { return true; } if (!Array.isArray(value)) { diagnostics.errors.push( `Expected "${field}" to be an array but got ${JSON.stringify(value)}.` ); return false; } const invalidRoutes = []; for (const item of value) { if (!isValidRouteValue(item)) { invalidRoutes.push(item); } } if (invalidRoutes.length > 0) { diagnostics.errors.push( `Expected "${field}" to be an array of either strings or objects with the shape { pattern, custom_domain, zone_id | zone_name }, but these weren't valid: ${JSON.stringify( invalidRoutes, null, 2 )}.` ); } return invalidRoutes.length === 0; }, "isRouteArray"); __name(normalizeAndValidateRoute, "normalizeAndValidateRoute"); __name2(normalizeAndValidateRoute, "normalizeAndValidateRoute"); __name(validateRoutes, "validateRoutes"); __name2(validateRoutes, "validateRoutes"); __name(normalizeAndValidatePlacement, "normalizeAndValidatePlacement"); __name2(normalizeAndValidatePlacement, "normalizeAndValidatePlacement"); __name(validateTailConsumer, "validateTailConsumer"); __name2(validateTailConsumer, "validateTailConsumer"); validateTailConsumers = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (!value) { return true; } if (!Array.isArray(value)) { diagnostics.errors.push( `Expected "${field}" to be an array but got ${JSON.stringify(value)}.` ); return false; } let isValid2 = true; for (let i7 = 0; i7 < value.length; i7++) { isValid2 = validateTailConsumer(diagnostics, `${field}[${i7}]`, value[i7]) && isValid2; } return isValid2; }, "validateTailConsumers"); __name(validateStreamingTailConsumer, "validateStreamingTailConsumer"); __name2(validateStreamingTailConsumer, "validateStreamingTailConsumer"); validateStreamingTailConsumers = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (!value) { return true; } if (!Array.isArray(value)) { diagnostics.errors.push( `Expected "${field}" to be an array but got ${JSON.stringify(value)}.` ); return false; } let isValid2 = true; for (let i7 = 0; i7 < value.length; i7++) { isValid2 = validateStreamingTailConsumer(diagnostics, `${field}[${i7}]`, value[i7]) && isValid2; } return isValid2; }, "validateStreamingTailConsumers"); __name(normalizeAndValidateEnvironment, "normalizeAndValidateEnvironment"); __name2(normalizeAndValidateEnvironment, "normalizeAndValidateEnvironment"); __name(validateAndNormalizeTsconfig, "validateAndNormalizeTsconfig"); __name2(validateAndNormalizeTsconfig, "validateAndNormalizeTsconfig"); validateAndNormalizeRules = /* @__PURE__ */ __name2((diagnostics, topLevelEnv, rawEnv, envName) => { return inheritable( diagnostics, topLevelEnv, rawEnv, "rules", validateRules(envName), [] ); }, "validateAndNormalizeRules"); validateTriggers = /* @__PURE__ */ __name2((diagnostics, triggersFieldName, triggersValue) => { if (triggersValue === void 0 || triggersValue === null) { return true; } if (typeof triggersValue !== "object") { diagnostics.errors.push( `Expected "${triggersFieldName}" to be of type object but got ${JSON.stringify( triggersValue )}.` ); return false; } let isValid2 = true; if ("crons" in triggersValue && !Array.isArray(triggersValue.crons)) { diagnostics.errors.push( `Expected "${triggersFieldName}.crons" to be of type array, but got ${JSON.stringify(triggersValue)}.` ); isValid2 = false; } isValid2 = validateAdditionalProperties( diagnostics, triggersFieldName, Object.keys(triggersValue), ["crons"] ) && isValid2; return isValid2; }, "validateTriggers"); validateRules = /* @__PURE__ */ __name2((envName) => (diagnostics, field, envValue, config) => { if (!envValue) { return true; } const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (!Array.isArray(envValue)) { diagnostics.errors.push( `The field "${fieldPath}" should be an array but got ${JSON.stringify( envValue )}.` ); return false; } let isValid2 = true; for (let i7 = 0; i7 < envValue.length; i7++) { isValid2 = validateRule(diagnostics, `${fieldPath}[${i7}]`, envValue[i7], config) && isValid2; } return isValid2; }, "validateRules"); validateRule = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" should be an object but got ${JSON.stringify(value)}.` ); return false; } let isValid2 = true; const rule = value; if (!isRequiredProperty(rule, "type", "string", [ "ESModule", "CommonJS", "CompiledWasm", "Text", "Data" ])) { diagnostics.errors.push( `bindings should have a string "type" field, which contains one of "ESModule", "CommonJS", "CompiledWasm", "Text", or "Data".` ); isValid2 = false; } isValid2 = validateTypedArray(diagnostics, `${field}.globs`, rule.globs, "string") && isValid2; if (!isOptionalProperty(rule, "fallthrough", "boolean")) { diagnostics.errors.push( `the field "fallthrough", when present, should be a boolean.` ); isValid2 = false; } return isValid2; }, "validateRule"); validateDefines = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { let isValid2 = true; const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (typeof value === "object" && value !== null) { for (const varName in value) { if (typeof value[varName] !== "string") { diagnostics.errors.push( `The field "${fieldPath}.${varName}" should be a string but got ${JSON.stringify( value[varName] )}.` ); isValid2 = false; } } } else { if (value !== void 0) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}. ` ); isValid2 = false; } } const configDefines = Object.keys(config?.define ?? {}); if (configDefines.length > 0) { if (typeof value === "object" && value !== null) { const configEnvDefines = config === void 0 ? [] : Object.keys(value); for (const varName of configDefines) { if (!(varName in value)) { diagnostics.warnings.push( `"define.${varName}" exists at the top level, but not on "${fieldPath}". This is not what you probably want, since "define" configuration is not inherited by environments. Please add "define.${varName}" to "env.${envName}".` ); } } for (const varName of configEnvDefines) { if (!configDefines.includes(varName)) { diagnostics.warnings.push( `"${varName}" exists on "env.${envName}", but not on the top level. This is not what you probably want, since "define" configuration within environments can only override existing top level "define" configuration Please remove "${fieldPath}.${varName}", or add "define.${varName}".` ); } } } } return isValid2; }, "validateDefines"); validateVars = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { let isValid2 = true; const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (value !== void 0) { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}. ` ); isValid2 = false; } else { for (const [varName, varValue] of Object.entries(value)) { if (varValue instanceof Date) { diagnostics.errors.push( `The field "${fieldPath}.${varName}" is a TOML date, which is not supported. Please use a string instead, e.g. ${varName} = "2025-12-19".` ); isValid2 = false; } } } } const configVars = Object.keys(config?.vars ?? {}); if (configVars.length > 0) { if (typeof value === "object" && value !== null) { for (const varName of configVars) { if (!(varName in value)) { diagnostics.warnings.push( `"vars.${varName}" exists at the top level, but not on "${fieldPath}". This is not what you probably want, since "vars" configuration is not inherited by environments. Please add "vars.${varName}" to "env.${envName}".` ); } } } } return isValid2; }, "validateVars"); validateSecrets = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (value === void 0) { return true; } if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify(value)}.` ); return false; } let isValid2 = true; validateAdditionalProperties(diagnostics, fieldPath, Object.keys(value), [ "required" ]); isValid2 = validateOptionalTypedArray( diagnostics, `${fieldPath}.required`, value.required, "string" ) && isValid2; return isValid2; }, "validateSecrets"); validateBindingsProperty = /* @__PURE__ */ __name2((envName, validateBinding) => (diagnostics, field, value, config) => { let isValid2 = true; const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (value !== void 0) { if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}.` ); isValid2 = false; } else if (!hasProperty(value, "bindings")) { diagnostics.errors.push( `The field "${fieldPath}" is missing the required "bindings" property.` ); isValid2 = false; } else if (!Array.isArray(value.bindings)) { diagnostics.errors.push( `The field "${fieldPath}.bindings" should be an array but got ${JSON.stringify( value.bindings )}.` ); isValid2 = false; } else { for (let i7 = 0; i7 < value.bindings.length; i7++) { const binding = value.bindings[i7]; const bindingDiagnostics = new Diagnostics( `"${fieldPath}.bindings[${i7}]": ${JSON.stringify(binding)}` ); isValid2 = validateBinding( bindingDiagnostics, `${fieldPath}.bindings[${i7}]`, binding, config ) && isValid2; diagnostics.addChild(bindingDiagnostics); } } const configBindingNames = getBindingNames( config?.[field] ); if (isValid2 && configBindingNames.length > 0) { const envBindingNames = new Set(getBindingNames(value)); const missingBindings = configBindingNames.filter( (name2) => !envBindingNames.has(name2) ); if (missingBindings.length > 0) { diagnostics.warnings.push( `The following bindings are at the top level, but not on "env.${envName}". This is not what you probably want, since "${field}" configuration is not inherited by environments. Please add a binding for each to "${fieldPath}.bindings": ` + missingBindings.map((name2) => `- ${name2}`).join("\n") ); } } } return isValid2; }, "validateBindingsProperty"); validateUnsafeSettings = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}.` ); return false; } if (hasProperty(value, "bindings") && value.bindings !== void 0) { const validateBindingsFn = validateBindingsProperty( envName, validateUnsafeBinding ); const valid = validateBindingsFn(diagnostics, field, value, config); if (!valid) { return false; } } if (hasProperty(value, "metadata") && value.metadata !== void 0 && (typeof value.metadata !== "object" || value.metadata === null || Array.isArray(value.metadata))) { diagnostics.errors.push( `The field "${fieldPath}.metadata" should be an object but got ${JSON.stringify( value.metadata )}.` ); return false; } if (hasProperty(value, "capnp") && value.capnp !== void 0) { if (typeof value.capnp !== "object" || value.capnp === null || Array.isArray(value.capnp)) { diagnostics.errors.push( `The field "${fieldPath}.capnp" should be an object but got ${JSON.stringify( value.capnp )}.` ); return false; } if (hasProperty(value.capnp, "compiled_schema")) { if (hasProperty(value.capnp, "base_path") || hasProperty(value.capnp, "source_schemas")) { diagnostics.errors.push( `The field "${fieldPath}.capnp" cannot contain both "compiled_schema" and one of "base_path" or "source_schemas".` ); return false; } if (typeof value.capnp.compiled_schema !== "string") { diagnostics.errors.push( `The field "${fieldPath}.capnp.compiled_schema", when present, should be a string but got ${JSON.stringify( value.capnp.compiled_schema )}.` ); return false; } } else { if (!isRequiredProperty(value.capnp, "base_path", "string")) { diagnostics.errors.push( `The field "${fieldPath}.capnp.base_path", when present, should be a string but got ${JSON.stringify( value.capnp.base_path )}` ); } if (!validateTypedArray( diagnostics, `${fieldPath}.capnp.source_schemas`, value.capnp.source_schemas, "string" )) { return false; } } } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "bindings", "metadata", "capnp" ]); return true; }, "validateUnsafeSettings"); validateDurableObjectBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `Expected "${field}" to be an object but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "name", "string")) { diagnostics.errors.push(`binding should have a string "name" field.`); isValid2 = false; } if (!isRequiredProperty(value, "class_name", "string")) { diagnostics.errors.push(`binding should have a string "class_name" field.`); isValid2 = false; } if (!isOptionalProperty(value, "script_name", "string")) { diagnostics.errors.push( `the field "script_name", when present, should be a string.` ); isValid2 = false; } if (!isOptionalProperty(value, "environment", "string")) { diagnostics.errors.push( `the field "environment", when present, should be a string.` ); isValid2 = false; } if ("environment" in value && !("script_name" in value)) { diagnostics.errors.push( `binding should have a "script_name" field if "environment" is present.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "class_name", "environment", "name", "script_name" ]); return isValid2; }, "validateDurableObjectBinding"); workflowNameFormatMessage = `Workflow names must be 1-64 characters long, start with a letter, number, or underscore, and may only contain letters, numbers, underscores, or hyphens.`; validateWorkflowBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"workflows" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "name", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } else if (!isValidWorkflowName(value.name)) { diagnostics.errors.push( `"${field}" binding "name" field is invalid. ${workflowNameFormatMessage}` ); isValid2 = false; } if (!isRequiredProperty(value, "class_name", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "class_name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "script_name", "string")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "script_name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "remote", "boolean")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a boolean "remote" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "name", "class_name", "script_name", "remote" ]); return isValid2; }, "validateWorkflowBinding"); validateCflogfwdrObject = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, topLevelEnv) => { const bindingsValidation = validateBindingsProperty( envName, validateCflogfwdrBinding ); if (!bindingsValidation(diagnostics, field, value, topLevelEnv)) { return false; } const v8 = value; if (v8?.schema !== void 0) { diagnostics.errors.push( `"${field}" binding "schema" property has been replaced with the "unsafe.capnp" object, which expects a "base_path" and an array of "source_schemas" to compile, or a "compiled_schema" property.` ); return false; } return true; }, "validateCflogfwdrObject"); validateCflogfwdrBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `Expected "${field}" to be an object but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "name", "string")) { diagnostics.errors.push(`binding should have a string "name" field.`); isValid2 = false; } if (!isRequiredProperty(value, "destination", "string")) { diagnostics.errors.push( `binding should have a string "destination" field.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "destination", "name" ]); return isValid2; }, "validateCflogfwdrBinding"); validateAssetsConfig = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value === void 0) { return true; } if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" should be an object, but got value ${JSON.stringify( field )} of type ${typeof value}` ); return false; } let isValid2 = true; isValid2 = validateOptionalProperty( diagnostics, field, "directory", value.directory, "string" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "binding", value.binding, "string" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "html_handling", value.html_handling, "string", [ "auto-trailing-slash", "force-trailing-slash", "drop-trailing-slash", "none" ] ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "not_found_handling", value.not_found_handling, "string", ["single-page-application", "404-page", "none"] ) && isValid2; if (value.run_worker_first !== void 0) { if (typeof value.run_worker_first === "boolean") { isValid2 = validateOptionalProperty( diagnostics, field, "run_worker_first", value.run_worker_first, "boolean" ) && isValid2; } else if (Array.isArray(value.run_worker_first)) { isValid2 = validateOptionalTypedArray( diagnostics, "assets.run_worker_first", value.run_worker_first, "string" ) && isValid2; } else { diagnostics.errors.push( `The field "${field}.run_worker_first" should be an array of strings or a boolean, but got ${JSON.stringify( value.run_worker_first )}.` ); isValid2 = false; } } isValid2 = validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "directory", "binding", "html_handling", "not_found_handling", "run_worker_first" ]) && isValid2; return isValid2; }, "validateAssetsConfig"); validateNamedSimpleBinding = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}.` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push(`binding should have a string "binding" field.`); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "remote" ]); return isValid2; }, "validateNamedSimpleBinding"); validateAIBinding = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}.` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push(`binding should have a string "binding" field.`); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } return isValid2; }, "validateAIBinding"); validateVersionMetadataBinding = /* @__PURE__ */ __name2((envName) => (diagnostics, field, value, config) => { const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `The field "${fieldPath}" should be an object but got ${JSON.stringify( value )}.` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push(`binding should have a string "binding" field.`); isValid2 = false; } return isValid2; }, "validateVersionMetadataBinding"); validateUnsafeBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `Expected ${field} to be an object but got ${JSON.stringify(value)}.` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "name", "string")) { diagnostics.errors.push(`binding should have a string "name" field.`); isValid2 = false; } if (isRequiredProperty(value, "type", "string")) { const safeBindings = [ "plain_text", "secret_text", "json", "wasm_module", "data_blob", "text_blob", "browser", "ai", "kv_namespace", "durable_object_namespace", "d1_database", "r2_bucket", "service", "logfwdr", "mtls_certificate", "pipeline", "worker_loader", "vpc_service", "media" ]; if (safeBindings.includes(value.type)) { diagnostics.warnings.push( `The binding type "${value.type}" is directly supported by wrangler. Consider migrating this unsafe binding to a format for '${value.type}' bindings that is supported by wrangler for optimal support. For more details, see https://developers.cloudflare.com/workers/cli-wrangler/configuration` ); } if (value.type === "metadata" && isRequiredProperty(value, "name", "string")) { diagnostics.warnings.push( "The deployment object in the metadata binding is now deprecated. Please switch using the version_metadata binding for access to version specific fields: https://developers.cloudflare.com/workers/runtime-apis/bindings/version-metadata" ); } } else { diagnostics.errors.push(`binding should have a string "type" field.`); isValid2 = false; } return isValid2; }, "validateUnsafeBinding"); validateBindingArray = /* @__PURE__ */ __name2((envName, validateBinding) => (diagnostics, field, envValue, config) => { if (envValue === void 0) { return true; } const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`; if (!Array.isArray(envValue)) { diagnostics.errors.push( `The field "${fieldPath}" should be an array but got ${JSON.stringify( envValue )}.` ); return false; } let isValid2 = true; for (let i7 = 0; i7 < envValue.length; i7++) { isValid2 = validateBinding( diagnostics, `${fieldPath}[${i7}]`, envValue[i7], config ) && isValid2; } const configValue = config?.[field]; if (Array.isArray(configValue)) { const configBindingNames = configValue.map((value) => value.binding); if (configBindingNames.length > 0) { const envBindingNames = new Set(envValue.map((value) => value.binding)); for (const configBindingName of configBindingNames) { if (!envBindingNames.has(configBindingName)) { diagnostics.warnings.push( `There is a ${field} binding with name "${configBindingName}" at the top level, but not on "env.${envName}". This is not what you probably want, since "${field}" configuration is not inherited by environments. Please add a binding for "${configBindingName}" to "env.${envName}.${field}.bindings".` ); } } } } return isValid2; }, "validateBindingArray"); __name(validateContainerApp, "validateContainerApp"); __name2(validateContainerApp, "validateContainerApp"); validateCloudchamberConfig = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `"cloudchamber" should be an object, but got ${JSON.stringify(value)}` ); return false; } const optionalAttrsByType = { string: ["memory", "image", "location"], boolean: ["ipv4"], number: ["vcpu"] }; let isValid2 = true; Object.entries(optionalAttrsByType).forEach(([attrType, attrNames]) => { attrNames.forEach((key) => { if (!isOptionalProperty(value, key, attrType)) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a ${attrType} "${key}" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } }); }); if ("instance_type" in value && value.instance_type !== void 0) { if (typeof value.instance_type !== "string" || !ALLOWED_INSTANCE_TYPES.includes(value.instance_type)) { diagnostics.errors.push( `"instance_type" should be one of 'lite', 'basic', 'standard-1', 'standard-2', 'standard-3', or 'standard-4', but got ${value.instance_type}` ); } if ("memory" in value && value.memory !== void 0 || "vcpu" in value && value.vcpu !== void 0) { diagnostics.errors.push( `"${field}" configuration should not set either "memory" or "vcpu" with "instance_type"` ); } } return isValid2; }, "validateCloudchamberConfig"); validateKVBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"kv_namespaces" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "id", "string") || value.id !== void 0 && value.id.length === 0) { diagnostics.errors.push( `"${field}" bindings should have a string "id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "preview_id", "string")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "preview_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "id", "preview_id", "remote" ]); return isValid2; }, "validateKVBinding"); validateSendEmailBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"send_email" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "name", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "destination_address", "string")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "destination_address" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "allowed_destination_addresses", "object")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a []string "allowed_destination_addresses" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "allowed_sender_addresses", "object")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a []string "allowed_sender_addresses" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if ("destination_address" in value && "allowed_destination_addresses" in value) { diagnostics.errors.push( `"${field}" bindings should have either a "destination_address" or "allowed_destination_addresses" field, but not both.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "allowed_sender_addresses", "allowed_destination_addresses", "destination_address", "name", "binding", "remote" ]); return isValid2; }, "validateSendEmailBinding"); validateQueueBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"queue" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } if (!validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "queue", "delivery_delay", "remote" ])) { return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "queue", "string") || value.queue.length === 0) { diagnostics.errors.push( `"${field}" bindings should have a string "queue" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } const options = [{ key: "delivery_delay", type: "number" }]; for (const optionalOpt of options) { if (!isOptionalProperty(value, optionalOpt.key, optionalOpt.type)) { diagnostics.errors.push( `"${field}" should, optionally, have a ${optionalOpt.type} "${optionalOpt.key}" field but got ${JSON.stringify(value)}.` ); isValid2 = false; } } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } return isValid2; }, "validateQueueBinding"); validateR2Binding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"r2_buckets" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "bucket_name", "string") || value.bucket_name !== void 0 && value.bucket_name.length === 0) { diagnostics.errors.push( `"${field}" bindings should have a string "bucket_name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (isValid2 && hasProperty(value, "bucket_name") && !isValidR2BucketName(value.bucket_name)) { diagnostics.errors.push( `${field}.bucket_name=${JSON.stringify(value.bucket_name)} is invalid. ${bucketFormatMessage}` ); isValid2 = false; } if (!isOptionalProperty(value, "preview_bucket_name", "string")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "preview_bucket_name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (isValid2 && hasProperty(value, "preview_bucket_name") && !isValidR2BucketName(value.preview_bucket_name)) { diagnostics.errors.push( `${field}.preview_bucket_name= ${JSON.stringify(value.preview_bucket_name)} is invalid. ${bucketFormatMessage}` ); isValid2 = false; } if (!isOptionalProperty(value, "jurisdiction", "string")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "jurisdiction" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "bucket_name", "preview_bucket_name", "jurisdiction", "remote" ]); return isValid2; }, "validateR2Binding"); validateD1Binding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"d1_databases" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "database_id", "string")) { diagnostics.errors.push( `"${field}" bindings must have a "database_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "preview_database_id", "string")) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "preview_database_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "database_id", "database_internal_env", "database_name", "migrations_dir", "migrations_table", "preview_database_id", "remote" ]); return isValid2; }, "validateD1Binding"); validateVectorizeBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"vectorize" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "index_name", "string")) { diagnostics.errors.push( `"${field}" bindings must have an "index_name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "index_name", "remote" ]); return isValid2; }, "validateVectorizeBinding"); validateHyperdriveBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"hyperdrive" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "id", "string")) { diagnostics.errors.push( `"${field}" bindings must have a "id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "id", "localConnectionString" ]); return isValid2; }, "validateHyperdriveBinding"); validateVpcServiceBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"vpc_services" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "service_id", "string")) { diagnostics.errors.push( `"${field}" bindings must have a "service_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "service_id", "remote" ]); return isValid2; }, "validateVpcServiceBinding"); validateBindingsHaveUniqueNames = /* @__PURE__ */ __name2((diagnostics, config) => { let hasDuplicates = false; const bindingNamesArray = Object.entries(friendlyBindingNames); const bindingsGroupedByType = Object.fromEntries( bindingNamesArray.map(([bindingType, binding]) => [ binding, getBindingNames( bindingType === "queues" ? config[bindingType]?.producers : config[bindingType] ) ]) ); bindingsGroupedByType["Secret"] = config.secrets?.required ?? []; const bindingsGroupedByName = {}; for (const bindingType in bindingsGroupedByType) { const bindingNames = bindingsGroupedByType[bindingType]; for (const bindingName of bindingNames) { if (!(bindingName in bindingsGroupedByName)) { bindingsGroupedByName[bindingName] = []; } if (bindingName === "ASSETS" && isPagesConfig(config)) { diagnostics.errors.push( `The name 'ASSETS' is reserved in Pages projects. Please use a different name for your ${bindingType} binding.` ); } bindingsGroupedByName[bindingName].push(bindingType); } } for (const bindingName in bindingsGroupedByName) { const bindingTypes = bindingsGroupedByName[bindingName]; if (bindingTypes.length < 2) { continue; } hasDuplicates = true; const sameType = bindingTypes.filter((type, i7) => bindingTypes.indexOf(type) !== i7).filter( (type, i7, duplicateBindingTypes) => duplicateBindingTypes.indexOf(type) === i7 ); const differentTypes = bindingTypes.filter( (type, i7) => bindingTypes.indexOf(type) === i7 ); if (differentTypes.length > 1) { diagnostics.errors.push( `${bindingName} assigned to ${ENGLISH.format(differentTypes)} bindings.` ); } sameType.forEach((bindingType) => { diagnostics.errors.push( `${bindingName} assigned to multiple ${bindingType} bindings.` ); }); } if (hasDuplicates) { const problem = "Bindings must have unique names, so that they can all be referenced in the worker."; const resolution = "Please change your bindings to have unique names."; diagnostics.errors.push(`${problem} ${resolution}`); } return !hasDuplicates; }, "validateBindingsHaveUniqueNames"); validateServiceBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"services" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "service", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "service" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "environment", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "environment" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "entrypoint", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "entrypoint" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } return isValid2; }, "validateServiceBinding"); validateAnalyticsEngineBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"analytics_engine" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "dataset", "string") || value.dataset?.length === 0) { diagnostics.errors.push( `"${field}" bindings should, optionally, have a string "dataset" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "dataset" ]); return isValid2; }, "validateAnalyticsEngineBinding"); validateWorkerNamespaceBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" binding should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "namespace", "string")) { diagnostics.errors.push( `"${field}" should have a string "namespace" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (hasProperty(value, "outbound")) { if (!validateWorkerNamespaceOutbound( diagnostics, `${field}.outbound`, value.outbound ?? {} )) { diagnostics.errors.push(`"${field}" has an invalid outbound definition.`); isValid2 = false; } } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } return isValid2; }, "validateWorkerNamespaceBinding"); __name(validateWorkerNamespaceOutbound, "validateWorkerNamespaceOutbound"); __name2(validateWorkerNamespaceOutbound, "validateWorkerNamespaceOutbound"); validateMTlsCertificateBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"mtls_certificates" bindings should be objects, but got ${JSON.stringify( value )}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings should have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "certificate_id", "string") || value.certificate_id.length === 0) { diagnostics.errors.push( `"${field}" bindings should have a string "certificate_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "certificate_id", "remote" ]); if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } return isValid2; }, "validateMTlsCertificateBinding"); __name(validateQueues, "validateQueues"); __name2(validateQueues, "validateQueues"); validateConsumer = /* @__PURE__ */ __name2((diagnostics, field, value, _config) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" should be a objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "queue", "type", "max_batch_size", "max_batch_timeout", "max_retries", "dead_letter_queue", "max_concurrency", "visibility_timeout_ms", "retry_delay" ])) { isValid2 = false; } if (!isRequiredProperty(value, "queue", "string")) { diagnostics.errors.push( `"${field}" should have a string "queue" field but got ${JSON.stringify( value )}.` ); } const options = [ { key: "type", type: "string" }, { key: "max_batch_size", type: "number" }, { key: "max_batch_timeout", type: "number" }, { key: "max_retries", type: "number" }, { key: "dead_letter_queue", type: "string" }, { key: "max_concurrency", type: "number" }, { key: "visibility_timeout_ms", type: "number" }, { key: "retry_delay", type: "number" } ]; for (const optionalOpt of options) { if (!isOptionalProperty(value, optionalOpt.key, optionalOpt.type)) { diagnostics.errors.push( `"${field}" should, optionally, have a ${optionalOpt.type} "${optionalOpt.key}" field but got ${JSON.stringify(value)}.` ); isValid2 = false; } } return isValid2; }, "validateConsumer"); validateCompatibilityDate = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value === void 0) { return true; } if (typeof value !== "string") { diagnostics.errors.push( `Expected "${field}" to be of type string but got ${JSON.stringify(value)}.` ); return false; } return isValidDateTimeStringFormat(diagnostics, field, value); }, "validateCompatibilityDate"); validatePipelineBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"pipeline" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "pipeline", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "pipeline" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRemoteValid(value, field, diagnostics)) { isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "pipeline", "remote" ]); return isValid2; }, "validatePipelineBinding"); validateSecretsStoreSecretBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"secrets_store_secrets" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "store_id", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "store_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "secret_name", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "secret_name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "store_id", "secret_name" ]); return isValid2; }, "validateSecretsStoreSecretBinding"); validateHelloWorldBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"unsafe_hello_world" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isOptionalProperty(value, "enable_timer", "boolean")) { diagnostics.errors.push( `"${field}" bindings must have a boolean "enable_timer" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding", "enable_timer" ]); return isValid2; }, "validateHelloWorldBinding"); validateWorkerLoaderBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"worker_loader" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "binding", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "binding" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "binding" ]); return isValid2; }, "validateWorkerLoaderBinding"); validateRateLimitBinding = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"ratelimits" bindings should be objects, but got ${JSON.stringify(value)}` ); return false; } let isValid2 = true; if (!isRequiredProperty(value, "name", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "name" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!isRequiredProperty(value, "namespace_id", "string")) { diagnostics.errors.push( `"${field}" bindings must have a string "namespace_id" field but got ${JSON.stringify( value )}.` ); isValid2 = false; } if (!hasProperty(value, "simple") || typeof value.simple !== "object" || value.simple === null) { diagnostics.errors.push( `"${field}" bindings must have a "simple" configuration object but got ${JSON.stringify( value )}.` ); isValid2 = false; } else { if (!isRequiredProperty(value.simple, "limit", "number")) { diagnostics.errors.push( `"${field}" bindings "simple.limit" must be a number but got ${JSON.stringify( value.simple )}.` ); isValid2 = false; } if (!isRequiredProperty(value.simple, "period", "number")) { diagnostics.errors.push( `"${field}" bindings "simple.period" is required and must be a number but got ${JSON.stringify( value.simple )}.` ); isValid2 = false; } else if (![10, 60].includes(value.simple.period)) { diagnostics.errors.push( `"${field}" bindings "simple.period" must be either 10 or 60 but got ${JSON.stringify( value.simple.period )}.` ); isValid2 = false; } validateAdditionalProperties( diagnostics, `${field}.simple`, Object.keys(value.simple), ["limit", "period"] ); } validateAdditionalProperties(diagnostics, field, Object.keys(value), [ "name", "namespace_id", "simple" ]); return isValid2; }, "validateRateLimitBinding"); __name(normalizeAndValidateLimits, "normalizeAndValidateLimits"); __name2(normalizeAndValidateLimits, "normalizeAndValidateLimits"); validateMigrations = /* @__PURE__ */ __name2((diagnostics, field, value) => { const rawMigrations = value ?? []; if (!Array.isArray(rawMigrations)) { diagnostics.errors.push( `The optional "${field}" field should be an array, but got ${JSON.stringify( rawMigrations )}` ); return false; } let valid = true; for (let i7 = 0; i7 < rawMigrations.length; i7++) { const { tag, new_classes, new_sqlite_classes, renamed_classes, deleted_classes, transferred_classes, ...rest } = rawMigrations[i7]; valid = validateAdditionalProperties( diagnostics, "migrations", Object.keys(rest), [] ) && valid; valid = validateRequiredProperty( diagnostics, `migrations[${i7}]`, `tag`, tag, "string" ) && valid; valid = validateOptionalTypedArray( diagnostics, `migrations[${i7}].new_classes`, new_classes, "string" ) && valid; valid = validateOptionalTypedArray( diagnostics, `migrations[${i7}].new_sqlite_classes`, new_sqlite_classes, "string" ) && valid; if (renamed_classes !== void 0) { if (!Array.isArray(renamed_classes)) { diagnostics.errors.push( `Expected "migrations[${i7}].renamed_classes" to be an array of "{from: string, to: string}" objects but got ${JSON.stringify( renamed_classes )}.` ); valid = false; } else if (renamed_classes.some( (c8) => typeof c8 !== "object" || !isRequiredProperty(c8, "from", "string") || !isRequiredProperty(c8, "to", "string") )) { diagnostics.errors.push( `Expected "migrations[${i7}].renamed_classes" to be an array of "{from: string, to: string}" objects but got ${JSON.stringify( renamed_classes )}.` ); valid = false; } } if (transferred_classes !== void 0) { if (!Array.isArray(transferred_classes)) { diagnostics.errors.push( `Expected "migrations[${i7}].transferred_classes" to be an array of "{from: string, from_script: string, to: string}" objects but got ${JSON.stringify( transferred_classes )}.` ); valid = false; } else if (transferred_classes.some( (c8) => typeof c8 !== "object" || !isRequiredProperty(c8, "from", "string") || !isRequiredProperty(c8, "from_script", "string") || !isRequiredProperty(c8, "to", "string") )) { diagnostics.errors.push( `Expected "migrations[${i7}].transferred_classes" to be an array of "{from: string, from_script: string, to: string}" objects but got ${JSON.stringify( transferred_classes )}.` ); valid = false; } } valid = validateOptionalTypedArray( diagnostics, `migrations[${i7}].deleted_classes`, deleted_classes, "string" ) && valid; } return valid; }, "validateMigrations"); validateObservability = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value === void 0) { return true; } if (typeof value !== "object") { diagnostics.errors.push( `"${field}" should be an object but got ${JSON.stringify(value)}.` ); return false; } const val2 = value; let isValid2 = true; isValid2 = validateAtLeastOnePropertyRequired(diagnostics, field, [ { key: "enabled", value: val2.enabled, type: "boolean" }, { key: "logs.enabled", value: val2.logs?.enabled, type: "boolean" }, { key: "traces.enabled", value: val2.traces?.enabled, type: "boolean" } ]) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "head_sampling_rate", val2.head_sampling_rate, "number" ) && isValid2; isValid2 = validateOptionalProperty(diagnostics, field, "logs", val2.logs, "object") && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "traces", val2.traces, "object" ) && isValid2; isValid2 = validateAdditionalProperties(diagnostics, field, Object.keys(val2), [ "enabled", "head_sampling_rate", "logs", "traces" ]) && isValid2; if (typeof val2.logs === "object") { isValid2 = validateOptionalProperty( diagnostics, field, "logs.enabled", val2.logs.enabled, "boolean" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "logs.head_sampling_rate", val2.logs.head_sampling_rate, "number" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "logs.invocation_logs", val2.logs.invocation_logs, "boolean" ) && isValid2; isValid2 = validateOptionalTypedArray( diagnostics, "logs.destinations", val2.logs?.destinations, "string" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "logs.persist", val2.logs.persist, "boolean" ) && isValid2; isValid2 = validateAdditionalProperties(diagnostics, field, Object.keys(val2.logs), [ "enabled", "head_sampling_rate", "invocation_logs", "destinations", "persist" ]) && isValid2; } if (typeof val2.traces === "object") { isValid2 = validateOptionalProperty( diagnostics, field, "traces.enabled", val2.traces.enabled, "boolean" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "traces.head_sampling_rate", val2.traces.head_sampling_rate, "number" ) && isValid2; isValid2 = validateOptionalTypedArray( diagnostics, "traces.destinations", val2.traces?.destinations, "string" ) && isValid2; isValid2 = validateOptionalProperty( diagnostics, field, "traces.persist", val2.traces.persist, "boolean" ) && isValid2; isValid2 = validateAdditionalProperties( diagnostics, field, Object.keys(val2.traces), ["enabled", "head_sampling_rate", "destinations", "persist"] ) && isValid2; } const samplingRate = val2?.head_sampling_rate; if (samplingRate && (samplingRate < 0 || samplingRate > 1)) { diagnostics.errors.push( `"${field}.head_sampling_rate" must be a value between 0 and 1.` ); } return isValid2; }, "validateObservability"); validateCache = /* @__PURE__ */ __name2((diagnostics, field, value) => { if (value === void 0) { return true; } if (typeof value !== "object" || value === null) { diagnostics.errors.push( `"${field}" should be an object but got ${JSON.stringify(value)}.` ); return false; } const val2 = value; let isValid2 = true; isValid2 = validateRequiredProperty( diagnostics, field, "enabled", val2.enabled, "boolean" ) && isValid2; isValid2 = validateAdditionalProperties(diagnostics, field, Object.keys(val2), [ "enabled" ]) && isValid2; return isValid2; }, "validateCache"); __name(warnIfDurableObjectsHaveNoMigrations, "warnIfDurableObjectsHaveNoMigrations"); __name2(warnIfDurableObjectsHaveNoMigrations, "warnIfDurableObjectsHaveNoMigrations"); validatePythonModules = /* @__PURE__ */ __name2((diagnostics, field, value, topLevelEnv) => { if (value === void 0) { return true; } if (typeof value !== "object" || value === null || Array.isArray(value)) { diagnostics.errors.push( `"${field}" should be an object but got ${JSON.stringify(value)}.` ); return false; } const val2 = value; if (!("exclude" in val2)) { return false; } if (!isStringArray(diagnostics, `${field}.exclude`, val2.exclude, topLevelEnv)) { return false; } return true; }, "validatePythonModules"); __name(isRemoteValid, "isRemoteValid"); __name2(isRemoteValid, "isRemoteValid"); __name(isDockerfile, "isDockerfile"); __name2(isDockerfile, "isDockerfile"); supportedPagesConfigFields = [ "pages_build_output_dir", "name", "compatibility_date", "compatibility_flags", "send_metrics", "no_bundle", "limits", "placement", "vars", "durable_objects", "kv_namespaces", "queues", // `producers` ONLY "r2_buckets", "d1_databases", "vectorize", "hyperdrive", "services", "analytics_engine_datasets", "ai", "version_metadata", "dev", "mtls_certificates", "browser", "upload_source_maps", // normalizeAndValidateConfig() sets these values "configPath", "userConfigPath", "topLevelName", "definedEnvironments", "targetEnvironment" ]; __name(validatePagesConfig, "validatePagesConfig"); __name2(validatePagesConfig, "validatePagesConfig"); __name(validateMainField, "validateMainField"); __name2(validateMainField, "validateMainField"); __name(validateProjectName, "validateProjectName"); __name2(validateProjectName, "validateProjectName"); __name(validatePagesEnvironmentNames, "validatePagesEnvironmentNames"); __name2(validatePagesEnvironmentNames, "validatePagesEnvironmentNames"); __name(validateUnsupportedFields, "validateUnsupportedFields"); __name2(validateUnsupportedFields, "validateUnsupportedFields"); __name(validateDurableObjectBinding2, "validateDurableObjectBinding2"); __name2(validateDurableObjectBinding2, "validateDurableObjectBinding"); } }); // ../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/build/lib/yerror.js var YError; var init_yerror = __esm({ "../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/build/lib/yerror.js"() { init_import_meta_url(); YError = class _YError extends Error { static { __name(this, "YError"); } constructor(msg) { super(msg || "yargs error"); this.name = "YError"; if (Error.captureStackTrace) { Error.captureStackTrace(this, _YError); } } }; } }); // ../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/build/lib/utils/apply-extends.js function applyExtends(config, cwd2, mergeExtends, _shim) { shim = _shim; let defaultConfig = {}; if (Object.prototype.hasOwnProperty.call(config, "extends")) { if (typeof config.extends !== "string") return defaultConfig; const isPath = /\.json|\..*rc$/.test(config.extends); let pathToDefault = null; if (!isPath) { try { pathToDefault = __require.resolve(config.extends); } catch (_err) { return config; } } else { pathToDefault = getPathToDefaultConfig(cwd2, config.extends); } checkForCircularExtends(pathToDefault); previouslyVisitedConfigs.push(pathToDefault); defaultConfig = isPath ? JSON.parse(shim.readFileSync(pathToDefault, "utf8")) : __require(config.extends); delete config.extends; defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim); } previouslyVisitedConfigs = []; return mergeExtends ? mergeDeep(defaultConfig, config) : Object.assign({}, defaultConfig, config); } function checkForCircularExtends(cfgPath) { if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { throw new YError(`Circular extended configurations: '${cfgPath}'.`); } } function getPathToDefaultConfig(cwd2, pathToExtend) { return shim.path.resolve(cwd2, pathToExtend); } function mergeDeep(config1, config2) { const target = {}; function isObject4(obj) { return obj && typeof obj === "object" && !Array.isArray(obj); } __name(isObject4, "isObject"); Object.assign(target, config1); for (const key of Object.keys(config2)) { if (isObject4(config2[key]) && isObject4(target[key])) { target[key] = mergeDeep(config1[key], config2[key]); } else { target[key] = config2[key]; } } return target; } var previouslyVisitedConfigs, shim; var init_apply_extends = __esm({ "../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/build/lib/utils/apply-extends.js"() { init_import_meta_url(); init_yerror(); previouslyVisitedConfigs = []; __name(applyExtends, "applyExtends"); __name(checkForCircularExtends, "checkForCircularExtends"); __name(getPathToDefaultConfig, "getPathToDefaultConfig"); __name(mergeDeep, "mergeDeep"); } }); // ../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/build/lib/utils/process-argv.js function getProcessArgvBinIndex() { if (isBundledElectronApp()) return 0; return 1; } function isBundledElectronApp() { return isElectronApp() && !process.defaultApp; } function isElectronApp() { return !!process.versions.electron; } function hideBin(argv) { return argv.slice(getProcessArgvBinIndex() + 1); } function getProcessArgvBin() { return process.argv[getProcessArgvBinIndex()]; } var init_process_argv = __esm({ "../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/build/lib/utils/process-argv.js"() { init_import_meta_url(); __name(getProcessArgvBinIndex, "getProcessArgvBinIndex"); __name(isBundledElectronApp, "isBundledElectronApp"); __name(isElectronApp, "isElectronApp"); __name(hideBin, "hideBin"); __name(getProcessArgvBin, "getProcessArgvBin"); } }); // ../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/string-utils.js function camelCase(str) { const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase(); if (!isCamelCase) { str = str.toLowerCase(); } if (str.indexOf("-") === -1 && str.indexOf("_") === -1) { return str; } else { let camelcase = ""; let nextChrUpper = false; const leadingHyphens = str.match(/^-+/); for (let i7 = leadingHyphens ? leadingHyphens[0].length : 0; i7 < str.length; i7++) { let chr = str.charAt(i7); if (nextChrUpper) { nextChrUpper = false; chr = chr.toUpperCase(); } if (i7 !== 0 && (chr === "-" || chr === "_")) { nextChrUpper = true; } else if (chr !== "-" && chr !== "_") { camelcase += chr; } } return camelcase; } } function decamelize(str, joinString) { const lowercase = str.toLowerCase(); joinString = joinString || "-"; let notCamelcase = ""; for (let i7 = 0; i7 < str.length; i7++) { const chrLower = lowercase.charAt(i7); const chrString = str.charAt(i7); if (chrLower !== chrString && i7 > 0) { notCamelcase += `${joinString}${lowercase.charAt(i7)}`; } else { notCamelcase += chrString; } } return notCamelcase; } function looksLikeNumber(x7) { if (x7 === null || x7 === void 0) return false; if (typeof x7 === "number") return true; if (/^0x[0-9a-f]+$/i.test(x7)) return true; if (/^0[^.]/.test(x7)) return false; return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x7); } var init_string_utils = __esm({ "../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/string-utils.js"() { init_import_meta_url(); __name(camelCase, "camelCase"); __name(decamelize, "decamelize"); __name(looksLikeNumber, "looksLikeNumber"); } }); // ../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/tokenize-arg-string.js function tokenizeArgString(argString) { if (Array.isArray(argString)) { return argString.map((e9) => typeof e9 !== "string" ? e9 + "" : e9); } argString = argString.trim(); let i7 = 0; let prevC = null; let c8 = null; let opening = null; const args = []; for (let ii = 0; ii < argString.length; ii++) { prevC = c8; c8 = argString.charAt(ii); if (c8 === " " && !opening) { if (!(prevC === " ")) { i7++; } continue; } if (c8 === opening) { opening = null; } else if ((c8 === "'" || c8 === '"') && !opening) { opening = c8; } if (!args[i7]) args[i7] = ""; args[i7] += c8; } return args; } var init_tokenize_arg_string = __esm({ "../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/tokenize-arg-string.js"() { init_import_meta_url(); __name(tokenizeArgString, "tokenizeArgString"); } }); // ../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/yargs-parser-types.js var DefaultValuesForTypeKey; var init_yargs_parser_types = __esm({ "../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/yargs-parser-types.js"() { init_import_meta_url(); (function(DefaultValuesForTypeKey2) { DefaultValuesForTypeKey2["BOOLEAN"] = "boolean"; DefaultValuesForTypeKey2["STRING"] = "string"; DefaultValuesForTypeKey2["NUMBER"] = "number"; DefaultValuesForTypeKey2["ARRAY"] = "array"; })(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {})); } }); // ../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/yargs-parser.js function combineAliases(aliases2) { const aliasArrays = []; const combined = /* @__PURE__ */ Object.create(null); let change = true; Object.keys(aliases2).forEach(function(key) { aliasArrays.push([].concat(aliases2[key], key)); }); while (change) { change = false; for (let i7 = 0; i7 < aliasArrays.length; i7++) { for (let ii = i7 + 1; ii < aliasArrays.length; ii++) { const intersect = aliasArrays[i7].filter(function(v8) { return aliasArrays[ii].indexOf(v8) !== -1; }); if (intersect.length) { aliasArrays[i7] = aliasArrays[i7].concat(aliasArrays[ii]); aliasArrays.splice(ii, 1); change = true; break; } } } } aliasArrays.forEach(function(aliasArray) { aliasArray = aliasArray.filter(function(v8, i7, self2) { return self2.indexOf(v8) === i7; }); const lastAlias = aliasArray.pop(); if (lastAlias !== void 0 && typeof lastAlias === "string") { combined[lastAlias] = aliasArray; } }); return combined; } function increment(orig) { return orig !== void 0 ? orig + 1 : 1; } function sanitizeKey(key) { if (key === "__proto__") return "___proto___"; return key; } function stripQuotes(val2) { return typeof val2 === "string" && (val2[0] === "'" || val2[0] === '"') && val2[val2.length - 1] === val2[0] ? val2.substring(1, val2.length - 1) : val2; } var mixin, YargsParser; var init_yargs_parser = __esm({ "../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/yargs-parser.js"() { init_import_meta_url(); init_tokenize_arg_string(); init_yargs_parser_types(); init_string_utils(); YargsParser = class { static { __name(this, "YargsParser"); } constructor(_mixin) { mixin = _mixin; } parse(argsInput, options) { const opts = Object.assign({ alias: void 0, array: void 0, boolean: void 0, config: void 0, configObjects: void 0, configuration: void 0, coerce: void 0, count: void 0, default: void 0, envPrefix: void 0, narg: void 0, normalize: void 0, string: void 0, number: void 0, __: void 0, key: void 0 }, options); const args = tokenizeArgString(argsInput); const inputIsString = typeof argsInput === "string"; const aliases2 = combineAliases(Object.assign(/* @__PURE__ */ Object.create(null), opts.alias)); const configuration = Object.assign({ "boolean-negation": true, "camel-case-expansion": true, "combine-arrays": false, "dot-notation": true, "duplicate-arguments-array": true, "flatten-duplicate-arrays": true, "greedy-arrays": true, "halt-at-non-option": false, "nargs-eats-options": false, "negation-prefix": "no-", "parse-numbers": true, "parse-positional-numbers": true, "populate--": false, "set-placeholder-key": false, "short-option-groups": true, "strip-aliased": false, "strip-dashed": false, "unknown-options-as-args": false }, opts.configuration); const defaults3 = Object.assign(/* @__PURE__ */ Object.create(null), opts.default); const configObjects = opts.configObjects || []; const envPrefix = opts.envPrefix; const notFlagsOption = configuration["populate--"]; const notFlagsArgv = notFlagsOption ? "--" : "_"; const newAliases = /* @__PURE__ */ Object.create(null); const defaulted = /* @__PURE__ */ Object.create(null); const __ = opts.__ || mixin.format; const flags2 = { aliases: /* @__PURE__ */ Object.create(null), arrays: /* @__PURE__ */ Object.create(null), bools: /* @__PURE__ */ Object.create(null), strings: /* @__PURE__ */ Object.create(null), numbers: /* @__PURE__ */ Object.create(null), counts: /* @__PURE__ */ Object.create(null), normalize: /* @__PURE__ */ Object.create(null), configs: /* @__PURE__ */ Object.create(null), nargs: /* @__PURE__ */ Object.create(null), coercions: /* @__PURE__ */ Object.create(null), keys: [] }; const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/; const negatedBoolean = new RegExp("^--" + configuration["negation-prefix"] + "(.+)"); [].concat(opts.array || []).filter(Boolean).forEach(function(opt) { const key = typeof opt === "object" ? opt.key : opt; const assignment = Object.keys(opt).map(function(key2) { const arrayFlagKeys = { boolean: "bools", string: "strings", number: "numbers" }; return arrayFlagKeys[key2]; }).filter(Boolean).pop(); if (assignment) { flags2[assignment][key] = true; } flags2.arrays[key] = true; flags2.keys.push(key); }); [].concat(opts.boolean || []).filter(Boolean).forEach(function(key) { flags2.bools[key] = true; flags2.keys.push(key); }); [].concat(opts.string || []).filter(Boolean).forEach(function(key) { flags2.strings[key] = true; flags2.keys.push(key); }); [].concat(opts.number || []).filter(Boolean).forEach(function(key) { flags2.numbers[key] = true; flags2.keys.push(key); }); [].concat(opts.count || []).filter(Boolean).forEach(function(key) { flags2.counts[key] = true; flags2.keys.push(key); }); [].concat(opts.normalize || []).filter(Boolean).forEach(function(key) { flags2.normalize[key] = true; flags2.keys.push(key); }); if (typeof opts.narg === "object") { Object.entries(opts.narg).forEach(([key, value]) => { if (typeof value === "number") { flags2.nargs[key] = value; flags2.keys.push(key); } }); } if (typeof opts.coerce === "object") { Object.entries(opts.coerce).forEach(([key, value]) => { if (typeof value === "function") { flags2.coercions[key] = value; flags2.keys.push(key); } }); } if (typeof opts.config !== "undefined") { if (Array.isArray(opts.config) || typeof opts.config === "string") { [].concat(opts.config).filter(Boolean).forEach(function(key) { flags2.configs[key] = true; }); } else if (typeof opts.config === "object") { Object.entries(opts.config).forEach(([key, value]) => { if (typeof value === "boolean" || typeof value === "function") { flags2.configs[key] = value; } }); } } extendAliases(opts.key, aliases2, opts.default, flags2.arrays); Object.keys(defaults3).forEach(function(key) { (flags2.aliases[key] || []).forEach(function(alias) { defaults3[alias] = defaults3[key]; }); }); let error2 = null; checkConfiguration(); let notFlags = []; const argv = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }); const argvReturn = {}; for (let i7 = 0; i7 < args.length; i7++) { const arg = args[i7]; const truncatedArg = arg.replace(/^-{3,}/, "---"); let broken; let key; let letters; let m7; let next; let value; if (arg !== "--" && /^-/.test(arg) && isUnknownOptionAsArg(arg)) { pushPositional(arg); } else if (truncatedArg.match(/^---+(=|$)/)) { pushPositional(arg); continue; } else if (arg.match(/^--.+=/) || !configuration["short-option-groups"] && arg.match(/^-.+=/)) { m7 = arg.match(/^--?([^=]+)=([\s\S]*)$/); if (m7 !== null && Array.isArray(m7) && m7.length >= 3) { if (checkAllAliases(m7[1], flags2.arrays)) { i7 = eatArray(i7, m7[1], args, m7[2]); } else if (checkAllAliases(m7[1], flags2.nargs) !== false) { i7 = eatNargs(i7, m7[1], args, m7[2]); } else { setArg(m7[1], m7[2], true); } } } else if (arg.match(negatedBoolean) && configuration["boolean-negation"]) { m7 = arg.match(negatedBoolean); if (m7 !== null && Array.isArray(m7) && m7.length >= 2) { key = m7[1]; setArg(key, checkAllAliases(key, flags2.arrays) ? [false] : false); } } else if (arg.match(/^--.+/) || !configuration["short-option-groups"] && arg.match(/^-[^-]+/)) { m7 = arg.match(/^--?(.+)/); if (m7 !== null && Array.isArray(m7) && m7.length >= 2) { key = m7[1]; if (checkAllAliases(key, flags2.arrays)) { i7 = eatArray(i7, key, args); } else if (checkAllAliases(key, flags2.nargs) !== false) { i7 = eatNargs(i7, key, args); } else { next = args[i7 + 1]; if (next !== void 0 && (!next.match(/^-/) || next.match(negative)) && !checkAllAliases(key, flags2.bools) && !checkAllAliases(key, flags2.counts)) { setArg(key, next); i7++; } else if (/^(true|false)$/.test(next)) { setArg(key, next); i7++; } else { setArg(key, defaultValue(key)); } } } } else if (arg.match(/^-.\..+=/)) { m7 = arg.match(/^-([^=]+)=([\s\S]*)$/); if (m7 !== null && Array.isArray(m7) && m7.length >= 3) { setArg(m7[1], m7[2]); } } else if (arg.match(/^-.\..+/) && !arg.match(negative)) { next = args[i7 + 1]; m7 = arg.match(/^-(.\..+)/); if (m7 !== null && Array.isArray(m7) && m7.length >= 2) { key = m7[1]; if (next !== void 0 && !next.match(/^-/) && !checkAllAliases(key, flags2.bools) && !checkAllAliases(key, flags2.counts)) { setArg(key, next); i7++; } else { setArg(key, defaultValue(key)); } } } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { letters = arg.slice(1, -1).split(""); broken = false; for (let j7 = 0; j7 < letters.length; j7++) { next = arg.slice(j7 + 2); if (letters[j7 + 1] && letters[j7 + 1] === "=") { value = arg.slice(j7 + 3); key = letters[j7]; if (checkAllAliases(key, flags2.arrays)) { i7 = eatArray(i7, key, args, value); } else if (checkAllAliases(key, flags2.nargs) !== false) { i7 = eatNargs(i7, key, args, value); } else { setArg(key, value); } broken = true; break; } if (next === "-") { setArg(letters[j7], next); continue; } if (/[A-Za-z]/.test(letters[j7]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) && checkAllAliases(next, flags2.bools) === false) { setArg(letters[j7], next); broken = true; break; } if (letters[j7 + 1] && letters[j7 + 1].match(/\W/)) { setArg(letters[j7], next); broken = true; break; } else { setArg(letters[j7], defaultValue(letters[j7])); } } key = arg.slice(-1)[0]; if (!broken && key !== "-") { if (checkAllAliases(key, flags2.arrays)) { i7 = eatArray(i7, key, args); } else if (checkAllAliases(key, flags2.nargs) !== false) { i7 = eatNargs(i7, key, args); } else { next = args[i7 + 1]; if (next !== void 0 && (!/^(-|--)[^-]/.test(next) || next.match(negative)) && !checkAllAliases(key, flags2.bools) && !checkAllAliases(key, flags2.counts)) { setArg(key, next); i7++; } else if (/^(true|false)$/.test(next)) { setArg(key, next); i7++; } else { setArg(key, defaultValue(key)); } } } } else if (arg.match(/^-[0-9]$/) && arg.match(negative) && checkAllAliases(arg.slice(1), flags2.bools)) { key = arg.slice(1); setArg(key, defaultValue(key)); } else if (arg === "--") { notFlags = args.slice(i7 + 1); break; } else if (configuration["halt-at-non-option"]) { notFlags = args.slice(i7); break; } else { pushPositional(arg); } } applyEnvVars(argv, true); applyEnvVars(argv, false); setConfig(argv); setConfigObjects(); applyDefaultsAndAliases(argv, flags2.aliases, defaults3, true); applyCoercions(argv); if (configuration["set-placeholder-key"]) setPlaceholderKeys(argv); Object.keys(flags2.counts).forEach(function(key) { if (!hasKey(argv, key.split("."))) setArg(key, 0); }); if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = []; notFlags.forEach(function(key) { argv[notFlagsArgv].push(key); }); if (configuration["camel-case-expansion"] && configuration["strip-dashed"]) { Object.keys(argv).filter((key) => key !== "--" && key.includes("-")).forEach((key) => { delete argv[key]; }); } if (configuration["strip-aliased"]) { [].concat(...Object.keys(aliases2).map((k7) => aliases2[k7])).forEach((alias) => { if (configuration["camel-case-expansion"] && alias.includes("-")) { delete argv[alias.split(".").map((prop) => camelCase(prop)).join(".")]; } delete argv[alias]; }); } function pushPositional(arg) { const maybeCoercedNumber = maybeCoerceNumber("_", arg); if (typeof maybeCoercedNumber === "string" || typeof maybeCoercedNumber === "number") { argv._.push(maybeCoercedNumber); } } __name(pushPositional, "pushPositional"); function eatNargs(i7, key, args2, argAfterEqualSign) { let ii; let toEat = checkAllAliases(key, flags2.nargs); toEat = typeof toEat !== "number" || isNaN(toEat) ? 1 : toEat; if (toEat === 0) { if (!isUndefined(argAfterEqualSign)) { error2 = Error(__("Argument unexpected for: %s", key)); } setArg(key, defaultValue(key)); return i7; } let available = isUndefined(argAfterEqualSign) ? 0 : 1; if (configuration["nargs-eats-options"]) { if (args2.length - (i7 + 1) + available < toEat) { error2 = Error(__("Not enough arguments following: %s", key)); } available = toEat; } else { for (ii = i7 + 1; ii < args2.length; ii++) { if (!args2[ii].match(/^-[^0-9]/) || args2[ii].match(negative) || isUnknownOptionAsArg(args2[ii])) available++; else break; } if (available < toEat) error2 = Error(__("Not enough arguments following: %s", key)); } let consumed = Math.min(available, toEat); if (!isUndefined(argAfterEqualSign) && consumed > 0) { setArg(key, argAfterEqualSign); consumed--; } for (ii = i7 + 1; ii < consumed + i7 + 1; ii++) { setArg(key, args2[ii]); } return i7 + consumed; } __name(eatNargs, "eatNargs"); function eatArray(i7, key, args2, argAfterEqualSign) { let argsToSet = []; let next = argAfterEqualSign || args2[i7 + 1]; const nargsCount = checkAllAliases(key, flags2.nargs); if (checkAllAliases(key, flags2.bools) && !/^(true|false)$/.test(next)) { argsToSet.push(true); } else if (isUndefined(next) || isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) { if (defaults3[key] !== void 0) { const defVal = defaults3[key]; argsToSet = Array.isArray(defVal) ? defVal : [defVal]; } } else { if (!isUndefined(argAfterEqualSign)) { argsToSet.push(processValue(key, argAfterEqualSign, true)); } for (let ii = i7 + 1; ii < args2.length; ii++) { if (!configuration["greedy-arrays"] && argsToSet.length > 0 || nargsCount && typeof nargsCount === "number" && argsToSet.length >= nargsCount) break; next = args2[ii]; if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) break; i7 = ii; argsToSet.push(processValue(key, next, inputIsString)); } } if (typeof nargsCount === "number" && (nargsCount && argsToSet.length < nargsCount || isNaN(nargsCount) && argsToSet.length === 0)) { error2 = Error(__("Not enough arguments following: %s", key)); } setArg(key, argsToSet); return i7; } __name(eatArray, "eatArray"); function setArg(key, val2, shouldStripQuotes = inputIsString) { if (/-/.test(key) && configuration["camel-case-expansion"]) { const alias = key.split(".").map(function(prop) { return camelCase(prop); }).join("."); addNewAlias(key, alias); } const value = processValue(key, val2, shouldStripQuotes); const splitKey = key.split("."); setKey(argv, splitKey, value); if (flags2.aliases[key]) { flags2.aliases[key].forEach(function(x7) { const keyProperties = x7.split("."); setKey(argv, keyProperties, value); }); } if (splitKey.length > 1 && configuration["dot-notation"]) { (flags2.aliases[splitKey[0]] || []).forEach(function(x7) { let keyProperties = x7.split("."); const a7 = [].concat(splitKey); a7.shift(); keyProperties = keyProperties.concat(a7); if (!(flags2.aliases[key] || []).includes(keyProperties.join("."))) { setKey(argv, keyProperties, value); } }); } if (checkAllAliases(key, flags2.normalize) && !checkAllAliases(key, flags2.arrays)) { const keys = [key].concat(flags2.aliases[key] || []); keys.forEach(function(key2) { Object.defineProperty(argvReturn, key2, { enumerable: true, get() { return val2; }, set(value2) { val2 = typeof value2 === "string" ? mixin.normalize(value2) : value2; } }); }); } } __name(setArg, "setArg"); function addNewAlias(key, alias) { if (!(flags2.aliases[key] && flags2.aliases[key].length)) { flags2.aliases[key] = [alias]; newAliases[alias] = true; } if (!(flags2.aliases[alias] && flags2.aliases[alias].length)) { addNewAlias(alias, key); } } __name(addNewAlias, "addNewAlias"); function processValue(key, val2, shouldStripQuotes) { if (shouldStripQuotes) { val2 = stripQuotes(val2); } if (checkAllAliases(key, flags2.bools) || checkAllAliases(key, flags2.counts)) { if (typeof val2 === "string") val2 = val2 === "true"; } let value = Array.isArray(val2) ? val2.map(function(v8) { return maybeCoerceNumber(key, v8); }) : maybeCoerceNumber(key, val2); if (checkAllAliases(key, flags2.counts) && (isUndefined(value) || typeof value === "boolean")) { value = increment(); } if (checkAllAliases(key, flags2.normalize) && checkAllAliases(key, flags2.arrays)) { if (Array.isArray(val2)) value = val2.map((val3) => { return mixin.normalize(val3); }); else value = mixin.normalize(val2); } return value; } __name(processValue, "processValue"); function maybeCoerceNumber(key, value) { if (!configuration["parse-positional-numbers"] && key === "_") return value; if (!checkAllAliases(key, flags2.strings) && !checkAllAliases(key, flags2.bools) && !Array.isArray(value)) { const shouldCoerceNumber = looksLikeNumber(value) && configuration["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${value}`))); if (shouldCoerceNumber || !isUndefined(value) && checkAllAliases(key, flags2.numbers)) { value = Number(value); } } return value; } __name(maybeCoerceNumber, "maybeCoerceNumber"); function setConfig(argv2) { const configLookup = /* @__PURE__ */ Object.create(null); applyDefaultsAndAliases(configLookup, flags2.aliases, defaults3); Object.keys(flags2.configs).forEach(function(configKey) { const configPath = argv2[configKey] || configLookup[configKey]; if (configPath) { try { let config = null; const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath); const resolveConfig2 = flags2.configs[configKey]; if (typeof resolveConfig2 === "function") { try { config = resolveConfig2(resolvedConfigPath); } catch (e9) { config = e9; } if (config instanceof Error) { error2 = config; return; } } else { config = mixin.require(resolvedConfigPath); } setConfigObject(config); } catch (ex) { if (ex.name === "PermissionDenied") error2 = ex; else if (argv2[configKey]) error2 = Error(__("Invalid JSON config file: %s", configPath)); } } }); } __name(setConfig, "setConfig"); function setConfigObject(config, prev) { Object.keys(config).forEach(function(key) { const value = config[key]; const fullKey = prev ? prev + "." + key : key; if (typeof value === "object" && value !== null && !Array.isArray(value) && configuration["dot-notation"]) { setConfigObject(value, fullKey); } else { if (!hasKey(argv, fullKey.split(".")) || checkAllAliases(fullKey, flags2.arrays) && configuration["combine-arrays"]) { setArg(fullKey, value); } } }); } __name(setConfigObject, "setConfigObject"); function setConfigObjects() { if (typeof configObjects !== "undefined") { configObjects.forEach(function(configObject) { setConfigObject(configObject); }); } } __name(setConfigObjects, "setConfigObjects"); function applyEnvVars(argv2, configOnly) { if (typeof envPrefix === "undefined") return; const prefix = typeof envPrefix === "string" ? envPrefix : ""; const env6 = mixin.env(); Object.keys(env6).forEach(function(envVar) { if (prefix === "" || envVar.lastIndexOf(prefix, 0) === 0) { const keys = envVar.split("__").map(function(key, i7) { if (i7 === 0) { key = key.substring(prefix.length); } return camelCase(key); }); if ((configOnly && flags2.configs[keys.join(".")] || !configOnly) && !hasKey(argv2, keys)) { setArg(keys.join("."), env6[envVar]); } } }); } __name(applyEnvVars, "applyEnvVars"); function applyCoercions(argv2) { let coerce4; const applied = /* @__PURE__ */ new Set(); Object.keys(argv2).forEach(function(key) { if (!applied.has(key)) { coerce4 = checkAllAliases(key, flags2.coercions); if (typeof coerce4 === "function") { try { const value = maybeCoerceNumber(key, coerce4(argv2[key])); [].concat(flags2.aliases[key] || [], key).forEach((ali) => { applied.add(ali); argv2[ali] = value; }); } catch (err) { error2 = err; } } } }); } __name(applyCoercions, "applyCoercions"); function setPlaceholderKeys(argv2) { flags2.keys.forEach((key) => { if (~key.indexOf(".")) return; if (typeof argv2[key] === "undefined") argv2[key] = void 0; }); return argv2; } __name(setPlaceholderKeys, "setPlaceholderKeys"); function applyDefaultsAndAliases(obj, aliases3, defaults4, canLog = false) { Object.keys(defaults4).forEach(function(key) { if (!hasKey(obj, key.split("."))) { setKey(obj, key.split("."), defaults4[key]); if (canLog) defaulted[key] = true; (aliases3[key] || []).forEach(function(x7) { if (hasKey(obj, x7.split("."))) return; setKey(obj, x7.split("."), defaults4[key]); }); } }); } __name(applyDefaultsAndAliases, "applyDefaultsAndAliases"); function hasKey(obj, keys) { let o7 = obj; if (!configuration["dot-notation"]) keys = [keys.join(".")]; keys.slice(0, -1).forEach(function(key2) { o7 = o7[key2] || {}; }); const key = keys[keys.length - 1]; if (typeof o7 !== "object") return false; else return key in o7; } __name(hasKey, "hasKey"); function setKey(obj, keys, value) { let o7 = obj; if (!configuration["dot-notation"]) keys = [keys.join(".")]; keys.slice(0, -1).forEach(function(key2) { key2 = sanitizeKey(key2); if (typeof o7 === "object" && o7[key2] === void 0) { o7[key2] = {}; } if (typeof o7[key2] !== "object" || Array.isArray(o7[key2])) { if (Array.isArray(o7[key2])) { o7[key2].push({}); } else { o7[key2] = [o7[key2], {}]; } o7 = o7[key2][o7[key2].length - 1]; } else { o7 = o7[key2]; } }); const key = sanitizeKey(keys[keys.length - 1]); const isTypeArray = checkAllAliases(keys.join("."), flags2.arrays); const isValueArray = Array.isArray(value); let duplicate = configuration["duplicate-arguments-array"]; if (!duplicate && checkAllAliases(key, flags2.nargs)) { duplicate = true; if (!isUndefined(o7[key]) && flags2.nargs[key] === 1 || Array.isArray(o7[key]) && o7[key].length === flags2.nargs[key]) { o7[key] = void 0; } } if (value === increment()) { o7[key] = increment(o7[key]); } else if (Array.isArray(o7[key])) { if (duplicate && isTypeArray && isValueArray) { o7[key] = configuration["flatten-duplicate-arrays"] ? o7[key].concat(value) : (Array.isArray(o7[key][0]) ? o7[key] : [o7[key]]).concat([value]); } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { o7[key] = value; } else { o7[key] = o7[key].concat([value]); } } else if (o7[key] === void 0 && isTypeArray) { o7[key] = isValueArray ? value : [value]; } else if (duplicate && !(o7[key] === void 0 || checkAllAliases(key, flags2.counts) || checkAllAliases(key, flags2.bools))) { o7[key] = [o7[key], value]; } else { o7[key] = value; } } __name(setKey, "setKey"); function extendAliases(...args2) { args2.forEach(function(obj) { Object.keys(obj || {}).forEach(function(key) { if (flags2.aliases[key]) return; flags2.aliases[key] = [].concat(aliases2[key] || []); flags2.aliases[key].concat(key).forEach(function(x7) { if (/-/.test(x7) && configuration["camel-case-expansion"]) { const c8 = camelCase(x7); if (c8 !== key && flags2.aliases[key].indexOf(c8) === -1) { flags2.aliases[key].push(c8); newAliases[c8] = true; } } }); flags2.aliases[key].concat(key).forEach(function(x7) { if (x7.length > 1 && /[A-Z]/.test(x7) && configuration["camel-case-expansion"]) { const c8 = decamelize(x7, "-"); if (c8 !== key && flags2.aliases[key].indexOf(c8) === -1) { flags2.aliases[key].push(c8); newAliases[c8] = true; } } }); flags2.aliases[key].forEach(function(x7) { flags2.aliases[x7] = [key].concat(flags2.aliases[key].filter(function(y5) { return x7 !== y5; })); }); }); }); } __name(extendAliases, "extendAliases"); function checkAllAliases(key, flag) { const toCheck = [].concat(flags2.aliases[key] || [], key); const keys = Object.keys(flag); const setAlias = toCheck.find((key2) => keys.includes(key2)); return setAlias ? flag[setAlias] : false; } __name(checkAllAliases, "checkAllAliases"); function hasAnyFlag(key) { const flagsKeys = Object.keys(flags2); const toCheck = [].concat(flagsKeys.map((k7) => flags2[k7])); return toCheck.some(function(flag) { return Array.isArray(flag) ? flag.includes(key) : flag[key]; }); } __name(hasAnyFlag, "hasAnyFlag"); function hasFlagsMatching(arg, ...patterns) { const toCheck = [].concat(...patterns); return toCheck.some(function(pattern) { const match3 = arg.match(pattern); return match3 && hasAnyFlag(match3[1]); }); } __name(hasFlagsMatching, "hasFlagsMatching"); function hasAllShortFlags(arg) { if (arg.match(negative) || !arg.match(/^-[^-]+/)) { return false; } let hasAllFlags = true; let next; const letters = arg.slice(1).split(""); for (let j7 = 0; j7 < letters.length; j7++) { next = arg.slice(j7 + 2); if (!hasAnyFlag(letters[j7])) { hasAllFlags = false; break; } if (letters[j7 + 1] && letters[j7 + 1] === "=" || next === "-" || /[A-Za-z]/.test(letters[j7]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) || letters[j7 + 1] && letters[j7 + 1].match(/\W/)) { break; } } return hasAllFlags; } __name(hasAllShortFlags, "hasAllShortFlags"); function isUnknownOptionAsArg(arg) { return configuration["unknown-options-as-args"] && isUnknownOption(arg); } __name(isUnknownOptionAsArg, "isUnknownOptionAsArg"); function isUnknownOption(arg) { arg = arg.replace(/^-{3,}/, "--"); if (arg.match(negative)) { return false; } if (hasAllShortFlags(arg)) { return false; } const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/; const normalFlag = /^-+([^=]+?)$/; const flagEndingInHyphen = /^-+([^=]+?)-$/; const flagEndingInDigits = /^-+([^=]+?\d+)$/; const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/; return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters); } __name(isUnknownOption, "isUnknownOption"); function defaultValue(key) { if (!checkAllAliases(key, flags2.bools) && !checkAllAliases(key, flags2.counts) && `${key}` in defaults3) { return defaults3[key]; } else { return defaultForType(guessType2(key)); } } __name(defaultValue, "defaultValue"); function defaultForType(type) { const def = { [DefaultValuesForTypeKey.BOOLEAN]: true, [DefaultValuesForTypeKey.STRING]: "", [DefaultValuesForTypeKey.NUMBER]: void 0, [DefaultValuesForTypeKey.ARRAY]: [] }; return def[type]; } __name(defaultForType, "defaultForType"); function guessType2(key) { let type = DefaultValuesForTypeKey.BOOLEAN; if (checkAllAliases(key, flags2.strings)) type = DefaultValuesForTypeKey.STRING; else if (checkAllAliases(key, flags2.numbers)) type = DefaultValuesForTypeKey.NUMBER; else if (checkAllAliases(key, flags2.bools)) type = DefaultValuesForTypeKey.BOOLEAN; else if (checkAllAliases(key, flags2.arrays)) type = DefaultValuesForTypeKey.ARRAY; return type; } __name(guessType2, "guessType"); function isUndefined(num) { return num === void 0; } __name(isUndefined, "isUndefined"); function checkConfiguration() { Object.keys(flags2.counts).find((key) => { if (checkAllAliases(key, flags2.arrays)) { error2 = Error(__("Invalid configuration: %s, opts.count excludes opts.array.", key)); return true; } else if (checkAllAliases(key, flags2.nargs)) { error2 = Error(__("Invalid configuration: %s, opts.count excludes opts.narg.", key)); return true; } return false; }); } __name(checkConfiguration, "checkConfiguration"); return { aliases: Object.assign({}, flags2.aliases), argv: Object.assign(argvReturn, argv), configuration, defaulted: Object.assign({}, defaulted), error: error2, newAliases: Object.assign({}, newAliases) }; } }; __name(combineAliases, "combineAliases"); __name(increment, "increment"); __name(sanitizeKey, "sanitizeKey"); __name(stripQuotes, "stripQuotes"); } }); var _a, _b, _c, minNodeVersion, nodeVersion, env, parser, yargsParser, lib_default; var init_lib = __esm({ "../../node_modules/.pnpm/yargs-parser@21.1.1/node_modules/yargs-parser/build/lib/index.js"() { init_import_meta_url(); init_string_utils(); init_yargs_parser(); minNodeVersion = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12; nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1); if (nodeVersion) { const major = Number(nodeVersion.match(/^([^.]+)/)[1]); if (major < minNodeVersion) { throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`); } } env = process ? process.env : {}; parser = new YargsParser({ cwd: process.cwd, env: /* @__PURE__ */ __name(() => { return env; }, "env"), format: util2.format, normalize: path3.normalize, resolve: path3.resolve, // TODO: figure out a way to combine ESM and CJS coverage, such that // we can exercise all the lines below: require: /* @__PURE__ */ __name((path82) => { if (typeof __require !== "undefined") { return __require(path82); } else if (path82.match(/\.json$/)) { return JSON.parse(fs23.readFileSync(path82, "utf8")); } else { throw Error("only .json config files are supported in ESM"); } }, "require") }); yargsParser = /* @__PURE__ */ __name(function Parser(args, opts) { const result = parser.parse(args.slice(), opts); return result.argv; }, "Parser"); yargsParser.detailed = function(args, opts) { return parser.parse(args.slice(), opts); }; yargsParser.camelCase = camelCase; yargsParser.decamelize = decamelize; yargsParser.looksLikeNumber = looksLikeNumber; lib_default = yargsParser; } }); // ../../node_modules/.pnpm/cliui@8.0.1/node_modules/cliui/build/lib/index.js function addBorder(col, ts, style) { if (col.border) { if (/[.']-+[.']/.test(ts)) { return ""; } if (ts.trim().length !== 0) { return style; } return " "; } return ""; } function _minWidth(col) { const padding = col.padding || []; const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); if (col.border) { return minWidth + 4; } return minWidth; } function getWindowWidth() { if (typeof process === "object" && process.stdout && process.stdout.columns) { return process.stdout.columns; } return 80; } function alignRight(str, width) { str = str.trim(); const strWidth = mixin2.stringWidth(str); if (strWidth < width) { return " ".repeat(width - strWidth) + str; } return str; } function alignCenter(str, width) { str = str.trim(); const strWidth = mixin2.stringWidth(str); if (strWidth >= width) { return str; } return " ".repeat(width - strWidth >> 1) + str; } function cliui(opts, _mixin) { mixin2 = _mixin; return new UI({ width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), wrap: opts === null || opts === void 0 ? void 0 : opts.wrap }); } var align, top, right, bottom, left, UI, mixin2; var init_lib2 = __esm({ "../../node_modules/.pnpm/cliui@8.0.1/node_modules/cliui/build/lib/index.js"() { init_import_meta_url(); align = { right: alignRight, center: alignCenter }; top = 0; right = 1; bottom = 2; left = 3; UI = class { static { __name(this, "UI"); } constructor(opts) { var _a5; this.width = opts.width; this.wrap = (_a5 = opts.wrap) !== null && _a5 !== void 0 ? _a5 : true; this.rows = []; } span(...args) { const cols = this.div(...args); cols.span = true; } resetOutput() { this.rows = []; } div(...args) { if (args.length === 0) { this.div(""); } if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === "string") { return this.applyLayoutDSL(args[0]); } const cols = args.map((arg) => { if (typeof arg === "string") { return this.colFromString(arg); } return arg; }); this.rows.push(cols); return cols; } shouldApplyLayoutDSL(...args) { return args.length === 1 && typeof args[0] === "string" && /[\t\n]/.test(args[0]); } applyLayoutDSL(str) { const rows = str.split("\n").map((row) => row.split(" ")); let leftColumnWidth = 0; rows.forEach((columns) => { if (columns.length > 1 && mixin2.stringWidth(columns[0]) > leftColumnWidth) { leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin2.stringWidth(columns[0])); } }); rows.forEach((columns) => { this.div(...columns.map((r9, i7) => { return { text: r9.trim(), padding: this.measurePadding(r9), width: i7 === 0 && columns.length > 1 ? leftColumnWidth : void 0 }; })); }); return this.rows[this.rows.length - 1]; } colFromString(text) { return { text, padding: this.measurePadding(text) }; } measurePadding(str) { const noAnsi = mixin2.stripAnsi(str); return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; } toString() { const lines = []; this.rows.forEach((row) => { this.rowToString(row, lines); }); return lines.filter((line) => !line.hidden).map((line) => line.text).join("\n"); } rowToString(row, lines) { this.rasterize(row).forEach((rrow, r9) => { let str = ""; rrow.forEach((col, c8) => { const { width } = row[c8]; const wrapWidth = this.negatePadding(row[c8]); let ts = col; if (wrapWidth > mixin2.stringWidth(col)) { ts += " ".repeat(wrapWidth - mixin2.stringWidth(col)); } if (row[c8].align && row[c8].align !== "left" && this.wrap) { const fn2 = align[row[c8].align]; ts = fn2(ts, wrapWidth); if (mixin2.stringWidth(ts) < wrapWidth) { ts += " ".repeat((width || 0) - mixin2.stringWidth(ts) - 1); } } const padding = row[c8].padding || [0, 0, 0, 0]; if (padding[left]) { str += " ".repeat(padding[left]); } str += addBorder(row[c8], ts, "| "); str += ts; str += addBorder(row[c8], ts, " |"); if (padding[right]) { str += " ".repeat(padding[right]); } if (r9 === 0 && lines.length > 0) { str = this.renderInline(str, lines[lines.length - 1]); } }); lines.push({ text: str.replace(/ +$/, ""), span: row.span }); }); return lines; } // if the full 'source' can render in // the target line, do so. renderInline(source, previousLine) { const match3 = source.match(/^ */); const leadingWhitespace = match3 ? match3[0].length : 0; const target = previousLine.text; const targetTextWidth = mixin2.stringWidth(target.trimRight()); if (!previousLine.span) { return source; } if (!this.wrap) { previousLine.hidden = true; return target + source; } if (leadingWhitespace < targetTextWidth) { return source; } previousLine.hidden = true; return target.trimRight() + " ".repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); } rasterize(row) { const rrows = []; const widths = this.columnWidths(row); let wrapped; row.forEach((col, c8) => { col.width = widths[c8]; if (this.wrap) { wrapped = mixin2.wrap(col.text, this.negatePadding(col), { hard: true }).split("\n"); } else { wrapped = col.text.split("\n"); } if (col.border) { wrapped.unshift("." + "-".repeat(this.negatePadding(col) + 2) + "."); wrapped.push("'" + "-".repeat(this.negatePadding(col) + 2) + "'"); } if (col.padding) { wrapped.unshift(...new Array(col.padding[top] || 0).fill("")); wrapped.push(...new Array(col.padding[bottom] || 0).fill("")); } wrapped.forEach((str, r9) => { if (!rrows[r9]) { rrows.push([]); } const rrow = rrows[r9]; for (let i7 = 0; i7 < c8; i7++) { if (rrow[i7] === void 0) { rrow.push(""); } } rrow.push(str); }); }); return rrows; } negatePadding(col) { let wrapWidth = col.width || 0; if (col.padding) { wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); } if (col.border) { wrapWidth -= 4; } return wrapWidth; } columnWidths(row) { if (!this.wrap) { return row.map((col) => { return col.width || mixin2.stringWidth(col.text); }); } let unset = row.length; let remainingWidth = this.width; const widths = row.map((col) => { if (col.width) { unset--; remainingWidth -= col.width; return col.width; } return void 0; }); const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; return widths.map((w7, i7) => { if (w7 === void 0) { return Math.max(unsetWidth, _minWidth(row[i7])); } return w7; }); } }; __name(addBorder, "addBorder"); __name(_minWidth, "_minWidth"); __name(getWindowWidth, "getWindowWidth"); __name(alignRight, "alignRight"); __name(alignCenter, "alignCenter"); __name(cliui, "cliui"); } }); // ../../node_modules/.pnpm/cliui@8.0.1/node_modules/cliui/build/lib/string-utils.js function stripAnsi(str) { return str.replace(ansi, ""); } function wrap(str, width) { const [start, end] = str.match(ansi) || ["", ""]; str = stripAnsi(str); let wrapped = ""; for (let i7 = 0; i7 < str.length; i7++) { if (i7 !== 0 && i7 % width === 0) { wrapped += "\n"; } wrapped += str.charAt(i7); } if (start && end) { wrapped = `${start}${wrapped}${end}`; } return wrapped; } var ansi; var init_string_utils2 = __esm({ "../../node_modules/.pnpm/cliui@8.0.1/node_modules/cliui/build/lib/string-utils.js"() { init_import_meta_url(); ansi = new RegExp("\x1B(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)", "g"); __name(stripAnsi, "stripAnsi"); __name(wrap, "wrap"); } }); // ../../node_modules/.pnpm/cliui@8.0.1/node_modules/cliui/index.mjs function ui(opts) { return cliui(opts, { stringWidth: /* @__PURE__ */ __name((str) => { return [...str].length; }, "stringWidth"), stripAnsi, wrap }); } var init_cliui = __esm({ "../../node_modules/.pnpm/cliui@8.0.1/node_modules/cliui/index.mjs"() { init_import_meta_url(); init_lib2(); init_string_utils2(); __name(ui, "ui"); } }); function sync_default(start, callback) { let dir2 = path3.resolve(".", start); let tmp, stats = fs23.statSync(dir2); if (!stats.isDirectory()) { dir2 = path3.dirname(dir2); } while (true) { tmp = callback(dir2, fs23.readdirSync(dir2)); if (tmp) return path3.resolve(dir2, tmp); dir2 = path3.dirname(tmp = dir2); if (tmp === dir2) break; } } var init_sync = __esm({ "../../node_modules/.pnpm/escalade@3.2.0/node_modules/escalade/sync/index.mjs"() { init_import_meta_url(); __name(sync_default, "default"); } }); var node_default; var init_node = __esm({ "../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/platform-shims/node.js"() { init_import_meta_url(); node_default = { fs: { readFileSync: fs23.readFileSync, writeFile: fs23.writeFile }, format: util2.format, resolve: path3.resolve, exists: /* @__PURE__ */ __name((file3) => { try { return fs23.statSync(file3).isFile(); } catch (err) { return false; } }, "exists") }; } }); // ../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/index.js function y18n(opts, _shim) { shim2 = _shim; const y18n3 = new Y18N(opts); return { __: y18n3.__.bind(y18n3), __n: y18n3.__n.bind(y18n3), setLocale: y18n3.setLocale.bind(y18n3), getLocale: y18n3.getLocale.bind(y18n3), updateLocale: y18n3.updateLocale.bind(y18n3), locale: y18n3.locale }; } var shim2, Y18N; var init_lib3 = __esm({ "../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/index.js"() { init_import_meta_url(); Y18N = class { static { __name(this, "Y18N"); } constructor(opts) { opts = opts || {}; this.directory = opts.directory || "./locales"; this.updateFiles = typeof opts.updateFiles === "boolean" ? opts.updateFiles : true; this.locale = opts.locale || "en"; this.fallbackToLanguage = typeof opts.fallbackToLanguage === "boolean" ? opts.fallbackToLanguage : true; this.cache = /* @__PURE__ */ Object.create(null); this.writeQueue = []; } __(...args) { if (typeof arguments[0] !== "string") { return this._taggedLiteral(arguments[0], ...arguments); } const str = args.shift(); let cb2 = /* @__PURE__ */ __name(function() { }, "cb"); if (typeof args[args.length - 1] === "function") cb2 = args.pop(); cb2 = cb2 || function() { }; if (!this.cache[this.locale]) this._readLocaleFile(); if (!this.cache[this.locale][str] && this.updateFiles) { this.cache[this.locale][str] = str; this._enqueueWrite({ directory: this.directory, locale: this.locale, cb: cb2 }); } else { cb2(); } return shim2.format.apply(shim2.format, [this.cache[this.locale][str] || str].concat(args)); } __n() { const args = Array.prototype.slice.call(arguments); const singular = args.shift(); const plural2 = args.shift(); const quantity = args.shift(); let cb2 = /* @__PURE__ */ __name(function() { }, "cb"); if (typeof args[args.length - 1] === "function") cb2 = args.pop(); if (!this.cache[this.locale]) this._readLocaleFile(); let str = quantity === 1 ? singular : plural2; if (this.cache[this.locale][singular]) { const entry = this.cache[this.locale][singular]; str = entry[quantity === 1 ? "one" : "other"]; } if (!this.cache[this.locale][singular] && this.updateFiles) { this.cache[this.locale][singular] = { one: singular, other: plural2 }; this._enqueueWrite({ directory: this.directory, locale: this.locale, cb: cb2 }); } else { cb2(); } const values = [str]; if (~str.indexOf("%d")) values.push(quantity); return shim2.format.apply(shim2.format, values.concat(args)); } setLocale(locale) { this.locale = locale; } getLocale() { return this.locale; } updateLocale(obj) { if (!this.cache[this.locale]) this._readLocaleFile(); for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { this.cache[this.locale][key] = obj[key]; } } } _taggedLiteral(parts, ...args) { let str = ""; parts.forEach(function(part, i7) { const arg = args[i7 + 1]; str += part; if (typeof arg !== "undefined") { str += "%s"; } }); return this.__.apply(this, [str].concat([].slice.call(args, 1))); } _enqueueWrite(work) { this.writeQueue.push(work); if (this.writeQueue.length === 1) this._processWriteQueue(); } _processWriteQueue() { const _this = this; const work = this.writeQueue[0]; const directory = work.directory; const locale = work.locale; const cb2 = work.cb; const languageFile = this._resolveLocaleFile(directory, locale); const serializedLocale = JSON.stringify(this.cache[locale], null, 2); shim2.fs.writeFile(languageFile, serializedLocale, "utf-8", function(err) { _this.writeQueue.shift(); if (_this.writeQueue.length > 0) _this._processWriteQueue(); cb2(err); }); } _readLocaleFile() { let localeLookup = {}; const languageFile = this._resolveLocaleFile(this.directory, this.locale); try { if (shim2.fs.readFileSync) { localeLookup = JSON.parse(shim2.fs.readFileSync(languageFile, "utf-8")); } } catch (err) { if (err instanceof SyntaxError) { err.message = "syntax error in " + languageFile; } if (err.code === "ENOENT") localeLookup = {}; else throw err; } this.cache[this.locale] = localeLookup; } _resolveLocaleFile(directory, locale) { let file3 = shim2.resolve(directory, "./", locale + ".json"); if (this.fallbackToLanguage && !this._fileExistsSync(file3) && ~locale.lastIndexOf("_")) { const languageFile = shim2.resolve(directory, "./", locale.split("_")[0] + ".json"); if (this._fileExistsSync(languageFile)) file3 = languageFile; } return file3; } _fileExistsSync(file3) { return shim2.exists(file3); } }; __name(y18n, "y18n"); } }); // ../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/index.mjs var y18n2, y18n_default; var init_y18n = __esm({ "../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/index.mjs"() { init_import_meta_url(); init_node(); init_lib3(); y18n2 = /* @__PURE__ */ __name((opts) => { return y18n(opts, node_default); }, "y18n"); y18n_default = y18n2; } }); var REQUIRE_ERROR, REQUIRE_DIRECTORY_ERROR, __dirname2, mainFilename, esm_default2; var init_esm = __esm({ "../../node_modules/.pnpm/yargs@17.7.2/node_modules/yargs/lib/platform-shims/esm.mjs"() { init_import_meta_url(); init_cliui(); init_sync(); init_lib(); init_process_argv(); init_yerror(); init_y18n(); REQUIRE_ERROR = "require is not supported by ESM"; REQUIRE_DIRECTORY_ERROR = "loading a directory of commands is not supported yet for ESM"; try { __dirname2 = Url.fileURLToPath(import_meta_url); } catch (e9) { __dirname2 = process.cwd(); } mainFilename = __dirname2.substring(0, __dirname2.lastIndexOf("node_modules")); esm_default2 = { assert: { notStrictEqual: assert50.notStrictEqual, strictEqual: assert50.strictEqual }, cliui: ui, findUp: sync_default, getEnv: /* @__PURE__ */ __name((key) => { return process.env[key]; }, "getEnv"), inspect: util2.inspect, getCallerFile: /* @__PURE__ */ __name(() => { throw new YError(REQUIRE_DIRECTORY_ERROR); }, "getCallerFile"), getProcessArgvBin, mainFilename: mainFilename || process.cwd(), Parser: lib_default, path: { basename: path3.basename, dirname: path3.dirname, extname: path3.extname, relative: path3.relative, resolve: path3.resolve }, process: { argv: /* @__PURE__ */ __name(() => process.argv, "argv"), cwd: process.cwd, emitWarning: /* @__PURE__ */ __name((warning, type) => process.emitWarning(warning, type), "emitWarning"), execPath: /* @__PURE__ */ __name(() => process.execPath, "execPath"), exit: process.exit, nextTick: process.nextTick, stdColumns: typeof process.stdout.columns !== "undefined" ? process.stdout.columns : null }, readFileSync: fs23.readFileSync, require: /* @__PURE__ */ __name(() => { throw new YError(REQUIRE_ERROR); }, "require"), requireDirectory: /* @__PURE__ */ __name(() => { throw new YError(REQUIRE_DIRECTORY_ERROR); }, "requireDirectory"), stringWidth: /* @__PURE__ */ __name((str) => { return [...str].length; }, "stringWidth"), y18n: y18n_default({ directory: path3.resolve(__dirname2, "../../../locales"), updateFiles: false }) }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/symbols.js var require_symbols = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/symbols.js"(exports, module4) { init_import_meta_url(); module4.exports = { kClose: Symbol("close"), kDestroy: Symbol("destroy"), kDispatch: Symbol("dispatch"), kUrl: Symbol("url"), kWriting: Symbol("writing"), kResuming: Symbol("resuming"), kQueue: Symbol("queue"), kConnect: Symbol("connect"), kConnecting: Symbol("connecting"), kKeepAliveDefaultTimeout: Symbol("default keep alive timeout"), kKeepAliveMaxTimeout: Symbol("max keep alive timeout"), kKeepAliveTimeoutThreshold: Symbol("keep alive timeout threshold"), kKeepAliveTimeoutValue: Symbol("keep alive timeout"), kKeepAlive: Symbol("keep alive"), kHeadersTimeout: Symbol("headers timeout"), kBodyTimeout: Symbol("body timeout"), kServerName: Symbol("server name"), kLocalAddress: Symbol("local address"), kHost: Symbol("host"), kNoRef: Symbol("no ref"), kBodyUsed: Symbol("used"), kBody: Symbol("abstracted request body"), kRunning: Symbol("running"), kBlocking: Symbol("blocking"), kPending: Symbol("pending"), kSize: Symbol("size"), kBusy: Symbol("busy"), kQueued: Symbol("queued"), kFree: Symbol("free"), kConnected: Symbol("connected"), kClosed: Symbol("closed"), kNeedDrain: Symbol("need drain"), kReset: Symbol("reset"), kDestroyed: Symbol.for("nodejs.stream.destroyed"), kResume: Symbol("resume"), kOnError: Symbol("on error"), kMaxHeadersSize: Symbol("max headers size"), kRunningIdx: Symbol("running index"), kPendingIdx: Symbol("pending index"), kError: Symbol("error"), kClients: Symbol("clients"), kClient: Symbol("client"), kParser: Symbol("parser"), kOnDestroyed: Symbol("destroy callbacks"), kPipelining: Symbol("pipelining"), kSocket: Symbol("socket"), kHostHeader: Symbol("host header"), kConnector: Symbol("connector"), kStrictContentLength: Symbol("strict content length"), kMaxRedirections: Symbol("maxRedirections"), kMaxRequests: Symbol("maxRequestsPerClient"), kProxy: Symbol("proxy agent options"), kCounter: Symbol("socket request counter"), kMaxResponseSize: Symbol("max response size"), kHTTP2Session: Symbol("http2Session"), kHTTP2SessionState: Symbol("http2Session state"), kRetryHandlerDefaultRetry: Symbol("retry agent default retry"), kConstruct: Symbol("constructable"), kListeners: Symbol("listeners"), kHTTPContext: Symbol("http context"), kMaxConcurrentStreams: Symbol("max concurrent streams"), kEnableConnectProtocol: Symbol("http2session connect protocol"), kRemoteSettings: Symbol("http2session remote settings"), kHTTP2Stream: Symbol("http2session client stream"), kNoProxyAgent: Symbol("no proxy agent"), kHttpProxyAgent: Symbol("http proxy agent"), kHttpsProxyAgent: Symbol("https proxy agent") }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/timers.js var require_timers = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/timers.js"(exports, module4) { init_import_meta_url(); 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 < 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(); } } __name(onTick, "onTick"); function refreshTimeout() { if (fastNowTimeout?.refresh) { fastNowTimeout.refresh(); } else { clearTimeout(fastNowTimeout); fastNowTimeout = setTimeout(onTick, TICK_MS); fastNowTimeout?.unref(); } } __name(refreshTimeout, "refreshTimeout"); var FastTimer = class { static { __name(this, "FastTimer"); } [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; } }; module4.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(timeout2) { if (timeout2[kFastTimer]) { timeout2.clear(); } else { clearTimeout(timeout2); } }, /** * 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(timeout2) { timeout2.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@7.18.2/node_modules/undici/lib/core/errors.js var require_errors = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/errors.js"(exports, module4) { init_import_meta_url(); var kUndiciError = Symbol.for("undici.error.UND_ERR"); var UndiciError = class extends Error { static { __name(this, "UndiciError"); } constructor(message, options) { super(message, options); this.name = "UndiciError"; this.code = "UND_ERR"; } static [Symbol.hasInstance](instance) { return instance && instance[kUndiciError] === true; } get [kUndiciError]() { return true; } }; var kConnectTimeoutError = Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"); var ConnectTimeoutError = class extends UndiciError { static { __name(this, "ConnectTimeoutError"); } 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; } get [kConnectTimeoutError]() { return true; } }; var kHeadersTimeoutError = Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"); var HeadersTimeoutError = class extends UndiciError { static { __name(this, "HeadersTimeoutError"); } 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; } get [kHeadersTimeoutError]() { return true; } }; var kHeadersOverflowError = Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"); var HeadersOverflowError = class extends UndiciError { static { __name(this, "HeadersOverflowError"); } 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; } get [kHeadersOverflowError]() { return true; } }; var kBodyTimeoutError = Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"); var BodyTimeoutError = class extends UndiciError { static { __name(this, "BodyTimeoutError"); } 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; } get [kBodyTimeoutError]() { return true; } }; var kInvalidArgumentError = Symbol.for("undici.error.UND_ERR_INVALID_ARG"); var InvalidArgumentError = class extends UndiciError { static { __name(this, "InvalidArgumentError"); } 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; } get [kInvalidArgumentError]() { return true; } }; var kInvalidReturnValueError = Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"); var InvalidReturnValueError = class extends UndiciError { static { __name(this, "InvalidReturnValueError"); } 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; } get [kInvalidReturnValueError]() { return true; } }; var kAbortError = Symbol.for("undici.error.UND_ERR_ABORT"); var AbortError2 = class extends UndiciError { static { __name(this, "AbortError"); } 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; } get [kAbortError]() { return true; } }; var kRequestAbortedError = Symbol.for("undici.error.UND_ERR_ABORTED"); var RequestAbortedError = class extends AbortError2 { static { __name(this, "RequestAbortedError"); } 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; } get [kRequestAbortedError]() { return true; } }; var kInformationalError = Symbol.for("undici.error.UND_ERR_INFO"); var InformationalError = class extends UndiciError { static { __name(this, "InformationalError"); } 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; } get [kInformationalError]() { return true; } }; var kRequestContentLengthMismatchError = Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"); var RequestContentLengthMismatchError = class extends UndiciError { static { __name(this, "RequestContentLengthMismatchError"); } 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; } get [kRequestContentLengthMismatchError]() { return true; } }; var kResponseContentLengthMismatchError = Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"); var ResponseContentLengthMismatchError = class extends UndiciError { static { __name(this, "ResponseContentLengthMismatchError"); } 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; } get [kResponseContentLengthMismatchError]() { return true; } }; var kClientDestroyedError = Symbol.for("undici.error.UND_ERR_DESTROYED"); var ClientDestroyedError = class extends UndiciError { static { __name(this, "ClientDestroyedError"); } 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; } get [kClientDestroyedError]() { return true; } }; var kClientClosedError = Symbol.for("undici.error.UND_ERR_CLOSED"); var ClientClosedError = class extends UndiciError { static { __name(this, "ClientClosedError"); } 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; } get [kClientClosedError]() { return true; } }; var kSocketError = Symbol.for("undici.error.UND_ERR_SOCKET"); var SocketError = class extends UndiciError { static { __name(this, "SocketError"); } 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; } get [kSocketError]() { return true; } }; var kNotSupportedError = Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"); var NotSupportedError = class extends UndiciError { static { __name(this, "NotSupportedError"); } 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; } get [kNotSupportedError]() { return true; } }; var kBalancedPoolMissingUpstreamError = Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"); var BalancedPoolMissingUpstreamError = class extends UndiciError { static { __name(this, "BalancedPoolMissingUpstreamError"); } 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; } get [kBalancedPoolMissingUpstreamError]() { return true; } }; var kHTTPParserError = Symbol.for("undici.error.UND_ERR_HTTP_PARSER"); var HTTPParserError = class extends Error { static { __name(this, "HTTPParserError"); } 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; } get [kHTTPParserError]() { return true; } }; var kResponseExceededMaxSizeError = Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"); var ResponseExceededMaxSizeError = class extends UndiciError { static { __name(this, "ResponseExceededMaxSizeError"); } 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; } get [kResponseExceededMaxSizeError]() { return true; } }; var kRequestRetryError = Symbol.for("undici.error.UND_ERR_REQ_RETRY"); var RequestRetryError = class extends UndiciError { static { __name(this, "RequestRetryError"); } 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; } get [kRequestRetryError]() { return true; } }; var kResponseError = Symbol.for("undici.error.UND_ERR_RESPONSE"); var ResponseError = class extends UndiciError { static { __name(this, "ResponseError"); } constructor(message, code, { headers, body }) { super(message); this.name = "ResponseError"; this.message = message || "Response error"; this.code = "UND_ERR_RESPONSE"; this.statusCode = code; this.body = body; this.headers = headers; } static [Symbol.hasInstance](instance) { return instance && instance[kResponseError] === true; } get [kResponseError]() { return true; } }; var kSecureProxyConnectionError = Symbol.for("undici.error.UND_ERR_PRX_TLS"); var SecureProxyConnectionError = class extends UndiciError { static { __name(this, "SecureProxyConnectionError"); } 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; } get [kSecureProxyConnectionError]() { return true; } }; var kMaxOriginsReachedError = Symbol.for("undici.error.UND_ERR_MAX_ORIGINS_REACHED"); var MaxOriginsReachedError = class extends UndiciError { static { __name(this, "MaxOriginsReachedError"); } constructor(message) { super(message); this.name = "MaxOriginsReachedError"; this.message = message || "Maximum allowed origins reached"; this.code = "UND_ERR_MAX_ORIGINS_REACHED"; } static [Symbol.hasInstance](instance) { return instance && instance[kMaxOriginsReachedError] === true; } get [kMaxOriginsReachedError]() { return true; } }; module4.exports = { AbortError: AbortError2, HTTPParserError, UndiciError, HeadersTimeoutError, HeadersOverflowError, BodyTimeoutError, RequestContentLengthMismatchError, ConnectTimeoutError, InvalidArgumentError, InvalidReturnValueError, RequestAbortedError, ClientDestroyedError, ClientClosedError, InformationalError, SocketError, NotSupportedError, ResponseContentLengthMismatchError, BalancedPoolMissingUpstreamError, ResponseExceededMaxSizeError, RequestRetryError, ResponseError, SecureProxyConnectionError, MaxOriginsReachedError }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/constants.js var require_constants = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/constants.js"(exports, module4) { init_import_meta_url(); var wellknownHeaderNames = ( /** @type {const} */ [ "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" ] ); var headerNameLowerCasedRecord = {}; Object.setPrototypeOf(headerNameLowerCasedRecord, null); var wellknownHeaderNameBuffers = {}; Object.setPrototypeOf(wellknownHeaderNameBuffers, null); function getHeaderNameAsBuffer(header) { let buffer = wellknownHeaderNameBuffers[header]; if (buffer === void 0) { buffer = Buffer.from(header); } return buffer; } __name(getHeaderNameAsBuffer, "getHeaderNameAsBuffer"); for (let i7 = 0; i7 < wellknownHeaderNames.length; ++i7) { const key = wellknownHeaderNames[i7]; const lowerCasedKey = key.toLowerCase(); headerNameLowerCasedRecord[key] = headerNameLowerCasedRecord[lowerCasedKey] = lowerCasedKey; } module4.exports = { wellknownHeaderNames, headerNameLowerCasedRecord, getHeaderNameAsBuffer }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/tree.js var require_tree = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/tree.js"(exports, module4) { init_import_meta_url(); var { wellknownHeaderNames, headerNameLowerCasedRecord } = require_constants(); var TstNode = class _TstNode { static { __name(this, "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 * @returns {void} */ add(key, value) { const length = key.length; if (length === 0) { throw new TypeError("Unreachable"); } let index = 0; let node2 = this; while (true) { const code = key.charCodeAt(index); if (code > 127) { throw new TypeError("key must be ascii string"); } if (node2.code === code) { if (length === ++index) { node2.value = value; break; } else if (node2.middle !== null) { node2 = node2.middle; } else { node2.middle = new _TstNode(key, value, index); break; } } else if (node2.code < code) { if (node2.left !== null) { node2 = node2.left; } else { node2.left = new _TstNode(key, value, index); break; } } else if (node2.right !== null) { node2 = node2.right; } else { node2.right = new _TstNode(key, value, index); break; } } } /** * @param {Uint8Array} key * @returns {TstNode | null} */ search(key) { const keylength = key.length; let index = 0; let node2 = this; while (node2 !== null && index < keylength) { let code = key[index]; if (code <= 90 && code >= 65) { code |= 32; } while (node2 !== null) { if (code === node2.code) { if (keylength === ++index) { return node2; } node2 = node2.middle; break; } node2 = node2.code < code ? node2.left : node2.right; } } return null; } }; var TernarySearchTree = class { static { __name(this, "TernarySearchTree"); } /** @type {TstNode | null} */ node = null; /** * @param {string} key * @param {any} value * @returns {void} * */ insert(key, value) { if (this.node === null) { this.node = new TstNode(key, value, 0); } else { this.node.add(key, value); } } /** * @param {Uint8Array} key * @returns {any} */ lookup(key) { return this.node?.search(key)?.value ?? null; } }; var tree = new TernarySearchTree(); for (let i7 = 0; i7 < wellknownHeaderNames.length; ++i7) { const key = headerNameLowerCasedRecord[wellknownHeaderNames[i7]]; tree.insert(key, key); } module4.exports = { TernarySearchTree, tree }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/util.js var require_util = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/util.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols(); var { IncomingMessage } = __require("http"); var stream2 = __require("stream"); var net2 = __require("net"); var { stringify: stringify4 } = __require("querystring"); var { EventEmitter: EE } = __require("events"); var timers = require_timers(); var { InvalidArgumentError, ConnectTimeoutError } = require_errors(); var { headerNameLowerCasedRecord } = require_constants(); var { tree } = require_tree(); var [nodeMajor, nodeMinor] = process.versions.node.split(".", 2).map((v8) => Number(v8)); var BodyAsyncIterable = class { static { __name(this, "BodyAsyncIterable"); } constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert58(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; function noop() { } __name(noop, "noop"); function wrapRequestBody(body) { if (isStream2(body)) { if (bodyLength(body) === 0) { body.on("data", function() { assert58(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; } } __name(wrapRequestBody, "wrapRequestBody"); function isStream2(obj) { return obj && typeof obj === "object" && typeof obj.pipe === "function" && typeof obj.on === "function"; } __name(isStream2, "isStream"); function isBlobLike2(object) { if (object === null) { return false; } else if (object instanceof Blob) { return true; } else if (typeof object !== "object") { return false; } else { const sTag = object[Symbol.toStringTag]; return (sTag === "Blob" || sTag === "File") && ("stream" in object && typeof object.stream === "function" || "arrayBuffer" in object && typeof object.arrayBuffer === "function"); } } __name(isBlobLike2, "isBlobLike"); function pathHasQueryOrFragment(url4) { return url4.includes("?") || url4.includes("#"); } __name(pathHasQueryOrFragment, "pathHasQueryOrFragment"); function serializePathWithQuery(url4, queryParams) { if (pathHasQueryOrFragment(url4)) { throw new Error('Query params cannot be passed when url already contains "?" or "#".'); } const stringified = stringify4(queryParams); if (stringified) { url4 += "?" + stringified; } return url4; } __name(serializePathWithQuery, "serializePathWithQuery"); function isValidPort(port) { const value = parseInt(port, 10); return value === Number(port) && value >= 0 && value <= 65535; } __name(isValidPort, "isValidPort"); 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] === ":"); } __name(isHttpOrHttpsPrefixed, "isHttpOrHttpsPrefixed"); function parseURL3(url4) { if (typeof url4 === "string") { url4 = new URL(url4); if (!isHttpOrHttpsPrefixed(url4.origin || url4.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } return url4; } if (!url4 || typeof url4 !== "object") { throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); } if (!(url4 instanceof URL)) { if (url4.port != null && url4.port !== "" && isValidPort(url4.port) === false) { throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); } if (url4.path != null && typeof url4.path !== "string") { throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); } if (url4.pathname != null && typeof url4.pathname !== "string") { throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); } if (url4.hostname != null && typeof url4.hostname !== "string") { throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); } if (url4.origin != null && typeof url4.origin !== "string") { throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); } if (!isHttpOrHttpsPrefixed(url4.origin || url4.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } const port = url4.port != null ? url4.port : url4.protocol === "https:" ? 443 : 80; let origin = url4.origin != null ? url4.origin : `${url4.protocol || ""}//${url4.hostname || ""}:${port}`; let path82 = url4.path != null ? url4.path : `${url4.pathname || ""}${url4.search || ""}`; if (origin[origin.length - 1] === "/") { origin = origin.slice(0, origin.length - 1); } if (path82 && path82[0] !== "/") { path82 = `/${path82}`; } return new URL(`${origin}${path82}`); } if (!isHttpOrHttpsPrefixed(url4.origin || url4.protocol)) { throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); } return url4; } __name(parseURL3, "parseURL"); function parseOrigin(url4) { url4 = parseURL3(url4); if (url4.pathname !== "/" || url4.search || url4.hash) { throw new InvalidArgumentError("invalid url"); } return url4; } __name(parseOrigin, "parseOrigin"); function getHostname(host) { if (host[0] === "[") { const idx2 = host.indexOf("]"); assert58(idx2 !== -1); return host.substring(1, idx2); } const idx = host.indexOf(":"); if (idx === -1) return host; return host.substring(0, idx); } __name(getHostname, "getHostname"); function getServerName(host) { if (!host) { return null; } assert58(typeof host === "string"); const servername = getHostname(host); if (net2.isIP(servername)) { return ""; } return servername; } __name(getServerName, "getServerName"); function deepClone(obj) { return JSON.parse(JSON.stringify(obj)); } __name(deepClone, "deepClone"); function isAsyncIterable(obj) { return !!(obj != null && typeof obj[Symbol.asyncIterator] === "function"); } __name(isAsyncIterable, "isAsyncIterable"); function isIterable(obj) { return !!(obj != null && (typeof obj[Symbol.iterator] === "function" || typeof obj[Symbol.asyncIterator] === "function")); } __name(isIterable, "isIterable"); function bodyLength(body) { if (body == null) { return 0; } else if (isStream2(body)) { const state2 = body._readableState; return state2 && state2.objectMode === false && state2.ended === true && Number.isFinite(state2.length) ? state2.length : null; } else if (isBlobLike2(body)) { return body.size != null ? body.size : null; } else if (isBuffer(body)) { return body.byteLength; } return null; } __name(bodyLength, "bodyLength"); function isDestroyed(body) { return body && !!(body.destroyed || body[kDestroyed] || stream2.isDestroyed?.(body)); } __name(isDestroyed, "isDestroyed"); function destroy(stream3, err) { if (stream3 == null || !isStream2(stream3) || isDestroyed(stream3)) { return; } if (typeof stream3.destroy === "function") { if (Object.getPrototypeOf(stream3).constructor === IncomingMessage) { stream3.socket = null; } stream3.destroy(err); } else if (err) { queueMicrotask(() => { stream3.emit("error", err); }); } if (stream3.destroyed !== true) { stream3[kDestroyed] = true; } } __name(destroy, "destroy"); var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; function parseKeepAliveTimeout(val2) { const m7 = val2.match(KEEPALIVE_TIMEOUT_EXPR); return m7 ? parseInt(m7[1], 10) * 1e3 : null; } __name(parseKeepAliveTimeout, "parseKeepAliveTimeout"); function headerNameToString(value) { return typeof value === "string" ? headerNameLowerCasedRecord[value] ?? value.toLowerCase() : tree.lookup(value) ?? value.toString("latin1").toLowerCase(); } __name(headerNameToString, "headerNameToString"); function bufferToLowerCasedHeaderName(value) { return tree.lookup(value) ?? value.toString("latin1").toLowerCase(); } __name(bufferToLowerCasedHeaderName, "bufferToLowerCasedHeaderName"); function parseHeaders2(headers, obj) { if (obj === void 0) obj = {}; for (let i7 = 0; i7 < headers.length; i7 += 2) { const key = headerNameToString(headers[i7]); let val2 = obj[key]; if (val2) { if (typeof val2 === "string") { val2 = [val2]; obj[key] = val2; } val2.push(headers[i7 + 1].toString("utf8")); } else { const headersValue = headers[i7 + 1]; if (typeof headersValue === "string") { obj[key] = headersValue; } else { obj[key] = Array.isArray(headersValue) ? headersValue.map((x7) => x7.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; } __name(parseHeaders2, "parseHeaders"); function parseRawHeaders(headers) { const headersLength = headers.length; const ret = new Array(headersLength); let hasContentLength = false; let contentDispositionIdx = -1; let key; let val2; let kLen = 0; for (let n8 = 0; n8 < headersLength; n8 += 2) { key = headers[n8]; val2 = headers[n8 + 1]; typeof key !== "string" && (key = key.toString()); typeof val2 !== "string" && (val2 = val2.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 = n8 + 1; } ret[n8] = key; ret[n8 + 1] = val2; } if (hasContentLength && contentDispositionIdx !== -1) { ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1"); } return ret; } __name(parseRawHeaders, "parseRawHeaders"); function encodeRawHeaders(headers) { if (!Array.isArray(headers)) { throw new TypeError("expected headers to be an array"); } return headers.map((x7) => Buffer.from(x7)); } __name(encodeRawHeaders, "encodeRawHeaders"); function isBuffer(buffer) { return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); } __name(isBuffer, "isBuffer"); function assertRequestHandler(handler, method, upgrade) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } if (typeof handler.onRequestStart === "function") { return; } 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"); } } } __name(assertRequestHandler, "assertRequestHandler"); function isDisturbed(body) { return !!(body && (stream2.isDisturbed(body) || body[kBodyUsed])); } __name(isDisturbed, "isDisturbed"); 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 }; } __name(getSocketInfo, "getSocketInfo"); function ReadableStreamFrom(iterable) { let iterator; return new ReadableStream( { start() { iterator = iterable[Symbol.asyncIterator](); }, pull(controller) { return iterator.next().then(({ done, value }) => { if (done) { return queueMicrotask(() => { controller.close(); controller.byobRequest?.respond(0); }); } else { const buf = Buffer.isBuffer(value) ? value : Buffer.from(value); if (buf.byteLength) { return controller.enqueue(new Uint8Array(buf)); } else { return this.pull(controller); } } }); }, cancel() { return iterator.return(); }, type: "bytes" } ); } __name(ReadableStreamFrom, "ReadableStreamFrom"); function isFormDataLike(object) { return object && typeof object === "object" && typeof object.append === "function" && typeof object.delete === "function" && typeof object.get === "function" && typeof object.getAll === "function" && typeof object.has === "function" && typeof object.set === "function" && object[Symbol.toStringTag] === "FormData"; } __name(isFormDataLike, "isFormDataLike"); function addAbortListener(signal, listener) { if ("addEventListener" in signal) { signal.addEventListener("abort", listener, { once: true }); return () => signal.removeEventListener("abort", listener); } signal.once("abort", listener); return () => signal.removeListener("abort", listener); } __name(addAbortListener, "addAbortListener"); var validTokenChars = new Uint8Array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0-15 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16-31 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32-47 (!"#$%&'()*+,-./) 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48-63 (0-9:;<=>?) 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64-79 (@A-O) 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80-95 (P-Z[\]^_) 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96-111 (`a-o) 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, // 112-127 (p-z{|}~) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 128-143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 144-159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 160-175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 176-191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 192-207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 208-223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 224-239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // 240-255 ]); function isTokenCharCode(c8) { return validTokenChars[c8] === 1; } __name(isTokenCharCode, "isTokenCharCode"); var tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/; function isValidHTTPToken(characters) { if (characters.length >= 12) return tokenRegExp.test(characters); if (characters.length === 0) return false; for (let i7 = 0; i7 < characters.length; i7++) { if (validTokenChars[characters.charCodeAt(i7)] !== 1) { return false; } } return true; } __name(isValidHTTPToken, "isValidHTTPToken"); var headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; function isValidHeaderValue(characters) { return !headerCharRegex.test(characters); } __name(isValidHeaderValue, "isValidHeaderValue"); var rangeHeaderRegex = /^bytes (\d+)-(\d+)\/(\d+)?$/; function parseRangeHeader(range) { if (range == null || range === "") return { start: 0, end: null, size: null }; const m7 = range ? range.match(rangeHeaderRegex) : null; return m7 ? { start: parseInt(m7[1]), end: m7[2] ? parseInt(m7[2]) : null, size: m7[3] ? parseInt(m7[3]) : null } : null; } __name(parseRangeHeader, "parseRangeHeader"); function addListener(obj, name2, listener) { const listeners = obj[kListeners] ??= []; listeners.push([name2, listener]); obj.on(name2, listener); return obj; } __name(addListener, "addListener"); function removeAllListeners(obj) { if (obj[kListeners] != null) { for (const [name2, listener] of obj[kListeners]) { obj.removeListener(name2, listener); } obj[kListeners] = null; } return obj; } __name(removeAllListeners, "removeAllListeners"); function errorRequest(client, request4, err) { try { request4.onError(err); assert58(request4.aborted); } catch (err2) { client.emit("error", err2); } } __name(errorRequest, "errorRequest"); var setupConnectTimeout = process.platform === "win32" ? (socketWeakRef, opts) => { if (!opts.timeout) { return noop; } let s1 = null; let s22 = null; const fastTimer = timers.setFastTimeout(() => { s1 = setImmediate(() => { s22 = setImmediate(() => onConnectTimeout(socketWeakRef.deref(), opts)); }); }, opts.timeout); return () => { timers.clearFastTimeout(fastTimer); clearImmediate(s1); clearImmediate(s22); }; } : (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)`; destroy(socket, new ConnectTimeoutError(message)); } __name(onConnectTimeout, "onConnectTimeout"); function getProtocolFromUrlString(urlString) { if (urlString[0] === "h" && urlString[1] === "t" && urlString[2] === "t" && urlString[3] === "p") { switch (urlString[4]) { case ":": return "http:"; case "s": if (urlString[5] === ":") { return "https:"; } } } return urlString.slice(0, urlString.indexOf(":") + 1); } __name(getProtocolFromUrlString, "getProtocolFromUrlString"); 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); module4.exports = { kEnumerableProperty, isDisturbed, isBlobLike: isBlobLike2, parseOrigin, parseURL: parseURL3, getServerName, isStream: isStream2, isIterable, isAsyncIterable, isDestroyed, headerNameToString, bufferToLowerCasedHeaderName, addListener, removeAllListeners, errorRequest, parseRawHeaders, encodeRawHeaders, parseHeaders: parseHeaders2, parseKeepAliveTimeout, destroy, bodyLength, deepClone, ReadableStreamFrom, isBuffer, assertRequestHandler, getSocketInfo, isFormDataLike, pathHasQueryOrFragment, serializePathWithQuery, addAbortListener, isValidHTTPToken, isValidHeaderValue, isTokenCharCode, parseRangeHeader, normalizedMethodRecordsBase, normalizedMethodRecords, isValidPort, isHttpOrHttpsPrefixed, nodeMajor, nodeMinor, safeHTTPMethods: Object.freeze(["GET", "HEAD", "OPTIONS", "TRACE"]), wrapRequestBody, setupConnectTimeout, getProtocolFromUrlString }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/stats.js var require_stats = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/stats.js"(exports, module4) { init_import_meta_url(); var { kConnected, kPending, kRunning, kSize, kFree, kQueued } = require_symbols(); var ClientStats = class { static { __name(this, "ClientStats"); } constructor(client) { this.connected = client[kConnected]; this.pending = client[kPending]; this.running = client[kRunning]; this.size = client[kSize]; } }; var PoolStats = class { static { __name(this, "PoolStats"); } constructor(pool) { this.connected = pool[kConnected]; this.free = pool[kFree]; this.pending = pool[kPending]; this.queued = pool[kQueued]; this.running = pool[kRunning]; this.size = pool[kSize]; } }; module4.exports = { ClientStats, PoolStats }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/diagnostics.js var require_diagnostics = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/diagnostics.js"(exports, module4) { init_import_meta_url(); var diagnosticsChannel = __require("diagnostics_channel"); var util3 = __require("util"); var undiciDebugLog = util3.debuglog("undici"); var fetchDebuglog = util3.debuglog("fetch"); var websocketDebuglog = util3.debuglog("websocket"); 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"), bodyChunkSent: diagnosticsChannel.channel("undici:request:bodyChunkSent"), bodyChunkReceived: diagnosticsChannel.channel("undici:request:bodyChunkReceived"), 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"), // ProxyAgent proxyConnected: diagnosticsChannel.channel("undici:proxy:connected") }; var isTrackingClientEvents = false; function trackClientEvents(debugLog = undiciDebugLog) { if (isTrackingClientEvents) { return; } if (channels.beforeConnect.hasSubscribers || channels.connected.hasSubscribers || channels.connectError.hasSubscribers || channels.sendHeaders.hasSubscribers) { isTrackingClientEvents = true; return; } isTrackingClientEvents = true; diagnosticsChannel.subscribe( "undici:client:beforeConnect", (evt) => { const { connectParams: { version: version5, protocol, port, host } } = evt; debugLog( "connecting to %s%s using %s%s", host, port ? `:${port}` : "", protocol, version5 ); } ); diagnosticsChannel.subscribe( "undici:client:connected", (evt) => { const { connectParams: { version: version5, protocol, port, host } } = evt; debugLog( "connected to %s%s using %s%s", host, port ? `:${port}` : "", protocol, version5 ); } ); diagnosticsChannel.subscribe( "undici:client:connectError", (evt) => { const { connectParams: { version: version5, protocol, port, host }, error: error2 } = evt; debugLog( "connection to %s%s using %s%s errored - %s", host, port ? `:${port}` : "", protocol, version5, error2.message ); } ); diagnosticsChannel.subscribe( "undici:client:sendHeaders", (evt) => { const { request: { method, path: path82, origin } } = evt; debugLog("sending request to %s %s%s", method, origin, path82); } ); } __name(trackClientEvents, "trackClientEvents"); var isTrackingRequestEvents = false; function trackRequestEvents(debugLog = undiciDebugLog) { if (isTrackingRequestEvents) { return; } if (channels.headers.hasSubscribers || channels.trailers.hasSubscribers || channels.error.hasSubscribers) { isTrackingRequestEvents = true; return; } isTrackingRequestEvents = true; diagnosticsChannel.subscribe( "undici:request:headers", (evt) => { const { request: { method, path: path82, origin }, response: { statusCode } } = evt; debugLog( "received response to %s %s%s - HTTP %d", method, origin, path82, statusCode ); } ); diagnosticsChannel.subscribe( "undici:request:trailers", (evt) => { const { request: { method, path: path82, origin } } = evt; debugLog("trailers received from %s %s%s", method, origin, path82); } ); diagnosticsChannel.subscribe( "undici:request:error", (evt) => { const { request: { method, path: path82, origin }, error: error2 } = evt; debugLog( "request to %s %s%s errored - %s", method, origin, path82, error2.message ); } ); } __name(trackRequestEvents, "trackRequestEvents"); var isTrackingWebSocketEvents = false; function trackWebSocketEvents(debugLog = websocketDebuglog) { if (isTrackingWebSocketEvents) { return; } if (channels.open.hasSubscribers || channels.close.hasSubscribers || channels.socketError.hasSubscribers || channels.ping.hasSubscribers || channels.pong.hasSubscribers) { isTrackingWebSocketEvents = true; return; } isTrackingWebSocketEvents = true; diagnosticsChannel.subscribe( "undici:websocket:open", (evt) => { const { address: { address, port } } = evt; debugLog("connection opened %s%s", address, port ? `:${port}` : ""); } ); diagnosticsChannel.subscribe( "undici:websocket:close", (evt) => { const { websocket, code, reason } = evt; debugLog( "closed connection to %s - %s %s", websocket.url, code, reason ); } ); diagnosticsChannel.subscribe( "undici:websocket:socket_error", (err) => { debugLog("connection errored - %s", err.message); } ); diagnosticsChannel.subscribe( "undici:websocket:ping", (evt) => { debugLog("ping received"); } ); diagnosticsChannel.subscribe( "undici:websocket:pong", (evt) => { debugLog("pong received"); } ); } __name(trackWebSocketEvents, "trackWebSocketEvents"); if (undiciDebugLog.enabled || fetchDebuglog.enabled) { trackClientEvents(fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog); trackRequestEvents(fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog); } if (websocketDebuglog.enabled) { trackClientEvents(undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog); trackWebSocketEvents(websocketDebuglog); } module4.exports = { channels }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/request.js var require_request = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/request.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError, NotSupportedError } = require_errors(); var assert58 = __require("assert"); var { isValidHTTPToken, isValidHeaderValue, isStream: isStream2, destroy, isBuffer, isFormDataLike, isIterable, isBlobLike: isBlobLike2, serializePathWithQuery, assertRequestHandler, getServerName, normalizedMethodRecords, getProtocolFromUrlString } = require_util(); var { channels } = require_diagnostics(); var { headerNameLowerCasedRecord } = require_constants(); var invalidPathRegex = /[^\u0021-\u00ff]/; var kHandler = Symbol("handler"); var Request7 = class { static { __name(this, "Request"); } constructor(origin, { path: path82, method, body, headers, query, idempotent, blocking, upgrade, headersTimeout, bodyTimeout, reset, expectContinue, servername, throwOnError, maxRedirections }, handler) { if (typeof path82 !== "string") { throw new InvalidArgumentError("path must be a string"); } else if (path82[0] !== "/" && !(path82.startsWith("http://") || path82.startsWith("https://")) && method !== "CONNECT") { throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); } else if (invalidPathRegex.test(path82)) { 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 (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"); } if (throwOnError != null) { throw new InvalidArgumentError("invalid throwOnError"); } if (maxRedirections != null && maxRedirections !== 0) { throw new InvalidArgumentError("maxRedirections is not supported, use the redirect interceptor"); } this.headersTimeout = headersTimeout; this.bodyTimeout = bodyTimeout; this.method = method; this.abort = null; if (body == null) { this.body = null; } else if (isStream2(body)) { this.body = body; const rState = this.body._readableState; if (!rState || !rState.autoDestroy) { this.endHandler = /* @__PURE__ */ __name(function autoDestroy() { destroy(this); }, "autoDestroy"); 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) || isBlobLike2(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 ? serializePathWithQuery(path82, query) : path82; this.origin = origin; this.protocol = getProtocolFromUrlString(origin); this.idempotent = idempotent == null ? method === "HEAD" || method === "GET" : idempotent; this.blocking = blocking ?? this.method !== "HEAD"; 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 i7 = 0; i7 < headers.length; i7 += 2) { processHeader(this, headers[i7], headers[i7 + 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 i7 = 0; i7 < keys.length; ++i7) { processHeader(this, keys[i7], headers[keys[i7]]); } } } else if (headers != null) { throw new InvalidArgumentError("headers must be an object or an array"); } assertRequestHandler(handler, method, upgrade); this.servername = servername || getServerName(this.host) || null; this[kHandler] = handler; if (channels.create.hasSubscribers) { channels.create.publish({ request: this }); } } onBodySent(chunk) { if (channels.bodyChunkSent.hasSubscribers) { channels.bodyChunkSent.publish({ request: this, 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) { assert58(!this.aborted); assert58(!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) { assert58(!this.aborted); assert58(!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) { assert58(!this.aborted); assert58(!this.completed); if (channels.bodyChunkReceived.hasSubscribers) { channels.bodyChunkReceived.publish({ request: this, chunk }); } try { return this[kHandler].onData(chunk); } catch (err) { this.abort(err); return false; } } onUpgrade(statusCode, headers, socket) { assert58(!this.aborted); assert58(!this.completed); return this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { this.onFinally(); assert58(!this.aborted); assert58(!this.completed); 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(request4, key, val2) { if (val2 && (typeof val2 === "object" && !Array.isArray(val2))) { throw new InvalidArgumentError(`invalid ${key} header`); } else if (val2 === 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(val2)) { const arr = []; for (let i7 = 0; i7 < val2.length; i7++) { if (typeof val2[i7] === "string") { if (!isValidHeaderValue(val2[i7])) { throw new InvalidArgumentError(`invalid ${key} header`); } arr.push(val2[i7]); } else if (val2[i7] === null) { arr.push(""); } else if (typeof val2[i7] === "object") { throw new InvalidArgumentError(`invalid ${key} header`); } else { arr.push(`${val2[i7]}`); } } val2 = arr; } else if (typeof val2 === "string") { if (!isValidHeaderValue(val2)) { throw new InvalidArgumentError(`invalid ${key} header`); } } else if (val2 === null) { val2 = ""; } else { val2 = `${val2}`; } if (request4.host === null && headerName === "host") { if (typeof val2 !== "string") { throw new InvalidArgumentError("invalid host header"); } request4.host = val2; } else if (request4.contentLength === null && headerName === "content-length") { request4.contentLength = parseInt(val2, 10); if (!Number.isFinite(request4.contentLength)) { throw new InvalidArgumentError("invalid content-length header"); } } else if (request4.contentType === null && headerName === "content-type") { request4.contentType = val2; request4.headers.push(key, val2); } else if (headerName === "transfer-encoding" || headerName === "keep-alive" || headerName === "upgrade") { throw new InvalidArgumentError(`invalid ${headerName} header`); } else if (headerName === "connection") { const value = typeof val2 === "string" ? val2.toLowerCase() : null; if (value !== "close" && value !== "keep-alive") { throw new InvalidArgumentError("invalid connection header"); } if (value === "close") { request4.reset = true; } } else if (headerName === "expect") { throw new NotSupportedError("expect header not supported"); } else { request4.headers.push(key, val2); } } __name(processHeader, "processHeader"); module4.exports = Request7; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/wrap-handler.js var require_wrap_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/wrap-handler.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError } = require_errors(); module4.exports = class WrapHandler { static { __name(this, "WrapHandler"); } #handler; constructor(handler) { this.#handler = handler; } static wrap(handler) { return handler.onRequestStart ? handler : new WrapHandler(handler); } // Unwrap Interface onConnect(abort, context2) { return this.#handler.onConnect?.(abort, context2); } onHeaders(statusCode, rawHeaders, resume, statusMessage) { return this.#handler.onHeaders?.(statusCode, rawHeaders, resume, statusMessage); } onUpgrade(statusCode, rawHeaders, socket) { return this.#handler.onUpgrade?.(statusCode, rawHeaders, socket); } onData(data) { return this.#handler.onData?.(data); } onComplete(trailers) { return this.#handler.onComplete?.(trailers); } onError(err) { if (!this.#handler.onError) { throw err; } return this.#handler.onError?.(err); } // Wrap Interface onRequestStart(controller, context2) { this.#handler.onConnect?.((reason) => controller.abort(reason), context2); } onRequestUpgrade(controller, statusCode, headers, socket) { const rawHeaders = []; for (const [key, val2] of Object.entries(headers)) { rawHeaders.push(Buffer.from(key), Array.isArray(val2) ? val2.map((v8) => Buffer.from(v8)) : Buffer.from(val2)); } this.#handler.onUpgrade?.(statusCode, rawHeaders, socket); } onResponseStart(controller, statusCode, headers, statusMessage) { const rawHeaders = []; for (const [key, val2] of Object.entries(headers)) { rawHeaders.push(Buffer.from(key), Array.isArray(val2) ? val2.map((v8) => Buffer.from(v8)) : Buffer.from(val2)); } if (this.#handler.onHeaders?.(statusCode, rawHeaders, () => controller.resume(), statusMessage) === false) { controller.pause(); } } onResponseData(controller, data) { if (this.#handler.onData?.(data) === false) { controller.pause(); } } onResponseEnd(controller, trailers) { const rawTrailers = []; for (const [key, val2] of Object.entries(trailers)) { rawTrailers.push(Buffer.from(key), Array.isArray(val2) ? val2.map((v8) => Buffer.from(v8)) : Buffer.from(val2)); } this.#handler.onComplete?.(rawTrailers); } onResponseError(controller, err) { if (!this.#handler.onError) { throw new InvalidArgumentError("invalid onError method"); } this.#handler.onError?.(err); } }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/dispatcher.js var require_dispatcher = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/dispatcher.js"(exports, module4) { init_import_meta_url(); var EventEmitter5 = __require("events"); var WrapHandler = require_wrap_handler(); var wrapInterceptor = /* @__PURE__ */ __name((dispatch) => (opts, handler) => dispatch(opts, WrapHandler.wrap(handler)), "wrapInterceptor"); var Dispatcher2 = class extends EventEmitter5 { static { __name(this, "Dispatcher"); } 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); dispatch = wrapInterceptor(dispatch); if (dispatch == null || typeof dispatch !== "function" || dispatch.length !== 2) { throw new TypeError("invalid interceptor"); } } return new Proxy(this, { get: /* @__PURE__ */ __name((target, key) => key === "dispatch" ? dispatch : target[key], "get") }); } }; module4.exports = Dispatcher2; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/unwrap-handler.js var require_unwrap_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/unwrap-handler.js"(exports, module4) { init_import_meta_url(); var { parseHeaders: parseHeaders2 } = require_util(); var { InvalidArgumentError } = require_errors(); var kResume = Symbol("resume"); var UnwrapController = class { static { __name(this, "UnwrapController"); } #paused = false; #reason = null; #aborted = false; #abort; [kResume] = null; constructor(abort) { this.#abort = abort; } pause() { this.#paused = true; } resume() { if (this.#paused) { this.#paused = false; this[kResume]?.(); } } abort(reason) { if (!this.#aborted) { this.#aborted = true; this.#reason = reason; this.#abort(reason); } } get aborted() { return this.#aborted; } get reason() { return this.#reason; } get paused() { return this.#paused; } }; module4.exports = class UnwrapHandler { static { __name(this, "UnwrapHandler"); } #handler; #controller; constructor(handler) { this.#handler = handler; } static unwrap(handler) { return !handler.onRequestStart ? handler : new UnwrapHandler(handler); } onConnect(abort, context2) { this.#controller = new UnwrapController(abort); this.#handler.onRequestStart?.(this.#controller, context2); } onUpgrade(statusCode, rawHeaders, socket) { this.#handler.onRequestUpgrade?.(this.#controller, statusCode, parseHeaders2(rawHeaders), socket); } onHeaders(statusCode, rawHeaders, resume, statusMessage) { this.#controller[kResume] = resume; this.#handler.onResponseStart?.(this.#controller, statusCode, parseHeaders2(rawHeaders), statusMessage); return !this.#controller.paused; } onData(data) { this.#handler.onResponseData?.(this.#controller, data); return !this.#controller.paused; } onComplete(rawTrailers) { this.#handler.onResponseEnd?.(this.#controller, parseHeaders2(rawTrailers)); } onError(err) { if (!this.#handler.onResponseError) { throw new InvalidArgumentError("invalid onError method"); } this.#handler.onResponseError?.(this.#controller, err); } }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/dispatcher-base.js var require_dispatcher_base = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports, module4) { init_import_meta_url(); var Dispatcher2 = require_dispatcher(); var UnwrapHandler = require_unwrap_handler(); var { ClientDestroyedError, ClientClosedError, InvalidArgumentError } = require_errors(); var { kDestroy, kClose, kClosed, kDestroyed, kDispatch } = require_symbols(); var kOnDestroyed = Symbol("onDestroyed"); var kOnClosed = Symbol("onClosed"); var DispatcherBase = class extends Dispatcher2 { static { __name(this, "DispatcherBase"); } /** @type {boolean} */ [kDestroyed] = false; /** @type {Array|null} */ [kOnClosed] = null; /** @returns {boolean} */ get destroyed() { return this[kDestroyed]; } /** @returns {boolean} */ get closed() { return this[kClosed]; } close(callback) { if (callback === void 0) { return new Promise((resolve31, reject) => { this.close((err, data) => { return err ? reject(err) : resolve31(data); }); }); } if (typeof callback !== "function") { throw new InvalidArgumentError("invalid callback"); } if (this[kDestroyed]) { const err = new ClientDestroyedError(); queueMicrotask(() => callback(err, null)); return; } if (this[kClosed]) { if (this[kOnClosed]) { this[kOnClosed].push(callback); } else { queueMicrotask(() => callback(null, null)); } return; } this[kClosed] = true; this[kOnClosed] ??= []; this[kOnClosed].push(callback); const onClosed = /* @__PURE__ */ __name(() => { const callbacks = this[kOnClosed]; this[kOnClosed] = null; for (let i7 = 0; i7 < callbacks.length; i7++) { callbacks[i7](null, null); } }, "onClosed"); 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((resolve31, reject) => { this.destroy(err, (err2, data) => { return err2 ? reject(err2) : resolve31(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].push(callback); const onDestroyed = /* @__PURE__ */ __name(() => { const callbacks = this[kOnDestroyed]; this[kOnDestroyed] = null; for (let i7 = 0; i7 < callbacks.length; i7++) { callbacks[i7](null, null); } }, "onDestroyed"); this[kDestroy](err).then(() => queueMicrotask(onDestroyed)); } dispatch(opts, handler) { if (!handler || typeof handler !== "object") { throw new InvalidArgumentError("handler must be an object"); } handler = UnwrapHandler.unwrap(handler); 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[kDispatch](opts, handler); } catch (err) { if (typeof handler.onError !== "function") { throw err; } handler.onError(err); return false; } } }; module4.exports = DispatcherBase; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/connect.js var require_connect = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/core/connect.js"(exports, module4) { init_import_meta_url(); var net2 = __require("net"); var assert58 = __require("assert"); var util3 = require_util(); var { InvalidArgumentError } = require_errors(); var tls; var SessionCache = class WeakSessionCache { static { __name(this, "WeakSessionCache"); } constructor(maxCachedSessions) { this._maxCachedSessions = maxCachedSessions; this._sessionCache = /* @__PURE__ */ new Map(); this._sessionRegistry = new 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); } }; function buildConnector({ allowH2, useH2c, maxCachedSessions, socketPath, timeout: timeout2, 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); timeout2 = timeout2 == null ? 1e4 : timeout2; allowH2 = allowH2 != null ? allowH2 : false; return /* @__PURE__ */ __name(function connect({ hostname: hostname2, host, protocol, port, servername, localAddress, httpSocket }, callback) { let socket; if (protocol === "https:") { if (!tls) { tls = __require("tls"); } servername = servername || options.servername || util3.getServerName(host) || null; const sessionKey = servername || hostname2; assert58(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, ALPNProtocols: allowH2 ? ["http/1.1", "h2"] : ["http/1.1"], socket: httpSocket, // upgrade socket connection port, host: hostname2 }); socket.on("session", function(session2) { sessionCache.set(sessionKey, session2); }); } else { assert58(!httpSocket, "httpSocket can only be sent on TLS update"); port = port || 80; socket = net2.connect({ highWaterMark: 64 * 1024, // Same as nodejs fs streams. ...options, localAddress, port, host: hostname2 }); if (useH2c === true) { socket.alpnProtocol = "h2"; } } if (options.keepAlive == null || options.keepAlive) { const keepAliveInitialDelay = options.keepAliveInitialDelay === void 0 ? 6e4 : options.keepAliveInitialDelay; socket.setKeepAlive(true, keepAliveInitialDelay); } const clearConnectTimeout = util3.setupConnectTimeout(new WeakRef(socket), { timeout: timeout2, hostname: hostname2, port }); socket.setNoDelay(true).once(protocol === "https:" ? "secureConnect" : "connect", function() { queueMicrotask(clearConnectTimeout); if (callback) { const cb2 = callback; callback = null; cb2(null, this); } }).on("error", function(err) { queueMicrotask(clearConnectTimeout); if (callback) { const cb2 = callback; callback = null; cb2(err); } }); return socket; }, "connect"); } __name(buildConnector, "buildConnector"); module4.exports = buildConnector; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/utils.js var require_utils = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/utils.js"(exports) { init_import_meta_url(); Object.defineProperty(exports, "__esModule", { value: true }); exports.enumToMap = enumToMap; function enumToMap(obj, filter2 = [], exceptions = []) { const emptyFilter = (filter2?.length ?? 0) === 0; const emptyExceptions = (exceptions?.length ?? 0) === 0; return Object.fromEntries(Object.entries(obj).filter(([, value]) => { return typeof value === "number" && (emptyFilter || filter2.includes(value)) && (emptyExceptions || !exceptions.includes(value)); })); } __name(enumToMap, "enumToMap"); } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/constants.js var require_constants2 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/constants.js"(exports) { init_import_meta_url(); Object.defineProperty(exports, "__esModule", { value: true }); exports.SPECIAL_HEADERS = exports.MINOR = exports.MAJOR = exports.HTAB_SP_VCHAR_OBS_TEXT = exports.QUOTED_STRING = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.HEX = exports.URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.STATUSES_HTTP = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.HEADER_STATE = exports.FINISH = exports.STATUSES = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; var utils_1 = require_utils(); exports.ERROR = { OK: 0, INTERNAL: 1, STRICT: 2, CR_EXPECTED: 25, LF_EXPECTED: 3, UNEXPECTED_CONTENT_LENGTH: 4, UNEXPECTED_SPACE: 30, CLOSED_CONNECTION: 5, INVALID_METHOD: 6, INVALID_URL: 7, INVALID_CONSTANT: 8, INVALID_VERSION: 9, INVALID_HEADER_TOKEN: 10, INVALID_CONTENT_LENGTH: 11, INVALID_CHUNK_SIZE: 12, INVALID_STATUS: 13, INVALID_EOF_STATE: 14, INVALID_TRANSFER_ENCODING: 15, CB_MESSAGE_BEGIN: 16, CB_HEADERS_COMPLETE: 17, CB_MESSAGE_COMPLETE: 18, CB_CHUNK_HEADER: 19, CB_CHUNK_COMPLETE: 20, PAUSED: 21, PAUSED_UPGRADE: 22, PAUSED_H2_UPGRADE: 23, USER: 24, CB_URL_COMPLETE: 26, CB_STATUS_COMPLETE: 27, CB_METHOD_COMPLETE: 32, CB_VERSION_COMPLETE: 33, CB_HEADER_FIELD_COMPLETE: 28, CB_HEADER_VALUE_COMPLETE: 29, CB_CHUNK_EXTENSION_NAME_COMPLETE: 34, CB_CHUNK_EXTENSION_VALUE_COMPLETE: 35, CB_RESET: 31, CB_PROTOCOL_COMPLETE: 38 }; exports.TYPE = { BOTH: 0, // default REQUEST: 1, RESPONSE: 2 }; exports.FLAGS = { CONNECTION_KEEP_ALIVE: 1 << 0, CONNECTION_CLOSE: 1 << 1, CONNECTION_UPGRADE: 1 << 2, CHUNKED: 1 << 3, UPGRADE: 1 << 4, CONTENT_LENGTH: 1 << 5, SKIPBODY: 1 << 6, TRAILING: 1 << 7, // 1 << 8 is unused TRANSFER_ENCODING: 1 << 9 }; exports.LENIENT_FLAGS = { HEADERS: 1 << 0, CHUNKED_LENGTH: 1 << 1, KEEP_ALIVE: 1 << 2, TRANSFER_ENCODING: 1 << 3, VERSION: 1 << 4, DATA_AFTER_CLOSE: 1 << 5, OPTIONAL_LF_AFTER_CR: 1 << 6, OPTIONAL_CRLF_AFTER_CHUNK: 1 << 7, OPTIONAL_CR_BEFORE_LF: 1 << 8, SPACES_AFTER_CHUNK_SIZE: 1 << 9 }; exports.METHODS = { "DELETE": 0, "GET": 1, "HEAD": 2, "POST": 3, "PUT": 4, /* pathological */ "CONNECT": 5, "OPTIONS": 6, "TRACE": 7, /* WebDAV */ "COPY": 8, "LOCK": 9, "MKCOL": 10, "MOVE": 11, "PROPFIND": 12, "PROPPATCH": 13, "SEARCH": 14, "UNLOCK": 15, "BIND": 16, "REBIND": 17, "UNBIND": 18, "ACL": 19, /* subversion */ "REPORT": 20, "MKACTIVITY": 21, "CHECKOUT": 22, "MERGE": 23, /* upnp */ "M-SEARCH": 24, "NOTIFY": 25, "SUBSCRIBE": 26, "UNSUBSCRIBE": 27, /* RFC-5789 */ "PATCH": 28, "PURGE": 29, /* CalDAV */ "MKCALENDAR": 30, /* RFC-2068, section 19.6.1.2 */ "LINK": 31, "UNLINK": 32, /* icecast */ "SOURCE": 33, /* RFC-7540, section 11.6 */ "PRI": 34, /* RFC-2326 RTSP */ "DESCRIBE": 35, "ANNOUNCE": 36, "SETUP": 37, "PLAY": 38, "PAUSE": 39, "TEARDOWN": 40, "GET_PARAMETER": 41, "SET_PARAMETER": 42, "REDIRECT": 43, "RECORD": 44, /* RAOP */ "FLUSH": 45, /* DRAFT https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-02.html */ "QUERY": 46 }; exports.STATUSES = { CONTINUE: 100, SWITCHING_PROTOCOLS: 101, PROCESSING: 102, EARLY_HINTS: 103, RESPONSE_IS_STALE: 110, // Unofficial REVALIDATION_FAILED: 111, // Unofficial DISCONNECTED_OPERATION: 112, // Unofficial HEURISTIC_EXPIRATION: 113, // Unofficial MISCELLANEOUS_WARNING: 199, // Unofficial OK: 200, CREATED: 201, ACCEPTED: 202, NON_AUTHORITATIVE_INFORMATION: 203, NO_CONTENT: 204, RESET_CONTENT: 205, PARTIAL_CONTENT: 206, MULTI_STATUS: 207, ALREADY_REPORTED: 208, TRANSFORMATION_APPLIED: 214, // Unofficial IM_USED: 226, MISCELLANEOUS_PERSISTENT_WARNING: 299, // Unofficial MULTIPLE_CHOICES: 300, MOVED_PERMANENTLY: 301, FOUND: 302, SEE_OTHER: 303, NOT_MODIFIED: 304, USE_PROXY: 305, SWITCH_PROXY: 306, // No longer used TEMPORARY_REDIRECT: 307, PERMANENT_REDIRECT: 308, BAD_REQUEST: 400, UNAUTHORIZED: 401, PAYMENT_REQUIRED: 402, FORBIDDEN: 403, NOT_FOUND: 404, METHOD_NOT_ALLOWED: 405, NOT_ACCEPTABLE: 406, PROXY_AUTHENTICATION_REQUIRED: 407, REQUEST_TIMEOUT: 408, CONFLICT: 409, GONE: 410, LENGTH_REQUIRED: 411, PRECONDITION_FAILED: 412, PAYLOAD_TOO_LARGE: 413, URI_TOO_LONG: 414, UNSUPPORTED_MEDIA_TYPE: 415, RANGE_NOT_SATISFIABLE: 416, EXPECTATION_FAILED: 417, IM_A_TEAPOT: 418, PAGE_EXPIRED: 419, // Unofficial ENHANCE_YOUR_CALM: 420, // Unofficial MISDIRECTED_REQUEST: 421, UNPROCESSABLE_ENTITY: 422, LOCKED: 423, FAILED_DEPENDENCY: 424, TOO_EARLY: 425, UPGRADE_REQUIRED: 426, PRECONDITION_REQUIRED: 428, TOO_MANY_REQUESTS: 429, REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL: 430, // Unofficial REQUEST_HEADER_FIELDS_TOO_LARGE: 431, LOGIN_TIMEOUT: 440, // Unofficial NO_RESPONSE: 444, // Unofficial RETRY_WITH: 449, // Unofficial BLOCKED_BY_PARENTAL_CONTROL: 450, // Unofficial UNAVAILABLE_FOR_LEGAL_REASONS: 451, CLIENT_CLOSED_LOAD_BALANCED_REQUEST: 460, // Unofficial INVALID_X_FORWARDED_FOR: 463, // Unofficial REQUEST_HEADER_TOO_LARGE: 494, // Unofficial SSL_CERTIFICATE_ERROR: 495, // Unofficial SSL_CERTIFICATE_REQUIRED: 496, // Unofficial HTTP_REQUEST_SENT_TO_HTTPS_PORT: 497, // Unofficial INVALID_TOKEN: 498, // Unofficial CLIENT_CLOSED_REQUEST: 499, // Unofficial INTERNAL_SERVER_ERROR: 500, NOT_IMPLEMENTED: 501, BAD_GATEWAY: 502, SERVICE_UNAVAILABLE: 503, GATEWAY_TIMEOUT: 504, HTTP_VERSION_NOT_SUPPORTED: 505, VARIANT_ALSO_NEGOTIATES: 506, INSUFFICIENT_STORAGE: 507, LOOP_DETECTED: 508, BANDWIDTH_LIMIT_EXCEEDED: 509, NOT_EXTENDED: 510, NETWORK_AUTHENTICATION_REQUIRED: 511, WEB_SERVER_UNKNOWN_ERROR: 520, // Unofficial WEB_SERVER_IS_DOWN: 521, // Unofficial CONNECTION_TIMEOUT: 522, // Unofficial ORIGIN_IS_UNREACHABLE: 523, // Unofficial TIMEOUT_OCCURED: 524, // Unofficial SSL_HANDSHAKE_FAILED: 525, // Unofficial INVALID_SSL_CERTIFICATE: 526, // Unofficial RAILGUN_ERROR: 527, // Unofficial SITE_IS_OVERLOADED: 529, // Unofficial SITE_IS_FROZEN: 530, // Unofficial IDENTITY_PROVIDER_AUTHENTICATION_ERROR: 561, // Unofficial NETWORK_READ_TIMEOUT: 598, // Unofficial NETWORK_CONNECT_TIMEOUT: 599 // Unofficial }; exports.FINISH = { SAFE: 0, SAFE_WITH_CB: 1, UNSAFE: 2 }; exports.HEADER_STATE = { GENERAL: 0, CONNECTION: 1, CONTENT_LENGTH: 2, TRANSFER_ENCODING: 3, UPGRADE: 4, CONNECTION_KEEP_ALIVE: 5, CONNECTION_CLOSE: 6, CONNECTION_UPGRADE: 7, TRANSFER_ENCODING_CHUNKED: 8 }; exports.METHODS_HTTP = [ exports.METHODS.DELETE, exports.METHODS.GET, exports.METHODS.HEAD, exports.METHODS.POST, exports.METHODS.PUT, exports.METHODS.CONNECT, exports.METHODS.OPTIONS, exports.METHODS.TRACE, exports.METHODS.COPY, exports.METHODS.LOCK, exports.METHODS.MKCOL, exports.METHODS.MOVE, exports.METHODS.PROPFIND, exports.METHODS.PROPPATCH, exports.METHODS.SEARCH, exports.METHODS.UNLOCK, exports.METHODS.BIND, exports.METHODS.REBIND, exports.METHODS.UNBIND, exports.METHODS.ACL, exports.METHODS.REPORT, exports.METHODS.MKACTIVITY, exports.METHODS.CHECKOUT, exports.METHODS.MERGE, exports.METHODS["M-SEARCH"], exports.METHODS.NOTIFY, exports.METHODS.SUBSCRIBE, exports.METHODS.UNSUBSCRIBE, exports.METHODS.PATCH, exports.METHODS.PURGE, exports.METHODS.MKCALENDAR, exports.METHODS.LINK, exports.METHODS.UNLINK, exports.METHODS.PRI, // TODO(indutny): should we allow it with HTTP? exports.METHODS.SOURCE, exports.METHODS.QUERY ]; exports.METHODS_ICE = [ exports.METHODS.SOURCE ]; exports.METHODS_RTSP = [ exports.METHODS.OPTIONS, exports.METHODS.DESCRIBE, exports.METHODS.ANNOUNCE, exports.METHODS.SETUP, exports.METHODS.PLAY, exports.METHODS.PAUSE, exports.METHODS.TEARDOWN, exports.METHODS.GET_PARAMETER, exports.METHODS.SET_PARAMETER, exports.METHODS.REDIRECT, exports.METHODS.RECORD, exports.METHODS.FLUSH, // For AirPlay exports.METHODS.GET, exports.METHODS.POST ]; exports.METHOD_MAP = (0, utils_1.enumToMap)(exports.METHODS); exports.H_METHOD_MAP = Object.fromEntries(Object.entries(exports.METHODS).filter(([k7]) => k7.startsWith("H"))); exports.STATUSES_HTTP = [ exports.STATUSES.CONTINUE, exports.STATUSES.SWITCHING_PROTOCOLS, exports.STATUSES.PROCESSING, exports.STATUSES.EARLY_HINTS, exports.STATUSES.RESPONSE_IS_STALE, exports.STATUSES.REVALIDATION_FAILED, exports.STATUSES.DISCONNECTED_OPERATION, exports.STATUSES.HEURISTIC_EXPIRATION, exports.STATUSES.MISCELLANEOUS_WARNING, exports.STATUSES.OK, exports.STATUSES.CREATED, exports.STATUSES.ACCEPTED, exports.STATUSES.NON_AUTHORITATIVE_INFORMATION, exports.STATUSES.NO_CONTENT, exports.STATUSES.RESET_CONTENT, exports.STATUSES.PARTIAL_CONTENT, exports.STATUSES.MULTI_STATUS, exports.STATUSES.ALREADY_REPORTED, exports.STATUSES.TRANSFORMATION_APPLIED, exports.STATUSES.IM_USED, exports.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING, exports.STATUSES.MULTIPLE_CHOICES, exports.STATUSES.MOVED_PERMANENTLY, exports.STATUSES.FOUND, exports.STATUSES.SEE_OTHER, exports.STATUSES.NOT_MODIFIED, exports.STATUSES.USE_PROXY, exports.STATUSES.SWITCH_PROXY, exports.STATUSES.TEMPORARY_REDIRECT, exports.STATUSES.PERMANENT_REDIRECT, exports.STATUSES.BAD_REQUEST, exports.STATUSES.UNAUTHORIZED, exports.STATUSES.PAYMENT_REQUIRED, exports.STATUSES.FORBIDDEN, exports.STATUSES.NOT_FOUND, exports.STATUSES.METHOD_NOT_ALLOWED, exports.STATUSES.NOT_ACCEPTABLE, exports.STATUSES.PROXY_AUTHENTICATION_REQUIRED, exports.STATUSES.REQUEST_TIMEOUT, exports.STATUSES.CONFLICT, exports.STATUSES.GONE, exports.STATUSES.LENGTH_REQUIRED, exports.STATUSES.PRECONDITION_FAILED, exports.STATUSES.PAYLOAD_TOO_LARGE, exports.STATUSES.URI_TOO_LONG, exports.STATUSES.UNSUPPORTED_MEDIA_TYPE, exports.STATUSES.RANGE_NOT_SATISFIABLE, exports.STATUSES.EXPECTATION_FAILED, exports.STATUSES.IM_A_TEAPOT, exports.STATUSES.PAGE_EXPIRED, exports.STATUSES.ENHANCE_YOUR_CALM, exports.STATUSES.MISDIRECTED_REQUEST, exports.STATUSES.UNPROCESSABLE_ENTITY, exports.STATUSES.LOCKED, exports.STATUSES.FAILED_DEPENDENCY, exports.STATUSES.TOO_EARLY, exports.STATUSES.UPGRADE_REQUIRED, exports.STATUSES.PRECONDITION_REQUIRED, exports.STATUSES.TOO_MANY_REQUESTS, exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL, exports.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE, exports.STATUSES.LOGIN_TIMEOUT, exports.STATUSES.NO_RESPONSE, exports.STATUSES.RETRY_WITH, exports.STATUSES.BLOCKED_BY_PARENTAL_CONTROL, exports.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS, exports.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST, exports.STATUSES.INVALID_X_FORWARDED_FOR, exports.STATUSES.REQUEST_HEADER_TOO_LARGE, exports.STATUSES.SSL_CERTIFICATE_ERROR, exports.STATUSES.SSL_CERTIFICATE_REQUIRED, exports.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT, exports.STATUSES.INVALID_TOKEN, exports.STATUSES.CLIENT_CLOSED_REQUEST, exports.STATUSES.INTERNAL_SERVER_ERROR, exports.STATUSES.NOT_IMPLEMENTED, exports.STATUSES.BAD_GATEWAY, exports.STATUSES.SERVICE_UNAVAILABLE, exports.STATUSES.GATEWAY_TIMEOUT, exports.STATUSES.HTTP_VERSION_NOT_SUPPORTED, exports.STATUSES.VARIANT_ALSO_NEGOTIATES, exports.STATUSES.INSUFFICIENT_STORAGE, exports.STATUSES.LOOP_DETECTED, exports.STATUSES.BANDWIDTH_LIMIT_EXCEEDED, exports.STATUSES.NOT_EXTENDED, exports.STATUSES.NETWORK_AUTHENTICATION_REQUIRED, exports.STATUSES.WEB_SERVER_UNKNOWN_ERROR, exports.STATUSES.WEB_SERVER_IS_DOWN, exports.STATUSES.CONNECTION_TIMEOUT, exports.STATUSES.ORIGIN_IS_UNREACHABLE, exports.STATUSES.TIMEOUT_OCCURED, exports.STATUSES.SSL_HANDSHAKE_FAILED, exports.STATUSES.INVALID_SSL_CERTIFICATE, exports.STATUSES.RAILGUN_ERROR, exports.STATUSES.SITE_IS_OVERLOADED, exports.STATUSES.SITE_IS_FROZEN, exports.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR, exports.STATUSES.NETWORK_READ_TIMEOUT, exports.STATUSES.NETWORK_CONNECT_TIMEOUT ]; exports.ALPHA = []; for (let i7 = "A".charCodeAt(0); i7 <= "Z".charCodeAt(0); i7++) { exports.ALPHA.push(String.fromCharCode(i7)); exports.ALPHA.push(String.fromCharCode(i7 + 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.URL_CHAR = [ "!", '"', "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~" ].concat(exports.ALPHANUM); exports.HEX = exports.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); exports.TOKEN = [ "!", "#", "$", "%", "&", "'", "*", "+", "-", ".", "^", "_", "`", "|", "~" ].concat(exports.ALPHANUM); exports.HEADER_CHARS = [" "]; for (let i7 = 32; i7 <= 255; i7++) { if (i7 !== 127) { exports.HEADER_CHARS.push(i7); } } exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c8) => c8 !== 44); exports.QUOTED_STRING = [" ", " "]; for (let i7 = 33; i7 <= 255; i7++) { if (i7 !== 34 && i7 !== 92) { exports.QUOTED_STRING.push(i7); } } exports.HTAB_SP_VCHAR_OBS_TEXT = [" ", " "]; for (let i7 = 33; i7 <= 126; i7++) { exports.HTAB_SP_VCHAR_OBS_TEXT.push(i7); } for (let i7 = 128; i7 <= 255; i7++) { exports.HTAB_SP_VCHAR_OBS_TEXT.push(i7); } exports.MAJOR = exports.NUM_MAP; exports.MINOR = exports.MAJOR; exports.SPECIAL_HEADERS = { "connection": exports.HEADER_STATE.CONNECTION, "content-length": exports.HEADER_STATE.CONTENT_LENGTH, "proxy-connection": exports.HEADER_STATE.CONNECTION, "transfer-encoding": exports.HEADER_STATE.TRANSFER_ENCODING, "upgrade": exports.HEADER_STATE.UPGRADE }; exports.default = { ERROR: exports.ERROR, TYPE: exports.TYPE, FLAGS: exports.FLAGS, LENIENT_FLAGS: exports.LENIENT_FLAGS, METHODS: exports.METHODS, STATUSES: exports.STATUSES, FINISH: exports.FINISH, HEADER_STATE: exports.HEADER_STATE, ALPHA: exports.ALPHA, NUM_MAP: exports.NUM_MAP, HEX_MAP: exports.HEX_MAP, NUM: exports.NUM, ALPHANUM: exports.ALPHANUM, MARK: exports.MARK, USERINFO_CHARS: exports.USERINFO_CHARS, URL_CHAR: exports.URL_CHAR, HEX: exports.HEX, TOKEN: exports.TOKEN, HEADER_CHARS: exports.HEADER_CHARS, CONNECTION_TOKEN_CHARS: exports.CONNECTION_TOKEN_CHARS, QUOTED_STRING: exports.QUOTED_STRING, HTAB_SP_VCHAR_OBS_TEXT: exports.HTAB_SP_VCHAR_OBS_TEXT, MAJOR: exports.MAJOR, MINOR: exports.MINOR, SPECIAL_HEADERS: exports.SPECIAL_HEADERS, METHODS_HTTP: exports.METHODS_HTTP, METHODS_ICE: exports.METHODS_ICE, METHODS_RTSP: exports.METHODS_RTSP, METHOD_MAP: exports.METHOD_MAP, H_METHOD_MAP: exports.H_METHOD_MAP, STATUSES_HTTP: exports.STATUSES_HTTP }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/llhttp-wasm.js var require_llhttp_wasm = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module4) { init_import_meta_url(); var { Buffer: Buffer7 } = __require("buffer"); var wasmBase64 = "AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRwX3NldF9sZW5pZW50X2hlYWRlcnMAISFsbGh0dHBfc2V0X2xlbmllbnRfY2h1bmtlZF9sZW5ndGgAIh1sbGh0dHBfc2V0X2xlbmllbnRfa2VlcF9hbGl2ZQAjJGxsaHR0cF9zZXRfbGVuaWVudF90cmFuc2Zlcl9lbmNvZGluZwAkGmxsaHR0cF9zZXRfbGVuaWVudF92ZXJzaW9uACUjbGxodHRwX3NldF9sZW5pZW50X2RhdGFfYWZ0ZXJfY2xvc2UAJidsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfbGZfYWZ0ZXJfY3IAJyxsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfY3JsZl9hZnRlcl9jaHVuawAoKGxsaHR0cF9zZXRfbGVuaWVudF9vcHRpb25hbF9jcl9iZWZvcmVfbGYAKSpsbGh0dHBfc2V0X2xlbmllbnRfc3BhY2VzX2FmdGVyX2NodW5rX3NpemUAKhhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YANgkYAQBBAQsSAQIDBAUKBgcyNDMuKy8tLDAxCq/ZAjQWAEHA1QAoAgAEQAALQcDVAEEBNgIACxQAIAAQOCAAIAI2AjggACABOgAoCxQAIAAgAC8BNCAALQAwIAAQNxAACx4BAX9BwAAQOiIBEDggAUGACDYCOCABIAA6ACggAQuPDAEHfwJAIABFDQAgAEEIayIBIABBBGsoAgAiAEF4cSIEaiEFAkAgAEEBcQ0AIABBA3FFDQEgASABKAIAIgBrIgFB1NUAKAIASQ0BIAAgBGohBAJAAkBB2NUAKAIAIAFHBEAgAEH/AU0EQCAAQQN2IQMgASgCCCIAIAEoAgwiAkYEQEHE1QBBxNUAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgASgCGCEGIAEgASgCDCIARwRAIAAgASgCCCICNgIIIAIgADYCDAwDCyABQRRqIgMoAgAiAkUEQCABKAIQIgJFDQIgAUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSgCBCIAQQNxQQNHDQIgBSAAQX5xNgIEQczVACAENgIAIAUgBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgASgCHCICQQJ0QfTXAGoiAygCACABRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAFGG2ogADYCACAARQ0BCyAAIAY2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgAUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBU8NACAFKAIEIgBBAXFFDQACQAJAAkACQCAAQQJxRQRAQdzVACgCACAFRgRAQdzVACABNgIAQdDVAEHQ1QAoAgAgBGoiADYCACABIABBAXI2AgQgAUHY1QAoAgBHDQZBzNUAQQA2AgBB2NUAQQA2AgAMBgtB2NUAKAIAIAVGBEBB2NUAIAE2AgBBzNUAQczVACgCACAEaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAMBgsgAEF4cSAEaiEEIABB/wFNBEAgAEEDdiEDIAUoAggiACAFKAIMIgJGBEBBxNUAQcTVACgCAEF+IAN3cTYCAAwFCyACIAA2AgggACACNgIMDAQLIAUoAhghBiAFIAUoAgwiAEcEQEHU1QAoAgAaIAAgBSgCCCICNgIIIAIgADYCDAwDCyAFQRRqIgMoAgAiAkUEQCAFKAIQIgJFDQIgBUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSAAQX5xNgIEIAEgBGogBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgBSgCHCICQQJ0QfTXAGoiAygCACAFRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogADYCACAARQ0BCyAAIAY2AhggBSgCECICBEAgACACNgIQIAIgADYCGAsgBUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBGogBDYCACABIARBAXI2AgQgAUHY1QAoAgBHDQBBzNUAIAQ2AgAMAQsgBEH/AU0EQCAEQXhxQezVAGohAAJ/QcTVACgCACICQQEgBEEDdnQiA3FFBEBBxNUAIAIgA3I2AgAgAAwBCyAAKAIICyICIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggMAQtBHyECIARB////B00EQCAEQSYgBEEIdmciAGt2QQFxIABBAXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw=="; var wasmBuffer; Object.defineProperty(module4, "exports", { get: /* @__PURE__ */ __name(() => { return wasmBuffer ? wasmBuffer : wasmBuffer = Buffer7.from(wasmBase64, "base64"); }, "get") }); } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js var require_llhttp_simd_wasm = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module4) { init_import_meta_url(); var { Buffer: Buffer7 } = __require("buffer"); var wasmBase64 = "AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw=="; var wasmBuffer; Object.defineProperty(module4, "exports", { get: /* @__PURE__ */ __name(() => { return wasmBuffer ? wasmBuffer : wasmBuffer = Buffer7.from(wasmBase64, "base64"); }, "get") }); } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/constants.js var require_constants3 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/constants.js"(exports, module4) { init_import_meta_url(); 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 referrerPolicyTokens = ( /** @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 referrerPolicy = ( /** @type {const} */ [ "", ...referrerPolicyTokens ] ); var referrerPolicyTokensSet = new Set(referrerPolicyTokens); 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); module4.exports = { subresource, forbiddenMethods, requestBodyHeader, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, redirectStatus, corsSafeListedMethods, nullBodyStatus, safeMethods, badPorts, requestDuplex, subresourceSet, badPortsSet, redirectStatusSet, corsSafeListedMethodsSet, safeMethodsSet, forbiddenMethodsSet, referrerPolicyTokens: referrerPolicyTokensSet }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/global.js var require_global = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/global.js"(exports, module4) { init_import_meta_url(); var globalOrigin = Symbol.for("undici.globalOrigin.1"); function getGlobalOrigin() { return globalThis[globalOrigin]; } __name(getGlobalOrigin, "getGlobalOrigin"); 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 }); } __name(setGlobalOrigin, "setGlobalOrigin"); module4.exports = { getGlobalOrigin, setGlobalOrigin }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/encoding/index.js var require_encoding = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/encoding/index.js"(exports, module4) { init_import_meta_url(); 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; } __name(utf8DecodeBytes, "utf8DecodeBytes"); module4.exports = { utf8DecodeBytes }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/infra/index.js var require_infra = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/infra/index.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { utf8DecodeBytes } = require_encoding(); function collectASequenceOfCodePoints(condition, input, position) { let result = ""; while (position.position < input.length && condition(input[position.position])) { result += input[position.position]; position.position++; } return result; } __name(collectASequenceOfCodePoints, "collectASequenceOfCodePoints"); 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); } __name(collectASequenceOfCodePointsFast, "collectASequenceOfCodePointsFast"); var ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g; 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); } __name(forgivingBase64, "forgivingBase64"); function isASCIIWhitespace(char) { return char === 9 || // \t char === 10 || // \n char === 12 || // \f char === 13 || // \r char === 32; } __name(isASCIIWhitespace, "isASCIIWhitespace"); function isomorphicDecode(input) { const length = input.length; if ((2 << 15) - 1 > length) { return String.fromCharCode.apply(null, input); } let result = ""; let i7 = 0; let addition = (2 << 15) - 1; while (i7 < length) { if (i7 + addition > length) { addition = length - i7; } result += String.fromCharCode.apply(null, input.subarray(i7, i7 += addition)); } return result; } __name(isomorphicDecode, "isomorphicDecode"); var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/; function isomorphicEncode(input) { assert58(!invalidIsomorphicEncodeValueRegex.test(input)); return input; } __name(isomorphicEncode, "isomorphicEncode"); function parseJSONFromBytes(bytes) { return JSON.parse(utf8DecodeBytes(bytes)); } __name(parseJSONFromBytes, "parseJSONFromBytes"); function removeASCIIWhitespace(str, leading = true, trailing = true) { return removeChars(str, leading, trailing, isASCIIWhitespace); } __name(removeASCIIWhitespace, "removeASCIIWhitespace"); 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); } __name(removeChars, "removeChars"); function serializeJavascriptValueToJSONString(value) { const result = JSON.stringify(value); if (result === void 0) { throw new TypeError("Value is not JSON serializable"); } assert58(typeof result === "string"); return result; } __name(serializeJavascriptValueToJSONString, "serializeJavascriptValueToJSONString"); module4.exports = { collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, forgivingBase64, isASCIIWhitespace, isomorphicDecode, isomorphicEncode, parseJSONFromBytes, removeASCIIWhitespace, removeChars, serializeJavascriptValueToJSONString }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/data-url.js var require_data_url = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/data-url.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { forgivingBase64, collectASequenceOfCodePoints, collectASequenceOfCodePointsFast, isomorphicDecode, removeASCIIWhitespace, removeChars } = require_infra(); var encoder = new TextEncoder(); var HTTP_TOKEN_CODEPOINTS = /^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u; var HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/u; var HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u; function dataURLProcessor(dataURL) { assert58(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*)base64$/ui.test(mimeType)) { const stringBody = isomorphicDecode(body); body = forgivingBase64(stringBody); if (body === "failure") { return "failure"; } mimeType = mimeType.slice(0, -6); mimeType = mimeType.replace(/(\u0020+)$/u, ""); 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 }; } __name(dataURLProcessor, "dataURLProcessor"); function URLSerializer(url4, excludeFragment = false) { if (!excludeFragment) { return url4.href; } const href = url4.href; const hashLength = url4.hash.length; const serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); if (!hashLength && href.endsWith("#")) { return serialized.slice(0, -1); } return serialized; } __name(URLSerializer, "URLSerializer"); function stringPercentDecode(input) { const bytes = encoder.encode(input); return percentDecode(bytes); } __name(stringPercentDecode, "stringPercentDecode"); function isHexCharByte(byte) { return byte >= 48 && byte <= 57 || byte >= 65 && byte <= 70 || byte >= 97 && byte <= 102; } __name(isHexCharByte, "isHexCharByte"); function hexByteToNumber(byte) { return ( // 0-9 byte >= 48 && byte <= 57 ? byte - 48 : (byte & 223) - 55 ); } __name(hexByteToNumber, "hexByteToNumber"); function percentDecode(input) { const length = input.length; const output = new Uint8Array(length); let j7 = 0; let i7 = 0; while (i7 < length) { const byte = input[i7]; if (byte !== 37) { output[j7++] = byte; } else if (byte === 37 && !(isHexCharByte(input[i7 + 1]) && isHexCharByte(input[i7 + 2]))) { output[j7++] = 37; } else { output[j7++] = hexByteToNumber(input[i7 + 1]) << 4 | hexByteToNumber(input[i7 + 2]); i7 += 2; } ++i7; } return length === j7 ? output : output.subarray(0, j7); } __name(percentDecode, "percentDecode"); 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; } __name(parseMIMEType, "parseMIMEType"); function collectAnHTTPQuotedString(input, position, extractValue3 = false) { const positionStart = position.position; let value = ""; assert58(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 { assert58(quoteOrBackslash === '"'); break; } } if (extractValue3) { return value; } return input.slice(positionStart, position.position); } __name(collectAnHTTPQuotedString, "collectAnHTTPQuotedString"); function serializeAMimeType(mimeType) { assert58(mimeType !== "failure"); const { parameters, essence } = mimeType; let serialization = essence; for (let [name2, value] of parameters.entries()) { serialization += ";"; serialization += name2; serialization += "="; if (!HTTP_TOKEN_CODEPOINTS.test(value)) { value = value.replace(/[\\"]/ug, "\\$&"); value = '"' + value; value += '"'; } serialization += value; } return serialization; } __name(serializeAMimeType, "serializeAMimeType"); function isHTTPWhiteSpace(char) { return char === 13 || char === 10 || char === 9 || char === 32; } __name(isHTTPWhiteSpace, "isHTTPWhiteSpace"); function removeHTTPWhitespace(str, leading = true, trailing = true) { return removeChars(str, leading, trailing, isHTTPWhiteSpace); } __name(removeHTTPWhitespace, "removeHTTPWhitespace"); 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 ""; } __name(minimizeSupportedMimeType, "minimizeSupportedMimeType"); module4.exports = { dataURLProcessor, URLSerializer, stringPercentDecode, parseMIMEType, collectAnHTTPQuotedString, serializeAMimeType, removeHTTPWhitespace, minimizeSupportedMimeType, HTTP_TOKEN_CODEPOINTS }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/runtime-features.js var require_runtime_features = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/runtime-features.js"(exports, module4) { init_import_meta_url(); var lazyLoaders = { __proto__: null, "node:crypto": /* @__PURE__ */ __name(() => __require("crypto"), "node:crypto"), "node:sqlite": /* @__PURE__ */ __name(() => __require("sqlite"), "node:sqlite"), "node:worker_threads": /* @__PURE__ */ __name(() => __require("worker_threads"), "node:worker_threads"), "node:zlib": /* @__PURE__ */ __name(() => __require("zlib"), "node:zlib") }; function detectRuntimeFeatureByNodeModule(moduleName) { try { lazyLoaders[moduleName](); return true; } catch (err) { if (err.code !== "ERR_UNKNOWN_BUILTIN_MODULE" && err.code !== "ERR_NO_CRYPTO") { throw err; } return false; } } __name(detectRuntimeFeatureByNodeModule, "detectRuntimeFeatureByNodeModule"); function detectRuntimeFeatureByExportedProperty(moduleName, property) { const module5 = lazyLoaders[moduleName](); return typeof module5[property] !== "undefined"; } __name(detectRuntimeFeatureByExportedProperty, "detectRuntimeFeatureByExportedProperty"); var runtimeFeaturesByExportedProperty = ( /** @type {const} */ ["markAsUncloneable", "zstd"] ); var exportedPropertyLookup = { markAsUncloneable: ["node:worker_threads", "markAsUncloneable"], zstd: ["node:zlib", "createZstdDecompress"] }; var runtimeFeaturesAsNodeModule = ( /** @type {const} */ ["crypto", "sqlite"] ); var features = ( /** @type {const} */ [ ...runtimeFeaturesAsNodeModule, ...runtimeFeaturesByExportedProperty ] ); function detectRuntimeFeature(feature) { if (runtimeFeaturesAsNodeModule.includes( /** @type {RuntimeFeatureByNodeModule} */ feature )) { return detectRuntimeFeatureByNodeModule(`node:${feature}`); } else if (runtimeFeaturesByExportedProperty.includes( /** @type {RuntimeFeatureByExportedProperty} */ feature )) { const [moduleName, property] = exportedPropertyLookup[feature]; return detectRuntimeFeatureByExportedProperty(moduleName, property); } throw new TypeError(`unknown feature: ${feature}`); } __name(detectRuntimeFeature, "detectRuntimeFeature"); var RuntimeFeatures = class { static { __name(this, "RuntimeFeatures"); } /** @type {Map} */ #map = /* @__PURE__ */ new Map(); /** * Clears all cached feature detections. */ clear() { this.#map.clear(); } /** * @param {Feature} feature * @returns {boolean} */ has(feature) { return this.#map.get(feature) ?? this.#detectRuntimeFeature(feature); } /** * @param {Feature} feature * @param {boolean} value */ set(feature, value) { if (features.includes(feature) === false) { throw new TypeError(`unknown feature: ${feature}`); } this.#map.set(feature, value); } /** * @param {Feature} feature * @returns {boolean} */ #detectRuntimeFeature(feature) { const result = detectRuntimeFeature(feature); this.#map.set(feature, result); return result; } }; var instance = new RuntimeFeatures(); module4.exports.runtimeFeatures = instance; module4.exports.default = instance; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/webidl/index.js var require_webidl = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/webidl/index.js"(exports, module4) { init_import_meta_url(); var { types: types12, inspect: inspect3 } = __require("util"); var { runtimeFeatures } = require_runtime_features(); var UNDEFINED = 1; var BOOLEAN = 2; var STRING = 3; var SYMBOL = 4; var NUMBER = 5; var BIGINT = 6; var NULL = 7; var OBJECT = 8; var FunctionPrototypeSymbolHasInstance = Function.call.bind(Function.prototype[Symbol.hasInstance]); var webidl = { converters: {}, util: {}, errors: {}, is: {} }; webidl.errors.exception = function(message) { return new TypeError(`${message.header}: ${message.message}`); }; webidl.errors.conversionFailed = function(opts) { const plural2 = opts.types.length === 1 ? "" : " one of"; const message = `${opts.argument} could not be converted to${plural2}: ${opts.types.join(", ")}.`; return webidl.errors.exception({ header: opts.prefix, message }); }; webidl.errors.invalidArgument = function(context2) { return webidl.errors.exception({ header: context2.prefix, message: `"${context2.value}" is an invalid ${context2.type}.` }); }; webidl.brandCheck = function(V4, I5) { if (!FunctionPrototypeSymbolHasInstance(I5, V4)) { const err = new TypeError("Illegal invocation"); err.code = "ERR_INVALID_THIS"; throw err; } }; webidl.brandCheckMultiple = function(List) { const prototypes = List.map((c8) => webidl.util.MakeTypeAssertion(c8)); return (V4) => { if (prototypes.every((typeCheck) => !typeCheck(V4))) { 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.MakeTypeAssertion = function(I5) { return (O4) => FunctionPrototypeSymbolHasInstance(I5, O4); }; webidl.util.Type = function(V4) { switch (typeof V4) { 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 (V4 === null) { return NULL; } return OBJECT; } } }; webidl.util.Types = { UNDEFINED, BOOLEAN, STRING, SYMBOL, NUMBER, BIGINT, NULL, OBJECT }; webidl.util.TypeValueToString = function(o7) { switch (webidl.util.Type(o7)) { 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 NULL: return "Null"; case OBJECT: return "Object"; } }; webidl.util.markAsUncloneable = runtimeFeatures.has("markAsUncloneable") ? __require("worker_threads").markAsUncloneable : () => { }; webidl.util.ConvertToInt = function(V4, bitLength, signedness, flags2) { let upperBound; let lowerBound2; if (bitLength === 64) { upperBound = Math.pow(2, 53) - 1; if (signedness === "unsigned") { lowerBound2 = 0; } else { lowerBound2 = Math.pow(-2, 53) + 1; } } else if (signedness === "unsigned") { lowerBound2 = 0; upperBound = Math.pow(2, bitLength) - 1; } else { lowerBound2 = Math.pow(-2, bitLength) - 1; upperBound = Math.pow(2, bitLength - 1) - 1; } let x7 = Number(V4); if (x7 === 0) { x7 = 0; } if (webidl.util.HasFlag(flags2, webidl.attributes.EnforceRange)) { if (Number.isNaN(x7) || x7 === Number.POSITIVE_INFINITY || x7 === Number.NEGATIVE_INFINITY) { throw webidl.errors.exception({ header: "Integer conversion", message: `Could not convert ${webidl.util.Stringify(V4)} to an integer.` }); } x7 = webidl.util.IntegerPart(x7); if (x7 < lowerBound2 || x7 > upperBound) { throw webidl.errors.exception({ header: "Integer conversion", message: `Value must be between ${lowerBound2}-${upperBound}, got ${x7}.` }); } return x7; } if (!Number.isNaN(x7) && webidl.util.HasFlag(flags2, webidl.attributes.Clamp)) { x7 = Math.min(Math.max(x7, lowerBound2), upperBound); if (Math.floor(x7) % 2 === 0) { x7 = Math.floor(x7); } else { x7 = Math.ceil(x7); } return x7; } if (Number.isNaN(x7) || x7 === 0 && Object.is(0, x7) || x7 === Number.POSITIVE_INFINITY || x7 === Number.NEGATIVE_INFINITY) { return 0; } x7 = webidl.util.IntegerPart(x7); x7 = x7 % Math.pow(2, bitLength); if (signedness === "signed" && x7 >= Math.pow(2, bitLength) - 1) { return x7 - Math.pow(2, bitLength); } return x7; }; webidl.util.IntegerPart = function(n8) { const r9 = Math.floor(Math.abs(n8)); if (n8 < 0) { return -1 * r9; } return r9; }; webidl.util.Stringify = function(V4) { const type = webidl.util.Type(V4); switch (type) { case SYMBOL: return `Symbol(${V4.description})`; case OBJECT: return inspect3(V4); case STRING: return `"${V4}"`; case BIGINT: return `${V4}n`; default: return `${V4}`; } }; webidl.util.IsResizableArrayBuffer = function(V4) { if (types12.isArrayBuffer(V4)) { return V4.resizable; } if (types12.isSharedArrayBuffer(V4)) { return V4.growable; } throw webidl.errors.exception({ header: "IsResizableArrayBuffer", message: `"${webidl.util.Stringify(V4)}" is not an array buffer.` }); }; webidl.util.HasFlag = function(flags2, attributes) { return typeof flags2 === "number" && (flags2 & attributes) === attributes; }; webidl.sequenceConverter = function(converter) { return (V4, prefix, argument, Iterable) => { if (webidl.util.Type(V4) !== OBJECT) { throw webidl.errors.exception({ header: prefix, message: `${argument} (${webidl.util.Stringify(V4)}) is not iterable.` }); } const method = typeof Iterable === "function" ? Iterable() : V4?.[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 (O4, prefix, argument) => { if (webidl.util.Type(O4) !== OBJECT) { throw webidl.errors.exception({ header: prefix, message: `${argument} ("${webidl.util.TypeValueToString(O4)}") is not an Object.` }); } const result = {}; if (!types12.isProxy(O4)) { const keys2 = [...Object.getOwnPropertyNames(O4), ...Object.getOwnPropertySymbols(O4)]; for (const key of keys2) { const keyName = webidl.util.Stringify(key); const typedKey = keyConverter(key, prefix, `Key ${keyName} in ${argument}`); const typedValue = valueConverter(O4[key], prefix, `${argument}[${keyName}]`); result[typedKey] = typedValue; } return result; } const keys = Reflect.ownKeys(O4); for (const key of keys) { const desc = Reflect.getOwnPropertyDescriptor(O4, key); if (desc?.enumerable) { const typedKey = keyConverter(key, prefix, argument); const typedValue = valueConverter(O4[key], prefix, argument); result[typedKey] = typedValue; } } return result; }; }; webidl.interfaceConverter = function(TypeCheck, name2) { return (V4, prefix, argument) => { if (!TypeCheck(V4)) { throw webidl.errors.exception({ header: prefix, message: `Expected ${argument} ("${webidl.util.Stringify(V4)}") to be an instance of ${name2}.` }); } return V4; }; }; webidl.dictionaryConverter = function(converters) { return (dictionary, prefix, argument) => { const dict = {}; if (dictionary != null && webidl.util.Type(dictionary) !== 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, converter } = options; if (required === true) { if (dictionary == null || !Object.hasOwn(dictionary, key)) { throw webidl.errors.exception({ header: prefix, message: `Missing required key "${key}".` }); } } let value = dictionary?.[key]; const hasDefault = defaultValue !== void 0; if (hasDefault && value === void 0) { value = defaultValue(); } if (required || 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 (V4, prefix, argument) => { if (V4 === null) { return V4; } return converter(V4, prefix, argument); }; }; webidl.is.USVString = function(value) { return typeof value === "string" && value.isWellFormed(); }; webidl.is.ReadableStream = webidl.util.MakeTypeAssertion(ReadableStream); webidl.is.Blob = webidl.util.MakeTypeAssertion(Blob); webidl.is.URLSearchParams = webidl.util.MakeTypeAssertion(URLSearchParams); webidl.is.File = webidl.util.MakeTypeAssertion(File); webidl.is.URL = webidl.util.MakeTypeAssertion(URL); webidl.is.AbortSignal = webidl.util.MakeTypeAssertion(AbortSignal); webidl.is.MessagePort = webidl.util.MakeTypeAssertion(MessagePort); webidl.is.BufferSource = function(V4) { return types12.isArrayBuffer(V4) || ArrayBuffer.isView(V4) && types12.isArrayBuffer(V4.buffer); }; webidl.converters.DOMString = function(V4, prefix, argument, flags2) { if (V4 === null && webidl.util.HasFlag(flags2, webidl.attributes.LegacyNullToEmptyString)) { return ""; } if (typeof V4 === "symbol") { throw webidl.errors.exception({ header: prefix, message: `${argument} is a symbol, which cannot be converted to a DOMString.` }); } return String(V4); }; webidl.converters.ByteString = function(V4, prefix, argument) { if (typeof V4 === "symbol") { throw webidl.errors.exception({ header: prefix, message: `${argument} is a symbol, which cannot be converted to a ByteString.` }); } const x7 = String(V4); for (let index = 0; index < x7.length; index++) { if (x7.charCodeAt(index) > 255) { throw new TypeError( `Cannot convert argument to a ByteString because the character at index ${index} has a value of ${x7.charCodeAt(index)} which is greater than 255.` ); } } return x7; }; webidl.converters.USVString = function(value) { if (typeof value === "string") { return value.toWellFormed(); } return `${value}`.toWellFormed(); }; webidl.converters.boolean = function(V4) { const x7 = Boolean(V4); return x7; }; webidl.converters.any = function(V4) { return V4; }; webidl.converters["long long"] = function(V4, prefix, argument) { const x7 = webidl.util.ConvertToInt(V4, 64, "signed", 0, prefix, argument); return x7; }; webidl.converters["unsigned long long"] = function(V4, prefix, argument) { const x7 = webidl.util.ConvertToInt(V4, 64, "unsigned", 0, prefix, argument); return x7; }; webidl.converters["unsigned long"] = function(V4, prefix, argument) { const x7 = webidl.util.ConvertToInt(V4, 32, "unsigned", 0, prefix, argument); return x7; }; webidl.converters["unsigned short"] = function(V4, prefix, argument, flags2) { const x7 = webidl.util.ConvertToInt(V4, 16, "unsigned", flags2, prefix, argument); return x7; }; webidl.converters.ArrayBuffer = function(V4, prefix, argument, flags2) { if (webidl.util.Type(V4) !== OBJECT || !types12.isArrayBuffer(V4)) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: ["ArrayBuffer"] }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V4)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a resizable ArrayBuffer.` }); } return V4; }; webidl.converters.SharedArrayBuffer = function(V4, prefix, argument, flags2) { if (webidl.util.Type(V4) !== OBJECT || !types12.isSharedArrayBuffer(V4)) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: ["SharedArrayBuffer"] }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V4)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a resizable SharedArrayBuffer.` }); } return V4; }; webidl.converters.TypedArray = function(V4, T4, prefix, argument, flags2) { if (webidl.util.Type(V4) !== OBJECT || !types12.isTypedArray(V4) || V4.constructor.name !== T4.name) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: [T4.name] }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowShared) && types12.isSharedArrayBuffer(V4.buffer)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a view on a shared array buffer.` }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V4.buffer)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a view on a resizable array buffer.` }); } return V4; }; webidl.converters.DataView = function(V4, prefix, argument, flags2) { if (webidl.util.Type(V4) !== OBJECT || !types12.isDataView(V4)) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: ["DataView"] }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowShared) && types12.isSharedArrayBuffer(V4.buffer)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a view on a shared array buffer.` }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V4.buffer)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a view on a resizable array buffer.` }); } return V4; }; webidl.converters.ArrayBufferView = function(V4, prefix, argument, flags2) { if (webidl.util.Type(V4) !== OBJECT || !types12.isArrayBufferView(V4)) { throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: ["ArrayBufferView"] }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowShared) && types12.isSharedArrayBuffer(V4.buffer)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a view on a shared array buffer.` }); } if (!webidl.util.HasFlag(flags2, webidl.attributes.AllowResizable) && webidl.util.IsResizableArrayBuffer(V4.buffer)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a view on a resizable array buffer.` }); } return V4; }; webidl.converters.BufferSource = function(V4, prefix, argument, flags2) { if (types12.isArrayBuffer(V4)) { return webidl.converters.ArrayBuffer(V4, prefix, argument, flags2); } if (types12.isArrayBufferView(V4)) { flags2 &= ~webidl.attributes.AllowShared; return webidl.converters.ArrayBufferView(V4, prefix, argument, flags2); } if (types12.isSharedArrayBuffer(V4)) { throw webidl.errors.exception({ header: prefix, message: `${argument} cannot be a SharedArrayBuffer.` }); } throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: ["ArrayBuffer", "ArrayBufferView"] }); }; webidl.converters.AllowSharedBufferSource = function(V4, prefix, argument, flags2) { if (types12.isArrayBuffer(V4)) { return webidl.converters.ArrayBuffer(V4, prefix, argument, flags2); } if (types12.isSharedArrayBuffer(V4)) { return webidl.converters.SharedArrayBuffer(V4, prefix, argument, flags2); } if (types12.isArrayBufferView(V4)) { flags2 |= webidl.attributes.AllowShared; return webidl.converters.ArrayBufferView(V4, prefix, argument, flags2); } throw webidl.errors.conversionFailed({ prefix, argument: `${argument} ("${webidl.util.Stringify(V4)}")`, types: ["ArrayBuffer", "SharedArrayBuffer", "ArrayBufferView"] }); }; 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 ); webidl.converters.Blob = webidl.interfaceConverter(webidl.is.Blob, "Blob"); webidl.converters.AbortSignal = webidl.interfaceConverter( webidl.is.AbortSignal, "AbortSignal" ); webidl.converters.EventHandlerNonNull = function(V4) { if (webidl.util.Type(V4) !== OBJECT) { return null; } if (typeof V4 === "function") { return V4; } return () => { }; }; webidl.attributes = { Clamp: 1 << 0, EnforceRange: 1 << 1, AllowShared: 1 << 2, AllowResizable: 1 << 3, LegacyNullToEmptyString: 1 << 4 }; module4.exports = { webidl }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/util.js var require_util2 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/util.js"(exports, module4) { init_import_meta_url(); var { Transform: Transform2 } = __require("stream"); var zlib3 = __require("zlib"); var { redirectStatusSet, referrerPolicyTokens, badPortsSet } = require_constants3(); var { getGlobalOrigin } = require_global(); var { collectAnHTTPQuotedString, parseMIMEType } = require_data_url(); var { performance: performance2 } = __require("perf_hooks"); var { ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util(); var assert58 = __require("assert"); var { isUint8Array } = __require("util/types"); var { webidl } = require_webidl(); var { isomorphicEncode, collectASequenceOfCodePoints, removeChars } = require_infra(); function responseURL(response) { const urlList = response.urlList; const length = urlList.length; return length === 0 ? null : urlList[length - 1].toString(); } __name(responseURL, "responseURL"); 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; } __name(responseLocationURL, "responseLocationURL"); function isValidEncodedURL(url4) { for (let i7 = 0; i7 < url4.length; ++i7) { const code = url4.charCodeAt(i7); if (code > 126 || // Non-US-ASCII + DEL code < 32) { return false; } } return true; } __name(isValidEncodedURL, "isValidEncodedURL"); function normalizeBinaryStringToUtf8(value) { return Buffer.from(value, "binary").toString("utf8"); } __name(normalizeBinaryStringToUtf8, "normalizeBinaryStringToUtf8"); function requestCurrentURL(request4) { return request4.urlList[request4.urlList.length - 1]; } __name(requestCurrentURL, "requestCurrentURL"); function requestBadPort(request4) { const url4 = requestCurrentURL(request4); if (urlIsHttpHttpsScheme(url4) && badPortsSet.has(url4.port)) { return "blocked"; } return "allowed"; } __name(requestBadPort, "requestBadPort"); function isErrorLike(object) { return object instanceof Error || (object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"); } __name(isErrorLike, "isErrorLike"); function isValidReasonPhrase(statusText) { for (let i7 = 0; i7 < statusText.length; ++i7) { const c8 = statusText.charCodeAt(i7); if (!(c8 === 9 || // HTAB c8 >= 32 && c8 <= 126 || // SP / VCHAR c8 >= 128 && c8 <= 255)) { return false; } } return true; } __name(isValidReasonPhrase, "isValidReasonPhrase"); 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; } __name(isValidHeaderValue, "isValidHeaderValue"); function parseReferrerPolicy(actualResponse) { const policyHeader = (actualResponse.headersList.get("referrer-policy", true) ?? "").split(","); let policy = ""; if (policyHeader.length) { for (let i7 = policyHeader.length; i7 !== 0; i7--) { const token = policyHeader[i7 - 1].trim(); if (referrerPolicyTokens.has(token)) { policy = token; break; } } } return policy; } __name(parseReferrerPolicy, "parseReferrerPolicy"); function setRequestReferrerPolicyOnRedirect(request4, actualResponse) { const policy = parseReferrerPolicy(actualResponse); if (policy !== "") { request4.referrerPolicy = policy; } } __name(setRequestReferrerPolicyOnRedirect, "setRequestReferrerPolicyOnRedirect"); function crossOriginResourcePolicyCheck() { return "allowed"; } __name(crossOriginResourcePolicyCheck, "crossOriginResourcePolicyCheck"); function corsCheck() { return "success"; } __name(corsCheck, "corsCheck"); function TAOCheck() { return "success"; } __name(TAOCheck, "TAOCheck"); function appendFetchMetadata(httpRequest2) { let header = null; header = httpRequest2.mode; httpRequest2.headersList.set("sec-fetch-mode", header, true); } __name(appendFetchMetadata, "appendFetchMetadata"); function appendRequestOriginHeader(request4) { let serializedOrigin = request4.origin; if (serializedOrigin === "client" || serializedOrigin === void 0) { return; } if (request4.responseTainting === "cors" || request4.mode === "websocket") { request4.headersList.append("origin", serializedOrigin, true); } else if (request4.method !== "GET" && request4.method !== "HEAD") { switch (request4.referrerPolicy) { case "no-referrer": serializedOrigin = null; break; case "no-referrer-when-downgrade": case "strict-origin": case "strict-origin-when-cross-origin": if (request4.origin && urlHasHttpsScheme(request4.origin) && !urlHasHttpsScheme(requestCurrentURL(request4))) { serializedOrigin = null; } break; case "same-origin": if (!sameOrigin(request4, requestCurrentURL(request4))) { serializedOrigin = null; } break; } request4.headersList.append("origin", serializedOrigin, true); } } __name(appendRequestOriginHeader, "appendRequestOriginHeader"); function coarsenTime(timestamp, crossOriginIsolatedCapability) { return timestamp; } __name(coarsenTime, "coarsenTime"); 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), domainLookupEndTime: coarsenTime(connectionTimingInfo.domainLookupEndTime), connectionStartTime: coarsenTime(connectionTimingInfo.connectionStartTime), connectionEndTime: coarsenTime(connectionTimingInfo.connectionEndTime), secureConnectionStartTime: coarsenTime(connectionTimingInfo.secureConnectionStartTime), ALPNNegotiatedProtocol: connectionTimingInfo.ALPNNegotiatedProtocol }; } __name(clampAndCoarsenConnectionTimingInfo, "clampAndCoarsenConnectionTimingInfo"); function coarsenedSharedCurrentTime(crossOriginIsolatedCapability) { return coarsenTime(performance2.now()); } __name(coarsenedSharedCurrentTime, "coarsenedSharedCurrentTime"); 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 }; } __name(createOpaqueTimingInfo, "createOpaqueTimingInfo"); function makePolicyContainer() { return { referrerPolicy: "strict-origin-when-cross-origin" }; } __name(makePolicyContainer, "makePolicyContainer"); function clonePolicyContainer(policyContainer) { return { referrerPolicy: policyContainer.referrerPolicy }; } __name(clonePolicyContainer, "clonePolicyContainer"); function determineRequestsReferrer(request4) { const policy = request4.referrerPolicy; assert58(policy); let referrerSource = null; if (request4.referrer === "client") { const globalOrigin = getGlobalOrigin(); if (!globalOrigin || globalOrigin.origin === "null") { return "no-referrer"; } referrerSource = new URL(globalOrigin); } else if (webidl.is.URL(request4.referrer)) { referrerSource = request4.referrer; } let referrerURL = stripURLForReferrer(referrerSource); const referrerOrigin = stripURLForReferrer(referrerSource, true); if (referrerURL.toString().length > 4096) { referrerURL = referrerOrigin; } switch (policy) { case "no-referrer": return "no-referrer"; case "origin": if (referrerOrigin != null) { return referrerOrigin; } return stripURLForReferrer(referrerSource, true); case "unsafe-url": return referrerURL; case "strict-origin": { const currentURL = requestCurrentURL(request4); if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { return "no-referrer"; } return referrerOrigin; } case "strict-origin-when-cross-origin": { const currentURL = requestCurrentURL(request4); if (sameOrigin(referrerURL, currentURL)) { return referrerURL; } if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { return "no-referrer"; } return referrerOrigin; } case "same-origin": if (sameOrigin(request4, referrerURL)) { return referrerURL; } return "no-referrer"; case "origin-when-cross-origin": if (sameOrigin(request4, referrerURL)) { return referrerURL; } return referrerOrigin; case "no-referrer-when-downgrade": { const currentURL = requestCurrentURL(request4); if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { return "no-referrer"; } return referrerURL; } } } __name(determineRequestsReferrer, "determineRequestsReferrer"); function stripURLForReferrer(url4, originOnly = false) { assert58(webidl.is.URL(url4)); url4 = new URL(url4); if (urlIsLocal(url4)) { return "no-referrer"; } url4.username = ""; url4.password = ""; url4.hash = ""; if (originOnly === true) { url4.pathname = ""; url4.search = ""; } return url4; } __name(stripURLForReferrer, "stripURLForReferrer"); var isPotentialleTrustworthyIPv4 = RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/); var isPotentiallyTrustworthyIPv6 = RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/); function isOriginIPPotentiallyTrustworthy(origin) { if (origin.includes(":")) { if (origin[0] === "[" && origin[origin.length - 1] === "]") { origin = origin.slice(1, -1); } return isPotentiallyTrustworthyIPv6(origin); } return isPotentialleTrustworthyIPv4(origin); } __name(isOriginIPPotentiallyTrustworthy, "isOriginIPPotentiallyTrustworthy"); function isOriginPotentiallyTrustworthy(origin) { if (origin == null || origin === "null") { return false; } origin = new URL(origin); if (origin.protocol === "https:" || origin.protocol === "wss:") { return true; } if (isOriginIPPotentiallyTrustworthy(origin.hostname)) { return true; } if (origin.hostname === "localhost" || origin.hostname === "localhost.") { return true; } if (origin.hostname.endsWith(".localhost") || origin.hostname.endsWith(".localhost.")) { return true; } if (origin.protocol === "file:") { return true; } return false; } __name(isOriginPotentiallyTrustworthy, "isOriginPotentiallyTrustworthy"); function isURLPotentiallyTrustworthy(url4) { if (!webidl.is.URL(url4)) { return false; } if (url4.href === "about:blank" || url4.href === "about:srcdoc") { return true; } if (url4.protocol === "data:") return true; if (url4.protocol === "blob:") return true; return isOriginPotentiallyTrustworthy(url4.origin); } __name(isURLPotentiallyTrustworthy, "isURLPotentiallyTrustworthy"); function tryUpgradeRequestToAPotentiallyTrustworthyURL(request4) { } __name(tryUpgradeRequestToAPotentiallyTrustworthyURL, "tryUpgradeRequestToAPotentiallyTrustworthyURL"); function sameOrigin(A4, B4) { if (A4.origin === B4.origin && A4.origin === "null") { return true; } if (A4.protocol === B4.protocol && A4.hostname === B4.hostname && A4.port === B4.port) { return true; } return false; } __name(sameOrigin, "sameOrigin"); function isAborted2(fetchParams) { return fetchParams.controller.state === "aborted"; } __name(isAborted2, "isAborted"); function isCancelled(fetchParams) { return fetchParams.controller.state === "aborted" || fetchParams.controller.state === "terminated"; } __name(isCancelled, "isCancelled"); function normalizeMethod(method) { return normalizedMethodRecordsBase[method.toLowerCase()] ?? method; } __name(normalizeMethod, "normalizeMethod"); var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function createIterator(name2, kInternalIterator, keyIndex = 0, valueIndex = 1) { class FastIterableIterator { static { __name(this, "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, kind2) { this.#target = target; this.#kind = kind2; 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 ${name2} Iterator.` ); } const index = this.#index; const values = kInternalIterator(this.#target); 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: `${name2} Iterator` }, next: { writable: true, enumerable: true, configurable: true } }); return function(target, kind2) { return new FastIterableIterator(target, kind2); }; } __name(createIterator, "createIterator"); function iteratorMixin(name2, object, kInternalIterator, keyIndex = 0, valueIndex = 1) { const makeIterator = createIterator(name2, kInternalIterator, keyIndex, valueIndex); const properties = { keys: { writable: true, enumerable: true, configurable: true, value: /* @__PURE__ */ __name(function keys() { webidl.brandCheck(this, object); return makeIterator(this, "key"); }, "keys") }, values: { writable: true, enumerable: true, configurable: true, value: /* @__PURE__ */ __name(function values() { webidl.brandCheck(this, object); return makeIterator(this, "value"); }, "values") }, entries: { writable: true, enumerable: true, configurable: true, value: /* @__PURE__ */ __name(function entries2() { webidl.brandCheck(this, object); return makeIterator(this, "key+value"); }, "entries") }, forEach: { writable: true, enumerable: true, configurable: true, value: /* @__PURE__ */ __name(function forEach(callbackfn, thisArg = globalThis) { webidl.brandCheck(this, object); webidl.argumentLengthCheck(arguments, 1, `${name2}.forEach`); if (typeof callbackfn !== "function") { throw new TypeError( `Failed to execute 'forEach' on '${name2}': parameter 1 is not of type 'Function'.` ); } for (const { 0: key, 1: value } of makeIterator(this, "key+value")) { callbackfn.call(thisArg, value, key, this); } }, "forEach") } }; return Object.defineProperties(object.prototype, { ...properties, [Symbol.iterator]: { writable: true, enumerable: false, configurable: true, value: properties.entries.value } }); } __name(iteratorMixin, "iteratorMixin"); function fullyReadBody(body, processBody, processBodyError) { const successSteps = processBody; const errorSteps = processBodyError; try { const reader = body.stream.getReader(); readAllBytes(reader, successSteps, errorSteps); } catch (e9) { errorSteps(e9); } } __name(fullyReadBody, "fullyReadBody"); 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; } } } __name(readableStreamClose, "readableStreamClose"); async function readAllBytes(reader, successSteps, failureSteps) { try { const bytes = []; let byteLength = 0; do { const { done, value: chunk } = await reader.read(); if (done) { successSteps(Buffer.concat(bytes, byteLength)); return; } if (!isUint8Array(chunk)) { failureSteps(new TypeError("Received non-Uint8Array chunk")); return; } bytes.push(chunk); byteLength += chunk.length; } while (true); } catch (e9) { failureSteps(e9); } } __name(readAllBytes, "readAllBytes"); function urlIsLocal(url4) { assert58("protocol" in url4); const protocol = url4.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } __name(urlIsLocal, "urlIsLocal"); function urlHasHttpsScheme(url4) { return typeof url4 === "string" && url4[5] === ":" && url4[0] === "h" && url4[1] === "t" && url4[2] === "t" && url4[3] === "p" && url4[4] === "s" || url4.protocol === "https:"; } __name(urlHasHttpsScheme, "urlHasHttpsScheme"); function urlIsHttpHttpsScheme(url4) { assert58("protocol" in url4); const protocol = url4.protocol; return protocol === "http:" || protocol === "https:"; } __name(urlIsHttpHttpsScheme, "urlIsHttpHttpsScheme"); 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 }; } __name(simpleRangeHeaderValue, "simpleRangeHeaderValue"); function buildContentRange(rangeStart, rangeEnd, fullLength) { let contentRange = "bytes "; contentRange += isomorphicEncode(`${rangeStart}`); contentRange += "-"; contentRange += isomorphicEncode(`${rangeEnd}`); contentRange += "/"; contentRange += isomorphicEncode(`${fullLength}`); return contentRange; } __name(buildContentRange, "buildContentRange"); var InflateStream = class extends Transform2 { static { __name(this, "InflateStream"); } #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 ? zlib3.createInflate(this.#zlibOptions) : zlib3.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); } __name(createInflate, "createInflate"); 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; } __name(extractMimeType, "extractMimeType"); 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 { assert58(input.charCodeAt(position.position) === 44); position.position++; } } temporaryValue = removeChars(temporaryValue, true, true, (char) => char === 9 || char === 32); values.push(temporaryValue); temporaryValue = ""; } return values; } __name(gettingDecodingSplitting, "gettingDecodingSplitting"); function getDecodeSplit(name2, list) { const value = list.get(name2, true); if (value === null) { return null; } return gettingDecodingSplitting(value); } __name(getDecodeSplit, "getDecodeSplit"); var EnvironmentSettingsObjectBase = class { static { __name(this, "EnvironmentSettingsObjectBase"); } get baseUrl() { return getGlobalOrigin(); } get origin() { return this.baseUrl?.origin; } policyContainer = makePolicyContainer(); }; var EnvironmentSettingsObject = class { static { __name(this, "EnvironmentSettingsObject"); } settingsObject = new EnvironmentSettingsObjectBase(); }; var environmentSettingsObject = new EnvironmentSettingsObject(); module4.exports = { isAborted: isAborted2, isCancelled, isValidEncodedURL, ReadableStreamFrom, tryUpgradeRequestToAPotentiallyTrustworthyURL, clampAndCoarsenConnectionTimingInfo, coarsenedSharedCurrentTime, determineRequestsReferrer, makePolicyContainer, clonePolicyContainer, appendFetchMetadata, appendRequestOriginHeader, TAOCheck, corsCheck, crossOriginResourcePolicyCheck, createOpaqueTimingInfo, setRequestReferrerPolicyOnRedirect, isValidHTTPToken, requestBadPort, requestCurrentURL, responseURL, responseLocationURL, isURLPotentiallyTrustworthy, isValidReasonPhrase, sameOrigin, normalizeMethod, iteratorMixin, createIterator, isValidHeaderName, isValidHeaderValue, isErrorLike, fullyReadBody, readableStreamClose, urlIsLocal, urlHasHttpsScheme, urlIsHttpHttpsScheme, readAllBytes, simpleRangeHeaderValue, buildContentRange, createInflate, extractMimeType, getDecodeSplit, environmentSettingsObject, isOriginIPPotentiallyTrustworthy }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/formdata.js var require_formdata = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/formdata.js"(exports, module4) { init_import_meta_url(); var { iteratorMixin } = require_util2(); var { kEnumerableProperty } = require_util(); var { webidl } = require_webidl(); var nodeUtil = __require("util"); var FormData13 = class _FormData { static { __name(this, "FormData"); } #state = []; constructor(form = void 0) { webidl.util.markAsUncloneable(this); if (form !== void 0) { throw webidl.errors.conversionFailed({ prefix: "FormData constructor", argument: "Argument 1", types: ["undefined"] }); } } append(name2, value, filename = void 0) { webidl.brandCheck(this, _FormData); const prefix = "FormData.append"; webidl.argumentLengthCheck(arguments, 2, prefix); name2 = webidl.converters.USVString(name2); if (arguments.length === 3 || webidl.is.Blob(value)) { value = webidl.converters.Blob(value, prefix, "value"); if (filename !== void 0) { filename = webidl.converters.USVString(filename); } } else { value = webidl.converters.USVString(value); } const entry = makeEntry(name2, value, filename); this.#state.push(entry); } delete(name2) { webidl.brandCheck(this, _FormData); const prefix = "FormData.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); name2 = webidl.converters.USVString(name2); this.#state = this.#state.filter((entry) => entry.name !== name2); } get(name2) { webidl.brandCheck(this, _FormData); const prefix = "FormData.get"; webidl.argumentLengthCheck(arguments, 1, prefix); name2 = webidl.converters.USVString(name2); const idx = this.#state.findIndex((entry) => entry.name === name2); if (idx === -1) { return null; } return this.#state[idx].value; } getAll(name2) { webidl.brandCheck(this, _FormData); const prefix = "FormData.getAll"; webidl.argumentLengthCheck(arguments, 1, prefix); name2 = webidl.converters.USVString(name2); return this.#state.filter((entry) => entry.name === name2).map((entry) => entry.value); } has(name2) { webidl.brandCheck(this, _FormData); const prefix = "FormData.has"; webidl.argumentLengthCheck(arguments, 1, prefix); name2 = webidl.converters.USVString(name2); return this.#state.findIndex((entry) => entry.name === name2) !== -1; } set(name2, value, filename = void 0) { webidl.brandCheck(this, _FormData); const prefix = "FormData.set"; webidl.argumentLengthCheck(arguments, 2, prefix); name2 = webidl.converters.USVString(name2); if (arguments.length === 3 || webidl.is.Blob(value)) { value = webidl.converters.Blob(value, prefix, "value"); if (filename !== void 0) { filename = webidl.converters.USVString(filename); } } else { value = webidl.converters.USVString(value); } const entry = makeEntry(name2, value, filename); const idx = this.#state.findIndex((entry2) => entry2.name === name2); if (idx !== -1) { this.#state = [ ...this.#state.slice(0, idx), entry, ...this.#state.slice(idx + 1).filter((entry2) => entry2.name !== name2) ]; } else { this.#state.push(entry); } } [nodeUtil.inspect.custom](depth, options) { const state2 = this.#state.reduce((a7, b11) => { if (a7[b11.name]) { if (Array.isArray(a7[b11.name])) { a7[b11.name].push(b11.value); } else { a7[b11.name] = [a7[b11.name], b11.value]; } } else { a7[b11.name] = b11.value; } return a7; }, { __proto__: null }); options.depth ??= depth; options.colors ??= true; const output = nodeUtil.formatWithOptions(options, state2); return `FormData ${output.slice(output.indexOf("]") + 2)}`; } /** * @param {FormData} formData */ static getFormDataState(formData) { return formData.#state; } /** * @param {FormData} formData * @param {any[]} newState */ static setFormDataState(formData, newState) { formData.#state = newState; } }; var { getFormDataState, setFormDataState } = FormData13; Reflect.deleteProperty(FormData13, "getFormDataState"); Reflect.deleteProperty(FormData13, "setFormDataState"); iteratorMixin("FormData", FormData13, getFormDataState, "name", "value"); Object.defineProperties(FormData13.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, getAll: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, [Symbol.toStringTag]: { value: "FormData", configurable: true } }); function makeEntry(name2, value, filename) { if (typeof value === "string") ; else { if (!webidl.is.File(value)) { value = new File([value], "blob", { type: value.type }); } if (filename !== void 0) { const options = { type: value.type, lastModified: value.lastModified }; value = new File([value], filename, options); } } return { name: name2, value }; } __name(makeEntry, "makeEntry"); webidl.is.FormData = webidl.util.MakeTypeAssertion(FormData13); module4.exports = { FormData: FormData13, makeEntry, setFormDataState }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/formdata-parser.js var require_formdata_parser = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/formdata-parser.js"(exports, module4) { init_import_meta_url(); var { bufferToLowerCasedHeaderName } = require_util(); var { HTTP_TOKEN_CODEPOINTS } = require_data_url(); var { makeEntry } = require_formdata(); var { webidl } = require_webidl(); var assert58 = __require("assert"); var { isomorphicDecode } = require_infra(); var { utf8DecodeBytes } = require_encoding(); var dd = Buffer.from("--"); var decoder = new TextDecoder(); function isAsciiString(chars) { for (let i7 = 0; i7 < chars.length; ++i7) { if ((chars.charCodeAt(i7) & -128) !== 0) { return false; } } return true; } __name(isAsciiString, "isAsciiString"); function validateBoundary(boundary) { const length = boundary.length; if (length < 27 || length > 70) { return false; } for (let i7 = 0; i7 < length; ++i7) { const cp3 = boundary.charCodeAt(i7); if (!(cp3 >= 48 && cp3 <= 57 || cp3 >= 65 && cp3 <= 90 || cp3 >= 97 && cp3 <= 122 || cp3 === 39 || cp3 === 45 || cp3 === 95)) { return false; } } return true; } __name(validateBoundary, "validateBoundary"); function multipartFormDataParser(input, mimeType) { assert58(mimeType !== "failure" && mimeType.essence === "multipart/form-data"); const boundaryString = mimeType.parameters.get("boundary"); if (boundaryString === void 0) { throw parsingError("missing boundary in content-type header"); } const boundary = Buffer.from(`--${boundaryString}`, "utf8"); const entryList = []; const position = { position: 0 }; const firstBoundaryIndex = input.indexOf(boundary); if (firstBoundaryIndex === -1) { throw parsingError("no boundary found in multipart body"); } position.position = firstBoundaryIndex; while (true) { if (input.subarray(position.position, position.position + boundary.length).equals(boundary)) { position.position += boundary.length; } else { throw parsingError("expected a value starting with -- and the boundary"); } if (bufferStartsWith(input, dd, position)) { return entryList; } if (input[position.position] !== 13 || input[position.position + 1] !== 10) { throw parsingError("expected CRLF"); } position.position += 2; const result = parseMultipartFormDataHeaders(input, position); let { name: name2, filename, contentType, encoding } = result; position.position += 2; let body; { const boundaryIndex = input.indexOf(boundary.subarray(2), position.position); if (boundaryIndex === -1) { throw parsingError("expected boundary after body"); } 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) { throw parsingError("expected CRLF"); } else { position.position += 2; } let value; if (filename !== null) { contentType ??= "text/plain"; if (!isAsciiString(contentType)) { contentType = ""; } value = new File([body], filename, { type: contentType }); } else { value = utf8DecodeBytes(Buffer.from(body)); } assert58(webidl.is.USVString(name2)); assert58(typeof value === "string" && webidl.is.USVString(value) || webidl.is.File(value)); entryList.push(makeEntry(name2, value, filename)); } } __name(multipartFormDataParser, "multipartFormDataParser"); function parseContentDispositionAttribute(input, position) { if (input[position.position] === 59) { position.position++; } collectASequenceOfBytes( (char) => char === 32 || char === 9, input, position ); const attributeName = collectASequenceOfBytes( (char) => isToken(char) && char !== 61 && char !== 42, // not = or * input, position ); if (attributeName.length === 0) { return null; } const attrNameStr = attributeName.toString("ascii").toLowerCase(); const isExtended = input[position.position] === 42; if (isExtended) { position.position++; } if (input[position.position] !== 61) { return null; } position.position++; collectASequenceOfBytes( (char) => char === 32 || char === 9, input, position ); let value; if (isExtended) { const headerValue = collectASequenceOfBytes( (char) => char !== 32 && char !== 13 && char !== 10 && char !== 59, // not space, CRLF, or ; input, position ); if (headerValue[0] !== 117 && headerValue[0] !== 85 || // u or U headerValue[1] !== 116 && headerValue[1] !== 84 || // t or T headerValue[2] !== 102 && headerValue[2] !== 70 || // f or F headerValue[3] !== 45 || // - headerValue[4] !== 56) { throw parsingError("unknown encoding, expected utf-8''"); } value = decodeURIComponent(decoder.decode(headerValue.subarray(7))); } else if (input[position.position] === 34) { position.position++; const quotedValue = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 34, // not LF, CR, or " input, position ); if (input[position.position] !== 34) { throw parsingError("Closing quote not found"); } position.position++; value = decoder.decode(quotedValue).replace(/%0A/ig, "\n").replace(/%0D/ig, "\r").replace(/%22/g, '"'); } else { const tokenValue = collectASequenceOfBytes( (char) => isToken(char) && char !== 59, // not ; input, position ); value = decoder.decode(tokenValue); } return { name: attrNameStr, value }; } __name(parseContentDispositionAttribute, "parseContentDispositionAttribute"); function parseMultipartFormDataHeaders(input, position) { let name2 = null; let filename = null; let contentType = null; let encoding = null; while (true) { if (input[position.position] === 13 && input[position.position + 1] === 10) { if (name2 === null) { throw parsingError("header name is null"); } return { name: name2, 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())) { throw parsingError("header name does not match the field-name token production"); } if (input[position.position] !== 58) { throw parsingError("expected :"); } position.position++; collectASequenceOfBytes( (char) => char === 32 || char === 9, input, position ); switch (bufferToLowerCasedHeaderName(headerName)) { case "content-disposition": { name2 = filename = null; const dispositionType = collectASequenceOfBytes( (char) => isToken(char), input, position ); if (dispositionType.toString("ascii").toLowerCase() !== "form-data") { throw parsingError("expected form-data for content-disposition header"); } while (position.position < input.length && input[position.position] !== 13 && input[position.position + 1] !== 10) { const attribute = parseContentDispositionAttribute(input, position); if (!attribute) { break; } if (attribute.name === "name") { name2 = attribute.value; } else if (attribute.name === "filename") { filename = attribute.value; } } if (name2 === null) { throw parsingError("name attribute is required in content-disposition header"); } 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) { throw parsingError("expected CRLF"); } else { position.position += 2; } } } __name(parseMultipartFormDataHeaders, "parseMultipartFormDataHeaders"); 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); } __name(collectASequenceOfBytes, "collectASequenceOfBytes"); 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); } __name(removeChars, "removeChars"); function bufferStartsWith(buffer, start, position) { if (buffer.length < start.length) { return false; } for (let i7 = 0; i7 < start.length; i7++) { if (start[i7] !== buffer[position.position + i7]) { return false; } } return true; } __name(bufferStartsWith, "bufferStartsWith"); function parsingError(cause) { return new TypeError("Failed to parse body as FormData.", { cause: new TypeError(cause) }); } __name(parsingError, "parsingError"); function isCTL(char) { return char <= 31 || char === 127; } __name(isCTL, "isCTL"); function isTSpecial(char) { return char === 40 || // ( char === 41 || // ) char === 60 || // < char === 62 || // > char === 64 || // @ char === 44 || // , char === 59 || // ; char === 58 || // : char === 92 || // \ char === 34 || // " char === 47 || // / char === 91 || // [ char === 93 || // ] char === 63 || // ? char === 61; } __name(isTSpecial, "isTSpecial"); function isToken(char) { return char <= 127 && // ascii char !== 32 && // space char !== 9 && !isCTL(char) && !isTSpecial(char); } __name(isToken, "isToken"); module4.exports = { multipartFormDataParser, validateBoundary }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/promise.js var require_promise = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/promise.js"(exports, module4) { init_import_meta_url(); function createDeferredPromise() { let res; let rej; const promise = new Promise((resolve31, reject) => { res = resolve31; rej = reject; }); return { promise, resolve: res, reject: rej }; } __name(createDeferredPromise, "createDeferredPromise"); module4.exports = { createDeferredPromise }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/body.js var require_body = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/body.js"(exports, module4) { init_import_meta_url(); var util3 = require_util(); var { ReadableStreamFrom, readableStreamClose, fullyReadBody, extractMimeType } = require_util2(); var { FormData: FormData13, setFormDataState } = require_formdata(); var { webidl } = require_webidl(); var assert58 = __require("assert"); var { isErrored, isDisturbed } = __require("stream"); var { isArrayBuffer: isArrayBuffer3 } = __require("util/types"); var { serializeAMimeType } = require_data_url(); var { multipartFormDataParser } = require_formdata_parser(); var { createDeferredPromise } = require_promise(); var { parseJSONFromBytes } = require_infra(); var { utf8DecodeBytes } = require_encoding(); var { runtimeFeatures } = require_runtime_features(); var random = runtimeFeatures.has("crypto") ? __require("crypto").randomInt : (max) => Math.floor(Math.random() * max); var textEncoder = new TextEncoder(); function noop() { } __name(noop, "noop"); var streamRegistry = new FinalizationRegistry((weakRef) => { const stream2 = weakRef.deref(); if (stream2 && !stream2.locked && !isDisturbed(stream2) && !isErrored(stream2)) { stream2.cancel("Response object has been garbage collected").catch(noop); } }); function extractBody(object, keepalive = false) { let stream2 = null; if (webidl.is.ReadableStream(object)) { stream2 = object; } else if (webidl.is.Blob(object)) { stream2 = object.stream(); } else { stream2 = new ReadableStream({ pull(controller) { const buffer = typeof source === "string" ? textEncoder.encode(source) : source; if (buffer.byteLength) { controller.enqueue(buffer); } queueMicrotask(() => readableStreamClose(controller)); }, start() { }, type: "bytes" }); } assert58(webidl.is.ReadableStream(stream2)); let action = null; let source = null; let length = null; let type = null; if (typeof object === "string") { source = object; type = "text/plain;charset=UTF-8"; } else if (webidl.is.URLSearchParams(object)) { source = object.toString(); type = "application/x-www-form-urlencoded;charset=UTF-8"; } else if (webidl.is.BufferSource(object)) { source = isArrayBuffer3(object) ? new Uint8Array(object.slice()) : new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); } else if (webidl.is.FormData(object)) { const boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`; const prefix = `--${boundary}\r Content-Disposition: form-data`; const formdataEscape = /* @__PURE__ */ __name((str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"), "formdataEscape"); const normalizeLinefeeds = /* @__PURE__ */ __name((value) => value.replace(/\r?\n|\r/g, "\r\n"), "normalizeLinefeeds"); const blobParts = []; const rn = new Uint8Array([13, 10]); length = 0; let hasUnknownSizeValue = false; for (const [name2, value] of object) { if (typeof value === "string") { const chunk2 = textEncoder.encode(prefix + `; name="${formdataEscape(normalizeLinefeeds(name2))}"\r \r ${normalizeLinefeeds(value)}\r `); blobParts.push(chunk2); length += chunk2.byteLength; } else { const chunk2 = textEncoder.encode(`${prefix}; name="${formdataEscape(normalizeLinefeeds(name2))}"` + (value.name ? `; filename="${formdataEscape(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 = object; action = /* @__PURE__ */ __name(async function* () { for (const part of blobParts) { if (part.stream) { yield* part.stream(); } else { yield part; } } }, "action"); type = `multipart/form-data; boundary=${boundary}`; } else if (webidl.is.Blob(object)) { source = object; length = object.size; if (object.type) { type = object.type; } } else if (typeof object[Symbol.asyncIterator] === "function") { if (keepalive) { throw new TypeError("keepalive"); } if (util3.isDisturbed(object) || object.locked) { throw new TypeError( "Response body object should not be disturbed or locked" ); } stream2 = webidl.is.ReadableStream(object) ? object : ReadableStreamFrom(object); } if (typeof source === "string" || util3.isBuffer(source)) { length = Buffer.byteLength(source); } if (action != null) { let iterator; stream2 = new ReadableStream({ start() { iterator = action(object)[Symbol.asyncIterator](); }, pull(controller) { return iterator.next().then(({ value, done }) => { if (done) { queueMicrotask(() => { controller.close(); controller.byobRequest?.respond(0); }); } else { if (!isErrored(stream2)) { const buffer = new Uint8Array(value); if (buffer.byteLength) { controller.enqueue(buffer); } } } return controller.desiredSize > 0; }); }, cancel(reason) { return iterator.return(); }, type: "bytes" }); } const body = { stream: stream2, source, length }; return [body, type]; } __name(extractBody, "extractBody"); function safelyExtractBody(object, keepalive = false) { if (webidl.is.ReadableStream(object)) { assert58(!util3.isDisturbed(object), "The body has already been consumed."); assert58(!object.locked, "The stream is locked."); } return extractBody(object, keepalive); } __name(safelyExtractBody, "safelyExtractBody"); function cloneBody(body) { const { 0: out1, 1: out2 } = body.stream.tee(); body.stream = out1; return { stream: out2, length: body.length, source: body.source }; } __name(cloneBody, "cloneBody"); function bodyMixinMethods(instance, getInternalState) { const methods = { blob() { return consumeBody2(this, (bytes) => { let mimeType = bodyMimeType(getInternalState(this)); if (mimeType === null) { mimeType = ""; } else if (mimeType) { mimeType = serializeAMimeType(mimeType); } return new Blob([bytes], { type: mimeType }); }, instance, getInternalState); }, arrayBuffer() { return consumeBody2(this, (bytes) => { return new Uint8Array(bytes).buffer; }, instance, getInternalState); }, text() { return consumeBody2(this, utf8DecodeBytes, instance, getInternalState); }, json() { return consumeBody2(this, parseJSONFromBytes, instance, getInternalState); }, formData() { return consumeBody2(this, (value) => { const mimeType = bodyMimeType(getInternalState(this)); if (mimeType !== null) { switch (mimeType.essence) { case "multipart/form-data": { const parsed = multipartFormDataParser(value, mimeType); const fd = new FormData13(); setFormDataState(fd, parsed); return fd; } case "application/x-www-form-urlencoded": { const entries2 = new URLSearchParams(value.toString()); const fd = new FormData13(); for (const [name2, value2] of entries2) { fd.append(name2, value2); } return fd; } } } throw new TypeError( 'Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".' ); }, instance, getInternalState); }, bytes() { return consumeBody2(this, (bytes) => { return new Uint8Array(bytes); }, instance, getInternalState); } }; return methods; } __name(bodyMixinMethods, "bodyMixinMethods"); function mixinBody(prototype, getInternalState) { Object.assign(prototype.prototype, bodyMixinMethods(prototype, getInternalState)); } __name(mixinBody, "mixinBody"); function consumeBody2(object, convertBytesToJSValue, instance, getInternalState) { try { webidl.brandCheck(object, instance); } catch (e9) { return Promise.reject(e9); } const state2 = getInternalState(object); if (bodyUnusable(state2)) { return Promise.reject(new TypeError("Body is unusable: Body has already been read")); } if (state2.aborted) { return Promise.reject(new DOMException("The operation was aborted.", "AbortError")); } const promise = createDeferredPromise(); const errorSteps = promise.reject; const successSteps = /* @__PURE__ */ __name((data) => { try { promise.resolve(convertBytesToJSValue(data)); } catch (e9) { errorSteps(e9); } }, "successSteps"); if (state2.body == null) { successSteps(Buffer.allocUnsafe(0)); return promise.promise; } fullyReadBody(state2.body, successSteps, errorSteps); return promise.promise; } __name(consumeBody2, "consumeBody"); function bodyUnusable(object) { const body = object.body; return body != null && (body.stream.locked || util3.isDisturbed(body.stream)); } __name(bodyUnusable, "bodyUnusable"); function bodyMimeType(requestOrResponse) { const headers = requestOrResponse.headersList; const mimeType = extractMimeType(headers); if (mimeType === "failure") { return null; } return mimeType; } __name(bodyMimeType, "bodyMimeType"); module4.exports = { extractBody, safelyExtractBody, cloneBody, mixinBody, streamRegistry, bodyUnusable }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/client-h1.js var require_client_h1 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/client-h1.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var util3 = require_util(); var { channels } = require_diagnostics(); var timers = require_timers(); var { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, RequestAbortedError, HeadersTimeoutError, HeadersOverflowError, SocketError, InformationalError, BodyTimeoutError, HTTPParserError, ResponseExceededMaxSizeError } = require_errors(); var { kUrl, kReset: kReset2, 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, kClosed } = require_symbols(); var constants4 = require_constants2(); var EMPTY_BUF = Buffer.alloc(0); var FastBuffer = Buffer[Symbol.species]; var removeAllListeners = util3.removeAllListeners; var extractBody; function lazyllhttp() { const llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0; let mod; let useWasmSIMD = process.arch !== "ppc64"; if (process.env.UNDICI_NO_WASM_SIMD === "1") { useWasmSIMD = true; } else if (process.env.UNDICI_NO_WASM_SIMD === "0") { useWasmSIMD = false; } if (useWasmSIMD) { try { mod = new WebAssembly.Module(require_llhttp_simd_wasm()); } catch { } } if (!mod) { mod = new WebAssembly.Module(llhttpWasmData || require_llhttp_wasm()); } return new WebAssembly.Instance(mod, { env: { /** * @param {number} p * @param {number} at * @param {number} len * @returns {number} */ wasm_on_url: /* @__PURE__ */ __name((p7, at3, len) => { return 0; }, "wasm_on_url"), /** * @param {number} p * @param {number} at * @param {number} len * @returns {number} */ wasm_on_status: /* @__PURE__ */ __name((p7, at3, len) => { assert58(currentParser.ptr === p7); const start = at3 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)); }, "wasm_on_status"), /** * @param {number} p * @returns {number} */ wasm_on_message_begin: /* @__PURE__ */ __name((p7) => { assert58(currentParser.ptr === p7); return currentParser.onMessageBegin(); }, "wasm_on_message_begin"), /** * @param {number} p * @param {number} at * @param {number} len * @returns {number} */ wasm_on_header_field: /* @__PURE__ */ __name((p7, at3, len) => { assert58(currentParser.ptr === p7); const start = at3 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)); }, "wasm_on_header_field"), /** * @param {number} p * @param {number} at * @param {number} len * @returns {number} */ wasm_on_header_value: /* @__PURE__ */ __name((p7, at3, len) => { assert58(currentParser.ptr === p7); const start = at3 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)); }, "wasm_on_header_value"), /** * @param {number} p * @param {number} statusCode * @param {0|1} upgrade * @param {0|1} shouldKeepAlive * @returns {number} */ wasm_on_headers_complete: /* @__PURE__ */ __name((p7, statusCode, upgrade, shouldKeepAlive) => { assert58(currentParser.ptr === p7); return currentParser.onHeadersComplete(statusCode, upgrade === 1, shouldKeepAlive === 1); }, "wasm_on_headers_complete"), /** * @param {number} p * @param {number} at * @param {number} len * @returns {number} */ wasm_on_body: /* @__PURE__ */ __name((p7, at3, len) => { assert58(currentParser.ptr === p7); const start = at3 - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)); }, "wasm_on_body"), /** * @param {number} p * @returns {number} */ wasm_on_message_complete: /* @__PURE__ */ __name((p7) => { assert58(currentParser.ptr === p7); return currentParser.onMessageComplete(); }, "wasm_on_message_complete") } }); } __name(lazyllhttp, "lazyllhttp"); var llhttpInstance = null; 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 Parser2 = class { static { __name(this, "Parser"); } /** * @param {import('./client.js')} client * @param {import('net').Socket} socket * @param {*} llhttp */ constructor(client, socket, { exports: exports2 }) { this.llhttp = exports2; this.ptr = this.llhttp.llhttp_alloc(constants4.TYPE.RESPONSE); this.client = client; this.socket = socket; this.timeout = null; this.timeoutValue = null; this.timeoutType = null; this.statusCode = 0; 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; } assert58(this.ptr != null); assert58(currentParser === null); this.llhttp.llhttp_resume(this.ptr); assert58(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); } } /** * @param {Buffer} chunk */ execute(chunk) { assert58(currentParser === null); assert58(this.ptr != null); assert58(!this.paused); const { socket, llhttp } = this; if (chunk.length > currentBufferSize) { if (currentBufferPtr) { llhttp.free(currentBufferPtr); } currentBufferSize = Math.ceil(chunk.length / 4096) * 4096; currentBufferPtr = llhttp.malloc(currentBufferSize); } new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(chunk); try { let ret; try { currentBufferRef = chunk; currentParser = this; ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, chunk.length); } finally { currentParser = null; currentBufferRef = null; } if (ret !== constants4.ERROR.OK) { const data = chunk.subarray(llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr); if (ret === constants4.ERROR.PAUSED_UPGRADE) { this.onUpgrade(data); } else if (ret === constants4.ERROR.PAUSED) { this.paused = true; socket.unshift(data); } else { 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() + ")"; } throw new HTTPParserError(message, constants4.ERROR[ret], data); } } } catch (err) { util3.destroy(socket, err); } } destroy() { assert58(currentParser === null); assert58(this.ptr != 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; } /** * @param {Buffer} buf * @returns {0} */ onStatus(buf) { this.statusText = buf.toString(); return 0; } /** * @returns {0|-1} */ onMessageBegin() { const { socket, client } = this; if (socket.destroyed) { return -1; } const request4 = client[kQueue][client[kRunningIdx]]; if (!request4) { return -1; } request4.onResponseStarted(); return 0; } /** * @param {Buffer} buf * @returns {number} */ 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); return 0; } /** * @param {Buffer} buf * @returns {number} */ 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 = util3.bufferToLowerCasedHeaderName(key); if (headerName === "keep-alive") { this.keepAlive += buf.toString(); } else if (headerName === "connection") { this.connection += buf.toString(); } } else if (key.length === 14 && util3.bufferToLowerCasedHeaderName(key) === "content-length") { this.contentLength += buf.toString(); } this.trackHeader(buf.length); return 0; } /** * @param {number} len */ trackHeader(len) { this.headersSize += len; if (this.headersSize >= this.headersMaxSize) { util3.destroy(this.socket, new HeadersOverflowError()); } } /** * @param {Buffer} head */ onUpgrade(head) { const { upgrade, client, socket, headers, statusCode } = this; assert58(upgrade); assert58(client[kSocket] === socket); assert58(!socket.destroyed); assert58(!this.paused); assert58((headers.length & 1) === 0); const request4 = client[kQueue][client[kRunningIdx]]; assert58(request4); assert58(request4.upgrade || request4.method === "CONNECT"); this.statusCode = 0; this.statusText = ""; this.shouldKeepAlive = false; 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 { request4.onUpgrade(statusCode, headers, socket); } catch (err) { util3.destroy(socket, err); } client[kResume](); } /** * @param {number} statusCode * @param {boolean} upgrade * @param {boolean} shouldKeepAlive * @returns {number} */ onHeadersComplete(statusCode, upgrade, shouldKeepAlive) { const { client, socket, headers, statusText } = this; if (socket.destroyed) { return -1; } const request4 = client[kQueue][client[kRunningIdx]]; if (!request4) { return -1; } assert58(!this.upgrade); assert58(this.statusCode < 200); if (statusCode === 100) { util3.destroy(socket, new SocketError("bad response", util3.getSocketInfo(socket))); return -1; } if (upgrade && !request4.upgrade) { util3.destroy(socket, new SocketError("bad upgrade", util3.getSocketInfo(socket))); return -1; } assert58(this.timeoutType === TIMEOUT_HEADERS); this.statusCode = statusCode; this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. request4.method === "HEAD" && !socket[kReset2] && this.connection.toLowerCase() === "keep-alive"; if (this.statusCode >= 200) { const bodyTimeout = request4.bodyTimeout != null ? request4.bodyTimeout : client[kBodyTimeout]; this.setTimeout(bodyTimeout, TIMEOUT_BODY); } else if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } if (request4.method === "CONNECT") { assert58(client[kRunning] === 1); this.upgrade = true; return 2; } if (upgrade) { assert58(client[kRunning] === 1); this.upgrade = true; return 2; } assert58((this.headers.length & 1) === 0); this.headers = []; this.headersSize = 0; if (this.shouldKeepAlive && client[kPipelining]) { const keepAliveTimeout = this.keepAlive ? util3.parseKeepAliveTimeout(this.keepAlive) : null; if (keepAliveTimeout != null) { const timeout2 = Math.min( keepAliveTimeout - client[kKeepAliveTimeoutThreshold], client[kKeepAliveMaxTimeout] ); if (timeout2 <= 0) { socket[kReset2] = true; } else { client[kKeepAliveTimeoutValue] = timeout2; } } else { client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout]; } } else { socket[kReset2] = true; } const pause = request4.onHeaders(statusCode, headers, this.resume, statusText) === false; if (request4.aborted) { return -1; } if (request4.method === "HEAD") { return 1; } if (statusCode < 200) { return 1; } if (socket[kBlocking]) { socket[kBlocking] = false; client[kResume](); } return pause ? constants4.ERROR.PAUSED : 0; } /** * @param {Buffer} buf * @returns {number} */ onBody(buf) { const { client, socket, statusCode, maxResponseSize } = this; if (socket.destroyed) { return -1; } const request4 = client[kQueue][client[kRunningIdx]]; assert58(request4); assert58(this.timeoutType === TIMEOUT_BODY); if (this.timeout) { if (this.timeout.refresh) { this.timeout.refresh(); } } assert58(statusCode >= 200); if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { util3.destroy(socket, new ResponseExceededMaxSizeError()); return -1; } this.bytesRead += buf.length; if (request4.onData(buf) === false) { return constants4.ERROR.PAUSED; } return 0; } /** * @returns {number} */ onMessageComplete() { const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; if (socket.destroyed && (!statusCode || shouldKeepAlive)) { return -1; } if (upgrade) { return 0; } assert58(statusCode >= 100); assert58((this.headers.length & 1) === 0); const request4 = client[kQueue][client[kRunningIdx]]; assert58(request4); this.statusCode = 0; this.statusText = ""; this.bytesRead = 0; this.contentLength = ""; this.keepAlive = ""; this.connection = ""; this.headers = []; this.headersSize = 0; if (statusCode < 200) { return 0; } if (request4.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) { util3.destroy(socket, new ResponseContentLengthMismatchError()); return -1; } request4.onComplete(headers); client[kQueue][client[kRunningIdx]++] = null; if (socket[kWriting]) { assert58(client[kRunning] === 0); util3.destroy(socket, new InformationalError("reset")); return constants4.ERROR.PAUSED; } else if (!shouldKeepAlive) { util3.destroy(socket, new InformationalError("reset")); return constants4.ERROR.PAUSED; } else if (socket[kReset2] && client[kRunning] === 0) { util3.destroy(socket, new InformationalError("reset")); return constants4.ERROR.PAUSED; } else if (client[kPipelining] == null || client[kPipelining] === 1) { setImmediate(client[kResume]); } else { client[kResume](); } return 0; } }; function onParserTimeout(parser2) { const { socket, timeoutType, client, paused } = parser2.deref(); if (timeoutType === TIMEOUT_HEADERS) { if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { assert58(!paused, "cannot be paused while waiting for headers"); util3.destroy(socket, new HeadersTimeoutError()); } } else if (timeoutType === TIMEOUT_BODY) { if (!paused) { util3.destroy(socket, new BodyTimeoutError()); } } else if (timeoutType === TIMEOUT_KEEP_ALIVE) { assert58(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]); util3.destroy(socket, new InformationalError("socket idle timeout")); } } __name(onParserTimeout, "onParserTimeout"); function connectH1(client, socket) { client[kSocket] = socket; if (!llhttpInstance) { llhttpInstance = lazyllhttp(); } if (socket.errored) { throw socket.errored; } if (socket.destroyed) { throw new SocketError("destroyed"); } socket[kNoRef] = false; socket[kWriting] = false; socket[kReset2] = false; socket[kBlocking] = false; socket[kParser] = new Parser2(client, socket, llhttpInstance); util3.addListener(socket, "error", onHttpSocketError); util3.addListener(socket, "readable", onHttpSocketReadable); util3.addListener(socket, "end", onHttpSocketEnd); util3.addListener(socket, "close", onHttpSocketClose); socket[kClosed] = false; socket.on("close", onSocketClose); return { version: "h1", defaultPipelining: 1, write(request4) { return writeH1(client, request4); }, resume() { resumeH1(client); }, /** * @param {Error|undefined} err * @param {() => void} callback */ destroy(err, callback) { if (socket[kClosed]) { queueMicrotask(callback); } else { socket.on("close", callback); socket.destroy(err); } }, /** * @returns {boolean} */ get destroyed() { return socket.destroyed; }, /** * @param {import('../core/request.js')} request * @returns {boolean} */ busy(request4) { if (socket[kWriting] || socket[kReset2] || socket[kBlocking]) { return true; } if (request4) { if (client[kRunning] > 0 && !request4.idempotent) { return true; } if (client[kRunning] > 0 && (request4.upgrade || request4.method === "CONNECT")) { return true; } if (client[kRunning] > 0 && util3.bodyLength(request4.body) !== 0 && (util3.isStream(request4.body) || util3.isAsyncIterable(request4.body) || util3.isFormDataLike(request4.body))) { return true; } } return false; } }; } __name(connectH1, "connectH1"); function onHttpSocketError(err) { assert58(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); const parser2 = this[kParser]; if (err.code === "ECONNRESET" && parser2.statusCode && !parser2.shouldKeepAlive) { parser2.onMessageComplete(); return; } this[kError] = err; this[kClient][kOnError](err); } __name(onHttpSocketError, "onHttpSocketError"); function onHttpSocketReadable() { this[kParser]?.readMore(); } __name(onHttpSocketReadable, "onHttpSocketReadable"); function onHttpSocketEnd() { const parser2 = this[kParser]; if (parser2.statusCode && !parser2.shouldKeepAlive) { parser2.onMessageComplete(); return; } util3.destroy(this, new SocketError("other side closed", util3.getSocketInfo(this))); } __name(onHttpSocketEnd, "onHttpSocketEnd"); function onHttpSocketClose() { const parser2 = this[kParser]; if (parser2) { if (!this[kError] && parser2.statusCode && !parser2.shouldKeepAlive) { parser2.onMessageComplete(); } this[kParser].destroy(); this[kParser] = null; } const err = this[kError] || new SocketError("closed", util3.getSocketInfo(this)); const client = this[kClient]; client[kSocket] = null; client[kHTTPContext] = null; if (client.destroyed) { assert58(client[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i7 = 0; i7 < requests.length; i7++) { const request4 = requests[i7]; util3.errorRequest(client, request4, err); } } else if (client[kRunning] > 0 && err.code !== "UND_ERR_INFO") { const request4 = client[kQueue][client[kRunningIdx]]; client[kQueue][client[kRunningIdx]++] = null; util3.errorRequest(client, request4, err); } client[kPendingIdx] = client[kRunningIdx]; assert58(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); client[kResume](); } __name(onHttpSocketClose, "onHttpSocketClose"); function onSocketClose() { this[kClosed] = true; } __name(onSocketClose, "onSocketClose"); 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[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 request4 = client[kQueue][client[kRunningIdx]]; const headersTimeout = request4.headersTimeout != null ? request4.headersTimeout : client[kHeadersTimeout]; socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS); } } } } __name(resumeH1, "resumeH1"); function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } __name(shouldSendContentLength, "shouldSendContentLength"); function writeH1(client, request4) { const { method, path: path82, host, upgrade, blocking, reset } = request4; let { body, headers, contentLength } = request4; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH"; if (util3.isFormDataLike(body)) { if (!extractBody) { extractBody = require_body().extractBody; } const [bodyStream, contentType] = extractBody(body); if (request4.contentType == null) { headers.push("content-type", contentType); } body = bodyStream.stream; contentLength = bodyStream.length; } else if (util3.isBlobLike(body) && request4.contentType == null && body.type) { headers.push("content-type", body.type); } if (body && typeof body.read === "function") { body.read(0); } const bodyLength = util3.bodyLength(body); contentLength = bodyLength ?? contentLength; if (contentLength === null) { contentLength = request4.contentLength; } if (contentLength === 0 && !expectsPayload) { contentLength = null; } if (shouldSendContentLength(method) && contentLength > 0 && request4.contentLength !== null && request4.contentLength !== contentLength) { if (client[kStrictContentLength]) { util3.errorRequest(client, request4, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } const socket = client[kSocket]; const abort = /* @__PURE__ */ __name((err) => { if (request4.aborted || request4.completed) { return; } util3.errorRequest(client, request4, err || new RequestAbortedError()); util3.destroy(body); util3.destroy(socket, new InformationalError("aborted")); }, "abort"); try { request4.onConnect(abort); } catch (err) { util3.errorRequest(client, request4, err); } if (request4.aborted) { return false; } if (method === "HEAD") { socket[kReset2] = true; } if (upgrade || method === "CONNECT") { socket[kReset2] = true; } if (reset != null) { socket[kReset2] = reset; } if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { socket[kReset2] = true; } if (blocking) { socket[kBlocking] = true; } let header = `${method} ${path82} 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[kReset2]) { header += "connection: keep-alive\r\n"; } else { header += "connection: close\r\n"; } if (Array.isArray(headers)) { for (let n8 = 0; n8 < headers.length; n8 += 2) { const key = headers[n8 + 0]; const val2 = headers[n8 + 1]; if (Array.isArray(val2)) { for (let i7 = 0; i7 < val2.length; i7++) { header += `${key}: ${val2[i7]}\r `; } } else { header += `${key}: ${val2}\r `; } } } if (channels.sendHeaders.hasSubscribers) { channels.sendHeaders.publish({ request: request4, headers: header, socket }); } if (!body || bodyLength === 0) { writeBuffer(abort, null, client, request4, socket, contentLength, header, expectsPayload); } else if (util3.isBuffer(body)) { writeBuffer(abort, body, client, request4, socket, contentLength, header, expectsPayload); } else if (util3.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable(abort, body.stream(), client, request4, socket, contentLength, header, expectsPayload); } else { writeBlob(abort, body, client, request4, socket, contentLength, header, expectsPayload); } } else if (util3.isStream(body)) { writeStream(abort, body, client, request4, socket, contentLength, header, expectsPayload); } else if (util3.isIterable(body)) { writeIterable(abort, body, client, request4, socket, contentLength, header, expectsPayload); } else { assert58(false); } return true; } __name(writeH1, "writeH1"); function writeStream(abort, body, client, request4, socket, contentLength, header, expectsPayload) { assert58(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); let finished = false; const writer = new AsyncWriter({ abort, socket, request: request4, contentLength, client, expectsPayload, header }); const onData = /* @__PURE__ */ __name(function(chunk) { if (finished) { return; } try { if (!writer.write(chunk) && this.pause) { this.pause(); } } catch (err) { util3.destroy(this, err); } }, "onData"); const onDrain = /* @__PURE__ */ __name(function() { if (finished) { return; } if (body.resume) { body.resume(); } }, "onDrain"); const onClose = /* @__PURE__ */ __name(function() { queueMicrotask(() => { body.removeListener("error", onFinished); }); if (!finished) { const err = new RequestAbortedError(); queueMicrotask(() => onFinished(err)); } }, "onClose"); const onFinished = /* @__PURE__ */ __name(function(err) { if (finished) { return; } finished = true; assert58(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 (er2) { err = er2; } } writer.destroy(err); if (err && (err.code !== "UND_ERR_INFO" || err.message !== "reset")) { util3.destroy(body, err); } else { util3.destroy(body); } }, "onFinished"); 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); } } __name(writeStream, "writeStream"); function writeBuffer(abort, body, client, request4, socket, contentLength, header, expectsPayload) { try { if (!body) { if (contentLength === 0) { socket.write(`${header}content-length: 0\r \r `, "latin1"); } else { assert58(contentLength === null, "no body must not have content length"); socket.write(`${header}\r `, "latin1"); } } else if (util3.isBuffer(body)) { assert58(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(); request4.onBodySent(body); if (!expectsPayload && request4.reset !== false) { socket[kReset2] = true; } } request4.onRequestSent(); client[kResume](); } catch (err) { abort(err); } } __name(writeBuffer, "writeBuffer"); async function writeBlob(abort, body, client, request4, socket, contentLength, header, expectsPayload) { assert58(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(); request4.onBodySent(buffer); request4.onRequestSent(); if (!expectsPayload && request4.reset !== false) { socket[kReset2] = true; } client[kResume](); } catch (err) { abort(err); } } __name(writeBlob, "writeBlob"); async function writeIterable(abort, body, client, request4, socket, contentLength, header, expectsPayload) { assert58(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb2 = callback; callback = null; cb2(); } } __name(onDrain, "onDrain"); const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve31, reject) => { assert58(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve31; } }), "waitForDrain"); socket.on("close", onDrain).on("drain", onDrain); const writer = new AsyncWriter({ abort, socket, request: request4, 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); } } __name(writeIterable, "writeIterable"); var AsyncWriter = class { static { __name(this, "AsyncWriter"); } /** * * @param {object} arg * @param {AbortCallback} arg.abort * @param {import('net').Socket} arg.socket * @param {import('../core/request.js')} arg.request * @param {number} arg.contentLength * @param {import('./client.js')} arg.client * @param {boolean} arg.expectsPayload * @param {string} arg.header */ constructor({ abort, socket, request: request4, contentLength, client, expectsPayload, header }) { this.socket = socket; this.request = request4; this.contentLength = contentLength; this.client = client; this.bytesWritten = 0; this.expectsPayload = expectsPayload; this.header = header; this.abort = abort; socket[kWriting] = true; } /** * @param {Buffer} chunk * @returns */ write(chunk) { const { socket, request: request4, 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 && request4.reset !== false) { socket[kReset2] = 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(); request4.onBodySent(chunk); if (!ret) { if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { if (socket[kParser].timeout.refresh) { socket[kParser].timeout.refresh(); } } } return ret; } /** * @returns {void} */ end() { const { socket, contentLength, client, bytesWritten, expectsPayload, header, request: request4 } = this; request4.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](); } /** * @param {Error} [err] * @returns {void} */ destroy(err) { const { socket, client, abort } = this; socket[kWriting] = false; if (err) { assert58(client[kRunning] <= 1, "pipeline should only contain this request"); abort(err); } } }; module4.exports = connectH1; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/client-h2.js var require_client_h2 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/client-h2.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { pipeline } = __require("stream"); var util3 = require_util(); var { RequestContentLengthMismatchError, RequestAbortedError, SocketError, InformationalError, InvalidArgumentError } = require_errors(); var { kUrl, kReset: kReset2, kClient, kRunning, kPending, kQueue, kPendingIdx, kRunningIdx, kError, kSocket, kStrictContentLength, kOnError, kMaxConcurrentStreams, kHTTP2Session, kResume, kSize, kHTTPContext, kClosed, kBodyTimeout, kEnableConnectProtocol, kRemoteSettings, kHTTP2Stream } = require_symbols(); var { channels } = require_diagnostics(); var kOpenStreams = Symbol("open streams"); var extractBody; var http22; try { http22 = __require("http2"); } catch { http22 = { 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_HEADER_PROTOCOL, NGHTTP2_REFUSED_STREAM, NGHTTP2_CANCEL } } = http22; function parseH2Headers(headers) { const result = []; for (const [name2, value] of Object.entries(headers)) { if (Array.isArray(value)) { for (const subvalue of value) { result.push(Buffer.from(name2), Buffer.from(subvalue)); } } else { result.push(Buffer.from(name2), Buffer.from(value)); } } return result; } __name(parseH2Headers, "parseH2Headers"); function connectH2(client, socket) { client[kSocket] = socket; const session = http22.connect(client[kUrl], { createConnection: /* @__PURE__ */ __name(() => socket, "createConnection"), peerMaxConcurrentStreams: client[kMaxConcurrentStreams], settings: { // TODO(metcoder95): add support for PUSH enablePush: false } }); session[kOpenStreams] = 0; session[kClient] = client; session[kSocket] = socket; session[kHTTP2Session] = null; session[kEnableConnectProtocol] = false; session[kRemoteSettings] = false; util3.addListener(session, "error", onHttp2SessionError); util3.addListener(session, "frameError", onHttp2FrameError); util3.addListener(session, "end", onHttp2SessionEnd); util3.addListener(session, "goaway", onHttp2SessionGoAway); util3.addListener(session, "close", onHttp2SessionClose); util3.addListener(session, "remoteSettings", onHttp2RemoteSettings); session.unref(); client[kHTTP2Session] = session; socket[kHTTP2Session] = session; util3.addListener(socket, "error", onHttp2SocketError); util3.addListener(socket, "end", onHttp2SocketEnd); util3.addListener(socket, "close", onHttp2SocketClose); socket[kClosed] = false; socket.on("close", onSocketClose); return { version: "h2", defaultPipelining: Infinity, /** * @param {import('../core/request.js')} request * @returns {boolean} */ write(request4) { return writeH2(client, request4); }, /** * @returns {void} */ resume() { resumeH2(client); }, /** * @param {Error | null} err * @param {() => void} callback */ destroy(err, callback) { if (socket[kClosed]) { queueMicrotask(callback); } else { socket.destroy(err).on("close", callback); } }, /** * @type {boolean} */ get destroyed() { return socket.destroyed; }, /** * @param {import('../core/request.js')} request * @returns {boolean} */ busy(request4) { if (request4 != null) { if (client[kRunning] > 0) { if (request4.idempotent === false) return true; if ((request4.upgrade === "websocket" || request4.method === "CONNECT") && session[kRemoteSettings] === false) return true; if (util3.bodyLength(request4.body) !== 0 && (util3.isStream(request4.body) || util3.isAsyncIterable(request4.body) || util3.isFormDataLike(request4.body))) return true; } else { return (request4.upgrade === "websocket" || request4.method === "CONNECT") && session[kRemoteSettings] === false; } } return false; } }; } __name(connectH2, "connectH2"); 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(); } } } __name(resumeH2, "resumeH2"); function onHttp2RemoteSettings(settings) { this[kClient][kMaxConcurrentStreams] = settings.maxConcurrentStreams ?? this[kClient][kMaxConcurrentStreams]; if (this[kRemoteSettings] === true && this[kEnableConnectProtocol] === true && settings.enableConnectProtocol === false) { const err = new InformationalError("HTTP/2: Server disabled extended CONNECT protocol against RFC-8441"); this[kSocket][kError] = err; this[kClient][kOnError](err); return; } this[kEnableConnectProtocol] = settings.enableConnectProtocol ?? this[kEnableConnectProtocol]; this[kRemoteSettings] = true; this[kClient][kResume](); } __name(onHttp2RemoteSettings, "onHttp2RemoteSettings"); function onHttp2SessionError(err) { assert58(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kSocket][kError] = err; this[kClient][kOnError](err); } __name(onHttp2SessionError, "onHttp2SessionError"); 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); } } __name(onHttp2FrameError, "onHttp2FrameError"); function onHttp2SessionEnd() { const err = new SocketError("other side closed", util3.getSocketInfo(this[kSocket])); this.destroy(err); util3.destroy(this[kSocket], err); } __name(onHttp2SessionEnd, "onHttp2SessionEnd"); function onHttp2SessionGoAway(errorCode) { const err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${errorCode}`, util3.getSocketInfo(this[kSocket])); const client = this[kClient]; client[kSocket] = null; client[kHTTPContext] = null; this.close(); this[kHTTP2Session] = null; util3.destroy(this[kSocket], err); if (client[kRunningIdx] < client[kQueue].length) { const request4 = client[kQueue][client[kRunningIdx]]; client[kQueue][client[kRunningIdx]++] = null; util3.errorRequest(client, request4, err); client[kPendingIdx] = client[kRunningIdx]; } assert58(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); client.emit("connectionError", client[kUrl], [client], err); client[kResume](); } __name(onHttp2SessionGoAway, "onHttp2SessionGoAway"); function onHttp2SessionClose() { const { [kClient]: client } = this; const { [kSocket]: socket } = client; const err = this[kSocket][kError] || this[kError] || new SocketError("closed", util3.getSocketInfo(socket)); client[kSocket] = null; client[kHTTPContext] = null; if (client.destroyed) { assert58(client[kPending] === 0); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i7 = 0; i7 < requests.length; i7++) { const request4 = requests[i7]; util3.errorRequest(client, request4, err); } } } __name(onHttp2SessionClose, "onHttp2SessionClose"); function onHttp2SocketClose() { const err = this[kError] || new SocketError("closed", util3.getSocketInfo(this)); const client = this[kHTTP2Session][kClient]; client[kSocket] = null; client[kHTTPContext] = null; if (this[kHTTP2Session] !== null) { this[kHTTP2Session].destroy(err); } client[kPendingIdx] = client[kRunningIdx]; assert58(client[kRunning] === 0); client.emit("disconnect", client[kUrl], [client], err); client[kResume](); } __name(onHttp2SocketClose, "onHttp2SocketClose"); function onHttp2SocketError(err) { assert58(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); this[kError] = err; this[kClient][kOnError](err); } __name(onHttp2SocketError, "onHttp2SocketError"); function onHttp2SocketEnd() { util3.destroy(this, new SocketError("other side closed", util3.getSocketInfo(this))); } __name(onHttp2SocketEnd, "onHttp2SocketEnd"); function onSocketClose() { this[kClosed] = true; } __name(onSocketClose, "onSocketClose"); function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } __name(shouldSendContentLength, "shouldSendContentLength"); function writeH2(client, request4) { const requestTimeout2 = request4.bodyTimeout ?? client[kBodyTimeout]; const session = client[kHTTP2Session]; const { method, path: path82, host, upgrade, expectContinue, signal, protocol, headers: reqHeaders } = request4; let { body } = request4; if (upgrade != null && upgrade !== "websocket") { util3.errorRequest(client, request4, new InvalidArgumentError(`Custom upgrade "${upgrade}" not supported over HTTP/2`)); return false; } const headers = {}; for (let n8 = 0; n8 < reqHeaders.length; n8 += 2) { const key = reqHeaders[n8 + 0]; const val2 = reqHeaders[n8 + 1]; if (key === "cookie") { if (headers[key] != null) { headers[key] = Array.isArray(headers[key]) ? (headers[key].push(val2), headers[key]) : [headers[key], val2]; } else { headers[key] = val2; } continue; } if (Array.isArray(val2)) { for (let i7 = 0; i7 < val2.length; i7++) { if (headers[key]) { headers[key] += `, ${val2[i7]}`; } else { headers[key] = val2[i7]; } } } else if (headers[key]) { headers[key] += `, ${val2}`; } else { headers[key] = val2; } } let stream2 = null; const { hostname: hostname2, port } = client[kUrl]; headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname2}${port ? `:${port}` : ""}`; headers[HTTP2_HEADER_METHOD] = method; const abort = /* @__PURE__ */ __name((err) => { if (request4.aborted || request4.completed) { return; } err = err || new RequestAbortedError(); util3.errorRequest(client, request4, err); if (stream2 != null) { stream2.removeAllListeners("data"); stream2.close(); client[kOnError](err); client[kResume](); } util3.destroy(body, err); }, "abort"); try { request4.onConnect(abort); } catch (err) { util3.errorRequest(client, request4, err); } if (request4.aborted) { return false; } if (upgrade || method === "CONNECT") { session.ref(); if (upgrade === "websocket") { if (session[kEnableConnectProtocol] === false) { util3.errorRequest(client, request4, new InformationalError("HTTP/2: Extended CONNECT protocol not supported by server")); session.unref(); return false; } headers[HTTP2_HEADER_METHOD] = "CONNECT"; headers[HTTP2_HEADER_PROTOCOL] = "websocket"; headers[HTTP2_HEADER_PATH] = path82; if (protocol === "ws:" || protocol === "wss:") { headers[HTTP2_HEADER_SCHEME] = protocol === "ws:" ? "http" : "https"; } else { headers[HTTP2_HEADER_SCHEME] = protocol === "http:" ? "http" : "https"; } stream2 = session.request(headers, { endStream: false, signal }); stream2[kHTTP2Stream] = true; stream2.once("response", (headers2, _flags) => { const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; request4.onUpgrade(statusCode, parseH2Headers(realHeaders), stream2); ++session[kOpenStreams]; client[kQueue][client[kRunningIdx]++] = null; }); stream2.on("error", () => { if (stream2.rstCode === NGHTTP2_REFUSED_STREAM || stream2.rstCode === NGHTTP2_CANCEL) { abort(new InformationalError(`HTTP/2: "stream error" received - code ${stream2.rstCode}`)); } }); stream2.once("close", () => { session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) session.unref(); }); stream2.setTimeout(requestTimeout2); return true; } stream2 = session.request(headers, { endStream: false, signal }); stream2[kHTTP2Stream] = true; stream2.on("response", (headers2) => { const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; request4.onUpgrade(statusCode, parseH2Headers(realHeaders), stream2); ++session[kOpenStreams]; client[kQueue][client[kRunningIdx]++] = null; }); stream2.once("close", () => { session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) session.unref(); }); stream2.setTimeout(requestTimeout2); return true; } headers[HTTP2_HEADER_PATH] = path82; headers[HTTP2_HEADER_SCHEME] = protocol === "http:" ? "http" : "https"; const expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; if (body && typeof body.read === "function") { body.read(0); } let contentLength = util3.bodyLength(body); if (util3.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 = request4.contentLength; } if (!expectsPayload) { contentLength = null; } if (shouldSendContentLength(method) && contentLength > 0 && request4.contentLength != null && request4.contentLength !== contentLength) { if (client[kStrictContentLength]) { util3.errorRequest(client, request4, new RequestContentLengthMismatchError()); return false; } process.emitWarning(new RequestContentLengthMismatchError()); } if (contentLength != null) { assert58(body || contentLength === 0, "no body must not have content length"); headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`; } session.ref(); if (channels.sendHeaders.hasSubscribers) { let header = ""; for (const key in headers) { header += `${key}: ${headers[key]}\r `; } channels.sendHeaders.publish({ request: request4, headers: header, socket: session[kSocket] }); } const shouldEndStream = method === "GET" || method === "HEAD" || body === null; if (expectContinue) { headers[HTTP2_HEADER_EXPECT] = "100-continue"; stream2 = session.request(headers, { endStream: shouldEndStream, signal }); stream2[kHTTP2Stream] = true; stream2.once("continue", writeBodyH2); } else { stream2 = session.request(headers, { endStream: shouldEndStream, signal }); stream2[kHTTP2Stream] = true; writeBodyH2(); } ++session[kOpenStreams]; stream2.setTimeout(requestTimeout2); stream2.once("response", (headers2) => { const { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; request4.onResponseStarted(); if (request4.aborted) { stream2.removeAllListeners("data"); return; } if (request4.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream2.resume.bind(stream2), "") === false) { stream2.pause(); } }); stream2.on("data", (chunk) => { if (request4.onData(chunk) === false) { stream2.pause(); } }); stream2.once("end", (err) => { stream2.removeAllListeners("data"); if (stream2.state?.state == null || stream2.state.state < 6) { if (!request4.aborted && !request4.completed) { request4.onComplete({}); } client[kQueue][client[kRunningIdx]++] = null; client[kResume](); } else { --session[kOpenStreams]; if (session[kOpenStreams] === 0) { session.unref(); } abort(err ?? new InformationalError("HTTP/2: stream half-closed (remote)")); client[kQueue][client[kRunningIdx]++] = null; client[kPendingIdx] = client[kRunningIdx]; client[kResume](); } }); stream2.once("close", () => { stream2.removeAllListeners("data"); session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) { session.unref(); } }); stream2.once("error", function(err) { stream2.removeAllListeners("data"); abort(err); }); stream2.once("frameError", (type, code) => { stream2.removeAllListeners("data"); abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)); }); stream2.on("aborted", () => { stream2.removeAllListeners("data"); }); stream2.on("timeout", () => { const err = new InformationalError(`HTTP/2: "stream timeout after ${requestTimeout2}"`); stream2.removeAllListeners("data"); session[kOpenStreams] -= 1; if (session[kOpenStreams] === 0) { session.unref(); } abort(err); }); stream2.once("trailers", (trailers) => { if (request4.aborted || request4.completed) { return; } request4.onComplete(trailers); }); return true; function writeBodyH2() { if (!body || contentLength === 0) { writeBuffer( abort, stream2, null, client, request4, client[kSocket], contentLength, expectsPayload ); } else if (util3.isBuffer(body)) { writeBuffer( abort, stream2, body, client, request4, client[kSocket], contentLength, expectsPayload ); } else if (util3.isBlobLike(body)) { if (typeof body.stream === "function") { writeIterable( abort, stream2, body.stream(), client, request4, client[kSocket], contentLength, expectsPayload ); } else { writeBlob( abort, stream2, body, client, request4, client[kSocket], contentLength, expectsPayload ); } } else if (util3.isStream(body)) { writeStream( abort, client[kSocket], expectsPayload, stream2, body, client, request4, contentLength ); } else if (util3.isIterable(body)) { writeIterable( abort, stream2, body, client, request4, client[kSocket], contentLength, expectsPayload ); } else { assert58(false); } } } __name(writeH2, "writeH2"); function writeBuffer(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) { try { if (body != null && util3.isBuffer(body)) { assert58(contentLength === body.byteLength, "buffer body must have content length"); h2stream.cork(); h2stream.write(body); h2stream.uncork(); h2stream.end(); request4.onBodySent(body); } if (!expectsPayload) { socket[kReset2] = true; } request4.onRequestSent(); client[kResume](); } catch (error2) { abort(error2); } } __name(writeBuffer, "writeBuffer"); function writeStream(abort, socket, expectsPayload, h2stream, body, client, request4, contentLength) { assert58(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); const pipe = pipeline( body, h2stream, (err) => { if (err) { util3.destroy(pipe, err); abort(err); } else { util3.removeAllListeners(pipe); request4.onRequestSent(); if (!expectsPayload) { socket[kReset2] = true; } client[kResume](); } } ); util3.addListener(pipe, "data", onPipeData); function onPipeData(chunk) { request4.onBodySent(chunk); } __name(onPipeData, "onPipeData"); } __name(writeStream, "writeStream"); async function writeBlob(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) { assert58(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(); request4.onBodySent(buffer); request4.onRequestSent(); if (!expectsPayload) { socket[kReset2] = true; } client[kResume](); } catch (err) { abort(err); } } __name(writeBlob, "writeBlob"); async function writeIterable(abort, h2stream, body, client, request4, socket, contentLength, expectsPayload) { assert58(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { const cb2 = callback; callback = null; cb2(); } } __name(onDrain, "onDrain"); const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve31, reject) => { assert58(callback === null); if (socket[kError]) { reject(socket[kError]); } else { callback = resolve31; } }), "waitForDrain"); 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); request4.onBodySent(chunk); if (!res) { await waitForDrain(); } } h2stream.end(); request4.onRequestSent(); if (!expectsPayload) { socket[kReset2] = true; } client[kResume](); } catch (err) { abort(err); } finally { h2stream.off("close", onDrain).off("drain", onDrain); } } __name(writeIterable, "writeIterable"); module4.exports = connectH2; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/client.js var require_client = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/client.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var net2 = __require("net"); var http6 = __require("http"); var util3 = require_util(); var { ClientStats } = require_stats(); var { channels } = require_diagnostics(); var Request7 = 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, kMaxRequests, kCounter, kClose, kDestroy, kDispatch, kLocalAddress, kMaxResponseSize, kOnError, kHTTPContext, kMaxConcurrentStreams, kResume } = require_symbols(); var connectH1 = require_client_h1(); var connectH2 = require_client_h2(); var kClosedResolve = Symbol("kClosedResolve"); var getDefaultNodeMaxHeaderSize = http6 && http6.maxHeaderSize && Number.isInteger(http6.maxHeaderSize) && http6.maxHeaderSize > 0 ? () => http6.maxHeaderSize : () => { throw new InvalidArgumentError("http module not available or http.maxHeaderSize invalid"); }; var noop = /* @__PURE__ */ __name(() => { }, "noop"); function getPipelining(client) { return client[kPipelining] ?? client[kHTTPContext]?.defaultPipelining ?? 1; } __name(getPipelining, "getPipelining"); var Client2 = class extends DispatcherBase { static { __name(this, "Client"); } /** * * @param {string|URL} url * @param {import('../../types/client.js').Client.Options} options */ constructor(url4, { maxHeaderSize, headersTimeout, socketTimeout, requestTimeout: requestTimeout2, connectTimeout, bodyTimeout, idleTimeout, keepAlive, keepAliveTimeout, maxKeepAliveTimeout, keepAliveMaxTimeout, keepAliveTimeoutThreshold, socketPath, pipelining, tls, strictContentLength, maxCachedSessions, connect: connect2, maxRequestsPerClient, localAddress, maxResponseSize, autoSelectFamily, autoSelectFamilyAttemptTimeout, // h2 maxConcurrentStreams, allowH2, useH2c } = {}) { 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 (requestTimeout2 !== 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) { if (!Number.isInteger(maxHeaderSize) || maxHeaderSize < 1) { throw new InvalidArgumentError("invalid maxHeaderSize"); } } else { maxHeaderSize = getDefaultNodeMaxHeaderSize(); } 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 (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { throw new InvalidArgumentError("maxRequestsPerClient must be a positive number"); } if (localAddress != null && (typeof localAddress !== "string" || net2.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 (useH2c != null && typeof useH2c !== "boolean") { throw new InvalidArgumentError("useH2c must be a valid boolean value"); } super(); if (typeof connect2 !== "function") { connect2 = buildConnector({ ...tls, maxCachedSessions, allowH2, useH2c, socketPath, timeout: connectTimeout, ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect2 }); } this[kUrl] = util3.parseOrigin(url4); this[kConnector] = connect2; this[kPipelining] = pipelining != null ? pipelining : 1; this[kMaxHeadersSize] = 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[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 stats() { return new ClientStats(this); } 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](cb2) { connect(this); this.once("connect", cb2); } [kDispatch](opts, handler) { const request4 = new Request7(this[kUrl].origin, opts, handler); this[kQueue].push(request4); if (this[kResuming]) ; else if (util3.bodyLength(request4.body) == null && util3.isIterable(request4.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; } [kClose]() { return new Promise((resolve31) => { if (this[kSize]) { this[kClosedResolve] = resolve31; } else { resolve31(null); } }); } [kDestroy](err) { return new Promise((resolve31) => { const requests = this[kQueue].splice(this[kPendingIdx]); for (let i7 = 0; i7 < requests.length; i7++) { const request4 = requests[i7]; util3.errorRequest(this, request4, err); } const callback = /* @__PURE__ */ __name(() => { if (this[kClosedResolve]) { this[kClosedResolve](); this[kClosedResolve] = null; } resolve31(null); }, "callback"); if (this[kHTTPContext]) { this[kHTTPContext].destroy(err, callback); this[kHTTPContext] = null; } else { queueMicrotask(callback); } this[kResume](); }); } }; function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { assert58(client[kPendingIdx] === client[kRunningIdx]); const requests = client[kQueue].splice(client[kRunningIdx]); for (let i7 = 0; i7 < requests.length; i7++) { const request4 = requests[i7]; util3.errorRequest(client, request4, err); } assert58(client[kSize] === 0); } } __name(onError, "onError"); function connect(client) { assert58(!client[kConnecting]); assert58(!client[kHTTPContext]); let { host, hostname: hostname2, protocol, port } = client[kUrl]; if (hostname2[0] === "[") { const idx = hostname2.indexOf("]"); assert58(idx !== -1); const ip = hostname2.substring(1, idx); assert58(net2.isIPv6(ip)); hostname2 = ip; } client[kConnecting] = true; if (channels.beforeConnect.hasSubscribers) { channels.beforeConnect.publish({ connectParams: { host, hostname: hostname2, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector] }); } client[kConnector]({ host, hostname: hostname2, protocol, port, servername: client[kServerName], localAddress: client[kLocalAddress] }, (err, socket) => { if (err) { handleConnectError(client, err, { host, hostname: hostname2, protocol, port }); client[kResume](); return; } if (client.destroyed) { util3.destroy(socket.on("error", noop), new ClientDestroyedError()); client[kResume](); return; } assert58(socket); try { client[kHTTPContext] = socket.alpnProtocol === "h2" ? connectH2(client, socket) : connectH1(client, socket); } catch (err2) { socket.destroy().on("error", noop); handleConnectError(client, err2, { host, hostname: hostname2, protocol, port }); client[kResume](); return; } 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: hostname2, protocol, port, version: client[kHTTPContext]?.version, servername: client[kServerName], localAddress: client[kLocalAddress] }, connector: client[kConnector], socket }); } client.emit("connect", client[kUrl], [client]); client[kResume](); }); } __name(connect, "connect"); function handleConnectError(client, err, { host, hostname: hostname2, protocol, port }) { if (client.destroyed) { return; } client[kConnecting] = false; if (channels.connectError.hasSubscribers) { channels.connectError.publish({ connectParams: { host, hostname: hostname2, 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") { assert58(client[kRunning] === 0); while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { const request4 = client[kQueue][client[kPendingIdx]++]; util3.errorRequest(client, request4, err); } } else { onError(client, err); } client.emit("connectionError", client[kUrl], [client], err); } __name(handleConnectError, "handleConnectError"); function emitDrain(client) { client[kNeedDrain] = 0; client.emit("drain", client[kUrl], [client]); } __name(emitDrain, "emitDrain"); 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; } } __name(resume, "resume"); function _resume(client, sync) { while (true) { if (client.destroyed) { assert58(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 request4 = client[kQueue][client[kPendingIdx]]; if (client[kUrl].protocol === "https:" && client[kServerName] !== request4.servername) { if (client[kRunning] > 0) { return; } client[kServerName] = request4.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(request4)) { return; } if (!request4.aborted && client[kHTTPContext].write(request4)) { client[kPendingIdx]++; } else { client[kQueue].splice(client[kPendingIdx], 1); } } } __name(_resume, "_resume"); module4.exports = Client2; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/fixed-queue.js var require_fixed_queue = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/fixed-queue.js"(exports, module4) { init_import_meta_url(); var kSize = 2048; var kMask = kSize - 1; var FixedCircularBuffer = class { static { __name(this, "FixedCircularBuffer"); } /** @type {number} */ bottom = 0; /** @type {number} */ top = 0; /** @type {Array} */ list = new Array(kSize).fill(void 0); /** @type {T|null} */ next = null; /** @returns {boolean} */ isEmpty() { return this.top === this.bottom; } /** @returns {boolean} */ isFull() { return (this.top + 1 & kMask) === this.bottom; } /** * @param {T} data * @returns {void} */ push(data) { this.list[this.top] = data; this.top = this.top + 1 & kMask; } /** @returns {T|null} */ 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; } }; module4.exports = class FixedQueue { static { __name(this, "FixedQueue"); } constructor() { this.head = this.tail = new FixedCircularBuffer(); } /** @returns {boolean} */ isEmpty() { return this.head.isEmpty(); } /** @param {T} data */ push(data) { if (this.head.isFull()) { this.head = this.head.next = new FixedCircularBuffer(); } this.head.push(data); } /** @returns {T|null} */ shift() { const tail = this.tail; const next = tail.shift(); if (tail.isEmpty() && tail.next !== null) { this.tail = tail.next; tail.next = null; } return next; } }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/pool-base.js var require_pool_base = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/pool-base.js"(exports, module4) { init_import_meta_url(); var { PoolStats } = require_stats(); 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 kClients = Symbol("clients"); var kNeedDrain = Symbol("needDrain"); 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 PoolBase = class extends DispatcherBase { static { __name(this, "PoolBase"); } [kQueue] = new FixedQueue(); [kQueued] = 0; [kClients] = []; [kNeedDrain] = false; [kOnDrain](client, origin, targets) { const queue = this[kQueue]; let needDrain = false; while (!needDrain) { const item = queue.shift(); if (!item) { break; } this[kQueued]--; needDrain = !client.dispatch(item.opts, item.handler); } client[kNeedDrain] = needDrain; if (!needDrain && this[kNeedDrain]) { this[kNeedDrain] = false; this.emit("drain", origin, [this, ...targets]); } if (this[kClosedResolve] && queue.isEmpty()) { const closeAll = new Array(this[kClients].length); for (let i7 = 0; i7 < this[kClients].length; i7++) { closeAll[i7] = this[kClients][i7].close(); } return Promise.all(closeAll).then(this[kClosedResolve]); } } [kOnConnect] = (origin, targets) => { this.emit("connect", origin, [this, ...targets]); }; [kOnDisconnect] = (origin, targets, err) => { this.emit("disconnect", origin, [this, ...targets], err); }; [kOnConnectionError] = (origin, targets, err) => { this.emit("connectionError", origin, [this, ...targets], err); }; get [kBusy]() { return this[kNeedDrain]; } get [kConnected]() { let ret = 0; for (const { [kConnected]: connected } of this[kClients]) { ret += connected; } return ret; } get [kFree]() { let ret = 0; for (const { [kConnected]: connected, [kNeedDrain]: needDrain } of this[kClients]) { ret += connected && !needDrain; } return ret; } 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 new PoolStats(this); } [kClose]() { if (this[kQueue].isEmpty()) { const closeAll = new Array(this[kClients].length); for (let i7 = 0; i7 < this[kClients].length; i7++) { closeAll[i7] = this[kClients][i7].close(); } return Promise.all(closeAll); } else { return new Promise((resolve31) => { this[kClosedResolve] = resolve31; }); } } [kDestroy](err) { while (true) { const item = this[kQueue].shift(); if (!item) { break; } item.handler.onError(err); } const destroyAll = new Array(this[kClients].length); for (let i7 = 0; i7 < this[kClients].length; i7++) { destroyAll[i7] = this[kClients][i7].destroy(err); } return Promise.all(destroyAll); } [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].bind(this, client)).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, client[kUrl], [client, this]); } }); } 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); } }; module4.exports = { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/pool.js var require_pool = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/pool.js"(exports, module4) { init_import_meta_url(); var { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher, kRemoveClient } = require_pool_base(); var Client2 = require_client(); var { InvalidArgumentError } = require_errors(); var util3 = require_util(); var { kUrl } = require_symbols(); var buildConnector = require_connect(); var kOptions = Symbol("options"); var kConnections = Symbol("connections"); var kFactory = Symbol("factory"); function defaultFactory(origin, opts) { return new Client2(origin, opts); } __name(defaultFactory, "defaultFactory"); var Pool = class extends PoolBase { static { __name(this, "Pool"); } constructor(origin, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, clientTtl, ...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, ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect }); } super(); this[kConnections] = connections || null; this[kUrl] = util3.parseOrigin(origin); this[kOptions] = { ...util3.deepClone(options), connect, allowH2, clientTtl }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; this.on("connect", (origin2, targets) => { if (clientTtl != null && clientTtl > 0) { for (const target of targets) { Object.assign(target, { ttl: Date.now() }); } } }); 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]() { const clientTtlOption = this[kOptions].clientTtl; for (const client of this[kClients]) { if (clientTtlOption != null && clientTtlOption > 0 && client.ttl && Date.now() - client.ttl > clientTtlOption) { this[kRemoveClient](client); } else 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; } } }; module4.exports = Pool; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/balanced-pool.js var require_balanced_pool = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/balanced-pool.js"(exports, module4) { init_import_meta_url(); var { BalancedPoolMissingUpstreamError, InvalidArgumentError } = require_errors(); var { PoolBase, kClients, kNeedDrain, kAddClient, kRemoveClient, kGetDispatcher } = require_pool_base(); var Pool = require_pool(); var { kUrl } = require_symbols(); var { parseOrigin } = require_util(); var kFactory = Symbol("factory"); var kOptions = Symbol("options"); var kGreatestCommonDivisor = Symbol("kGreatestCommonDivisor"); var kCurrentWeight = Symbol("kCurrentWeight"); var kIndex = Symbol("kIndex"); var kWeight = Symbol("kWeight"); var kMaxWeightPerServer = Symbol("kMaxWeightPerServer"); var kErrorPenalty = Symbol("kErrorPenalty"); function getGreatestCommonDivisor(a7, b11) { if (a7 === 0) return b11; while (b11 !== 0) { const t12 = b11; b11 = a7 % b11; a7 = t12; } return a7; } __name(getGreatestCommonDivisor, "getGreatestCommonDivisor"); function defaultFactory(origin, opts) { return new Pool(origin, opts); } __name(defaultFactory, "defaultFactory"); var BalancedPool = class extends PoolBase { static { __name(this, "BalancedPool"); } constructor(upstreams = [], { factory = defaultFactory, ...opts } = {}) { if (typeof factory !== "function") { throw new InvalidArgumentError("factory must be a function."); } 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]; } 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 i7 = 0; i7 < this[kClients].length; i7++) { result = getGreatestCommonDivisor(this[kClients][i7][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; } getUpstream(upstream) { const upstreamOrigin = parseOrigin(upstream).origin; return this[kClients].find((pool) => pool[kUrl].origin === upstreamOrigin && pool.closed !== true && pool.destroyed !== true); } get upstreams() { return this[kClients].filter((dispatcher) => dispatcher.closed !== true && dispatcher.destroyed !== true).map((p7) => p7[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((a7, b11) => a7 && b11, 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]; } }; module4.exports = BalancedPool; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/round-robin-pool.js var require_round_robin_pool = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/round-robin-pool.js"(exports, module4) { init_import_meta_url(); var { PoolBase, kClients, kNeedDrain, kAddClient, kGetDispatcher, kRemoveClient } = require_pool_base(); var Client2 = require_client(); var { InvalidArgumentError } = require_errors(); var util3 = require_util(); var { kUrl } = require_symbols(); var buildConnector = require_connect(); var kOptions = Symbol("options"); var kConnections = Symbol("connections"); var kFactory = Symbol("factory"); var kIndex = Symbol("index"); function defaultFactory(origin, opts) { return new Client2(origin, opts); } __name(defaultFactory, "defaultFactory"); var RoundRobinPool = class extends PoolBase { static { __name(this, "RoundRobinPool"); } constructor(origin, { connections, factory = defaultFactory, connect, connectTimeout, tls, maxCachedSessions, socketPath, autoSelectFamily, autoSelectFamilyAttemptTimeout, allowH2, clientTtl, ...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, ...typeof autoSelectFamily === "boolean" ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect }); } super(); this[kConnections] = connections || null; this[kUrl] = util3.parseOrigin(origin); this[kOptions] = { ...util3.deepClone(options), connect, allowH2, clientTtl }; this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0; this[kFactory] = factory; this[kIndex] = -1; this.on("connect", (origin2, targets) => { if (clientTtl != null && clientTtl > 0) { for (const target of targets) { Object.assign(target, { ttl: Date.now() }); } } }); 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]() { const clientTtlOption = this[kOptions].clientTtl; const clientsLength = this[kClients].length; if (clientsLength === 0) { const dispatcher = this[kFactory](this[kUrl], this[kOptions]); this[kAddClient](dispatcher); return dispatcher; } let checked = 0; while (checked < clientsLength) { this[kIndex] = (this[kIndex] + 1) % clientsLength; const client = this[kClients][this[kIndex]]; if (clientTtlOption != null && clientTtlOption > 0 && client.ttl && Date.now() - client.ttl > clientTtlOption) { this[kRemoveClient](client); checked++; continue; } if (!client[kNeedDrain]) { return client; } checked++; } if (!this[kConnections] || clientsLength < this[kConnections]) { const dispatcher = this[kFactory](this[kUrl], this[kOptions]); this[kAddClient](dispatcher); return dispatcher; } } }; module4.exports = RoundRobinPool; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/agent.js var require_agent = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/agent.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError, MaxOriginsReachedError } = require_errors(); var { kClients, kRunning, kClose, kDestroy, kDispatch, kUrl } = require_symbols(); var DispatcherBase = require_dispatcher_base(); var Pool = require_pool(); var Client2 = require_client(); var util3 = require_util(); var kOnConnect = Symbol("onConnect"); var kOnDisconnect = Symbol("onDisconnect"); var kOnConnectionError = Symbol("onConnectionError"); var kOnDrain = Symbol("onDrain"); var kFactory = Symbol("factory"); var kOptions = Symbol("options"); var kOrigins = Symbol("origins"); function defaultFactory(origin, opts) { return opts && opts.connections === 1 ? new Client2(origin, opts) : new Pool(origin, opts); } __name(defaultFactory, "defaultFactory"); var Agent = class extends DispatcherBase { static { __name(this, "Agent"); } constructor({ factory = defaultFactory, maxOrigins = Infinity, 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 (typeof maxOrigins !== "number" || Number.isNaN(maxOrigins) || maxOrigins <= 0) { throw new InvalidArgumentError("maxOrigins must be a number greater than 0"); } super(); if (connect && typeof connect !== "function") { connect = { ...connect }; } this[kOptions] = { ...util3.deepClone(options), maxOrigins, connect }; this[kFactory] = factory; this[kClients] = /* @__PURE__ */ new Map(); this[kOrigins] = /* @__PURE__ */ new Set(); 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 { dispatcher } of this[kClients].values()) { ret += dispatcher[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."); } if (this[kOrigins].size >= this[kOptions].maxOrigins && !this[kOrigins].has(key)) { throw new MaxOriginsReachedError(); } const result = this[kClients].get(key); let dispatcher = result && result.dispatcher; if (!dispatcher) { const closeClientIfUnused = /* @__PURE__ */ __name((connected) => { const result2 = this[kClients].get(key); if (result2) { if (connected) result2.count -= 1; if (result2.count <= 0) { this[kClients].delete(key); result2.dispatcher.close(); } this[kOrigins].delete(key); } }, "closeClientIfUnused"); dispatcher = this[kFactory](opts.origin, this[kOptions]).on("drain", this[kOnDrain]).on("connect", (origin, targets) => { const result2 = this[kClients].get(key); if (result2) { result2.count += 1; } this[kOnConnect](origin, targets); }).on("disconnect", (origin, targets, err) => { closeClientIfUnused(true); this[kOnDisconnect](origin, targets, err); }).on("connectionError", (origin, targets, err) => { closeClientIfUnused(false); this[kOnConnectionError](origin, targets, err); }); this[kClients].set(key, { count: 0, dispatcher }); this[kOrigins].add(key); } return dispatcher.dispatch(opts, handler); } [kClose]() { const closePromises = []; for (const { dispatcher } of this[kClients].values()) { closePromises.push(dispatcher.close()); } this[kClients].clear(); return Promise.all(closePromises); } [kDestroy](err) { const destroyPromises = []; for (const { dispatcher } of this[kClients].values()) { destroyPromises.push(dispatcher.destroy(err)); } this[kClients].clear(); return Promise.all(destroyPromises); } get stats() { const allClientStats = {}; for (const { dispatcher } of this[kClients].values()) { if (dispatcher.stats) { allClientStats[dispatcher[kUrl].origin] = dispatcher.stats; } } return allClientStats; } }; module4.exports = Agent; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/proxy-agent.js var require_proxy_agent = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/proxy-agent.js"(exports, module4) { init_import_meta_url(); var { kProxy, kClose, kDestroy, kDispatch } = require_symbols(); var Agent = require_agent(); var Pool = require_pool(); var DispatcherBase = require_dispatcher_base(); var { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors(); var buildConnector = require_connect(); var Client2 = require_client(); var { channels } = require_diagnostics(); var kAgent = Symbol("proxy agent"); var kClient = Symbol("proxy client"); var kProxyHeaders = Symbol("proxy headers"); var kRequestTls = Symbol("request 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; } __name(defaultProtocolPort, "defaultProtocolPort"); function defaultFactory(origin, opts) { return new Pool(origin, opts); } __name(defaultFactory, "defaultFactory"); var noop = /* @__PURE__ */ __name(() => { }, "noop"); function defaultAgentFactory(origin, opts) { if (opts.connections === 1) { return new Client2(origin, opts); } return new Pool(origin, opts); } __name(defaultAgentFactory, "defaultAgentFactory"); var Http1ProxyWrapper = class extends DispatcherBase { static { __name(this, "Http1ProxyWrapper"); } #client; constructor(proxyUrl, { headers = {}, connect, factory }) { if (!proxyUrl) { throw new InvalidArgumentError("Proxy URL is mandatory"); } super(); this[kProxyHeaders] = headers; if (factory) { this.#client = factory(proxyUrl, { connect }); } else { this.#client = new Client2(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: path82 = "/", headers = {} } = opts; opts.path = origin + path82; if (!("host" in headers) && !("Host" in headers)) { const { host } = new URL(origin); headers.host = host; } opts.headers = { ...this[kProxyHeaders], ...headers }; return this.#client[kDispatch](opts, handler); } [kClose]() { return this.#client.close(); } [kDestroy](err) { return this.#client.destroy(err); } }; var ProxyAgent = class extends DispatcherBase { static { __name(this, "ProxyAgent"); } constructor(opts) { if (!opts || typeof opts === "object" && !(opts instanceof URL) && !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; super(); const url4 = this.#getUrl(opts); const { href, origin, port, protocol, username, password, hostname: proxyHostname } = url4; this[kProxy] = { uri: href, protocol }; 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 = /* @__PURE__ */ __name((origin2, options) => { const { protocol: protocol2 } = new URL(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); }, "factory"); this[kClient] = clientFactory(url4, { connect }); this[kAgent] = new Agent({ ...opts, factory, connect: /* @__PURE__ */ __name(async (opts2, callback) => { let requestedPath = opts2.host; if (!opts2.port) { requestedPath += `:${defaultProtocolPort(opts2.protocol)}`; } try { const connectParams = { origin, port, path: requestedPath, signal: opts2.signal, headers: { ...this[kProxyHeaders], host: opts2.host, ...opts2.connections == null || opts2.connections > 0 ? { "proxy-connection": "keep-alive" } : {} }, servername: this[kProxyTls]?.servername || proxyHostname }; const { socket, statusCode } = await this[kClient].connect(connectParams); if (statusCode !== 200) { socket.on("error", noop).destroy(); callback(new RequestAbortedError(`Proxy response (${statusCode}) !== 200 when HTTP Tunneling`)); return; } if (channels.proxyConnected.hasSubscribers) { channels.proxyConnected.publish({ socket, connectParams }); } 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); } } }, "connect") }); } dispatch(opts, handler) { const headers = buildHeaders(opts.headers); throwIfProxyAuthIsSent(headers); if (headers && !("host" in headers) && !("Host" in headers)) { const { host } = new URL(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 URL(opts); } else if (opts instanceof URL) { return opts; } else { return new URL(opts.uri); } } [kClose]() { return Promise.all([ this[kAgent].close(), this[kClient].close() ]); } [kDestroy]() { return Promise.all([ this[kAgent].destroy(), this[kClient].destroy() ]); } }; function buildHeaders(headers) { if (Array.isArray(headers)) { const headersPair = {}; for (let i7 = 0; i7 < headers.length; i7 += 2) { headersPair[headers[i7]] = headers[i7 + 1]; } return headersPair; } return headers; } __name(buildHeaders, "buildHeaders"); 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"); } } __name(throwIfProxyAuthIsSent, "throwIfProxyAuthIsSent"); module4.exports = ProxyAgent; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js var require_env_http_proxy_agent = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports, module4) { init_import_meta_url(); var DispatcherBase = require_dispatcher_base(); var { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(); var ProxyAgent = require_proxy_agent(); var Agent = require_agent(); var DEFAULT_PORTS2 = { "http:": 80, "https:": 443 }; var EnvHttpProxyAgent2 = class extends DispatcherBase { static { __name(this, "EnvHttpProxyAgent"); } #noProxyValue = null; #noProxyEntries = null; #opts = null; constructor(opts = {}) { super(); this.#opts = opts; const { httpProxy, httpsProxy, noProxy: noProxy2, ...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 ProxyAgent({ ...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 ProxyAgent({ ...agentOpts, uri: HTTPS_PROXY }); } else { this[kHttpsProxyAgent] = this[kHttpProxyAgent]; } this.#parseNoProxy(); } [kDispatch](opts, handler) { const url4 = new URL(opts.origin); const agent = this.#getProxyAgentForUrl(url4); return agent.dispatch(opts, handler); } [kClose]() { return Promise.all([ this[kNoProxyAgent].close(), !this[kHttpProxyAgent][kClosed] && this[kHttpProxyAgent].close(), !this[kHttpsProxyAgent][kClosed] && this[kHttpsProxyAgent].close() ]); } [kDestroy](err) { return Promise.all([ this[kNoProxyAgent].destroy(err), !this[kHttpProxyAgent][kDestroyed] && this[kHttpProxyAgent].destroy(err), !this[kHttpsProxyAgent][kDestroyed] && this[kHttpsProxyAgent].destroy(err) ]); } #getProxyAgentForUrl(url4) { let { protocol, host: hostname2, port } = url4; hostname2 = hostname2.replace(/:\d*$/, "").toLowerCase(); port = Number.parseInt(port, 10) || DEFAULT_PORTS2[protocol] || 0; if (!this.#shouldProxy(hostname2, port)) { return this[kNoProxyAgent]; } if (protocol === "https:") { return this[kHttpsProxyAgent]; } return this[kHttpProxyAgent]; } #shouldProxy(hostname2, port) { if (this.#noProxyChanged) { this.#parseNoProxy(); } if (this.#noProxyEntries.length === 0) { return true; } if (this.#noProxyValue === "*") { return false; } for (let i7 = 0; i7 < this.#noProxyEntries.length; i7++) { const entry = this.#noProxyEntries[i7]; if (entry.port && entry.port !== port) { continue; } if (!/^[.*]/.test(entry.hostname)) { if (hostname2 === entry.hostname) { return false; } } else { if (hostname2.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 i7 = 0; i7 < noProxySplit.length; i7++) { const entry = noProxySplit[i7]; 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 ?? ""; } }; module4.exports = EnvHttpProxyAgent2; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/retry-handler.js var require_retry_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/retry-handler.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { kRetryHandlerDefaultRetry } = require_symbols(); var { RequestRetryError } = require_errors(); var WrapHandler = require_wrap_handler(); var { isDisturbed, parseRangeHeader, wrapRequestBody } = require_util(); function calculateRetryAfterHeader(retryAfter) { const retryTime = new Date(retryAfter).getTime(); return isNaN(retryTime) ? 0 : retryTime - Date.now(); } __name(calculateRetryAfterHeader, "calculateRetryAfterHeader"); var RetryHandler = class _RetryHandler { static { __name(this, "RetryHandler"); } constructor(opts, { dispatch, handler }) { const { retryOptions, ...dispatchOpts } = opts; const { // Retry scoped retry: retryFn, maxRetries, maxTimeout, minTimeout, timeoutFactor, // Response scoped methods, errorCodes, retryAfter, statusCodes, throwOnError } = retryOptions ?? {}; this.error = null; this.dispatch = dispatch; this.handler = WrapHandler.wrap(handler); this.opts = { ...dispatchOpts, body: wrapRequestBody(opts.body) }; this.retryOpts = { throwOnError: throwOnError ?? true, 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.headersSent = false; this.start = 0; this.end = null; this.etag = null; } onResponseStartWithRetry(controller, statusCode, headers, statusMessage, err) { if (this.retryOpts.throwOnError) { if (this.retryOpts.statusCodes.includes(statusCode) === false) { this.headersSent = true; this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage); } else { this.error = err; } return; } if (isDisturbed(this.opts.body)) { this.headersSent = true; this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage); return; } function shouldRetry(passedErr) { if (passedErr) { this.headersSent = true; this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage); controller.resume(); return; } this.error = err; controller.resume(); } __name(shouldRetry, "shouldRetry"); controller.pause(); this.retryOpts.retry( err, { state: { counter: this.retryCount }, opts: { retryOptions: this.retryOpts, ...this.opts } }, shouldRetry.bind(this) ); } onRequestStart(controller, context2) { if (!this.headersSent) { this.handler.onRequestStart?.(controller, context2); } } onRequestUpgrade(controller, statusCode, headers, socket) { this.handler.onRequestUpgrade?.(controller, statusCode, headers, socket); } static [kRetryHandlerDefaultRetry](err, { state: state2, opts }, cb2) { const { statusCode, code, headers } = err; const { method, retryOptions } = opts; const { maxRetries, minTimeout, maxTimeout, timeoutFactor, statusCodes, errorCodes, methods } = retryOptions; const { counter } = state2; if (code && code !== "UND_ERR_REQ_RETRY" && !errorCodes.includes(code)) { cb2(err); return; } if (Array.isArray(methods) && !methods.includes(method)) { cb2(err); return; } if (statusCode != null && Array.isArray(statusCodes) && !statusCodes.includes(statusCode)) { cb2(err); return; } if (counter > maxRetries) { cb2(err); return; } let retryAfterHeader = headers?.["retry-after"]; if (retryAfterHeader) { retryAfterHeader = Number(retryAfterHeader); retryAfterHeader = Number.isNaN(retryAfterHeader) ? calculateRetryAfterHeader(headers["retry-after"]) : retryAfterHeader * 1e3; } const retryTimeout = retryAfterHeader > 0 ? Math.min(retryAfterHeader, maxTimeout) : Math.min(minTimeout * timeoutFactor ** (counter - 1), maxTimeout); setTimeout(() => cb2(null), retryTimeout); } onResponseStart(controller, statusCode, headers, statusMessage) { this.error = null; this.retryCount += 1; if (statusCode >= 300) { const err = new RequestRetryError("Request failed", statusCode, { headers, data: { count: this.retryCount } }); this.onResponseStartWithRetry(controller, statusCode, headers, statusMessage, err); return; } if (this.headersSent) { if (statusCode !== 206 && (this.start > 0 || statusCode !== 200)) { throw new RequestRetryError("server does not support the range header and the payload was partially consumed", statusCode, { headers, data: { count: this.retryCount } }); } const contentRange = parseRangeHeader(headers["content-range"]); if (!contentRange) { throw new RequestRetryError("Content-Range mismatch", statusCode, { headers, data: { count: this.retryCount } }); } if (this.etag != null && this.etag !== headers.etag) { throw new RequestRetryError("ETag mismatch", statusCode, { headers, data: { count: this.retryCount } }); } const { start, size, end = size ? size - 1 : null } = contentRange; assert58(this.start === start, "content-range mismatch"); assert58(this.end == null || this.end === end, "content-range mismatch"); return; } if (this.end == null) { if (statusCode === 206) { const range = parseRangeHeader(headers["content-range"]); if (range == null) { this.headersSent = true; this.handler.onResponseStart?.( controller, statusCode, headers, statusMessage ); return; } const { start, size, end = size ? size - 1 : null } = range; assert58( start != null && Number.isFinite(start), "content-range mismatch" ); assert58(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; } assert58(Number.isFinite(this.start)); assert58( this.end == null || Number.isFinite(this.end), "invalid content-length" ); this.resume = true; this.etag = headers.etag != null ? headers.etag : null; if (this.etag != null && this.etag[0] === "W" && this.etag[1] === "/") { this.etag = null; } this.headersSent = true; this.handler.onResponseStart?.( controller, statusCode, headers, statusMessage ); } else { throw new RequestRetryError("Request failed", statusCode, { headers, data: { count: this.retryCount } }); } } onResponseData(controller, chunk) { if (this.error) { return; } this.start += chunk.length; this.handler.onResponseData?.(controller, chunk); } onResponseEnd(controller, trailers) { if (this.error && this.retryOpts.throwOnError) { throw this.error; } if (!this.error) { this.retryCount = 0; return this.handler.onResponseEnd?.(controller, trailers); } this.retry(controller); } retry(controller) { 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 (err) { this.handler.onResponseError?.(controller, err); } } onResponseError(controller, err) { if (controller?.aborted || isDisturbed(this.opts.body)) { this.handler.onResponseError?.(controller, err); return; } function shouldRetry(returnedErr) { if (!returnedErr) { this.retry(controller); return; } this.handler?.onResponseError?.(controller, returnedErr); } __name(shouldRetry, "shouldRetry"); 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 } }, shouldRetry.bind(this) ); } }; module4.exports = RetryHandler; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/retry-agent.js var require_retry_agent = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/retry-agent.js"(exports, module4) { init_import_meta_url(); var Dispatcher2 = require_dispatcher(); var RetryHandler = require_retry_handler(); var RetryAgent = class extends Dispatcher2 { static { __name(this, "RetryAgent"); } #agent = null; #options = null; constructor(agent, options = {}) { super(options); this.#agent = agent; this.#options = options; } dispatch(opts, handler) { const retry2 = new RetryHandler({ ...opts, retryOptions: this.#options }, { dispatch: this.#agent.dispatch.bind(this.#agent), handler }); return this.#agent.dispatch(opts, retry2); } close() { return this.#agent.close(); } destroy() { return this.#agent.destroy(); } }; module4.exports = RetryAgent; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/h2c-client.js var require_h2c_client = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/dispatcher/h2c-client.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError } = require_errors(); var Client2 = require_client(); var H2CClient = class extends Client2 { static { __name(this, "H2CClient"); } constructor(origin, clientOpts) { if (typeof origin === "string") { origin = new URL(origin); } if (origin.protocol !== "http:") { throw new InvalidArgumentError( "h2c-client: Only h2c protocol is supported" ); } const { connect, maxConcurrentStreams, pipelining, ...opts } = clientOpts ?? {}; let defaultMaxConcurrentStreams = 100; let defaultPipelining = 100; if (maxConcurrentStreams != null && Number.isInteger(maxConcurrentStreams) && maxConcurrentStreams > 0) { defaultMaxConcurrentStreams = maxConcurrentStreams; } if (pipelining != null && Number.isInteger(pipelining) && pipelining > 0) { defaultPipelining = pipelining; } if (defaultPipelining > defaultMaxConcurrentStreams) { throw new InvalidArgumentError( "h2c-client: pipelining cannot be greater than maxConcurrentStreams" ); } super(origin, { ...opts, maxConcurrentStreams: defaultMaxConcurrentStreams, pipelining: defaultPipelining, allowH2: true, useH2c: true }); } }; module4.exports = H2CClient; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/readable.js var require_readable = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/readable.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { Readable: Readable11 } = __require("stream"); var { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError: AbortError2 } = require_errors(); var util3 = 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 kUsed = Symbol("kUsed"); var kBytesRead = Symbol("kBytesRead"); var noop = /* @__PURE__ */ __name(() => { }, "noop"); var BodyReadable = class extends Readable11 { static { __name(this, "BodyReadable"); } /** * @param {object} opts * @param {(this: Readable, size: number) => void} opts.resume * @param {() => (void | null)} opts.abort * @param {string} [opts.contentType = ''] * @param {number} [opts.contentLength] * @param {number} [opts.highWaterMark = 64 * 1024] */ 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[kBytesRead] = 0; this[kBody] = null; this[kUsed] = false; this[kContentType] = contentType; this[kContentLength] = Number.isFinite(contentLength) ? contentLength : null; this[kReading] = false; } /** * @param {Error|null} err * @param {(error:(Error|null)) => void} callback * @returns {void} */ _destroy(err, callback) { if (!err && !this._readableState.endEmitted) { err = new RequestAbortedError(); } if (err) { this[kAbort](); } if (!this[kUsed]) { setImmediate(callback, err); } else { callback(err); } } /** * @param {string|symbol} event * @param {(...args: any[]) => void} listener * @returns {this} */ on(event, listener) { if (event === "data" || event === "readable") { this[kReading] = true; this[kUsed] = true; } return super.on(event, listener); } /** * @param {string|symbol} event * @param {(...args: any[]) => void} listener * @returns {this} */ addListener(event, listener) { return this.on(event, listener); } /** * @param {string|symbol} event * @param {(...args: any[]) => void} listener * @returns {this} */ off(event, listener) { const ret = super.off(event, listener); if (event === "data" || event === "readable") { this[kReading] = this.listenerCount("data") > 0 || this.listenerCount("readable") > 0; } return ret; } /** * @param {string|symbol} event * @param {(...args: any[]) => void} listener * @returns {this} */ removeListener(event, listener) { return this.off(event, listener); } /** * @param {Buffer|null} chunk * @returns {boolean} */ push(chunk) { if (chunk) { this[kBytesRead] += chunk.length; if (this[kConsume]) { consumePush(this[kConsume], chunk); return this[kReading] ? super.push(chunk) : true; } } return super.push(chunk); } /** * Consumes and returns the body as a string. * * @see https://fetch.spec.whatwg.org/#dom-body-text * @returns {Promise} */ text() { return consume(this, "text"); } /** * Consumes and returns the body as a JavaScript Object. * * @see https://fetch.spec.whatwg.org/#dom-body-json * @returns {Promise} */ json() { return consume(this, "json"); } /** * Consumes and returns the body as a Blob * * @see https://fetch.spec.whatwg.org/#dom-body-blob * @returns {Promise} */ blob() { return consume(this, "blob"); } /** * Consumes and returns the body as an Uint8Array. * * @see https://fetch.spec.whatwg.org/#dom-body-bytes * @returns {Promise} */ bytes() { return consume(this, "bytes"); } /** * Consumes and returns the body as an ArrayBuffer. * * @see https://fetch.spec.whatwg.org/#dom-body-arraybuffer * @returns {Promise} */ arrayBuffer() { return consume(this, "arrayBuffer"); } /** * Not implemented * * @see https://fetch.spec.whatwg.org/#dom-body-formdata * @throws {NotSupportedError} */ async formData() { throw new NotSupportedError(); } /** * Returns true if the body is not null and the body has been consumed. * Otherwise, returns false. * * @see https://fetch.spec.whatwg.org/#dom-body-bodyused * @readonly * @returns {boolean} */ get bodyUsed() { return util3.isDisturbed(this); } /** * @see https://fetch.spec.whatwg.org/#dom-body-body * @readonly * @returns {ReadableStream} */ get body() { if (!this[kBody]) { this[kBody] = ReadableStreamFrom(this); if (this[kConsume]) { this[kBody].getReader(); assert58(this[kBody].locked); } } return this[kBody]; } /** * Dumps the response body by reading `limit` number of bytes. * @param {object} opts * @param {number} [opts.limit = 131072] Number of bytes to read. * @param {AbortSignal} [opts.signal] An AbortSignal to cancel the dump. * @returns {Promise} */ dump(opts) { const signal = opts?.signal; if (signal != null && (typeof signal !== "object" || !("aborted" in signal))) { return Promise.reject(new InvalidArgumentError("signal must be an AbortSignal")); } const limit2 = opts?.limit && Number.isFinite(opts.limit) ? opts.limit : 128 * 1024; if (signal?.aborted) { return Promise.reject(signal.reason ?? new AbortError2()); } if (this._readableState.closeEmitted) { return Promise.resolve(null); } return new Promise((resolve31, reject) => { if (this[kContentLength] && this[kContentLength] > limit2 || this[kBytesRead] > limit2) { this.destroy(new AbortError2()); } if (signal) { const onAbort = /* @__PURE__ */ __name(() => { this.destroy(signal.reason ?? new AbortError2()); }, "onAbort"); signal.addEventListener("abort", onAbort); this.on("close", function() { signal.removeEventListener("abort", onAbort); if (signal.aborted) { reject(signal.reason ?? new AbortError2()); } else { resolve31(null); } }); } else { this.on("close", resolve31); } this.on("error", noop).on("data", () => { if (this[kBytesRead] > limit2) { this.destroy(); } }).resume(); }); } /** * @param {BufferEncoding} encoding * @returns {this} */ setEncoding(encoding) { if (Buffer.isEncoding(encoding)) { this._readableState.encoding = encoding; } return this; } }; function isLocked(bodyReadable) { return bodyReadable[kBody]?.locked === true || bodyReadable[kConsume] !== null; } __name(isLocked, "isLocked"); function isUnusable(bodyReadable) { return util3.isDisturbed(bodyReadable) || isLocked(bodyReadable); } __name(isUnusable, "isUnusable"); function consume(stream2, type) { assert58(!stream2[kConsume]); return new Promise((resolve31, reject) => { if (isUnusable(stream2)) { const rState = stream2._readableState; if (rState.destroyed && rState.closeEmitted === false) { stream2.on("error", reject).on("close", () => { reject(new TypeError("unusable")); }); } else { reject(rState.errored ?? new TypeError("unusable")); } } else { queueMicrotask(() => { stream2[kConsume] = { type, stream: stream2, resolve: resolve31, reject, length: 0, body: [] }; stream2.on("error", function(err) { consumeFinish(this[kConsume], err); }).on("close", function() { if (this[kConsume].body !== null) { consumeFinish(this[kConsume], new RequestAbortedError()); } }); consumeStart(stream2[kConsume]); }); } }); } __name(consume, "consume"); function consumeStart(consume2) { if (consume2.body === null) { return; } const { _readableState: state2 } = consume2.stream; if (state2.bufferIndex) { const start = state2.bufferIndex; const end = state2.buffer.length; for (let n8 = start; n8 < end; n8++) { consumePush(consume2, state2.buffer[n8]); } } else { for (const chunk of state2.buffer) { consumePush(consume2, chunk); } } if (state2.endEmitted) { consumeEnd(this[kConsume], this._readableState.encoding); } else { consume2.stream.on("end", function() { consumeEnd(this[kConsume], this._readableState.encoding); }); } consume2.stream.resume(); while (consume2.stream.read() != null) { } } __name(consumeStart, "consumeStart"); function chunksDecode(chunks, length, encoding) { 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; if (!encoding || encoding === "utf8" || encoding === "utf-8") { return buffer.utf8Slice(start, bufferLength); } else { return buffer.subarray(start, bufferLength).toString(encoding); } } __name(chunksDecode, "chunksDecode"); 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 i7 = 0; i7 < chunks.length; ++i7) { const chunk = chunks[i7]; buffer.set(chunk, offset); offset += chunk.length; } return buffer; } __name(chunksConcat, "chunksConcat"); function consumeEnd(consume2, encoding) { const { type, body, resolve: resolve31, stream: stream2, length } = consume2; try { if (type === "text") { resolve31(chunksDecode(body, length, encoding)); } else if (type === "json") { resolve31(JSON.parse(chunksDecode(body, length, encoding))); } else if (type === "arrayBuffer") { resolve31(chunksConcat(body, length).buffer); } else if (type === "blob") { resolve31(new Blob(body, { type: stream2[kContentType] })); } else if (type === "bytes") { resolve31(chunksConcat(body, length)); } consumeFinish(consume2); } catch (err) { stream2.destroy(err); } } __name(consumeEnd, "consumeEnd"); function consumePush(consume2, chunk) { consume2.length += chunk.length; consume2.body.push(chunk); } __name(consumePush, "consumePush"); 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; } __name(consumeFinish, "consumeFinish"); module4.exports = { Readable: BodyReadable, chunksDecode }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-request.js var require_api_request = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-request.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { AsyncResource } = __require("async_hooks"); var { Readable: Readable11 } = require_readable(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var util3 = require_util(); function noop() { } __name(noop, "noop"); var RequestHandler = class extends AsyncResource { static { __name(this, "RequestHandler"); } constructor(opts, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders, 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 (util3.isStream(body)) { util3.destroy(body.on("error", noop), 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.highWaterMark = highWaterMark; this.reason = null; this.removeAbortListener = null; if (signal?.aborted) { this.reason = signal.reason ?? new RequestAbortedError(); } else if (signal) { this.removeAbortListener = util3.addAbortListener(signal, () => { this.reason = signal.reason ?? new RequestAbortedError(); if (this.res) { util3.destroy(this.res.on("error", noop), this.reason); } else if (this.abort) { this.abort(this.reason); } }); } } onConnect(abort, context2) { if (this.reason) { abort(this.reason); return; } assert58(this.callback); this.abort = abort; this.context = context2; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { callback, opaque, abort, context: context2, responseHeaders, highWaterMark } = this; const headers = responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders); if (statusCode < 200) { if (this.onInfo) { this.onInfo({ statusCode, headers }); } return; } const parsedHeaders = responseHeaders === "raw" ? util3.parseHeaders(rawHeaders) : headers; const contentType = parsedHeaders["content-type"]; const contentLength = parsedHeaders["content-length"]; const res = new Readable11({ resume, abort, contentType, contentLength: this.method !== "HEAD" && contentLength ? Number(contentLength) : null, highWaterMark }); if (this.removeAbortListener) { res.on("close", this.removeAbortListener); this.removeAbortListener = null; } this.callback = null; this.res = res; if (callback !== null) { try { this.runInAsyncScope(callback, null, null, { statusCode, headers, trailers: this.trailers, opaque, body: res, context: context2 }); } catch (err) { this.res = null; util3.destroy(res.on("error", noop), err); queueMicrotask(() => { throw err; }); } } } onData(chunk) { return this.res.push(chunk); } onComplete(trailers) { util3.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(() => { util3.destroy(res.on("error", noop), err); }); } if (body) { this.body = null; if (util3.isStream(body)) { body.on("error", noop); util3.destroy(body, err); } } if (this.removeAbortListener) { this.removeAbortListener(); this.removeAbortListener = null; } } }; function request4(opts, callback) { if (callback === void 0) { return new Promise((resolve31, reject) => { request4.call(this, opts, (err, data) => { return err ? reject(err) : resolve31(data); }); }); } try { const handler = new RequestHandler(opts, callback); this.dispatch(opts, handler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(request4, "request"); module4.exports = request4; module4.exports.RequestHandler = RequestHandler; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/abort-signal.js var require_abort_signal = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/abort-signal.js"(exports, module4) { init_import_meta_url(); var { addAbortListener } = require_util(); var { RequestAbortedError } = require_errors(); var kListener = Symbol("kListener"); var kSignal = Symbol("kSignal"); function abort(self2) { if (self2.abort) { self2.abort(self2[kSignal]?.reason); } else { self2.reason = self2[kSignal]?.reason ?? new RequestAbortedError(); } removeSignal(self2); } __name(abort, "abort"); function addSignal(self2, signal) { self2.reason = null; self2[kSignal] = null; self2[kListener] = null; if (!signal) { return; } if (signal.aborted) { abort(self2); return; } self2[kSignal] = signal; self2[kListener] = () => { abort(self2); }; addAbortListener(self2[kSignal], self2[kListener]); } __name(addSignal, "addSignal"); function removeSignal(self2) { if (!self2[kSignal]) { return; } if ("removeEventListener" in self2[kSignal]) { self2[kSignal].removeEventListener("abort", self2[kListener]); } else { self2[kSignal].removeListener("abort", self2[kListener]); } self2[kSignal] = null; self2[kListener] = null; } __name(removeSignal, "removeSignal"); module4.exports = { addSignal, removeSignal }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-stream.js var require_api_stream = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-stream.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { finished } = __require("stream"); var { AsyncResource } = __require("async_hooks"); var { InvalidArgumentError, InvalidReturnValueError } = require_errors(); var util3 = require_util(); var { addSignal, removeSignal } = require_abort_signal(); function noop() { } __name(noop, "noop"); var StreamHandler = class extends AsyncResource { static { __name(this, "StreamHandler"); } constructor(opts, factory, callback) { if (!opts || typeof opts !== "object") { throw new InvalidArgumentError("invalid opts"); } const { signal, method, opaque, body, onInfo, responseHeaders } = 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 (util3.isStream(body)) { util3.destroy(body.on("error", noop), 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; if (util3.isStream(body)) { body.on("error", (err) => { this.onError(err); }); } addSignal(this, signal); } onConnect(abort, context2) { if (this.reason) { abort(this.reason); return; } assert58(this.callback); this.abort = abort; this.context = context2; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { const { factory, opaque, context: context2, responseHeaders } = this; const headers = responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders); if (statusCode < 200) { if (this.onInfo) { this.onInfo({ statusCode, headers }); } return; } this.factory = null; if (factory === null) { return; } const res = this.runInAsyncScope(factory, null, { statusCode, headers, opaque, context: context2 }); 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, res: res2, opaque: opaque2, trailers, abort } = this; this.res = null; if (err || !res2?.readable) { util3.destroy(res2, err); } this.callback = null; this.runInAsyncScope(callback, 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 = util3.parseHeaders(trailers); res.end(); } onError(err) { const { res, callback, opaque, body } = this; removeSignal(this); this.factory = null; if (res) { this.res = null; util3.destroy(res, err); } else if (callback) { this.callback = null; queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); }); } if (body) { this.body = null; util3.destroy(body, err); } } }; function stream2(opts, factory, callback) { if (callback === void 0) { return new Promise((resolve31, reject) => { stream2.call(this, opts, factory, (err, data) => { return err ? reject(err) : resolve31(data); }); }); } try { const handler = new StreamHandler(opts, factory, callback); this.dispatch(opts, handler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(stream2, "stream"); module4.exports = stream2; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-pipeline.js var require_api_pipeline = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-pipeline.js"(exports, module4) { init_import_meta_url(); var { Readable: Readable11, Duplex: Duplex2, PassThrough: PassThrough4 } = __require("stream"); var assert58 = __require("assert"); var { AsyncResource } = __require("async_hooks"); var { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError } = require_errors(); var util3 = require_util(); var { addSignal, removeSignal } = require_abort_signal(); function noop() { } __name(noop, "noop"); var kResume = Symbol("resume"); var PipelineRequest = class extends Readable11 { static { __name(this, "PipelineRequest"); } 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 Readable11 { static { __name(this, "PipelineResponse"); } 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 { static { __name(this, "PipelineHandler"); } 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", noop); this.ret = new Duplex2({ readableObjectMode: opts.objectMode, autoDestroy: true, read: /* @__PURE__ */ __name(() => { const { body } = this; if (body?.resume) { body.resume(); } }, "read"), write: /* @__PURE__ */ __name((chunk, encoding, callback) => { const { req } = this; if (req.push(chunk, encoding) || req._readableState.destroyed) { callback(); } else { req[kResume] = callback; } }, "write"), destroy: /* @__PURE__ */ __name((err, callback) => { const { body, req, res, ret, abort } = this; if (!err && !ret._readableState.endEmitted) { err = new RequestAbortedError(); } if (abort && err) { abort(); } util3.destroy(body, err); util3.destroy(req, err); util3.destroy(res, err); removeSignal(this); callback(err); }, "destroy") }).on("prefinish", () => { const { req } = this; req.push(null); }); this.res = null; addSignal(this, signal); } onConnect(abort, context2) { const { res } = this; if (this.reason) { abort(this.reason); return; } assert58(!res, "pipeline cannot be retried"); this.abort = abort; this.context = context2; } onHeaders(statusCode, rawHeaders, resume) { const { opaque, handler, context: context2 } = this; if (statusCode < 200) { if (this.onInfo) { const headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers }); } return; } this.res = new PipelineResponse(resume); let body; try { this.handler = null; const headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders); body = this.runInAsyncScope(handler, null, { statusCode, headers, opaque, body: this.res, context: context2 }); } catch (err) { this.res.on("error", noop); 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; util3.destroy(ret, err); }).on("end", () => { const { ret } = this; ret.push(null); }).on("close", () => { const { ret } = this; if (!ret._readableState.ended) { util3.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; util3.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 PassThrough4().destroy(err); } } __name(pipeline, "pipeline"); module4.exports = pipeline; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-upgrade.js var require_api_upgrade = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-upgrade.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError, SocketError } = require_errors(); var { AsyncResource } = __require("async_hooks"); var assert58 = __require("assert"); var util3 = require_util(); var { kHTTP2Stream } = require_symbols(); var { addSignal, removeSignal } = require_abort_signal(); var UpgradeHandler = class extends AsyncResource { static { __name(this, "UpgradeHandler"); } 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, context2) { if (this.reason) { abort(this.reason); return; } assert58(this.callback); this.abort = abort; this.context = null; } onHeaders() { throw new SocketError("bad upgrade", null); } onUpgrade(statusCode, rawHeaders, socket) { assert58(socket[kHTTP2Stream] === true ? statusCode === 200 : statusCode === 101); const { callback, opaque, context: context2 } = this; removeSignal(this); this.callback = null; const headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders); this.runInAsyncScope(callback, null, null, { headers, socket, opaque, context: context2 }); } 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((resolve31, reject) => { upgrade.call(this, opts, (err, data) => { return err ? reject(err) : resolve31(data); }); }); } try { const upgradeHandler = new UpgradeHandler(opts, callback); const upgradeOpts = { ...opts, method: opts.method || "GET", upgrade: opts.protocol || "Websocket" }; this.dispatch(upgradeOpts, upgradeHandler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(upgrade, "upgrade"); module4.exports = upgrade; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-connect.js var require_api_connect = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/api-connect.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { AsyncResource } = __require("async_hooks"); var { InvalidArgumentError, SocketError } = require_errors(); var util3 = require_util(); var { addSignal, removeSignal } = require_abort_signal(); var ConnectHandler = class extends AsyncResource { static { __name(this, "ConnectHandler"); } 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, context2) { if (this.reason) { abort(this.reason); return; } assert58(this.callback); this.abort = abort; this.context = context2; } onHeaders() { throw new SocketError("bad connect", null); } onUpgrade(statusCode, rawHeaders, socket) { const { callback, opaque, context: context2 } = this; removeSignal(this); this.callback = null; let headers = rawHeaders; if (headers != null) { headers = this.responseHeaders === "raw" ? util3.parseRawHeaders(rawHeaders) : util3.parseHeaders(rawHeaders); } this.runInAsyncScope(callback, null, null, { statusCode, headers, socket, opaque, context: context2 }); } 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((resolve31, reject) => { connect.call(this, opts, (err, data) => { return err ? reject(err) : resolve31(data); }); }); } try { const connectHandler = new ConnectHandler(opts, callback); const connectOptions = { ...opts, method: "CONNECT" }; this.dispatch(connectOptions, connectHandler); } catch (err) { if (typeof callback !== "function") { throw err; } const opaque = opts?.opaque; queueMicrotask(() => callback(err, { opaque })); } } __name(connect, "connect"); module4.exports = connect; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/index.js var require_api = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/api/index.js"(exports, module4) { init_import_meta_url(); module4.exports.request = require_api_request(); module4.exports.stream = require_api_stream(); module4.exports.pipeline = require_api_pipeline(); module4.exports.upgrade = require_api_upgrade(); module4.exports.connect = require_api_connect(); } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-errors.js var require_mock_errors = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-errors.js"(exports, module4) { init_import_meta_url(); var { UndiciError } = require_errors(); var kMockNotMatchedError = Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"); var MockNotMatchedError = class extends UndiciError { static { __name(this, "MockNotMatchedError"); } constructor(message) { super(message); 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; } get [kMockNotMatchedError]() { return true; } }; module4.exports = { MockNotMatchedError }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-symbols.js var require_mock_symbols = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-symbols.js"(exports, module4) { init_import_meta_url(); module4.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"), kOriginalDispatch: Symbol("original dispatch"), kOrigin: Symbol("origin"), kIsMockActive: Symbol("is mock active"), kNetConnect: Symbol("net connect"), kGetNetConnect: Symbol("get net connect"), kConnected: Symbol("connected"), kIgnoreTrailingSlash: Symbol("ignore trailing slash"), kMockAgentMockCallHistoryInstance: Symbol("mock agent mock call history name"), kMockAgentRegisterCallHistory: Symbol("mock agent register mock call history"), kMockAgentAddCallHistoryLog: Symbol("mock agent add call history log"), kMockAgentIsCallHistoryEnabled: Symbol("mock agent is call history enabled"), kMockAgentAcceptsNonStandardSearchParameters: Symbol("mock agent accepts non standard search parameters"), kMockCallHistoryAddLog: Symbol("mock call history add log") }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-utils.js var require_mock_utils = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-utils.js"(exports, module4) { init_import_meta_url(); var { MockNotMatchedError } = require_mock_errors(); var { kDispatches, kMockAgent, kOriginalDispatch, kOrigin, kGetNetConnect } = require_mock_symbols(); var { serializePathWithQuery } = require_util(); var { STATUS_CODES: STATUS_CODES2 } = __require("http"); var { types: { isPromise: isPromise2 } } = __require("util"); var { InvalidArgumentError } = require_errors(); function matchValue(match3, value) { if (typeof match3 === "string") { return match3 === value; } if (match3 instanceof RegExp) { return match3.test(value); } if (typeof match3 === "function") { return match3(value) === true; } return false; } __name(matchValue, "matchValue"); function lowerCaseEntries(headers) { return Object.fromEntries( Object.entries(headers).map(([headerName, headerValue]) => { return [headerName.toLocaleLowerCase(), headerValue]; }) ); } __name(lowerCaseEntries, "lowerCaseEntries"); function getHeaderByName(headers, key) { if (Array.isArray(headers)) { for (let i7 = 0; i7 < headers.length; i7 += 2) { if (headers[i7].toLocaleLowerCase() === key.toLocaleLowerCase()) { return headers[i7 + 1]; } } return void 0; } else if (typeof headers.get === "function") { return headers.get(key); } else { return lowerCaseEntries(headers)[key.toLocaleLowerCase()]; } } __name(getHeaderByName, "getHeaderByName"); function buildHeadersFromArray(headers) { const clone2 = headers.slice(); const entries2 = []; for (let index = 0; index < clone2.length; index += 2) { entries2.push([clone2[index], clone2[index + 1]]); } return Object.fromEntries(entries2); } __name(buildHeadersFromArray, "buildHeadersFromArray"); 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; } __name(matchHeaders, "matchHeaders"); function normalizeSearchParams(query) { if (typeof query !== "string") { return query; } const originalQp = new URLSearchParams(query); const normalizedQp = new URLSearchParams(); for (let [key, value] of originalQp.entries()) { key = key.replace("[]", ""); const valueRepresentsString = /^(['"]).*\1$/.test(value); if (valueRepresentsString) { normalizedQp.append(key, value); continue; } if (value.includes(",")) { const values = value.split(","); for (const v8 of values) { normalizedQp.append(key, v8); } continue; } normalizedQp.append(key, value); } return normalizedQp; } __name(normalizeSearchParams, "normalizeSearchParams"); function safeUrl(path82) { if (typeof path82 !== "string") { return path82; } const pathSegments = path82.split("?", 3); if (pathSegments.length !== 2) { return path82; } const qp = new URLSearchParams(pathSegments.pop()); qp.sort(); return [...pathSegments, qp.toString()].join("?"); } __name(safeUrl, "safeUrl"); function matchKey(mockDispatch2, { path: path82, method, body, headers }) { const pathMatch = matchValue(mockDispatch2.path, path82); 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; } __name(matchKey, "matchKey"); 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 if (data) { return data.toString(); } else { return ""; } } __name(getResponseData, "getResponseData"); function getMockDispatch(mockDispatches, key) { const basePath = key.query ? serializePathWithQuery(key.path, key.query) : key.path; const resolvedPath2 = typeof basePath === "string" ? safeUrl(basePath) : basePath; const resolvedPathWithoutTrailingSlash = removeTrailingSlash2(resolvedPath2); let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path82, ignoreTrailingSlash }) => { return ignoreTrailingSlash ? matchValue(removeTrailingSlash2(safeUrl(path82)), resolvedPathWithoutTrailingSlash) : matchValue(safeUrl(path82), resolvedPath2); }); if (matchedMockDispatches.length === 0) { throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath2}'`); } 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 '${resolvedPath2}'`); } 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 '${resolvedPath2}'`); } 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 '${resolvedPath2}'`); } return matchedMockDispatches[0]; } __name(getMockDispatch, "getMockDispatch"); function addMockDispatch(mockDispatches, key, data, opts) { const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false, ...opts }; const replyData = typeof data === "function" ? { callback: data } : { ...data }; const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } }; mockDispatches.push(newMockDispatch); return newMockDispatch; } __name(addMockDispatch, "addMockDispatch"); 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); } } __name(deleteMockDispatch, "deleteMockDispatch"); function removeTrailingSlash2(path82) { while (path82.endsWith("/")) { path82 = path82.slice(0, -1); } if (path82.length === 0) { path82 = "/"; } return path82; } __name(removeTrailingSlash2, "removeTrailingSlash"); function buildKey(opts) { const { path: path82, method, body, headers, query } = opts; return { path: path82, method, body, headers, query }; } __name(buildKey, "buildKey"); function generateKeyValues(data) { const keys = Object.keys(data); const result = []; for (let i7 = 0; i7 < keys.length; ++i7) { const key = keys[i7]; const value = data[key]; const name2 = Buffer.from(`${key}`); if (Array.isArray(value)) { for (let j7 = 0; j7 < value.length; ++j7) { result.push(name2, Buffer.from(`${value[j7]}`)); } } else { result.push(name2, Buffer.from(`${value}`)); } } return result; } __name(generateKeyValues, "generateKeyValues"); function getStatusText(statusCode) { return STATUS_CODES2[statusCode] || "unknown"; } __name(getStatusText, "getStatusText"); async function getResponse(body) { const buffers = []; for await (const data of body) { buffers.push(data); } return Buffer.concat(buffers).toString("utf8"); } __name(getResponse, "getResponse"); 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, _data5 = data) { const optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers; const body = typeof _data5 === "function" ? _data5({ ...opts, headers: optsHeaders }) : _data5; if (isPromise2(body)) { return body.then((newData) => handleReply(mockDispatches, newData)); } 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); } __name(handleReply, "handleReply"); function resume() { } __name(resume, "resume"); return true; } __name(mockDispatch, "mockDispatch"); function buildMockDispatch() { const agent = this[kMockAgent]; const origin = this[kOrigin]; const originalDispatch = this[kOriginalDispatch]; return /* @__PURE__ */ __name(function dispatch(opts, handler) { if (agent.isMockActive) { try { mockDispatch.call(this, opts, handler); } catch (error2) { if (error2.code === "UND_MOCK_ERR_MOCK_NOT_MATCHED") { 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); } }, "dispatch"); } __name(buildMockDispatch, "buildMockDispatch"); function checkNetConnect(netConnect, origin) { const url4 = new URL(origin); if (netConnect === true) { return true; } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url4.host))) { return true; } return false; } __name(checkNetConnect, "checkNetConnect"); function buildAndValidateMockOptions(opts) { const { agent, ...mockOptions } = opts; if ("enableCallHistory" in mockOptions && typeof mockOptions.enableCallHistory !== "boolean") { throw new InvalidArgumentError("options.enableCallHistory must to be a boolean"); } if ("acceptNonStandardSearchParameters" in mockOptions && typeof mockOptions.acceptNonStandardSearchParameters !== "boolean") { throw new InvalidArgumentError("options.acceptNonStandardSearchParameters must to be a boolean"); } if ("ignoreTrailingSlash" in mockOptions && typeof mockOptions.ignoreTrailingSlash !== "boolean") { throw new InvalidArgumentError("options.ignoreTrailingSlash must to be a boolean"); } return mockOptions; } __name(buildAndValidateMockOptions, "buildAndValidateMockOptions"); module4.exports = { getResponseData, getMockDispatch, addMockDispatch, deleteMockDispatch, buildKey, generateKeyValues, matchValue, getResponse, getStatusText, mockDispatch, buildMockDispatch, checkNetConnect, buildAndValidateMockOptions, getHeaderByName, buildHeadersFromArray, normalizeSearchParams }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-interceptor.js var require_mock_interceptor = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-interceptor.js"(exports, module4) { init_import_meta_url(); var { getResponseData, buildKey, addMockDispatch } = require_mock_utils(); var { kDispatches, kDispatchKey, kDefaultHeaders, kDefaultTrailers, kContentLength, kMockDispatch, kIgnoreTrailingSlash } = require_mock_symbols(); var { InvalidArgumentError } = require_errors(); var { serializePathWithQuery } = require_util(); var MockScope = class { static { __name(this, "MockScope"); } 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 { static { __name(this, "MockInterceptor"); } 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 = serializePathWithQuery(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[kIgnoreTrailingSlash] = opts.ignoreTrailingSlash ?? false; 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 = /* @__PURE__ */ __name((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) }; }, "wrappedDefaultsCallback"); const newMockDispatch2 = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] }); 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, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] }); 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 }, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] }); 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; } }; module4.exports.MockInterceptor = MockInterceptor; module4.exports.MockScope = MockScope; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-client.js var require_mock_client = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-client.js"(exports, module4) { init_import_meta_url(); var { promisify: promisify3 } = __require("util"); var Client2 = require_client(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected, kIgnoreTrailingSlash } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockClient = class extends Client2 { static { __name(this, "MockClient"); } constructor(origin, opts) { if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } super(origin, opts); this[kMockAgent] = opts.agent; this[kOrigin] = origin; this[kIgnoreTrailingSlash] = opts.ignoreTrailingSlash ?? false; 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 && { ignoreTrailingSlash: this[kIgnoreTrailingSlash], ...opts }, this[kDispatches] ); } cleanMocks() { this[kDispatches] = []; } async [kClose]() { await promisify3(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module4.exports = MockClient; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-call-history.js var require_mock_call_history = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-call-history.js"(exports, module4) { init_import_meta_url(); var { kMockCallHistoryAddLog } = require_mock_symbols(); var { InvalidArgumentError } = require_errors(); function handleFilterCallsWithOptions(criteria, options, handler, store) { switch (options.operator) { case "OR": store.push(...handler(criteria)); return store; case "AND": return handler.call({ logs: store }, criteria); default: throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'"); } } __name(handleFilterCallsWithOptions, "handleFilterCallsWithOptions"); function buildAndValidateFilterCallsOptions(options = {}) { const finalOptions = {}; if ("operator" in options) { if (typeof options.operator !== "string" || options.operator.toUpperCase() !== "OR" && options.operator.toUpperCase() !== "AND") { throw new InvalidArgumentError("options.operator must to be a case insensitive string equal to 'OR' or 'AND'"); } return { ...finalOptions, operator: options.operator.toUpperCase() }; } return finalOptions; } __name(buildAndValidateFilterCallsOptions, "buildAndValidateFilterCallsOptions"); function makeFilterCalls(parameterName) { return (parameterValue) => { if (typeof parameterValue === "string" || parameterValue == null) { return this.logs.filter((log2) => { return log2[parameterName] === parameterValue; }); } if (parameterValue instanceof RegExp) { return this.logs.filter((log2) => { return parameterValue.test(log2[parameterName]); }); } throw new InvalidArgumentError(`${parameterName} parameter should be one of string, regexp, undefined or null`); }; } __name(makeFilterCalls, "makeFilterCalls"); function computeUrlWithMaybeSearchParameters(requestInit) { try { const url4 = new URL(requestInit.path, requestInit.origin); if (url4.search.length !== 0) { return url4; } url4.search = new URLSearchParams(requestInit.query).toString(); return url4; } catch (error2) { throw new InvalidArgumentError("An error occurred when computing MockCallHistoryLog.url", { cause: error2 }); } } __name(computeUrlWithMaybeSearchParameters, "computeUrlWithMaybeSearchParameters"); var MockCallHistoryLog = class { static { __name(this, "MockCallHistoryLog"); } constructor(requestInit = {}) { this.body = requestInit.body; this.headers = requestInit.headers; this.method = requestInit.method; const url4 = computeUrlWithMaybeSearchParameters(requestInit); this.fullUrl = url4.toString(); this.origin = url4.origin; this.path = url4.pathname; this.searchParams = Object.fromEntries(url4.searchParams); this.protocol = url4.protocol; this.host = url4.host; this.port = url4.port; this.hash = url4.hash; } toMap() { return /* @__PURE__ */ new Map( [ ["protocol", this.protocol], ["host", this.host], ["port", this.port], ["origin", this.origin], ["path", this.path], ["hash", this.hash], ["searchParams", this.searchParams], ["fullUrl", this.fullUrl], ["method", this.method], ["body", this.body], ["headers", this.headers] ] ); } toString() { const options = { betweenKeyValueSeparator: "->", betweenPairSeparator: "|" }; let result = ""; this.toMap().forEach((value, key) => { if (typeof value === "string" || value === void 0 || value === null) { result = `${result}${key}${options.betweenKeyValueSeparator}${value}${options.betweenPairSeparator}`; } if (typeof value === "object" && value !== null || Array.isArray(value)) { result = `${result}${key}${options.betweenKeyValueSeparator}${JSON.stringify(value)}${options.betweenPairSeparator}`; } }); return result.slice(0, -1); } }; var MockCallHistory = class { static { __name(this, "MockCallHistory"); } logs = []; calls() { return this.logs; } firstCall() { return this.logs.at(0); } lastCall() { return this.logs.at(-1); } nthCall(number) { if (typeof number !== "number") { throw new InvalidArgumentError("nthCall must be called with a number"); } if (!Number.isInteger(number)) { throw new InvalidArgumentError("nthCall must be called with an integer"); } if (Math.sign(number) !== 1) { throw new InvalidArgumentError("nthCall must be called with a positive value. use firstCall or lastCall instead"); } return this.logs.at(number - 1); } filterCalls(criteria, options) { if (this.logs.length === 0) { return this.logs; } if (typeof criteria === "function") { return this.logs.filter(criteria); } if (criteria instanceof RegExp) { return this.logs.filter((log2) => { return criteria.test(log2.toString()); }); } if (typeof criteria === "object" && criteria !== null) { if (Object.keys(criteria).length === 0) { return this.logs; } const finalOptions = { operator: "OR", ...buildAndValidateFilterCallsOptions(options) }; let maybeDuplicatedLogsFiltered = []; if ("protocol" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered); } if ("host" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered); } if ("port" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered); } if ("origin" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered); } if ("path" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered); } if ("hash" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered); } if ("fullUrl" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered); } if ("method" in criteria) { maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered); } const uniqLogsFiltered = [...new Set(maybeDuplicatedLogsFiltered)]; return uniqLogsFiltered; } throw new InvalidArgumentError("criteria parameter should be one of function, regexp, or object"); } filterCallsByProtocol = makeFilterCalls.call(this, "protocol"); filterCallsByHost = makeFilterCalls.call(this, "host"); filterCallsByPort = makeFilterCalls.call(this, "port"); filterCallsByOrigin = makeFilterCalls.call(this, "origin"); filterCallsByPath = makeFilterCalls.call(this, "path"); filterCallsByHash = makeFilterCalls.call(this, "hash"); filterCallsByFullUrl = makeFilterCalls.call(this, "fullUrl"); filterCallsByMethod = makeFilterCalls.call(this, "method"); clear() { this.logs = []; } [kMockCallHistoryAddLog](requestInit) { const log2 = new MockCallHistoryLog(requestInit); this.logs.push(log2); return log2; } *[Symbol.iterator]() { for (const log2 of this.calls()) { yield log2; } } }; module4.exports.MockCallHistory = MockCallHistory; module4.exports.MockCallHistoryLog = MockCallHistoryLog; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-pool.js var require_mock_pool = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-pool.js"(exports, module4) { init_import_meta_url(); var { promisify: promisify3 } = __require("util"); var Pool = require_pool(); var { buildMockDispatch } = require_mock_utils(); var { kDispatches, kMockAgent, kClose, kOriginalClose, kOrigin, kOriginalDispatch, kConnected, kIgnoreTrailingSlash } = require_mock_symbols(); var { MockInterceptor } = require_mock_interceptor(); var Symbols = require_symbols(); var { InvalidArgumentError } = require_errors(); var MockPool = class extends Pool { static { __name(this, "MockPool"); } constructor(origin, opts) { if (!opts || !opts.agent || typeof opts.agent.dispatch !== "function") { throw new InvalidArgumentError("Argument opts.agent must implement Agent"); } super(origin, opts); this[kMockAgent] = opts.agent; this[kOrigin] = origin; this[kIgnoreTrailingSlash] = opts.ignoreTrailingSlash ?? false; 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 && { ignoreTrailingSlash: this[kIgnoreTrailingSlash], ...opts }, this[kDispatches] ); } cleanMocks() { this[kDispatches] = []; } async [kClose]() { await promisify3(this[kOriginalClose])(); this[kConnected] = 0; this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module4.exports = MockPool; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/pending-interceptors-formatter.js var require_pending_interceptors_formatter = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module4) { init_import_meta_url(); var { Transform: Transform2 } = __require("stream"); var { Console: Console2 } = __require("console"); var PERSISTENT = process.versions.icu ? "\u2705" : "Y "; var NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N "; module4.exports = class PendingInterceptorsFormatter { static { __name(this, "PendingInterceptorsFormatter"); } constructor({ disableColors } = {}) { this.transform = new Transform2({ transform(chunk, _enc, cb2) { cb2(null, chunk); } }); this.logger = new Console2({ stdout: this.transform, inspectOptions: { colors: !disableColors && !process.env.CI } }); } format(pendingInterceptors) { const withPrettyHeaders = pendingInterceptors.map( ({ method, path: path82, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ Method: method, Origin: origin, Path: path82, "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@7.18.2/node_modules/undici/lib/mock/mock-agent.js var require_mock_agent = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/mock-agent.js"(exports, module4) { init_import_meta_url(); var { kClients } = require_symbols(); var Agent = require_agent(); var { kAgent, kMockAgentSet, kMockAgentGet, kDispatches, kIsMockActive, kNetConnect, kGetNetConnect, kOptions, kFactory, kMockAgentRegisterCallHistory, kMockAgentIsCallHistoryEnabled, kMockAgentAddCallHistoryLog, kMockAgentMockCallHistoryInstance, kMockAgentAcceptsNonStandardSearchParameters, kMockCallHistoryAddLog, kIgnoreTrailingSlash } = require_mock_symbols(); var MockClient = require_mock_client(); var MockPool = require_mock_pool(); var { matchValue, normalizeSearchParams, buildAndValidateMockOptions } = require_mock_utils(); var { InvalidArgumentError, UndiciError } = require_errors(); var Dispatcher2 = require_dispatcher(); var PendingInterceptorsFormatter = require_pending_interceptors_formatter(); var { MockCallHistory } = require_mock_call_history(); var MockAgent = class extends Dispatcher2 { static { __name(this, "MockAgent"); } constructor(opts = {}) { super(opts); const mockOptions = buildAndValidateMockOptions(opts); this[kNetConnect] = true; this[kIsMockActive] = true; this[kMockAgentIsCallHistoryEnabled] = mockOptions.enableCallHistory ?? false; this[kMockAgentAcceptsNonStandardSearchParameters] = mockOptions.acceptNonStandardSearchParameters ?? false; this[kIgnoreTrailingSlash] = mockOptions.ignoreTrailingSlash ?? false; 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] = mockOptions; if (this[kMockAgentIsCallHistoryEnabled]) { this[kMockAgentRegisterCallHistory](); } } get(origin) { const originKey = this[kIgnoreTrailingSlash] ? origin.replace(/\/$/, "") : origin; let dispatcher = this[kMockAgentGet](originKey); if (!dispatcher) { dispatcher = this[kFactory](originKey); this[kMockAgentSet](originKey, dispatcher); } return dispatcher; } dispatch(opts, handler) { this.get(opts.origin); this[kMockAgentAddCallHistoryLog](opts); const acceptNonStandardSearchParameters = this[kMockAgentAcceptsNonStandardSearchParameters]; const dispatchOpts = { ...opts }; if (acceptNonStandardSearchParameters && dispatchOpts.path) { const [path82, searchParams] = dispatchOpts.path.split("?"); const normalizedSearchParams = normalizeSearchParams(searchParams, acceptNonStandardSearchParameters); dispatchOpts.path = `${path82}?${normalizedSearchParams}`; } return this[kAgent].dispatch(dispatchOpts, handler); } async close() { this.clearCallHistory(); 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; } enableCallHistory() { this[kMockAgentIsCallHistoryEnabled] = true; return this; } disableCallHistory() { this[kMockAgentIsCallHistoryEnabled] = false; return this; } getCallHistory() { return this[kMockAgentMockCallHistoryInstance]; } clearCallHistory() { if (this[kMockAgentMockCallHistoryInstance] !== void 0) { this[kMockAgentMockCallHistoryInstance].clear(); } } // This is required to bypass issues caused by using global symbols - see: // https://github.com/nodejs/undici/issues/1447 get isMockActive() { return this[kIsMockActive]; } [kMockAgentRegisterCallHistory]() { if (this[kMockAgentMockCallHistoryInstance] === void 0) { this[kMockAgentMockCallHistoryInstance] = new MockCallHistory(); } } [kMockAgentAddCallHistoryLog](opts) { if (this[kMockAgentIsCallHistoryEnabled]) { this[kMockAgentRegisterCallHistory](); this[kMockAgentMockCallHistoryInstance][kMockCallHistoryAddLog](opts); } } [kMockAgentSet](origin, dispatcher) { this[kClients].set(origin, { count: 0, 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 result = this[kClients].get(origin); if (result?.dispatcher) { return result.dispatcher; } if (typeof origin !== "string") { const dispatcher = this[kFactory]("http://localhost:9999"); this[kMockAgentSet](origin, dispatcher); return dispatcher; } for (const [keyMatcher, result2] of Array.from(this[kClients])) { if (result2 && typeof keyMatcher !== "string" && matchValue(keyMatcher, origin)) { const dispatcher = this[kFactory](origin); this[kMockAgentSet](origin, dispatcher); dispatcher[kDispatches] = result2.dispatcher[kDispatches]; return dispatcher; } } } [kGetNetConnect]() { return this[kNetConnect]; } pendingInterceptors() { const mockAgentClients = this[kClients]; return Array.from(mockAgentClients.entries()).flatMap(([origin, result]) => result.dispatcher[kDispatches].map((dispatch) => ({ ...dispatch, origin }))).filter(({ pending }) => pending); } assertNoPendingInterceptors({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { const pending = this.pendingInterceptors(); if (pending.length === 0) { return; } throw new UndiciError( pending.length === 1 ? `1 interceptor is pending: ${pendingInterceptorsFormatter.format(pending)}`.trim() : `${pending.length} interceptors are pending: ${pendingInterceptorsFormatter.format(pending)}`.trim() ); } }; module4.exports = MockAgent; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/snapshot-utils.js var require_snapshot_utils = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/snapshot-utils.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError } = require_errors(); var { runtimeFeatures } = require_runtime_features(); function createHeaderFilters(matchOptions = {}) { const { ignoreHeaders = [], excludeHeaders = [], matchHeaders = [], caseSensitive = false } = matchOptions; return { ignore: new Set(ignoreHeaders.map((header) => caseSensitive ? header : header.toLowerCase())), exclude: new Set(excludeHeaders.map((header) => caseSensitive ? header : header.toLowerCase())), match: new Set(matchHeaders.map((header) => caseSensitive ? header : header.toLowerCase())) }; } __name(createHeaderFilters, "createHeaderFilters"); var crypto9 = runtimeFeatures.has("crypto") ? __require("crypto") : null; var hashId = crypto9?.hash ? (value) => crypto9.hash("sha256", value, "base64url") : (value) => Buffer.from(value).toString("base64url"); function isUndiciHeaders(headers) { return Array.isArray(headers) && (headers.length & 1) === 0; } __name(isUndiciHeaders, "isUndiciHeaders"); function isUrlExcludedFactory(excludePatterns = []) { if (excludePatterns.length === 0) { return () => false; } return /* @__PURE__ */ __name(function isUrlExcluded(url4) { let urlLowerCased; for (const pattern of excludePatterns) { if (typeof pattern === "string") { if (!urlLowerCased) { urlLowerCased = url4.toLowerCase(); } if (urlLowerCased.includes(pattern.toLowerCase())) { return true; } } else if (pattern instanceof RegExp) { if (pattern.test(url4)) { return true; } } } return false; }, "isUrlExcluded"); } __name(isUrlExcludedFactory, "isUrlExcludedFactory"); function normalizeHeaders(headers) { const normalizedHeaders = {}; if (!headers) return normalizedHeaders; if (isUndiciHeaders(headers)) { for (let i7 = 0; i7 < headers.length; i7 += 2) { const key = headers[i7]; const value = headers[i7 + 1]; if (key && value !== void 0) { const keyStr = Buffer.isBuffer(key) ? key.toString() : key; const valueStr = Buffer.isBuffer(value) ? value.toString() : value; normalizedHeaders[keyStr.toLowerCase()] = valueStr; } } return normalizedHeaders; } if (headers && typeof headers === "object") { for (const [key, value] of Object.entries(headers)) { if (key && typeof key === "string") { normalizedHeaders[key.toLowerCase()] = Array.isArray(value) ? value.join(", ") : String(value); } } } return normalizedHeaders; } __name(normalizeHeaders, "normalizeHeaders"); var validSnapshotModes = ( /** @type {const} */ ["record", "playback", "update"] ); function validateSnapshotMode(mode) { if (!validSnapshotModes.includes(mode)) { throw new InvalidArgumentError(`Invalid snapshot mode: ${mode}. Must be one of: ${validSnapshotModes.join(", ")}`); } } __name(validateSnapshotMode, "validateSnapshotMode"); module4.exports = { createHeaderFilters, hashId, isUndiciHeaders, normalizeHeaders, isUrlExcludedFactory, validateSnapshotMode }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/snapshot-recorder.js var require_snapshot_recorder = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/snapshot-recorder.js"(exports, module4) { init_import_meta_url(); var { writeFile: writeFile15, readFile: readFile19, mkdir: mkdir5 } = __require("fs/promises"); var { dirname: dirname21, resolve: resolve31 } = __require("path"); var { setTimeout: setTimeout8, clearTimeout: clearTimeout2 } = __require("timers"); var { InvalidArgumentError, UndiciError } = require_errors(); var { hashId, isUrlExcludedFactory, normalizeHeaders, createHeaderFilters } = require_snapshot_utils(); function formatRequestKey(opts, headerFilters, matchOptions = {}) { const url4 = new URL(opts.path, opts.origin); const normalized = opts._normalizedHeaders || normalizeHeaders(opts.headers); if (!opts._normalizedHeaders) { opts._normalizedHeaders = normalized; } return { method: opts.method || "GET", url: matchOptions.matchQuery !== false ? url4.toString() : `${url4.origin}${url4.pathname}`, headers: filterHeadersForMatching(normalized, headerFilters, matchOptions), body: matchOptions.matchBody !== false && opts.body ? String(opts.body) : "" }; } __name(formatRequestKey, "formatRequestKey"); function filterHeadersForMatching(headers, headerFilters, matchOptions = {}) { if (!headers || typeof headers !== "object") return {}; const { caseSensitive = false } = matchOptions; const filtered = {}; const { ignore: ignore2, exclude, match: match3 } = headerFilters; for (const [key, value] of Object.entries(headers)) { const headerKey = caseSensitive ? key : key.toLowerCase(); if (exclude.has(headerKey)) continue; if (ignore2.has(headerKey)) continue; if (match3.size !== 0) { if (!match3.has(headerKey)) continue; } filtered[headerKey] = value; } return filtered; } __name(filterHeadersForMatching, "filterHeadersForMatching"); function filterHeadersForStorage(headers, headerFilters, matchOptions = {}) { if (!headers || typeof headers !== "object") return {}; const { caseSensitive = false } = matchOptions; const filtered = {}; const { exclude: excludeSet } = headerFilters; for (const [key, value] of Object.entries(headers)) { const headerKey = caseSensitive ? key : key.toLowerCase(); if (excludeSet.has(headerKey)) continue; filtered[headerKey] = value; } return filtered; } __name(filterHeadersForStorage, "filterHeadersForStorage"); function createRequestHash(formattedRequest) { const parts = [ formattedRequest.method, formattedRequest.url ]; if (formattedRequest.headers && typeof formattedRequest.headers === "object") { const headerKeys = Object.keys(formattedRequest.headers).sort(); for (const key of headerKeys) { const values = Array.isArray(formattedRequest.headers[key]) ? formattedRequest.headers[key] : [formattedRequest.headers[key]]; parts.push(key); for (const value of values.sort()) { parts.push(String(value)); } } } parts.push(formattedRequest.body); const content = parts.join("|"); return hashId(content); } __name(createRequestHash, "createRequestHash"); var SnapshotRecorder = class { static { __name(this, "SnapshotRecorder"); } /** @type {NodeJS.Timeout | null} */ #flushTimeout; /** @type {import('./snapshot-utils').IsUrlExcluded} */ #isUrlExcluded; /** @type {Map} */ #snapshots = /* @__PURE__ */ new Map(); /** @type {string|undefined} */ #snapshotPath; /** @type {number} */ #maxSnapshots = Infinity; /** @type {boolean} */ #autoFlush = false; /** @type {import('./snapshot-utils').HeaderFilters} */ #headerFilters; /** * Creates a new SnapshotRecorder instance * @param {SnapshotRecorderOptions&SnapshotRecorderMatchOptions} [options={}] - Configuration options for the recorder */ constructor(options = {}) { this.#snapshotPath = options.snapshotPath; this.#maxSnapshots = options.maxSnapshots || Infinity; this.#autoFlush = options.autoFlush || false; this.flushInterval = options.flushInterval || 3e4; this._flushTimer = null; this.matchOptions = { matchHeaders: options.matchHeaders || [], // empty means match all headers ignoreHeaders: options.ignoreHeaders || [], excludeHeaders: options.excludeHeaders || [], matchBody: options.matchBody !== false, // default: true matchQuery: options.matchQuery !== false, // default: true caseSensitive: options.caseSensitive || false }; this.#headerFilters = createHeaderFilters(this.matchOptions); this.shouldRecord = options.shouldRecord || (() => true); this.shouldPlayback = options.shouldPlayback || (() => true); this.#isUrlExcluded = isUrlExcludedFactory(options.excludeUrls); if (this.#autoFlush && this.#snapshotPath) { this.#startAutoFlush(); } } /** * Records a request-response interaction * @param {SnapshotRequestOptions} requestOpts - Request options * @param {SnapshotEntryResponse} response - Response data to record * @return {Promise} - Resolves when the recording is complete */ async record(requestOpts, response) { if (!this.shouldRecord(requestOpts)) { return; } if (this.isUrlExcluded(requestOpts)) { return; } const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions); const hash = createRequestHash(request4); const normalizedHeaders = normalizeHeaders(response.headers); const responseData = { statusCode: response.statusCode, headers: filterHeadersForStorage(normalizedHeaders, this.#headerFilters, this.matchOptions), body: Buffer.isBuffer(response.body) ? response.body.toString("base64") : Buffer.from(String(response.body || "")).toString("base64"), trailers: response.trailers }; if (this.#snapshots.size >= this.#maxSnapshots && !this.#snapshots.has(hash)) { const oldestKey = this.#snapshots.keys().next().value; this.#snapshots.delete(oldestKey); } const existingSnapshot = this.#snapshots.get(hash); if (existingSnapshot && existingSnapshot.responses) { existingSnapshot.responses.push(responseData); existingSnapshot.timestamp = (/* @__PURE__ */ new Date()).toISOString(); } else { this.#snapshots.set(hash, { request: request4, responses: [responseData], // Always store as array for consistency callCount: 0, timestamp: (/* @__PURE__ */ new Date()).toISOString() }); } if (this.#autoFlush && this.#snapshotPath) { this.#scheduleFlush(); } } /** * Checks if a URL should be excluded from recording/playback * @param {SnapshotRequestOptions} requestOpts - Request options to check * @returns {boolean} - True if URL is excluded */ isUrlExcluded(requestOpts) { const url4 = new URL(requestOpts.path, requestOpts.origin).toString(); return this.#isUrlExcluded(url4); } /** * Finds a matching snapshot for the given request * Returns the appropriate response based on call count for sequential responses * * @param {SnapshotRequestOptions} requestOpts - Request options to match * @returns {SnapshotEntry&Record<'response', SnapshotEntryResponse>|undefined} - Matching snapshot response or undefined if not found */ findSnapshot(requestOpts) { if (!this.shouldPlayback(requestOpts)) { return void 0; } if (this.isUrlExcluded(requestOpts)) { return void 0; } const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions); const hash = createRequestHash(request4); const snapshot = this.#snapshots.get(hash); if (!snapshot) return void 0; const currentCallCount = snapshot.callCount || 0; const responseIndex = Math.min(currentCallCount, snapshot.responses.length - 1); snapshot.callCount = currentCallCount + 1; return { ...snapshot, response: snapshot.responses[responseIndex] }; } /** * Loads snapshots from file * @param {string} [filePath] - Optional file path to load snapshots from * @return {Promise} - Resolves when snapshots are loaded */ async loadSnapshots(filePath) { const path82 = filePath || this.#snapshotPath; if (!path82) { throw new InvalidArgumentError("Snapshot path is required"); } try { const data = await readFile19(resolve31(path82), "utf8"); const parsed = JSON.parse(data); if (Array.isArray(parsed)) { this.#snapshots.clear(); for (const { hash, snapshot } of parsed) { this.#snapshots.set(hash, snapshot); } } else { this.#snapshots = new Map(Object.entries(parsed)); } } catch (error2) { if (error2.code === "ENOENT") { this.#snapshots.clear(); } else { throw new UndiciError(`Failed to load snapshots from ${path82}`, { cause: error2 }); } } } /** * Saves snapshots to file * * @param {string} [filePath] - Optional file path to save snapshots * @returns {Promise} - Resolves when snapshots are saved */ async saveSnapshots(filePath) { const path82 = filePath || this.#snapshotPath; if (!path82) { throw new InvalidArgumentError("Snapshot path is required"); } const resolvedPath2 = resolve31(path82); await mkdir5(dirname21(resolvedPath2), { recursive: true }); const data = Array.from(this.#snapshots.entries()).map(([hash, snapshot]) => ({ hash, snapshot })); await writeFile15(resolvedPath2, JSON.stringify(data, null, 2), { flush: true }); } /** * Clears all recorded snapshots * @returns {void} */ clear() { this.#snapshots.clear(); } /** * Gets all recorded snapshots * @return {Array} - Array of all recorded snapshots */ getSnapshots() { return Array.from(this.#snapshots.values()); } /** * Gets snapshot count * @return {number} - Number of recorded snapshots */ size() { return this.#snapshots.size; } /** * Resets call counts for all snapshots (useful for test cleanup) * @returns {void} */ resetCallCounts() { for (const snapshot of this.#snapshots.values()) { snapshot.callCount = 0; } } /** * Deletes a specific snapshot by request options * @param {SnapshotRequestOptions} requestOpts - Request options to match * @returns {boolean} - True if snapshot was deleted, false if not found */ deleteSnapshot(requestOpts) { const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions); const hash = createRequestHash(request4); return this.#snapshots.delete(hash); } /** * Gets information about a specific snapshot * @param {SnapshotRequestOptions} requestOpts - Request options to match * @returns {SnapshotInfo|null} - Snapshot information or null if not found */ getSnapshotInfo(requestOpts) { const request4 = formatRequestKey(requestOpts, this.#headerFilters, this.matchOptions); const hash = createRequestHash(request4); const snapshot = this.#snapshots.get(hash); if (!snapshot) return null; return { hash, request: snapshot.request, responseCount: snapshot.responses ? snapshot.responses.length : snapshot.response ? 1 : 0, // .response for legacy snapshots callCount: snapshot.callCount || 0, timestamp: snapshot.timestamp }; } /** * Replaces all snapshots with new data (full replacement) * @param {Array<{hash: string; snapshot: SnapshotEntry}>|Record} snapshotData - New snapshot data to replace existing ones * @returns {void} */ replaceSnapshots(snapshotData) { this.#snapshots.clear(); if (Array.isArray(snapshotData)) { for (const { hash, snapshot } of snapshotData) { this.#snapshots.set(hash, snapshot); } } else if (snapshotData && typeof snapshotData === "object") { this.#snapshots = new Map(Object.entries(snapshotData)); } } /** * Starts the auto-flush timer * @returns {void} */ #startAutoFlush() { return this.#scheduleFlush(); } /** * Stops the auto-flush timer * @returns {void} */ #stopAutoFlush() { if (this.#flushTimeout) { clearTimeout2(this.#flushTimeout); this.saveSnapshots().catch(() => { }); this.#flushTimeout = null; } } /** * Schedules a flush (debounced to avoid excessive writes) */ #scheduleFlush() { this.#flushTimeout = setTimeout8(() => { this.saveSnapshots().catch(() => { }); if (this.#autoFlush) { this.#flushTimeout?.refresh(); } else { this.#flushTimeout = null; } }, 1e3); } /** * Cleanup method to stop timers * @returns {void} */ destroy() { this.#stopAutoFlush(); if (this.#flushTimeout) { clearTimeout2(this.#flushTimeout); this.#flushTimeout = null; } } /** * Async close method that saves all recordings and performs cleanup * @returns {Promise} */ async close() { if (this.#snapshotPath && this.#snapshots.size !== 0) { await this.saveSnapshots(); } this.destroy(); } }; module4.exports = { SnapshotRecorder, formatRequestKey, createRequestHash, filterHeadersForMatching, filterHeadersForStorage, createHeaderFilters }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/snapshot-agent.js var require_snapshot_agent = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/mock/snapshot-agent.js"(exports, module4) { init_import_meta_url(); var Agent = require_agent(); var MockAgent = require_mock_agent(); var { SnapshotRecorder } = require_snapshot_recorder(); var WrapHandler = require_wrap_handler(); var { InvalidArgumentError, UndiciError } = require_errors(); var { validateSnapshotMode } = require_snapshot_utils(); var kSnapshotRecorder = Symbol("kSnapshotRecorder"); var kSnapshotMode = Symbol("kSnapshotMode"); var kSnapshotPath = Symbol("kSnapshotPath"); var kSnapshotLoaded = Symbol("kSnapshotLoaded"); var kRealAgent = Symbol("kRealAgent"); var warningEmitted2 = false; var SnapshotAgent = class extends MockAgent { static { __name(this, "SnapshotAgent"); } constructor(opts = {}) { if (!warningEmitted2) { process.emitWarning( "SnapshotAgent is experimental and subject to change", "ExperimentalWarning" ); warningEmitted2 = true; } const { mode = "record", snapshotPath = null, ...mockAgentOpts } = opts; super(mockAgentOpts); validateSnapshotMode(mode); if ((mode === "playback" || mode === "update") && !snapshotPath) { throw new InvalidArgumentError(`snapshotPath is required when mode is '${mode}'`); } this[kSnapshotMode] = mode; this[kSnapshotPath] = snapshotPath; this[kSnapshotRecorder] = new SnapshotRecorder({ snapshotPath: this[kSnapshotPath], mode: this[kSnapshotMode], maxSnapshots: opts.maxSnapshots, autoFlush: opts.autoFlush, flushInterval: opts.flushInterval, matchHeaders: opts.matchHeaders, ignoreHeaders: opts.ignoreHeaders, excludeHeaders: opts.excludeHeaders, matchBody: opts.matchBody, matchQuery: opts.matchQuery, caseSensitive: opts.caseSensitive, shouldRecord: opts.shouldRecord, shouldPlayback: opts.shouldPlayback, excludeUrls: opts.excludeUrls }); this[kSnapshotLoaded] = false; if (this[kSnapshotMode] === "record" || this[kSnapshotMode] === "update" || this[kSnapshotMode] === "playback" && opts.excludeUrls && opts.excludeUrls.length > 0) { this[kRealAgent] = new Agent(opts); } if ((this[kSnapshotMode] === "playback" || this[kSnapshotMode] === "update") && this[kSnapshotPath]) { this.loadSnapshots().catch(() => { }); } } dispatch(opts, handler) { handler = WrapHandler.wrap(handler); const mode = this[kSnapshotMode]; if (this[kSnapshotRecorder].isUrlExcluded(opts)) { return this[kRealAgent].dispatch(opts, handler); } if (mode === "playback" || mode === "update") { if (!this[kSnapshotLoaded]) { return this.#asyncDispatch(opts, handler); } const snapshot = this[kSnapshotRecorder].findSnapshot(opts); if (snapshot) { return this.#replaySnapshot(snapshot, handler); } else if (mode === "update") { return this.#recordAndReplay(opts, handler); } else { const error2 = new UndiciError(`No snapshot found for ${opts.method || "GET"} ${opts.path}`); if (handler.onError) { handler.onError(error2); return; } throw error2; } } else if (mode === "record") { return this.#recordAndReplay(opts, handler); } } /** * Async version of dispatch for when we need to load snapshots first */ async #asyncDispatch(opts, handler) { await this.loadSnapshots(); return this.dispatch(opts, handler); } /** * Records a real request and replays the response */ #recordAndReplay(opts, handler) { const responseData = { statusCode: null, headers: {}, trailers: {}, body: [] }; const self2 = this; const recordingHandler = { onRequestStart(controller, context2) { return handler.onRequestStart(controller, { ...context2, history: this.history }); }, onRequestUpgrade(controller, statusCode, headers, socket) { return handler.onRequestUpgrade(controller, statusCode, headers, socket); }, onResponseStart(controller, statusCode, headers, statusMessage) { responseData.statusCode = statusCode; responseData.headers = headers; return handler.onResponseStart(controller, statusCode, headers, statusMessage); }, onResponseData(controller, chunk) { responseData.body.push(chunk); return handler.onResponseData(controller, chunk); }, onResponseEnd(controller, trailers) { responseData.trailers = trailers; const responseBody = Buffer.concat(responseData.body); self2[kSnapshotRecorder].record(opts, { statusCode: responseData.statusCode, headers: responseData.headers, body: responseBody, trailers: responseData.trailers }).then(() => handler.onResponseEnd(controller, trailers)).catch((error2) => handler.onResponseError(controller, error2)); } }; const agent = this[kRealAgent]; return agent.dispatch(opts, recordingHandler); } /** * Replays a recorded response * * @param {Object} snapshot - The recorded snapshot to replay. * @param {Object} handler - The handler to call with the response data. * @returns {void} */ #replaySnapshot(snapshot, handler) { try { const { response } = snapshot; const controller = { pause() { }, resume() { }, abort(reason) { this.aborted = true; this.reason = reason; }, aborted: false, paused: false }; handler.onRequestStart(controller); handler.onResponseStart(controller, response.statusCode, response.headers); const body = Buffer.from(response.body, "base64"); handler.onResponseData(controller, body); handler.onResponseEnd(controller, response.trailers); } catch (error2) { handler.onError?.(error2); } } /** * Loads snapshots from file * * @param {string} [filePath] - Optional file path to load snapshots from. * @returns {Promise} - Resolves when snapshots are loaded. */ async loadSnapshots(filePath) { await this[kSnapshotRecorder].loadSnapshots(filePath || this[kSnapshotPath]); this[kSnapshotLoaded] = true; if (this[kSnapshotMode] === "playback") { this.#setupMockInterceptors(); } } /** * Saves snapshots to file * * @param {string} [filePath] - Optional file path to save snapshots to. * @returns {Promise} - Resolves when snapshots are saved. */ async saveSnapshots(filePath) { return this[kSnapshotRecorder].saveSnapshots(filePath || this[kSnapshotPath]); } /** * Sets up MockAgent interceptors based on recorded snapshots. * * This method creates MockAgent interceptors for each recorded snapshot, * allowing the SnapshotAgent to fall back to MockAgent's standard intercept * mechanism in playback mode. Each interceptor is configured to persist * (remain active for multiple requests) and responds with the recorded * response data. * * Called automatically when loading snapshots in playback mode. * * @returns {void} */ #setupMockInterceptors() { for (const snapshot of this[kSnapshotRecorder].getSnapshots()) { const { request: request4, responses, response } = snapshot; const url4 = new URL(request4.url); const mockPool = this.get(url4.origin); const responseData = responses ? responses[0] : response; if (!responseData) continue; mockPool.intercept({ path: url4.pathname + url4.search, method: request4.method, headers: request4.headers, body: request4.body }).reply(responseData.statusCode, responseData.body, { headers: responseData.headers, trailers: responseData.trailers }).persist(); } } /** * Gets the snapshot recorder * @return {SnapshotRecorder} - The snapshot recorder instance */ getRecorder() { return this[kSnapshotRecorder]; } /** * Gets the current mode * @return {import('./snapshot-utils').SnapshotMode} - The current snapshot mode */ getMode() { return this[kSnapshotMode]; } /** * Clears all snapshots * @returns {void} */ clearSnapshots() { this[kSnapshotRecorder].clear(); } /** * Resets call counts for all snapshots (useful for test cleanup) * @returns {void} */ resetCallCounts() { this[kSnapshotRecorder].resetCallCounts(); } /** * Deletes a specific snapshot by request options * @param {import('./snapshot-recorder').SnapshotRequestOptions} requestOpts - Request options to identify the snapshot * @return {Promise} - Returns true if the snapshot was deleted, false if not found */ deleteSnapshot(requestOpts) { return this[kSnapshotRecorder].deleteSnapshot(requestOpts); } /** * Gets information about a specific snapshot * @returns {import('./snapshot-recorder').SnapshotInfo|null} - Snapshot information or null if not found */ getSnapshotInfo(requestOpts) { return this[kSnapshotRecorder].getSnapshotInfo(requestOpts); } /** * Replaces all snapshots with new data (full replacement) * @param {Array<{hash: string; snapshot: import('./snapshot-recorder').SnapshotEntryshotEntry}>|Record} snapshotData - New snapshot data to replace existing snapshots * @returns {void} */ replaceSnapshots(snapshotData) { this[kSnapshotRecorder].replaceSnapshots(snapshotData); } /** * Closes the agent, saving snapshots and cleaning up resources. * * @returns {Promise} */ async close() { await this[kSnapshotRecorder].close(); await this[kRealAgent]?.close(); await super.close(); } }; module4.exports = SnapshotAgent; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/global.js var require_global2 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/global.js"(exports, module4) { init_import_meta_url(); var globalDispatcher = Symbol.for("undici.globalDispatcher.1"); var { InvalidArgumentError } = require_errors(); var Agent = require_agent(); if (getGlobalDispatcher2() === void 0) { setGlobalDispatcher2(new Agent()); } function setGlobalDispatcher2(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 }); } __name(setGlobalDispatcher2, "setGlobalDispatcher"); function getGlobalDispatcher2() { return globalThis[globalDispatcher]; } __name(getGlobalDispatcher2, "getGlobalDispatcher"); var installedExports = ( /** @type {const} */ [ "fetch", "Headers", "Response", "Request", "FormData", "WebSocket", "CloseEvent", "ErrorEvent", "MessageEvent", "EventSource" ] ); module4.exports = { setGlobalDispatcher: setGlobalDispatcher2, getGlobalDispatcher: getGlobalDispatcher2, installedExports }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/decorator-handler.js var require_decorator_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/decorator-handler.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var WrapHandler = require_wrap_handler(); module4.exports = class DecoratorHandler { static { __name(this, "DecoratorHandler"); } #handler; #onCompleteCalled = false; #onErrorCalled = false; #onResponseStartCalled = false; constructor(handler) { if (typeof handler !== "object" || handler === null) { throw new TypeError("handler must be an object"); } this.#handler = WrapHandler.wrap(handler); } onRequestStart(...args) { this.#handler.onRequestStart?.(...args); } onRequestUpgrade(...args) { assert58(!this.#onCompleteCalled); assert58(!this.#onErrorCalled); return this.#handler.onRequestUpgrade?.(...args); } onResponseStart(...args) { assert58(!this.#onCompleteCalled); assert58(!this.#onErrorCalled); assert58(!this.#onResponseStartCalled); this.#onResponseStartCalled = true; return this.#handler.onResponseStart?.(...args); } onResponseData(...args) { assert58(!this.#onCompleteCalled); assert58(!this.#onErrorCalled); return this.#handler.onResponseData?.(...args); } onResponseEnd(...args) { assert58(!this.#onCompleteCalled); assert58(!this.#onErrorCalled); this.#onCompleteCalled = true; return this.#handler.onResponseEnd?.(...args); } onResponseError(...args) { this.#onErrorCalled = true; return this.#handler.onResponseError?.(...args); } /** * @deprecated */ onBodySent() { } }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/redirect-handler.js var require_redirect_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/redirect-handler.js"(exports, module4) { init_import_meta_url(); var util3 = require_util(); var { kBodyUsed } = require_symbols(); var assert58 = __require("assert"); var { InvalidArgumentError } = require_errors(); var EE = __require("events"); var redirectableStatusCodes = [300, 301, 302, 303, 307, 308]; var kBody = Symbol("body"); var noop = /* @__PURE__ */ __name(() => { }, "noop"); var BodyAsyncIterable = class { static { __name(this, "BodyAsyncIterable"); } constructor(body) { this[kBody] = body; this[kBodyUsed] = false; } async *[Symbol.asyncIterator]() { assert58(!this[kBodyUsed], "disturbed"); this[kBodyUsed] = true; yield* this[kBody]; } }; var RedirectHandler = class _RedirectHandler { static { __name(this, "RedirectHandler"); } static buildDispatch(dispatcher, maxRedirections) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } const dispatch = dispatcher.dispatch.bind(dispatcher); return (opts, originalHandler) => dispatch(opts, new _RedirectHandler(dispatch, maxRedirections, opts, originalHandler)); } constructor(dispatch, maxRedirections, opts, handler) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { throw new InvalidArgumentError("maxRedirections must be a positive number"); } this.dispatch = dispatch; this.location = null; const { maxRedirections: _5, ...cleanOpts } = opts; this.opts = cleanOpts; this.maxRedirections = maxRedirections; this.handler = handler; this.history = []; if (util3.isStream(this.opts.body)) { if (util3.bodyLength(this.opts.body) === 0) { this.opts.body.on("data", function() { assert58(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) && util3.isIterable(this.opts.body) && !util3.isFormDataLike(this.opts.body)) { this.opts.body = new BodyAsyncIterable(this.opts.body); } } onRequestStart(controller, context2) { this.handler.onRequestStart?.(controller, { ...context2, history: this.history }); } onRequestUpgrade(controller, statusCode, headers, socket) { this.handler.onRequestUpgrade?.(controller, statusCode, headers, socket); } onResponseStart(controller, statusCode, headers, statusMessage) { if (this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { throw new Error("max redirects"); } if ((statusCode === 301 || statusCode === 302) && this.opts.method === "POST") { this.opts.method = "GET"; if (util3.isStream(this.opts.body)) { util3.destroy(this.opts.body.on("error", noop)); } this.opts.body = null; } if (statusCode === 303 && this.opts.method !== "HEAD") { this.opts.method = "GET"; if (util3.isStream(this.opts.body)) { util3.destroy(this.opts.body.on("error", noop)); } this.opts.body = null; } this.location = this.history.length >= this.maxRedirections || util3.isDisturbed(this.opts.body) || redirectableStatusCodes.indexOf(statusCode) === -1 ? null : headers.location; if (this.opts.origin) { this.history.push(new URL(this.opts.path, this.opts.origin)); } if (!this.location) { this.handler.onResponseStart?.(controller, statusCode, headers, statusMessage); return; } const { origin, pathname, search } = util3.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))); const path82 = search ? `${pathname}${search}` : pathname; const redirectUrlString = `${origin}${path82}`; for (const historyUrl of this.history) { if (historyUrl.toString() === redirectUrlString) { throw new InvalidArgumentError(`Redirect loop detected. Cannot redirect to ${origin}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`); } } this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin); this.opts.path = path82; this.opts.origin = origin; this.opts.query = null; } onResponseData(controller, chunk) { if (this.location) ; else { this.handler.onResponseData?.(controller, chunk); } } onResponseEnd(controller, trailers) { if (this.location) { this.dispatch(this.opts, this); } else { this.handler.onResponseEnd(controller, trailers); } } onResponseError(controller, error2) { this.handler.onResponseError?.(controller, error2); } }; function shouldRemoveHeader(header, removeContent, unknownOrigin) { if (header.length === 4) { return util3.headerNameToString(header) === "host"; } if (removeContent && util3.headerNameToString(header).startsWith("content-")) { return true; } if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { const name2 = util3.headerNameToString(header); return name2 === "authorization" || name2 === "cookie" || name2 === "proxy-authorization"; } return false; } __name(shouldRemoveHeader, "shouldRemoveHeader"); function cleanRequestHeaders(headers, removeContent, unknownOrigin) { const ret = []; if (Array.isArray(headers)) { for (let i7 = 0; i7 < headers.length; i7 += 2) { if (!shouldRemoveHeader(headers[i7], removeContent, unknownOrigin)) { ret.push(headers[i7], headers[i7 + 1]); } } } else if (headers && typeof headers === "object") { const entries2 = typeof headers[Symbol.iterator] === "function" ? headers : Object.entries(headers); for (const [key, value] of entries2) { if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { ret.push(key, value); } } } else { assert58(headers == null, "headers must be an object or an array"); } return ret; } __name(cleanRequestHeaders, "cleanRequestHeaders"); module4.exports = RedirectHandler; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/redirect.js var require_redirect = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/redirect.js"(exports, module4) { init_import_meta_url(); var RedirectHandler = require_redirect_handler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections } = {}) { return (dispatch) => { return /* @__PURE__ */ __name(function Intercept(opts, handler) { const { maxRedirections = defaultMaxRedirections, ...rest } = opts; if (maxRedirections == null || maxRedirections === 0) { return dispatch(opts, handler); } const dispatchOpts = { ...rest }; const redirectHandler = new RedirectHandler(dispatch, maxRedirections, dispatchOpts, handler); return dispatch(dispatchOpts, redirectHandler); }, "Intercept"); }; } __name(createRedirectInterceptor, "createRedirectInterceptor"); module4.exports = createRedirectInterceptor; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/response-error.js var require_response_error = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/response-error.js"(exports, module4) { init_import_meta_url(); var DecoratorHandler = require_decorator_handler(); var { ResponseError } = require_errors(); var ResponseErrorHandler = class extends DecoratorHandler { static { __name(this, "ResponseErrorHandler"); } #statusCode; #contentType; #decoder; #headers; #body; constructor(_opts, { handler }) { super(handler); } #checkContentType(contentType) { return (this.#contentType ?? "").indexOf(contentType) === 0; } onRequestStart(controller, context2) { this.#statusCode = 0; this.#contentType = null; this.#decoder = null; this.#headers = null; this.#body = ""; return super.onRequestStart(controller, context2); } onResponseStart(controller, statusCode, headers, statusMessage) { this.#statusCode = statusCode; this.#headers = headers; this.#contentType = headers["content-type"]; if (this.#statusCode < 400) { return super.onResponseStart(controller, statusCode, headers, statusMessage); } if (this.#checkContentType("application/json") || this.#checkContentType("text/plain")) { this.#decoder = new TextDecoder("utf-8"); } } onResponseData(controller, chunk) { if (this.#statusCode < 400) { return super.onResponseData(controller, chunk); } this.#body += this.#decoder?.decode(chunk, { stream: true }) ?? ""; } onResponseEnd(controller, trailers) { if (this.#statusCode >= 400) { this.#body += this.#decoder?.decode(void 0, { stream: false }) ?? ""; if (this.#checkContentType("application/json")) { try { this.#body = JSON.parse(this.#body); } catch { } } let err; const stackTraceLimit = Error.stackTraceLimit; Error.stackTraceLimit = 0; try { err = new ResponseError("Response Error", this.#statusCode, { body: this.#body, headers: this.#headers }); } finally { Error.stackTraceLimit = stackTraceLimit; } super.onResponseError(controller, err); } else { super.onResponseEnd(controller, trailers); } } onResponseError(controller, err) { super.onResponseError(controller, err); } }; module4.exports = () => { return (dispatch) => { return /* @__PURE__ */ __name(function Intercept(opts, handler) { return dispatch(opts, new ResponseErrorHandler(opts, { handler })); }, "Intercept"); }; }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/retry.js var require_retry = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/retry.js"(exports, module4) { init_import_meta_url(); var RetryHandler = require_retry_handler(); module4.exports = (globalOpts) => { return (dispatch) => { return /* @__PURE__ */ __name(function retryInterceptor(opts, handler) { return dispatch( opts, new RetryHandler( { ...opts, retryOptions: { ...globalOpts, ...opts.retryOptions } }, { handler, dispatch } ) ); }, "retryInterceptor"); }; }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/dump.js var require_dump = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/dump.js"(exports, module4) { init_import_meta_url(); var { InvalidArgumentError, RequestAbortedError } = require_errors(); var DecoratorHandler = require_decorator_handler(); var DumpHandler = class extends DecoratorHandler { static { __name(this, "DumpHandler"); } #maxSize = 1024 * 1024; #dumped = false; #size = 0; #controller = null; aborted = false; reason = false; constructor({ maxSize, signal }, handler) { if (maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) { throw new InvalidArgumentError("maxSize must be a number greater than 0"); } super(handler); this.#maxSize = maxSize ?? this.#maxSize; } #abort(reason) { this.aborted = true; this.reason = reason; } onRequestStart(controller, context2) { controller.abort = this.#abort.bind(this); this.#controller = controller; return super.onRequestStart(controller, context2); } onResponseStart(controller, statusCode, headers, statusMessage) { 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 === true) { return true; } return super.onResponseStart(controller, statusCode, headers, statusMessage); } onResponseError(controller, err) { if (this.#dumped) { return; } err = this.#controller?.reason ?? err; super.onResponseError(controller, err); } onResponseData(controller, chunk) { this.#size = this.#size + chunk.length; if (this.#size >= this.#maxSize) { this.#dumped = true; if (this.aborted === true) { super.onResponseError(controller, this.reason); } else { super.onResponseEnd(controller, {}); } } return true; } onResponseEnd(controller, trailers) { if (this.#dumped) { return; } if (this.#controller.aborted === true) { super.onResponseError(controller, this.reason); return; } super.onResponseEnd(controller, trailers); } }; function createDumpInterceptor({ maxSize: defaultMaxSize } = { maxSize: 1024 * 1024 }) { return (dispatch) => { return /* @__PURE__ */ __name(function Intercept(opts, handler) { const { dumpMaxSize = defaultMaxSize } = opts; const dumpHandler = new DumpHandler({ maxSize: dumpMaxSize, signal: opts.signal }, handler); return dispatch(opts, dumpHandler); }, "Intercept"); }; } __name(createDumpInterceptor, "createDumpInterceptor"); module4.exports = createDumpInterceptor; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/dns.js var require_dns = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/dns.js"(exports, module4) { init_import_meta_url(); var { isIP } = __require("net"); var { lookup } = __require("dns"); var DecoratorHandler = require_decorator_handler(); var { InvalidArgumentError, InformationalError } = require_errors(); var maxInt = Math.pow(2, 31) - 1; var DNSStorage = class { static { __name(this, "DNSStorage"); } #maxItems = 0; #records = /* @__PURE__ */ new Map(); constructor(opts) { this.#maxItems = opts.maxItems; } get size() { return this.#records.size; } get(hostname2) { return this.#records.get(hostname2) ?? null; } set(hostname2, records) { this.#records.set(hostname2, records); } delete(hostname2) { this.#records.delete(hostname2); } // Delegate to storage decide can we do more lookups or not full() { return this.size >= this.#maxItems; } }; var DNSInstance = class { static { __name(this, "DNSInstance"); } #maxTTL = 0; #maxItems = 0; dualStack = true; affinity = null; lookup = null; pick = null; storage = 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; this.storage = opts.storage ?? new DNSStorage(opts); } runLookup(origin, opts, cb2) { const ips = this.storage.get(origin.hostname); if (ips == null && this.storage.full()) { cb2(null, 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) { cb2(err ?? new InformationalError("No DNS entries found")); return; } this.setRecords(origin, addresses); const records = this.storage.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 = ""; } cb2( null, new URL(`${origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`) ); }); } else { const ip = this.pick( origin, ips, newOpts.affinity ); if (ip == null) { this.storage.delete(origin.hostname); this.runLookup(origin, opts, cb2); return; } let port; if (typeof ip.port === "number") { port = `:${ip.port}`; } else if (origin.port !== "") { port = `:${origin.port}`; } else { port = ""; } cb2( null, new URL(`${origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}`) ); } } #defaultLookup(origin, opts, cb2) { lookup( origin.hostname, { all: true, family: this.dualStack === false ? this.affinity : 0, order: "ipv4first" }, (err, addresses) => { if (err) { return cb2(err); } const results = /* @__PURE__ */ new Map(); for (const addr of addresses) { results.set(`${addr.address}:${addr.family}`, addr); } cb2(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; } pickFamily(origin, ipFamily) { const records = this.storage.get(origin.hostname)?.records; if (!records) { return null; } const family = records[ipFamily]; if (!family) { return null; } if (family.offset == null || family.offset === maxInt) { family.offset = 0; } else { family.offset++; } const position = family.offset % family.ips.length; const ip = family.ips[position] ?? null; if (ip == null) { return ip; } if (Date.now() - ip.timestamp > ip.ttl) { family.ips.splice(position, 1); } return ip; } setRecords(origin, addresses) { const timestamp = Date.now(); const records = { records: { 4: null, 6: null } }; let minTTL = this.#maxTTL; for (const record of addresses) { record.timestamp = timestamp; if (typeof record.ttl === "number") { record.ttl = Math.min(record.ttl, this.#maxTTL); minTTL = Math.min(minTTL, record.ttl); } else { record.ttl = this.#maxTTL; } const familyRecords = records.records[record.family] ?? { ips: [] }; familyRecords.ips.push(record); records.records[record.family] = familyRecords; } this.storage.set(origin.hostname, records, { ttl: minTTL }); } deleteRecords(origin) { this.storage.delete(origin.hostname); } getHandler(meta, opts) { return new DNSDispatchHandler(this, meta, opts); } }; var DNSDispatchHandler = class extends DecoratorHandler { static { __name(this, "DNSDispatchHandler"); } #state = null; #opts = null; #dispatch = null; #origin = null; #controller = null; #newOrigin = null; #firstTry = true; constructor(state2, { origin, handler, dispatch, newOrigin }, opts) { super(handler); this.#origin = origin; this.#newOrigin = newOrigin; this.#opts = { ...opts }; this.#state = state2; this.#dispatch = dispatch; } onResponseError(controller, err) { switch (err.code) { case "ETIMEDOUT": case "ECONNREFUSED": { if (this.#state.dualStack) { if (!this.#firstTry) { super.onResponseError(controller, err); return; } this.#firstTry = false; const otherFamily = this.#newOrigin.hostname[0] === "[" ? 4 : 6; const ip = this.#state.pickFamily(this.#origin, otherFamily); if (ip == null) { super.onResponseError(controller, err); return; } let port; if (typeof ip.port === "number") { port = `:${ip.port}`; } else if (this.#origin.port !== "") { port = `:${this.#origin.port}`; } else { port = ""; } const dispatchOpts = { ...this.#opts, origin: `${this.#origin.protocol}//${ip.family === 6 ? `[${ip.address}]` : ip.address}${port}` }; this.#dispatch(dispatchOpts, this); return; } super.onResponseError(controller, err); break; } case "ENOTFOUND": this.#state.deleteRecords(this.#origin); super.onResponseError(controller, err); break; default: super.onResponseError(controller, err); break; } } }; module4.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"); } if (interceptorOpts?.storage != null && (typeof interceptorOpts?.storage?.get !== "function" || typeof interceptorOpts?.storage?.set !== "function" || typeof interceptorOpts?.storage?.full !== "function" || typeof interceptorOpts?.storage?.delete !== "function")) { throw new InvalidArgumentError("Invalid storage. Must be a object with methods: { get, set, full, delete }"); } 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, storage: interceptorOpts?.storage }; const instance = new DNSInstance(opts); return (dispatch) => { return /* @__PURE__ */ __name(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.onResponseError(null, err); } const dispatchOpts = { ...origDispatchOpts, servername: origin.hostname, // For SNI on TLS origin: newOrigin.origin, headers: { host: origin.host, ...origDispatchOpts.headers } }; dispatch( dispatchOpts, instance.getHandler( { origin, dispatch, handler, newOrigin }, origDispatchOpts ) ); }); return true; }, "dnsInterceptor"); }; }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/cache.js var require_cache = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/cache.js"(exports, module4) { init_import_meta_url(); var { safeHTTPMethods, pathHasQueryOrFragment } = require_util(); var { serializePathWithQuery } = require_util(); function makeCacheKey(opts) { if (!opts.origin) { throw new Error("opts.origin is undefined"); } let fullPath = opts.path || "/"; if (opts.query && !pathHasQueryOrFragment(opts.path)) { fullPath = serializePathWithQuery(fullPath, opts.query); } return { origin: opts.origin.toString(), method: opts.method, path: fullPath, headers: opts.headers }; } __name(makeCacheKey, "makeCacheKey"); function normalizeHeaders(opts) { let headers; if (opts.headers == null) { headers = {}; } else if (typeof opts.headers[Symbol.iterator] === "function") { headers = {}; for (const x7 of opts.headers) { if (!Array.isArray(x7)) { throw new Error("opts.headers is not a valid header map"); } const [key, val2] = x7; if (typeof key !== "string" || typeof val2 !== "string") { throw new Error("opts.headers is not a valid header map"); } headers[key.toLowerCase()] = val2; } } else if (typeof opts.headers === "object") { headers = {}; for (const key of Object.keys(opts.headers)) { headers[key.toLowerCase()] = opts.headers[key]; } } else { throw new Error("opts.headers is not an object"); } return headers; } __name(normalizeHeaders, "normalizeHeaders"); function assertCacheKey(key) { if (typeof key !== "object") { throw new TypeError(`expected key to be object, got ${typeof key}`); } for (const property of ["origin", "method", "path"]) { if (typeof key[property] !== "string") { throw new TypeError(`expected key.${property} to be string, got ${typeof key[property]}`); } } if (key.headers !== void 0 && typeof key.headers !== "object") { throw new TypeError(`expected headers to be object, got ${typeof key}`); } } __name(assertCacheKey, "assertCacheKey"); function assertCacheValue(value) { if (typeof value !== "object") { throw new TypeError(`expected value to be object, got ${typeof value}`); } for (const property of ["statusCode", "cachedAt", "staleAt", "deleteAt"]) { if (typeof value[property] !== "number") { throw new TypeError(`expected value.${property} to be number, got ${typeof value[property]}`); } } if (typeof value.statusMessage !== "string") { throw new TypeError(`expected value.statusMessage to be string, got ${typeof value.statusMessage}`); } if (value.headers != null && typeof value.headers !== "object") { throw new TypeError(`expected value.rawHeaders to be object, got ${typeof value.headers}`); } if (value.vary !== void 0 && typeof value.vary !== "object") { throw new TypeError(`expected value.vary to be object, got ${typeof value.vary}`); } if (value.etag !== void 0 && typeof value.etag !== "string") { throw new TypeError(`expected value.etag to be string, got ${typeof value.etag}`); } } __name(assertCacheValue, "assertCacheValue"); function parseCacheControlHeader(header) { const output = {}; let directives; if (Array.isArray(header)) { directives = []; for (const directive of header) { directives.push(...directive.split(",")); } } else { directives = header.split(","); } for (let i7 = 0; i7 < directives.length; i7++) { const directive = directives[i7].toLowerCase(); const keyValueDelimiter = directive.indexOf("="); let key; let value; if (keyValueDelimiter !== -1) { key = directive.substring(0, keyValueDelimiter).trimStart(); value = directive.substring(keyValueDelimiter + 1); } else { key = directive.trim(); } switch (key) { case "min-fresh": case "max-stale": case "max-age": case "s-maxage": case "stale-while-revalidate": case "stale-if-error": { if (value === void 0 || value[0] === " ") { continue; } if (value.length >= 2 && value[0] === '"' && value[value.length - 1] === '"') { value = value.substring(1, value.length - 1); } const parsedValue = parseInt(value, 10); if (parsedValue !== parsedValue) { continue; } if (key === "max-age" && key in output && output[key] >= parsedValue) { continue; } output[key] = parsedValue; break; } case "private": case "no-cache": { if (value) { if (value[0] === '"') { const headers = [value.substring(1)]; let foundEndingQuote = value[value.length - 1] === '"'; if (!foundEndingQuote) { for (let j7 = i7 + 1; j7 < directives.length; j7++) { const nextPart = directives[j7]; const nextPartLength = nextPart.length; headers.push(nextPart.trim()); if (nextPartLength !== 0 && nextPart[nextPartLength - 1] === '"') { foundEndingQuote = true; break; } } } if (foundEndingQuote) { let lastHeader = headers[headers.length - 1]; if (lastHeader[lastHeader.length - 1] === '"') { lastHeader = lastHeader.substring(0, lastHeader.length - 1); headers[headers.length - 1] = lastHeader; } if (key in output) { output[key] = output[key].concat(headers); } else { output[key] = headers; } } } else { if (key in output) { output[key] = output[key].concat(value); } else { output[key] = [value]; } } break; } } // eslint-disable-next-line no-fallthrough case "public": case "no-store": case "must-revalidate": case "proxy-revalidate": case "immutable": case "no-transform": case "must-understand": case "only-if-cached": if (value) { continue; } output[key] = true; break; default: continue; } } return output; } __name(parseCacheControlHeader, "parseCacheControlHeader"); function parseVaryHeader(varyHeader, headers) { if (typeof varyHeader === "string" && varyHeader.includes("*")) { return headers; } const output = ( /** @type {Record} */ {} ); const varyingHeaders = typeof varyHeader === "string" ? varyHeader.split(",") : varyHeader; for (const header of varyingHeaders) { const trimmedHeader = header.trim().toLowerCase(); output[trimmedHeader] = headers[trimmedHeader] ?? null; } return output; } __name(parseVaryHeader, "parseVaryHeader"); function isEtagUsable(etag) { if (etag.length <= 2) { return false; } if (etag[0] === '"' && etag[etag.length - 1] === '"') { return !(etag[1] === '"' || etag.startsWith('"W/')); } if (etag.startsWith('W/"') && etag[etag.length - 1] === '"') { return etag.length !== 4; } return false; } __name(isEtagUsable, "isEtagUsable"); function assertCacheStore(store, name2 = "CacheStore") { if (typeof store !== "object" || store === null) { throw new TypeError(`expected type of ${name2} to be a CacheStore, got ${store === null ? "null" : typeof store}`); } for (const fn2 of ["get", "createWriteStream", "delete"]) { if (typeof store[fn2] !== "function") { throw new TypeError(`${name2} needs to have a \`${fn2}()\` function`); } } } __name(assertCacheStore, "assertCacheStore"); function assertCacheMethods(methods, name2 = "CacheMethods") { if (!Array.isArray(methods)) { throw new TypeError(`expected type of ${name2} needs to be an array, got ${methods === null ? "null" : typeof methods}`); } if (methods.length === 0) { throw new TypeError(`${name2} needs to have at least one method`); } for (const method of methods) { if (!safeHTTPMethods.includes(method)) { throw new TypeError(`element of ${name2}-array needs to be one of following values: ${safeHTTPMethods.join(", ")}, got ${method}`); } } } __name(assertCacheMethods, "assertCacheMethods"); function makeDeduplicationKey(cacheKey, excludeHeaders) { let key = `${cacheKey.origin}:${cacheKey.method}:${cacheKey.path}`; if (cacheKey.headers) { const sortedHeaders = Object.keys(cacheKey.headers).sort(); for (const header of sortedHeaders) { if (excludeHeaders?.has(header.toLowerCase())) { continue; } const value = cacheKey.headers[header]; key += `:${header}=${Array.isArray(value) ? value.join(",") : value}`; } } return key; } __name(makeDeduplicationKey, "makeDeduplicationKey"); module4.exports = { makeCacheKey, normalizeHeaders, assertCacheKey, assertCacheValue, parseCacheControlHeader, parseVaryHeader, isEtagUsable, assertCacheMethods, assertCacheStore, makeDeduplicationKey }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/date.js var require_date = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/util/date.js"(exports, module4) { init_import_meta_url(); function parseHttpDate(date) { switch (date[3]) { case ",": return parseImfDate(date); case " ": return parseAscTimeDate(date); default: return parseRfc850Date(date); } } __name(parseHttpDate, "parseHttpDate"); function parseImfDate(date) { if (date.length !== 29 || date[4] !== " " || date[7] !== " " || date[11] !== " " || date[16] !== " " || date[19] !== ":" || date[22] !== ":" || date[25] !== " " || date[26] !== "G" || date[27] !== "M" || date[28] !== "T") { return void 0; } let weekday = -1; if (date[0] === "S" && date[1] === "u" && date[2] === "n") { weekday = 0; } else if (date[0] === "M" && date[1] === "o" && date[2] === "n") { weekday = 1; } else if (date[0] === "T" && date[1] === "u" && date[2] === "e") { weekday = 2; } else if (date[0] === "W" && date[1] === "e" && date[2] === "d") { weekday = 3; } else if (date[0] === "T" && date[1] === "h" && date[2] === "u") { weekday = 4; } else if (date[0] === "F" && date[1] === "r" && date[2] === "i") { weekday = 5; } else if (date[0] === "S" && date[1] === "a" && date[2] === "t") { weekday = 6; } else { return void 0; } let day = 0; if (date[5] === "0") { const code = date.charCodeAt(6); if (code < 49 || code > 57) { return void 0; } day = code - 48; } else { const code1 = date.charCodeAt(5); if (code1 < 49 || code1 > 51) { return void 0; } const code2 = date.charCodeAt(6); if (code2 < 48 || code2 > 57) { return void 0; } day = (code1 - 48) * 10 + (code2 - 48); } let monthIdx = -1; if (date[8] === "J" && date[9] === "a" && date[10] === "n") { monthIdx = 0; } else if (date[8] === "F" && date[9] === "e" && date[10] === "b") { monthIdx = 1; } else if (date[8] === "M" && date[9] === "a") { if (date[10] === "r") { monthIdx = 2; } else if (date[10] === "y") { monthIdx = 4; } else { return void 0; } } else if (date[8] === "J") { if (date[9] === "a" && date[10] === "n") { monthIdx = 0; } else if (date[9] === "u") { if (date[10] === "n") { monthIdx = 5; } else if (date[10] === "l") { monthIdx = 6; } else { return void 0; } } else { return void 0; } } else if (date[8] === "A") { if (date[9] === "p" && date[10] === "r") { monthIdx = 3; } else if (date[9] === "u" && date[10] === "g") { monthIdx = 7; } else { return void 0; } } else if (date[8] === "S" && date[9] === "e" && date[10] === "p") { monthIdx = 8; } else if (date[8] === "O" && date[9] === "c" && date[10] === "t") { monthIdx = 9; } else if (date[8] === "N" && date[9] === "o" && date[10] === "v") { monthIdx = 10; } else if (date[8] === "D" && date[9] === "e" && date[10] === "c") { monthIdx = 11; } else { return void 0; } const yearDigit1 = date.charCodeAt(12); if (yearDigit1 < 48 || yearDigit1 > 57) { return void 0; } const yearDigit2 = date.charCodeAt(13); if (yearDigit2 < 48 || yearDigit2 > 57) { return void 0; } const yearDigit3 = date.charCodeAt(14); if (yearDigit3 < 48 || yearDigit3 > 57) { return void 0; } const yearDigit4 = date.charCodeAt(15); if (yearDigit4 < 48 || yearDigit4 > 57) { return void 0; } const year = (yearDigit1 - 48) * 1e3 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48); let hour = 0; if (date[17] === "0") { const code = date.charCodeAt(18); if (code < 48 || code > 57) { return void 0; } hour = code - 48; } else { const code1 = date.charCodeAt(17); if (code1 < 48 || code1 > 50) { return void 0; } const code2 = date.charCodeAt(18); if (code2 < 48 || code2 > 57) { return void 0; } if (code1 === 50 && code2 > 51) { return void 0; } hour = (code1 - 48) * 10 + (code2 - 48); } let minute = 0; if (date[20] === "0") { const code = date.charCodeAt(21); if (code < 48 || code > 57) { return void 0; } minute = code - 48; } else { const code1 = date.charCodeAt(20); if (code1 < 48 || code1 > 53) { return void 0; } const code2 = date.charCodeAt(21); if (code2 < 48 || code2 > 57) { return void 0; } minute = (code1 - 48) * 10 + (code2 - 48); } let second = 0; if (date[23] === "0") { const code = date.charCodeAt(24); if (code < 48 || code > 57) { return void 0; } second = code - 48; } else { const code1 = date.charCodeAt(23); if (code1 < 48 || code1 > 53) { return void 0; } const code2 = date.charCodeAt(24); if (code2 < 48 || code2 > 57) { return void 0; } second = (code1 - 48) * 10 + (code2 - 48); } const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second)); return result.getUTCDay() === weekday ? result : void 0; } __name(parseImfDate, "parseImfDate"); function parseAscTimeDate(date) { if (date.length !== 24 || date[7] !== " " || date[10] !== " " || date[19] !== " ") { return void 0; } let weekday = -1; if (date[0] === "S" && date[1] === "u" && date[2] === "n") { weekday = 0; } else if (date[0] === "M" && date[1] === "o" && date[2] === "n") { weekday = 1; } else if (date[0] === "T" && date[1] === "u" && date[2] === "e") { weekday = 2; } else if (date[0] === "W" && date[1] === "e" && date[2] === "d") { weekday = 3; } else if (date[0] === "T" && date[1] === "h" && date[2] === "u") { weekday = 4; } else if (date[0] === "F" && date[1] === "r" && date[2] === "i") { weekday = 5; } else if (date[0] === "S" && date[1] === "a" && date[2] === "t") { weekday = 6; } else { return void 0; } let monthIdx = -1; if (date[4] === "J" && date[5] === "a" && date[6] === "n") { monthIdx = 0; } else if (date[4] === "F" && date[5] === "e" && date[6] === "b") { monthIdx = 1; } else if (date[4] === "M" && date[5] === "a") { if (date[6] === "r") { monthIdx = 2; } else if (date[6] === "y") { monthIdx = 4; } else { return void 0; } } else if (date[4] === "J") { if (date[5] === "a" && date[6] === "n") { monthIdx = 0; } else if (date[5] === "u") { if (date[6] === "n") { monthIdx = 5; } else if (date[6] === "l") { monthIdx = 6; } else { return void 0; } } else { return void 0; } } else if (date[4] === "A") { if (date[5] === "p" && date[6] === "r") { monthIdx = 3; } else if (date[5] === "u" && date[6] === "g") { monthIdx = 7; } else { return void 0; } } else if (date[4] === "S" && date[5] === "e" && date[6] === "p") { monthIdx = 8; } else if (date[4] === "O" && date[5] === "c" && date[6] === "t") { monthIdx = 9; } else if (date[4] === "N" && date[5] === "o" && date[6] === "v") { monthIdx = 10; } else if (date[4] === "D" && date[5] === "e" && date[6] === "c") { monthIdx = 11; } else { return void 0; } let day = 0; if (date[8] === " ") { const code = date.charCodeAt(9); if (code < 49 || code > 57) { return void 0; } day = code - 48; } else { const code1 = date.charCodeAt(8); if (code1 < 49 || code1 > 51) { return void 0; } const code2 = date.charCodeAt(9); if (code2 < 48 || code2 > 57) { return void 0; } day = (code1 - 48) * 10 + (code2 - 48); } let hour = 0; if (date[11] === "0") { const code = date.charCodeAt(12); if (code < 48 || code > 57) { return void 0; } hour = code - 48; } else { const code1 = date.charCodeAt(11); if (code1 < 48 || code1 > 50) { return void 0; } const code2 = date.charCodeAt(12); if (code2 < 48 || code2 > 57) { return void 0; } if (code1 === 50 && code2 > 51) { return void 0; } hour = (code1 - 48) * 10 + (code2 - 48); } let minute = 0; if (date[14] === "0") { const code = date.charCodeAt(15); if (code < 48 || code > 57) { return void 0; } minute = code - 48; } else { const code1 = date.charCodeAt(14); if (code1 < 48 || code1 > 53) { return void 0; } const code2 = date.charCodeAt(15); if (code2 < 48 || code2 > 57) { return void 0; } minute = (code1 - 48) * 10 + (code2 - 48); } let second = 0; if (date[17] === "0") { const code = date.charCodeAt(18); if (code < 48 || code > 57) { return void 0; } second = code - 48; } else { const code1 = date.charCodeAt(17); if (code1 < 48 || code1 > 53) { return void 0; } const code2 = date.charCodeAt(18); if (code2 < 48 || code2 > 57) { return void 0; } second = (code1 - 48) * 10 + (code2 - 48); } const yearDigit1 = date.charCodeAt(20); if (yearDigit1 < 48 || yearDigit1 > 57) { return void 0; } const yearDigit2 = date.charCodeAt(21); if (yearDigit2 < 48 || yearDigit2 > 57) { return void 0; } const yearDigit3 = date.charCodeAt(22); if (yearDigit3 < 48 || yearDigit3 > 57) { return void 0; } const yearDigit4 = date.charCodeAt(23); if (yearDigit4 < 48 || yearDigit4 > 57) { return void 0; } const year = (yearDigit1 - 48) * 1e3 + (yearDigit2 - 48) * 100 + (yearDigit3 - 48) * 10 + (yearDigit4 - 48); const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second)); return result.getUTCDay() === weekday ? result : void 0; } __name(parseAscTimeDate, "parseAscTimeDate"); function parseRfc850Date(date) { let commaIndex = -1; let weekday = -1; if (date[0] === "S") { if (date[1] === "u" && date[2] === "n" && date[3] === "d" && date[4] === "a" && date[5] === "y") { weekday = 0; commaIndex = 6; } else if (date[1] === "a" && date[2] === "t" && date[3] === "u" && date[4] === "r" && date[5] === "d" && date[6] === "a" && date[7] === "y") { weekday = 6; commaIndex = 8; } } else if (date[0] === "M" && date[1] === "o" && date[2] === "n" && date[3] === "d" && date[4] === "a" && date[5] === "y") { weekday = 1; commaIndex = 6; } else if (date[0] === "T") { if (date[1] === "u" && date[2] === "e" && date[3] === "s" && date[4] === "d" && date[5] === "a" && date[6] === "y") { weekday = 2; commaIndex = 7; } else if (date[1] === "h" && date[2] === "u" && date[3] === "r" && date[4] === "s" && date[5] === "d" && date[6] === "a" && date[7] === "y") { weekday = 4; commaIndex = 8; } } else if (date[0] === "W" && date[1] === "e" && date[2] === "d" && date[3] === "n" && date[4] === "e" && date[5] === "s" && date[6] === "d" && date[7] === "a" && date[8] === "y") { weekday = 3; commaIndex = 9; } else if (date[0] === "F" && date[1] === "r" && date[2] === "i" && date[3] === "d" && date[4] === "a" && date[5] === "y") { weekday = 5; commaIndex = 6; } else { return void 0; } if (date[commaIndex] !== "," || date.length - commaIndex - 1 !== 23 || date[commaIndex + 1] !== " " || date[commaIndex + 4] !== "-" || date[commaIndex + 8] !== "-" || date[commaIndex + 11] !== " " || date[commaIndex + 14] !== ":" || date[commaIndex + 17] !== ":" || date[commaIndex + 20] !== " " || date[commaIndex + 21] !== "G" || date[commaIndex + 22] !== "M" || date[commaIndex + 23] !== "T") { return void 0; } let day = 0; if (date[commaIndex + 2] === "0") { const code = date.charCodeAt(commaIndex + 3); if (code < 49 || code > 57) { return void 0; } day = code - 48; } else { const code1 = date.charCodeAt(commaIndex + 2); if (code1 < 49 || code1 > 51) { return void 0; } const code2 = date.charCodeAt(commaIndex + 3); if (code2 < 48 || code2 > 57) { return void 0; } day = (code1 - 48) * 10 + (code2 - 48); } let monthIdx = -1; if (date[commaIndex + 5] === "J" && date[commaIndex + 6] === "a" && date[commaIndex + 7] === "n") { monthIdx = 0; } else if (date[commaIndex + 5] === "F" && date[commaIndex + 6] === "e" && date[commaIndex + 7] === "b") { monthIdx = 1; } else if (date[commaIndex + 5] === "M" && date[commaIndex + 6] === "a" && date[commaIndex + 7] === "r") { monthIdx = 2; } else if (date[commaIndex + 5] === "A" && date[commaIndex + 6] === "p" && date[commaIndex + 7] === "r") { monthIdx = 3; } else if (date[commaIndex + 5] === "M" && date[commaIndex + 6] === "a" && date[commaIndex + 7] === "y") { monthIdx = 4; } else if (date[commaIndex + 5] === "J" && date[commaIndex + 6] === "u" && date[commaIndex + 7] === "n") { monthIdx = 5; } else if (date[commaIndex + 5] === "J" && date[commaIndex + 6] === "u" && date[commaIndex + 7] === "l") { monthIdx = 6; } else if (date[commaIndex + 5] === "A" && date[commaIndex + 6] === "u" && date[commaIndex + 7] === "g") { monthIdx = 7; } else if (date[commaIndex + 5] === "S" && date[commaIndex + 6] === "e" && date[commaIndex + 7] === "p") { monthIdx = 8; } else if (date[commaIndex + 5] === "O" && date[commaIndex + 6] === "c" && date[commaIndex + 7] === "t") { monthIdx = 9; } else if (date[commaIndex + 5] === "N" && date[commaIndex + 6] === "o" && date[commaIndex + 7] === "v") { monthIdx = 10; } else if (date[commaIndex + 5] === "D" && date[commaIndex + 6] === "e" && date[commaIndex + 7] === "c") { monthIdx = 11; } else { return void 0; } const yearDigit1 = date.charCodeAt(commaIndex + 9); if (yearDigit1 < 48 || yearDigit1 > 57) { return void 0; } const yearDigit2 = date.charCodeAt(commaIndex + 10); if (yearDigit2 < 48 || yearDigit2 > 57) { return void 0; } let year = (yearDigit1 - 48) * 10 + (yearDigit2 - 48); year += year < 70 ? 2e3 : 1900; let hour = 0; if (date[commaIndex + 12] === "0") { const code = date.charCodeAt(commaIndex + 13); if (code < 48 || code > 57) { return void 0; } hour = code - 48; } else { const code1 = date.charCodeAt(commaIndex + 12); if (code1 < 48 || code1 > 50) { return void 0; } const code2 = date.charCodeAt(commaIndex + 13); if (code2 < 48 || code2 > 57) { return void 0; } if (code1 === 50 && code2 > 51) { return void 0; } hour = (code1 - 48) * 10 + (code2 - 48); } let minute = 0; if (date[commaIndex + 15] === "0") { const code = date.charCodeAt(commaIndex + 16); if (code < 48 || code > 57) { return void 0; } minute = code - 48; } else { const code1 = date.charCodeAt(commaIndex + 15); if (code1 < 48 || code1 > 53) { return void 0; } const code2 = date.charCodeAt(commaIndex + 16); if (code2 < 48 || code2 > 57) { return void 0; } minute = (code1 - 48) * 10 + (code2 - 48); } let second = 0; if (date[commaIndex + 18] === "0") { const code = date.charCodeAt(commaIndex + 19); if (code < 48 || code > 57) { return void 0; } second = code - 48; } else { const code1 = date.charCodeAt(commaIndex + 18); if (code1 < 48 || code1 > 53) { return void 0; } const code2 = date.charCodeAt(commaIndex + 19); if (code2 < 48 || code2 > 57) { return void 0; } second = (code1 - 48) * 10 + (code2 - 48); } const result = new Date(Date.UTC(year, monthIdx, day, hour, minute, second)); return result.getUTCDay() === weekday ? result : void 0; } __name(parseRfc850Date, "parseRfc850Date"); module4.exports = { parseHttpDate }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/cache-handler.js var require_cache_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/cache-handler.js"(exports, module4) { init_import_meta_url(); var util3 = require_util(); var { parseCacheControlHeader, parseVaryHeader, isEtagUsable } = require_cache(); var { parseHttpDate } = require_date(); function noop() { } __name(noop, "noop"); var HEURISTICALLY_CACHEABLE_STATUS_CODES = [ 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414, 501 ]; var NOT_UNDERSTOOD_STATUS_CODES = [ 206 ]; var MAX_RESPONSE_AGE = 2147483647e3; var CacheHandler = class { static { __name(this, "CacheHandler"); } /** * @type {import('../../types/cache-interceptor.d.ts').default.CacheKey} */ #cacheKey; /** * @type {import('../../types/cache-interceptor.d.ts').default.CacheHandlerOptions['type']} */ #cacheType; /** * @type {number | undefined} */ #cacheByDefault; /** * @type {import('../../types/cache-interceptor.d.ts').default.CacheStore} */ #store; /** * @type {import('../../types/dispatcher.d.ts').default.DispatchHandler} */ #handler; /** * @type {import('node:stream').Writable | undefined} */ #writeStream; /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheHandlerOptions} opts * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} cacheKey * @param {import('../../types/dispatcher.d.ts').default.DispatchHandler} handler */ constructor({ store, type, cacheByDefault }, cacheKey, handler) { this.#store = store; this.#cacheType = type; this.#cacheByDefault = cacheByDefault; this.#cacheKey = cacheKey; this.#handler = handler; } onRequestStart(controller, context2) { this.#writeStream?.destroy(); this.#writeStream = void 0; this.#handler.onRequestStart?.(controller, context2); } onRequestUpgrade(controller, statusCode, headers, socket) { this.#handler.onRequestUpgrade?.(controller, statusCode, headers, socket); } /** * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller * @param {number} statusCode * @param {import('../../types/header.d.ts').IncomingHttpHeaders} resHeaders * @param {string} statusMessage */ onResponseStart(controller, statusCode, resHeaders, statusMessage) { const downstreamOnHeaders = /* @__PURE__ */ __name(() => this.#handler.onResponseStart?.( controller, statusCode, resHeaders, statusMessage ), "downstreamOnHeaders"); const handler = this; if (!util3.safeHTTPMethods.includes(this.#cacheKey.method) && statusCode >= 200 && statusCode <= 399) { try { this.#store.delete(this.#cacheKey)?.catch?.(noop); } catch { } return downstreamOnHeaders(); } const cacheControlHeader = resHeaders["cache-control"]; const heuristicallyCacheable = resHeaders["last-modified"] && HEURISTICALLY_CACHEABLE_STATUS_CODES.includes(statusCode); if (!cacheControlHeader && !resHeaders["expires"] && !heuristicallyCacheable && !this.#cacheByDefault) { return downstreamOnHeaders(); } const cacheControlDirectives = cacheControlHeader ? parseCacheControlHeader(cacheControlHeader) : {}; if (!canCacheResponse(this.#cacheType, statusCode, resHeaders, cacheControlDirectives)) { return downstreamOnHeaders(); } const now = Date.now(); const resAge = resHeaders.age ? getAge(resHeaders.age) : void 0; if (resAge && resAge >= MAX_RESPONSE_AGE) { return downstreamOnHeaders(); } const resDate = typeof resHeaders.date === "string" ? parseHttpDate(resHeaders.date) : void 0; const staleAt = determineStaleAt(this.#cacheType, now, resAge, resHeaders, resDate, cacheControlDirectives) ?? this.#cacheByDefault; if (staleAt === void 0 || resAge && resAge > staleAt) { return downstreamOnHeaders(); } const baseTime = resDate ? resDate.getTime() : now; const absoluteStaleAt = staleAt + baseTime; if (now >= absoluteStaleAt) { return downstreamOnHeaders(); } let varyDirectives; if (this.#cacheKey.headers && resHeaders.vary) { varyDirectives = parseVaryHeader(resHeaders.vary, this.#cacheKey.headers); if (!varyDirectives) { return downstreamOnHeaders(); } } const deleteAt = determineDeleteAt(baseTime, cacheControlDirectives, absoluteStaleAt); const strippedHeaders = stripNecessaryHeaders(resHeaders, cacheControlDirectives); const value = { statusCode, statusMessage, headers: strippedHeaders, vary: varyDirectives, cacheControlDirectives, cachedAt: resAge ? now - resAge : now, staleAt: absoluteStaleAt, deleteAt }; if (statusCode === 304) { const cachedValue = this.#store.get(this.#cacheKey); if (!cachedValue) { return downstreamOnHeaders(); } value.statusCode = cachedValue.statusCode; value.statusMessage = cachedValue.statusMessage; value.etag = cachedValue.etag; value.headers = { ...cachedValue.headers, ...strippedHeaders }; downstreamOnHeaders(); this.#writeStream = this.#store.createWriteStream(this.#cacheKey, value); if (!this.#writeStream || !cachedValue?.body) { return; } const bodyIterator = cachedValue.body.values(); const streamCachedBody = /* @__PURE__ */ __name(() => { for (const chunk of bodyIterator) { const full = this.#writeStream.write(chunk) === false; this.#handler.onResponseData?.(controller, chunk); if (full) { break; } } }, "streamCachedBody"); this.#writeStream.on("error", function() { handler.#writeStream = void 0; handler.#store.delete(handler.#cacheKey); }).on("drain", () => { streamCachedBody(); }).on("close", function() { if (handler.#writeStream === this) { handler.#writeStream = void 0; } }); streamCachedBody(); } else { if (typeof resHeaders.etag === "string" && isEtagUsable(resHeaders.etag)) { value.etag = resHeaders.etag; } this.#writeStream = this.#store.createWriteStream(this.#cacheKey, value); if (!this.#writeStream) { return downstreamOnHeaders(); } this.#writeStream.on("drain", () => controller.resume()).on("error", function() { handler.#writeStream = void 0; handler.#store.delete(handler.#cacheKey); }).on("close", function() { if (handler.#writeStream === this) { handler.#writeStream = void 0; } controller.resume(); }); downstreamOnHeaders(); } } onResponseData(controller, chunk) { if (this.#writeStream?.write(chunk) === false) { controller.pause(); } this.#handler.onResponseData?.(controller, chunk); } onResponseEnd(controller, trailers) { this.#writeStream?.end(); this.#handler.onResponseEnd?.(controller, trailers); } onResponseError(controller, err) { this.#writeStream?.destroy(err); this.#writeStream = void 0; this.#handler.onResponseError?.(controller, err); } }; function canCacheResponse(cacheType, statusCode, resHeaders, cacheControlDirectives) { if (statusCode < 200 || NOT_UNDERSTOOD_STATUS_CODES.includes(statusCode)) { return false; } if (!HEURISTICALLY_CACHEABLE_STATUS_CODES.includes(statusCode) && !resHeaders["expires"] && !cacheControlDirectives.public && cacheControlDirectives["max-age"] === void 0 && // RFC 9111: a private response directive, if the cache is not shared !(cacheControlDirectives.private && cacheType === "private") && !(cacheControlDirectives["s-maxage"] !== void 0 && cacheType === "shared")) { return false; } if (cacheControlDirectives["no-store"]) { return false; } if (cacheType === "shared" && cacheControlDirectives.private === true) { return false; } if (resHeaders.vary?.includes("*")) { return false; } if (resHeaders.authorization) { if (!cacheControlDirectives.public || typeof resHeaders.authorization !== "string") { return false; } if (Array.isArray(cacheControlDirectives["no-cache"]) && cacheControlDirectives["no-cache"].includes("authorization")) { return false; } if (Array.isArray(cacheControlDirectives["private"]) && cacheControlDirectives["private"].includes("authorization")) { return false; } } return true; } __name(canCacheResponse, "canCacheResponse"); function getAge(ageHeader) { const age = parseInt(Array.isArray(ageHeader) ? ageHeader[0] : ageHeader); return isNaN(age) ? void 0 : age * 1e3; } __name(getAge, "getAge"); function determineStaleAt(cacheType, now, age, resHeaders, responseDate, cacheControlDirectives) { if (cacheType === "shared") { const sMaxAge = cacheControlDirectives["s-maxage"]; if (sMaxAge !== void 0) { return sMaxAge > 0 ? sMaxAge * 1e3 : void 0; } } const maxAge = cacheControlDirectives["max-age"]; if (maxAge !== void 0) { return maxAge > 0 ? maxAge * 1e3 : void 0; } if (typeof resHeaders.expires === "string") { const expiresDate = parseHttpDate(resHeaders.expires); if (expiresDate) { if (now >= expiresDate.getTime()) { return void 0; } if (responseDate) { if (responseDate >= expiresDate) { return void 0; } if (age !== void 0 && age > expiresDate - responseDate) { return void 0; } } return expiresDate.getTime() - now; } } if (typeof resHeaders["last-modified"] === "string") { const lastModified = new Date(resHeaders["last-modified"]); if (isValidDate2(lastModified)) { if (lastModified.getTime() >= now) { return void 0; } const responseAge = now - lastModified.getTime(); return responseAge * 0.1; } } if (cacheControlDirectives.immutable) { return 31536e3; } return void 0; } __name(determineStaleAt, "determineStaleAt"); function determineDeleteAt(now, cacheControlDirectives, staleAt) { let staleWhileRevalidate = -Infinity; let staleIfError = -Infinity; let immutable = -Infinity; if (cacheControlDirectives["stale-while-revalidate"]) { staleWhileRevalidate = staleAt + cacheControlDirectives["stale-while-revalidate"] * 1e3; } if (cacheControlDirectives["stale-if-error"]) { staleIfError = staleAt + cacheControlDirectives["stale-if-error"] * 1e3; } if (staleWhileRevalidate === -Infinity && staleIfError === -Infinity) { immutable = now + 31536e6; } return Math.max(staleAt, staleWhileRevalidate, staleIfError, immutable); } __name(determineDeleteAt, "determineDeleteAt"); function stripNecessaryHeaders(resHeaders, cacheControlDirectives) { const headersToRemove = [ "connection", "proxy-authenticate", "proxy-authentication-info", "proxy-authorization", "proxy-connection", "te", "transfer-encoding", "upgrade", // We'll add age back when serving it "age" ]; if (resHeaders["connection"]) { if (Array.isArray(resHeaders["connection"])) { headersToRemove.push(...resHeaders["connection"].map((header) => header.trim())); } else { headersToRemove.push(...resHeaders["connection"].split(",").map((header) => header.trim())); } } if (Array.isArray(cacheControlDirectives["no-cache"])) { headersToRemove.push(...cacheControlDirectives["no-cache"]); } if (Array.isArray(cacheControlDirectives["private"])) { headersToRemove.push(...cacheControlDirectives["private"]); } let strippedHeaders; for (const headerName of headersToRemove) { if (resHeaders[headerName]) { strippedHeaders ??= { ...resHeaders }; delete strippedHeaders[headerName]; } } return strippedHeaders ?? resHeaders; } __name(stripNecessaryHeaders, "stripNecessaryHeaders"); function isValidDate2(date) { return date instanceof Date && Number.isFinite(date.valueOf()); } __name(isValidDate2, "isValidDate"); module4.exports = CacheHandler; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/cache/memory-cache-store.js var require_memory_cache_store = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/cache/memory-cache-store.js"(exports, module4) { init_import_meta_url(); var { Writable: Writable5 } = __require("stream"); var { EventEmitter: EventEmitter5 } = __require("events"); var { assertCacheKey, assertCacheValue } = require_cache(); var MemoryCacheStore = class extends EventEmitter5 { static { __name(this, "MemoryCacheStore"); } #maxCount = 1024; #maxSize = 104857600; // 100MB #maxEntrySize = 5242880; // 5MB #size = 0; #count = 0; #entries = /* @__PURE__ */ new Map(); #hasEmittedMaxSizeEvent = false; /** * @param {import('../../types/cache-interceptor.d.ts').default.MemoryCacheStoreOpts | undefined} [opts] */ constructor(opts) { super(); if (opts) { if (typeof opts !== "object") { throw new TypeError("MemoryCacheStore options must be an object"); } if (opts.maxCount !== void 0) { if (typeof opts.maxCount !== "number" || !Number.isInteger(opts.maxCount) || opts.maxCount < 0) { throw new TypeError("MemoryCacheStore options.maxCount must be a non-negative integer"); } this.#maxCount = opts.maxCount; } if (opts.maxSize !== void 0) { if (typeof opts.maxSize !== "number" || !Number.isInteger(opts.maxSize) || opts.maxSize < 0) { throw new TypeError("MemoryCacheStore options.maxSize must be a non-negative integer"); } this.#maxSize = opts.maxSize; } if (opts.maxEntrySize !== void 0) { if (typeof opts.maxEntrySize !== "number" || !Number.isInteger(opts.maxEntrySize) || opts.maxEntrySize < 0) { throw new TypeError("MemoryCacheStore options.maxEntrySize must be a non-negative integer"); } this.#maxEntrySize = opts.maxEntrySize; } } } /** * Get the current size of the cache in bytes * @returns {number} The current size of the cache in bytes */ get size() { return this.#size; } /** * Check if the cache is full (either max size or max count reached) * @returns {boolean} True if the cache is full, false otherwise */ isFull() { return this.#size >= this.#maxSize || this.#count >= this.#maxCount; } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} req * @returns {import('../../types/cache-interceptor.d.ts').default.GetResult | undefined} */ get(key) { assertCacheKey(key); const topLevelKey = `${key.origin}:${key.path}`; const now = Date.now(); const entries2 = this.#entries.get(topLevelKey); const entry = entries2 ? findEntry(key, entries2, now) : null; return entry == null ? void 0 : { statusMessage: entry.statusMessage, statusCode: entry.statusCode, headers: entry.headers, body: entry.body, vary: entry.vary ? entry.vary : void 0, etag: entry.etag, cacheControlDirectives: entry.cacheControlDirectives, cachedAt: entry.cachedAt, staleAt: entry.staleAt, deleteAt: entry.deleteAt }; } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key * @param {import('../../types/cache-interceptor.d.ts').default.CacheValue} val * @returns {Writable | undefined} */ createWriteStream(key, val2) { assertCacheKey(key); assertCacheValue(val2); const topLevelKey = `${key.origin}:${key.path}`; const store = this; const entry = { ...key, ...val2, body: [], size: 0 }; return new Writable5({ write(chunk, encoding, callback) { if (typeof chunk === "string") { chunk = Buffer.from(chunk, encoding); } entry.size += chunk.byteLength; if (entry.size >= store.#maxEntrySize) { this.destroy(); } else { entry.body.push(chunk); } callback(null); }, final(callback) { let entries2 = store.#entries.get(topLevelKey); if (!entries2) { entries2 = []; store.#entries.set(topLevelKey, entries2); } const previousEntry = findEntry(key, entries2, Date.now()); if (previousEntry) { const index = entries2.indexOf(previousEntry); entries2.splice(index, 1, entry); store.#size -= previousEntry.size; } else { entries2.push(entry); store.#count += 1; } store.#size += entry.size; if (store.#size > store.#maxSize || store.#count > store.#maxCount) { if (!store.#hasEmittedMaxSizeEvent) { store.emit("maxSizeExceeded", { size: store.#size, maxSize: store.#maxSize, count: store.#count, maxCount: store.#maxCount }); store.#hasEmittedMaxSizeEvent = true; } for (const [key2, entries3] of store.#entries) { for (const entry2 of entries3.splice(0, entries3.length / 2)) { store.#size -= entry2.size; store.#count -= 1; } if (entries3.length === 0) { store.#entries.delete(key2); } } if (store.#size < store.#maxSize && store.#count < store.#maxCount) { store.#hasEmittedMaxSizeEvent = false; } } callback(null); } }); } /** * @param {CacheKey} key */ delete(key) { if (typeof key !== "object") { throw new TypeError(`expected key to be object, got ${typeof key}`); } const topLevelKey = `${key.origin}:${key.path}`; for (const entry of this.#entries.get(topLevelKey) ?? []) { this.#size -= entry.size; this.#count -= 1; } this.#entries.delete(topLevelKey); } }; function findEntry(key, entries2, now) { return entries2.find((entry) => entry.deleteAt > now && entry.method === key.method && (entry.vary == null || Object.keys(entry.vary).every((headerName) => { if (entry.vary[headerName] === null) { return key.headers[headerName] === void 0; } return entry.vary[headerName] === key.headers[headerName]; }))); } __name(findEntry, "findEntry"); module4.exports = MemoryCacheStore; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/cache-revalidation-handler.js var require_cache_revalidation_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/cache-revalidation-handler.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var CacheRevalidationHandler = class { static { __name(this, "CacheRevalidationHandler"); } #successful = false; /** * @type {((boolean, any) => void) | null} */ #callback; /** * @type {(import('../../types/dispatcher.d.ts').default.DispatchHandler)} */ #handler; #context; /** * @type {boolean} */ #allowErrorStatusCodes; /** * @param {(boolean) => void} callback Function to call if the cached value is valid * @param {import('../../types/dispatcher.d.ts').default.DispatchHandlers} handler * @param {boolean} allowErrorStatusCodes */ constructor(callback, handler, allowErrorStatusCodes) { if (typeof callback !== "function") { throw new TypeError("callback must be a function"); } this.#callback = callback; this.#handler = handler; this.#allowErrorStatusCodes = allowErrorStatusCodes; } onRequestStart(_5, context2) { this.#successful = false; this.#context = context2; } onRequestUpgrade(controller, statusCode, headers, socket) { this.#handler.onRequestUpgrade?.(controller, statusCode, headers, socket); } onResponseStart(controller, statusCode, headers, statusMessage) { assert58(this.#callback != null); this.#successful = statusCode === 304 || this.#allowErrorStatusCodes && statusCode >= 500 && statusCode <= 504; this.#callback(this.#successful, this.#context); this.#callback = null; if (this.#successful) { return true; } this.#handler.onRequestStart?.(controller, this.#context); this.#handler.onResponseStart?.( controller, statusCode, headers, statusMessage ); } onResponseData(controller, chunk) { if (this.#successful) { return; } return this.#handler.onResponseData?.(controller, chunk); } onResponseEnd(controller, trailers) { if (this.#successful) { return; } this.#handler.onResponseEnd?.(controller, trailers); } onResponseError(controller, err) { if (this.#successful) { return; } if (this.#callback) { this.#callback(false); this.#callback = null; } if (typeof this.#handler.onResponseError === "function") { this.#handler.onResponseError(controller, err); } else { throw err; } } }; module4.exports = CacheRevalidationHandler; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/cache.js var require_cache2 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/cache.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { Readable: Readable11 } = __require("stream"); var util3 = require_util(); var CacheHandler = require_cache_handler(); var MemoryCacheStore = require_memory_cache_store(); var CacheRevalidationHandler = require_cache_revalidation_handler(); var { assertCacheStore, assertCacheMethods, makeCacheKey, normalizeHeaders, parseCacheControlHeader } = require_cache(); var { AbortError: AbortError2 } = require_errors(); var nop = /* @__PURE__ */ __name(() => { }, "nop"); function needsRevalidation(result, cacheControlDirectives, { headers = {} }) { if (cacheControlDirectives?.["no-cache"]) { return true; } if (result.cacheControlDirectives?.["no-cache"] && !Array.isArray(result.cacheControlDirectives["no-cache"])) { return true; } if (headers["if-modified-since"] || headers["if-none-match"]) { return true; } return false; } __name(needsRevalidation, "needsRevalidation"); function isStale(result, cacheControlDirectives) { const now = Date.now(); if (now > result.staleAt) { if (cacheControlDirectives?.["max-stale"]) { const gracePeriod = result.staleAt + cacheControlDirectives["max-stale"] * 1e3; return now > gracePeriod; } return true; } if (cacheControlDirectives?.["min-fresh"]) { const timeLeftTillStale = result.staleAt - now; const threshold = cacheControlDirectives["min-fresh"] * 1e3; return timeLeftTillStale <= threshold; } return false; } __name(isStale, "isStale"); function withinStaleWhileRevalidateWindow(result) { const staleWhileRevalidate = result.cacheControlDirectives?.["stale-while-revalidate"]; if (!staleWhileRevalidate) { return false; } const now = Date.now(); const staleWhileRevalidateExpiry = result.staleAt + staleWhileRevalidate * 1e3; return now <= staleWhileRevalidateExpiry; } __name(withinStaleWhileRevalidateWindow, "withinStaleWhileRevalidateWindow"); function handleUncachedResponse(dispatch, globalOpts, cacheKey, handler, opts, reqCacheControl) { if (reqCacheControl?.["only-if-cached"]) { let aborted = false; try { if (typeof handler.onConnect === "function") { handler.onConnect(() => { aborted = true; }); if (aborted) { return; } } if (typeof handler.onHeaders === "function") { handler.onHeaders(504, [], nop, "Gateway Timeout"); if (aborted) { return; } } if (typeof handler.onComplete === "function") { handler.onComplete([]); } } catch (err) { if (typeof handler.onError === "function") { handler.onError(err); } } return true; } return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler)); } __name(handleUncachedResponse, "handleUncachedResponse"); function sendCachedValue(handler, opts, result, age, context2, isStale2) { const stream2 = util3.isStream(result.body) ? result.body : Readable11.from(result.body ?? []); assert58(!stream2.destroyed, "stream should not be destroyed"); assert58(!stream2.readableDidRead, "stream should not be readableDidRead"); const controller = { resume() { stream2.resume(); }, pause() { stream2.pause(); }, get paused() { return stream2.isPaused(); }, get aborted() { return stream2.destroyed; }, get reason() { return stream2.errored; }, abort(reason) { stream2.destroy(reason ?? new AbortError2()); } }; stream2.on("error", function(err) { if (!this.readableEnded) { if (typeof handler.onResponseError === "function") { handler.onResponseError(controller, err); } else { throw err; } } }).on("close", function() { if (!this.errored) { handler.onResponseEnd?.(controller, {}); } }); handler.onRequestStart?.(controller, context2); if (stream2.destroyed) { return; } const headers = { ...result.headers, age: String(age) }; if (isStale2) { headers.warning = '110 - "response is stale"'; } handler.onResponseStart?.(controller, result.statusCode, headers, result.statusMessage); if (opts.method === "HEAD") { stream2.destroy(); } else { stream2.on("data", function(chunk) { handler.onResponseData?.(controller, chunk); }); } } __name(sendCachedValue, "sendCachedValue"); function handleResult2(dispatch, globalOpts, cacheKey, handler, opts, reqCacheControl, result) { if (!result) { return handleUncachedResponse(dispatch, globalOpts, cacheKey, handler, opts, reqCacheControl); } const now = Date.now(); if (now > result.deleteAt) { return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler)); } const age = Math.round((now - result.cachedAt) / 1e3); if (reqCacheControl?.["max-age"] && age >= reqCacheControl["max-age"]) { return dispatch(opts, handler); } const stale = isStale(result, reqCacheControl); const revalidate = needsRevalidation(result, reqCacheControl, opts); if (stale || revalidate) { if (util3.isStream(opts.body) && util3.bodyLength(opts.body) !== 0) { return dispatch(opts, new CacheHandler(globalOpts, cacheKey, handler)); } if (!revalidate && withinStaleWhileRevalidateWindow(result)) { sendCachedValue(handler, opts, result, age, null, true); queueMicrotask(() => { let headers2 = { ...opts.headers, "if-modified-since": new Date(result.cachedAt).toUTCString() }; if (result.etag) { headers2["if-none-match"] = result.etag; } if (result.vary) { headers2 = { ...headers2, ...result.vary }; } dispatch( { ...opts, headers: headers2 }, new CacheHandler(globalOpts, cacheKey, { // Silent handler that just updates the cache onRequestStart() { }, onRequestUpgrade() { }, onResponseStart() { }, onResponseData() { }, onResponseEnd() { }, onResponseError() { } }) ); }); return true; } let withinStaleIfErrorThreshold = false; const staleIfErrorExpiry = result.cacheControlDirectives["stale-if-error"] ?? reqCacheControl?.["stale-if-error"]; if (staleIfErrorExpiry) { withinStaleIfErrorThreshold = now < result.staleAt + staleIfErrorExpiry * 1e3; } let headers = { ...opts.headers, "if-modified-since": new Date(result.cachedAt).toUTCString() }; if (result.etag) { headers["if-none-match"] = result.etag; } if (result.vary) { headers = { ...headers, ...result.vary }; } return dispatch( { ...opts, headers }, new CacheRevalidationHandler( (success2, context2) => { if (success2) { sendCachedValue(handler, opts, result, age, context2, stale); } else if (util3.isStream(result.body)) { result.body.on("error", nop).destroy(); } }, new CacheHandler(globalOpts, cacheKey, handler), withinStaleIfErrorThreshold ) ); } if (util3.isStream(opts.body)) { opts.body.on("error", nop).destroy(); } sendCachedValue(handler, opts, result, age, null, false); } __name(handleResult2, "handleResult"); module4.exports = (opts = {}) => { const { store = new MemoryCacheStore(), methods = ["GET"], cacheByDefault = void 0, type = "shared" } = opts; if (typeof opts !== "object" || opts === null) { throw new TypeError(`expected type of opts to be an Object, got ${opts === null ? "null" : typeof opts}`); } assertCacheStore(store, "opts.store"); assertCacheMethods(methods, "opts.methods"); if (typeof cacheByDefault !== "undefined" && typeof cacheByDefault !== "number") { throw new TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof cacheByDefault}`); } if (typeof type !== "undefined" && type !== "shared" && type !== "private") { throw new TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof type}`); } const globalOpts = { store, methods, cacheByDefault, type }; const safeMethodsToNotCache = util3.safeHTTPMethods.filter((method) => methods.includes(method) === false); return (dispatch) => { return (opts2, handler) => { if (!opts2.origin || safeMethodsToNotCache.includes(opts2.method)) { return dispatch(opts2, handler); } opts2 = { ...opts2, headers: normalizeHeaders(opts2) }; const reqCacheControl = opts2.headers?.["cache-control"] ? parseCacheControlHeader(opts2.headers["cache-control"]) : void 0; if (reqCacheControl?.["no-store"]) { return dispatch(opts2, handler); } const cacheKey = makeCacheKey(opts2); const result = store.get(cacheKey); if (result && typeof result.then === "function") { return result.then((result2) => handleResult2( dispatch, globalOpts, cacheKey, handler, opts2, reqCacheControl, result2 )); } else { return handleResult2( dispatch, globalOpts, cacheKey, handler, opts2, reqCacheControl, result ); } }; }; }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/decompress.js var require_decompress = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/decompress.js"(exports, module4) { init_import_meta_url(); var { createInflate, createGunzip, createBrotliDecompress, createZstdDecompress } = __require("zlib"); var { pipeline } = __require("stream"); var DecoratorHandler = require_decorator_handler(); var { runtimeFeatures } = require_runtime_features(); var supportedEncodings = { gzip: createGunzip, "x-gzip": createGunzip, br: createBrotliDecompress, deflate: createInflate, compress: createInflate, "x-compress": createInflate, ...runtimeFeatures.has("zstd") ? { zstd: createZstdDecompress } : {} }; var defaultSkipStatusCodes = ( /** @type {const} */ [204, 304] ); var warningEmitted2 = ( /** @type {boolean} */ false ); var DecompressHandler = class extends DecoratorHandler { static { __name(this, "DecompressHandler"); } /** @type {Transform[]} */ #decompressors = []; /** @type {NodeJS.WritableStream&NodeJS.ReadableStream|null} */ #pipelineStream; /** @type {Readonly} */ #skipStatusCodes; /** @type {boolean} */ #skipErrorResponses; constructor(handler, { skipStatusCodes = defaultSkipStatusCodes, skipErrorResponses = true } = {}) { super(handler); this.#skipStatusCodes = skipStatusCodes; this.#skipErrorResponses = skipErrorResponses; } /** * Determines if decompression should be skipped based on encoding and status code * @param {string} contentEncoding - Content-Encoding header value * @param {number} statusCode - HTTP status code of the response * @returns {boolean} - True if decompression should be skipped */ #shouldSkipDecompression(contentEncoding, statusCode) { if (!contentEncoding || statusCode < 200) return true; if (this.#skipStatusCodes.includes(statusCode)) return true; if (this.#skipErrorResponses && statusCode >= 400) return true; return false; } /** * Creates a chain of decompressors for multiple content encodings * * @param {string} encodings - Comma-separated list of content encodings * @returns {Array} - Array of decompressor streams * @throws {Error} - If the number of content-encodings exceeds the maximum allowed */ #createDecompressionChain(encodings) { const parts = encodings.split(","); const maxContentEncodings = 5; if (parts.length > maxContentEncodings) { throw new Error(`too many content-encodings in response: ${parts.length}, maximum allowed is ${maxContentEncodings}`); } const decompressors = []; for (let i7 = parts.length - 1; i7 >= 0; i7--) { const encoding = parts[i7].trim(); if (!encoding) continue; if (!supportedEncodings[encoding]) { decompressors.length = 0; return decompressors; } decompressors.push(supportedEncodings[encoding]()); } return decompressors; } /** * Sets up event handlers for a decompressor stream using readable events * @param {DecompressorStream} decompressor - The decompressor stream * @param {Controller} controller - The controller to coordinate with * @returns {void} */ #setupDecompressorEvents(decompressor, controller) { decompressor.on("readable", () => { let chunk; while ((chunk = decompressor.read()) !== null) { const result = super.onResponseData(controller, chunk); if (result === false) { break; } } }); decompressor.on("error", (error2) => { super.onResponseError(controller, error2); }); } /** * Sets up event handling for a single decompressor * @param {Controller} controller - The controller to handle events * @returns {void} */ #setupSingleDecompressor(controller) { const decompressor = this.#decompressors[0]; this.#setupDecompressorEvents(decompressor, controller); decompressor.on("end", () => { super.onResponseEnd(controller, {}); }); } /** * Sets up event handling for multiple chained decompressors using pipeline * @param {Controller} controller - The controller to handle events * @returns {void} */ #setupMultipleDecompressors(controller) { const lastDecompressor = this.#decompressors[this.#decompressors.length - 1]; this.#setupDecompressorEvents(lastDecompressor, controller); this.#pipelineStream = pipeline(this.#decompressors, (err) => { if (err) { super.onResponseError(controller, err); return; } super.onResponseEnd(controller, {}); }); } /** * Cleans up decompressor references to prevent memory leaks * @returns {void} */ #cleanupDecompressors() { this.#decompressors.length = 0; this.#pipelineStream = null; } /** * @param {Controller} controller * @param {number} statusCode * @param {Record} headers * @param {string} statusMessage * @returns {void} */ onResponseStart(controller, statusCode, headers, statusMessage) { const contentEncoding = headers["content-encoding"]; if (this.#shouldSkipDecompression(contentEncoding, statusCode)) { return super.onResponseStart(controller, statusCode, headers, statusMessage); } const decompressors = this.#createDecompressionChain(contentEncoding.toLowerCase()); if (decompressors.length === 0) { this.#cleanupDecompressors(); return super.onResponseStart(controller, statusCode, headers, statusMessage); } this.#decompressors = decompressors; const { "content-encoding": _5, "content-length": __, ...newHeaders } = headers; if (this.#decompressors.length === 1) { this.#setupSingleDecompressor(controller); } else { this.#setupMultipleDecompressors(controller); } super.onResponseStart(controller, statusCode, newHeaders, statusMessage); } /** * @param {Controller} controller * @param {Buffer} chunk * @returns {void} */ onResponseData(controller, chunk) { if (this.#decompressors.length > 0) { this.#decompressors[0].write(chunk); return; } super.onResponseData(controller, chunk); } /** * @param {Controller} controller * @param {Record | undefined} trailers * @returns {void} */ onResponseEnd(controller, trailers) { if (this.#decompressors.length > 0) { this.#decompressors[0].end(); this.#cleanupDecompressors(); return; } super.onResponseEnd(controller, trailers); } /** * @param {Controller} controller * @param {Error} err * @returns {void} */ onResponseError(controller, err) { if (this.#decompressors.length > 0) { for (const decompressor of this.#decompressors) { decompressor.destroy(err); } this.#cleanupDecompressors(); } super.onResponseError(controller, err); } }; function createDecompressInterceptor(options = {}) { if (!warningEmitted2) { process.emitWarning( "DecompressInterceptor is experimental and subject to change", "ExperimentalWarning" ); warningEmitted2 = true; } return (dispatch) => { return (opts, handler) => { const decompressHandler = new DecompressHandler(handler, options); return dispatch(opts, decompressHandler); }; }; } __name(createDecompressInterceptor, "createDecompressInterceptor"); module4.exports = createDecompressInterceptor; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/deduplication-handler.js var require_deduplication_handler = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/handler/deduplication-handler.js"(exports, module4) { init_import_meta_url(); var DeduplicationHandler = class { static { __name(this, "DeduplicationHandler"); } /** * @type {DispatchHandler} */ #primaryHandler; /** * @type {DispatchHandler[]} */ #waitingHandlers = []; /** * @type {Buffer[]} */ #chunks = []; /** * @type {number} */ #statusCode = 0; /** * @type {Record} */ #headers = {}; /** * @type {string} */ #statusMessage = ""; /** * @type {boolean} */ #aborted = false; /** * @type {import('../../types/dispatcher.d.ts').default.DispatchController | null} */ #controller = null; /** * @type {(() => void) | null} */ #onComplete = null; /** * @param {DispatchHandler} primaryHandler The primary handler * @param {() => void} onComplete Callback when request completes */ constructor(primaryHandler, onComplete) { this.#primaryHandler = primaryHandler; this.#onComplete = onComplete; } /** * Add a waiting handler that will receive the buffered response * @param {DispatchHandler} handler */ addWaitingHandler(handler) { this.#waitingHandlers.push(handler); } /** * @param {() => void} abort * @param {any} context */ onRequestStart(controller, context2) { this.#controller = controller; this.#primaryHandler.onRequestStart?.(controller, context2); } /** * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller * @param {number} statusCode * @param {import('../../types/header.d.ts').IncomingHttpHeaders} headers * @param {Socket} socket */ onRequestUpgrade(controller, statusCode, headers, socket) { this.#primaryHandler.onRequestUpgrade?.(controller, statusCode, headers, socket); } /** * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller * @param {number} statusCode * @param {Record} headers * @param {string} statusMessage */ onResponseStart(controller, statusCode, headers, statusMessage) { this.#statusCode = statusCode; this.#headers = headers; this.#statusMessage = statusMessage; this.#primaryHandler.onResponseStart?.(controller, statusCode, headers, statusMessage); } /** * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller * @param {Buffer} chunk */ onResponseData(controller, chunk) { this.#chunks.push(Buffer.from(chunk)); this.#primaryHandler.onResponseData?.(controller, chunk); } /** * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller * @param {object} trailers */ onResponseEnd(controller, trailers) { this.#primaryHandler.onResponseEnd?.(controller, trailers); this.#notifyWaitingHandlers(); this.#onComplete?.(); } /** * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller * @param {Error} err */ onResponseError(controller, err) { this.#aborted = true; this.#primaryHandler.onResponseError?.(controller, err); this.#notifyWaitingHandlersError(err); this.#onComplete?.(); } /** * Notify all waiting handlers with the buffered response */ #notifyWaitingHandlers() { const body = Buffer.concat(this.#chunks); for (const handler of this.#waitingHandlers) { const waitingController = { resume() { }, pause() { }, get paused() { return false; }, get aborted() { return false; }, get reason() { return null; }, abort() { } }; try { handler.onRequestStart?.(waitingController, null); if (waitingController.aborted) { continue; } handler.onResponseStart?.( waitingController, this.#statusCode, this.#headers, this.#statusMessage ); if (waitingController.aborted) { continue; } if (body.length > 0) { handler.onResponseData?.(waitingController, body); } handler.onResponseEnd?.(waitingController, {}); } catch { } } this.#waitingHandlers = []; this.#chunks = []; } /** * Notify all waiting handlers of an error * @param {Error} err */ #notifyWaitingHandlersError(err) { for (const handler of this.#waitingHandlers) { const waitingController = { resume() { }, pause() { }, get paused() { return false; }, get aborted() { return true; }, get reason() { return err; }, abort() { } }; try { handler.onRequestStart?.(waitingController, null); handler.onResponseError?.(waitingController, err); } catch { } } this.#waitingHandlers = []; this.#chunks = []; } }; module4.exports = DeduplicationHandler; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/deduplicate.js var require_deduplicate = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/interceptor/deduplicate.js"(exports, module4) { init_import_meta_url(); var diagnosticsChannel = __require("diagnostics_channel"); var util3 = require_util(); var DeduplicationHandler = require_deduplication_handler(); var { normalizeHeaders, makeCacheKey, makeDeduplicationKey } = require_cache(); var pendingRequestsChannel = diagnosticsChannel.channel("undici:request:pending-requests"); module4.exports = (opts = {}) => { const { methods = ["GET"], skipHeaderNames = [], excludeHeaderNames = [] } = opts; if (typeof opts !== "object" || opts === null) { throw new TypeError(`expected type of opts to be an Object, got ${opts === null ? "null" : typeof opts}`); } if (!Array.isArray(methods)) { throw new TypeError(`expected opts.methods to be an array, got ${typeof methods}`); } for (const method of methods) { if (!util3.safeHTTPMethods.includes(method)) { throw new TypeError(`expected opts.methods to only contain safe HTTP methods, got ${method}`); } } if (!Array.isArray(skipHeaderNames)) { throw new TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof skipHeaderNames}`); } if (!Array.isArray(excludeHeaderNames)) { throw new TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof excludeHeaderNames}`); } const skipHeaderNamesSet = new Set(skipHeaderNames.map((name2) => name2.toLowerCase())); const excludeHeaderNamesSet = new Set(excludeHeaderNames.map((name2) => name2.toLowerCase())); const safeMethodsToNotDeduplicate = util3.safeHTTPMethods.filter((method) => methods.includes(method) === false); const pendingRequests2 = /* @__PURE__ */ new Map(); return (dispatch) => { return (opts2, handler) => { if (!opts2.origin || safeMethodsToNotDeduplicate.includes(opts2.method)) { return dispatch(opts2, handler); } opts2 = { ...opts2, headers: normalizeHeaders(opts2) }; if (skipHeaderNamesSet.size > 0) { for (const headerName of Object.keys(opts2.headers)) { if (skipHeaderNamesSet.has(headerName.toLowerCase())) { return dispatch(opts2, handler); } } } const cacheKey = makeCacheKey(opts2); const dedupeKey = makeDeduplicationKey(cacheKey, excludeHeaderNamesSet); const pendingHandler = pendingRequests2.get(dedupeKey); if (pendingHandler) { pendingHandler.addWaitingHandler(handler); return true; } const deduplicationHandler = new DeduplicationHandler( handler, () => { pendingRequests2.delete(dedupeKey); if (pendingRequestsChannel.hasSubscribers) { pendingRequestsChannel.publish({ size: pendingRequests2.size, key: dedupeKey, type: "removed" }); } } ); pendingRequests2.set(dedupeKey, deduplicationHandler); if (pendingRequestsChannel.hasSubscribers) { pendingRequestsChannel.publish({ size: pendingRequests2.size, key: dedupeKey, type: "added" }); } return dispatch(opts2, deduplicationHandler); }; }; }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/cache/sqlite-cache-store.js var require_sqlite_cache_store = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/cache/sqlite-cache-store.js"(exports, module4) { init_import_meta_url(); var { Writable: Writable5 } = __require("stream"); var { assertCacheKey, assertCacheValue } = require_cache(); var DatabaseSync; var VERSION2 = 3; var MAX_ENTRY_SIZE = 2 * 1e3 * 1e3 * 1e3; module4.exports = class SqliteCacheStore { static { __name(this, "SqliteCacheStore"); } #maxEntrySize = MAX_ENTRY_SIZE; #maxCount = Infinity; /** * @type {import('node:sqlite').DatabaseSync} */ #db; /** * @type {import('node:sqlite').StatementSync} */ #getValuesQuery; /** * @type {import('node:sqlite').StatementSync} */ #updateValueQuery; /** * @type {import('node:sqlite').StatementSync} */ #insertValueQuery; /** * @type {import('node:sqlite').StatementSync} */ #deleteExpiredValuesQuery; /** * @type {import('node:sqlite').StatementSync} */ #deleteByUrlQuery; /** * @type {import('node:sqlite').StatementSync} */ #countEntriesQuery; /** * @type {import('node:sqlite').StatementSync | null} */ #deleteOldValuesQuery; /** * @param {import('../../types/cache-interceptor.d.ts').default.SqliteCacheStoreOpts | undefined} opts */ constructor(opts) { if (opts) { if (typeof opts !== "object") { throw new TypeError("SqliteCacheStore options must be an object"); } if (opts.maxEntrySize !== void 0) { if (typeof opts.maxEntrySize !== "number" || !Number.isInteger(opts.maxEntrySize) || opts.maxEntrySize < 0) { throw new TypeError("SqliteCacheStore options.maxEntrySize must be a non-negative integer"); } if (opts.maxEntrySize > MAX_ENTRY_SIZE) { throw new TypeError("SqliteCacheStore options.maxEntrySize must be less than 2gb"); } this.#maxEntrySize = opts.maxEntrySize; } if (opts.maxCount !== void 0) { if (typeof opts.maxCount !== "number" || !Number.isInteger(opts.maxCount) || opts.maxCount < 0) { throw new TypeError("SqliteCacheStore options.maxCount must be a non-negative integer"); } this.#maxCount = opts.maxCount; } } if (!DatabaseSync) { DatabaseSync = __require("sqlite").DatabaseSync; } this.#db = new DatabaseSync(opts?.location ?? ":memory:"); this.#db.exec(` PRAGMA journal_mode = WAL; PRAGMA synchronous = NORMAL; PRAGMA temp_store = memory; PRAGMA optimize; CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION2} ( -- Data specific to us id INTEGER PRIMARY KEY AUTOINCREMENT, url TEXT NOT NULL, method TEXT NOT NULL, -- Data returned to the interceptor body BUF NULL, deleteAt INTEGER NOT NULL, statusCode INTEGER NOT NULL, statusMessage TEXT NOT NULL, headers TEXT NULL, cacheControlDirectives TEXT NULL, etag TEXT NULL, vary TEXT NULL, cachedAt INTEGER NOT NULL, staleAt INTEGER NOT NULL ); CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION2}_getValuesQuery ON cacheInterceptorV${VERSION2}(url, method, deleteAt); CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION2}_deleteByUrlQuery ON cacheInterceptorV${VERSION2}(deleteAt); `); this.#getValuesQuery = this.#db.prepare(` SELECT id, body, deleteAt, statusCode, statusMessage, headers, etag, cacheControlDirectives, vary, cachedAt, staleAt FROM cacheInterceptorV${VERSION2} WHERE url = ? AND method = ? ORDER BY deleteAt ASC `); this.#updateValueQuery = this.#db.prepare(` UPDATE cacheInterceptorV${VERSION2} SET body = ?, deleteAt = ?, statusCode = ?, statusMessage = ?, headers = ?, etag = ?, cacheControlDirectives = ?, cachedAt = ?, staleAt = ? WHERE id = ? `); this.#insertValueQuery = this.#db.prepare(` INSERT INTO cacheInterceptorV${VERSION2} ( url, method, body, deleteAt, statusCode, statusMessage, headers, etag, cacheControlDirectives, vary, cachedAt, staleAt ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) `); this.#deleteByUrlQuery = this.#db.prepare( `DELETE FROM cacheInterceptorV${VERSION2} WHERE url = ?` ); this.#countEntriesQuery = this.#db.prepare( `SELECT COUNT(*) AS total FROM cacheInterceptorV${VERSION2}` ); this.#deleteExpiredValuesQuery = this.#db.prepare( `DELETE FROM cacheInterceptorV${VERSION2} WHERE deleteAt <= ?` ); this.#deleteOldValuesQuery = this.#maxCount === Infinity ? null : this.#db.prepare(` DELETE FROM cacheInterceptorV${VERSION2} WHERE id IN ( SELECT id FROM cacheInterceptorV${VERSION2} ORDER BY cachedAt DESC LIMIT ? ) `); } close() { this.#db.close(); } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key * @returns {(import('../../types/cache-interceptor.d.ts').default.GetResult & { body?: Buffer }) | undefined} */ get(key) { assertCacheKey(key); const value = this.#findValue(key); return value ? { body: value.body ? Buffer.from(value.body.buffer, value.body.byteOffset, value.body.byteLength) : void 0, statusCode: value.statusCode, statusMessage: value.statusMessage, headers: value.headers ? JSON.parse(value.headers) : void 0, etag: value.etag ? value.etag : void 0, vary: value.vary ? JSON.parse(value.vary) : void 0, cacheControlDirectives: value.cacheControlDirectives ? JSON.parse(value.cacheControlDirectives) : void 0, cachedAt: value.cachedAt, staleAt: value.staleAt, deleteAt: value.deleteAt } : void 0; } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key * @param {import('../../types/cache-interceptor.d.ts').default.CacheValue & { body: null | Buffer | Array}} value */ set(key, value) { assertCacheKey(key); const url4 = this.#makeValueUrl(key); const body = Array.isArray(value.body) ? Buffer.concat(value.body) : value.body; const size = body?.byteLength; if (size && size > this.#maxEntrySize) { return; } const existingValue = this.#findValue(key, true); if (existingValue) { this.#updateValueQuery.run( body, value.deleteAt, value.statusCode, value.statusMessage, value.headers ? JSON.stringify(value.headers) : null, value.etag ? value.etag : null, value.cacheControlDirectives ? JSON.stringify(value.cacheControlDirectives) : null, value.cachedAt, value.staleAt, existingValue.id ); } else { this.#prune(); this.#insertValueQuery.run( url4, key.method, body, value.deleteAt, value.statusCode, value.statusMessage, value.headers ? JSON.stringify(value.headers) : null, value.etag ? value.etag : null, value.cacheControlDirectives ? JSON.stringify(value.cacheControlDirectives) : null, value.vary ? JSON.stringify(value.vary) : null, value.cachedAt, value.staleAt ); } } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key * @param {import('../../types/cache-interceptor.d.ts').default.CacheValue} value * @returns {Writable | undefined} */ createWriteStream(key, value) { assertCacheKey(key); assertCacheValue(value); let size = 0; const body = []; const store = this; return new Writable5({ decodeStrings: true, write(chunk, encoding, callback) { size += chunk.byteLength; if (size < store.#maxEntrySize) { body.push(chunk); } else { this.destroy(); } callback(); }, final(callback) { store.set(key, { ...value, body }); callback(); } }); } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key */ delete(key) { if (typeof key !== "object") { throw new TypeError(`expected key to be object, got ${typeof key}`); } this.#deleteByUrlQuery.run(this.#makeValueUrl(key)); } #prune() { if (Number.isFinite(this.#maxCount) && this.size <= this.#maxCount) { return 0; } { const removed = this.#deleteExpiredValuesQuery.run(Date.now()).changes; if (removed) { return removed; } } { const removed = this.#deleteOldValuesQuery?.run(Math.max(Math.floor(this.#maxCount * 0.1), 1)).changes; if (removed) { return removed; } } return 0; } /** * Counts the number of rows in the cache * @returns {Number} */ get size() { const { total } = this.#countEntriesQuery.get(); return total; } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key * @returns {string} */ #makeValueUrl(key) { return `${key.origin}/${key.path}`; } /** * @param {import('../../types/cache-interceptor.d.ts').default.CacheKey} key * @param {boolean} [canBeExpired=false] * @returns {SqliteStoreValue | undefined} */ #findValue(key, canBeExpired = false) { const url4 = this.#makeValueUrl(key); const { headers, method } = key; const values = this.#getValuesQuery.all(url4, method); if (values.length === 0) { return void 0; } const now = Date.now(); for (const value of values) { if (now >= value.deleteAt && !canBeExpired) { return void 0; } let matches = true; if (value.vary) { const vary = JSON.parse(value.vary); for (const header in vary) { if (!headerValueEquals(headers[header], vary[header])) { matches = false; break; } } } if (matches) { return value; } } return void 0; } }; function headerValueEquals(lhs, rhs) { if (lhs == null && rhs == null) { return true; } if (lhs == null && rhs != null || lhs != null && rhs == null) { return false; } if (Array.isArray(lhs) && Array.isArray(rhs)) { if (lhs.length !== rhs.length) { return false; } return lhs.every((x7, i7) => x7 === rhs[i7]); } return lhs === rhs; } __name(headerValueEquals, "headerValueEquals"); } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/headers.js var require_headers = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/headers.js"(exports, module4) { init_import_meta_url(); var { kConstruct } = require_symbols(); var { kEnumerableProperty } = require_util(); var { iteratorMixin, isValidHeaderName, isValidHeaderValue } = require_util2(); var { webidl } = require_webidl(); var assert58 = __require("assert"); var util3 = __require("util"); function isHTTPWhiteSpaceCharCode(code) { return code === 10 || code === 13 || code === 9 || code === 32; } __name(isHTTPWhiteSpaceCharCode, "isHTTPWhiteSpaceCharCode"); function headerValueNormalize(potentialValue) { let i7 = 0; let j7 = potentialValue.length; while (j7 > i7 && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(j7 - 1))) --j7; while (j7 > i7 && isHTTPWhiteSpaceCharCode(potentialValue.charCodeAt(i7))) ++i7; return i7 === 0 && j7 === potentialValue.length ? potentialValue : potentialValue.substring(i7, j7); } __name(headerValueNormalize, "headerValueNormalize"); function fill2(headers, object) { if (Array.isArray(object)) { for (let i7 = 0; i7 < object.length; ++i7) { const header = object[i7]; 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 object === "object" && object !== null) { const keys = Object.keys(object); for (let i7 = 0; i7 < keys.length; ++i7) { appendHeader(headers, keys[i7], object[keys[i7]]); } } else { throw webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence>", "record"] }); } } __name(fill2, "fill"); function appendHeader(headers, name2, value) { value = headerValueNormalize(value); if (!isValidHeaderName(name2)) { throw webidl.errors.invalidArgument({ prefix: "Headers.append", value: name2, 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(name2, value, false); } __name(appendHeader, "appendHeader"); function headersListSortAndCombine(target) { const headersList = getHeadersList(target); if (!headersList) { return []; } if (headersList.sortedMap) { return headersList.sortedMap; } const headers = []; const names = headersList.toSortedArray(); const cookies = headersList.cookies; if (cookies === null || cookies.length === 1) { return headersList.sortedMap = names; } for (let i7 = 0; i7 < names.length; ++i7) { const { 0: name2, 1: value } = names[i7]; if (name2 === "set-cookie") { for (let j7 = 0; j7 < cookies.length; ++j7) { headers.push([name2, cookies[j7]]); } } else { headers.push([name2, value]); } } return headersList.sortedMap = headers; } __name(headersListSortAndCombine, "headersListSortAndCombine"); function compareHeaderName(a7, b11) { return a7[0] < b11[0] ? -1 : 1; } __name(compareHeaderName, "compareHeaderName"); var HeadersList = class _HeadersList { static { __name(this, "HeadersList"); } /** @type {[string, string][]|null} */ cookies = null; sortedMap; headersMap; constructor(init4) { if (init4 instanceof _HeadersList) { this.headersMap = new Map(init4.headersMap); this.sortedMap = init4.sortedMap; this.cookies = init4.cookies === null ? null : [...init4.cookies]; } else { this.headersMap = new Map(init4); this.sortedMap = null; } } /** * @see https://fetch.spec.whatwg.org/#header-list-contains * @param {string} name * @param {boolean} isLowerCase */ contains(name2, isLowerCase) { return this.headersMap.has(isLowerCase ? name2 : name2.toLowerCase()); } clear() { this.headersMap.clear(); this.sortedMap = null; this.cookies = null; } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-append * @param {string} name * @param {string} value * @param {boolean} isLowerCase */ append(name2, value, isLowerCase) { this.sortedMap = null; const lowercaseName = isLowerCase ? name2 : name2.toLowerCase(); const exists = this.headersMap.get(lowercaseName); if (exists) { const delimiter = lowercaseName === "cookie" ? "; " : ", "; this.headersMap.set(lowercaseName, { name: exists.name, value: `${exists.value}${delimiter}${value}` }); } else { this.headersMap.set(lowercaseName, { name: name2, 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(name2, value, isLowerCase) { this.sortedMap = null; const lowercaseName = isLowerCase ? name2 : name2.toLowerCase(); if (lowercaseName === "set-cookie") { this.cookies = [value]; } this.headersMap.set(lowercaseName, { name: name2, value }); } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-delete * @param {string} name * @param {boolean} isLowerCase */ delete(name2, isLowerCase) { this.sortedMap = null; if (!isLowerCase) name2 = name2.toLowerCase(); if (name2 === "set-cookie") { this.cookies = null; } this.headersMap.delete(name2); } /** * @see https://fetch.spec.whatwg.org/#concept-header-list-get * @param {string} name * @param {boolean} isLowerCase * @returns {string | null} */ get(name2, isLowerCase) { return this.headersMap.get(isLowerCase ? name2 : name2.toLowerCase())?.value ?? null; } *[Symbol.iterator]() { for (const { 0: name2, 1: { value } } of this.headersMap) { yield [name2, value]; } } get entries() { const headers = {}; if (this.headersMap.size !== 0) { for (const { name: name2, value } of this.headersMap.values()) { headers[name2] = value; } } return headers; } rawValues() { return this.headersMap.values(); } get entriesList() { const headers = []; if (this.headersMap.size !== 0) { for (const { 0: lowerName, 1: { name: name2, value } } of this.headersMap) { if (lowerName === "set-cookie") { for (const cookie of this.cookies) { headers.push([name2, cookie]); } } else { headers.push([name2, value]); } } } return headers; } // https://fetch.spec.whatwg.org/#convert-header-names-to-a-sorted-lowercase-set toSortedArray() { const size = this.headersMap.size; const array = new Array(size); if (size <= 32) { if (size === 0) { return array; } const iterator = this.headersMap[Symbol.iterator](); const firstValue = iterator.next().value; array[0] = [firstValue[0], firstValue[1].value]; assert58(firstValue[1].value !== null); for (let i7 = 1, j7 = 0, right2 = 0, left2 = 0, pivot = 0, x7, value; i7 < size; ++i7) { value = iterator.next().value; x7 = array[i7] = [value[0], value[1].value]; assert58(x7[1] !== null); left2 = 0; right2 = i7; while (left2 < right2) { pivot = left2 + (right2 - left2 >> 1); if (array[pivot][0] <= x7[0]) { left2 = pivot + 1; } else { right2 = pivot; } } if (i7 !== pivot) { j7 = i7; while (j7 > left2) { array[j7] = array[--j7]; } array[left2] = x7; } } if (!iterator.next().done) { throw new TypeError("Unreachable"); } return array; } else { let i7 = 0; for (const { 0: name2, 1: { value } } of this.headersMap) { array[i7++] = [name2, value]; assert58(value !== null); } return array.sort(compareHeaderName); } } }; var Headers5 = class _Headers { static { __name(this, "Headers"); } #guard; /** * @type {HeadersList} */ #headersList; /** * @param {HeadersInit|Symbol} [init] * @returns */ constructor(init4 = void 0) { webidl.util.markAsUncloneable(this); if (init4 === kConstruct) { return; } this.#headersList = new HeadersList(); this.#guard = "none"; if (init4 !== void 0) { init4 = webidl.converters.HeadersInit(init4, "Headers constructor", "init"); fill2(this, init4); } } // https://fetch.spec.whatwg.org/#dom-headers-append append(name2, value) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 2, "Headers.append"); const prefix = "Headers.append"; name2 = webidl.converters.ByteString(name2, prefix, "name"); value = webidl.converters.ByteString(value, prefix, "value"); return appendHeader(this, name2, value); } // https://fetch.spec.whatwg.org/#dom-headers-delete delete(name2) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.delete"); const prefix = "Headers.delete"; name2 = webidl.converters.ByteString(name2, prefix, "name"); if (!isValidHeaderName(name2)) { throw webidl.errors.invalidArgument({ prefix: "Headers.delete", value: name2, type: "header name" }); } if (this.#guard === "immutable") { throw new TypeError("immutable"); } if (!this.#headersList.contains(name2, false)) { return; } this.#headersList.delete(name2, false); } // https://fetch.spec.whatwg.org/#dom-headers-get get(name2) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.get"); const prefix = "Headers.get"; name2 = webidl.converters.ByteString(name2, prefix, "name"); if (!isValidHeaderName(name2)) { throw webidl.errors.invalidArgument({ prefix, value: name2, type: "header name" }); } return this.#headersList.get(name2, false); } // https://fetch.spec.whatwg.org/#dom-headers-has has(name2) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 1, "Headers.has"); const prefix = "Headers.has"; name2 = webidl.converters.ByteString(name2, prefix, "name"); if (!isValidHeaderName(name2)) { throw webidl.errors.invalidArgument({ prefix, value: name2, type: "header name" }); } return this.#headersList.contains(name2, false); } // https://fetch.spec.whatwg.org/#dom-headers-set set(name2, value) { webidl.brandCheck(this, _Headers); webidl.argumentLengthCheck(arguments, 2, "Headers.set"); const prefix = "Headers.set"; name2 = webidl.converters.ByteString(name2, prefix, "name"); value = webidl.converters.ByteString(value, prefix, "value"); value = headerValueNormalize(value); if (!isValidHeaderName(name2)) { throw webidl.errors.invalidArgument({ prefix, value: name2, 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(name2, 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 []; } [util3.inspect.custom](depth, options) { options.depth ??= depth; return `Headers ${util3.formatWithOptions(options, this.#headersList.entries)}`; } static getHeadersGuard(o7) { return o7.#guard; } static setHeadersGuard(o7, guard) { o7.#guard = guard; } /** * @param {Headers} o */ static getHeadersList(o7) { return o7.#headersList; } /** * @param {Headers} target * @param {HeadersList} list */ static setHeadersList(target, list) { target.#headersList = list; } }; var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers5; Reflect.deleteProperty(Headers5, "getHeadersGuard"); Reflect.deleteProperty(Headers5, "setHeadersGuard"); Reflect.deleteProperty(Headers5, "getHeadersList"); Reflect.deleteProperty(Headers5, "setHeadersList"); iteratorMixin("Headers", Headers5, headersListSortAndCombine, 0, 1); Object.defineProperties(Headers5.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, has: kEnumerableProperty, set: kEnumerableProperty, getSetCookie: kEnumerableProperty, [Symbol.toStringTag]: { value: "Headers", configurable: true }, [util3.inspect.custom]: { enumerable: false } }); webidl.converters.HeadersInit = function(V4, prefix, argument) { if (webidl.util.Type(V4) === webidl.util.Types.OBJECT) { const iterator = Reflect.get(V4, Symbol.iterator); if (!util3.types.isProxy(V4) && iterator === Headers5.prototype.entries) { try { return getHeadersList(V4).entriesList; } catch { } } if (typeof iterator === "function") { return webidl.converters["sequence>"](V4, prefix, argument, iterator.bind(V4)); } return webidl.converters["record"](V4, prefix, argument); } throw webidl.errors.conversionFailed({ prefix: "Headers constructor", argument: "Argument 1", types: ["sequence>", "record"] }); }; module4.exports = { fill: fill2, // for test. compareHeaderName, Headers: Headers5, HeadersList, getHeadersGuard, setHeadersGuard, setHeadersList, getHeadersList }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/response.js var require_response = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/response.js"(exports, module4) { init_import_meta_url(); var { Headers: Headers5, HeadersList, fill: fill2, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers(); var { extractBody, cloneBody, mixinBody, streamRegistry, bodyUnusable } = require_body(); var util3 = require_util(); var nodeUtil = __require("util"); var { kEnumerableProperty } = util3; var { isValidReasonPhrase, isCancelled, isAborted: isAborted2, isErrorLike, environmentSettingsObject: relevantRealm } = require_util2(); var { redirectStatusSet, nullBodyStatus } = require_constants3(); var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { kConstruct } = require_symbols(); var assert58 = __require("assert"); var { isomorphicEncode, serializeJavascriptValueToJSONString } = require_infra(); var textEncoder = new TextEncoder("utf-8"); var Response11 = class _Response { static { __name(this, "Response"); } /** @type {Headers} */ #headers; #state; // Creates network error Response. static error() { const responseObject = fromInnerResponse(makeNetworkError(), "immutable"); return responseObject; } // https://fetch.spec.whatwg.org/#dom-response-json static json(data, init4 = void 0) { webidl.argumentLengthCheck(arguments, 1, "Response.json"); if (init4 !== null) { init4 = webidl.converters.ResponseInit(init4); } const bytes = textEncoder.encode( serializeJavascriptValueToJSONString(data) ); const body = extractBody(bytes); const responseObject = fromInnerResponse(makeResponse({}), "response"); initializeResponse(responseObject, init4, { body: body[0], type: "application/json" }); return responseObject; } // Creates a redirect Response that redirects to url with status status. static redirect(url4, status2 = 302) { webidl.argumentLengthCheck(arguments, 1, "Response.redirect"); url4 = webidl.converters.USVString(url4); status2 = webidl.converters["unsigned short"](status2); let parsedURL; try { parsedURL = new URL(url4, relevantRealm.settingsObject.baseUrl); } catch (err) { throw new TypeError(`Failed to parse URL from ${url4}`, { cause: err }); } if (!redirectStatusSet.has(status2)) { throw new RangeError(`Invalid status code ${status2}`); } const responseObject = fromInnerResponse(makeResponse({}), "immutable"); responseObject.#state.status = status2; const value = isomorphicEncode(URLSerializer(parsedURL)); responseObject.#state.headersList.append("location", value, true); return responseObject; } // https://fetch.spec.whatwg.org/#dom-response constructor(body = null, init4 = void 0) { webidl.util.markAsUncloneable(this); if (body === kConstruct) { return; } if (body !== null) { body = webidl.converters.BodyInit(body, "Response", "body"); } init4 = webidl.converters.ResponseInit(init4); this.#state = makeResponse({}); this.#headers = new Headers5(kConstruct); setHeadersGuard(this.#headers, "response"); setHeadersList(this.#headers, this.#state.headersList); let bodyWithType = null; if (body != null) { const [extractedBody, type] = extractBody(body); bodyWithType = { body: extractedBody, type }; } initializeResponse(this, init4, bodyWithType); } // Returns response’s type, e.g., "cors". get type() { webidl.brandCheck(this, _Response); return this.#state.type; } // Returns response’s URL, if it has one; otherwise the empty string. get url() { webidl.brandCheck(this, _Response); const urlList = this.#state.urlList; const url4 = urlList[urlList.length - 1] ?? null; if (url4 === null) { return ""; } return URLSerializer(url4, true); } // Returns whether response was obtained through a redirect. get redirected() { webidl.brandCheck(this, _Response); return this.#state.urlList.length > 1; } // Returns response’s status. get status() { webidl.brandCheck(this, _Response); return this.#state.status; } // Returns whether response’s status is an ok status. get ok() { webidl.brandCheck(this, _Response); return this.#state.status >= 200 && this.#state.status <= 299; } // Returns response’s status message. get statusText() { webidl.brandCheck(this, _Response); return this.#state.statusText; } // Returns response’s headers as Headers. get headers() { webidl.brandCheck(this, _Response); return this.#headers; } get body() { webidl.brandCheck(this, _Response); return this.#state.body ? this.#state.body.stream : null; } get bodyUsed() { webidl.brandCheck(this, _Response); return !!this.#state.body && util3.isDisturbed(this.#state.body.stream); } // Returns a clone of response. clone() { webidl.brandCheck(this, _Response); if (bodyUnusable(this.#state)) { throw webidl.errors.exception({ header: "Response.clone", message: "Body has already been consumed." }); } const clonedResponse = cloneResponse(this.#state); if (this.#state.body?.stream) { streamRegistry.register(this, new WeakRef(this.#state.body.stream)); } return fromInnerResponse(clonedResponse, getHeadersGuard(this.#headers)); } [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)}`; } /** * @param {Response} response */ static getResponseHeaders(response) { return response.#headers; } /** * @param {Response} response * @param {Headers} newHeaders */ static setResponseHeaders(response, newHeaders) { response.#headers = newHeaders; } /** * @param {Response} response */ static getResponseState(response) { return response.#state; } /** * @param {Response} response * @param {any} newState */ static setResponseState(response, newState) { response.#state = newState; } }; var { getResponseHeaders, setResponseHeaders, getResponseState, setResponseState } = Response11; Reflect.deleteProperty(Response11, "getResponseHeaders"); Reflect.deleteProperty(Response11, "setResponseHeaders"); Reflect.deleteProperty(Response11, "getResponseState"); Reflect.deleteProperty(Response11, "setResponseState"); mixinBody(Response11, getResponseState); Object.defineProperties(Response11.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(Response11, { 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(response.body); } return newResponse; } __name(cloneResponse, "cloneResponse"); function makeResponse(init4) { return { aborted: false, rangeRequested: false, timingAllowPassed: false, requestIncludesCredentials: false, type: "default", status: 200, timingInfo: null, cacheState: "", statusText: "", ...init4, headersList: init4?.headersList ? new HeadersList(init4?.headersList) : new HeadersList(), urlList: init4?.urlList ? [...init4.urlList] : [] }; } __name(makeResponse, "makeResponse"); function makeNetworkError(reason) { const isError2 = isErrorLike(reason); return makeResponse({ type: "error", status: 0, error: isError2 ? reason : new Error(reason ? String(reason) : reason), aborted: reason && reason.name === "AbortError" }); } __name(makeNetworkError, "makeNetworkError"); function isNetworkError(response) { return ( // A network error is a response whose type is "error", response.type === "error" && // status is 0 response.status === 0 ); } __name(isNetworkError, "isNetworkError"); function makeFilteredResponse(response, state2) { state2 = { internalResponse: response, ...state2 }; return new Proxy(response, { get(target, p7) { return p7 in state2 ? state2[p7] : target[p7]; }, set(target, p7, value) { assert58(!(p7 in state2)); target[p7] = value; return true; } }); } __name(makeFilteredResponse, "makeFilteredResponse"); 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: [], status: 0, statusText: "", body: null }); } else if (type === "opaqueredirect") { return makeFilteredResponse(response, { type: "opaqueredirect", status: 0, statusText: "", headersList: [], body: null }); } else { assert58(false); } } __name(filterResponse, "filterResponse"); function makeAppropriateNetworkError(fetchParams, err = null) { assert58(isCancelled(fetchParams)); return isAborted2(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err })); } __name(makeAppropriateNetworkError, "makeAppropriateNetworkError"); function initializeResponse(response, init4, body) { if (init4.status !== null && (init4.status < 200 || init4.status > 599)) { throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); } if ("statusText" in init4 && init4.statusText != null) { if (!isValidReasonPhrase(String(init4.statusText))) { throw new TypeError("Invalid statusText"); } } if ("status" in init4 && init4.status != null) { getResponseState(response).status = init4.status; } if ("statusText" in init4 && init4.statusText != null) { getResponseState(response).statusText = init4.statusText; } if ("headers" in init4 && init4.headers != null) { fill2(getResponseHeaders(response), init4.headers); } if (body) { if (nullBodyStatus.includes(response.status)) { throw webidl.errors.exception({ header: "Response constructor", message: `Invalid response status code ${response.status}` }); } getResponseState(response).body = body.body; if (body.type != null && !getResponseState(response).headersList.contains("content-type", true)) { getResponseState(response).headersList.append("content-type", body.type, true); } } } __name(initializeResponse, "initializeResponse"); function fromInnerResponse(innerResponse, guard) { const response = new Response11(kConstruct); setResponseState(response, innerResponse); const headers = new Headers5(kConstruct); setResponseHeaders(response, headers); setHeadersList(headers, innerResponse.headersList); setHeadersGuard(headers, guard); if (innerResponse.body?.stream) { streamRegistry.register(response, new WeakRef(innerResponse.body.stream)); } return response; } __name(fromInnerResponse, "fromInnerResponse"); webidl.converters.XMLHttpRequestBodyInit = function(V4, prefix, name2) { if (typeof V4 === "string") { return webidl.converters.USVString(V4, prefix, name2); } if (webidl.is.Blob(V4)) { return V4; } if (webidl.is.BufferSource(V4)) { return V4; } if (webidl.is.FormData(V4)) { return V4; } if (webidl.is.URLSearchParams(V4)) { return V4; } return webidl.converters.DOMString(V4, prefix, name2); }; webidl.converters.BodyInit = function(V4, prefix, argument) { if (webidl.is.ReadableStream(V4)) { return V4; } if (V4?.[Symbol.asyncIterator]) { return V4; } return webidl.converters.XMLHttpRequestBodyInit(V4, prefix, argument); }; webidl.converters.ResponseInit = webidl.dictionaryConverter([ { key: "status", converter: webidl.converters["unsigned short"], defaultValue: /* @__PURE__ */ __name(() => 200, "defaultValue") }, { key: "statusText", converter: webidl.converters.ByteString, defaultValue: /* @__PURE__ */ __name(() => "", "defaultValue") }, { key: "headers", converter: webidl.converters.HeadersInit } ]); webidl.is.Response = webidl.util.MakeTypeAssertion(Response11); module4.exports = { isNetworkError, makeNetworkError, makeResponse, makeAppropriateNetworkError, filterResponse, Response: Response11, cloneResponse, fromInnerResponse, getResponseState }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/request.js var require_request2 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/request.js"(exports, module4) { init_import_meta_url(); var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body(); var { Headers: Headers5, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers(); var util3 = require_util(); var nodeUtil = __require("util"); var { isValidHTTPToken, sameOrigin, environmentSettingsObject } = require_util2(); var { forbiddenMethodsSet, corsSafeListedMethodsSet, referrerPolicy, requestRedirect, requestMode, requestCredentials, requestCache, requestDuplex } = require_constants3(); var { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util3; var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { kConstruct } = require_symbols(); var assert58 = __require("assert"); var { getMaxListeners, setMaxListeners, defaultMaxListeners } = __require("events"); var kAbortController = Symbol("abortController"); var requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { signal.removeEventListener("abort", abort); }); var dependentControllerMap = /* @__PURE__ */ new WeakMap(); var abortSignalHasEventHandlerLeakWarning; try { abortSignalHasEventHandlerLeakWarning = getMaxListeners(new AbortController().signal) > 0; } catch { abortSignalHasEventHandlerLeakWarning = false; } function buildAbort(acRef) { return abort; function abort() { const ac2 = acRef.deref(); if (ac2 !== void 0) { requestFinalizer.unregister(abort); this.removeEventListener("abort", abort); ac2.abort(this.reason); const controllerList = dependentControllerMap.get(ac2.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(ac2.signal); } } } } __name(buildAbort, "buildAbort"); var patchMethodWarning = false; var Request7 = class _Request { static { __name(this, "Request"); } /** @type {AbortSignal} */ #signal; /** @type {import('../../dispatcher/dispatcher')} */ #dispatcher; /** @type {Headers} */ #headers; #state; // https://fetch.spec.whatwg.org/#dom-request constructor(input, init4 = void 0) { webidl.util.markAsUncloneable(this); if (input === kConstruct) { return; } const prefix = "Request constructor"; webidl.argumentLengthCheck(arguments, 1, prefix); input = webidl.converters.RequestInfo(input); init4 = webidl.converters.RequestInit(init4); let request4 = null; let fallbackMode = null; const baseUrl = environmentSettingsObject.settingsObject.baseUrl; let signal = null; if (typeof input === "string") { this.#dispatcher = init4.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 ); } request4 = makeRequest({ urlList: [parsedURL] }); fallbackMode = "cors"; } else { assert58(webidl.is.Request(input)); request4 = input.#state; signal = input.#signal; this.#dispatcher = init4.dispatcher || input.#dispatcher; } const origin = environmentSettingsObject.settingsObject.origin; let window2 = "client"; if (request4.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request4.window, origin)) { window2 = request4.window; } if (init4.window != null) { throw new TypeError(`'window' option '${window2}' must be null`); } if ("window" in init4) { window2 = "no-window"; } request4 = 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: request4.method, // header list A copy of request’s header list. // undici implementation note: headersList is cloned in makeRequest headersList: request4.headersList, // unsafe-request flag Set. unsafeRequest: request4.unsafeRequest, // client This’s relevant settings object. client: environmentSettingsObject.settingsObject, // window window. window: window2, // priority request’s priority. priority: request4.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: request4.origin, // referrer request’s referrer. referrer: request4.referrer, // referrer policy request’s referrer policy. referrerPolicy: request4.referrerPolicy, // mode request’s mode. mode: request4.mode, // credentials mode request’s credentials mode. credentials: request4.credentials, // cache mode request’s cache mode. cache: request4.cache, // redirect mode request’s redirect mode. redirect: request4.redirect, // integrity metadata request’s integrity metadata. integrity: request4.integrity, // keepalive request’s keepalive. keepalive: request4.keepalive, // reload-navigation flag request’s reload-navigation flag. reloadNavigation: request4.reloadNavigation, // history-navigation flag request’s history-navigation flag. historyNavigation: request4.historyNavigation, // URL list A clone of request’s URL list. urlList: [...request4.urlList] }); const initHasKey = Object.keys(init4).length !== 0; if (initHasKey) { if (request4.mode === "navigate") { request4.mode = "same-origin"; } request4.reloadNavigation = false; request4.historyNavigation = false; request4.origin = "client"; request4.referrer = "client"; request4.referrerPolicy = ""; request4.url = request4.urlList[request4.urlList.length - 1]; request4.urlList = [request4.url]; } if (init4.referrer !== void 0) { const referrer = init4.referrer; if (referrer === "") { request4.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)) { request4.referrer = "client"; } else { request4.referrer = parsedReferrer; } } } if (init4.referrerPolicy !== void 0) { request4.referrerPolicy = init4.referrerPolicy; } let mode; if (init4.mode !== void 0) { mode = init4.mode; } else { mode = fallbackMode; } if (mode === "navigate") { throw webidl.errors.exception({ header: "Request constructor", message: "invalid request mode navigate." }); } if (mode != null) { request4.mode = mode; } if (init4.credentials !== void 0) { request4.credentials = init4.credentials; } if (init4.cache !== void 0) { request4.cache = init4.cache; } if (request4.cache === "only-if-cached" && request4.mode !== "same-origin") { throw new TypeError( "'only-if-cached' can be set only with 'same-origin' mode" ); } if (init4.redirect !== void 0) { request4.redirect = init4.redirect; } if (init4.integrity != null) { request4.integrity = String(init4.integrity); } if (init4.keepalive !== void 0) { request4.keepalive = Boolean(init4.keepalive); } if (init4.method !== void 0) { let method = init4.method; const mayBeNormalized = normalizedMethodRecords[method]; if (mayBeNormalized !== void 0) { request4.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; request4.method = method; } if (!patchMethodWarning && request4.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 (init4.signal !== void 0) { signal = init4.signal; } this.#state = request4; const ac2 = new AbortController(); this.#signal = ac2.signal; if (signal != null) { if (signal.aborted) { ac2.abort(signal.reason); } else { this[kAbortController] = ac2; const acRef = new WeakRef(ac2); const abort = buildAbort(acRef); if (abortSignalHasEventHandlerLeakWarning && getMaxListeners(signal) === defaultMaxListeners) { setMaxListeners(1500, signal); } util3.addAbortListener(signal, abort); requestFinalizer.register(ac2, { signal, abort }, abort); } } this.#headers = new Headers5(kConstruct); setHeadersList(this.#headers, request4.headersList); setHeadersGuard(this.#headers, "request"); if (mode === "no-cors") { if (!corsSafeListedMethodsSet.has(request4.method)) { throw new TypeError( `'${request4.method} is unsupported in no-cors mode.` ); } setHeadersGuard(this.#headers, "request-no-cors"); } if (initHasKey) { const headersList = getHeadersList(this.#headers); const headers = init4.headers !== void 0 ? init4.headers : new HeadersList(headersList); headersList.clear(); if (headers instanceof HeadersList) { for (const { name: name2, value } of headers.rawValues()) { headersList.append(name2, value, false); } headersList.cookies = headers.cookies; } else { fillHeaders(this.#headers, headers); } } const inputBody = webidl.is.Request(input) ? input.#state.body : null; if ((init4.body != null || inputBody != null) && (request4.method === "GET" || request4.method === "HEAD")) { throw new TypeError("Request with GET/HEAD method cannot have body."); } let initBody = null; if (init4.body != null) { const [extractedBody, contentType] = extractBody( init4.body, request4.keepalive ); initBody = extractedBody; if (contentType && !getHeadersList(this.#headers).contains("content-type", true)) { this.#headers.append("content-type", contentType, true); } } const inputOrInitBody = initBody ?? inputBody; if (inputOrInitBody != null && inputOrInitBody.source == null) { if (initBody != null && init4.duplex == null) { throw new TypeError("RequestInit: duplex option is required when sending a body."); } if (request4.mode !== "same-origin" && request4.mode !== "cors") { throw new TypeError( 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' ); } request4.useCORSPreflightFlag = true; } let finalBody = inputOrInitBody; if (initBody == null && inputBody != null) { if (bodyUnusable(input.#state)) { 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.#state.body = finalBody; } // Returns request’s HTTP method, which is "GET" by default. get method() { webidl.brandCheck(this, _Request); return this.#state.method; } // Returns the URL of request as a string. get url() { webidl.brandCheck(this, _Request); return URLSerializer(this.#state.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.#headers; } // Returns the kind of resource requested by request, e.g., "document" // or "script". get destination() { webidl.brandCheck(this, _Request); return this.#state.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.#state.referrer === "no-referrer") { return ""; } if (this.#state.referrer === "client") { return "about:client"; } return this.#state.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.#state.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.#state.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() { webidl.brandCheck(this, _Request); return this.#state.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.#state.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.#state.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.#state.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.#state.keepalive; } // Returns a boolean indicating whether or not request is for a reload // navigation. get isReloadNavigation() { webidl.brandCheck(this, _Request); return this.#state.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.#state.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.#signal; } get body() { webidl.brandCheck(this, _Request); return this.#state.body ? this.#state.body.stream : null; } get bodyUsed() { webidl.brandCheck(this, _Request); return !!this.#state.body && util3.isDisturbed(this.#state.body.stream); } get duplex() { webidl.brandCheck(this, _Request); return "half"; } // Returns a clone of request. clone() { webidl.brandCheck(this, _Request); if (bodyUnusable(this.#state)) { throw new TypeError("unusable"); } const clonedRequest = cloneRequest(this.#state); const ac2 = new AbortController(); if (this.signal.aborted) { ac2.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(ac2); list.add(acRef); util3.addAbortListener( ac2.signal, buildAbort(acRef) ); } return fromInnerRequest(clonedRequest, this.#dispatcher, ac2.signal, getHeadersGuard(this.#headers)); } [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)}`; } /** * @param {Request} request * @param {AbortSignal} newSignal */ static setRequestSignal(request4, newSignal) { request4.#signal = newSignal; return request4; } /** * @param {Request} request */ static getRequestDispatcher(request4) { return request4.#dispatcher; } /** * @param {Request} request * @param {import('../../dispatcher/dispatcher')} newDispatcher */ static setRequestDispatcher(request4, newDispatcher) { request4.#dispatcher = newDispatcher; } /** * @param {Request} request * @param {Headers} newHeaders */ static setRequestHeaders(request4, newHeaders) { request4.#headers = newHeaders; } /** * @param {Request} request */ static getRequestState(request4) { return request4.#state; } /** * @param {Request} request * @param {any} newState */ static setRequestState(request4, newState) { request4.#state = newState; } }; var { setRequestSignal, getRequestDispatcher, setRequestDispatcher, setRequestHeaders, getRequestState, setRequestState } = Request7; Reflect.deleteProperty(Request7, "setRequestSignal"); Reflect.deleteProperty(Request7, "getRequestDispatcher"); Reflect.deleteProperty(Request7, "setRequestDispatcher"); Reflect.deleteProperty(Request7, "setRequestHeaders"); Reflect.deleteProperty(Request7, "getRequestState"); Reflect.deleteProperty(Request7, "setRequestState"); mixinBody(Request7, getRequestState); function makeRequest(init4) { return { method: init4.method ?? "GET", localURLsOnly: init4.localURLsOnly ?? false, unsafeRequest: init4.unsafeRequest ?? false, body: init4.body ?? null, client: init4.client ?? null, reservedClient: init4.reservedClient ?? null, replacesClientId: init4.replacesClientId ?? "", window: init4.window ?? "client", keepalive: init4.keepalive ?? false, serviceWorkers: init4.serviceWorkers ?? "all", initiator: init4.initiator ?? "", destination: init4.destination ?? "", priority: init4.priority ?? null, origin: init4.origin ?? "client", policyContainer: init4.policyContainer ?? "client", referrer: init4.referrer ?? "client", referrerPolicy: init4.referrerPolicy ?? "", mode: init4.mode ?? "no-cors", useCORSPreflightFlag: init4.useCORSPreflightFlag ?? false, credentials: init4.credentials ?? "same-origin", useCredentials: init4.useCredentials ?? false, cache: init4.cache ?? "default", redirect: init4.redirect ?? "follow", integrity: init4.integrity ?? "", cryptoGraphicsNonceMetadata: init4.cryptoGraphicsNonceMetadata ?? "", parserMetadata: init4.parserMetadata ?? "", reloadNavigation: init4.reloadNavigation ?? false, historyNavigation: init4.historyNavigation ?? false, userActivation: init4.userActivation ?? false, taintedOrigin: init4.taintedOrigin ?? false, redirectCount: init4.redirectCount ?? 0, responseTainting: init4.responseTainting ?? "basic", preventNoCacheCacheControlHeaderModification: init4.preventNoCacheCacheControlHeaderModification ?? false, done: init4.done ?? false, timingAllowFailed: init4.timingAllowFailed ?? false, urlList: init4.urlList, url: init4.urlList[0], headersList: init4.headersList ? new HeadersList(init4.headersList) : new HeadersList() }; } __name(makeRequest, "makeRequest"); function cloneRequest(request4) { const newRequest = makeRequest({ ...request4, body: null }); if (request4.body != null) { newRequest.body = cloneBody(request4.body); } return newRequest; } __name(cloneRequest, "cloneRequest"); function fromInnerRequest(innerRequest, dispatcher, signal, guard) { const request4 = new Request7(kConstruct); setRequestState(request4, innerRequest); setRequestDispatcher(request4, dispatcher); setRequestSignal(request4, signal); const headers = new Headers5(kConstruct); setRequestHeaders(request4, headers); setHeadersList(headers, innerRequest.headersList); setHeadersGuard(headers, guard); return request4; } __name(fromInnerRequest, "fromInnerRequest"); Object.defineProperties(Request7.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.is.Request = webidl.util.MakeTypeAssertion(Request7); webidl.converters.RequestInfo = function(V4) { if (typeof V4 === "string") { return webidl.converters.USVString(V4); } if (webidl.is.Request(V4)) { return V4; } return webidl.converters.USVString(V4); }; 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" ) ) }, { key: "window", converter: webidl.converters.any }, { key: "duplex", converter: webidl.converters.DOMString, allowedValues: requestDuplex }, { key: "dispatcher", // undici specific option converter: webidl.converters.any }, { key: "priority", converter: webidl.converters.DOMString, allowedValues: ["high", "low", "auto"], defaultValue: /* @__PURE__ */ __name(() => "auto", "defaultValue") } ]); module4.exports = { Request: Request7, makeRequest, fromInnerRequest, cloneRequest, getRequestDispatcher, getRequestState }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js var require_subresource_integrity = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { runtimeFeatures } = require_runtime_features(); var validSRIHashAlgorithmTokenSet = /* @__PURE__ */ new Map([["sha256", 0], ["sha384", 1], ["sha512", 2]]); var crypto9; if (runtimeFeatures.has("crypto")) { crypto9 = __require("crypto"); const cryptoHashes = crypto9.getHashes(); if (cryptoHashes.length === 0) { validSRIHashAlgorithmTokenSet.clear(); } for (const algorithm of validSRIHashAlgorithmTokenSet.keys()) { if (cryptoHashes.includes(algorithm) === false) { validSRIHashAlgorithmTokenSet.delete(algorithm); } } } else { validSRIHashAlgorithmTokenSet.clear(); } var getSRIHashAlgorithmIndex = ( /** @type {GetSRIHashAlgorithmIndex} */ Map.prototype.get.bind( validSRIHashAlgorithmTokenSet ) ); var isValidSRIHashAlgorithm = ( /** @type {IsValidSRIHashAlgorithm} */ Map.prototype.has.bind(validSRIHashAlgorithmTokenSet) ); var bytesMatch = runtimeFeatures.has("crypto") === false || validSRIHashAlgorithmTokenSet.size === 0 ? () => true : (bytes, metadataList) => { const parsedMetadata = parseMetadata(metadataList); if (parsedMetadata.length === 0) { return true; } const metadata = getStrongestMetadata(parsedMetadata); for (const item of metadata) { const algorithm = item.alg; const expectedValue = item.val; const actualValue = applyAlgorithmToBytes(algorithm, bytes); if (caseSensitiveMatch(actualValue, expectedValue)) { return true; } } return false; }; function getStrongestMetadata(metadataList) { const result = []; let strongest = null; for (const item of metadataList) { assert58(isValidSRIHashAlgorithm(item.alg), "Invalid SRI hash algorithm token"); if (result.length === 0) { result.push(item); strongest = item; continue; } const currentAlgorithm = ( /** @type {Metadata} */ strongest.alg ); const currentAlgorithmIndex = getSRIHashAlgorithmIndex(currentAlgorithm); const newAlgorithm = item.alg; const newAlgorithmIndex = getSRIHashAlgorithmIndex(newAlgorithm); if (newAlgorithmIndex < currentAlgorithmIndex) { continue; } else if (newAlgorithmIndex > currentAlgorithmIndex) { strongest = item; result[0] = item; result.length = 1; } else { result.push(item); } } return result; } __name(getStrongestMetadata, "getStrongestMetadata"); function parseMetadata(metadata) { const result = []; for (const item of metadata.split(" ")) { const expressionAndOptions = item.split("?", 1); const algorithmExpression = expressionAndOptions[0]; let base64Value = ""; const algorithmAndValue = [algorithmExpression.slice(0, 6), algorithmExpression.slice(7)]; const algorithm = algorithmAndValue[0]; if (!isValidSRIHashAlgorithm(algorithm)) { continue; } if (algorithmAndValue[1]) { base64Value = algorithmAndValue[1]; } const metadata2 = { alg: algorithm, val: base64Value }; result.push(metadata2); } return result; } __name(parseMetadata, "parseMetadata"); var applyAlgorithmToBytes = /* @__PURE__ */ __name((algorithm, bytes) => { return crypto9.hash(algorithm, bytes, "base64"); }, "applyAlgorithmToBytes"); function caseSensitiveMatch(actualValue, expectedValue) { let actualValueLength = actualValue.length; if (actualValueLength !== 0 && actualValue[actualValueLength - 1] === "=") { actualValueLength -= 1; } if (actualValueLength !== 0 && actualValue[actualValueLength - 1] === "=") { actualValueLength -= 1; } let expectedValueLength = expectedValue.length; if (expectedValueLength !== 0 && expectedValue[expectedValueLength - 1] === "=") { expectedValueLength -= 1; } if (expectedValueLength !== 0 && expectedValue[expectedValueLength - 1] === "=") { expectedValueLength -= 1; } if (actualValueLength !== expectedValueLength) { return false; } for (let i7 = 0; i7 < actualValueLength; ++i7) { if (actualValue[i7] === expectedValue[i7] || actualValue[i7] === "+" && expectedValue[i7] === "-" || actualValue[i7] === "/" && expectedValue[i7] === "_") { continue; } return false; } return true; } __name(caseSensitiveMatch, "caseSensitiveMatch"); module4.exports = { applyAlgorithmToBytes, bytesMatch, caseSensitiveMatch, isValidSRIHashAlgorithm, getStrongestMetadata, parseMetadata }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/index.js var require_fetch = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/fetch/index.js"(exports, module4) { init_import_meta_url(); var { makeNetworkError, makeAppropriateNetworkError, filterResponse, makeResponse, fromInnerResponse, getResponseState } = require_response(); var { HeadersList } = require_headers(); var { Request: Request7, cloneRequest, getRequestDispatcher, getRequestState } = require_request2(); var zlib3 = __require("zlib"); var { makePolicyContainer, clonePolicyContainer, requestBadPort, TAOCheck, appendRequestOriginHeader, responseLocationURL, requestCurrentURL, setRequestReferrerPolicyOnRedirect, tryUpgradeRequestToAPotentiallyTrustworthyURL, createOpaqueTimingInfo, appendFetchMetadata, corsCheck, crossOriginResourcePolicyCheck, determineRequestsReferrer, coarsenedSharedCurrentTime, sameOrigin, isCancelled, isAborted: isAborted2, isErrorLike, fullyReadBody, readableStreamClose, urlIsLocal, urlIsHttpHttpsScheme, urlHasHttpsScheme, clampAndCoarsenConnectionTimingInfo, simpleRangeHeaderValue, buildContentRange, createInflate, extractMimeType } = require_util2(); var assert58 = __require("assert"); var { safelyExtractBody, extractBody } = require_body(); var { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet } = require_constants3(); var EE = __require("events"); var { Readable: Readable11, pipeline, finished, isErrored, isReadable } = __require("stream"); var { addAbortListener, bufferToLowerCasedHeaderName } = require_util(); var { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url(); var { getGlobalDispatcher: getGlobalDispatcher2 } = require_global2(); var { webidl } = require_webidl(); var { STATUS_CODES: STATUS_CODES2 } = __require("http"); var { bytesMatch } = require_subresource_integrity(); var { createDeferredPromise } = require_promise(); var { isomorphicEncode } = require_infra(); var { runtimeFeatures } = require_runtime_features(); var hasZstd = runtimeFeatures.has("zstd"); 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 { static { __name(this, "Fetch"); } 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"); } __name(handleFetchDone, "handleFetchDone"); function fetch18(input, init4 = void 0) { webidl.argumentLengthCheck(arguments, 1, "globalThis.fetch"); let p7 = createDeferredPromise(); let requestObject; try { requestObject = new Request7(input, init4); } catch (e9) { p7.reject(e9); return p7.promise; } const request4 = getRequestState(requestObject); if (requestObject.signal.aborted) { abortFetch(p7, request4, null, requestObject.signal.reason); return p7.promise; } const globalObject = request4.client.globalObject; if (globalObject?.constructor?.name === "ServiceWorkerGlobalScope") { request4.serviceWorkers = "none"; } let responseObject = null; let locallyAborted = false; let controller = null; addAbortListener( requestObject.signal, () => { locallyAborted = true; assert58(controller != null); controller.abort(requestObject.signal.reason); const realResponse = responseObject?.deref(); abortFetch(p7, request4, realResponse, requestObject.signal.reason); } ); const processResponse = /* @__PURE__ */ __name((response) => { if (locallyAborted) { return; } if (response.aborted) { abortFetch(p7, request4, responseObject, controller.serializedAbortReason); return; } if (response.type === "error") { p7.reject(new TypeError("fetch failed", { cause: response.error })); return; } responseObject = new WeakRef(fromInnerResponse(response, "immutable")); p7.resolve(responseObject.deref()); p7 = null; }, "processResponse"); controller = fetching({ request: request4, processResponseEndOfBody: handleFetchDone, processResponse, dispatcher: getRequestDispatcher(requestObject) // undici }); return p7.promise; } __name(fetch18, "fetch"); 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, "", // bodyType response.status ); } __name(finalizeAndReportTiming, "finalizeAndReportTiming"); var markResourceTiming = performance.markResourceTiming; function abortFetch(p7, request4, responseObject, error2) { if (p7) { p7.reject(error2); } if (request4.body?.stream != null && isReadable(request4.body.stream)) { request4.body.stream.cancel(error2).catch((err) => { if (err.code === "ERR_INVALID_STATE") { return; } throw err; }); } if (responseObject == null) { return; } const response = getResponseState(responseObject); if (response.body?.stream != null && isReadable(response.body.stream)) { response.body.stream.cancel(error2).catch((err) => { if (err.code === "ERR_INVALID_STATE") { return; } throw err; }); } } __name(abortFetch, "abortFetch"); function fetching({ request: request4, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseEndOfBody, processResponseConsumeBody, useParallelQueue = false, dispatcher = getGlobalDispatcher2() // undici }) { assert58(dispatcher); let taskDestination = null; let crossOriginIsolatedCapability = false; if (request4.client != null) { taskDestination = request4.client.globalObject; crossOriginIsolatedCapability = request4.client.crossOriginIsolatedCapability; } const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); const timingInfo = createOpaqueTimingInfo({ startTime: currentTime }); const fetchParams = { controller: new Fetch(dispatcher), request: request4, timingInfo, processRequestBodyChunkLength, processRequestEndOfBody, processResponse, processResponseConsumeBody, processResponseEndOfBody, taskDestination, crossOriginIsolatedCapability }; assert58(!request4.body || request4.body.stream); if (request4.window === "client") { request4.window = request4.client?.globalObject?.constructor?.name === "Window" ? request4.client : "no-window"; } if (request4.origin === "client") { request4.origin = request4.client.origin; } if (request4.policyContainer === "client") { if (request4.client != null) { request4.policyContainer = clonePolicyContainer( request4.client.policyContainer ); } else { request4.policyContainer = makePolicyContainer(); } } if (!request4.headersList.contains("accept", true)) { const value = "*/*"; request4.headersList.append("accept", value, true); } if (!request4.headersList.contains("accept-language", true)) { request4.headersList.append("accept-language", "*", true); } if (request4.priority === null) ; if (subresourceSet.has(request4.destination)) ; mainFetch(fetchParams, false); return fetchParams.controller; } __name(fetching, "fetching"); async function mainFetch(fetchParams, recursive) { try { const request4 = fetchParams.request; let response = null; if (request4.localURLsOnly && !urlIsLocal(requestCurrentURL(request4))) { response = makeNetworkError("local URLs only"); } tryUpgradeRequestToAPotentiallyTrustworthyURL(request4); if (requestBadPort(request4) === "blocked") { response = makeNetworkError("bad port"); } if (request4.referrerPolicy === "") { request4.referrerPolicy = request4.policyContainer.referrerPolicy; } if (request4.referrer !== "no-referrer") { request4.referrer = determineRequestsReferrer(request4); } if (response === null) { const currentURL = requestCurrentURL(request4); if ( // - request’s current URL’s origin is same origin with request’s origin, // and request’s response tainting is "basic" sameOrigin(currentURL, request4.url) && request4.responseTainting === "basic" || // request’s current URL’s scheme is "data" currentURL.protocol === "data:" || // - request’s mode is "navigate" or "websocket" (request4.mode === "navigate" || request4.mode === "websocket") ) { request4.responseTainting = "basic"; response = await schemeFetch(fetchParams); } else if (request4.mode === "same-origin") { response = makeNetworkError('request mode cannot be "same-origin"'); } else if (request4.mode === "no-cors") { if (request4.redirect !== "follow") { response = makeNetworkError( 'redirect mode cannot be "follow" for "no-cors" request' ); } else { request4.responseTainting = "opaque"; response = await schemeFetch(fetchParams); } } else if (!urlIsHttpHttpsScheme(requestCurrentURL(request4))) { response = makeNetworkError("URL scheme must be a HTTP(S) scheme"); } else { request4.responseTainting = "cors"; response = await httpFetch(fetchParams); } } if (recursive) { return response; } if (response.status !== 0 && !response.internalResponse) { if (request4.responseTainting === "cors") { } if (request4.responseTainting === "basic") { response = filterResponse(response, "basic"); } else if (request4.responseTainting === "cors") { response = filterResponse(response, "cors"); } else if (request4.responseTainting === "opaque") { response = filterResponse(response, "opaque"); } else { assert58(false); } } let internalResponse = response.status === 0 ? response : response.internalResponse; if (internalResponse.urlList.length === 0) { internalResponse.urlList.push(...request4.urlList); } if (!request4.timingAllowFailed) { response.timingAllowPassed = true; } if (response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request4.headers.contains("range", true)) { response = internalResponse = makeNetworkError(); } if (response.status !== 0 && (request4.method === "HEAD" || request4.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status))) { internalResponse.body = null; fetchParams.controller.dump = true; } if (request4.integrity) { const processBodyError = /* @__PURE__ */ __name((reason) => fetchFinale(fetchParams, makeNetworkError(reason)), "processBodyError"); if (request4.responseTainting === "opaque" || response.body == null) { processBodyError(response.error); return; } const processBody = /* @__PURE__ */ __name((bytes) => { if (!bytesMatch(bytes, request4.integrity)) { processBodyError("integrity mismatch"); return; } response.body = safelyExtractBody(bytes)[0]; fetchFinale(fetchParams, response); }, "processBody"); fullyReadBody(response.body, processBody, processBodyError); } else { fetchFinale(fetchParams, response); } } catch (err) { fetchParams.controller.terminate(err); } } __name(mainFetch, "mainFetch"); function schemeFetch(fetchParams) { if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { return Promise.resolve(makeAppropriateNetworkError(fetchParams)); } const { request: request4 } = fetchParams; const { protocol: scheme } = requestCurrentURL(request4); switch (scheme) { case "about:": { return Promise.resolve(makeNetworkError("about scheme is not supported")); } case "blob:": { if (!resolveObjectURL) { resolveObjectURL = __require("buffer").resolveObjectURL; } const blobURLEntry = requestCurrentURL(request4); if (blobURLEntry.search.length !== 0) { return Promise.resolve(makeNetworkError("NetworkError when attempting to fetch resource.")); } const blob = resolveObjectURL(blobURLEntry.toString()); if (request4.method !== "GET" || !webidl.is.Blob(blob)) { return Promise.resolve(makeNetworkError("invalid method")); } const response = makeResponse(); const fullLength = blob.size; const serializedFullLength = isomorphicEncode(`${fullLength}`); const type = blob.type; if (!request4.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 = request4.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 + 1, 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(request4); 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")); } } } __name(schemeFetch, "schemeFetch"); function finalizeResponse(fetchParams, response) { fetchParams.request.done = true; if (fetchParams.processResponseDone != null) { queueMicrotask(() => fetchParams.processResponseDone(response)); } } __name(finalizeResponse, "finalizeResponse"); function fetchFinale(fetchParams, response) { let timingInfo = fetchParams.timingInfo; const processResponseEndOfBody = /* @__PURE__ */ __name(() => { const unsafeEndTime = Date.now(); if (fetchParams.request.destination === "document") { fetchParams.controller.fullTimingInfo = timingInfo; } fetchParams.controller.reportTimingSteps = () => { if (!urlIsHttpHttpsScheme(fetchParams.request.url)) { 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 = /* @__PURE__ */ __name(() => { fetchParams.request.done = true; if (fetchParams.processResponseEndOfBody != null) { queueMicrotask(() => fetchParams.processResponseEndOfBody(response)); } if (fetchParams.request.initiatorType != null) { fetchParams.controller.reportTimingSteps(); } }, "processResponseEndOfBodyTask"); queueMicrotask(() => processResponseEndOfBodyTask()); }, "processResponseEndOfBody"); 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(); }); } } __name(fetchFinale, "fetchFinale"); async function httpFetch(fetchParams) { const request4 = fetchParams.request; let response = null; let actualResponse = null; const timingInfo = fetchParams.timingInfo; if (request4.serviceWorkers === "all") ; if (response === null) { if (request4.redirect === "follow") { request4.serviceWorkers = "none"; } actualResponse = response = await httpNetworkOrCacheFetch(fetchParams); if (request4.responseTainting === "cors" && corsCheck(request4, response) === "failure") { return makeNetworkError("cors failure"); } if (TAOCheck(request4, response) === "failure") { request4.timingAllowFailed = true; } } if ((request4.responseTainting === "opaque" || response.type === "opaque") && crossOriginResourcePolicyCheck( request4.origin, request4.client, request4.destination, actualResponse ) === "blocked") { return makeNetworkError("blocked"); } if (redirectStatusSet.has(actualResponse.status)) { if (request4.redirect !== "manual") { fetchParams.controller.connection.destroy(void 0, false); } if (request4.redirect === "error") { response = makeNetworkError("unexpected redirect"); } else if (request4.redirect === "manual") { response = actualResponse; } else if (request4.redirect === "follow") { response = await httpRedirectFetch(fetchParams, response); } else { assert58(false); } } response.timingInfo = timingInfo; return response; } __name(httpFetch, "httpFetch"); function httpRedirectFetch(fetchParams, response) { const request4 = fetchParams.request; const actualResponse = response.internalResponse ? response.internalResponse : response; let locationURL; try { locationURL = responseLocationURL( actualResponse, requestCurrentURL(request4).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 (request4.redirectCount === 20) { return Promise.resolve(makeNetworkError("redirect count exceeded")); } request4.redirectCount += 1; if (request4.mode === "cors" && (locationURL.username || locationURL.password) && !sameOrigin(request4, locationURL)) { return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')); } if (request4.responseTainting === "cors" && (locationURL.username || locationURL.password)) { return Promise.resolve(makeNetworkError( 'URL cannot contain credentials for request mode "cors"' )); } if (actualResponse.status !== 303 && request4.body != null && request4.body.source == null) { return Promise.resolve(makeNetworkError()); } if ([301, 302].includes(actualResponse.status) && request4.method === "POST" || actualResponse.status === 303 && !GET_OR_HEAD.includes(request4.method)) { request4.method = "GET"; request4.body = null; for (const headerName of requestBodyHeader) { request4.headersList.delete(headerName); } } if (!sameOrigin(requestCurrentURL(request4), locationURL)) { request4.headersList.delete("authorization", true); request4.headersList.delete("proxy-authorization", true); request4.headersList.delete("cookie", true); request4.headersList.delete("host", true); } if (request4.body != null) { assert58(request4.body.source != null); request4.body = safelyExtractBody(request4.body.source)[0]; } const timingInfo = fetchParams.timingInfo; timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability); if (timingInfo.redirectStartTime === 0) { timingInfo.redirectStartTime = timingInfo.startTime; } request4.urlList.push(locationURL); setRequestReferrerPolicyOnRedirect(request4, actualResponse); return mainFetch(fetchParams, true); } __name(httpRedirectFetch, "httpRedirectFetch"); async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = false, isNewConnectionFetch = false) { const request4 = fetchParams.request; let httpFetchParams = null; let httpRequest2 = null; let response = null; if (request4.window === "no-window" && request4.redirect === "error") { httpFetchParams = fetchParams; httpRequest2 = request4; } else { httpRequest2 = cloneRequest(request4); httpFetchParams = { ...fetchParams }; httpFetchParams.request = httpRequest2; } const includeCredentials = request4.credentials === "include" || request4.credentials === "same-origin" && request4.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 (webidl.is.URL(httpRequest2.referrer)) { 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, true); } 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); { 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 (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 (request4.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 (request4.body == null || request4.body.source != null) ) { if (isCancelled(fetchParams)) { return makeAppropriateNetworkError(fetchParams); } fetchParams.controller.connection.destroy(); response = await httpNetworkOrCacheFetch( fetchParams, isAuthenticationFetch, true ); } return response; } __name(httpNetworkOrCacheFetch, "httpNetworkOrCacheFetch"); async function httpNetworkFetch(fetchParams, includeCredentials = false, forceNewConnection = false) { assert58(!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 request4 = fetchParams.request; let response = null; const timingInfo = fetchParams.timingInfo; { request4.cache = "no-store"; } if (request4.mode === "websocket") ; let requestBody = null; if (request4.body == null && fetchParams.processRequestEndOfBody) { queueMicrotask(() => fetchParams.processRequestEndOfBody()); } else if (request4.body != null) { const processBodyChunk = /* @__PURE__ */ __name(async function* (bytes) { if (isCancelled(fetchParams)) { return; } yield bytes; fetchParams.processRequestBodyChunkLength?.(bytes.byteLength); }, "processBodyChunk"); const processEndOfBody = /* @__PURE__ */ __name(() => { if (isCancelled(fetchParams)) { return; } if (fetchParams.processRequestEndOfBody) { fetchParams.processRequestEndOfBody(); } }, "processEndOfBody"); const processBodyError = /* @__PURE__ */ __name((e9) => { if (isCancelled(fetchParams)) { return; } if (e9.name === "AbortError") { fetchParams.controller.abort(); } else { fetchParams.controller.terminate(e9); } }, "processBodyError"); requestBody = async function* () { try { for await (const bytes of request4.body.stream) { yield* processBodyChunk(bytes); } processEndOfBody(); } catch (err) { processBodyError(err); } }(); } try { const { body, status: status2, statusText, headersList, socket } = await dispatch({ body: requestBody }); if (socket) { response = makeResponse({ status: status2, statusText, headersList, socket }); } else { const iterator = body[Symbol.asyncIterator](); fetchParams.controller.next = () => iterator.next(); response = makeResponse({ status: status2, statusText, headersList }); } } catch (err) { if (err.name === "AbortError") { fetchParams.controller.connection.destroy(); return makeAppropriateNetworkError(fetchParams, err); } return makeNetworkError(err); } const pullAlgorithm = /* @__PURE__ */ __name(() => { return fetchParams.controller.resume(); }, "pullAlgorithm"); const cancelAlgorithm = /* @__PURE__ */ __name((reason) => { if (!isCancelled(fetchParams)) { fetchParams.controller.abort(reason); } }, "cancelAlgorithm"); const stream2 = new ReadableStream( { start(controller) { fetchParams.controller.controller = controller; }, pull: pullAlgorithm, cancel: cancelAlgorithm, type: "bytes" } ); response.body = { stream: stream2, source: null, length: null }; if (!fetchParams.controller.resume) { fetchParams.controller.on("terminated", onAborted); } fetchParams.controller.resume = async () => { while (true) { let bytes; let isFailure; try { const { done, value } = await fetchParams.controller.next(); if (isAborted2(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(stream2)) { fetchParams.controller.terminate(); return; } if (fetchParams.controller.controller.desiredSize <= 0) { return; } } }; function onAborted(reason) { if (isAborted2(fetchParams)) { response.aborted = true; if (isReadable(stream2)) { fetchParams.controller.controller.error( fetchParams.controller.serializedAbortReason ); } } else { if (isReadable(stream2)) { fetchParams.controller.controller.error(new TypeError("terminated", { cause: isErrorLike(reason) ? reason : void 0 })); } } fetchParams.controller.connection.destroy(); } __name(onAborted, "onAborted"); return response; function dispatch({ body }) { const url4 = requestCurrentURL(request4); const agent = fetchParams.controller.dispatcher; return new Promise((resolve31, reject) => agent.dispatch( { path: url4.pathname + url4.search, origin: url4.origin, method: request4.method, body: agent.isMockActive ? request4.body && (request4.body.source || request4.body.stream) : body, headers: request4.headersList.entries, maxRedirections: 0, upgrade: request4.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(status2, rawHeaders, resume, statusText) { if (status2 < 200) { return false; } const headersList = new HeadersList(); for (let i7 = 0; i7 < rawHeaders.length; i7 += 2) { headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i7]), rawHeaders[i7 + 1].toString("latin1"), true); } const location = headersList.get("location", true); this.body = new Readable11({ read: resume }); const willFollow = location && request4.redirect === "follow" && redirectStatusSet.has(status2); const decoders = []; if (request4.method !== "HEAD" && request4.method !== "CONNECT" && !nullBodyStatus.includes(status2) && !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 i7 = codings.length - 1; i7 >= 0; --i7) { const coding = codings[i7].trim(); if (coding === "x-gzip" || coding === "gzip") { decoders.push(zlib3.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: zlib3.constants.Z_SYNC_FLUSH, finishFlush: zlib3.constants.Z_SYNC_FLUSH })); } else if (coding === "deflate") { decoders.push(createInflate({ flush: zlib3.constants.Z_SYNC_FLUSH, finishFlush: zlib3.constants.Z_SYNC_FLUSH })); } else if (coding === "br") { decoders.push(zlib3.createBrotliDecompress({ flush: zlib3.constants.BROTLI_OPERATION_FLUSH, finishFlush: zlib3.constants.BROTLI_OPERATION_FLUSH })); } else if (coding === "zstd" && hasZstd) { decoders.push(zlib3.createZstdDecompress({ flush: zlib3.constants.ZSTD_e_continue, finishFlush: zlib3.constants.ZSTD_e_end })); } else { decoders.length = 0; break; } } } const onError = this.onError.bind(this); resolve31({ status: status2, 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); } 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(status2, rawHeaders, socket) { if (socket.session != null && status2 !== 200 || socket.session == null && status2 !== 101) { return false; } const headersList = new HeadersList(); for (let i7 = 0; i7 < rawHeaders.length; i7 += 2) { headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i7]), rawHeaders[i7 + 1].toString("latin1"), true); } resolve31({ status: status2, statusText: STATUS_CODES2[status2], headersList, socket }); return true; } } )); } } __name(httpNetworkFetch, "httpNetworkFetch"); module4.exports = { fetch: fetch18, Fetch, fetching, finalizeAndReportTiming }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cache/util.js var require_util3 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cache/util.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { URLSerializer } = require_data_url(); var { isValidHeaderName } = require_util2(); function urlEquals(A4, B4, excludeFragment = false) { const serializedA = URLSerializer(A4, excludeFragment); const serializedB = URLSerializer(B4, excludeFragment); return serializedA === serializedB; } __name(urlEquals, "urlEquals"); function getFieldValues(header) { assert58(header !== null); const values = []; for (let value of header.split(",")) { value = value.trim(); if (isValidHeaderName(value)) { values.push(value); } } return values; } __name(getFieldValues, "getFieldValues"); module4.exports = { urlEquals, getFieldValues }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cache/cache.js var require_cache3 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cache/cache.js"(exports, module4) { init_import_meta_url(); var assert58 = __require("assert"); var { kConstruct } = require_symbols(); var { urlEquals, getFieldValues } = require_util3(); var { kEnumerableProperty, isDisturbed } = require_util(); var { webidl } = require_webidl(); var { cloneResponse, fromInnerResponse, getResponseState } = require_response(); var { Request: Request7, fromInnerRequest, getRequestState } = require_request2(); var { fetching } = require_fetch(); var { urlIsHttpHttpsScheme, readAllBytes } = require_util2(); var { createDeferredPromise } = require_promise(); var Cache3 = class _Cache { static { __name(this, "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(request4, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.match"; webidl.argumentLengthCheck(arguments, 1, prefix); request4 = webidl.converters.RequestInfo(request4); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); const p7 = this.#internalMatchAll(request4, options, 1); if (p7.length === 0) { return; } return p7[0]; } async matchAll(request4 = void 0, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.matchAll"; if (request4 !== void 0) request4 = webidl.converters.RequestInfo(request4); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); return this.#internalMatchAll(request4, options); } async add(request4) { webidl.brandCheck(this, _Cache); const prefix = "Cache.add"; webidl.argumentLengthCheck(arguments, 1, prefix); request4 = webidl.converters.RequestInfo(request4); const requests = [request4]; 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 request4 of requests) { if (request4 === void 0) { throw webidl.errors.conversionFailed({ prefix, argument: "Argument 1", types: ["undefined is not allowed"] }); } request4 = webidl.converters.RequestInfo(request4); if (typeof request4 === "string") { continue; } const r9 = getRequestState(request4); if (!urlIsHttpHttpsScheme(r9.url) || r9.method !== "GET") { throw webidl.errors.exception({ header: prefix, message: "Expected http/s scheme when method is not GET." }); } } const fetchControllers = []; for (const request4 of requests) { const r9 = getRequestState(new Request7(request4)); if (!urlIsHttpHttpsScheme(r9.url)) { throw webidl.errors.exception({ header: prefix, message: "Expected http/s scheme." }); } r9.initiator = "fetch"; r9.destination = "subresource"; requestList.push(r9); const responsePromise = createDeferredPromise(); fetchControllers.push(fetching({ request: r9, 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 p7 = Promise.all(responsePromises); const responses = await p7; 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 (e9) { errorData = e9; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(void 0); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } async put(request4, response) { webidl.brandCheck(this, _Cache); const prefix = "Cache.put"; webidl.argumentLengthCheck(arguments, 2, prefix); request4 = webidl.converters.RequestInfo(request4); response = webidl.converters.Response(response, prefix, "response"); let innerRequest = null; if (webidl.is.Request(request4)) { innerRequest = getRequestState(request4); } else { innerRequest = getRequestState(new Request7(request4)); } 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 = getResponseState(response); 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 stream2 = innerResponse.body.stream; const reader = stream2.getReader(); readAllBytes(reader, 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 (e9) { errorData = e9; } queueMicrotask(() => { if (errorData === null) { cacheJobPromise.resolve(); } else { cacheJobPromise.reject(errorData); } }); return cacheJobPromise.promise; } async delete(request4, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.delete"; webidl.argumentLengthCheck(arguments, 1, prefix); request4 = webidl.converters.RequestInfo(request4); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); let r9 = null; if (webidl.is.Request(request4)) { r9 = getRequestState(request4); if (r9.method !== "GET" && !options.ignoreMethod) { return false; } } else { assert58(typeof request4 === "string"); r9 = getRequestState(new Request7(request4)); } const operations = []; const operation = { type: "delete", request: r9, options }; operations.push(operation); const cacheJobPromise = createDeferredPromise(); let errorData = null; let requestResponses; try { requestResponses = this.#batchCacheOperations(operations); } catch (e9) { errorData = e9; } 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(request4 = void 0, options = {}) { webidl.brandCheck(this, _Cache); const prefix = "Cache.keys"; if (request4 !== void 0) request4 = webidl.converters.RequestInfo(request4); options = webidl.converters.CacheQueryOptions(options, prefix, "options"); let r9 = null; if (request4 !== void 0) { if (webidl.is.Request(request4)) { r9 = getRequestState(request4); if (r9.method !== "GET" && !options.ignoreMethod) { return []; } } else if (typeof request4 === "string") { r9 = getRequestState(new Request7(request4)); } } const promise = createDeferredPromise(); const requests = []; if (request4 === void 0) { for (const requestResponse of this.#relevantRequestResponseList) { requests.push(requestResponse[0]); } } else { const requestResponses = this.#queryCache(r9, options); for (const requestResponse of requestResponses) { requests.push(requestResponse[0]); } } queueMicrotask(() => { const requestList = []; for (const request5 of requests) { const requestObject = fromInnerRequest( request5, void 0, 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 cache6 = this.#relevantRequestResponseList; const backupCache = [...cache6]; 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 = cache6.indexOf(requestResponse); assert58(idx !== -1); cache6.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 r9 = operation.request; if (!urlIsHttpHttpsScheme(r9.url)) { throw webidl.errors.exception({ header: "Cache.#batchCacheOperations", message: "expected http or https scheme" }); } if (r9.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 = cache6.indexOf(requestResponse); assert58(idx !== -1); cache6.splice(idx, 1); } cache6.push([operation.request, operation.response]); addedItems.push([operation.request, operation.response]); } resultList.push([operation.request, operation.response]); } return resultList; } catch (e9) { this.#relevantRequestResponseList.length = 0; this.#relevantRequestResponseList = backupCache; throw e9; } } /** * @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, request4, response = null, options) { const queryURL = new URL(requestQuery.url); const cachedURL = new URL(request4.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 = request4.headersList.get(fieldValue); const queryValue = requestQuery.headersList.get(fieldValue); if (requestValue !== queryValue) { return false; } } return true; } #internalMatchAll(request4, options, maxResponses = Infinity) { let r9 = null; if (request4 !== void 0) { if (webidl.is.Request(request4)) { r9 = getRequestState(request4); if (r9.method !== "GET" && !options.ignoreMethod) { return []; } } else if (typeof request4 === "string") { r9 = getRequestState(new Request7(request4)); } } const responses = []; if (request4 === void 0) { for (const requestResponse of this.#relevantRequestResponseList) { responses.push(requestResponse[1]); } } else { const requestResponses = this.#queryCache(r9, 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(Cache3.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: /* @__PURE__ */ __name(() => false, "defaultValue") }, { key: "ignoreMethod", converter: webidl.converters.boolean, defaultValue: /* @__PURE__ */ __name(() => false, "defaultValue") }, { key: "ignoreVary", converter: webidl.converters.boolean, defaultValue: /* @__PURE__ */ __name(() => false, "defaultValue") } ]; webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters); webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ ...cacheQueryOptionConverters, { key: "cacheName", converter: webidl.converters.DOMString } ]); webidl.converters.Response = webidl.interfaceConverter( webidl.is.Response, "Response" ); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.RequestInfo ); module4.exports = { Cache: Cache3 }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cache/cachestorage.js var require_cachestorage = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cache/cachestorage.js"(exports, module4) { init_import_meta_url(); var { Cache: Cache3 } = require_cache3(); var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util(); var { kConstruct } = require_symbols(); var CacheStorage2 = class _CacheStorage { static { __name(this, "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 cache7 = this.#caches.get(cacheName); return new Cache3(kConstruct, cache7); } const cache6 = []; this.#caches.set(cacheName, cache6); return new Cache3(kConstruct, cache6); } /** * @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(CacheStorage2.prototype, { [Symbol.toStringTag]: { value: "CacheStorage", configurable: true }, match: kEnumerableProperty, has: kEnumerableProperty, open: kEnumerableProperty, delete: kEnumerableProperty, keys: kEnumerableProperty }); module4.exports = { CacheStorage: CacheStorage2 }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/constants.js var require_constants4 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/constants.js"(exports, module4) { init_import_meta_url(); var maxAttributeValueSize = 1024; var maxNameValuePairSize = 4096; module4.exports = { maxAttributeValueSize, maxNameValuePairSize }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/util.js var require_util4 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/util.js"(exports, module4) { init_import_meta_url(); function isCTLExcludingHtab(value) { for (let i7 = 0; i7 < value.length; ++i7) { const code = value.charCodeAt(i7); if (code >= 0 && code <= 8 || code >= 10 && code <= 31 || code === 127) { return true; } } return false; } __name(isCTLExcludingHtab, "isCTLExcludingHtab"); function validateCookieName(name2) { for (let i7 = 0; i7 < name2.length; ++i7) { const code = name2.charCodeAt(i7); 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"); } } } __name(validateCookieName, "validateCookieName"); function validateCookieValue(value) { let len = value.length; let i7 = 0; if (value[0] === '"') { if (len === 1 || value[len - 1] !== '"') { throw new Error("Invalid cookie value"); } --len; ++i7; } while (i7 < len) { const code = value.charCodeAt(i7++); 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"); } } } __name(validateCookieValue, "validateCookieValue"); function validateCookiePath(path82) { for (let i7 = 0; i7 < path82.length; ++i7) { const code = path82.charCodeAt(i7); if (code < 32 || // exclude CTLs (0-31) code === 127 || // DEL code === 59) { throw new Error("Invalid cookie path"); } } } __name(validateCookiePath, "validateCookiePath"); function validateCookieDomain(domain2) { if (domain2.startsWith("-") || domain2.endsWith(".") || domain2.endsWith("-")) { throw new Error("Invalid cookie domain"); } } __name(validateCookieDomain, "validateCookieDomain"); 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((_5, i7) => i7.toString().padStart(2, "0")); function toIMFDate(date) { if (typeof date === "number") { date = new Date(date); } return `${IMFDays[date.getUTCDay()]}, ${IMFPaddedNumbers[date.getUTCDate()]} ${IMFMonths[date.getUTCMonth()]} ${date.getUTCFullYear()} ${IMFPaddedNumbers[date.getUTCHours()]}:${IMFPaddedNumbers[date.getUTCMinutes()]}:${IMFPaddedNumbers[date.getUTCSeconds()]} GMT`; } __name(toIMFDate, "toIMFDate"); function validateCookieMaxAge(maxAge) { if (maxAge < 0) { throw new Error("Invalid cookie max-age"); } } __name(validateCookieMaxAge, "validateCookieMaxAge"); function stringify4(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("="); out.push(`${key.trim()}=${value.join("=")}`); } return out.join("; "); } __name(stringify4, "stringify"); module4.exports = { isCTLExcludingHtab, validateCookieName, validateCookiePath, validateCookieValue, toIMFDate, stringify: stringify4 }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/parse.js var require_parse = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/parse.js"(exports, module4) { init_import_meta_url(); var { collectASequenceOfCodePointsFast } = require_infra(); var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(); var { isCTLExcludingHtab } = require_util4(); var assert58 = __require("assert"); var { unescape: qsUnescape } = __require("querystring"); function parseSetCookie(header) { if (isCTLExcludingHtab(header)) { return null; } let nameValuePair = ""; let unparsedAttributes = ""; let name2 = ""; 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 }; name2 = collectASequenceOfCodePointsFast( "=", nameValuePair, position ); value = nameValuePair.slice(position.position + 1); } name2 = name2.trim(); value = value.trim(); if (name2.length + value.length > maxNameValuePairSize) { return null; } return { name: name2, value: qsUnescape(value), ...parseUnparsedAttributes(unparsedAttributes) }; } __name(parseSetCookie, "parseSetCookie"); function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { if (unparsedAttributes.length === 0) { return cookieAttributeList; } assert58(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") { let enforcement = "Default"; const attributeValueLowercase = attributeValue.toLowerCase(); if (attributeValueLowercase.includes("none")) { enforcement = "None"; } if (attributeValueLowercase.includes("strict")) { enforcement = "Strict"; } if (attributeValueLowercase.includes("lax")) { enforcement = "Lax"; } cookieAttributeList.sameSite = enforcement; } else { cookieAttributeList.unparsed ??= []; cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`); } return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList); } __name(parseUnparsedAttributes, "parseUnparsedAttributes"); module4.exports = { parseSetCookie, parseUnparsedAttributes }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/index.js var require_cookies = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/cookies/index.js"(exports, module4) { init_import_meta_url(); var { parseSetCookie } = require_parse(); var { stringify: stringify4 } = require_util4(); var { webidl } = require_webidl(); var { Headers: Headers5 } = require_headers(); var brandChecks = webidl.brandCheckMultiple([Headers5, globalThis.Headers].filter(Boolean)); function getCookies(headers) { webidl.argumentLengthCheck(arguments, 1, "getCookies"); brandChecks(headers); const cookie = headers.get("cookie"); const out = {}; if (!cookie) { return out; } for (const piece of cookie.split(";")) { const [name2, ...value] = piece.split("="); out[name2.trim()] = value.join("="); } return out; } __name(getCookies, "getCookies"); function deleteCookie(headers, name2, attributes) { brandChecks(headers); const prefix = "deleteCookie"; webidl.argumentLengthCheck(arguments, 2, prefix); name2 = webidl.converters.DOMString(name2, prefix, "name"); attributes = webidl.converters.DeleteCookieAttributes(attributes); setCookie(headers, { name: name2, value: "", expires: /* @__PURE__ */ new Date(0), ...attributes }); } __name(deleteCookie, "deleteCookie"); function getSetCookies(headers) { webidl.argumentLengthCheck(arguments, 1, "getSetCookies"); brandChecks(headers); const cookies = headers.getSetCookie(); if (!cookies) { return []; } return cookies.map((pair) => parseSetCookie(pair)); } __name(getSetCookies, "getSetCookies"); function parseCookie2(cookie) { cookie = webidl.converters.DOMString(cookie); return parseSetCookie(cookie); } __name(parseCookie2, "parseCookie"); function setCookie(headers, cookie) { webidl.argumentLengthCheck(arguments, 2, "setCookie"); brandChecks(headers); cookie = webidl.converters.Cookie(cookie); const str = stringify4(cookie); if (str) { headers.append("set-cookie", str, true); } } __name(setCookie, "setCookie"); webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "path", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "domain", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") } ]); 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: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.nullableConverter(webidl.converters["long long"]), key: "maxAge", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "domain", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.nullableConverter(webidl.converters.DOMString), key: "path", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.nullableConverter(webidl.converters.boolean), key: "secure", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.nullableConverter(webidl.converters.boolean), key: "httpOnly", defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { converter: webidl.converters.USVString, key: "sameSite", allowedValues: ["Strict", "Lax", "None"] }, { converter: webidl.sequenceConverter(webidl.converters.DOMString), key: "unparsed", defaultValue: /* @__PURE__ */ __name(() => [], "defaultValue") } ]); module4.exports = { getCookies, deleteCookie, getSetCookies, setCookie, parseCookie: parseCookie2 }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/events.js var require_events = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/events.js"(exports, module4) { init_import_meta_url(); var { webidl } = require_webidl(); var { kEnumerableProperty } = require_util(); var { kConstruct } = require_symbols(); var MessageEvent = class _MessageEvent extends Event { static { __name(this, "MessageEvent"); } #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 = "", lastEventId2 = "", source = null, ports = []) { webidl.brandCheck(this, _MessageEvent); webidl.argumentLengthCheck(arguments, 1, "MessageEvent.initMessageEvent"); return new _MessageEvent(type, { bubbles, cancelable, data, origin, lastEventId: lastEventId2, source, ports }); } static createFastMessageEvent(type, init4) { const messageEvent = new _MessageEvent(kConstruct, type, init4); messageEvent.#eventInit = init4; 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 { static { __name(this, "CloseEvent"); } #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 { static { __name(this, "ErrorEvent"); } #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( webidl.is.MessagePort, "MessagePort" ); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.MessagePort ); var eventInit = [ { key: "bubbles", converter: webidl.converters.boolean, defaultValue: /* @__PURE__ */ __name(() => false, "defaultValue") }, { key: "cancelable", converter: webidl.converters.boolean, defaultValue: /* @__PURE__ */ __name(() => false, "defaultValue") }, { key: "composed", converter: webidl.converters.boolean, defaultValue: /* @__PURE__ */ __name(() => false, "defaultValue") } ]; webidl.converters.MessageEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "data", converter: webidl.converters.any, defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") }, { key: "origin", converter: webidl.converters.USVString, defaultValue: /* @__PURE__ */ __name(() => "", "defaultValue") }, { key: "lastEventId", converter: webidl.converters.DOMString, defaultValue: /* @__PURE__ */ __name(() => "", "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: /* @__PURE__ */ __name(() => null, "defaultValue") }, { key: "ports", converter: webidl.converters["sequence"], defaultValue: /* @__PURE__ */ __name(() => [], "defaultValue") } ]); webidl.converters.CloseEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "wasClean", converter: webidl.converters.boolean, defaultValue: /* @__PURE__ */ __name(() => false, "defaultValue") }, { key: "code", converter: webidl.converters["unsigned short"], defaultValue: /* @__PURE__ */ __name(() => 0, "defaultValue") }, { key: "reason", converter: webidl.converters.USVString, defaultValue: /* @__PURE__ */ __name(() => "", "defaultValue") } ]); webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ ...eventInit, { key: "message", converter: webidl.converters.DOMString, defaultValue: /* @__PURE__ */ __name(() => "", "defaultValue") }, { key: "filename", converter: webidl.converters.USVString, defaultValue: /* @__PURE__ */ __name(() => "", "defaultValue") }, { key: "lineno", converter: webidl.converters["unsigned long"], defaultValue: /* @__PURE__ */ __name(() => 0, "defaultValue") }, { key: "colno", converter: webidl.converters["unsigned long"], defaultValue: /* @__PURE__ */ __name(() => 0, "defaultValue") }, { key: "error", converter: webidl.converters.any } ]); module4.exports = { MessageEvent, CloseEvent, ErrorEvent, createFastMessageEvent }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/constants.js var require_constants5 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/constants.js"(exports, module4) { init_import_meta_url(); 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 = { SENT: 1, RECEIVED: 2 }; var opcodes = { CONTINUATION: 0, TEXT: 1, BINARY: 2, CLOSE: 8, PING: 9, PONG: 10 }; var maxUnsigned16Bit = 65535; var parserStates = { INFO: 0, PAYLOADLENGTH_16: 2, PAYLOADLENGTH_64: 3, READ_DATA: 4 }; var emptyBuffer = Buffer.allocUnsafe(0); var sendHints = { text: 1, typedArray: 2, arrayBuffer: 3, blob: 4 }; module4.exports = { uid, sentCloseFrameState, staticPropertyDescriptors, states, opcodes, maxUnsigned16Bit, parserStates, emptyBuffer, sendHints }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/util.js var require_util5 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/util.js"(exports, module4) { init_import_meta_url(); var { states, opcodes } = require_constants5(); var { isUtf8 } = __require("buffer"); var { removeHTTPWhitespace } = require_data_url(); var { collectASequenceOfCodePointsFast } = require_infra(); function isConnecting(readyState) { return readyState === states.CONNECTING; } __name(isConnecting, "isConnecting"); function isEstablished(readyState) { return readyState === states.OPEN; } __name(isEstablished, "isEstablished"); function isClosing(readyState) { return readyState === states.CLOSING; } __name(isClosing, "isClosing"); function isClosed(readyState) { return readyState === states.CLOSED; } __name(isClosed, "isClosed"); function fireEvent(e9, target, eventFactory = (type, init4) => new Event(type, init4), eventInitDict = {}) { const event = eventFactory(e9, eventInitDict); target.dispatchEvent(event); } __name(fireEvent, "fireEvent"); function websocketMessageReceived(handler, type, data) { handler.onMessage(type, data); } __name(websocketMessageReceived, "websocketMessageReceived"); function toArrayBuffer(buffer) { if (buffer.byteLength === buffer.buffer.byteLength) { return buffer.buffer; } return new Uint8Array(buffer).buffer; } __name(toArrayBuffer, "toArrayBuffer"); function isValidSubprotocol(protocol) { if (protocol.length === 0) { return false; } for (let i7 = 0; i7 < protocol.length; ++i7) { const code = protocol.charCodeAt(i7); 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; } __name(isValidSubprotocol, "isValidSubprotocol"); 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; } __name(isValidStatusCode, "isValidStatusCode"); function isControlFrame(opcode) { return opcode === opcodes.CLOSE || opcode === opcodes.PING || opcode === opcodes.PONG; } __name(isControlFrame, "isControlFrame"); function isContinuationFrame(opcode) { return opcode === opcodes.CONTINUATION; } __name(isContinuationFrame, "isContinuationFrame"); function isTextBinaryFrame(opcode) { return opcode === opcodes.TEXT || opcode === opcodes.BINARY; } __name(isTextBinaryFrame, "isTextBinaryFrame"); function isValidOpcode(opcode) { return isTextBinaryFrame(opcode) || isContinuationFrame(opcode) || isControlFrame(opcode); } __name(isValidOpcode, "isValidOpcode"); function parseExtensions(extensions) { const position = { position: 0 }; const extensionList = /* @__PURE__ */ new Map(); while (position.position < extensions.length) { const pair = collectASequenceOfCodePointsFast(";", extensions, position); const [name2, value = ""] = pair.split("=", 2); extensionList.set( removeHTTPWhitespace(name2, true, false), removeHTTPWhitespace(value, false, true) ); position.position++; } return extensionList; } __name(parseExtensions, "parseExtensions"); function isValidClientWindowBits(value) { for (let i7 = 0; i7 < value.length; i7++) { const byte = value.charCodeAt(i7); if (byte < 48 || byte > 57) { return false; } } return true; } __name(isValidClientWindowBits, "isValidClientWindowBits"); function getURLRecord(url4, baseURL) { let urlRecord; try { urlRecord = new URL(url4, baseURL); } catch (e9) { throw new DOMException(e9, "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: url", "SyntaxError"); } if (urlRecord.hash.length || urlRecord.href.endsWith("#")) { throw new DOMException("hash", "SyntaxError"); } return urlRecord; } __name(getURLRecord, "getURLRecord"); function validateCloseCodeAndReason(code, reason) { if (code !== null) { if (code !== 1e3 && (code < 3e3 || code > 4999)) { throw new DOMException("invalid code", "InvalidAccessError"); } } if (reason !== null) { const reasonBytesLength = Buffer.byteLength(reason); if (reasonBytesLength > 123) { throw new DOMException(`Reason must be less than 123 bytes; received ${reasonBytesLength}`, "SyntaxError"); } } } __name(validateCloseCodeAndReason, "validateCloseCodeAndReason"); var utf8Decode = (() => { if (typeof process.versions.icu === "string") { const fatalDecoder = new TextDecoder("utf-8", { fatal: true }); return fatalDecoder.decode.bind(fatalDecoder); } return function(buffer) { if (isUtf8(buffer)) { return buffer.toString("utf-8"); } throw new TypeError("Invalid utf-8 received."); }; })(); module4.exports = { isConnecting, isEstablished, isClosing, isClosed, fireEvent, isValidSubprotocol, isValidStatusCode, websocketMessageReceived, utf8Decode, isControlFrame, isContinuationFrame, isTextBinaryFrame, isValidOpcode, parseExtensions, isValidClientWindowBits, toArrayBuffer, getURLRecord, validateCloseCodeAndReason }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/frame.js var require_frame = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/frame.js"(exports, module4) { init_import_meta_url(); var { runtimeFeatures } = require_runtime_features(); var { maxUnsigned16Bit, opcodes } = require_constants5(); var BUFFER_SIZE = 8 * 1024; var buffer = null; var bufIdx = BUFFER_SIZE; var randomFillSync = runtimeFeatures.has("crypto") ? __require("crypto").randomFillSync : /* @__PURE__ */ __name(function randomFillSync2(buffer2, _offset, _size) { for (let i7 = 0; i7 < buffer2.length; ++i7) { buffer2[i7] = Math.random() * 255 | 0; } return buffer2; }, "randomFillSync"); function generateMask() { if (bufIdx === BUFFER_SIZE) { bufIdx = 0; randomFillSync(buffer ??= Buffer.allocUnsafeSlow(BUFFER_SIZE), 0, BUFFER_SIZE); } return [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]; } __name(generateMask, "generateMask"); var WebsocketFrameSend = class { static { __name(this, "WebsocketFrameSend"); } /** * @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 i7 = 0; i7 < bodyLength; ++i7) { buffer2[offset + i7] = frameData[i7] ^ maskKey[i7 & 3]; } return buffer2; } /** * @param {Uint8Array} buffer */ static createFastTextFrame(buffer2) { const maskKey = generateMask(); const bodyLength = buffer2.length; for (let i7 = 0; i7 < bodyLength; ++i7) { buffer2[i7] ^= maskKey[i7 & 3]; } let payloadLength = bodyLength; let offset = 6; if (bodyLength > maxUnsigned16Bit) { offset += 8; payloadLength = 127; } else if (bodyLength > 125) { offset += 2; payloadLength = 126; } const head = Buffer.allocUnsafeSlow(offset); head[0] = 128 | opcodes.TEXT; head[1] = payloadLength | 128; head[offset - 4] = maskKey[0]; head[offset - 3] = maskKey[1]; head[offset - 2] = maskKey[2]; head[offset - 1] = maskKey[3]; if (payloadLength === 126) { head.writeUInt16BE(bodyLength, 2); } else if (payloadLength === 127) { head[2] = head[3] = 0; head.writeUIntBE(bodyLength, 4, 6); } return [head, buffer2]; } }; module4.exports = { WebsocketFrameSend, generateMask // for benchmark }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/connection.js var require_connection = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/connection.js"(exports, module4) { init_import_meta_url(); var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5(); var { parseExtensions, isClosed, isClosing, isEstablished, isConnecting, validateCloseCodeAndReason } = require_util5(); var { makeRequest } = require_request2(); var { fetching } = require_fetch(); var { Headers: Headers5, getHeadersList } = require_headers(); var { getDecodeSplit } = require_util2(); var { WebsocketFrameSend } = require_frame(); var assert58 = __require("assert"); var { runtimeFeatures } = require_runtime_features(); var crypto9 = runtimeFeatures.has("crypto") ? __require("crypto") : null; var warningEmitted2 = false; function establishWebSocketConnection(url4, protocols, client, handler, options) { const requestURL = url4; requestURL.protocol = url4.protocol === "ws:" ? "http:" : "https:"; const request4 = 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 Headers5(options.headers)); request4.headersList = headersList; } const keyValue = crypto9.randomBytes(16).toString("base64"); request4.headersList.append("sec-websocket-key", keyValue, true); request4.headersList.append("sec-websocket-version", "13", true); for (const protocol of protocols) { request4.headersList.append("sec-websocket-protocol", protocol, true); } const permessageDeflate = "permessage-deflate; client_max_window_bits"; request4.headersList.append("sec-websocket-extensions", permessageDeflate, true); const controller = fetching({ request: request4, useParallelQueue: true, dispatcher: options.dispatcher, processResponse(response) { if (response.type === "error" || response.status !== 101) { if (response.socket?.session == null) { failWebsocketConnection(handler, 1002, "Received network error or non-101 status code.", response.error); return; } if (response.status !== 200) { failWebsocketConnection(handler, 1002, "Received network error or non-200 status code.", response.error); return; } } if (warningEmitted2 === false && response.socket?.session != null) { process.emitWarning("WebSocket over HTTP2 is experimental, and subject to change.", "ExperimentalWarning"); warningEmitted2 = true; } if (protocols.length !== 0 && !response.headersList.get("Sec-WebSocket-Protocol")) { failWebsocketConnection(handler, 1002, "Server did not respond with sent protocols."); return; } if (response.socket.session == null && response.headersList.get("Upgrade")?.toLowerCase() !== "websocket") { failWebsocketConnection(handler, 1002, 'Server did not set Upgrade header to "websocket".'); return; } if (response.socket.session == null && response.headersList.get("Connection")?.toLowerCase() !== "upgrade") { failWebsocketConnection(handler, 1002, 'Server did not set Connection header to "upgrade".'); return; } const secWSAccept = response.headersList.get("Sec-WebSocket-Accept"); const digest = crypto9.hash("sha1", keyValue + uid, "base64"); if (secWSAccept !== digest) { failWebsocketConnection(handler, 1002, "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(handler, 1002, "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", request4.headersList); if (!requestProtocols.includes(secProtocol)) { failWebsocketConnection(handler, 1002, "Protocol was not set in the opening handshake."); return; } } response.socket.on("data", handler.onSocketData); response.socket.on("close", handler.onSocketClose); response.socket.on("error", handler.onSocketError); handler.wasEverConnected = true; handler.onConnectionEstablished(response, extensions); } }); return controller; } __name(establishWebSocketConnection, "establishWebSocketConnection"); function closeWebSocketConnection(object, code, reason, validate3 = false) { code ??= null; reason ??= ""; if (validate3) validateCloseCodeAndReason(code, reason); if (isClosed(object.readyState) || isClosing(object.readyState)) ; else if (!isEstablished(object.readyState)) { failWebsocketConnection(object); object.readyState = states.CLOSING; } else if (!object.closeState.has(sentCloseFrameState.SENT) && !object.closeState.has(sentCloseFrameState.RECEIVED)) { const frame = new WebsocketFrameSend(); if (reason.length !== 0 && code === null) { code = 1e3; } assert58(code === null || Number.isInteger(code)); if (code === null && reason.length === 0) { frame.frameData = emptyBuffer; } else if (code !== null && reason === null) { frame.frameData = Buffer.allocUnsafe(2); frame.frameData.writeUInt16BE(code, 0); } else if (code !== null && reason !== null) { frame.frameData = Buffer.allocUnsafe(2 + Buffer.byteLength(reason)); frame.frameData.writeUInt16BE(code, 0); frame.frameData.write(reason, 2, "utf-8"); } else { frame.frameData = emptyBuffer; } object.socket.write(frame.createFrame(opcodes.CLOSE)); object.closeState.add(sentCloseFrameState.SENT); object.readyState = states.CLOSING; } else { object.readyState = states.CLOSING; } } __name(closeWebSocketConnection, "closeWebSocketConnection"); function failWebsocketConnection(handler, code, reason, cause) { if (isEstablished(handler.readyState)) { closeWebSocketConnection(handler, code, reason, false); } handler.controller.abort(); if (isConnecting(handler.readyState)) { handler.onSocketClose(); } else if (handler.socket?.destroyed === false) { handler.socket.destroy(); } } __name(failWebsocketConnection, "failWebsocketConnection"); module4.exports = { establishWebSocketConnection, failWebsocketConnection, closeWebSocketConnection }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/permessage-deflate.js var require_permessage_deflate = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports, module4) { init_import_meta_url(); var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("zlib"); var { isValidClientWindowBits } = require_util5(); var tail = Buffer.from([0, 0, 255, 255]); var kBuffer = Symbol("kBuffer"); var kLength = Symbol("kLength"); var PerMessageDeflate = class { static { __name(this, "PerMessageDeflate"); } /** @type {import('node:zlib').InflateRaw} */ #inflate; #options = {}; constructor(extensions) { this.#options.serverNoContextTakeover = extensions.has("server_no_context_takeover"); this.#options.serverMaxWindowBits = extensions.get("server_max_window_bits"); } 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); } this.#inflate = createInflateRaw({ windowBits }); this.#inflate[kBuffer] = []; this.#inflate[kLength] = 0; this.#inflate.on("data", (data) => { this.#inflate[kBuffer].push(data); this.#inflate[kLength] += data.length; }); this.#inflate.on("error", (err) => { this.#inflate = null; callback(err); }); } this.#inflate.write(chunk); if (fin) { this.#inflate.write(tail); } this.#inflate.flush(() => { const full = Buffer.concat(this.#inflate[kBuffer], this.#inflate[kLength]); this.#inflate[kBuffer].length = 0; this.#inflate[kLength] = 0; callback(null, full); }); } }; module4.exports = { PerMessageDeflate }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/receiver.js var require_receiver = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/receiver.js"(exports, module4) { init_import_meta_url(); var { Writable: Writable5 } = __require("stream"); var assert58 = __require("assert"); var { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants5(); var { isValidStatusCode, isValidOpcode, websocketMessageReceived, utf8Decode, isControlFrame, isTextBinaryFrame, isContinuationFrame } = require_util5(); var { failWebsocketConnection } = require_connection(); var { WebsocketFrameSend } = require_frame(); var { PerMessageDeflate } = require_permessage_deflate(); var ByteParser = class extends Writable5 { static { __name(this, "ByteParser"); } #buffers = []; #fragmentsBytes = 0; #byteOffset = 0; #loop = false; #state = parserStates.INFO; #info = {}; #fragments = []; /** @type {Map} */ #extensions; /** @type {import('./websocket').Handler} */ #handler; constructor(handler, extensions) { super(); this.#handler = handler; this.#extensions = extensions == null ? /* @__PURE__ */ new Map() : extensions; if (this.#extensions.has("permessage-deflate")) { this.#extensions.set("permessage-deflate", new PerMessageDeflate(extensions)); } } /** * @param {Buffer} chunk * @param {() => void} callback */ _write(chunk, _5, callback) { this.#buffers.push(chunk); this.#byteOffset += chunk.length; this.#loop = true; this.run(callback); } /** * 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.#handler, 1002, "Invalid opcode received"); return callback(); } if (masked) { failWebsocketConnection(this.#handler, 1002, "Frame cannot be masked"); return callback(); } if (rsv1 !== 0 && !this.#extensions.has("permessage-deflate")) { failWebsocketConnection(this.#handler, 1002, "Expected RSV1 to be clear."); return; } if (rsv2 !== 0 || rsv3 !== 0) { failWebsocketConnection(this.#handler, 1002, "RSV1, RSV2, RSV3 must be clear"); return; } if (fragmented && !isTextBinaryFrame(opcode)) { failWebsocketConnection(this.#handler, 1002, "Invalid frame type was fragmented."); return; } if (isTextBinaryFrame(opcode) && this.#fragments.length > 0) { failWebsocketConnection(this.#handler, 1002, "Expected continuation frame"); return; } if (this.#info.fragmented && fragmented) { failWebsocketConnection(this.#handler, 1002, "Fragmented frame exceeded 125 bytes."); return; } if ((payloadLength > 125 || fragmented) && isControlFrame(opcode)) { failWebsocketConnection(this.#handler, 1002, "Control frame either too large or fragmented"); return; } if (isContinuationFrame(opcode) && this.#fragments.length === 0 && !this.#info.compressed) { failWebsocketConnection(this.#handler, 1002, "Unexpected continuation frame"); return; } if (payloadLength <= 125) { this.#info.payloadLength = payloadLength; this.#state = parserStates.READ_DATA; } 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; } else if (this.#state === parserStates.PAYLOADLENGTH_64) { if (this.#byteOffset < 8) { return callback(); } const buffer = this.consume(8); const upper = buffer.readUInt32BE(0); if (upper > 2 ** 31 - 1) { failWebsocketConnection(this.#handler, 1009, "Received payload length > 2^31 bytes."); return; } const lower = buffer.readUInt32BE(4); this.#info.payloadLength = (upper << 8) + lower; this.#state = parserStates.READ_DATA; } 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) { this.writeFragments(body); if (!this.#info.fragmented && this.#info.fin) { websocketMessageReceived(this.#handler, this.#info.binaryType, this.consumeFragments()); } this.#state = parserStates.INFO; } else { this.#extensions.get("permessage-deflate").decompress(body, this.#info.fin, (error2, data) => { if (error2) { failWebsocketConnection(this.#handler, 1007, error2.message); return; } this.writeFragments(data); if (!this.#info.fin) { this.#state = parserStates.INFO; this.#loop = true; this.run(callback); return; } websocketMessageReceived(this.#handler, 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(n8) { if (n8 > this.#byteOffset) { throw new Error("Called consume() before buffers satiated."); } else if (n8 === 0) { return emptyBuffer; } this.#byteOffset -= n8; const first = this.#buffers[0]; if (first.length > n8) { this.#buffers[0] = first.subarray(n8, first.length); return first.subarray(0, n8); } else if (first.length === n8) { return this.#buffers.shift(); } else { let offset = 0; const buffer = Buffer.allocUnsafeSlow(n8); while (offset !== n8) { const next = this.#buffers[0]; const length = next.length; if (length + offset === n8) { buffer.set(this.#buffers.shift(), offset); break; } else if (length + offset > n8) { buffer.set(next.subarray(0, n8 - offset), offset); this.#buffers[0] = next.subarray(n8 - offset); break; } else { buffer.set(this.#buffers.shift(), offset); offset += length; } } return buffer; } } writeFragments(fragment) { this.#fragmentsBytes += fragment.length; this.#fragments.push(fragment); } consumeFragments() { const fragments = this.#fragments; if (fragments.length === 1) { this.#fragmentsBytes = 0; return fragments.shift(); } let offset = 0; const output = Buffer.allocUnsafeSlow(this.#fragmentsBytes); for (let i7 = 0; i7 < fragments.length; ++i7) { const buffer = fragments[i7]; output.set(buffer, offset); offset += buffer.length; } this.#fragments = []; this.#fragmentsBytes = 0; return output; } parseCloseBody(data) { assert58(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.#handler, 1002, "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; failWebsocketConnection(this.#handler, code, reason); return false; } if (!this.#handler.closeState.has(sentCloseFrameState.SENT) && !this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) { 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.#handler.socket.write(closeFrame.createFrame(opcodes.CLOSE)); this.#handler.closeState.add(sentCloseFrameState.SENT); } this.#handler.readyState = states.CLOSING; this.#handler.closeState.add(sentCloseFrameState.RECEIVED); return false; } else if (opcode === opcodes.PING) { if (!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) { const frame = new WebsocketFrameSend(body); this.#handler.socket.write(frame.createFrame(opcodes.PONG)); this.#handler.onPing(body); } } else if (opcode === opcodes.PONG) { this.#handler.onPong(body); } return true; } get closingInfo() { return this.#info.closeInfo; } }; module4.exports = { ByteParser }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/sender.js var require_sender = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/sender.js"(exports, module4) { init_import_meta_url(); var { WebsocketFrameSend } = require_frame(); var { opcodes, sendHints } = require_constants5(); var FixedQueue = require_fixed_queue(); var SendQueue = class { static { __name(this, "SendQueue"); } /** * @type {FixedQueue} */ #queue = new FixedQueue(); /** * @type {boolean} */ #running = false; /** @type {import('node:net').Socket} */ #socket; constructor(socket) { this.#socket = socket; } add(item, cb2, hint) { if (hint !== sendHints.blob) { if (!this.#running) { if (hint === sendHints.text) { const { 0: head, 1: body } = WebsocketFrameSend.createFastTextFrame(item); this.#socket.cork(); this.#socket.write(head); this.#socket.write(body, cb2); this.#socket.uncork(); } else { this.#socket.write(createFrame(item, hint), cb2); } } else { const node3 = { promise: null, callback: cb2, frame: createFrame(item, hint) }; this.#queue.push(node3); } return; } const node2 = { promise: item.arrayBuffer().then((ab2) => { node2.promise = null; node2.frame = createFrame(ab2, hint); }), callback: cb2, frame: null }; this.#queue.push(node2); if (!this.#running) { this.#run(); } } async #run() { this.#running = true; const queue = this.#queue; while (!queue.isEmpty()) { const node2 = queue.shift(); if (node2.promise !== null) { await node2.promise; } this.#socket.write(node2.frame, node2.callback); node2.callback = node2.frame = null; } this.#running = false; } }; function createFrame(data, hint) { return new WebsocketFrameSend(toBuffer(data, hint)).createFrame(hint === sendHints.text ? opcodes.TEXT : opcodes.BINARY); } __name(createFrame, "createFrame"); function toBuffer(data, hint) { switch (hint) { case sendHints.text: case sendHints.typedArray: return new Uint8Array(data.buffer, data.byteOffset, data.byteLength); case sendHints.arrayBuffer: case sendHints.blob: return new Uint8Array(data); } } __name(toBuffer, "toBuffer"); module4.exports = { SendQueue }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/websocket.js var require_websocket = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/websocket.js"(exports, module4) { init_import_meta_url(); var { isArrayBuffer: isArrayBuffer3 } = __require("util/types"); var { webidl } = require_webidl(); var { URLSerializer } = require_data_url(); var { environmentSettingsObject } = require_util2(); var { staticPropertyDescriptors, states, sentCloseFrameState, sendHints, opcodes } = require_constants5(); var { isConnecting, isEstablished, isClosing, isClosed, isValidSubprotocol, fireEvent, utf8Decode, toArrayBuffer, getURLRecord } = require_util5(); var { establishWebSocketConnection, closeWebSocketConnection, failWebsocketConnection } = require_connection(); var { ByteParser } = require_receiver(); var { kEnumerableProperty } = require_util(); var { getGlobalDispatcher: getGlobalDispatcher2 } = require_global2(); var { ErrorEvent, CloseEvent, createFastMessageEvent } = require_events(); var { SendQueue } = require_sender(); var { WebsocketFrameSend } = require_frame(); var { channels } = require_diagnostics(); var WebSocket2 = class _WebSocket extends EventTarget { static { __name(this, "WebSocket"); } #events = { open: null, error: null, close: null, message: null }; #bufferedAmount = 0; #protocol = ""; #extensions = ""; /** @type {SendQueue} */ #sendQueue; /** @type {Handler} */ #handler = { onConnectionEstablished: /* @__PURE__ */ __name((response, extensions) => this.#onConnectionEstablished(response, extensions), "onConnectionEstablished"), onMessage: /* @__PURE__ */ __name((opcode, data) => this.#onMessage(opcode, data), "onMessage"), onParserError: /* @__PURE__ */ __name((err) => failWebsocketConnection(this.#handler, null, err.message), "onParserError"), onParserDrain: /* @__PURE__ */ __name(() => this.#onParserDrain(), "onParserDrain"), onSocketData: /* @__PURE__ */ __name((chunk) => { if (!this.#parser.write(chunk)) { this.#handler.socket.pause(); } }, "onSocketData"), onSocketError: /* @__PURE__ */ __name((err) => { this.#handler.readyState = states.CLOSING; if (channels.socketError.hasSubscribers) { channels.socketError.publish(err); } this.#handler.socket.destroy(); }, "onSocketError"), onSocketClose: /* @__PURE__ */ __name(() => this.#onSocketClose(), "onSocketClose"), onPing: /* @__PURE__ */ __name((body) => { if (channels.ping.hasSubscribers) { channels.ping.publish({ payload: body, websocket: this }); } }, "onPing"), onPong: /* @__PURE__ */ __name((body) => { if (channels.pong.hasSubscribers) { channels.pong.publish({ payload: body, websocket: this }); } }, "onPong"), readyState: states.CONNECTING, socket: null, closeState: /* @__PURE__ */ new Set(), controller: null, wasEverConnected: false }; #url; #binaryType; /** @type {import('./receiver').ByteParser} */ #parser; /** * @param {string} url * @param {string|string[]} protocols */ constructor(url4, 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"); url4 = webidl.converters.USVString(url4); protocols = options.protocols; const baseURL = environmentSettingsObject.settingsObject.baseUrl; const urlRecord = getURLRecord(url4, baseURL); if (typeof protocols === "string") { protocols = [protocols]; } if (protocols.length !== new Set(protocols.map((p7) => p7.toLowerCase())).size) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } if (protocols.length > 0 && !protocols.every((p7) => isValidSubprotocol(p7))) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } this.#url = new URL(urlRecord.href); const client = environmentSettingsObject.settingsObject; this.#handler.controller = establishWebSocketConnection( urlRecord, protocols, client, this.#handler, options ); this.#handler.readyState = _WebSocket.CONNECTING; this.#binaryType = "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", webidl.attributes.Clamp); } if (reason !== void 0) { reason = webidl.converters.USVString(reason); } code ??= null; reason ??= ""; closeWebSocketConnection(this.#handler, code, reason, true); } /** * @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.#handler.readyState)) { throw new DOMException("Sent before connected.", "InvalidStateError"); } if (!isEstablished(this.#handler.readyState) || isClosing(this.#handler.readyState)) { return; } if (typeof data === "string") { const buffer = Buffer.from(data); this.#bufferedAmount += buffer.byteLength; this.#sendQueue.add(buffer, () => { this.#bufferedAmount -= buffer.byteLength; }, sendHints.text); } else if (isArrayBuffer3(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 (webidl.is.Blob(data)) { this.#bufferedAmount += data.size; this.#sendQueue.add(data, () => { this.#bufferedAmount -= data.size; }, sendHints.blob); } } get readyState() { webidl.brandCheck(this, _WebSocket); return this.#handler.readyState; } get bufferedAmount() { webidl.brandCheck(this, _WebSocket); return this.#bufferedAmount; } get url() { webidl.brandCheck(this, _WebSocket); return URLSerializer(this.#url); } 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(fn2) { webidl.brandCheck(this, _WebSocket); if (this.#events.open) { this.removeEventListener("open", this.#events.open); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("open", listener); this.#events.open = fn2; } else { this.#events.open = null; } } get onerror() { webidl.brandCheck(this, _WebSocket); return this.#events.error; } set onerror(fn2) { webidl.brandCheck(this, _WebSocket); if (this.#events.error) { this.removeEventListener("error", this.#events.error); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("error", listener); this.#events.error = fn2; } else { this.#events.error = null; } } get onclose() { webidl.brandCheck(this, _WebSocket); return this.#events.close; } set onclose(fn2) { webidl.brandCheck(this, _WebSocket); if (this.#events.close) { this.removeEventListener("close", this.#events.close); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("close", listener); this.#events.close = fn2; } else { this.#events.close = null; } } get onmessage() { webidl.brandCheck(this, _WebSocket); return this.#events.message; } set onmessage(fn2) { webidl.brandCheck(this, _WebSocket); if (this.#events.message) { this.removeEventListener("message", this.#events.message); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("message", listener); this.#events.message = fn2; } else { this.#events.message = null; } } get binaryType() { webidl.brandCheck(this, _WebSocket); return this.#binaryType; } set binaryType(type) { webidl.brandCheck(this, _WebSocket); if (type !== "blob" && type !== "arraybuffer") { this.#binaryType = "blob"; } else { this.#binaryType = type; } } /** * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol */ #onConnectionEstablished(response, parsedExtensions) { this.#handler.socket = response.socket; const parser2 = new ByteParser(this.#handler, parsedExtensions); parser2.on("drain", () => this.#handler.onParserDrain()); parser2.on("error", (err) => this.#handler.onParserError(err)); this.#parser = parser2; this.#sendQueue = new SendQueue(response.socket); this.#handler.readyState = 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); if (channels.open.hasSubscribers) { const headers = response.headersList.entries; channels.open.publish({ address: response.socket.address(), protocol: this.#protocol, extensions: this.#extensions, websocket: this, handshakeResponse: { status: response.status, statusText: response.statusText, headers } }); } } #onMessage(type, data) { if (this.#handler.readyState !== states.OPEN) { return; } let dataForEvent; if (type === opcodes.TEXT) { try { dataForEvent = utf8Decode(data); } catch { failWebsocketConnection(this.#handler, 1007, "Received invalid UTF-8 in text frame."); return; } } else if (type === opcodes.BINARY) { if (this.#binaryType === "blob") { dataForEvent = new Blob([data]); } else { dataForEvent = toArrayBuffer(data); } } fireEvent("message", this, createFastMessageEvent, { origin: this.#url.origin, data: dataForEvent }); } #onParserDrain() { this.#handler.socket.resume(); } /** * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 */ #onSocketClose() { const wasClean = this.#handler.closeState.has(sentCloseFrameState.SENT) && this.#handler.closeState.has(sentCloseFrameState.RECEIVED); let code = 1005; let reason = ""; const result = this.#parser?.closingInfo; if (result && !result.error) { code = result.code ?? 1005; reason = result.reason; } this.#handler.readyState = states.CLOSED; if (!this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) { code = 1006; fireEvent("error", this, (type, init4) => new ErrorEvent(type, init4), { error: new TypeError(reason) }); } fireEvent("close", this, (type, init4) => new CloseEvent(type, init4), { wasClean, code, reason }); if (channels.close.hasSubscribers) { channels.close.publish({ websocket: this, code, reason }); } } /** * @param {WebSocket} ws * @param {Buffer|undefined} buffer */ static ping(ws, buffer) { if (Buffer.isBuffer(buffer)) { if (buffer.length > 125) { throw new TypeError("A PING frame cannot have a body larger than 125 bytes."); } } else if (buffer !== void 0) { throw new TypeError("Expected buffer payload"); } const readyState = ws.#handler.readyState; if (isEstablished(readyState) && !isClosing(readyState) && !isClosed(readyState)) { const frame = new WebsocketFrameSend(buffer); ws.#handler.socket.write(frame.createFrame(opcodes.PING)); } } }; var { ping } = WebSocket2; Reflect.deleteProperty(WebSocket2, "ping"); WebSocket2.CONNECTING = WebSocket2.prototype.CONNECTING = states.CONNECTING; WebSocket2.OPEN = WebSocket2.prototype.OPEN = states.OPEN; WebSocket2.CLOSING = WebSocket2.prototype.CLOSING = states.CLOSING; WebSocket2.CLOSED = WebSocket2.prototype.CLOSED = states.CLOSED; Object.defineProperties(WebSocket2.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(WebSocket2, { CONNECTING: staticPropertyDescriptors, OPEN: staticPropertyDescriptors, CLOSING: staticPropertyDescriptors, CLOSED: staticPropertyDescriptors }); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.DOMString ); webidl.converters["DOMString or sequence"] = function(V4, prefix, argument) { if (webidl.util.Type(V4) === webidl.util.Types.OBJECT && Symbol.iterator in V4) { return webidl.converters["sequence"](V4); } return webidl.converters.DOMString(V4, prefix, argument); }; webidl.converters.WebSocketInit = webidl.dictionaryConverter([ { key: "protocols", converter: webidl.converters["DOMString or sequence"], defaultValue: /* @__PURE__ */ __name(() => [], "defaultValue") }, { key: "dispatcher", converter: webidl.converters.any, defaultValue: /* @__PURE__ */ __name(() => getGlobalDispatcher2(), "defaultValue") }, { key: "headers", converter: webidl.nullableConverter(webidl.converters.HeadersInit) } ]); webidl.converters["DOMString or sequence or WebSocketInit"] = function(V4) { if (webidl.util.Type(V4) === webidl.util.Types.OBJECT && !(Symbol.iterator in V4)) { return webidl.converters.WebSocketInit(V4); } return { protocols: webidl.converters["DOMString or sequence"](V4) }; }; webidl.converters.WebSocketSendData = function(V4) { if (webidl.util.Type(V4) === webidl.util.Types.OBJECT) { if (webidl.is.Blob(V4)) { return V4; } if (webidl.is.BufferSource(V4)) { return V4; } } return webidl.converters.USVString(V4); }; module4.exports = { WebSocket: WebSocket2, ping }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/stream/websocketerror.js var require_websocketerror = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/stream/websocketerror.js"(exports, module4) { init_import_meta_url(); var { webidl } = require_webidl(); var { validateCloseCodeAndReason } = require_util5(); var { kConstruct } = require_symbols(); var { kEnumerableProperty } = require_util(); function createInheritableDOMException() { class Test extends DOMException { static { __name(this, "Test"); } get reason() { return ""; } } if (new Test().reason !== void 0) { return DOMException; } return new Proxy(DOMException, { construct(target, args, newTarget) { const instance = Reflect.construct(target, args, target); Object.setPrototypeOf(instance, newTarget.prototype); return instance; } }); } __name(createInheritableDOMException, "createInheritableDOMException"); var WebSocketError = class _WebSocketError extends createInheritableDOMException() { static { __name(this, "WebSocketError"); } #closeCode; #reason; constructor(message = "", init4 = void 0) { message = webidl.converters.DOMString(message, "WebSocketError", "message"); super(message, "WebSocketError"); if (init4 === kConstruct) { return; } else if (init4 !== null) { init4 = webidl.converters.WebSocketCloseInfo(init4); } let code = init4.closeCode ?? null; const reason = init4.reason ?? ""; validateCloseCodeAndReason(code, reason); if (reason.length !== 0 && code === null) { code = 1e3; } this.#closeCode = code; this.#reason = reason; } get closeCode() { return this.#closeCode; } get reason() { return this.#reason; } /** * @param {string} message * @param {number|null} code * @param {string} reason */ static createUnvalidatedWebSocketError(message, code, reason) { const error2 = new _WebSocketError(message, kConstruct); error2.#closeCode = code; error2.#reason = reason; return error2; } }; var { createUnvalidatedWebSocketError } = WebSocketError; delete WebSocketError.createUnvalidatedWebSocketError; Object.defineProperties(WebSocketError.prototype, { closeCode: kEnumerableProperty, reason: kEnumerableProperty, [Symbol.toStringTag]: { value: "WebSocketError", writable: false, enumerable: false, configurable: true } }); webidl.is.WebSocketError = webidl.util.MakeTypeAssertion(WebSocketError); module4.exports = { WebSocketError, createUnvalidatedWebSocketError }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/stream/websocketstream.js var require_websocketstream = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/websocket/stream/websocketstream.js"(exports, module4) { init_import_meta_url(); var { createDeferredPromise } = require_promise(); var { environmentSettingsObject } = require_util2(); var { states, opcodes, sentCloseFrameState } = require_constants5(); var { webidl } = require_webidl(); var { getURLRecord, isValidSubprotocol, isEstablished, utf8Decode } = require_util5(); var { establishWebSocketConnection, failWebsocketConnection, closeWebSocketConnection } = require_connection(); var { channels } = require_diagnostics(); var { WebsocketFrameSend } = require_frame(); var { ByteParser } = require_receiver(); var { WebSocketError, createUnvalidatedWebSocketError } = require_websocketerror(); var { kEnumerableProperty } = require_util(); var { utf8DecodeBytes } = require_encoding(); var emittedExperimentalWarning = false; var WebSocketStream = class { static { __name(this, "WebSocketStream"); } // Each WebSocketStream object has an associated url , which is a URL record . /** @type {URL} */ #url; // Each WebSocketStream object has an associated opened promise , which is a promise. /** @type {import('../../../util/promise').DeferredPromise} */ #openedPromise; // Each WebSocketStream object has an associated closed promise , which is a promise. /** @type {import('../../../util/promise').DeferredPromise} */ #closedPromise; // Each WebSocketStream object has an associated readable stream , which is a ReadableStream . /** @type {ReadableStream} */ #readableStream; /** @type {ReadableStreamDefaultController} */ #readableStreamController; // Each WebSocketStream object has an associated writable stream , which is a WritableStream . /** @type {WritableStream} */ #writableStream; // Each WebSocketStream object has an associated boolean handshake aborted , which is initially false. #handshakeAborted = false; /** @type {import('../websocket').Handler} */ #handler = { // https://whatpr.org/websockets/48/7b748d3...d5570f3.html#feedback-to-websocket-stream-from-the-protocol onConnectionEstablished: /* @__PURE__ */ __name((response, extensions) => this.#onConnectionEstablished(response, extensions), "onConnectionEstablished"), onMessage: /* @__PURE__ */ __name((opcode, data) => this.#onMessage(opcode, data), "onMessage"), onParserError: /* @__PURE__ */ __name((err) => failWebsocketConnection(this.#handler, null, err.message), "onParserError"), onParserDrain: /* @__PURE__ */ __name(() => this.#handler.socket.resume(), "onParserDrain"), onSocketData: /* @__PURE__ */ __name((chunk) => { if (!this.#parser.write(chunk)) { this.#handler.socket.pause(); } }, "onSocketData"), onSocketError: /* @__PURE__ */ __name((err) => { this.#handler.readyState = states.CLOSING; if (channels.socketError.hasSubscribers) { channels.socketError.publish(err); } this.#handler.socket.destroy(); }, "onSocketError"), onSocketClose: /* @__PURE__ */ __name(() => this.#onSocketClose(), "onSocketClose"), onPing: /* @__PURE__ */ __name(() => { }, "onPing"), onPong: /* @__PURE__ */ __name(() => { }, "onPong"), readyState: states.CONNECTING, socket: null, closeState: /* @__PURE__ */ new Set(), controller: null, wasEverConnected: false }; /** @type {import('../receiver').ByteParser} */ #parser; constructor(url4, options = void 0) { if (!emittedExperimentalWarning) { process.emitWarning("WebSocketStream is experimental! Expect it to change at any time.", { code: "UNDICI-WSS" }); emittedExperimentalWarning = true; } webidl.argumentLengthCheck(arguments, 1, "WebSocket"); url4 = webidl.converters.USVString(url4); if (options !== null) { options = webidl.converters.WebSocketStreamOptions(options); } const baseURL = environmentSettingsObject.settingsObject.baseUrl; const urlRecord = getURLRecord(url4, baseURL); const protocols = options.protocols; if (protocols.length !== new Set(protocols.map((p7) => p7.toLowerCase())).size) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } if (protocols.length > 0 && !protocols.every((p7) => isValidSubprotocol(p7))) { throw new DOMException("Invalid Sec-WebSocket-Protocol value", "SyntaxError"); } this.#url = urlRecord.toString(); this.#openedPromise = createDeferredPromise(); this.#closedPromise = createDeferredPromise(); if (options.signal != null) { const signal = options.signal; if (signal.aborted) { this.#openedPromise.reject(signal.reason); this.#closedPromise.reject(signal.reason); return; } signal.addEventListener("abort", () => { if (!isEstablished(this.#handler.readyState)) { failWebsocketConnection(this.#handler); this.#handler.readyState = states.CLOSING; this.#openedPromise.reject(signal.reason); this.#closedPromise.reject(signal.reason); this.#handshakeAborted = true; } }, { once: true }); } const client = environmentSettingsObject.settingsObject; this.#handler.controller = establishWebSocketConnection( urlRecord, protocols, client, this.#handler, options ); } // The url getter steps are to return this 's url , serialized . get url() { return this.#url.toString(); } // The opened getter steps are to return this 's opened promise . get opened() { return this.#openedPromise.promise; } // The closed getter steps are to return this 's closed promise . get closed() { return this.#closedPromise.promise; } // The close( closeInfo ) method steps are: close(closeInfo = void 0) { if (closeInfo !== null) { closeInfo = webidl.converters.WebSocketCloseInfo(closeInfo); } const code = closeInfo.closeCode ?? null; const reason = closeInfo.reason; closeWebSocketConnection(this.#handler, code, reason, true); } #write(chunk) { chunk = webidl.converters.WebSocketStreamWrite(chunk); const promise = createDeferredPromise(); let data = null; let opcode = null; if (webidl.is.BufferSource(chunk)) { data = new Uint8Array(ArrayBuffer.isView(chunk) ? new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength) : chunk.slice()); opcode = opcodes.BINARY; } else { let string; try { string = webidl.converters.DOMString(chunk); } catch (e9) { promise.reject(e9); return promise.promise; } data = new TextEncoder().encode(string); opcode = opcodes.TEXT; } if (!this.#handler.closeState.has(sentCloseFrameState.SENT) && !this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) { const frame = new WebsocketFrameSend(data); this.#handler.socket.write(frame.createFrame(opcode), () => { promise.resolve(void 0); }); } return promise.promise; } /** @type {import('../websocket').Handler['onConnectionEstablished']} */ #onConnectionEstablished(response, parsedExtensions) { this.#handler.socket = response.socket; const parser2 = new ByteParser(this.#handler, parsedExtensions); parser2.on("drain", () => this.#handler.onParserDrain()); parser2.on("error", (err) => this.#handler.onParserError(err)); this.#parser = parser2; this.#handler.readyState = states.OPEN; const extensions = parsedExtensions ?? ""; const protocol = response.headersList.get("sec-websocket-protocol") ?? ""; const readable = new ReadableStream({ start: /* @__PURE__ */ __name((controller) => { this.#readableStreamController = controller; }, "start"), pull(controller) { let chunk; while (controller.desiredSize > 0 && (chunk = response.socket.read()) !== null) { controller.enqueue(chunk); } }, cancel: /* @__PURE__ */ __name((reason) => this.#cancel(reason), "cancel") }); const writable = new WritableStream({ write: /* @__PURE__ */ __name((chunk) => this.#write(chunk), "write"), close: /* @__PURE__ */ __name(() => closeWebSocketConnection(this.#handler, null, null), "close"), abort: /* @__PURE__ */ __name((reason) => this.#closeUsingReason(reason), "abort") }); this.#readableStream = readable; this.#writableStream = writable; this.#openedPromise.resolve({ extensions, protocol, readable, writable }); } /** @type {import('../websocket').Handler['onMessage']} */ #onMessage(type, data) { if (this.#handler.readyState !== states.OPEN) { return; } let chunk; if (type === opcodes.TEXT) { try { chunk = utf8Decode(data); } catch { failWebsocketConnection(this.#handler, "Received invalid UTF-8 in text frame."); return; } } else if (type === opcodes.BINARY) { chunk = new Uint8Array(data.buffer, data.byteOffset, data.byteLength); } this.#readableStreamController.enqueue(chunk); } /** @type {import('../websocket').Handler['onSocketClose']} */ #onSocketClose() { const wasClean = this.#handler.closeState.has(sentCloseFrameState.SENT) && this.#handler.closeState.has(sentCloseFrameState.RECEIVED); this.#handler.readyState = states.CLOSED; if (this.#handshakeAborted) { return; } if (!this.#handler.wasEverConnected) { this.#openedPromise.reject(new WebSocketError("Socket never opened")); } const result = this.#parser.closingInfo; let code = result?.code ?? 1005; if (!this.#handler.closeState.has(sentCloseFrameState.SENT) && !this.#handler.closeState.has(sentCloseFrameState.RECEIVED)) { code = 1006; } const reason = result?.reason == null ? "" : utf8DecodeBytes(Buffer.from(result.reason)); if (wasClean) { this.#readableStreamController.close(); if (!this.#writableStream.locked) { this.#writableStream.abort(new DOMException("A closed WebSocketStream cannot be written to", "InvalidStateError")); } this.#closedPromise.resolve({ closeCode: code, reason }); } else { const error2 = createUnvalidatedWebSocketError("unclean close", code, reason); this.#readableStreamController.error(error2); this.#writableStream.abort(error2); this.#closedPromise.reject(error2); } } #closeUsingReason(reason) { let code = null; let reasonString = ""; if (webidl.is.WebSocketError(reason)) { code = reason.closeCode; reasonString = reason.reason; } closeWebSocketConnection(this.#handler, code, reasonString); } // To cancel a WebSocketStream stream given reason , close using reason giving stream and reason . #cancel(reason) { this.#closeUsingReason(reason); } }; Object.defineProperties(WebSocketStream.prototype, { url: kEnumerableProperty, opened: kEnumerableProperty, closed: kEnumerableProperty, close: kEnumerableProperty, [Symbol.toStringTag]: { value: "WebSocketStream", writable: false, enumerable: false, configurable: true } }); webidl.converters.WebSocketStreamOptions = webidl.dictionaryConverter([ { key: "protocols", converter: webidl.sequenceConverter(webidl.converters.USVString), defaultValue: /* @__PURE__ */ __name(() => [], "defaultValue") }, { key: "signal", converter: webidl.nullableConverter(webidl.converters.AbortSignal), defaultValue: /* @__PURE__ */ __name(() => null, "defaultValue") } ]); webidl.converters.WebSocketCloseInfo = webidl.dictionaryConverter([ { key: "closeCode", converter: /* @__PURE__ */ __name((V4) => webidl.converters["unsigned short"](V4, webidl.attributes.EnforceRange), "converter") }, { key: "reason", converter: webidl.converters.USVString, defaultValue: /* @__PURE__ */ __name(() => "", "defaultValue") } ]); webidl.converters.WebSocketStreamWrite = function(V4) { if (typeof V4 === "string") { return webidl.converters.USVString(V4); } return webidl.converters.BufferSource(V4); }; module4.exports = { WebSocketStream }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/eventsource/util.js var require_util6 = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/eventsource/util.js"(exports, module4) { init_import_meta_url(); function isValidLastEventId(value) { return value.indexOf("\0") === -1; } __name(isValidLastEventId, "isValidLastEventId"); function isASCIINumber(value) { if (value.length === 0) return false; for (let i7 = 0; i7 < value.length; i7++) { if (value.charCodeAt(i7) < 48 || value.charCodeAt(i7) > 57) return false; } return true; } __name(isASCIINumber, "isASCIINumber"); module4.exports = { isValidLastEventId, isASCIINumber }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/eventsource/eventsource-stream.js var require_eventsource_stream = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module4) { init_import_meta_url(); var { Transform: Transform2 } = __require("stream"); var { isASCIINumber, isValidLastEventId } = require_util6(); var BOM = [239, 187, 191]; var LF = 10; var CR = 13; var COLON = 58; var SPACE2 = 32; var EventSourceStream = class extends Transform2 { static { __name(this, "EventSourceStream"); } /** * @type {eventSourceSettings} */ state; /** * Leading byte-order-mark check. * @type {boolean} */ checkBOM = true; /** * @type {boolean} */ crlfCheck = false; /** * @type {boolean} */ eventEndCheck = false; /** * @type {Buffer|null} */ buffer = null; pos = 0; event = { data: void 0, event: void 0, id: void 0, retry: void 0 }; /** * @param {object} options * @param {boolean} [options.readableObjectMode] * @param {eventSourceSettings} [options.eventSourceSettings] * @param {(chunk: any, encoding?: BufferEncoding | undefined) => boolean} [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 !== void 0 || 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 {EventSourceStreamEvent} 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] === SPACE2) { ++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 !== void 0 && 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 }; } }; module4.exports = { EventSourceStream }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/eventsource/eventsource.js var require_eventsource = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/lib/web/eventsource/eventsource.js"(exports, module4) { init_import_meta_url(); var { pipeline } = __require("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 { 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 { static { __name(this, "EventSource"); } #events = { open: null, error: null, message: null }; #url; #withCredentials = false; /** * @type {ReadyState} */ #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(url4, 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" }); } url4 = webidl.converters.USVString(url4); eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, "eventSourceInitDict"); this.#dispatcher = eventSourceInitDict.node.dispatcher || eventSourceInitDict.dispatcher; this.#state = { lastEventId: "", reconnectionTime: eventSourceInitDict.node.reconnectionTime }; const settings = environmentSettingsObject; let urlRecord; try { urlRecord = new URL(url4, settings.settingsObject.baseUrl); this.#state.origin = urlRecord.origin; } catch (e9) { throw new DOMException(e9, "SyntaxError"); } this.#url = urlRecord.href; let corsAttributeState = ANONYMOUS; if (eventSourceInitDict.withCredentials === true) { 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 {ReadyState} * @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 = /* @__PURE__ */ __name((response) => { if (!isNetworkError(response)) { return this.#reconnect(); } }, "processEventSourceEndOfBody"); 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: /* @__PURE__ */ __name((event) => { this.dispatchEvent(createFastMessageEvent( event.type, event.options )); }, "push") }); 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 {void} */ #reconnect() { if (this.#readyState === CLOSED) return; this.#readyState = CONNECTING; this.dispatchEvent(new Event("error")); setTimeout(() => { if (this.#readyState !== CONNECTING) return; if (this.#state.lastEventId.length) { this.#request.headersList.set("last-event-id", this.#state.lastEventId, true); } this.#connect(); }, this.#state.reconnectionTime)?.unref(); } /** * 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(fn2) { if (this.#events.open) { this.removeEventListener("open", this.#events.open); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("open", listener); this.#events.open = fn2; } else { this.#events.open = null; } } get onmessage() { return this.#events.message; } set onmessage(fn2) { if (this.#events.message) { this.removeEventListener("message", this.#events.message); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("message", listener); this.#events.message = fn2; } else { this.#events.message = null; } } get onerror() { return this.#events.error; } set onerror(fn2) { if (this.#events.error) { this.removeEventListener("error", this.#events.error); } const listener = webidl.converters.EventHandlerNonNull(fn2); if (listener !== null) { this.addEventListener("error", listener); this.#events.error = fn2; } 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: /* @__PURE__ */ __name(() => false, "defaultValue") }, { key: "dispatcher", // undici only converter: webidl.converters.any }, { key: "node", // undici only converter: webidl.dictionaryConverter([ { key: "reconnectionTime", converter: webidl.converters["unsigned long"], defaultValue: /* @__PURE__ */ __name(() => defaultReconnectionTime, "defaultValue") }, { key: "dispatcher", converter: webidl.converters.any } ]), defaultValue: /* @__PURE__ */ __name(() => ({}), "defaultValue") } ]); module4.exports = { EventSource, defaultReconnectionTime }; } }); // ../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/index.js var require_undici = __commonJS({ "../../node_modules/.pnpm/undici@7.18.2/node_modules/undici/index.js"(exports, module4) { init_import_meta_url(); var Client2 = require_client(); var Dispatcher2 = require_dispatcher(); var Pool = require_pool(); var BalancedPool = require_balanced_pool(); var RoundRobinPool = require_round_robin_pool(); var Agent = require_agent(); var ProxyAgent = require_proxy_agent(); var EnvHttpProxyAgent2 = require_env_http_proxy_agent(); var RetryAgent = require_retry_agent(); var H2CClient = require_h2c_client(); var errors = require_errors(); var util3 = require_util(); var { InvalidArgumentError } = errors; var api = require_api(); var buildConnector = require_connect(); var MockClient = require_mock_client(); var { MockCallHistory, MockCallHistoryLog } = require_mock_call_history(); var MockAgent = require_mock_agent(); var MockPool = require_mock_pool(); var SnapshotAgent = require_snapshot_agent(); var mockErrors = require_mock_errors(); var RetryHandler = require_retry_handler(); var { getGlobalDispatcher: getGlobalDispatcher2, setGlobalDispatcher: setGlobalDispatcher2 } = require_global2(); var DecoratorHandler = require_decorator_handler(); var RedirectHandler = require_redirect_handler(); Object.assign(Dispatcher2.prototype, api); module4.exports.Dispatcher = Dispatcher2; module4.exports.Client = Client2; module4.exports.Pool = Pool; module4.exports.BalancedPool = BalancedPool; module4.exports.RoundRobinPool = RoundRobinPool; module4.exports.Agent = Agent; module4.exports.ProxyAgent = ProxyAgent; module4.exports.EnvHttpProxyAgent = EnvHttpProxyAgent2; module4.exports.RetryAgent = RetryAgent; module4.exports.H2CClient = H2CClient; module4.exports.RetryHandler = RetryHandler; module4.exports.DecoratorHandler = DecoratorHandler; module4.exports.RedirectHandler = RedirectHandler; module4.exports.interceptors = { redirect: require_redirect(), responseError: require_response_error(), retry: require_retry(), dump: require_dump(), dns: require_dns(), cache: require_cache2(), decompress: require_decompress(), deduplicate: require_deduplicate() }; module4.exports.cacheStores = { MemoryCacheStore: require_memory_cache_store() }; var SqliteCacheStore = require_sqlite_cache_store(); module4.exports.cacheStores.SqliteCacheStore = SqliteCacheStore; module4.exports.buildConnector = buildConnector; module4.exports.errors = errors; module4.exports.util = { parseHeaders: util3.parseHeaders, headerNameToString: util3.headerNameToString }; function makeDispatcher(fn2) { return (url4, opts, handler) => { if (typeof opts === "function") { handler = opts; opts = null; } if (!url4 || typeof url4 !== "string" && typeof url4 !== "object" && !(url4 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 path82 = opts.path; if (!opts.path.startsWith("/")) { path82 = `/${path82}`; } url4 = new URL(util3.parseOrigin(url4).origin + path82); } else { if (!opts) { opts = typeof url4 === "object" ? url4 : {}; } url4 = util3.parseURL(url4); } const { agent, dispatcher = getGlobalDispatcher2() } = opts; if (agent) { throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); } return fn2.call(dispatcher, { ...opts, origin: url4.origin, path: url4.search ? `${url4.pathname}${url4.search}` : url4.pathname, method: opts.method || (opts.body ? "PUT" : "GET") }, handler); }; } __name(makeDispatcher, "makeDispatcher"); module4.exports.setGlobalDispatcher = setGlobalDispatcher2; module4.exports.getGlobalDispatcher = getGlobalDispatcher2; var fetchImpl = require_fetch().fetch; module4.exports.fetch = /* @__PURE__ */ __name(function fetch18(init4, options = void 0) { return fetchImpl(init4, options).catch((err) => { if (err && typeof err === "object") { Error.captureStackTrace(err); } throw err; }); }, "fetch"); module4.exports.Headers = require_headers().Headers; module4.exports.Response = require_response().Response; module4.exports.Request = require_request2().Request; module4.exports.FormData = require_formdata().FormData; var { setGlobalOrigin, getGlobalOrigin } = require_global(); module4.exports.setGlobalOrigin = setGlobalOrigin; module4.exports.getGlobalOrigin = getGlobalOrigin; var { CacheStorage: CacheStorage2 } = require_cachestorage(); var { kConstruct } = require_symbols(); module4.exports.caches = new CacheStorage2(kConstruct); var { deleteCookie, getCookies, getSetCookies, setCookie, parseCookie: parseCookie2 } = require_cookies(); module4.exports.deleteCookie = deleteCookie; module4.exports.getCookies = getCookies; module4.exports.getSetCookies = getSetCookies; module4.exports.setCookie = setCookie; module4.exports.parseCookie = parseCookie2; var { parseMIMEType, serializeAMimeType } = require_data_url(); module4.exports.parseMIMEType = parseMIMEType; module4.exports.serializeAMimeType = serializeAMimeType; var { CloseEvent, ErrorEvent, MessageEvent } = require_events(); var { WebSocket: WebSocket2, ping } = require_websocket(); module4.exports.WebSocket = WebSocket2; module4.exports.CloseEvent = CloseEvent; module4.exports.ErrorEvent = ErrorEvent; module4.exports.MessageEvent = MessageEvent; module4.exports.ping = ping; module4.exports.WebSocketStream = require_websocketstream().WebSocketStream; module4.exports.WebSocketError = require_websocketerror().WebSocketError; module4.exports.request = makeDispatcher(api.request); module4.exports.stream = makeDispatcher(api.stream); module4.exports.pipeline = makeDispatcher(api.pipeline); module4.exports.connect = makeDispatcher(api.connect); module4.exports.upgrade = makeDispatcher(api.upgrade); module4.exports.MockClient = MockClient; module4.exports.MockCallHistory = MockCallHistory; module4.exports.MockCallHistoryLog = MockCallHistoryLog; module4.exports.MockPool = MockPool; module4.exports.MockAgent = MockAgent; module4.exports.SnapshotAgent = SnapshotAgent; module4.exports.mockErrors = mockErrors; var { EventSource } = require_eventsource(); module4.exports.EventSource = EventSource; function install() { globalThis.fetch = module4.exports.fetch; globalThis.Headers = module4.exports.Headers; globalThis.Response = module4.exports.Response; globalThis.Request = module4.exports.Request; globalThis.FormData = module4.exports.FormData; globalThis.WebSocket = module4.exports.WebSocket; globalThis.CloseEvent = module4.exports.CloseEvent; globalThis.ErrorEvent = module4.exports.ErrorEvent; globalThis.MessageEvent = module4.exports.MessageEvent; globalThis.EventSource = module4.exports.EventSource; } __name(install, "install"); module4.exports.install = install; } }); // ../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/ansi-styles/index.js function assembleStyles() { const codes = /* @__PURE__ */ new Map(); for (const [groupName, group] of Object.entries(styles)) { for (const [styleName, style] of Object.entries(group)) { styles[styleName] = { open: `\x1B[${style[0]}m`, close: `\x1B[${style[1]}m` }; group[styleName] = styles[styleName]; codes.set(style[0], style[1]); } Object.defineProperty(styles, groupName, { value: group, enumerable: false }); } Object.defineProperty(styles, "codes", { value: codes, enumerable: false }); styles.color.close = "\x1B[39m"; styles.bgColor.close = "\x1B[49m"; styles.color.ansi = wrapAnsi16(); styles.color.ansi256 = wrapAnsi256(); styles.color.ansi16m = wrapAnsi16m(); styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET); styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET); styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET); Object.defineProperties(styles, { rgbToAnsi256: { value(red2, green2, blue2) { if (red2 === green2 && green2 === blue2) { if (red2 < 8) { return 16; } if (red2 > 248) { return 231; } return Math.round((red2 - 8) / 247 * 24) + 232; } return 16 + 36 * Math.round(red2 / 255 * 5) + 6 * Math.round(green2 / 255 * 5) + Math.round(blue2 / 255 * 5); }, enumerable: false }, hexToRgb: { value(hex) { const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16)); if (!matches) { return [0, 0, 0]; } let [colorString] = matches; if (colorString.length === 3) { colorString = [...colorString].map((character) => character + character).join(""); } const integer = Number.parseInt(colorString, 16); return [ /* eslint-disable no-bitwise */ integer >> 16 & 255, integer >> 8 & 255, integer & 255 /* eslint-enable no-bitwise */ ]; }, enumerable: false }, hexToAnsi256: { value: /* @__PURE__ */ __name((hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)), "value"), enumerable: false }, ansi256ToAnsi: { value(code) { if (code < 8) { return 30 + code; } if (code < 16) { return 90 + (code - 8); } let red2; let green2; let blue2; if (code >= 232) { red2 = ((code - 232) * 10 + 8) / 255; green2 = red2; blue2 = red2; } else { code -= 16; const remainder = code % 36; red2 = Math.floor(code / 36) / 5; green2 = Math.floor(remainder / 6) / 5; blue2 = remainder % 6 / 5; } const value = Math.max(red2, green2, blue2) * 2; if (value === 0) { return 30; } let result = 30 + (Math.round(blue2) << 2 | Math.round(green2) << 1 | Math.round(red2)); if (value === 2) { result += 60; } return result; }, enumerable: false }, rgbToAnsi: { value: /* @__PURE__ */ __name((red2, green2, blue2) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red2, green2, blue2)), "value"), enumerable: false }, hexToAnsi: { value: /* @__PURE__ */ __name((hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)), "value"), enumerable: false } }); return styles; } var ANSI_BACKGROUND_OFFSET, wrapAnsi16, wrapAnsi256, wrapAnsi16m, styles, foregroundColorNames, backgroundColorNames, ansiStyles, ansi_styles_default; var init_ansi_styles = __esm({ "../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/ansi-styles/index.js"() { init_import_meta_url(); ANSI_BACKGROUND_OFFSET = 10; wrapAnsi16 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${code + offset}m`, "wrapAnsi16"); wrapAnsi256 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, "wrapAnsi256"); wrapAnsi16m = /* @__PURE__ */ __name((offset = 0) => (red2, green2, blue2) => `\x1B[${38 + offset};2;${red2};${green2};${blue2}m`, "wrapAnsi16m"); styles = { modifier: { reset: [0, 0], // 21 isn't widely supported and 22 does the same thing bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], // Bright color blackBright: [90, 39], gray: [90, 39], // Alias of `blackBright` grey: [90, 39], // Alias of `blackBright` redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], // Bright color bgBlackBright: [100, 49], bgGray: [100, 49], // Alias of `bgBlackBright` bgGrey: [100, 49], // Alias of `bgBlackBright` bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; Object.keys(styles.modifier); foregroundColorNames = Object.keys(styles.color); backgroundColorNames = Object.keys(styles.bgColor); [...foregroundColorNames, ...backgroundColorNames]; __name(assembleStyles, "assembleStyles"); ansiStyles = assembleStyles(); ansi_styles_default = ansiStyles; } }); function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process7__default.default.argv) { const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; const position = argv.indexOf(prefix + flag); const terminatorPosition = argv.indexOf("--"); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); } function envForceColor() { if ("FORCE_COLOR" in env2) { if (env2.FORCE_COLOR === "true") { return 1; } if (env2.FORCE_COLOR === "false") { return 0; } return env2.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env2.FORCE_COLOR, 10), 3); } } function translateLevel(level) { if (level === 0) { return false; } return { level, hasBasic: true, has256: level >= 2, has16m: level >= 3 }; } function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) { const noFlagForceColor = envForceColor(); if (noFlagForceColor !== void 0) { flagForceColor = noFlagForceColor; } const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; if (forceColor === 0) { return 0; } if (sniffFlags) { if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { return 3; } if (hasFlag("color=256")) { return 2; } } if ("TF_BUILD" in env2 && "AGENT_NAME" in env2) { return 1; } if (haveStream && !streamIsTTY && forceColor === void 0) { return 0; } const min = forceColor || 0; if (env2.TERM === "dumb") { return min; } if (process7__default.default.platform === "win32") { const osRelease = os10__namespace.default.release().split("."); if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ("CI" in env2) { if ("GITHUB_ACTIONS" in env2 || "GITEA_ACTIONS" in env2) { return 3; } if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env2) || env2.CI_NAME === "codeship") { return 1; } return min; } if ("TEAMCITY_VERSION" in env2) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env2.TEAMCITY_VERSION) ? 1 : 0; } if (env2.COLORTERM === "truecolor") { return 3; } if (env2.TERM === "xterm-kitty") { return 3; } if ("TERM_PROGRAM" in env2) { const version5 = Number.parseInt((env2.TERM_PROGRAM_VERSION || "").split(".")[0], 10); switch (env2.TERM_PROGRAM) { case "iTerm.app": { return version5 >= 3 ? 3 : 2; } case "Apple_Terminal": { return 2; } } } if (/-256(color)?$/i.test(env2.TERM)) { return 2; } if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env2.TERM)) { return 1; } if ("COLORTERM" in env2) { return 1; } return min; } function createSupportsColor(stream2, options = {}) { const level = _supportsColor(stream2, { streamIsTTY: stream2 && stream2.isTTY, ...options }); return translateLevel(level); } var env2, flagForceColor, supportsColor, supports_color_default; var init_supports_color = __esm({ "../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/vendor/supports-color/index.js"() { init_import_meta_url(); __name(hasFlag, "hasFlag"); ({ env: env2 } = process7__default.default); if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { flagForceColor = 0; } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { flagForceColor = 1; } __name(envForceColor, "envForceColor"); __name(translateLevel, "translateLevel"); __name(_supportsColor, "_supportsColor"); __name(createSupportsColor, "createSupportsColor"); supportsColor = { stdout: createSupportsColor({ isTTY: tty__default.default.isatty(1) }), stderr: createSupportsColor({ isTTY: tty__default.default.isatty(2) }) }; supports_color_default = supportsColor; } }); // ../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/utilities.js function stringReplaceAll(string, substring2, replacer2) { let index = string.indexOf(substring2); if (index === -1) { return string; } const substringLength = substring2.length; let endIndex = 0; let returnValue = ""; do { returnValue += string.slice(endIndex, index) + substring2 + replacer2; endIndex = index + substringLength; index = string.indexOf(substring2, endIndex); } while (index !== -1); returnValue += string.slice(endIndex); return returnValue; } function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) { let endIndex = 0; let returnValue = ""; do { const gotCR = string[index - 1] === "\r"; returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix; endIndex = index + 1; index = string.indexOf("\n", endIndex); } while (index !== -1); returnValue += string.slice(endIndex); return returnValue; } var init_utilities = __esm({ "../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/utilities.js"() { init_import_meta_url(); __name(stringReplaceAll, "stringReplaceAll"); __name(stringEncaseCRLFWithFirstIndex, "stringEncaseCRLFWithFirstIndex"); } }); // ../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/index.js function createChalk(options) { return chalkFactory(options); } var stdoutColor, stderrColor, GENERATOR, STYLER, IS_EMPTY, levelMapping, styles2, applyOptions, chalkFactory, getModelAnsi, usedModels, proto, createStyler, createBuilder, applyStyle, chalk, source_default; var init_source = __esm({ "../../node_modules/.pnpm/chalk@5.3.0/node_modules/chalk/source/index.js"() { init_import_meta_url(); init_ansi_styles(); init_supports_color(); init_utilities(); ({ stdout: stdoutColor, stderr: stderrColor } = supports_color_default); GENERATOR = Symbol("GENERATOR"); STYLER = Symbol("STYLER"); IS_EMPTY = Symbol("IS_EMPTY"); levelMapping = [ "ansi", "ansi", "ansi256", "ansi16m" ]; styles2 = /* @__PURE__ */ Object.create(null); applyOptions = /* @__PURE__ */ __name((object, options = {}) => { if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) { throw new Error("The `level` option should be an integer from 0 to 3"); } const colorLevel = stdoutColor ? stdoutColor.level : 0; object.level = options.level === void 0 ? colorLevel : options.level; }, "applyOptions"); chalkFactory = /* @__PURE__ */ __name((options) => { const chalk2 = /* @__PURE__ */ __name((...strings) => strings.join(" "), "chalk"); applyOptions(chalk2, options); Object.setPrototypeOf(chalk2, createChalk.prototype); return chalk2; }, "chalkFactory"); __name(createChalk, "createChalk"); Object.setPrototypeOf(createChalk.prototype, Function.prototype); for (const [styleName, style] of Object.entries(ansi_styles_default)) { styles2[styleName] = { get() { const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]); Object.defineProperty(this, styleName, { value: builder }); return builder; } }; } styles2.visible = { get() { const builder = createBuilder(this, this[STYLER], true); Object.defineProperty(this, "visible", { value: builder }); return builder; } }; getModelAnsi = /* @__PURE__ */ __name((model, level, type, ...arguments_) => { if (model === "rgb") { if (level === "ansi16m") { return ansi_styles_default[type].ansi16m(...arguments_); } if (level === "ansi256") { return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_)); } return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_)); } if (model === "hex") { return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_)); } return ansi_styles_default[type][model](...arguments_); }, "getModelAnsi"); usedModels = ["rgb", "hex", "ansi256"]; for (const model of usedModels) { styles2[model] = { get() { const { level } = this; return function(...arguments_) { const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]); return createBuilder(this, styler, this[IS_EMPTY]); }; } }; const bgModel = "bg" + model[0].toUpperCase() + model.slice(1); styles2[bgModel] = { get() { const { level } = this; return function(...arguments_) { const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]); return createBuilder(this, styler, this[IS_EMPTY]); }; } }; } proto = Object.defineProperties(() => { }, { ...styles2, level: { enumerable: true, get() { return this[GENERATOR].level; }, set(level) { this[GENERATOR].level = level; } } }); createStyler = /* @__PURE__ */ __name((open4, close2, parent) => { let openAll; let closeAll; if (parent === void 0) { openAll = open4; closeAll = close2; } else { openAll = parent.openAll + open4; closeAll = close2 + parent.closeAll; } return { open: open4, close: close2, openAll, closeAll, parent }; }, "createStyler"); createBuilder = /* @__PURE__ */ __name((self2, _styler, _isEmpty) => { const builder = /* @__PURE__ */ __name((...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" ")), "builder"); Object.setPrototypeOf(builder, proto); builder[GENERATOR] = self2; builder[STYLER] = _styler; builder[IS_EMPTY] = _isEmpty; return builder; }, "createBuilder"); applyStyle = /* @__PURE__ */ __name((self2, string) => { if (self2.level <= 0 || !string) { return self2[IS_EMPTY] ? "" : string; } let styler = self2[STYLER]; if (styler === void 0) { return string; } const { openAll, closeAll } = styler; if (string.includes("\x1B")) { while (styler !== void 0) { string = stringReplaceAll(string, styler.close, styler.open); styler = styler.parent; } } const lfIndex = string.indexOf("\n"); if (lfIndex !== -1) { string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex); } return openAll + string + closeAll; }, "applyStyle"); Object.defineProperties(createChalk.prototype, styles2); chalk = createChalk(); createChalk({ level: stderrColor ? stderrColor.level : 0 }); source_default = chalk; } }); // ../cli/colors.ts var white, gray, dim, hidden, bold, cyanBright, bgCyan, brandColor, black, blue, bgBlue, red, bgRed, green, bgGreen, yellow, bgYellow; var init_colors = __esm({ "../cli/colors.ts"() { init_import_meta_url(); init_source(); ({ white, gray, dim, hidden, bold, cyanBright, bgCyan } = source_default); brandColor = source_default.hex("#BD5B08"); black = source_default.hex("#111"); blue = source_default.hex("#0E838F"); bgBlue = black.bgHex("#0E838F"); red = source_default.hex("#AB2526"); bgRed = black.bgHex("#AB2526"); green = source_default.hex("#218529"); bgGreen = black.bgHex("#218529"); yellow = source_default.hex("#7F7322"); bgYellow = black.bgHex("#7F7322"); } }); // ../containers-shared/src/client/core/ApiError.ts var ApiError; var init_ApiError = __esm({ "../containers-shared/src/client/core/ApiError.ts"() { init_import_meta_url(); ApiError = class extends Error { static { __name(this, "ApiError"); } url; status; statusText; body; request; constructor(request4, response, message) { super(message); this.name = "ApiError"; this.url = response.url; this.status = response.status; this.statusText = response.statusText; this.body = response.body; this.request = request4; } }; } }); // ../containers-shared/src/client/core/CancelablePromise.ts var CancelError, CancelablePromise; var init_CancelablePromise = __esm({ "../containers-shared/src/client/core/CancelablePromise.ts"() { init_import_meta_url(); CancelError = class extends Error { static { __name(this, "CancelError"); } constructor(message) { super(message); this.name = "CancelError"; } get isCancelled() { return true; } }; CancelablePromise = class { static { __name(this, "CancelablePromise"); } #isResolved; #isRejected; #isCancelled; #cancelHandlers; #promise; #resolve; #reject; constructor(executor) { this.#isResolved = false; this.#isRejected = false; this.#isCancelled = false; this.#cancelHandlers = []; this.#promise = new Promise((resolve31, reject) => { this.#resolve = resolve31; this.#reject = reject; const onResolve = /* @__PURE__ */ __name((value) => { if (this.#isResolved || this.#isRejected || this.#isCancelled) { return; } this.#isResolved = true; this.#resolve?.(value); }, "onResolve"); const onReject = /* @__PURE__ */ __name((reason) => { if (this.#isResolved || this.#isRejected || this.#isCancelled) { return; } this.#isRejected = true; this.#reject?.(reason); }, "onReject"); const onCancel = /* @__PURE__ */ __name((cancelHandler) => { if (this.#isResolved || this.#isRejected || this.#isCancelled) { return; } this.#cancelHandlers.push(cancelHandler); }, "onCancel"); Object.defineProperty(onCancel, "isResolved", { get: /* @__PURE__ */ __name(() => this.#isResolved, "get") }); Object.defineProperty(onCancel, "isRejected", { get: /* @__PURE__ */ __name(() => this.#isRejected, "get") }); Object.defineProperty(onCancel, "isCancelled", { get: /* @__PURE__ */ __name(() => this.#isCancelled, "get") }); return executor(onResolve, onReject, onCancel); }); } get [Symbol.toStringTag]() { return "Cancellable Promise"; } then(onFulfilled, onRejected) { return this.#promise.then(onFulfilled, onRejected); } catch(onRejected) { return this.#promise.catch(onRejected); } finally(onFinally) { return this.#promise.finally(onFinally); } cancel() { if (this.#isResolved || this.#isRejected || this.#isCancelled) { return; } this.#isCancelled = true; if (this.#cancelHandlers.length) { try { for (const cancelHandler of this.#cancelHandlers) { cancelHandler(); } } catch (error2) { console.warn("Cancellation threw an error", error2); return; } } this.#cancelHandlers.length = 0; this.#reject?.(new CancelError("Request aborted")); } get isCancelled() { return this.#isCancelled; } }; } }); // ../containers-shared/src/client/core/OpenAPI.ts var OpenAPI; var init_OpenAPI = __esm({ "../containers-shared/src/client/core/OpenAPI.ts"() { init_import_meta_url(); OpenAPI = { BASE: "", VERSION: "1.0.0", WITH_CREDENTIALS: false, CREDENTIALS: "include", TOKEN: void 0, USERNAME: void 0, PASSWORD: void 0, HEADERS: void 0, ENCODE_PATH: void 0, LOGGER: void 0 }; } }); // ../containers-shared/src/client/models/ApplicationAffinityColocation.ts var init_ApplicationAffinityColocation = __esm({ "../containers-shared/src/client/models/ApplicationAffinityColocation.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ApplicationAffinityHardwareGeneration.ts var init_ApplicationAffinityHardwareGeneration = __esm({ "../containers-shared/src/client/models/ApplicationAffinityHardwareGeneration.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ApplicationMutationError.ts var init_ApplicationMutationError = __esm({ "../containers-shared/src/client/models/ApplicationMutationError.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ApplicationRollout.ts var ApplicationRollout; var init_ApplicationRollout = __esm({ "../containers-shared/src/client/models/ApplicationRollout.ts"() { init_import_meta_url(); ((ApplicationRollout2) => { ((kind3) => { kind3["FULL_AUTO"] = "full_auto"; kind3["FULL_MANUAL"] = "full_manual"; kind3["DURABLE_OBJECTS_AUTO"] = "durable_objects_auto"; })(ApplicationRollout2.kind || (ApplicationRollout2.kind = {})); ((strategy2) => { strategy2["ROLLING"] = "rolling"; })(ApplicationRollout2.strategy || (ApplicationRollout2.strategy = {})); ((status3) => { status3["PENDING"] = "pending"; status3["PROGRESSING"] = "progressing"; status3["COMPLETED"] = "completed"; status3["REVERTED"] = "reverted"; status3["REPLACED"] = "replaced"; })(ApplicationRollout2.status || (ApplicationRollout2.status = {})); })(ApplicationRollout || (ApplicationRollout = {})); } }); // ../containers-shared/src/client/models/AssignIPv4.ts var init_AssignIPv4 = __esm({ "../containers-shared/src/client/models/AssignIPv4.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/AssignIPv6.ts var init_AssignIPv6 = __esm({ "../containers-shared/src/client/models/AssignIPv6.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/BadRequestWithCodeError.ts var BadRequestWithCodeError; var init_BadRequestWithCodeError = __esm({ "../containers-shared/src/client/models/BadRequestWithCodeError.ts"() { init_import_meta_url(); ((BadRequestWithCodeError2) => { ((error3) => { error3["VALIDATE_INPUT"] = "VALIDATE_INPUT"; })(BadRequestWithCodeError2.error || (BadRequestWithCodeError2.error = {})); })(BadRequestWithCodeError || (BadRequestWithCodeError = {})); } }); // ../containers-shared/src/client/models/ContainerNetworkMode.ts var init_ContainerNetworkMode = __esm({ "../containers-shared/src/client/models/ContainerNetworkMode.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/CreateApplicationRolloutRequest.ts var CreateApplicationRolloutRequest; var init_CreateApplicationRolloutRequest = __esm({ "../containers-shared/src/client/models/CreateApplicationRolloutRequest.ts"() { init_import_meta_url(); ((CreateApplicationRolloutRequest2) => { ((strategy2) => { strategy2["ROLLING"] = "rolling"; })(CreateApplicationRolloutRequest2.strategy || (CreateApplicationRolloutRequest2.strategy = {})); ((step_percentage2) => { step_percentage2[step_percentage2["_5"] = 5] = "_5"; step_percentage2[step_percentage2["_10"] = 10] = "_10"; step_percentage2[step_percentage2["_20"] = 20] = "_20"; step_percentage2[step_percentage2["_25"] = 25] = "_25"; step_percentage2[step_percentage2["_50"] = 50] = "_50"; step_percentage2[step_percentage2["_100"] = 100] = "_100"; })(CreateApplicationRolloutRequest2.step_percentage || (CreateApplicationRolloutRequest2.step_percentage = {})); ((kind3) => { kind3["FULL_AUTO"] = "full_auto"; kind3["FULL_MANUAL"] = "full_manual"; })(CreateApplicationRolloutRequest2.kind || (CreateApplicationRolloutRequest2.kind = {})); })(CreateApplicationRolloutRequest || (CreateApplicationRolloutRequest = {})); } }); // ../containers-shared/src/client/models/DeploymentCheckKind.ts var init_DeploymentCheckKind = __esm({ "../containers-shared/src/client/models/DeploymentCheckKind.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/DeploymentCheckType.ts var init_DeploymentCheckType = __esm({ "../containers-shared/src/client/models/DeploymentCheckType.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/DeploymentMutationError.ts var DeploymentMutationError; var init_DeploymentMutationError = __esm({ "../containers-shared/src/client/models/DeploymentMutationError.ts"() { init_import_meta_url(); DeploymentMutationError = /* @__PURE__ */ ((DeploymentMutationError2) => { DeploymentMutationError2["VALIDATE_INPUT"] = "VALIDATE_INPUT"; DeploymentMutationError2["SURPASSED_BASE_LIMITS"] = "SURPASSED_BASE_LIMITS"; DeploymentMutationError2["SURPASSED_TOTAL_LIMITS"] = "SURPASSED_TOTAL_LIMITS"; DeploymentMutationError2["LOCATION_NOT_ALLOWED"] = "LOCATION_NOT_ALLOWED"; DeploymentMutationError2["LOCATION_SURPASSED_BASE_LIMITS"] = "LOCATION_SURPASSED_BASE_LIMITS"; DeploymentMutationError2["IMAGE_REGISTRY_NOT_CONFIGURED"] = "IMAGE_REGISTRY_NOT_CONFIGURED"; return DeploymentMutationError2; })(DeploymentMutationError || {}); } }); // ../containers-shared/src/client/models/DeploymentNotFoundError.ts var DeploymentNotFoundError; var init_DeploymentNotFoundError = __esm({ "../containers-shared/src/client/models/DeploymentNotFoundError.ts"() { init_import_meta_url(); ((DeploymentNotFoundError2) => { ((error3) => { error3["DEPLOYMENT_NOT_FOUND"] = "DEPLOYMENT_NOT_FOUND"; })(DeploymentNotFoundError2.error || (DeploymentNotFoundError2.error = {})); })(DeploymentNotFoundError || (DeploymentNotFoundError = {})); } }); // ../containers-shared/src/client/models/DeploymentPlacementState.ts var init_DeploymentPlacementState = __esm({ "../containers-shared/src/client/models/DeploymentPlacementState.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/DeploymentQueuedReason.ts var init_DeploymentQueuedReason = __esm({ "../containers-shared/src/client/models/DeploymentQueuedReason.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/DeploymentSchedulingState.ts var init_DeploymentSchedulingState = __esm({ "../containers-shared/src/client/models/DeploymentSchedulingState.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/DeploymentType.ts var init_DeploymentType = __esm({ "../containers-shared/src/client/models/DeploymentType.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/DurableObjectStatusHealth.ts var init_DurableObjectStatusHealth = __esm({ "../containers-shared/src/client/models/DurableObjectStatusHealth.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/EventName.ts var init_EventName = __esm({ "../containers-shared/src/client/models/EventName.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/EventType.ts var init_EventType = __esm({ "../containers-shared/src/client/models/EventType.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/HTTPMethod.ts var init_HTTPMethod = __esm({ "../containers-shared/src/client/models/HTTPMethod.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ImageRegistryAlreadyExistsError.ts var ImageRegistryAlreadyExistsError; var init_ImageRegistryAlreadyExistsError = __esm({ "../containers-shared/src/client/models/ImageRegistryAlreadyExistsError.ts"() { init_import_meta_url(); ((ImageRegistryAlreadyExistsError2) => { ((error3) => { error3["IMAGE_REGISTRY_ALREADY_EXISTS"] = "IMAGE_REGISTRY_ALREADY_EXISTS"; })(ImageRegistryAlreadyExistsError2.error || (ImageRegistryAlreadyExistsError2.error = {})); })(ImageRegistryAlreadyExistsError || (ImageRegistryAlreadyExistsError = {})); } }); // ../containers-shared/src/client/models/ImageRegistryIsPublic.ts var ImageRegistryIsPublic; var init_ImageRegistryIsPublic = __esm({ "../containers-shared/src/client/models/ImageRegistryIsPublic.ts"() { init_import_meta_url(); ((ImageRegistryIsPublic2) => { ((error3) => { error3["IMAGE_REGISTRY_IS_PUBLIC"] = "IMAGE_REGISTRY_IS_PUBLIC"; })(ImageRegistryIsPublic2.error || (ImageRegistryIsPublic2.error = {})); })(ImageRegistryIsPublic || (ImageRegistryIsPublic = {})); } }); // ../containers-shared/src/client/models/ImageRegistryNotAllowedError.ts var ImageRegistryNotAllowedError; var init_ImageRegistryNotAllowedError = __esm({ "../containers-shared/src/client/models/ImageRegistryNotAllowedError.ts"() { init_import_meta_url(); ((ImageRegistryNotAllowedError2) => { ((error3) => { error3["IMAGE_REGISTRY_NOT_ALLOWED"] = "IMAGE_REGISTRY_NOT_ALLOWED"; })(ImageRegistryNotAllowedError2.error || (ImageRegistryNotAllowedError2.error = {})); })(ImageRegistryNotAllowedError || (ImageRegistryNotAllowedError = {})); } }); // ../containers-shared/src/client/models/ImageRegistryNotFoundError.ts var ImageRegistryNotFoundError; var init_ImageRegistryNotFoundError = __esm({ "../containers-shared/src/client/models/ImageRegistryNotFoundError.ts"() { init_import_meta_url(); ((ImageRegistryNotFoundError2) => { ((error3) => { error3["IMAGE_REGISTRY_NOT_FOUND"] = "IMAGE_REGISTRY_NOT_FOUND"; })(ImageRegistryNotFoundError2.error || (ImageRegistryNotFoundError2.error = {})); })(ImageRegistryNotFoundError || (ImageRegistryNotFoundError = {})); } }); // ../containers-shared/src/client/models/ImageRegistryPermissions.ts var init_ImageRegistryPermissions = __esm({ "../containers-shared/src/client/models/ImageRegistryPermissions.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ImageRegistryProtocolAlreadyExists.ts var ImageRegistryProtocolAlreadyExists; var init_ImageRegistryProtocolAlreadyExists = __esm({ "../containers-shared/src/client/models/ImageRegistryProtocolAlreadyExists.ts"() { init_import_meta_url(); ((ImageRegistryProtocolAlreadyExists2) => { ((error3) => { error3["IMAGE_REGISTRY_PROTOCOL_ALREADY_EXISTS"] = "IMAGE_REGISTRY_PROTOCOL_ALREADY_EXISTS"; })(ImageRegistryProtocolAlreadyExists2.error || (ImageRegistryProtocolAlreadyExists2.error = {})); })(ImageRegistryProtocolAlreadyExists || (ImageRegistryProtocolAlreadyExists = {})); } }); // ../containers-shared/src/client/models/ImageRegistryProtocolIsReferencedError.ts var ImageRegistryProtocolIsReferencedError; var init_ImageRegistryProtocolIsReferencedError = __esm({ "../containers-shared/src/client/models/ImageRegistryProtocolIsReferencedError.ts"() { init_import_meta_url(); ((ImageRegistryProtocolIsReferencedError2) => { ((error3) => { error3["IMAGE_REGISTRY_PROTO_IS_REFERENCED"] = "IMAGE_REGISTRY_PROTO_IS_REFERENCED"; })(ImageRegistryProtocolIsReferencedError2.error || (ImageRegistryProtocolIsReferencedError2.error = {})); })(ImageRegistryProtocolIsReferencedError || (ImageRegistryProtocolIsReferencedError = {})); } }); // ../containers-shared/src/client/models/ImageRegistryProtocolNotFound.ts var ImageRegistryProtocolNotFound; var init_ImageRegistryProtocolNotFound = __esm({ "../containers-shared/src/client/models/ImageRegistryProtocolNotFound.ts"() { init_import_meta_url(); ((ImageRegistryProtocolNotFound2) => { ((error3) => { error3["IMAGE_REGISTRY_PROTOCOL_NOT_FOUND"] = "IMAGE_REGISTRY_PROTOCOL_NOT_FOUND"; })(ImageRegistryProtocolNotFound2.error || (ImageRegistryProtocolNotFound2.error = {})); })(ImageRegistryProtocolNotFound || (ImageRegistryProtocolNotFound = {})); } }); // ../containers-shared/src/client/models/InstanceType.ts var init_InstanceType = __esm({ "../containers-shared/src/client/models/InstanceType.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/IPType.ts var init_IPType = __esm({ "../containers-shared/src/client/models/IPType.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/JobStatusHealth.ts var init_JobStatusHealth = __esm({ "../containers-shared/src/client/models/JobStatusHealth.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/NetworkMode.ts var init_NetworkMode = __esm({ "../containers-shared/src/client/models/NetworkMode.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/NodeGroup.ts var init_NodeGroup = __esm({ "../containers-shared/src/client/models/NodeGroup.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/PlacementStatusHealth.ts var init_PlacementStatusHealth = __esm({ "../containers-shared/src/client/models/PlacementStatusHealth.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ProvisionerConfiguration.ts var ProvisionerConfiguration; var init_ProvisionerConfiguration = __esm({ "../containers-shared/src/client/models/ProvisionerConfiguration.ts"() { init_import_meta_url(); ((ProvisionerConfiguration2) => { ((type2) => { type2["NONE"] = "none"; type2["CLOUDINIT"] = "cloudinit"; })(ProvisionerConfiguration2.type || (ProvisionerConfiguration2.type = {})); })(ProvisionerConfiguration || (ProvisionerConfiguration = {})); } }); // ../containers-shared/src/client/models/RolloutStep.ts var RolloutStep; var init_RolloutStep = __esm({ "../containers-shared/src/client/models/RolloutStep.ts"() { init_import_meta_url(); ((RolloutStep2) => { ((status3) => { status3["PENDING"] = "pending"; status3["PROGRESSING"] = "progressing"; status3["REVERTING"] = "reverting"; status3["COMPLETED"] = "completed"; status3["REVERTED"] = "reverted"; })(RolloutStep2.status || (RolloutStep2.status = {})); })(RolloutStep || (RolloutStep = {})); } }); // ../containers-shared/src/client/models/SchedulingPolicy.ts var init_SchedulingPolicy = __esm({ "../containers-shared/src/client/models/SchedulingPolicy.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/SecretAccessType.ts var init_SecretAccessType = __esm({ "../containers-shared/src/client/models/SecretAccessType.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/SecretNameAlreadyExists.ts var SecretNameAlreadyExists; var init_SecretNameAlreadyExists = __esm({ "../containers-shared/src/client/models/SecretNameAlreadyExists.ts"() { init_import_meta_url(); ((SecretNameAlreadyExists2) => { ((error3) => { error3["SECRET_NAME_ALREADY_EXISTS"] = "SECRET_NAME_ALREADY_EXISTS"; })(SecretNameAlreadyExists2.error || (SecretNameAlreadyExists2.error = {})); })(SecretNameAlreadyExists || (SecretNameAlreadyExists = {})); } }); // ../containers-shared/src/client/models/SecretNotFound.ts var SecretNotFound; var init_SecretNotFound = __esm({ "../containers-shared/src/client/models/SecretNotFound.ts"() { init_import_meta_url(); ((SecretNotFound2) => { ((error3) => { error3["SECRET_NAME_NOT_FOUND"] = "SECRET_NAME_NOT_FOUND"; })(SecretNotFound2.error || (SecretNotFound2.error = {})); })(SecretNotFound || (SecretNotFound = {})); } }); // ../containers-shared/src/client/models/SSHPublicKeyNotFoundError.ts var SSHPublicKeyNotFoundError; var init_SSHPublicKeyNotFoundError = __esm({ "../containers-shared/src/client/models/SSHPublicKeyNotFoundError.ts"() { init_import_meta_url(); ((SSHPublicKeyNotFoundError2) => { ((error3) => { error3["SSH_PUBLIC_KEY_NOT_FOUND"] = "SSH_PUBLIC_KEY_NOT_FOUND"; })(SSHPublicKeyNotFoundError2.error || (SSHPublicKeyNotFoundError2.error = {})); })(SSHPublicKeyNotFoundError || (SSHPublicKeyNotFoundError = {})); } }); // ../containers-shared/src/client/models/UpdateApplicationRolloutRequest.ts var UpdateApplicationRolloutRequest; var init_UpdateApplicationRolloutRequest = __esm({ "../containers-shared/src/client/models/UpdateApplicationRolloutRequest.ts"() { init_import_meta_url(); ((UpdateApplicationRolloutRequest2) => { ((action2) => { action2["NEXT"] = "next"; action2["PREVIOUS"] = "previous"; action2["REVERT"] = "revert"; })(UpdateApplicationRolloutRequest2.action || (UpdateApplicationRolloutRequest2.action = {})); })(UpdateApplicationRolloutRequest || (UpdateApplicationRolloutRequest = {})); } }); // ../containers-shared/src/client/core/request.ts var isDefined, isString2, isStringWithValue, isBlob, base64, getQueryString, getUrl, getFormData, resolve6, getHeaders, getRequestBody, isResponseSchemaV4, parseResponseSchemaV4, sendRequest, getResponseHeader, getResponseBody, catchErrorCodes, request, debugLogRequest, debugLogResponse; var init_request = __esm({ "../containers-shared/src/client/core/request.ts"() { init_import_meta_url(); init_ApiError(); init_CancelablePromise(); isDefined = /* @__PURE__ */ __name((value) => { return value !== void 0 && value !== null; }, "isDefined"); isString2 = /* @__PURE__ */ __name((value) => { return typeof value === "string"; }, "isString"); isStringWithValue = /* @__PURE__ */ __name((value) => { return isString2(value) && value !== ""; }, "isStringWithValue"); isBlob = /* @__PURE__ */ __name((value) => { return typeof value === "object" && typeof value.type === "string" && typeof value.stream === "function" && typeof value.arrayBuffer === "function" && typeof value.constructor === "function" && typeof value.constructor.name === "string" && /^(Blob|File)$/.test(value.constructor.name) && /^(Blob|File)$/.test(value[Symbol.toStringTag]); }, "isBlob"); base64 = /* @__PURE__ */ __name((str) => { try { return btoa(str); } catch (err) { return Buffer.from(str).toString("base64"); } }, "base64"); getQueryString = /* @__PURE__ */ __name((params) => { const qs = []; const append = /* @__PURE__ */ __name((key, value) => { qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); }, "append"); const process12 = /* @__PURE__ */ __name((key, value) => { if (isDefined(value)) { if (Array.isArray(value)) { value.forEach((v8) => { process12(key, v8); }); } else if (typeof value === "object") { Object.entries(value).forEach(([k7, v8]) => { process12(`${key}[${k7}]`, v8); }); } else { append(key, value); } } }, "process"); Object.entries(params).forEach(([key, value]) => { process12(key, value); }); if (qs.length > 0) { return `?${qs.join("&")}`; } return ""; }, "getQueryString"); getUrl = /* @__PURE__ */ __name((config, options) => { const encoder = config.ENCODE_PATH || encodeURI; const path82 = options.url.replace("{api-version}", config.VERSION).replace(/{(.*?)}/g, (substring2, group) => { if (options.path?.hasOwnProperty(group)) { return encoder(String(options.path[group])); } return substring2; }); const url4 = `${config.BASE}${path82}`; if (options.query) { return `${url4}${getQueryString(options.query)}`; } return url4; }, "getUrl"); getFormData = /* @__PURE__ */ __name((options) => { if (options.formData) { const formData = new FormData(); const process12 = /* @__PURE__ */ __name(async (key, value) => { if (isString2(value)) { formData.append(key, value); } else { formData.append(key, JSON.stringify(value)); } }, "process"); Object.entries(options.formData).filter(([_5, value]) => isDefined(value)).forEach(([key, value]) => { if (Array.isArray(value)) { value.forEach((v8) => process12(key, v8)); } else { process12(key, value); } }); return formData; } return void 0; }, "getFormData"); resolve6 = /* @__PURE__ */ __name(async (options, resolver) => { if (typeof resolver === "function") { return resolver(options); } return resolver; }, "resolve"); getHeaders = /* @__PURE__ */ __name(async (config, options) => { const token = await resolve6(options, config.TOKEN); const username = await resolve6(options, config.USERNAME); const password = await resolve6(options, config.PASSWORD); const additionalHeaders = await resolve6(options, config.HEADERS); const headers = Object.entries({ Accept: "application/json", ...additionalHeaders, ...options.headers }).filter(([_5, value]) => isDefined(value)).reduce( (headers2, [key, value]) => ({ ...headers2, [key]: String(value) }), {} ); if (isStringWithValue(token)) { headers["Authorization"] = `Bearer ${token}`; } if (isStringWithValue(username) && isStringWithValue(password)) { const credentials = base64(`${username}:${password}`); headers["Authorization"] = `Basic ${credentials}`; } if (options.body) { if (options.mediaType) { headers["Content-Type"] = options.mediaType; } else if (isBlob(options.body)) { headers["Content-Type"] = options.body.type || "application/octet-stream"; } else if (isString2(options.body)) { headers["Content-Type"] = "text/plain"; } else { headers["Content-Type"] = "application/json"; } } return new Headers(headers); }, "getHeaders"); getRequestBody = /* @__PURE__ */ __name((options) => { if (options.body !== void 0) { if (options.mediaType?.includes("/json")) { return JSON.stringify(options.body); } else if (isString2(options.body) || isBlob(options.body)) { return options.body; } else { return JSON.stringify(options.body); } } return void 0; }, "getRequestBody"); isResponseSchemaV4 = /* @__PURE__ */ __name((config, _options) => { return config.BASE.endsWith("/containers"); }, "isResponseSchemaV4"); parseResponseSchemaV4 = /* @__PURE__ */ __name((url4, response, responseHeader, responseBody) => { const fetchResult2 = typeof responseBody === "object" ? responseBody : JSON.parse(responseBody); const ok = response.ok && fetchResult2.success; let result; if (ok) { if (fetchResult2.result !== void 0) { result = fetchResult2.result; } else { result = {}; } } else { result = { error: fetchResult2.errors?.[0]?.message }; } return { url: url4, ok, status: response.status, statusText: response.statusText, body: responseHeader ?? result }; }, "parseResponseSchemaV4"); sendRequest = /* @__PURE__ */ __name(async (config, options, url4, body, formData, headers, onCancel) => { const controller = new AbortController(); const request4 = { headers, body: body ?? formData, method: options.method, signal: controller.signal }; if (config.WITH_CREDENTIALS) { request4.credentials = config.CREDENTIALS; } onCancel(() => controller.abort()); return await fetch(url4, request4); }, "sendRequest"); getResponseHeader = /* @__PURE__ */ __name((response, responseHeader) => { if (responseHeader) { const content = response.headers.get(responseHeader); if (isString2(content)) { return content; } } return void 0; }, "getResponseHeader"); getResponseBody = /* @__PURE__ */ __name(async (response) => { if (response.status !== 204) { try { const contentType = response.headers.get("Content-Type"); if (contentType) { const jsonTypes = ["application/json", "application/problem+json"]; const isJSON = jsonTypes.some( (type) => contentType.toLowerCase().startsWith(type) ); if (isJSON) { return await response.json(); } else { return await response.text(); } } } catch (error2) { console.error(error2); } } return void 0; }, "getResponseBody"); catchErrorCodes = /* @__PURE__ */ __name((options, result) => { const errors = { 400: "Bad Request", 401: "Unauthorized", 403: "Forbidden", 404: "Not Found", 500: "Internal Server Error", 502: "Bad Gateway", 503: "Service Unavailable", ...options.errors }; const error2 = errors[result.status]; if (error2) { throw new ApiError(options, result, error2); } if (!result.ok) { throw new ApiError(options, result, "Generic Error"); } }, "catchErrorCodes"); request = /* @__PURE__ */ __name((config, options) => { return new CancelablePromise(async (resolve31, reject, onCancel) => { try { const url4 = getUrl(config, options); const formData = getFormData(options); const body = getRequestBody(options); const headers = await getHeaders(config, options); debugLogRequest(config, url4, headers, formData ?? body ?? {}); if (!onCancel.isCancelled) { const response = await sendRequest( config, options, url4, body, formData, headers, onCancel ); const responseBody = await getResponseBody(response); const responseHeader = getResponseHeader( response, options.responseHeader ); let result; if (isResponseSchemaV4(config, options)) { result = parseResponseSchemaV4( url4, response, responseHeader, responseBody ); } else { result = { url: url4, ok: response.ok, status: response.status, statusText: response.statusText, body: responseHeader ?? responseBody }; } debugLogResponse(config, result); catchErrorCodes(options, result); resolve31(result.body); } } catch (error2) { reject(error2); } }); }, "request"); debugLogRequest = /* @__PURE__ */ __name(async (config, url4, headers, body) => { config.LOGGER?.debug(`-- START CF API REQUEST: ${url4}`); const logHeaders2 = new Headers(headers); logHeaders2.delete("Authorization"); config.LOGGER?.debugWithSanitization( "HEADERS:", JSON.stringify(logHeaders2, null, 2) ); config.LOGGER?.debugWithSanitization( "BODY:", JSON.stringify( body instanceof FormData ? await new Response(body).text() : body, null, 2 ) ); config.LOGGER?.debug("-- END CF API REQUEST"); }, "debugLogRequest"); debugLogResponse = /* @__PURE__ */ __name((config, response) => { config.LOGGER?.debug( "-- START CF API RESPONSE:", response.statusText, response.status ); config.LOGGER?.debugWithSanitization("RESPONSE:", response.body); config.LOGGER?.debug("-- END CF API RESPONSE"); }, "debugLogResponse"); } }); // ../containers-shared/src/client/services/AccountService.ts var AccountService; var init_AccountService = __esm({ "../containers-shared/src/client/services/AccountService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); AccountService = class { static { __name(this, "AccountService"); } /** * Get complete account details related to Cloudchamber * Get complete account details related to Cloudchamber, like limits and available locations * @returns CompleteAccountCustomer Complete account for the user * @throws ApiError */ static getMe() { return request(OpenAPI, { method: "GET", url: "/me", errors: { 401: `Unauthorized`, 500: `There has been an internal error` } }); } /** * Modify account details like defaults * Modify account details like defaults * @param requestBody * @returns CompleteAccountCustomer Complete account for the user * @throws ApiError */ static modifyMe(requestBody) { return request(OpenAPI, { method: "PATCH", url: "/me", body: requestBody, mediaType: "application/json", errors: { 400: `Bad Request that contains a specific constant code and details object about the error.`, 401: `Unauthorized`, 500: `There has been an internal error` } }); } }; } }); // ../containers-shared/src/client/services/ApplicationsService.ts var ApplicationsService; var init_ApplicationsService = __esm({ "../containers-shared/src/client/services/ApplicationsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); ApplicationsService = class { static { __name(this, "ApplicationsService"); } /** * Create a new application * Create a new application. An Application represents an intent to run one or more containers, with the same image, dynamically scheduled based on constraints * @param requestBody * @returns Application A newly created application * @throws ApiError */ static createApplication(requestBody) { return request(OpenAPI, { method: "POST", url: "/applications", body: requestBody, mediaType: "application/json", errors: { 400: `Could not create the application because of input/limits reasons, more details in the error code`, 401: `Unauthorized`, 500: `There has been an internal error` } }); } /** * List Applications associated with your account * Lists all the applications that are associated with your account * @param name Filter applications by name * @param image Filter applications by image * @param label Filter applications by label * @returns ListApplications Get all application associated with your account * @throws ApiError */ static listApplications(name2, image, label) { return request(OpenAPI, { method: "GET", url: "/applications", query: { name: name2, image, label }, errors: { 401: `Unauthorized`, 500: `There has been an internal error` } }); } /** * Get a single application by id * Returns a single application by id * @param applicationId * @returns Application A single application * @throws ApiError */ static getApplication(applicationId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}", path: { application_id: applicationId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Modify an application * Modifies a single application by id. * @param applicationId * @param requestBody * @returns Application Modify application response * @throws ApiError */ static modifyApplication(applicationId, requestBody) { return request(OpenAPI, { method: "PATCH", url: "/applications/{application_id}", path: { application_id: applicationId }, body: requestBody, mediaType: "application/json", errors: { 400: `Could not modify the application because of input/limits reasons, more details in the error code`, 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Delete a single application by id * Deletes a single application by id * @param applicationId * @returns EmptyResponse Delete application response * @throws ApiError */ static deleteApplication(applicationId) { return request(OpenAPI, { method: "DELETE", url: "/applications/{application_id}", path: { application_id: applicationId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Application queue status * Get an application's queue status. Only works under an application with type jobs. * @param applicationId * @returns ApplicationStatus Application status with details about the job queue, instances and other metadata for introspection. * @throws ApiError */ static getApplicationStatus(applicationId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/status", path: { application_id: applicationId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Create a new job within an application * Returns the created job * @param applicationId * @param requestBody * @returns ApplicationJob A single job within an application * @throws ApiError */ static createApplicationJob(applicationId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/jobs", path: { application_id: applicationId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't create the application job because it has bad inputs`, 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Get an application job by application and job id * Returns a single application job by id with its current status * @param applicationId * @param jobId * @returns ApplicationJob A single application * @throws ApiError */ static getApplicationJob(applicationId, jobId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/jobs/{job_id}", path: { application_id: applicationId, job_id: jobId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application/Job is not found`, 500: `There has been an internal error` } }); } /** * Delete an application job by application and job id * Cleans up the specific job from the Application and all its assoicated resources * @param applicationId * @param jobId * @returns GenericMessageResponse Generic OK response * @throws ApiError */ static deleteApplicationJob(applicationId, jobId) { return request(OpenAPI, { method: "DELETE", url: "/applications/{application_id}/jobs/{job_id}", path: { application_id: applicationId, job_id: jobId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application/Job is not found`, 500: `There has been an internal error` } }); } /** * Modify an existing application job * Modify an application job state * @param applicationId * @param jobId * @param requestBody * @returns ApplicationJob A modified job within an application * @throws ApiError */ static modifyApplicationJob(applicationId, jobId, requestBody) { return request(OpenAPI, { method: "PATCH", url: "/applications/{application_id}/jobs/{job_id}", path: { application_id: applicationId, job_id: jobId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't modify the application job because it has bad inputs`, 401: `Unauthorized`, 404: `Response body when an Application/Job is not found`, 500: `There has been an internal error` } }); } /** * Create a new rollout for an application * A rollout can be used to update the application's configuration across instances with minimal downtime. * @param applicationId * @param requestBody * @returns ApplicationRollout * @throws ApiError */ static createApplicationRollout(applicationId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/rollouts", path: { application_id: applicationId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't update the application rollout because it has bad inputs`, 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * List rollouts * List all rollouts within an application * @param applicationId * @param limit The amount of rollouts to return. By default it is all of them. * @param last The last rollout that was used to paginate * @returns ApplicationRollout * @throws ApiError */ static listApplicationRollouts(applicationId, limit2, last) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/rollouts", path: { application_id: applicationId }, query: { limit: limit2, last }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Get a rollout by id within an application * View rollout configurations and state for a specific rollout * @param applicationId * @param rolloutId * @returns ApplicationRollout * @throws ApiError */ static getApplicationRollout(applicationId, rolloutId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/rollouts/{rollout_id}", path: { application_id: applicationId, rollout_id: rolloutId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Update a rollout within an application * A rollout can be updated to modify its current state. Actions include - next, previous, rollback * @param applicationId * @param rolloutId * @param requestBody * @returns UpdateRolloutResponse * @throws ApiError */ static updateApplicationRollout(applicationId, rolloutId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/rollouts/{rollout_id}", path: { application_id: applicationId, rollout_id: rolloutId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't create the application rollout because it has bad inputs`, 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Delete a rollout within an application by its rollout id * Cleans up the specific rollout from the Application if it is not in use * @param applicationId * @param rolloutId * @returns EmptyResponse * @throws ApiError */ static deleteApplicationRollout(applicationId, rolloutId) { return request(OpenAPI, { method: "DELETE", url: "/applications/{application_id}/rollouts/{rollout_id}", path: { application_id: applicationId, rollout_id: rolloutId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Get a single applications deployments * Returns a single applications deployments * @param applicationId * @returns ListDeploymentsV2 List of deployments with their corresponding placements * @throws ApiError */ static listDeploymentsByApplication(applicationId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/deployments", path: { application_id: applicationId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Get a specific deployment within an application * Get a deployment by its app and deployment IDs * @param applicationId * @param deploymentId * @returns DeploymentV2 Get a specific deployment along with its respective placements * @throws ApiError */ static getApplicationsV3Deployment(applicationId, deploymentId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/deployments/{deployment_id}", path: { application_id: applicationId, deployment_id: deploymentId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Get Error` } }); } /** * Recreate an existing deployment within an application. * The given existing deployment is deleted and a replacement deployment is created. The latter retains some properties of the former that cannot be set by the client. * * @param applicationId * @param deploymentId * @param requestBody * @returns DeploymentV2 Deployment created * @throws ApiError */ static recreateDeploymentV3(applicationId, deploymentId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/deployments/{deployment_id}/recreate", path: { application_id: applicationId, deployment_id: deploymentId }, body: requestBody, mediaType: "application/json", errors: { 400: `Could not create the deployment because of input/limits reasons, more details in the error code`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Creation Error` } }); } }; } }); // ../containers-shared/src/client/services/DeploymentsService.ts var DeploymentsService; var init_DeploymentsService = __esm({ "../containers-shared/src/client/services/DeploymentsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); DeploymentsService = class { static { __name(this, "DeploymentsService"); } /** * Get a specific deployment within an application * Get a deployment by its app and deployment IDs * @param applicationId * @param deploymentId * @returns DeploymentV2 Get a specific deployment along with its respective placements * @throws ApiError */ static getApplicationsV3Deployment(applicationId, deploymentId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/deployments/{deployment_id}", path: { application_id: applicationId, deployment_id: deploymentId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Get Error` } }); } /** * Recreate an existing deployment within an application. * The given existing deployment is deleted and a replacement deployment is created. The latter retains some properties of the former that cannot be set by the client. * * @param applicationId * @param deploymentId * @param requestBody * @returns DeploymentV2 Deployment created * @throws ApiError */ static recreateDeploymentV3(applicationId, deploymentId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/deployments/{deployment_id}/recreate", path: { application_id: applicationId, deployment_id: deploymentId }, body: requestBody, mediaType: "application/json", errors: { 400: `Could not create the deployment because of input/limits reasons, more details in the error code`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Creation Error` } }); } /** * Get credentials to SSH into a Container * Get a JWT to hit the SSH port on a given container. * @param instanceId * @returns WranglerSSHResponse Credentials to SSH into a Container * @throws ApiError */ static containerWranglerSsh(instanceId) { return request(OpenAPI, { method: "GET", url: "/instances/{instance_id}/ssh", path: { instance_id: instanceId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `There has been an internal error` } }); } /** * Create a new deployment * Creates a new deployment. A Deployment represents an intent to run one container, with image, in a particular location * @param requestBody * @returns DeploymentV2 Deployment created * @throws ApiError */ static createDeploymentV2(requestBody) { return request(OpenAPI, { method: "POST", url: "/deployments/v2", body: requestBody, mediaType: "application/json", errors: { 400: `Could not create the deployment because of input/limits reasons, more details in the error code`, 401: `Unauthorized`, 409: `Deployment already exists`, 500: `Deployment Creation Error` } }); } /** * List deployments * List all deployments in the current account. Optionally filter them * @param appId Filter deployments by application id * @param location Filter deployments by location * @param image Filter deployments by image * @param state Filter deployments by placement state * @param ipv4 Filter deployments by ipv4 address * @param label Filter deployments by label * @returns ListDeploymentsV2 List of deployments with their corresponding placements * @throws ApiError */ static listDeploymentsV2(appId, location, image, state2, ipv4, label) { return request(OpenAPI, { method: "GET", url: "/deployments/v2", query: { app_id: appId, location, image, state: state2, ipv4, label }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 500: `Deployment List Error` } }); } /** * Get a specific deployment * Get a deployment by its deployment * @param deploymentId * @returns DeploymentV2 Get a specific deployment along with its respective placements * @throws ApiError */ static getDeploymentV2(deploymentId) { return request(OpenAPI, { method: "GET", url: "/deployments/{deployment_id}/v2", path: { deployment_id: deploymentId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Get Error` } }); } /** * Modify an existing deployment * Change specific properties in an existing deployment * @param deploymentId * @param requestBody * @returns DeploymentV2 Deployment modified * @throws ApiError */ static modifyDeploymentV2(deploymentId, requestBody) { return request(OpenAPI, { method: "PATCH", url: "/deployments/{deployment_id}/v2", path: { deployment_id: deploymentId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't modify the deployment because it surpasses limits or it has bad input`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Modification Error` } }); } /** * Delete a specific deployment * Delete a deployment by its deployment ID * @param deploymentId * @returns EmptyResponse Delete a specific deployment along with its respective placements * @throws ApiError */ static deleteDeploymentV2(deploymentId) { return request(OpenAPI, { method: "DELETE", url: "/deployments/{deployment_id}/v2", path: { deployment_id: deploymentId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Delete Error` } }); } /** * Recreate an existing deployment. * The given existing deployment is deleted and a replacement deployment is created. The latter retains some properties of the former that cannot be set by the client. * * @param deploymentId * @param requestBody * @returns DeploymentV2 Deployment created * @throws ApiError */ static recreateDeployment(deploymentId, requestBody) { return request(OpenAPI, { method: "POST", url: "/deployments/{deployment_id}/recreate", path: { deployment_id: deploymentId }, body: requestBody, mediaType: "application/json", errors: { 400: `Could not create the deployment because of input/limits reasons, more details in the error code`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `Deployment Creation Error` } }); } /** * Replace a deployment * You can stop the current placement and create a new one. The new one will have the same durable properties of the deployment, but will otherwise be like new * @param placementId * @param requestBody * @returns DeploymentV2 Deployment replaced * @throws ApiError */ static replaceDeployment(placementId, requestBody) { return request(OpenAPI, { method: "POST", url: "/placements/{placement_id}", path: { placement_id: placementId }, body: requestBody, mediaType: "application/json", errors: { 400: `Responses with 400 status code`, 401: `Unauthorized`, 404: `Placement not found`, 500: `Deployment Replacement Error` } }); } }; } }); // ../containers-shared/src/client/services/ImageRegistriesService.ts var ImageRegistriesService; var init_ImageRegistriesService = __esm({ "../containers-shared/src/client/services/ImageRegistriesService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); ImageRegistriesService = class { static { __name(this, "ImageRegistriesService"); } /** * Create an image registry protocol that resolves to multiple domains. * @param requestBody * @returns ImageRegistryProtocol The image registry protocol was created * @throws ApiError */ static createImageRegistryProtocol(requestBody) { return request(OpenAPI, { method: "POST", url: "/registries/protos", body: requestBody, mediaType: "application/json", errors: { 400: `Bad Request that contains a specific constant code and details object about the error.`, 403: `The registry that is being added is not allowed`, 409: `Image registry protocol already exists`, 500: `There has been an internal error` } }); } /** * List all image registry protocols. * @returns ImageRegistryProtocols The image registry protocols in the account * @throws ApiError */ static listImageRegistryProtocols() { return request(OpenAPI, { method: "GET", url: "/registries/protos", errors: { 500: `There has been an internal error` } }); } /** * Modify an image registry protocol. The previous list of domains will be replaced by the ones you specify in this endpoint. * @param requestBody * @returns ImageRegistryProtocol The image registry protocol was modified * @throws ApiError */ static modifyImageRegistryProtocol(requestBody) { return request(OpenAPI, { method: "PUT", url: "/registries/protos", body: requestBody, mediaType: "application/json", errors: { 400: `Bad Request that contains a specific constant code and details object about the error.`, 403: `The registry that is being added is not allowed`, 404: `Image registry protocol doesn't exist`, 500: `There has been an internal error` } }); } /** * Delete an image registry protocol. Be careful, if there is deployments running referencing this protocol they won't be able to pull the image. * @param proto * @returns EmptyResponse Image registry protocol was deleted successfully * @throws ApiError */ static deleteImageRegistryProto(proto2) { return request(OpenAPI, { method: "DELETE", url: "/registries/protos/{proto}", path: { proto: proto2 }, errors: { 400: `The image registry protocol couldn't be deleted because it's referenced by a deployment or application`, 404: `Image registry protocol doesn't exist`, 500: `There has been an internal error` } }); } /** * Get a JWT to pull from the image registry * Get a JWT to pull from the image registry specifying its domain * @param domain * @param requestBody * @returns AccountRegistryToken Credentials with 'pull' or 'push' permissions to access the registry * @throws ApiError */ static generateImageRegistryCredentials(domain2, requestBody) { return request(OpenAPI, { method: "POST", url: "/registries/{domain}/credentials", path: { domain: domain2 }, body: requestBody, mediaType: "application/json", errors: { 400: `Bad Request that contains a specific constant code and details object about the error.`, 404: `The image registry does not exist`, 409: `The registry was configured as public, so credentials can not be generated`, 500: `There has been an internal error` } }); } /** * Delete a registry from the account * Delete a registry from the account, this will make Cloudchamber unable to pull images from the registry * @param domain * @returns EmptyResponse The image registry is deleted * @throws ApiError */ static deleteImageRegistry(domain2) { return request(OpenAPI, { method: "DELETE", url: "/registries/{domain}", path: { domain: domain2 }, errors: { 404: `The image registry does not exist`, 500: `There has been an internal error` } }); } /** * Get the list of configured registries in the account * Get the list of configured registries in the account * @returns CustomerImageRegistry The list of registries that are added in the account * @throws ApiError */ static listImageRegistries() { return request(OpenAPI, { method: "GET", url: "/registries", errors: { 500: `There has been an internal error` } }); } /** * Add a new image registry configuration * Add a new image registry into your account, so then Cloudflare can pull docker images with public key JWT authentication * @param requestBody * @returns CustomerImageRegistry Created a new image registry in the account * @throws ApiError */ static createImageRegistry(requestBody) { return request(OpenAPI, { method: "POST", url: "/registries", body: requestBody, mediaType: "application/json", errors: { 400: `Image registry input is malformed, see the error details`, 403: `The registry that is being added is not allowed`, 409: `The image registry already exists in the account`, 500: `There has been an internal error` } }); } }; } }); // ../containers-shared/src/client/services/IPsService.ts var init_IPsService = __esm({ "../containers-shared/src/client/services/IPsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); } }); // ../containers-shared/src/client/services/JobsService.ts var init_JobsService = __esm({ "../containers-shared/src/client/services/JobsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); } }); // ../containers-shared/src/client/services/PlacementsService.ts var PlacementsService; var init_PlacementsService = __esm({ "../containers-shared/src/client/services/PlacementsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); PlacementsService = class { static { __name(this, "PlacementsService"); } /** * List placements * List all placements under a given deploymentID with all its events * @param deploymentId * @returns ListPlacements A list of placements along with its events under a deployment * @throws ApiError */ static listPlacements(deploymentId) { return request(OpenAPI, { method: "GET", url: "/deployments/{deployment_id}/placements", path: { deployment_id: deploymentId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Deployment not found`, 500: `List Placements Error` } }); } /** * Get placement * A Placement represents the lifetime of a single instance of a Deployment * @param placementId * @returns PlacementWithEvents A specific placement along with its events * @throws ApiError */ static getPlacement(placementId) { return request(OpenAPI, { method: "GET", url: "/placements/{placement_id}", path: { placement_id: placementId }, errors: { 400: `Unknown account`, 401: `Unauthorized`, 404: `Placement not found`, 500: `Get Placement Error` } }); } /** * Replace a deployment * You can stop the current placement and create a new one. The new one will have the same durable properties of the deployment, but will otherwise be like new * @param placementId * @param requestBody * @returns DeploymentV2 Deployment replaced * @throws ApiError */ static replaceDeployment(placementId, requestBody) { return request(OpenAPI, { method: "POST", url: "/placements/{placement_id}", path: { placement_id: placementId }, body: requestBody, mediaType: "application/json", errors: { 400: `Responses with 400 status code`, 401: `Unauthorized`, 404: `Placement not found`, 500: `Deployment Replacement Error` } }); } }; } }); // ../containers-shared/src/client/services/RolloutsService.ts var RolloutsService; var init_RolloutsService = __esm({ "../containers-shared/src/client/services/RolloutsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); RolloutsService = class { static { __name(this, "RolloutsService"); } /** * Create a new rollout for an application * A rollout can be used to update the application's configuration across instances with minimal downtime. * @param applicationId * @param requestBody * @returns ApplicationRollout * @throws ApiError */ static createApplicationRollout(applicationId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/rollouts", path: { application_id: applicationId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't update the application rollout because it has bad inputs`, 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * List rollouts * List all rollouts within an application * @param applicationId * @param limit The amount of rollouts to return. By default it is all of them. * @param last The last rollout that was used to paginate * @returns ApplicationRollout * @throws ApiError */ static listApplicationRollouts(applicationId, limit2, last) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/rollouts", path: { application_id: applicationId }, query: { limit: limit2, last }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Get a rollout by id within an application * View rollout configurations and state for a specific rollout * @param applicationId * @param rolloutId * @returns ApplicationRollout * @throws ApiError */ static getApplicationRollout(applicationId, rolloutId) { return request(OpenAPI, { method: "GET", url: "/applications/{application_id}/rollouts/{rollout_id}", path: { application_id: applicationId, rollout_id: rolloutId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Update a rollout within an application * A rollout can be updated to modify its current state. Actions include - next, previous, rollback * @param applicationId * @param rolloutId * @param requestBody * @returns UpdateRolloutResponse * @throws ApiError */ static updateApplicationRollout(applicationId, rolloutId, requestBody) { return request(OpenAPI, { method: "POST", url: "/applications/{application_id}/rollouts/{rollout_id}", path: { application_id: applicationId, rollout_id: rolloutId }, body: requestBody, mediaType: "application/json", errors: { 400: `Can't create the application rollout because it has bad inputs`, 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } /** * Delete a rollout within an application by its rollout id * Cleans up the specific rollout from the Application if it is not in use * @param applicationId * @param rolloutId * @returns EmptyResponse * @throws ApiError */ static deleteApplicationRollout(applicationId, rolloutId) { return request(OpenAPI, { method: "DELETE", url: "/applications/{application_id}/rollouts/{rollout_id}", path: { application_id: applicationId, rollout_id: rolloutId }, errors: { 401: `Unauthorized`, 404: `Response body when an Application is not found`, 500: `There has been an internal error` } }); } }; } }); // ../containers-shared/src/client/services/SecretsService.ts var init_SecretsService = __esm({ "../containers-shared/src/client/services/SecretsService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); } }); // ../containers-shared/src/client/services/SshPublicKeysService.ts var SshPublicKeysService; var init_SshPublicKeysService = __esm({ "../containers-shared/src/client/services/SshPublicKeysService.ts"() { init_import_meta_url(); init_OpenAPI(); init_request(); SshPublicKeysService = class { static { __name(this, "SshPublicKeysService"); } /** * Add SSH public key * Adds a new ssh public key to an account. This can then be associated with a specific deployment during its creation or modification. * @param requestBody * @returns SSHPublicKeyItem SSH Public key added successfully * @throws ApiError */ static createSshPublicKey(requestBody) { return request(OpenAPI, { method: "POST", url: "/ssh-public-keys", body: requestBody, mediaType: "application/json", errors: { 401: `Unauthorized`, 500: `Create SSH Public key error` } }); } /** * List SSH Public keys * List all SSH Public keys in an account * @returns ListSSHPublicKeys List SSH Public keys response * @throws ApiError */ static listSshPublicKeys() { return request(OpenAPI, { method: "GET", url: "/ssh-public-keys", errors: { 401: `Unauthorized`, 500: `List SSH Public keys error` } }); } /** * Delete SSH public key from the account * Delete an SSH public key from an account. * @param sshPublicKeyName * @returns EmptyResponse SSH Public key was removed successfully * @throws ApiError */ static deleteSshPublicKey(sshPublicKeyName) { return request(OpenAPI, { method: "DELETE", url: "/ssh-public-keys/{sshPublicKeyName}", path: { sshPublicKeyName }, errors: { 401: `Unauthorized`, 404: `Response body when the SSH public key that is trying to be found does not exist`, 500: `There has been an internal error` } }); } }; } }); // ../containers-shared/src/client/index.ts var init_client = __esm({ "../containers-shared/src/client/index.ts"() { init_import_meta_url(); init_ApiError(); init_CancelablePromise(); init_OpenAPI(); init_ApplicationAffinityColocation(); init_ApplicationAffinityHardwareGeneration(); init_ApplicationMutationError(); init_ApplicationRollout(); init_AssignIPv4(); init_AssignIPv6(); init_BadRequestWithCodeError(); init_ContainerNetworkMode(); init_CreateApplicationRolloutRequest(); init_DeploymentCheckKind(); init_DeploymentCheckType(); init_DeploymentMutationError(); init_DeploymentNotFoundError(); init_DeploymentPlacementState(); init_DeploymentQueuedReason(); init_DeploymentSchedulingState(); init_DeploymentType(); init_DurableObjectStatusHealth(); init_EventName(); init_EventType(); init_HTTPMethod(); init_ImageRegistryAlreadyExistsError(); init_ImageRegistryIsPublic(); init_ImageRegistryNotAllowedError(); init_ImageRegistryNotFoundError(); init_ImageRegistryPermissions(); init_ImageRegistryProtocolAlreadyExists(); init_ImageRegistryProtocolIsReferencedError(); init_ImageRegistryProtocolNotFound(); init_InstanceType(); init_IPType(); init_JobStatusHealth(); init_NetworkMode(); init_NodeGroup(); init_PlacementStatusHealth(); init_ProvisionerConfiguration(); init_RolloutStep(); init_SchedulingPolicy(); init_SecretAccessType(); init_SecretNameAlreadyExists(); init_SecretNotFound(); init_SSHPublicKeyNotFoundError(); init_UpdateApplicationRolloutRequest(); init_AccountService(); init_ApplicationsService(); init_DeploymentsService(); init_ImageRegistriesService(); init_IPsService(); init_JobsService(); init_PlacementsService(); init_RolloutsService(); init_SecretsService(); init_SshPublicKeysService(); } }); async function constructBuildCommand(options, logger4) { const platform3 = options.platform ?? "linux/amd64"; const buildCmd = [ "build", "--load", "-t", options.tag, "--platform", platform3, "--provenance=false" ]; if (options.args) { for (const arg in options.args) { buildCmd.push("--build-arg", `${arg}=${options.args[arg]}`); } } if (options.setNetworkToHost) { buildCmd.push("--network", "host"); } const dockerfile = fs23.readFileSync(options.pathToDockerfile, "utf-8"); buildCmd.push("-f", "-"); buildCmd.push(options.buildContext); logger4?.debug(`Building image with command: ${buildCmd.join(" ")}`); return { buildCmd, dockerfile }; } function dockerBuild(dockerPath, options) { let errorHandled = false; let resolve31; let reject; const ready = new Promise((res, rej) => { resolve31 = res; reject = rej; }); const child = childProcess.spawn(dockerPath, options.buildCmd, { stdio: ["pipe", "inherit", "inherit"], // We need to set detached to true so that the child process // will control all of its child processed and we can kill // all of them in case we need to abort the build process detached: true }); if (child.stdin !== null) { child.stdin.write(options.dockerfile); child.stdin.end(); } child.on("exit", (code) => { if (code === 0) { resolve31(); } else if (!errorHandled) { errorHandled = true; reject(new UserError(`Docker build exited with code: ${code}`)); } }); child.on("error", (err) => { if (!errorHandled) { errorHandled = true; reject(err); } }); return { abort: /* @__PURE__ */ __name(() => { child.unref(); if (child.pid !== void 0) { process.kill(-child.pid); } }, "abort"), ready }; } async function buildImage(dockerPath, options) { const { buildCmd, dockerfile } = await constructBuildCommand({ tag: options.image_tag, pathToDockerfile: options.dockerfile, buildContext: options.image_build_context, args: options.image_vars, platform: "linux/amd64" }); return dockerBuild(dockerPath, { buildCmd, dockerfile }); } var init_build = __esm({ "../containers-shared/src/build.ts"() { init_import_meta_url(); init_dist(); __name(constructBuildCommand, "constructBuildCommand"); __name(dockerBuild, "dockerBuild"); __name(buildImage, "buildImage"); } }); async function dockerLoginImageRegistry(pathToDocker, domain2) { const expirationMinutes = 15; const credentials = await ImageRegistriesService.generateImageRegistryCredentials(domain2, { expiration_minutes: expirationMinutes, permissions: [ "push" /* PUSH */, "pull" /* PULL */ ] }); const child = childProcess.spawn( pathToDocker, ["login", "--password-stdin", "--username", credentials.username, domain2], { stdio: ["pipe", "inherit", "inherit"] } ).on("error", (err) => { throw err; }); child.stdin.write(credentials.password); child.stdin.end(); await new Promise((resolve31, reject) => { child.on("close", (code) => { if (code === 0) { resolve31(); } else { reject(new UserError(`Login failed with code: ${code}`)); } }); }); } var init_login = __esm({ "../containers-shared/src/login.ts"() { init_import_meta_url(); init_dist(); init_client(); __name(dockerLoginImageRegistry, "dockerLoginImageRegistry"); } }); // ../containers-shared/src/registry.ts var getCloudflareRegistryWithAccountNamespace, MF_DEV_CONTAINER_PREFIX; var init_registry2 = __esm({ "../containers-shared/src/registry.ts"() { init_import_meta_url(); init_knobs(); getCloudflareRegistryWithAccountNamespace = /* @__PURE__ */ __name((accountID, tag) => { return `${getCloudflareContainerRegistry()}/${accountID}/${tag}`; }, "getCloudflareRegistryWithAccountNamespace"); MF_DEV_CONTAINER_PREFIX = "cloudflare-dev"; } }); // ../containers-shared/src/knobs.ts var getCloudflareContainerRegistry, getDevContainerImageName; var init_knobs = __esm({ "../containers-shared/src/knobs.ts"() { init_import_meta_url(); init_registry2(); getCloudflareContainerRegistry = /* @__PURE__ */ __name(() => { return process.env.CLOUDFLARE_CONTAINER_REGISTRY ?? (process.env.WRANGLER_API_ENVIRONMENT === "staging" ? "staging.registry.cloudflare.com" : "registry.cloudflare.com"); }, "getCloudflareContainerRegistry"); getDevContainerImageName = /* @__PURE__ */ __name((name2, tag) => { return `${MF_DEV_CONTAINER_PREFIX}/${name2.toLowerCase()}:${tag}`; }, "getDevContainerImageName"); } }); async function dockerImageInspect(dockerPath, options) { return new Promise((resolve31, reject) => { const proc = childProcess.spawn( dockerPath, ["image", "inspect", options.imageTag, "--format", options.formatString], { stdio: ["ignore", "pipe", "pipe"] } ); let stdout2 = ""; let stderr2 = ""; proc.stdout.on("data", (chunk) => stdout2 += chunk); proc.stderr.on("data", (chunk) => stderr2 += chunk); proc.on("close", (code) => { if (code !== 0) { return reject( new UserError(`failed inspecting image locally: ${stderr2.trim()}`) ); } resolve31(stdout2.trim()); }); proc.on("error", (err) => reject(err)); }); } var init_inspect = __esm({ "../containers-shared/src/inspect.ts"() { init_import_meta_url(); init_dist(); __name(dockerImageInspect, "dockerImageInspect"); } }); function getContainerIdsByImageTags(dockerPath, imageTags) { const ids = /* @__PURE__ */ new Set(); for (const imageTag of imageTags) { const containerIdsFromImage = getContainerIdsFromImage( dockerPath, imageTag ); containerIdsFromImage.forEach((id) => ids.add(id)); } return Array.from(ids); } async function checkExposedPorts(dockerPath, options) { const output = await dockerImageInspect(dockerPath, { imageTag: options.image_tag, formatString: "{{ len .Config.ExposedPorts }}" }); if (output === "0") { throw new UserError( `The container "${options.class_name}" does not expose any ports. In your Dockerfile, please expose any ports you intend to connect to. For additional information please see: https://developers.cloudflare.com/containers/local-dev/#exposing-ports. ` ); } } function generateContainerBuildId() { return crypto2.randomUUID().slice(0, 8); } function getDockerSocketFromContext(dockerPath) { try { const output = runDockerCmdWithOutput(dockerPath, [ "context", "ls", "--format", "json" ]); const lines = output.trim().split("\n"); const contexts = lines.map((line) => JSON.parse(line)); const currentContext = contexts.find((context2) => context2.Current === true); if (currentContext && currentContext.DockerEndpoint) { return currentContext.DockerEndpoint; } } catch { } return null; } function resolveDockerHost(dockerPath) { if (process.env.WRANGLER_DOCKER_HOST) { return process.env.WRANGLER_DOCKER_HOST; } if (process.env.DOCKER_HOST) { return process.env.DOCKER_HOST; } const contextSocket = getDockerSocketFromContext(dockerPath); if (contextSocket) { return contextSocket; } return process.platform === "win32" ? "//./pipe/docker_engine" : "unix:///var/run/docker.sock"; } async function getImageRepoTags(dockerPath, imageTag) { try { const output = await dockerImageInspect(dockerPath, { imageTag, formatString: "{{ range .RepoTags }}{{ . }}\n{{ end }}" }); return output.split("\n").filter((tag) => tag.trim() !== ""); } catch { return []; } } async function cleanupDuplicateImageTags(dockerPath, imageTag) { try { const repoTags = await getImageRepoTags(dockerPath, imageTag); const tagsToRemove = repoTags.filter( (tag) => tag !== imageTag && tag.startsWith("cloudflare-dev") ); if (tagsToRemove.length > 0) { runDockerCmdWithOutput(dockerPath, ["rmi", ...tagsToRemove]); } } catch { } } var runDockerCmd, runDockerCmdWithOutput, isDockerRunning, verifyDockerInstalled, cleanupContainers, getContainerIdsFromImage; var init_utils = __esm({ "../containers-shared/src/utils.ts"() { init_import_meta_url(); init_dist(); init_inspect(); runDockerCmd = /* @__PURE__ */ __name((dockerPath, args, stdio) => { let aborted = false; let resolve31; let reject; const ready = new Promise((res, rej) => { resolve31 = res; reject = rej; }); const child = childProcess.spawn(dockerPath, args, { stdio: stdio ?? "inherit", // We need to set detached to true so that the child process // will control all of its child processed and we can kill // all of them in case we need to abort the build process detached: true }); let errorHandled = false; child.on("close", (code) => { if (code === 0 || aborted) { resolve31({ aborted }); } else if (!errorHandled) { errorHandled = true; reject(new UserError(`Docker command exited with code: ${code}`)); } }); child.on("error", (err) => { if (!errorHandled) { errorHandled = true; reject(new UserError(`Docker command failed: ${err.message}`)); } }); return { abort: /* @__PURE__ */ __name(() => { aborted = true; child.unref(); if (child.pid !== void 0) { process.kill(-child.pid); } }, "abort"), ready, then: /* @__PURE__ */ __name(async (onResolve, onReject) => ready.then(onResolve).catch(onReject), "then") }; }, "runDockerCmd"); runDockerCmdWithOutput = /* @__PURE__ */ __name((dockerPath, args) => { try { const stdout2 = childProcess.execFileSync(dockerPath, args, { encoding: "utf8" }); return stdout2.trim(); } catch (error2) { throw new UserError( `Failed running docker command: ${error2.message}. Command: ${dockerPath} ${args.join(" ")}` ); } }, "runDockerCmdWithOutput"); isDockerRunning = /* @__PURE__ */ __name(async (dockerPath) => { try { await runDockerCmd(dockerPath, ["info"], ["inherit", "pipe", "pipe"]); } catch { return false; } return true; }, "isDockerRunning"); verifyDockerInstalled = /* @__PURE__ */ __name(async (dockerPath, isDev = true) => { const dockerIsRunning = await isDockerRunning(dockerPath); if (!dockerIsRunning) { throw new UserError( `The Docker CLI could not be launched. Please ensure that the Docker CLI is installed and the daemon is running. Other container tooling that is compatible with the Docker CLI and engine may work, but is not yet guaranteed to do so. You can specify an executable with the environment variable WRANGLER_DOCKER_BIN and a socket with DOCKER_HOST.${isDev ? "\nTo suppress this error if you do not intend on triggering any container instances, set dev.enable_containers to false in your Wrangler config or passing in --enable-containers=false." : ""}` ); } }, "verifyDockerInstalled"); cleanupContainers = /* @__PURE__ */ __name((dockerPath, imageTags) => { try { const containerIds = getContainerIdsByImageTags(dockerPath, imageTags); if (containerIds.length === 0) { return true; } runDockerCmdWithOutput(dockerPath, ["rm", "--force", ...containerIds]); return true; } catch { return false; } }, "cleanupContainers"); __name(getContainerIdsByImageTags, "getContainerIdsByImageTags"); getContainerIdsFromImage = /* @__PURE__ */ __name((dockerPath, ancestorImage) => { const output = runDockerCmdWithOutput(dockerPath, [ "ps", "-a", "--filter", `ancestor=${ancestorImage}`, "--format", "{{.ID}}" ]); return output.split("\n").filter((line) => line.trim()); }, "getContainerIdsFromImage"); __name(checkExposedPorts, "checkExposedPorts"); __name(generateContainerBuildId, "generateContainerBuildId"); __name(getDockerSocketFromContext, "getDockerSocketFromContext"); __name(resolveDockerHost, "resolveDockerHost"); __name(getImageRepoTags, "getImageRepoTags"); __name(cleanupDuplicateImageTags, "cleanupDuplicateImageTags"); } }); // ../containers-shared/src/types.ts var init_types = __esm({ "../containers-shared/src/types.ts"() { init_import_meta_url(); } }); // ../containers-shared/src/client/models/ExternalRegistryKind.ts var ExternalRegistryKind; var init_ExternalRegistryKind = __esm({ "../containers-shared/src/client/models/ExternalRegistryKind.ts"() { init_import_meta_url(); ExternalRegistryKind = /* @__PURE__ */ ((ExternalRegistryKind2) => { ExternalRegistryKind2["ECR"] = "ECR"; return ExternalRegistryKind2; })(ExternalRegistryKind || {}); } }); // ../containers-shared/src/images.ts async function pullImage(dockerPath, options, logger4, isVite) { const domain2 = new URL(`http://${options.image_uri}`).hostname; const isExternalRegistry = domain2 !== getCloudflareContainerRegistry(); try { await dockerLoginImageRegistry(dockerPath, domain2); } catch (e9) { if (!isExternalRegistry) { if (isVite) { throw new UserError( `Using images from the Cloudflare-managed registry is not currently supported with the Vite plugin. You should use a Dockerfile or a supported external registry and authenticate to that registry separately using \`docker login\` or similar. Supported external registries are currently: ${Object.values(ExternalRegistryKind).join(", ")}.` ); } throw e9; } logger4?.warn( "Unable to retrieve configured registry credentials from Cloudflare.\nUnless this is a public image, you will need to run `wrangler containers registries configure` before deploying.\nAttempting to pull image anyway..." ); } const pull = runDockerCmd(dockerPath, [ "pull", options.image_uri, // All containers running on our platform need to be built for amd64 architecture, but by default docker pull seems to look for an image matching the host system, so we need to specify this here "--platform", "linux/amd64" ]); const ready = pull.ready.then(async ({ aborted }) => { if (!aborted) { await runDockerCmd(dockerPath, [ "tag", options.image_uri, options.image_tag ]); } }); return { abort: /* @__PURE__ */ __name(() => { pull.abort(); }, "abort"), ready }; } async function prepareContainerImagesForDev(args) { const { dockerPath, containerOptions, onContainerImagePreparationStart, onContainerImagePreparationEnd } = args; let aborted = false; if (process.platform === "win32") { throw new UserError( "Local development with containers is currently not supported on Windows. You should use WSL instead. You can also set `enable_containers` to false if you do not need to develop the container part of your application." ); } await verifyDockerInstalled(dockerPath); for (const options of containerOptions) { if ("dockerfile" in options) { const build5 = await buildImage(dockerPath, options); onContainerImagePreparationStart({ containerOptions: options, abort: /* @__PURE__ */ __name(() => { aborted = true; build5.abort(); }, "abort") }); await build5.ready; onContainerImagePreparationEnd({ containerOptions: options }); } else { const pull = await pullImage( dockerPath, options, args.logger, args.isVite ); onContainerImagePreparationStart({ containerOptions: options, abort: /* @__PURE__ */ __name(() => { aborted = true; pull.abort(); }, "abort") }); await pull.ready; onContainerImagePreparationEnd({ containerOptions: options }); } if (!aborted) { await cleanupDuplicateImageTags(dockerPath, options.image_tag); await checkExposedPorts(dockerPath, options); } } } function resolveImageName(accountId, image) { let url4; try { url4 = new URL(`http://${image}`); } catch { } if (url4 === void 0 || !url4.host.match(/[:.]/) && url4.hostname !== "localhost") { return getCloudflareRegistryWithAccountNamespace(accountId, image); } if (url4.hostname !== getCloudflareContainerRegistry()) { return image; } if (url4.pathname.startsWith(`/${accountId}`)) { return image; } const accountIdPattern = /^\/([a-f0-9]{32})\//; const match3 = accountIdPattern.exec(url4.pathname); if (match3) { const foundAccountId = match3[1]; if (foundAccountId !== accountId) { throw new Error( `Image "${image}" does not belong to your account Image appears to belong to account: "${foundAccountId}" Current account: "${accountId}"` ); } return image; } return `${url4.hostname}/${accountId}${url4.pathname}`; } var getAndValidateRegistryType; var init_images = __esm({ "../containers-shared/src/images.ts"() { init_import_meta_url(); init_dist(); init_build(); init_ExternalRegistryKind(); init_knobs(); init_login(); init_registry2(); init_utils(); __name(pullImage, "pullImage"); __name(prepareContainerImagesForDev, "prepareContainerImagesForDev"); __name(resolveImageName, "resolveImageName"); getAndValidateRegistryType = /* @__PURE__ */ __name((domain2) => { if (domain2.includes("://")) { throw new Error( `${domain2} is invalid: Image reference should not include the protocol part (e.g: registry.cloudflare.com rather than https://registry.cloudflare.com)` ); } let url4; try { url4 = new URL(`http://${domain2}`); } catch (e9) { if (e9 instanceof Error) { throw new Error(`${domain2} is invalid: ${e9.message}`); } throw e9; } const acceptedRegistries = [ { type: "ECR" /* ECR */, pattern: /^[0-9]{12}\.dkr\.ecr\.[a-z0-9-]+\.amazonaws\.com$/, name: "AWS ECR", secretType: "AWS Secret Access Key" }, { type: "cloudflare", // Make a regex based on the env var CLOUDFLARE_CONTAINER_REGISTRY pattern: new RegExp( `^${getCloudflareContainerRegistry().replace(/[\\.]/g, "\\$&")}$` ), name: "Cloudflare Containers Managed Registry" } ]; const match3 = acceptedRegistries.find( (registry) => registry.pattern.test(url4.hostname) ); if (!match3) { const supportedRegistries = acceptedRegistries.filter((r9) => r9.type !== "cloudflare").map((r9) => r9.name).join(", "); throw new UserError( `${url4.hostname} is not a supported image registry. Currently we support the following non-Cloudflare registries: ${supportedRegistries}. To use an existing image from another repository, see https://developers.cloudflare.com/containers/platform-details/image-management/#using-pre-built-container-images` ); } return match3; }, "getAndValidateRegistryType"); } }); // ../containers-shared/index.ts var init_containers_shared = __esm({ "../containers-shared/index.ts"() { init_import_meta_url(); init_client(); init_build(); init_login(); init_knobs(); init_utils(); init_types(); init_inspect(); init_registry2(); init_images(); } }); // ../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js function dedent2(templ) { var values = []; for (var _i2 = 1; _i2 < arguments.length; _i2++) { values[_i2 - 1] = arguments[_i2]; } var strings = Array.from(typeof templ === "string" ? [templ] : templ); strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, ""); var indentLengths = strings.reduce(function(arr, str) { var matches = str.match(/\n([\t ]+|(?!\s).)/g); if (matches) { return arr.concat(matches.map(function(match3) { var _a5, _b2; return (_b2 = (_a5 = match3.match(/[\t ]/g)) === null || _a5 === void 0 ? void 0 : _a5.length) !== null && _b2 !== void 0 ? _b2 : 0; })); } return arr; }, []); if (indentLengths.length) { var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g"); strings = strings.map(function(str) { return str.replace(pattern_1, "\n"); }); } strings[0] = strings[0].replace(/^\r?\n/, ""); var string = strings[0]; values.forEach(function(value, i7) { var endentations = string.match(/(?:^|\n)( *)$/); var endentation = endentations ? endentations[1] : ""; var indentedValue = value; if (typeof value === "string" && value.includes("\n")) { indentedValue = String(value).split("\n").map(function(str, i8) { return i8 === 0 ? str : "" + endentation + str; }).join("\n"); } string += indentedValue + strings[i7 + 1]; }); return string; } var esm_default3; var init_esm2 = __esm({ "../../node_modules/.pnpm/ts-dedent@2.2.0/node_modules/ts-dedent/esm/index.js"() { init_import_meta_url(); __name(dedent2, "dedent"); esm_default3 = dedent2; } }); function assertNever2(_value) { } function createDeferred(previousDeferred) { let resolve31, reject; const newPromise = new Promise((_resolve, _reject) => { resolve31 = _resolve; reject = _reject; }); assert50__default.default(resolve31); assert50__default.default(reject); previousDeferred?.resolve(newPromise); return { promise: newPromise, resolve: resolve31, reject }; } function unwrapHook(hook, ...args) { return typeof hook === "function" ? hook(...args) : hook; } async function getBinaryFileContents(file3) { if ("contents" in file3) { if (file3.contents instanceof Buffer) { return file3.contents; } return Buffer.from(file3.contents); } return fs12.readFile(file3.path); } function convertConfigBindingsToStartWorkerBindings(configBindings) { return convertConfigToBindings(configBindings, { usePreviewIds: true }); } function convertConfigToBindings(config, options) { const { usePreviewIds = false, pages = false } = options ?? {}; const output = {}; const configIterable = Object.entries(config); for (const [type, info] of configIterable) { if (info === void 0) { continue; } switch (type) { case "vars": { for (const [key, value] of Object.entries(info)) { if (typeof value === "string") { output[key] = { type: "plain_text", value }; } else { output[key] = { type: "json", value }; } } break; } case "kv_namespaces": { for (const { binding, ...x7 } of info) { output[binding] = { type: "kv_namespace", ...x7, id: usePreviewIds ? x7.preview_id ?? x7.id : x7.id }; } break; } case "send_email": { if (pages) { break; } for (const { name: name2, ...x7 } of info) { output[name2] = { type: "send_email", ...x7 }; } break; } case "wasm_modules": { if (pages) { break; } for (const [key, value] of Object.entries(info)) { if (typeof value === "string") { output[key] = { type: "wasm_module", source: { path: value } }; } else { output[key] = { type: "wasm_module", source: { contents: value } }; } } break; } case "text_blobs": { if (pages) { break; } for (const [key, value] of Object.entries(info)) { output[key] = { type: "text_blob", source: { path: value } }; } break; } case "data_blobs": { if (pages) { break; } for (const [key, value] of Object.entries(info)) { if (typeof value === "string") { output[key] = { type: "data_blob", source: { path: value } }; } else { output[key] = { type: "data_blob", source: { contents: value } }; } } break; } case "browser": { const { binding, ...x7 } = info; output[binding] = { type: "browser", ...x7 }; break; } case "durable_objects": { for (const { name: name2, ...x7 } of info.bindings ?? []) { output[name2] = { type: "durable_object_namespace", ...x7 }; } break; } case "workflows": { for (const { binding, ...x7 } of info) { output[binding] = { type: "workflow", ...x7 }; } break; } case "queues": { for (const { binding, ...x7 } of info.producers ?? []) { output[binding] = { type: "queue", queue_name: x7.queue, ...x7 }; } break; } case "r2_buckets": { for (const { binding, ...x7 } of info) { output[binding] = { type: "r2_bucket", ...x7, bucket_name: usePreviewIds ? x7.preview_bucket_name ?? x7.bucket_name : x7.bucket_name }; } break; } case "d1_databases": { for (const { binding, ...x7 } of info) { output[binding] = { type: "d1", ...x7, database_id: usePreviewIds ? x7.preview_database_id ?? x7.database_id : x7.database_id }; } break; } case "services": { for (const { binding, ...x7 } of info) { output[binding] = { type: "service", ...x7 }; } break; } case "analytics_engine_datasets": { for (const { binding, ...x7 } of info) { output[binding] = { type: "analytics_engine", ...x7 }; } break; } case "dispatch_namespaces": { if (pages) { break; } for (const { binding, ...x7 } of info) { output[binding] = { type: "dispatch_namespace", ...x7 }; } break; } case "mtls_certificates": { for (const { binding, ...x7 } of info) { output[binding] = { type: "mtls_certificate", ...x7 }; } break; } case "logfwdr": { if (pages) { break; } for (const { name: name2, ...x7 } of info.bindings ?? []) { output[name2] = { type: "logfwdr", ...x7 }; } break; } case "ai": { const { binding, ...x7 } = info; output[binding] = { type: "ai", ...x7 }; break; } case "images": { const { binding, ...x7 } = info; output[binding] = { type: "images", ...x7 }; break; } case "version_metadata": { const { binding, ...x7 } = info; output[binding] = { type: "version_metadata", ...x7 }; break; } case "hyperdrive": { for (const { binding, ...x7 } of info) { output[binding] = { type: "hyperdrive", ...x7 }; } break; } case "vectorize": { for (const { binding, ...x7 } of info) { output[binding] = { type: "vectorize", ...x7 }; } break; } case "unsafe": { if (pages) { break; } for (const { type: unsafeType, name: name2, ...data } of info.bindings ?? []) { output[name2] = { type: `unsafe_${unsafeType}`, ...data }; } break; } case "assets": { if (pages) { break; } if (info.binding) { output[info.binding] = { type: "assets" }; } break; } case "pipelines": { if (pages) { break; } for (const { binding, ...x7 } of info) { output[binding] = { type: "pipeline", ...x7 }; } break; } case "secrets_store_secrets": { for (const { binding, ...x7 } of info) { output[binding] = { type: "secrets_store_secret", ...x7 }; } break; } case "unsafe_hello_world": { if (pages) { break; } for (const { binding, ...x7 } of info) { output[binding] = { type: "unsafe_hello_world", ...x7 }; } break; } case "ratelimits": { for (const { name: name2, ...x7 } of info) { output[name2] = { type: "ratelimit", ...x7 }; } break; } case "worker_loaders": { for (const { binding, ...x7 } of info) { output[binding] = { type: "worker_loader", ...x7 }; } break; } case "vpc_services": { for (const { binding, ...x7 } of info) { output[binding] = { type: "vpc_service", ...x7 }; } break; } case "media": { const { binding, ...x7 } = info; output[binding] = { type: "media", ...x7 }; break; } } } return output; } function convertStartDevOptionsToBindings(inputBindings) { const configBindings = { vars: inputBindings.vars, kv_namespaces: inputBindings.kv, durable_objects: inputBindings.durableObjects ? { bindings: inputBindings.durableObjects } : void 0, services: inputBindings.services, r2_buckets: inputBindings.r2, ai: inputBindings.ai, version_metadata: inputBindings.version_metadata, d1_databases: inputBindings.d1Databases }; return convertConfigToBindings(configBindings, { usePreviewIds: true }); } function isUnsafeBindingType(type) { return type.startsWith("unsafe_"); } function getBindingKey(type) { if (nameBindings.includes(type)) { return "name"; } return "binding"; } function convertWorkerMetadataBindingsToFlatBindings(bindings) { const output = {}; for (const binding of bindings) { const { name: name2, type } = binding; switch (type) { case "plain_text": { const b11 = binding; output[name2] = { type: "plain_text", value: b11.text }; break; } case "secret_text": { const b11 = binding; output[name2] = { type: "secret_text", value: b11.text }; break; } case "json": { const b11 = binding; output[name2] = { type: "json", value: b11.json }; break; } case "kv_namespace": { const b11 = binding; output[name2] = { type: "kv_namespace", id: b11.namespace_id, raw: b11.raw }; break; } case "d1": { const b11 = binding; output[name2] = { type: "d1", database_id: b11.id, database_internal_env: b11.internalEnv, raw: b11.raw }; break; } case "dispatch_namespace": { const b11 = binding; output[name2] = { type: "dispatch_namespace", namespace: b11.namespace, outbound: b11.outbound ? { service: b11.outbound.worker.service, environment: b11.outbound.worker.environment, parameters: b11.outbound.params?.map((p7) => p7.name) } : void 0 }; break; } case "durable_object_namespace": { const b11 = binding; output[name2] = { type: "durable_object_namespace", class_name: b11.class_name, script_name: b11.script_name, environment: b11.environment }; break; } case "workflow": { const b11 = binding; output[name2] = { type: "workflow", name: b11.workflow_name, class_name: b11.class_name, script_name: b11.script_name, raw: b11.raw }; break; } case "queue": { const b11 = binding; output[name2] = { type: "queue", queue_name: b11.queue_name, delivery_delay: b11.delivery_delay, raw: b11.raw }; break; } case "r2_bucket": { const b11 = binding; output[name2] = { type: "r2_bucket", bucket_name: b11.bucket_name, jurisdiction: b11.jurisdiction, raw: b11.raw }; break; } case "service": { const b11 = binding; output[name2] = { type: "service", service: b11.service, environment: b11.environment, entrypoint: b11.entrypoint, cross_account_grant: b11.cross_account_grant }; break; } case "analytics_engine": { const b11 = binding; output[name2] = { type: "analytics_engine", dataset: b11.dataset }; break; } case "vectorize": { const b11 = binding; output[name2] = { type: "vectorize", index_name: b11.index_name, raw: b11.raw }; break; } case "hyperdrive": { const b11 = binding; output[name2] = { type: "hyperdrive", id: b11.id }; break; } case "send_email": { const b11 = binding; const emailBinding = { type: "send_email" }; if ("destination_address" in b11 && b11.destination_address) { emailBinding.destination_address = b11.destination_address; } if ("allowed_destination_addresses" in b11 && b11.allowed_destination_addresses) { emailBinding.allowed_destination_addresses = b11.allowed_destination_addresses; } if ("allowed_sender_addresses" in b11 && b11.allowed_sender_addresses) { emailBinding.allowed_sender_addresses = b11.allowed_sender_addresses; } output[name2] = emailBinding; break; } case "mtls_certificate": { const b11 = binding; output[name2] = { type: "mtls_certificate", certificate_id: b11.certificate_id }; break; } case "pipelines": { const b11 = binding; output[name2] = { type: "pipeline", pipeline: b11.pipeline }; break; } case "browser": case "ai": case "images": case "version_metadata": case "media": case "inherit": { const { name: _name, ...rest } = binding; output[name2] = rest; break; } default: { const { name: _name, ...rest } = binding; output[name2] = rest; } } } return output; } function extractBindingsOfType(type, bindings) { return Object.entries(bindings ?? {}).filter( (binding) => binding[1].type === type ).map((binding) => ({ ...binding[1], [getBindingKey(type)]: binding[0] })); } var nameBindings; var init_utils2 = __esm({ "src/api/startDevWorker/utils.ts"() { init_import_meta_url(); __name(assertNever2, "assertNever"); __name(createDeferred, "createDeferred"); __name(unwrapHook, "unwrapHook"); __name(getBinaryFileContents, "getBinaryFileContents"); __name(convertConfigBindingsToStartWorkerBindings, "convertConfigBindingsToStartWorkerBindings"); __name(convertConfigToBindings, "convertConfigToBindings"); __name(convertStartDevOptionsToBindings, "convertStartDevOptionsToBindings"); __name(isUnsafeBindingType, "isUnsafeBindingType"); nameBindings = [ "durable_object_namespace", "logfwdr", "ratelimit", "unsafe_ratelimit", "send_email" ]; __name(getBindingKey, "getBindingKey"); __name(convertWorkerMetadataBindingsToFlatBindings, "convertWorkerMetadataBindingsToFlatBindings"); __name(extractBindingsOfType, "extractBindingsOfType"); } }); // ../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js var require_glob_to_regexp = __commonJS({ "../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js"(exports, module4) { init_import_meta_url(); module4.exports = function(glob, opts) { if (typeof glob !== "string") { throw new TypeError("Expected a string"); } var str = String(glob); var reStr = ""; var extended = opts ? !!opts.extended : false; var globstar = opts ? !!opts.globstar : false; var inGroup = false; var flags2 = opts && typeof opts.flags === "string" ? opts.flags : ""; var c8; for (var i7 = 0, len = str.length; i7 < len; i7++) { c8 = str[i7]; switch (c8) { case "/": case "$": case "^": case "+": case ".": case "(": case ")": case "=": case "!": case "|": reStr += "\\" + c8; break; case "?": if (extended) { reStr += "."; break; } case "[": case "]": if (extended) { reStr += c8; break; } case "{": if (extended) { inGroup = true; reStr += "("; break; } case "}": if (extended) { inGroup = false; reStr += ")"; break; } case ",": if (inGroup) { reStr += "|"; break; } reStr += "\\" + c8; break; case "*": var prevChar = str[i7 - 1]; var starCount = 1; while (str[i7 + 1] === "*") { starCount++; i7++; } var nextChar = str[i7 + 1]; if (!globstar) { reStr += ".*"; } else { var isGlobstar = starCount > 1 && (prevChar === "/" || prevChar === void 0) && (nextChar === "/" || nextChar === void 0); if (isGlobstar) { reStr += "((?:[^/]*(?:/|$))*)"; i7++; } else { reStr += "([^/]*)"; } } break; default: reStr += c8; } } if (!flags2 || !~flags2.indexOf("g")) { reStr = "^" + reStr + "$"; } return new RegExp(reStr, flags2); }; } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/homedir.js var require_homedir = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/homedir.js"(exports, module4) { init_import_meta_url(); var os12 = __require("os"); module4.exports = os12.homedir || /* @__PURE__ */ __name(function homedir3() { var home = process.env.HOME; var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME; if (process.platform === "win32") { return process.env.USERPROFILE || process.env.HOMEDRIVE + process.env.HOMEPATH || home || null; } if (process.platform === "darwin") { return home || (user ? "/Users/" + user : null); } if (process.platform === "linux") { return home || (process.getuid() === 0 ? "/root" : user ? "/home/" + user : null); } return home || null; }, "homedir"); } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/caller.js var require_caller = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/caller.js"(exports, module4) { init_import_meta_url(); module4.exports = function() { var origPrepareStackTrace = Error.prepareStackTrace; Error.prepareStackTrace = function(_5, stack2) { return stack2; }; var stack = new Error().stack; Error.prepareStackTrace = origPrepareStackTrace; return stack[2].getFileName(); }; } }); // ../../node_modules/.pnpm/path-parse@1.0.7/node_modules/path-parse/index.js var require_path_parse = __commonJS({ "../../node_modules/.pnpm/path-parse@1.0.7/node_modules/path-parse/index.js"(exports, module4) { init_import_meta_url(); var isWindows5 = process.platform === "win32"; var splitWindowsRe = /^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/; var win32 = {}; function win32SplitPath(filename) { return splitWindowsRe.exec(filename).slice(1); } __name(win32SplitPath, "win32SplitPath"); win32.parse = function(pathString) { if (typeof pathString !== "string") { throw new TypeError( "Parameter 'pathString' must be a string, not " + typeof pathString ); } var allParts = win32SplitPath(pathString); if (!allParts || allParts.length !== 5) { throw new TypeError("Invalid path '" + pathString + "'"); } return { root: allParts[1], dir: allParts[0] === allParts[1] ? allParts[0] : allParts[0].slice(0, -1), base: allParts[2], ext: allParts[4], name: allParts[3] }; }; var splitPathRe = /^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/; var posix2 = {}; function posixSplitPath(filename) { return splitPathRe.exec(filename).slice(1); } __name(posixSplitPath, "posixSplitPath"); posix2.parse = function(pathString) { if (typeof pathString !== "string") { throw new TypeError( "Parameter 'pathString' must be a string, not " + typeof pathString ); } var allParts = posixSplitPath(pathString); if (!allParts || allParts.length !== 5) { throw new TypeError("Invalid path '" + pathString + "'"); } return { root: allParts[1], dir: allParts[0].slice(0, -1), base: allParts[2], ext: allParts[4], name: allParts[3] }; }; if (isWindows5) module4.exports = win32.parse; else module4.exports = posix2.parse; module4.exports.posix = posix2.parse; module4.exports.win32 = win32.parse; } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/node-modules-paths.js var require_node_modules_paths = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/node-modules-paths.js"(exports, module4) { init_import_meta_url(); var path82 = __require("path"); var parse17 = path82.parse || require_path_parse(); var getNodeModulesDirs = /* @__PURE__ */ __name(function getNodeModulesDirs2(absoluteStart, modules) { var prefix = "/"; if (/^([A-Za-z]:)/.test(absoluteStart)) { prefix = ""; } else if (/^\\\\/.test(absoluteStart)) { prefix = "\\\\"; } var paths = [absoluteStart]; var parsed = parse17(absoluteStart); while (parsed.dir !== paths[paths.length - 1]) { paths.push(parsed.dir); parsed = parse17(parsed.dir); } return paths.reduce(function(dirs, aPath) { return dirs.concat(modules.map(function(moduleDir) { return path82.resolve(prefix, aPath, moduleDir); })); }, []); }, "getNodeModulesDirs"); module4.exports = /* @__PURE__ */ __name(function nodeModulesPaths(start, opts, request4) { var modules = opts && opts.moduleDirectory ? [].concat(opts.moduleDirectory) : ["node_modules"]; if (opts && typeof opts.paths === "function") { return opts.paths( request4, start, function() { return getNodeModulesDirs(start, modules); }, opts ); } var dirs = getNodeModulesDirs(start, modules); return opts && opts.paths ? dirs.concat(opts.paths) : dirs; }, "nodeModulesPaths"); } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/normalize-options.js var require_normalize_options = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/normalize-options.js"(exports, module4) { init_import_meta_url(); module4.exports = function(x7, opts) { return opts || {}; }; } }); // ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js var require_implementation = __commonJS({ "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports, module4) { init_import_meta_url(); var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; var toStr = Object.prototype.toString; var max = Math.max; var funcType = "[object Function]"; var concatty = /* @__PURE__ */ __name(function concatty2(a7, b11) { var arr = []; for (var i7 = 0; i7 < a7.length; i7 += 1) { arr[i7] = a7[i7]; } for (var j7 = 0; j7 < b11.length; j7 += 1) { arr[j7 + a7.length] = b11[j7]; } return arr; }, "concatty"); var slicy = /* @__PURE__ */ __name(function slicy2(arrLike, offset) { var arr = []; for (var i7 = offset || 0, j7 = 0; i7 < arrLike.length; i7 += 1, j7 += 1) { arr[j7] = arrLike[i7]; } return arr; }, "slicy"); var joiny = /* @__PURE__ */ __name(function(arr, joiner) { var str = ""; for (var i7 = 0; i7 < arr.length; i7 += 1) { str += arr[i7]; if (i7 + 1 < arr.length) { str += joiner; } } return str; }, "joiny"); module4.exports = /* @__PURE__ */ __name(function bind(that) { var target = this; if (typeof target !== "function" || toStr.apply(target) !== funcType) { throw new TypeError(ERROR_MESSAGE + target); } var args = slicy(arguments, 1); var bound; var binder = /* @__PURE__ */ __name(function() { if (this instanceof bound) { var result = target.apply( this, concatty(args, arguments) ); if (Object(result) === result) { return result; } return this; } return target.apply( that, concatty(args, arguments) ); }, "binder"); var boundLength = max(0, target.length - args.length); var boundArgs = []; for (var i7 = 0; i7 < boundLength; i7++) { boundArgs[i7] = "$" + i7; } bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder); if (target.prototype) { var Empty = /* @__PURE__ */ __name(function Empty2() { }, "Empty"); Empty.prototype = target.prototype; bound.prototype = new Empty(); Empty.prototype = null; } return bound; }, "bind"); } }); // ../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js var require_function_bind = __commonJS({ "../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js"(exports, module4) { init_import_meta_url(); var implementation = require_implementation(); module4.exports = Function.prototype.bind || implementation; } }); // ../../node_modules/.pnpm/has@1.0.3/node_modules/has/src/index.js var require_src = __commonJS({ "../../node_modules/.pnpm/has@1.0.3/node_modules/has/src/index.js"(exports, module4) { init_import_meta_url(); var bind = require_function_bind(); module4.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); } }); // ../../node_modules/.pnpm/is-core-module@2.13.0/node_modules/is-core-module/core.json var require_core = __commonJS({ "../../node_modules/.pnpm/is-core-module@2.13.0/node_modules/is-core-module/core.json"(exports, module4) { module4.exports = { assert: true, "node:assert": [">= 14.18 && < 15", ">= 16"], "assert/strict": ">= 15", "node:assert/strict": ">= 16", async_hooks: ">= 8", "node:async_hooks": [">= 14.18 && < 15", ">= 16"], buffer_ieee754: ">= 0.5 && < 0.9.7", buffer: true, "node:buffer": [">= 14.18 && < 15", ">= 16"], child_process: true, "node:child_process": [">= 14.18 && < 15", ">= 16"], cluster: ">= 0.5", "node:cluster": [">= 14.18 && < 15", ">= 16"], console: true, "node:console": [">= 14.18 && < 15", ">= 16"], constants: true, "node:constants": [">= 14.18 && < 15", ">= 16"], crypto: true, "node:crypto": [">= 14.18 && < 15", ">= 16"], _debug_agent: ">= 1 && < 8", _debugger: "< 8", dgram: true, "node:dgram": [">= 14.18 && < 15", ">= 16"], diagnostics_channel: [">= 14.17 && < 15", ">= 15.1"], "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], dns: true, "node:dns": [">= 14.18 && < 15", ">= 16"], "dns/promises": ">= 15", "node:dns/promises": ">= 16", domain: ">= 0.7.12", "node:domain": [">= 14.18 && < 15", ">= 16"], events: true, "node:events": [">= 14.18 && < 15", ">= 16"], freelist: "< 6", fs: true, "node:fs": [">= 14.18 && < 15", ">= 16"], "fs/promises": [">= 10 && < 10.1", ">= 14"], "node:fs/promises": [">= 14.18 && < 15", ">= 16"], _http_agent: ">= 0.11.1", "node:_http_agent": [">= 14.18 && < 15", ">= 16"], _http_client: ">= 0.11.1", "node:_http_client": [">= 14.18 && < 15", ">= 16"], _http_common: ">= 0.11.1", "node:_http_common": [">= 14.18 && < 15", ">= 16"], _http_incoming: ">= 0.11.1", "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], _http_outgoing: ">= 0.11.1", "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], _http_server: ">= 0.11.1", "node:_http_server": [">= 14.18 && < 15", ">= 16"], http: true, "node:http": [">= 14.18 && < 15", ">= 16"], http2: ">= 8.8", "node:http2": [">= 14.18 && < 15", ">= 16"], https: true, "node:https": [">= 14.18 && < 15", ">= 16"], inspector: ">= 8", "node:inspector": [">= 14.18 && < 15", ">= 16"], "inspector/promises": [">= 19"], "node:inspector/promises": [">= 19"], _linklist: "< 8", module: true, "node:module": [">= 14.18 && < 15", ">= 16"], net: true, "node:net": [">= 14.18 && < 15", ">= 16"], "node-inspect/lib/_inspect": ">= 7.6 && < 12", "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", os: true, "node:os": [">= 14.18 && < 15", ">= 16"], path: true, "node:path": [">= 14.18 && < 15", ">= 16"], "path/posix": ">= 15.3", "node:path/posix": ">= 16", "path/win32": ">= 15.3", "node:path/win32": ">= 16", perf_hooks: ">= 8.5", "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], process: ">= 1", "node:process": [">= 14.18 && < 15", ">= 16"], punycode: ">= 0.5", "node:punycode": [">= 14.18 && < 15", ">= 16"], querystring: true, "node:querystring": [">= 14.18 && < 15", ">= 16"], readline: true, "node:readline": [">= 14.18 && < 15", ">= 16"], "readline/promises": ">= 17", "node:readline/promises": ">= 17", repl: true, "node:repl": [">= 14.18 && < 15", ">= 16"], smalloc: ">= 0.11.5 && < 3", _stream_duplex: ">= 0.9.4", "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], _stream_transform: ">= 0.9.4", "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], _stream_wrap: ">= 1.4.1", "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], _stream_passthrough: ">= 0.9.4", "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], _stream_readable: ">= 0.9.4", "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], _stream_writable: ">= 0.9.4", "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], stream: true, "node:stream": [">= 14.18 && < 15", ">= 16"], "stream/consumers": ">= 16.7", "node:stream/consumers": ">= 16.7", "stream/promises": ">= 15", "node:stream/promises": ">= 16", "stream/web": ">= 16.5", "node:stream/web": ">= 16.5", string_decoder: true, "node:string_decoder": [">= 14.18 && < 15", ">= 16"], sys: [">= 0.4 && < 0.7", ">= 0.8"], "node:sys": [">= 14.18 && < 15", ">= 16"], "test/reporters": ">= 19.9 && < 20.2", "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], "node:test": [">= 16.17 && < 17", ">= 18"], timers: true, "node:timers": [">= 14.18 && < 15", ">= 16"], "timers/promises": ">= 15", "node:timers/promises": ">= 16", _tls_common: ">= 0.11.13", "node:_tls_common": [">= 14.18 && < 15", ">= 16"], _tls_legacy: ">= 0.11.3 && < 10", _tls_wrap: ">= 0.11.3", "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], tls: true, "node:tls": [">= 14.18 && < 15", ">= 16"], trace_events: ">= 10", "node:trace_events": [">= 14.18 && < 15", ">= 16"], tty: true, "node:tty": [">= 14.18 && < 15", ">= 16"], url: true, "node:url": [">= 14.18 && < 15", ">= 16"], util: true, "node:util": [">= 14.18 && < 15", ">= 16"], "util/types": ">= 15.3", "node:util/types": ">= 16", "v8/tools/arguments": ">= 10 && < 12", "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], v8: ">= 1", "node:v8": [">= 14.18 && < 15", ">= 16"], vm: true, "node:vm": [">= 14.18 && < 15", ">= 16"], wasi: [">= 13.4 && < 13.5", ">= 18.17 && < 19", ">= 20"], "node:wasi": [">= 18.17 && < 19", ">= 20"], worker_threads: ">= 11.7", "node:worker_threads": [">= 14.18 && < 15", ">= 16"], zlib: ">= 0.5", "node:zlib": [">= 14.18 && < 15", ">= 16"] }; } }); // ../../node_modules/.pnpm/is-core-module@2.13.0/node_modules/is-core-module/index.js var require_is_core_module = __commonJS({ "../../node_modules/.pnpm/is-core-module@2.13.0/node_modules/is-core-module/index.js"(exports, module4) { init_import_meta_url(); var has2 = require_src(); function specifierIncluded(current, specifier) { var nodeParts = current.split("."); var parts = specifier.split(" "); var op = parts.length > 1 ? parts[0] : "="; var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split("."); for (var i7 = 0; i7 < 3; ++i7) { var cur = parseInt(nodeParts[i7] || 0, 10); var ver = parseInt(versionParts[i7] || 0, 10); if (cur === ver) { continue; } if (op === "<") { return cur < ver; } if (op === ">=") { return cur >= ver; } return false; } return op === ">="; } __name(specifierIncluded, "specifierIncluded"); function matchesRange(current, range) { var specifiers = range.split(/ ?&& ?/); if (specifiers.length === 0) { return false; } for (var i7 = 0; i7 < specifiers.length; ++i7) { if (!specifierIncluded(current, specifiers[i7])) { return false; } } return true; } __name(matchesRange, "matchesRange"); function versionIncluded(nodeVersion2, specifierValue) { if (typeof specifierValue === "boolean") { return specifierValue; } var current = typeof nodeVersion2 === "undefined" ? process.versions && process.versions.node : nodeVersion2; if (typeof current !== "string") { throw new TypeError(typeof nodeVersion2 === "undefined" ? "Unable to determine current node version" : "If provided, a valid node version is required"); } if (specifierValue && typeof specifierValue === "object") { for (var i7 = 0; i7 < specifierValue.length; ++i7) { if (matchesRange(current, specifierValue[i7])) { return true; } } return false; } return matchesRange(current, specifierValue); } __name(versionIncluded, "versionIncluded"); var data = require_core(); module4.exports = /* @__PURE__ */ __name(function isCore(x7, nodeVersion2) { return has2(data, x7) && versionIncluded(nodeVersion2, data[x7]); }, "isCore"); } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/async.js var require_async = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/async.js"(exports, module4) { init_import_meta_url(); var fs27 = __require("fs"); var getHomedir = require_homedir(); var path82 = __require("path"); var caller = require_caller(); var nodeModulesPaths = require_node_modules_paths(); var normalizeOptions = require_normalize_options(); var isCore = require_is_core_module(); var realpathFS = process.platform !== "win32" && fs27.realpath && typeof fs27.realpath.native === "function" ? fs27.realpath.native : fs27.realpath; var homedir3 = getHomedir(); var defaultPaths = /* @__PURE__ */ __name(function() { return [ path82.join(homedir3, ".node_modules"), path82.join(homedir3, ".node_libraries") ]; }, "defaultPaths"); var defaultIsFile = /* @__PURE__ */ __name(function isFile2(file3, cb2) { fs27.stat(file3, function(err, stat9) { if (!err) { return cb2(null, stat9.isFile() || stat9.isFIFO()); } if (err.code === "ENOENT" || err.code === "ENOTDIR") return cb2(null, false); return cb2(err); }); }, "isFile"); var defaultIsDir = /* @__PURE__ */ __name(function isDirectory3(dir2, cb2) { fs27.stat(dir2, function(err, stat9) { if (!err) { return cb2(null, stat9.isDirectory()); } if (err.code === "ENOENT" || err.code === "ENOTDIR") return cb2(null, false); return cb2(err); }); }, "isDirectory"); var defaultRealpath = /* @__PURE__ */ __name(function realpath2(x7, cb2) { realpathFS(x7, function(realpathErr, realPath) { if (realpathErr && realpathErr.code !== "ENOENT") cb2(realpathErr); else cb2(null, realpathErr ? x7 : realPath); }); }, "realpath"); var maybeRealpath = /* @__PURE__ */ __name(function maybeRealpath2(realpath2, x7, opts, cb2) { if (opts && opts.preserveSymlinks === false) { realpath2(x7, cb2); } else { cb2(null, x7); } }, "maybeRealpath"); var defaultReadPackage = /* @__PURE__ */ __name(function defaultReadPackage2(readFile19, pkgfile, cb2) { readFile19(pkgfile, function(readFileErr, body) { if (readFileErr) cb2(readFileErr); else { try { var pkg = JSON.parse(body); cb2(null, pkg); } catch (jsonErr) { cb2(null); } } }); }, "defaultReadPackage"); var getPackageCandidates = /* @__PURE__ */ __name(function getPackageCandidates2(x7, start, opts) { var dirs = nodeModulesPaths(start, opts, x7); for (var i7 = 0; i7 < dirs.length; i7++) { dirs[i7] = path82.join(dirs[i7], x7); } return dirs; }, "getPackageCandidates"); module4.exports = /* @__PURE__ */ __name(function resolve31(x7, options, callback) { var cb2 = callback; var opts = options; if (typeof options === "function") { cb2 = opts; opts = {}; } if (typeof x7 !== "string") { var err = new TypeError("Path must be a string."); return process.nextTick(function() { cb2(err); }); } opts = normalizeOptions(x7, opts); var isFile2 = opts.isFile || defaultIsFile; var isDirectory3 = opts.isDirectory || defaultIsDir; var readFile19 = opts.readFile || fs27.readFile; var realpath2 = opts.realpath || defaultRealpath; var readPackage = opts.readPackage || defaultReadPackage; if (opts.readFile && opts.readPackage) { var conflictErr = new TypeError("`readFile` and `readPackage` are mutually exclusive."); return process.nextTick(function() { cb2(conflictErr); }); } var packageIterator = opts.packageIterator; var extensions = opts.extensions || [".js"]; var includeCoreModules = opts.includeCoreModules !== false; var basedir = opts.basedir || path82.dirname(caller()); var parent = opts.filename || basedir; opts.paths = opts.paths || defaultPaths(); var absoluteStart = path82.resolve(basedir); maybeRealpath( realpath2, absoluteStart, opts, function(err2, realStart) { if (err2) cb2(err2); else init4(realStart); } ); var res; function init4(basedir2) { if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x7)) { res = path82.resolve(basedir2, x7); if (x7 === "." || x7 === ".." || x7.slice(-1) === "/") res += "/"; if (/\/$/.test(x7) && res === basedir2) { loadAsDirectory(res, opts.package, onfile); } else loadAsFile(res, opts.package, onfile); } else if (includeCoreModules && isCore(x7)) { return cb2(null, x7); } else loadNodeModules(x7, basedir2, function(err2, n8, pkg) { if (err2) cb2(err2); else if (n8) { return maybeRealpath(realpath2, n8, opts, function(err3, realN) { if (err3) { cb2(err3); } else { cb2(null, realN, pkg); } }); } else { var moduleError = new Error("Cannot find module '" + x7 + "' from '" + parent + "'"); moduleError.code = "MODULE_NOT_FOUND"; cb2(moduleError); } }); } __name(init4, "init"); function onfile(err2, m7, pkg) { if (err2) cb2(err2); else if (m7) cb2(null, m7, pkg); else loadAsDirectory(res, function(err3, d8, pkg2) { if (err3) cb2(err3); else if (d8) { maybeRealpath(realpath2, d8, opts, function(err4, realD) { if (err4) { cb2(err4); } else { cb2(null, realD, pkg2); } }); } else { var moduleError = new Error("Cannot find module '" + x7 + "' from '" + parent + "'"); moduleError.code = "MODULE_NOT_FOUND"; cb2(moduleError); } }); } __name(onfile, "onfile"); function loadAsFile(x8, thePackage, callback2) { var loadAsFilePackage = thePackage; var cb3 = callback2; if (typeof loadAsFilePackage === "function") { cb3 = loadAsFilePackage; loadAsFilePackage = void 0; } var exts = [""].concat(extensions); load(exts, x8, loadAsFilePackage); function load(exts2, x9, loadPackage) { if (exts2.length === 0) return cb3(null, void 0, loadPackage); var file3 = x9 + exts2[0]; var pkg = loadPackage; if (pkg) onpkg(null, pkg); else loadpkg(path82.dirname(file3), onpkg); function onpkg(err2, pkg_, dir2) { pkg = pkg_; if (err2) return cb3(err2); if (dir2 && pkg && opts.pathFilter) { var rfile = path82.relative(dir2, file3); var rel = rfile.slice(0, rfile.length - exts2[0].length); var r9 = opts.pathFilter(pkg, x9, rel); if (r9) return load( [""].concat(extensions.slice()), path82.resolve(dir2, r9), pkg ); } isFile2(file3, onex); } __name(onpkg, "onpkg"); function onex(err2, ex) { if (err2) return cb3(err2); if (ex) return cb3(null, file3, pkg); load(exts2.slice(1), x9, pkg); } __name(onex, "onex"); } __name(load, "load"); } __name(loadAsFile, "loadAsFile"); function loadpkg(dir2, cb3) { if (dir2 === "" || dir2 === "/") return cb3(null); if (process.platform === "win32" && /^\w:[/\\]*$/.test(dir2)) { return cb3(null); } if (/[/\\]node_modules[/\\]*$/.test(dir2)) return cb3(null); maybeRealpath(realpath2, dir2, opts, function(unwrapErr, pkgdir) { if (unwrapErr) return loadpkg(path82.dirname(dir2), cb3); var pkgfile = path82.join(pkgdir, "package.json"); isFile2(pkgfile, function(err2, ex) { if (!ex) return loadpkg(path82.dirname(dir2), cb3); readPackage(readFile19, pkgfile, function(err3, pkgParam) { if (err3) cb3(err3); var pkg = pkgParam; if (pkg && opts.packageFilter) { pkg = opts.packageFilter(pkg, pkgfile); } cb3(null, pkg, dir2); }); }); }); } __name(loadpkg, "loadpkg"); function loadAsDirectory(x8, loadAsDirectoryPackage, callback2) { var cb3 = callback2; var fpkg = loadAsDirectoryPackage; if (typeof fpkg === "function") { cb3 = fpkg; fpkg = opts.package; } maybeRealpath(realpath2, x8, opts, function(unwrapErr, pkgdir) { if (unwrapErr) return cb3(unwrapErr); var pkgfile = path82.join(pkgdir, "package.json"); isFile2(pkgfile, function(err2, ex) { if (err2) return cb3(err2); if (!ex) return loadAsFile(path82.join(x8, "index"), fpkg, cb3); readPackage(readFile19, pkgfile, function(err3, pkgParam) { if (err3) return cb3(err3); var pkg = pkgParam; if (pkg && opts.packageFilter) { pkg = opts.packageFilter(pkg, pkgfile); } if (pkg && pkg.main) { if (typeof pkg.main !== "string") { var mainError = new TypeError("package \u201C" + pkg.name + "\u201D `main` must be a string"); mainError.code = "INVALID_PACKAGE_MAIN"; return cb3(mainError); } if (pkg.main === "." || pkg.main === "./") { pkg.main = "index"; } loadAsFile(path82.resolve(x8, pkg.main), pkg, function(err4, m7, pkg2) { if (err4) return cb3(err4); if (m7) return cb3(null, m7, pkg2); if (!pkg2) return loadAsFile(path82.join(x8, "index"), pkg2, cb3); var dir2 = path82.resolve(x8, pkg2.main); loadAsDirectory(dir2, pkg2, function(err5, n8, pkg3) { if (err5) return cb3(err5); if (n8) return cb3(null, n8, pkg3); loadAsFile(path82.join(x8, "index"), pkg3, cb3); }); }); return; } loadAsFile(path82.join(x8, "/index"), pkg, cb3); }); }); }); } __name(loadAsDirectory, "loadAsDirectory"); function processDirs(cb3, dirs) { if (dirs.length === 0) return cb3(null, void 0); var dir2 = dirs[0]; isDirectory3(path82.dirname(dir2), isdir); function isdir(err2, isdir2) { if (err2) return cb3(err2); if (!isdir2) return processDirs(cb3, dirs.slice(1)); loadAsFile(dir2, opts.package, onfile2); } __name(isdir, "isdir"); function onfile2(err2, m7, pkg) { if (err2) return cb3(err2); if (m7) return cb3(null, m7, pkg); loadAsDirectory(dir2, opts.package, ondir); } __name(onfile2, "onfile"); function ondir(err2, n8, pkg) { if (err2) return cb3(err2); if (n8) return cb3(null, n8, pkg); processDirs(cb3, dirs.slice(1)); } __name(ondir, "ondir"); } __name(processDirs, "processDirs"); function loadNodeModules(x8, start, cb3) { var thunk = /* @__PURE__ */ __name(function() { return getPackageCandidates(x8, start, opts); }, "thunk"); processDirs( cb3, packageIterator ? packageIterator(x8, start, thunk, opts) : thunk() ); } __name(loadNodeModules, "loadNodeModules"); }, "resolve"); } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/core.json var require_core2 = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/core.json"(exports, module4) { module4.exports = { assert: true, "node:assert": [">= 14.18 && < 15", ">= 16"], "assert/strict": ">= 15", "node:assert/strict": ">= 16", async_hooks: ">= 8", "node:async_hooks": [">= 14.18 && < 15", ">= 16"], buffer_ieee754: ">= 0.5 && < 0.9.7", buffer: true, "node:buffer": [">= 14.18 && < 15", ">= 16"], child_process: true, "node:child_process": [">= 14.18 && < 15", ">= 16"], cluster: ">= 0.5", "node:cluster": [">= 14.18 && < 15", ">= 16"], console: true, "node:console": [">= 14.18 && < 15", ">= 16"], constants: true, "node:constants": [">= 14.18 && < 15", ">= 16"], crypto: true, "node:crypto": [">= 14.18 && < 15", ">= 16"], _debug_agent: ">= 1 && < 8", _debugger: "< 8", dgram: true, "node:dgram": [">= 14.18 && < 15", ">= 16"], diagnostics_channel: [">= 14.17 && < 15", ">= 15.1"], "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], dns: true, "node:dns": [">= 14.18 && < 15", ">= 16"], "dns/promises": ">= 15", "node:dns/promises": ">= 16", domain: ">= 0.7.12", "node:domain": [">= 14.18 && < 15", ">= 16"], events: true, "node:events": [">= 14.18 && < 15", ">= 16"], freelist: "< 6", fs: true, "node:fs": [">= 14.18 && < 15", ">= 16"], "fs/promises": [">= 10 && < 10.1", ">= 14"], "node:fs/promises": [">= 14.18 && < 15", ">= 16"], _http_agent: ">= 0.11.1", "node:_http_agent": [">= 14.18 && < 15", ">= 16"], _http_client: ">= 0.11.1", "node:_http_client": [">= 14.18 && < 15", ">= 16"], _http_common: ">= 0.11.1", "node:_http_common": [">= 14.18 && < 15", ">= 16"], _http_incoming: ">= 0.11.1", "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], _http_outgoing: ">= 0.11.1", "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], _http_server: ">= 0.11.1", "node:_http_server": [">= 14.18 && < 15", ">= 16"], http: true, "node:http": [">= 14.18 && < 15", ">= 16"], http2: ">= 8.8", "node:http2": [">= 14.18 && < 15", ">= 16"], https: true, "node:https": [">= 14.18 && < 15", ">= 16"], inspector: ">= 8", "node:inspector": [">= 14.18 && < 15", ">= 16"], "inspector/promises": [">= 19"], "node:inspector/promises": [">= 19"], _linklist: "< 8", module: true, "node:module": [">= 14.18 && < 15", ">= 16"], net: true, "node:net": [">= 14.18 && < 15", ">= 16"], "node-inspect/lib/_inspect": ">= 7.6 && < 12", "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", os: true, "node:os": [">= 14.18 && < 15", ">= 16"], path: true, "node:path": [">= 14.18 && < 15", ">= 16"], "path/posix": ">= 15.3", "node:path/posix": ">= 16", "path/win32": ">= 15.3", "node:path/win32": ">= 16", perf_hooks: ">= 8.5", "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], process: ">= 1", "node:process": [">= 14.18 && < 15", ">= 16"], punycode: ">= 0.5", "node:punycode": [">= 14.18 && < 15", ">= 16"], querystring: true, "node:querystring": [">= 14.18 && < 15", ">= 16"], readline: true, "node:readline": [">= 14.18 && < 15", ">= 16"], "readline/promises": ">= 17", "node:readline/promises": ">= 17", repl: true, "node:repl": [">= 14.18 && < 15", ">= 16"], smalloc: ">= 0.11.5 && < 3", _stream_duplex: ">= 0.9.4", "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], _stream_transform: ">= 0.9.4", "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], _stream_wrap: ">= 1.4.1", "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], _stream_passthrough: ">= 0.9.4", "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], _stream_readable: ">= 0.9.4", "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], _stream_writable: ">= 0.9.4", "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], stream: true, "node:stream": [">= 14.18 && < 15", ">= 16"], "stream/consumers": ">= 16.7", "node:stream/consumers": ">= 16.7", "stream/promises": ">= 15", "node:stream/promises": ">= 16", "stream/web": ">= 16.5", "node:stream/web": ">= 16.5", string_decoder: true, "node:string_decoder": [">= 14.18 && < 15", ">= 16"], sys: [">= 0.4 && < 0.7", ">= 0.8"], "node:sys": [">= 14.18 && < 15", ">= 16"], "test/reporters": ">= 19.9 && < 20.2", "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], "node:test": [">= 16.17 && < 17", ">= 18"], timers: true, "node:timers": [">= 14.18 && < 15", ">= 16"], "timers/promises": ">= 15", "node:timers/promises": ">= 16", _tls_common: ">= 0.11.13", "node:_tls_common": [">= 14.18 && < 15", ">= 16"], _tls_legacy: ">= 0.11.3 && < 10", _tls_wrap: ">= 0.11.3", "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], tls: true, "node:tls": [">= 14.18 && < 15", ">= 16"], trace_events: ">= 10", "node:trace_events": [">= 14.18 && < 15", ">= 16"], tty: true, "node:tty": [">= 14.18 && < 15", ">= 16"], url: true, "node:url": [">= 14.18 && < 15", ">= 16"], util: true, "node:util": [">= 14.18 && < 15", ">= 16"], "util/types": ">= 15.3", "node:util/types": ">= 16", "v8/tools/arguments": ">= 10 && < 12", "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], v8: ">= 1", "node:v8": [">= 14.18 && < 15", ">= 16"], vm: true, "node:vm": [">= 14.18 && < 15", ">= 16"], wasi: [">= 13.4 && < 13.5", ">= 18.17 && < 19", ">= 20"], "node:wasi": [">= 18.17 && < 19", ">= 20"], worker_threads: ">= 11.7", "node:worker_threads": [">= 14.18 && < 15", ">= 16"], zlib: ">= 0.5", "node:zlib": [">= 14.18 && < 15", ">= 16"] }; } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/core.js var require_core3 = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/core.js"(exports, module4) { init_import_meta_url(); var isCoreModule = require_is_core_module(); var data = require_core2(); var core = {}; for (mod in data) { if (Object.prototype.hasOwnProperty.call(data, mod)) { core[mod] = isCoreModule(mod); } } var mod; module4.exports = core; } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/is-core.js var require_is_core = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/is-core.js"(exports, module4) { init_import_meta_url(); var isCoreModule = require_is_core_module(); module4.exports = /* @__PURE__ */ __name(function isCore(x7) { return isCoreModule(x7); }, "isCore"); } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/sync.js var require_sync = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/lib/sync.js"(exports, module4) { init_import_meta_url(); var isCore = require_is_core_module(); var fs27 = __require("fs"); var path82 = __require("path"); var getHomedir = require_homedir(); var caller = require_caller(); var nodeModulesPaths = require_node_modules_paths(); var normalizeOptions = require_normalize_options(); var realpathFS = process.platform !== "win32" && fs27.realpathSync && typeof fs27.realpathSync.native === "function" ? fs27.realpathSync.native : fs27.realpathSync; var homedir3 = getHomedir(); var defaultPaths = /* @__PURE__ */ __name(function() { return [ path82.join(homedir3, ".node_modules"), path82.join(homedir3, ".node_libraries") ]; }, "defaultPaths"); var defaultIsFile = /* @__PURE__ */ __name(function isFile2(file3) { try { var stat9 = fs27.statSync(file3, { throwIfNoEntry: false }); } catch (e9) { if (e9 && (e9.code === "ENOENT" || e9.code === "ENOTDIR")) return false; throw e9; } return !!stat9 && (stat9.isFile() || stat9.isFIFO()); }, "isFile"); var defaultIsDir = /* @__PURE__ */ __name(function isDirectory3(dir2) { try { var stat9 = fs27.statSync(dir2, { throwIfNoEntry: false }); } catch (e9) { if (e9 && (e9.code === "ENOENT" || e9.code === "ENOTDIR")) return false; throw e9; } return !!stat9 && stat9.isDirectory(); }, "isDirectory"); var defaultRealpathSync = /* @__PURE__ */ __name(function realpathSync4(x7) { try { return realpathFS(x7); } catch (realpathErr) { if (realpathErr.code !== "ENOENT") { throw realpathErr; } } return x7; }, "realpathSync"); var maybeRealpathSync = /* @__PURE__ */ __name(function maybeRealpathSync2(realpathSync4, x7, opts) { if (opts && opts.preserveSymlinks === false) { return realpathSync4(x7); } return x7; }, "maybeRealpathSync"); var defaultReadPackageSync = /* @__PURE__ */ __name(function defaultReadPackageSync2(readFileSync33, pkgfile) { var body = readFileSync33(pkgfile); try { var pkg = JSON.parse(body); return pkg; } catch (jsonErr) { } }, "defaultReadPackageSync"); var getPackageCandidates = /* @__PURE__ */ __name(function getPackageCandidates2(x7, start, opts) { var dirs = nodeModulesPaths(start, opts, x7); for (var i7 = 0; i7 < dirs.length; i7++) { dirs[i7] = path82.join(dirs[i7], x7); } return dirs; }, "getPackageCandidates"); module4.exports = /* @__PURE__ */ __name(function resolveSync2(x7, options) { if (typeof x7 !== "string") { throw new TypeError("Path must be a string."); } var opts = normalizeOptions(x7, options); var isFile2 = opts.isFile || defaultIsFile; var readFileSync33 = opts.readFileSync || fs27.readFileSync; var isDirectory3 = opts.isDirectory || defaultIsDir; var realpathSync4 = opts.realpathSync || defaultRealpathSync; var readPackageSync = opts.readPackageSync || defaultReadPackageSync; if (opts.readFileSync && opts.readPackageSync) { throw new TypeError("`readFileSync` and `readPackageSync` are mutually exclusive."); } var packageIterator = opts.packageIterator; var extensions = opts.extensions || [".js"]; var includeCoreModules = opts.includeCoreModules !== false; var basedir = opts.basedir || path82.dirname(caller()); var parent = opts.filename || basedir; opts.paths = opts.paths || defaultPaths(); var absoluteStart = maybeRealpathSync(realpathSync4, path82.resolve(basedir), opts); if (/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(x7)) { var res = path82.resolve(absoluteStart, x7); if (x7 === "." || x7 === ".." || x7.slice(-1) === "/") res += "/"; var m7 = loadAsFileSync(res) || loadAsDirectorySync(res); if (m7) return maybeRealpathSync(realpathSync4, m7, opts); } else if (includeCoreModules && isCore(x7)) { return x7; } else { var n8 = loadNodeModulesSync(x7, absoluteStart); if (n8) return maybeRealpathSync(realpathSync4, n8, opts); } var err = new Error("Cannot find module '" + x7 + "' from '" + parent + "'"); err.code = "MODULE_NOT_FOUND"; throw err; function loadAsFileSync(x8) { var pkg = loadpkg(path82.dirname(x8)); if (pkg && pkg.dir && pkg.pkg && opts.pathFilter) { var rfile = path82.relative(pkg.dir, x8); var r9 = opts.pathFilter(pkg.pkg, x8, rfile); if (r9) { x8 = path82.resolve(pkg.dir, r9); } } if (isFile2(x8)) { return x8; } for (var i7 = 0; i7 < extensions.length; i7++) { var file3 = x8 + extensions[i7]; if (isFile2(file3)) { return file3; } } } function loadpkg(dir2) { if (dir2 === "" || dir2 === "/") return; if (process.platform === "win32" && /^\w:[/\\]*$/.test(dir2)) { return; } if (/[/\\]node_modules[/\\]*$/.test(dir2)) return; var pkgfile = path82.join(maybeRealpathSync(realpathSync4, dir2, opts), "package.json"); if (!isFile2(pkgfile)) { return loadpkg(path82.dirname(dir2)); } var pkg = readPackageSync(readFileSync33, pkgfile); if (pkg && opts.packageFilter) { pkg = opts.packageFilter( pkg, /*pkgfile,*/ dir2 ); } return { pkg, dir: dir2 }; } function loadAsDirectorySync(x8) { var pkgfile = path82.join(maybeRealpathSync(realpathSync4, x8, opts), "/package.json"); if (isFile2(pkgfile)) { try { var pkg = readPackageSync(readFileSync33, pkgfile); } catch (e9) { } if (pkg && opts.packageFilter) { pkg = opts.packageFilter( pkg, /*pkgfile,*/ x8 ); } if (pkg && pkg.main) { if (typeof pkg.main !== "string") { var mainError = new TypeError("package \u201C" + pkg.name + "\u201D `main` must be a string"); mainError.code = "INVALID_PACKAGE_MAIN"; throw mainError; } if (pkg.main === "." || pkg.main === "./") { pkg.main = "index"; } try { var m8 = loadAsFileSync(path82.resolve(x8, pkg.main)); if (m8) return m8; var n9 = loadAsDirectorySync(path82.resolve(x8, pkg.main)); if (n9) return n9; } catch (e9) { } } } return loadAsFileSync(path82.join(x8, "/index")); } function loadNodeModulesSync(x8, start) { var thunk = /* @__PURE__ */ __name(function() { return getPackageCandidates(x8, start, opts); }, "thunk"); var dirs = packageIterator ? packageIterator(x8, start, thunk, opts) : thunk(); for (var i7 = 0; i7 < dirs.length; i7++) { var dir2 = dirs[i7]; if (isDirectory3(path82.dirname(dir2))) { var m8 = loadAsFileSync(dir2); if (m8) return m8; var n9 = loadAsDirectorySync(dir2); if (n9) return n9; } } } }, "resolveSync"); } }); // ../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/index.js var require_resolve = __commonJS({ "../../node_modules/.pnpm/resolve@1.22.8/node_modules/resolve/index.js"(exports, module4) { init_import_meta_url(); var async = require_async(); async.core = require_core3(); async.isCore = require_is_core(); async.sync = require_sync(); module4.exports = async; } }); // ../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/debug.js var require_debug = __commonJS({ "../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/debug.js"(exports, module4) { init_import_meta_url(); var messages = []; var level = 0; var debug2 = /* @__PURE__ */ __name((msg, min) => { if (level >= min) { messages.push(msg); } }, "debug"); debug2.WARN = 1; debug2.INFO = 2; debug2.DEBUG = 3; debug2.reset = () => { messages = []; }; debug2.setDebugLevel = (v8) => { level = v8; }; debug2.warn = (msg) => debug2(msg, debug2.WARN); debug2.info = (msg) => debug2(msg, debug2.INFO); debug2.debug = (msg) => debug2(msg, debug2.DEBUG); debug2.debugMessages = () => messages; module4.exports = debug2; } }); // ../../node_modules/.pnpm/ansi-regex@5.0.1/node_modules/ansi-regex/index.js var require_ansi_regex = __commonJS({ "../../node_modules/.pnpm/ansi-regex@5.0.1/node_modules/ansi-regex/index.js"(exports, module4) { init_import_meta_url(); module4.exports = ({ onlyFirst = false } = {}) => { const pattern = [ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" ].join("|"); return new RegExp(pattern, onlyFirst ? void 0 : "g"); }; } }); // ../../node_modules/.pnpm/strip-ansi@6.0.1/node_modules/strip-ansi/index.js var require_strip_ansi = __commonJS({ "../../node_modules/.pnpm/strip-ansi@6.0.1/node_modules/strip-ansi/index.js"(exports, module4) { init_import_meta_url(); var ansiRegex2 = require_ansi_regex(); module4.exports = (string) => typeof string === "string" ? string.replace(ansiRegex2(), "") : string; } }); // ../../node_modules/.pnpm/is-fullwidth-code-point@3.0.0/node_modules/is-fullwidth-code-point/index.js var require_is_fullwidth_code_point = __commonJS({ "../../node_modules/.pnpm/is-fullwidth-code-point@3.0.0/node_modules/is-fullwidth-code-point/index.js"(exports, module4) { init_import_meta_url(); var isFullwidthCodePoint2 = /* @__PURE__ */ __name((codePoint) => { if (Number.isNaN(codePoint)) { return false; } if (codePoint >= 4352 && (codePoint <= 4447 || // Hangul Jamo codePoint === 9001 || // LEFT-POINTING ANGLE BRACKET codePoint === 9002 || // RIGHT-POINTING ANGLE BRACKET // CJK Radicals Supplement .. Enclosed CJK Letters and Months 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A 12880 <= codePoint && codePoint <= 19903 || // CJK Unified Ideographs .. Yi Radicals 19968 <= codePoint && codePoint <= 42182 || // Hangul Jamo Extended-A 43360 <= codePoint && codePoint <= 43388 || // Hangul Syllables 44032 <= codePoint && codePoint <= 55203 || // CJK Compatibility Ideographs 63744 <= codePoint && codePoint <= 64255 || // Vertical Forms 65040 <= codePoint && codePoint <= 65049 || // CJK Compatibility Forms .. Small Form Variants 65072 <= codePoint && codePoint <= 65131 || // Halfwidth and Fullwidth Forms 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || // Kana Supplement 110592 <= codePoint && codePoint <= 110593 || // Enclosed Ideographic Supplement 127488 <= codePoint && codePoint <= 127569 || // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane 131072 <= codePoint && codePoint <= 262141)) { return true; } return false; }, "isFullwidthCodePoint"); module4.exports = isFullwidthCodePoint2; module4.exports.default = isFullwidthCodePoint2; } }); // ../../node_modules/.pnpm/emoji-regex@8.0.0/node_modules/emoji-regex/index.js var require_emoji_regex = __commonJS({ "../../node_modules/.pnpm/emoji-regex@8.0.0/node_modules/emoji-regex/index.js"(exports, module4) { init_import_meta_url(); module4.exports = function() { return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; }; } }); // ../../node_modules/.pnpm/string-width@4.2.3/node_modules/string-width/index.js var require_string_width = __commonJS({ "../../node_modules/.pnpm/string-width@4.2.3/node_modules/string-width/index.js"(exports, module4) { init_import_meta_url(); var stripAnsi4 = require_strip_ansi(); var isFullwidthCodePoint2 = require_is_fullwidth_code_point(); var emojiRegex3 = require_emoji_regex(); var stringWidth2 = /* @__PURE__ */ __name((string) => { if (typeof string !== "string" || string.length === 0) { return 0; } string = stripAnsi4(string); if (string.length === 0) { return 0; } string = string.replace(emojiRegex3(), " "); let width = 0; for (let i7 = 0; i7 < string.length; i7++) { const code = string.codePointAt(i7); if (code <= 31 || code >= 127 && code <= 159) { continue; } if (code >= 768 && code <= 879) { continue; } if (code > 65535) { i7++; } width += isFullwidthCodePoint2(code) ? 2 : 1; } return width; }, "stringWidth"); module4.exports = stringWidth2; module4.exports.default = stringWidth2; } }); // ../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/utils.js var require_utils2 = __commonJS({ "../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/utils.js"(exports, module4) { init_import_meta_url(); var stringWidth2 = require_string_width(); function codeRegex(capture) { return capture ? /\u001b\[((?:\d*;){0,5}\d*)m/g : /\u001b\[(?:\d*;){0,5}\d*m/g; } __name(codeRegex, "codeRegex"); function strlen(str) { let code = codeRegex(); let stripped = ("" + str).replace(code, ""); let split = stripped.split("\n"); return split.reduce(function(memo, s7) { return stringWidth2(s7) > memo ? stringWidth2(s7) : memo; }, 0); } __name(strlen, "strlen"); function repeat2(str, times) { return Array(times + 1).join(str); } __name(repeat2, "repeat"); function pad2(str, len, pad3, dir2) { let length = strlen(str); if (len + 1 >= length) { let padlen = len - length; switch (dir2) { case "right": { str = repeat2(pad3, padlen) + str; break; } case "center": { let right2 = Math.ceil(padlen / 2); let left2 = padlen - right2; str = repeat2(pad3, left2) + str + repeat2(pad3, right2); break; } default: { str = str + repeat2(pad3, padlen); break; } } } return str; } __name(pad2, "pad"); var codeCache = {}; function addToCodeCache(name2, on, off) { on = "\x1B[" + on + "m"; off = "\x1B[" + off + "m"; codeCache[on] = { set: name2, to: true }; codeCache[off] = { set: name2, to: false }; codeCache[name2] = { on, off }; } __name(addToCodeCache, "addToCodeCache"); addToCodeCache("bold", 1, 22); addToCodeCache("italics", 3, 23); addToCodeCache("underline", 4, 24); addToCodeCache("inverse", 7, 27); addToCodeCache("strikethrough", 9, 29); function updateState(state2, controlChars) { let controlCode = controlChars[1] ? parseInt(controlChars[1].split(";")[0]) : 0; if (controlCode >= 30 && controlCode <= 39 || controlCode >= 90 && controlCode <= 97) { state2.lastForegroundAdded = controlChars[0]; return; } if (controlCode >= 40 && controlCode <= 49 || controlCode >= 100 && controlCode <= 107) { state2.lastBackgroundAdded = controlChars[0]; return; } if (controlCode === 0) { for (let i7 in state2) { if (Object.prototype.hasOwnProperty.call(state2, i7)) { delete state2[i7]; } } return; } let info = codeCache[controlChars[0]]; if (info) { state2[info.set] = info.to; } } __name(updateState, "updateState"); function readState(line) { let code = codeRegex(true); let controlChars = code.exec(line); let state2 = {}; while (controlChars !== null) { updateState(state2, controlChars); controlChars = code.exec(line); } return state2; } __name(readState, "readState"); function unwindState(state2, ret) { let lastBackgroundAdded = state2.lastBackgroundAdded; let lastForegroundAdded = state2.lastForegroundAdded; delete state2.lastBackgroundAdded; delete state2.lastForegroundAdded; Object.keys(state2).forEach(function(key) { if (state2[key]) { ret += codeCache[key].off; } }); if (lastBackgroundAdded && lastBackgroundAdded != "\x1B[49m") { ret += "\x1B[49m"; } if (lastForegroundAdded && lastForegroundAdded != "\x1B[39m") { ret += "\x1B[39m"; } return ret; } __name(unwindState, "unwindState"); function rewindState(state2, ret) { let lastBackgroundAdded = state2.lastBackgroundAdded; let lastForegroundAdded = state2.lastForegroundAdded; delete state2.lastBackgroundAdded; delete state2.lastForegroundAdded; Object.keys(state2).forEach(function(key) { if (state2[key]) { ret = codeCache[key].on + ret; } }); if (lastBackgroundAdded && lastBackgroundAdded != "\x1B[49m") { ret = lastBackgroundAdded + ret; } if (lastForegroundAdded && lastForegroundAdded != "\x1B[39m") { ret = lastForegroundAdded + ret; } return ret; } __name(rewindState, "rewindState"); function truncateWidth(str, desiredLength) { if (str.length === strlen(str)) { return str.substr(0, desiredLength); } while (strlen(str) > desiredLength) { str = str.slice(0, -1); } return str; } __name(truncateWidth, "truncateWidth"); function truncateWidthWithAnsi(str, desiredLength) { let code = codeRegex(true); let split = str.split(codeRegex()); let splitIndex = 0; let retLen = 0; let ret = ""; let myArray; let state2 = {}; while (retLen < desiredLength) { myArray = code.exec(str); let toAdd = split[splitIndex]; splitIndex++; if (retLen + strlen(toAdd) > desiredLength) { toAdd = truncateWidth(toAdd, desiredLength - retLen); } ret += toAdd; retLen += strlen(toAdd); if (retLen < desiredLength) { if (!myArray) { break; } ret += myArray[0]; updateState(state2, myArray); } } return unwindState(state2, ret); } __name(truncateWidthWithAnsi, "truncateWidthWithAnsi"); function truncate4(str, desiredLength, truncateChar) { truncateChar = truncateChar || "\u2026"; let lengthOfStr = strlen(str); if (lengthOfStr <= desiredLength) { return str; } desiredLength -= strlen(truncateChar); let ret = truncateWidthWithAnsi(str, desiredLength); return ret + truncateChar; } __name(truncate4, "truncate"); function defaultOptions4() { return { chars: { top: "\u2500", "top-mid": "\u252C", "top-left": "\u250C", "top-right": "\u2510", bottom: "\u2500", "bottom-mid": "\u2534", "bottom-left": "\u2514", "bottom-right": "\u2518", left: "\u2502", "left-mid": "\u251C", mid: "\u2500", "mid-mid": "\u253C", right: "\u2502", "right-mid": "\u2524", middle: "\u2502" }, truncate: "\u2026", colWidths: [], rowHeights: [], colAligns: [], rowAligns: [], style: { "padding-left": 1, "padding-right": 1, head: ["red"], border: ["grey"], compact: false }, head: [] }; } __name(defaultOptions4, "defaultOptions"); function mergeOptions(options, defaults3) { options = options || {}; defaults3 = defaults3 || defaultOptions4(); let ret = Object.assign({}, defaults3, options); ret.chars = Object.assign({}, defaults3.chars, options.chars); ret.style = Object.assign({}, defaults3.style, options.style); return ret; } __name(mergeOptions, "mergeOptions"); function wordWrap(maxLength, input) { let lines = []; let split = input.split(/(\s+)/g); let line = []; let lineLength = 0; let whitespace; for (let i7 = 0; i7 < split.length; i7 += 2) { let word = split[i7]; let newLength = lineLength + strlen(word); if (lineLength > 0 && whitespace) { newLength += whitespace.length; } if (newLength > maxLength) { if (lineLength !== 0) { lines.push(line.join("")); } line = [word]; lineLength = strlen(word); } else { line.push(whitespace || "", word); lineLength = newLength; } whitespace = split[i7 + 1]; } if (lineLength) { lines.push(line.join("")); } return lines; } __name(wordWrap, "wordWrap"); function textWrap(maxLength, input) { let lines = []; let line = ""; function pushLine(str, ws) { if (line.length && ws) line += ws; line += str; while (line.length > maxLength) { lines.push(line.slice(0, maxLength)); line = line.slice(maxLength); } } __name(pushLine, "pushLine"); let split = input.split(/(\s+)/g); for (let i7 = 0; i7 < split.length; i7 += 2) { pushLine(split[i7], i7 && split[i7 - 1]); } if (line.length) lines.push(line); return lines; } __name(textWrap, "textWrap"); function multiLineWordWrap(maxLength, input, wrapOnWordBoundary = true) { let output = []; input = input.split("\n"); const handler = wrapOnWordBoundary ? wordWrap : textWrap; for (let i7 = 0; i7 < input.length; i7++) { output.push.apply(output, handler(maxLength, input[i7])); } return output; } __name(multiLineWordWrap, "multiLineWordWrap"); function colorizeLines(input) { let state2 = {}; let output = []; for (let i7 = 0; i7 < input.length; i7++) { let line = rewindState(state2, input[i7]); state2 = readState(line); let temp = Object.assign({}, state2); output.push(unwindState(temp, line)); } return output; } __name(colorizeLines, "colorizeLines"); function hyperlink(url4, text) { const OSC2 = "\x1B]"; const BEL2 = "\x07"; const SEP2 = ";"; return [OSC2, "8", SEP2, SEP2, url4 || text, BEL2, text, OSC2, "8", SEP2, SEP2, BEL2].join(""); } __name(hyperlink, "hyperlink"); module4.exports = { strlen, repeat: repeat2, pad: pad2, truncate: truncate4, mergeOptions, wordWrap: multiLineWordWrap, colorizeLines, hyperlink }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/styles.js var require_styles = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/styles.js"(exports, module4) { init_import_meta_url(); var styles4 = {}; module4["exports"] = styles4; var codes = { reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29], black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], gray: [90, 39], grey: [90, 39], brightRed: [91, 39], brightGreen: [92, 39], brightYellow: [93, 39], brightBlue: [94, 39], brightMagenta: [95, 39], brightCyan: [96, 39], brightWhite: [97, 39], bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], bgGray: [100, 49], bgGrey: [100, 49], bgBrightRed: [101, 49], bgBrightGreen: [102, 49], bgBrightYellow: [103, 49], bgBrightBlue: [104, 49], bgBrightMagenta: [105, 49], bgBrightCyan: [106, 49], bgBrightWhite: [107, 49], // legacy styles for colors pre v1.0.0 blackBG: [40, 49], redBG: [41, 49], greenBG: [42, 49], yellowBG: [43, 49], blueBG: [44, 49], magentaBG: [45, 49], cyanBG: [46, 49], whiteBG: [47, 49] }; Object.keys(codes).forEach(function(key) { var val2 = codes[key]; var style = styles4[key] = []; style.open = "\x1B[" + val2[0] + "m"; style.close = "\x1B[" + val2[1] + "m"; }); } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/system/has-flag.js var require_has_flag = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/system/has-flag.js"(exports, module4) { init_import_meta_url(); module4.exports = function(flag, argv) { argv = argv || process.argv; var terminatorPos = argv.indexOf("--"); var prefix = /^-{1,2}/.test(flag) ? "" : "--"; var pos = argv.indexOf(prefix + flag); return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos); }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/system/supports-colors.js var require_supports_colors = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/system/supports-colors.js"(exports, module4) { init_import_meta_url(); var os12 = __require("os"); var hasFlag3 = require_has_flag(); var env6 = process.env; var forceColor = void 0; if (hasFlag3("no-color") || hasFlag3("no-colors") || hasFlag3("color=false")) { forceColor = false; } else if (hasFlag3("color") || hasFlag3("colors") || hasFlag3("color=true") || hasFlag3("color=always")) { forceColor = true; } if ("FORCE_COLOR" in env6) { forceColor = env6.FORCE_COLOR.length === 0 || parseInt(env6.FORCE_COLOR, 10) !== 0; } function translateLevel3(level) { if (level === 0) { return false; } return { level, hasBasic: true, has256: level >= 2, has16m: level >= 3 }; } __name(translateLevel3, "translateLevel"); function supportsColor3(stream2) { if (forceColor === false) { return 0; } if (hasFlag3("color=16m") || hasFlag3("color=full") || hasFlag3("color=truecolor")) { return 3; } if (hasFlag3("color=256")) { return 2; } if (stream2 && !stream2.isTTY && forceColor !== true) { return 0; } var min = forceColor ? 1 : 0; if (process.platform === "win32") { var osRelease = os12.release().split("."); if (Number(process.versions.node.split(".")[0]) >= 8 && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ("CI" in env6) { if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI"].some(function(sign) { return sign in env6; }) || env6.CI_NAME === "codeship") { return 1; } return min; } if ("TEAMCITY_VERSION" in env6) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env6.TEAMCITY_VERSION) ? 1 : 0; } if ("TERM_PROGRAM" in env6) { var version5 = parseInt((env6.TERM_PROGRAM_VERSION || "").split(".")[0], 10); switch (env6.TERM_PROGRAM) { case "iTerm.app": return version5 >= 3 ? 3 : 2; case "Hyper": return 3; case "Apple_Terminal": return 2; } } if (/-256(color)?$/i.test(env6.TERM)) { return 2; } if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env6.TERM)) { return 1; } if ("COLORTERM" in env6) { return 1; } if (env6.TERM === "dumb") { return min; } return min; } __name(supportsColor3, "supportsColor"); function getSupportLevel(stream2) { var level = supportsColor3(stream2); return translateLevel3(level); } __name(getSupportLevel, "getSupportLevel"); module4.exports = { supportsColor: getSupportLevel, stdout: getSupportLevel(process.stdout), stderr: getSupportLevel(process.stderr) }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/custom/trap.js var require_trap = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/custom/trap.js"(exports, module4) { init_import_meta_url(); module4["exports"] = /* @__PURE__ */ __name(function runTheTrap(text, options) { var result = ""; text = text || "Run the trap, drop the bass"; text = text.split(""); var trap = { a: ["@", "\u0104", "\u023A", "\u0245", "\u0394", "\u039B", "\u0414"], b: ["\xDF", "\u0181", "\u0243", "\u026E", "\u03B2", "\u0E3F"], c: ["\xA9", "\u023B", "\u03FE"], d: ["\xD0", "\u018A", "\u0500", "\u0501", "\u0502", "\u0503"], e: [ "\xCB", "\u0115", "\u018E", "\u0258", "\u03A3", "\u03BE", "\u04BC", "\u0A6C" ], f: ["\u04FA"], g: ["\u0262"], h: ["\u0126", "\u0195", "\u04A2", "\u04BA", "\u04C7", "\u050A"], i: ["\u0F0F"], j: ["\u0134"], k: ["\u0138", "\u04A0", "\u04C3", "\u051E"], l: ["\u0139"], m: ["\u028D", "\u04CD", "\u04CE", "\u0520", "\u0521", "\u0D69"], n: ["\xD1", "\u014B", "\u019D", "\u0376", "\u03A0", "\u048A"], o: [ "\xD8", "\xF5", "\xF8", "\u01FE", "\u0298", "\u047A", "\u05DD", "\u06DD", "\u0E4F" ], p: ["\u01F7", "\u048E"], q: ["\u09CD"], r: ["\xAE", "\u01A6", "\u0210", "\u024C", "\u0280", "\u042F"], s: ["\xA7", "\u03DE", "\u03DF", "\u03E8"], t: ["\u0141", "\u0166", "\u0373"], u: ["\u01B1", "\u054D"], v: ["\u05D8"], w: ["\u0428", "\u0460", "\u047C", "\u0D70"], x: ["\u04B2", "\u04FE", "\u04FC", "\u04FD"], y: ["\xA5", "\u04B0", "\u04CB"], z: ["\u01B5", "\u0240"] }; text.forEach(function(c8) { c8 = c8.toLowerCase(); var chars = trap[c8] || [" "]; var rand = Math.floor(Math.random() * chars.length); if (typeof trap[c8] !== "undefined") { result += trap[c8][rand]; } else { result += c8; } }); return result; }, "runTheTrap"); } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/custom/zalgo.js var require_zalgo = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/custom/zalgo.js"(exports, module4) { init_import_meta_url(); module4["exports"] = /* @__PURE__ */ __name(function zalgo(text, options) { text = text || " he is here "; var soul = { "up": [ "\u030D", "\u030E", "\u0304", "\u0305", "\u033F", "\u0311", "\u0306", "\u0310", "\u0352", "\u0357", "\u0351", "\u0307", "\u0308", "\u030A", "\u0342", "\u0313", "\u0308", "\u034A", "\u034B", "\u034C", "\u0303", "\u0302", "\u030C", "\u0350", "\u0300", "\u0301", "\u030B", "\u030F", "\u0312", "\u0313", "\u0314", "\u033D", "\u0309", "\u0363", "\u0364", "\u0365", "\u0366", "\u0367", "\u0368", "\u0369", "\u036A", "\u036B", "\u036C", "\u036D", "\u036E", "\u036F", "\u033E", "\u035B", "\u0346", "\u031A" ], "down": [ "\u0316", "\u0317", "\u0318", "\u0319", "\u031C", "\u031D", "\u031E", "\u031F", "\u0320", "\u0324", "\u0325", "\u0326", "\u0329", "\u032A", "\u032B", "\u032C", "\u032D", "\u032E", "\u032F", "\u0330", "\u0331", "\u0332", "\u0333", "\u0339", "\u033A", "\u033B", "\u033C", "\u0345", "\u0347", "\u0348", "\u0349", "\u034D", "\u034E", "\u0353", "\u0354", "\u0355", "\u0356", "\u0359", "\u035A", "\u0323" ], "mid": [ "\u0315", "\u031B", "\u0300", "\u0301", "\u0358", "\u0321", "\u0322", "\u0327", "\u0328", "\u0334", "\u0335", "\u0336", "\u035C", "\u035D", "\u035E", "\u035F", "\u0360", "\u0362", "\u0338", "\u0337", "\u0361", " \u0489" ] }; var all3 = [].concat(soul.up, soul.down, soul.mid); function randomNumber(range) { var r9 = Math.floor(Math.random() * range); return r9; } __name(randomNumber, "randomNumber"); function isChar(character) { var bool = false; all3.filter(function(i7) { bool = i7 === character; }); return bool; } __name(isChar, "isChar"); function heComes(text2, options2) { var result = ""; var counts; var l8; options2 = options2 || {}; options2["up"] = typeof options2["up"] !== "undefined" ? options2["up"] : true; options2["mid"] = typeof options2["mid"] !== "undefined" ? options2["mid"] : true; options2["down"] = typeof options2["down"] !== "undefined" ? options2["down"] : true; options2["size"] = typeof options2["size"] !== "undefined" ? options2["size"] : "maxi"; text2 = text2.split(""); for (l8 in text2) { if (isChar(l8)) { continue; } result = result + text2[l8]; counts = { "up": 0, "down": 0, "mid": 0 }; switch (options2.size) { case "mini": counts.up = randomNumber(8); counts.mid = randomNumber(2); counts.down = randomNumber(8); break; case "maxi": counts.up = randomNumber(16) + 3; counts.mid = randomNumber(4) + 1; counts.down = randomNumber(64) + 3; break; default: counts.up = randomNumber(8) + 1; counts.mid = randomNumber(6) / 2; counts.down = randomNumber(8) + 1; break; } var arr = ["up", "mid", "down"]; for (var d8 in arr) { var index = arr[d8]; for (var i7 = 0; i7 <= counts[index]; i7++) { if (options2[index]) { result = result + soul[index][randomNumber(soul[index].length)]; } } } } return result; } __name(heComes, "heComes"); return heComes(text, options); }, "zalgo"); } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/america.js var require_america = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/america.js"(exports, module4) { init_import_meta_url(); module4["exports"] = function(colors) { return function(letter, i7, exploded) { if (letter === " ") return letter; switch (i7 % 3) { case 0: return colors.red(letter); case 1: return colors.white(letter); case 2: return colors.blue(letter); } }; }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/zebra.js var require_zebra = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/zebra.js"(exports, module4) { init_import_meta_url(); module4["exports"] = function(colors) { return function(letter, i7, exploded) { return i7 % 2 === 0 ? letter : colors.inverse(letter); }; }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/rainbow.js var require_rainbow = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/rainbow.js"(exports, module4) { init_import_meta_url(); module4["exports"] = function(colors) { var rainbowColors = ["red", "yellow", "green", "blue", "magenta"]; return function(letter, i7, exploded) { if (letter === " ") { return letter; } else { return colors[rainbowColors[i7++ % rainbowColors.length]](letter); } }; }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/random.js var require_random = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/maps/random.js"(exports, module4) { init_import_meta_url(); module4["exports"] = function(colors) { var available = [ "underline", "inverse", "grey", "yellow", "red", "green", "blue", "white", "cyan", "magenta", "brightYellow", "brightRed", "brightGreen", "brightBlue", "brightWhite", "brightCyan", "brightMagenta" ]; return function(letter, i7, exploded) { return letter === " " ? letter : colors[available[Math.round(Math.random() * (available.length - 2))]](letter); }; }; } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/colors.js var require_colors = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/lib/colors.js"(exports, module4) { init_import_meta_url(); var colors = {}; module4["exports"] = colors; colors.themes = {}; var util3 = __require("util"); var ansiStyles3 = colors.styles = require_styles(); var defineProps = Object.defineProperties; var newLineRegex = new RegExp(/[\r\n]+/g); colors.supportsColor = require_supports_colors().supportsColor; if (typeof colors.enabled === "undefined") { colors.enabled = colors.supportsColor() !== false; } colors.enable = function() { colors.enabled = true; }; colors.disable = function() { colors.enabled = false; }; colors.stripColors = colors.strip = function(str) { return ("" + str).replace(/\x1B\[\d+m/g, ""); }; colors.stylize = /* @__PURE__ */ __name(function stylize2(str, style) { if (!colors.enabled) { return str + ""; } var styleMap = ansiStyles3[style]; if (!styleMap && style in colors) { return colors[style](str); } return styleMap.open + str + styleMap.close; }, "stylize"); var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; var escapeStringRegexp = /* @__PURE__ */ __name(function(str) { if (typeof str !== "string") { throw new TypeError("Expected a string"); } return str.replace(matchOperatorsRe, "\\$&"); }, "escapeStringRegexp"); function build5(_styles) { var builder = /* @__PURE__ */ __name(function builder2() { return applyStyle2.apply(builder2, arguments); }, "builder"); builder._styles = _styles; builder.__proto__ = proto2; return builder; } __name(build5, "build"); var styles4 = function() { var ret = {}; ansiStyles3.grey = ansiStyles3.gray; Object.keys(ansiStyles3).forEach(function(key) { ansiStyles3[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles3[key].close), "g"); ret[key] = { get: /* @__PURE__ */ __name(function() { return build5(this._styles.concat(key)); }, "get") }; }); return ret; }(); var proto2 = defineProps(/* @__PURE__ */ __name(function colors2() { }, "colors"), styles4); function applyStyle2() { var args = Array.prototype.slice.call(arguments); var str = args.map(function(arg) { if (arg != null && arg.constructor === String) { return arg; } else { return util3.inspect(arg); } }).join(" "); if (!colors.enabled || !str) { return str; } var newLinesPresent = str.indexOf("\n") != -1; var nestedStyles = this._styles; var i7 = nestedStyles.length; while (i7--) { var code = ansiStyles3[nestedStyles[i7]]; str = code.open + str.replace(code.closeRe, code.open) + code.close; if (newLinesPresent) { str = str.replace(newLineRegex, function(match3) { return code.close + match3 + code.open; }); } } return str; } __name(applyStyle2, "applyStyle"); colors.setTheme = function(theme) { if (typeof theme === "string") { console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));"); return; } for (var style in theme) { (function(style2) { colors[style2] = function(str) { if (typeof theme[style2] === "object") { var out = str; for (var i7 in theme[style2]) { out = colors[theme[style2][i7]](out); } return out; } return colors[theme[style2]](str); }; })(style); } }; function init4() { var ret = {}; Object.keys(styles4).forEach(function(name2) { ret[name2] = { get: /* @__PURE__ */ __name(function() { return build5([name2]); }, "get") }; }); return ret; } __name(init4, "init"); var sequencer = /* @__PURE__ */ __name(function sequencer2(map3, str) { var exploded = str.split(""); exploded = exploded.map(map3); return exploded.join(""); }, "sequencer"); colors.trap = require_trap(); colors.zalgo = require_zalgo(); colors.maps = {}; colors.maps.america = require_america()(colors); colors.maps.zebra = require_zebra()(colors); colors.maps.rainbow = require_rainbow()(colors); colors.maps.random = require_random()(colors); for (map2 in colors.maps) { (function(map3) { colors[map3] = function(str) { return sequencer(colors.maps[map3], str); }; })(map2); } var map2; defineProps(colors, init4()); } }); // ../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/safe.js var require_safe = __commonJS({ "../../node_modules/.pnpm/@colors+colors@1.5.0/node_modules/@colors/colors/safe.js"(exports, module4) { init_import_meta_url(); var colors = require_colors(); module4["exports"] = colors; } }); // ../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/cell.js var require_cell = __commonJS({ "../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/cell.js"(exports, module4) { init_import_meta_url(); var { info, debug: debug2 } = require_debug(); var utils = require_utils2(); var Cell = class _Cell { static { __name(this, "Cell"); } /** * A representation of a cell within the table. * Implementations must have `init` and `draw` methods, * as well as `colSpan`, `rowSpan`, `desiredHeight` and `desiredWidth` properties. * @param options * @constructor */ constructor(options) { this.setOptions(options); this.x = null; this.y = null; } setOptions(options) { if (["boolean", "number", "string"].indexOf(typeof options) !== -1) { options = { content: "" + options }; } options = options || {}; this.options = options; let content = options.content; if (["boolean", "number", "string"].indexOf(typeof content) !== -1) { this.content = String(content); } else if (!content) { this.content = this.options.href || ""; } else { throw new Error("Content needs to be a primitive, got: " + typeof content); } this.colSpan = options.colSpan || 1; this.rowSpan = options.rowSpan || 1; if (this.options.href) { Object.defineProperty(this, "href", { get() { return this.options.href; } }); } } mergeTableOptions(tableOptions, cells) { this.cells = cells; let optionsChars = this.options.chars || {}; let tableChars = tableOptions.chars; let chars = this.chars = {}; CHAR_NAMES.forEach(function(name2) { setOption(optionsChars, tableChars, name2, chars); }); this.truncate = this.options.truncate || tableOptions.truncate; let style = this.options.style = this.options.style || {}; let tableStyle = tableOptions.style; setOption(style, tableStyle, "padding-left", this); setOption(style, tableStyle, "padding-right", this); this.head = style.head || tableStyle.head; this.border = style.border || tableStyle.border; this.fixedWidth = tableOptions.colWidths[this.x]; this.lines = this.computeLines(tableOptions); this.desiredWidth = utils.strlen(this.content) + this.paddingLeft + this.paddingRight; this.desiredHeight = this.lines.length; } computeLines(tableOptions) { const tableWordWrap = tableOptions.wordWrap || tableOptions.textWrap; const { wordWrap = tableWordWrap } = this.options; if (this.fixedWidth && wordWrap) { this.fixedWidth -= this.paddingLeft + this.paddingRight; if (this.colSpan) { let i7 = 1; while (i7 < this.colSpan) { this.fixedWidth += tableOptions.colWidths[this.x + i7]; i7++; } } const { wrapOnWordBoundary: tableWrapOnWordBoundary = true } = tableOptions; const { wrapOnWordBoundary = tableWrapOnWordBoundary } = this.options; return this.wrapLines(utils.wordWrap(this.fixedWidth, this.content, wrapOnWordBoundary)); } return this.wrapLines(this.content.split("\n")); } wrapLines(computedLines) { const lines = utils.colorizeLines(computedLines); if (this.href) { return lines.map((line) => utils.hyperlink(this.href, line)); } return lines; } /** * Initializes the Cells data structure. * * @param tableOptions - A fully populated set of tableOptions. * In addition to the standard default values, tableOptions must have fully populated the * `colWidths` and `rowWidths` arrays. Those arrays must have lengths equal to the number * of columns or rows (respectively) in this table, and each array item must be a Number. * */ init(tableOptions) { let x7 = this.x; let y5 = this.y; this.widths = tableOptions.colWidths.slice(x7, x7 + this.colSpan); this.heights = tableOptions.rowHeights.slice(y5, y5 + this.rowSpan); this.width = this.widths.reduce(sumPlusOne, -1); this.height = this.heights.reduce(sumPlusOne, -1); this.hAlign = this.options.hAlign || tableOptions.colAligns[x7]; this.vAlign = this.options.vAlign || tableOptions.rowAligns[y5]; this.drawRight = x7 + this.colSpan == tableOptions.colWidths.length; } /** * Draws the given line of the cell. * This default implementation defers to methods `drawTop`, `drawBottom`, `drawLine` and `drawEmpty`. * @param lineNum - can be `top`, `bottom` or a numerical line number. * @param spanningCell - will be a number if being called from a RowSpanCell, and will represent how * many rows below it's being called from. Otherwise it's undefined. * @returns {String} The representation of this line. */ draw(lineNum, spanningCell) { if (lineNum == "top") return this.drawTop(this.drawRight); if (lineNum == "bottom") return this.drawBottom(this.drawRight); let content = utils.truncate(this.content, 10, this.truncate); if (!lineNum) { info(`${this.y}-${this.x}: ${this.rowSpan - lineNum}x${this.colSpan} Cell ${content}`); } let padLen = Math.max(this.height - this.lines.length, 0); let padTop; switch (this.vAlign) { case "center": padTop = Math.ceil(padLen / 2); break; case "bottom": padTop = padLen; break; default: padTop = 0; } if (lineNum < padTop || lineNum >= padTop + this.lines.length) { return this.drawEmpty(this.drawRight, spanningCell); } let forceTruncation = this.lines.length > this.height && lineNum + 1 >= this.height; return this.drawLine(lineNum - padTop, this.drawRight, forceTruncation, spanningCell); } /** * Renders the top line of the cell. * @param drawRight - true if this method should render the right edge of the cell. * @returns {String} */ drawTop(drawRight) { let content = []; if (this.cells) { this.widths.forEach(function(width, index) { content.push(this._topLeftChar(index)); content.push(utils.repeat(this.chars[this.y == 0 ? "top" : "mid"], width)); }, this); } else { content.push(this._topLeftChar(0)); content.push(utils.repeat(this.chars[this.y == 0 ? "top" : "mid"], this.width)); } if (drawRight) { content.push(this.chars[this.y == 0 ? "topRight" : "rightMid"]); } return this.wrapWithStyleColors("border", content.join("")); } _topLeftChar(offset) { let x7 = this.x + offset; let leftChar; if (this.y == 0) { leftChar = x7 == 0 ? "topLeft" : offset == 0 ? "topMid" : "top"; } else { if (x7 == 0) { leftChar = "leftMid"; } else { leftChar = offset == 0 ? "midMid" : "bottomMid"; if (this.cells) { let spanAbove = this.cells[this.y - 1][x7] instanceof _Cell.ColSpanCell; if (spanAbove) { leftChar = offset == 0 ? "topMid" : "mid"; } if (offset == 0) { let i7 = 1; while (this.cells[this.y][x7 - i7] instanceof _Cell.ColSpanCell) { i7++; } if (this.cells[this.y][x7 - i7] instanceof _Cell.RowSpanCell) { leftChar = "leftMid"; } } } } } return this.chars[leftChar]; } wrapWithStyleColors(styleProperty, content) { if (this[styleProperty] && this[styleProperty].length) { try { let colors = require_safe(); for (let i7 = this[styleProperty].length - 1; i7 >= 0; i7--) { colors = colors[this[styleProperty][i7]]; } return colors(content); } catch (e9) { return content; } } else { return content; } } /** * Renders a line of text. * @param lineNum - Which line of text to render. This is not necessarily the line within the cell. * There may be top-padding above the first line of text. * @param drawRight - true if this method should render the right edge of the cell. * @param forceTruncationSymbol - `true` if the rendered text should end with the truncation symbol even * if the text fits. This is used when the cell is vertically truncated. If `false` the text should * only include the truncation symbol if the text will not fit horizontally within the cell width. * @param spanningCell - a number of if being called from a RowSpanCell. (how many rows below). otherwise undefined. * @returns {String} */ drawLine(lineNum, drawRight, forceTruncationSymbol, spanningCell) { let left2 = this.chars[this.x == 0 ? "left" : "middle"]; if (this.x && spanningCell && this.cells) { let cellLeft = this.cells[this.y + spanningCell][this.x - 1]; while (cellLeft instanceof ColSpanCell) { cellLeft = this.cells[cellLeft.y][cellLeft.x - 1]; } if (!(cellLeft instanceof RowSpanCell)) { left2 = this.chars["rightMid"]; } } let leftPadding = utils.repeat(" ", this.paddingLeft); let right2 = drawRight ? this.chars["right"] : ""; let rightPadding = utils.repeat(" ", this.paddingRight); let line = this.lines[lineNum]; let len = this.width - (this.paddingLeft + this.paddingRight); if (forceTruncationSymbol) line += this.truncate || "\u2026"; let content = utils.truncate(line, len, this.truncate); content = utils.pad(content, len, " ", this.hAlign); content = leftPadding + content + rightPadding; return this.stylizeLine(left2, content, right2); } stylizeLine(left2, content, right2) { left2 = this.wrapWithStyleColors("border", left2); right2 = this.wrapWithStyleColors("border", right2); if (this.y === 0) { content = this.wrapWithStyleColors("head", content); } return left2 + content + right2; } /** * Renders the bottom line of the cell. * @param drawRight - true if this method should render the right edge of the cell. * @returns {String} */ drawBottom(drawRight) { let left2 = this.chars[this.x == 0 ? "bottomLeft" : "bottomMid"]; let content = utils.repeat(this.chars.bottom, this.width); let right2 = drawRight ? this.chars["bottomRight"] : ""; return this.wrapWithStyleColors("border", left2 + content + right2); } /** * Renders a blank line of text within the cell. Used for top and/or bottom padding. * @param drawRight - true if this method should render the right edge of the cell. * @param spanningCell - a number of if being called from a RowSpanCell. (how many rows below). otherwise undefined. * @returns {String} */ drawEmpty(drawRight, spanningCell) { let left2 = this.chars[this.x == 0 ? "left" : "middle"]; if (this.x && spanningCell && this.cells) { let cellLeft = this.cells[this.y + spanningCell][this.x - 1]; while (cellLeft instanceof ColSpanCell) { cellLeft = this.cells[cellLeft.y][cellLeft.x - 1]; } if (!(cellLeft instanceof RowSpanCell)) { left2 = this.chars["rightMid"]; } } let right2 = drawRight ? this.chars["right"] : ""; let content = utils.repeat(" ", this.width); return this.stylizeLine(left2, content, right2); } }; var ColSpanCell = class { static { __name(this, "ColSpanCell"); } /** * A Cell that doesn't do anything. It just draws empty lines. * Used as a placeholder in column spanning. * @constructor */ constructor() { } draw(lineNum) { if (typeof lineNum === "number") { debug2(`${this.y}-${this.x}: 1x1 ColSpanCell`); } return ""; } init() { } mergeTableOptions() { } }; var RowSpanCell = class { static { __name(this, "RowSpanCell"); } /** * A placeholder Cell for a Cell that spans multiple rows. * It delegates rendering to the original cell, but adds the appropriate offset. * @param originalCell * @constructor */ constructor(originalCell) { this.originalCell = originalCell; } init(tableOptions) { let y5 = this.y; let originalY = this.originalCell.y; this.cellOffset = y5 - originalY; this.offset = findDimension(tableOptions.rowHeights, originalY, this.cellOffset); } draw(lineNum) { if (lineNum == "top") { return this.originalCell.draw(this.offset, this.cellOffset); } if (lineNum == "bottom") { return this.originalCell.draw("bottom"); } debug2(`${this.y}-${this.x}: 1x${this.colSpan} RowSpanCell for ${this.originalCell.content}`); return this.originalCell.draw(this.offset + 1 + lineNum); } mergeTableOptions() { } }; function firstDefined(...args) { return args.filter((v8) => v8 !== void 0 && v8 !== null).shift(); } __name(firstDefined, "firstDefined"); function setOption(objA, objB, nameB, targetObj) { let nameA = nameB.split("-"); if (nameA.length > 1) { nameA[1] = nameA[1].charAt(0).toUpperCase() + nameA[1].substr(1); nameA = nameA.join(""); targetObj[nameA] = firstDefined(objA[nameA], objA[nameB], objB[nameA], objB[nameB]); } else { targetObj[nameB] = firstDefined(objA[nameB], objB[nameB]); } } __name(setOption, "setOption"); function findDimension(dimensionTable, startingIndex, span) { let ret = dimensionTable[startingIndex]; for (let i7 = 1; i7 < span; i7++) { ret += 1 + dimensionTable[startingIndex + i7]; } return ret; } __name(findDimension, "findDimension"); function sumPlusOne(a7, b11) { return a7 + b11 + 1; } __name(sumPlusOne, "sumPlusOne"); var CHAR_NAMES = [ "top", "top-mid", "top-left", "top-right", "bottom", "bottom-mid", "bottom-left", "bottom-right", "left", "left-mid", "mid", "mid-mid", "right", "right-mid", "middle" ]; module4.exports = Cell; module4.exports.ColSpanCell = ColSpanCell; module4.exports.RowSpanCell = RowSpanCell; } }); // ../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/layout-manager.js var require_layout_manager = __commonJS({ "../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/layout-manager.js"(exports, module4) { init_import_meta_url(); var { warn: warn2, debug: debug2 } = require_debug(); var Cell = require_cell(); var { ColSpanCell, RowSpanCell } = Cell; (function() { function next(alloc, col) { if (alloc[col] > 0) { return next(alloc, col + 1); } return col; } __name(next, "next"); function layoutTable(table) { let alloc = {}; table.forEach(function(row, rowIndex) { let col = 0; row.forEach(function(cell) { cell.y = rowIndex; cell.x = rowIndex ? next(alloc, col) : col; const rowSpan = cell.rowSpan || 1; const colSpan = cell.colSpan || 1; if (rowSpan > 1) { for (let cs2 = 0; cs2 < colSpan; cs2++) { alloc[cell.x + cs2] = rowSpan; } } col = cell.x + colSpan; }); Object.keys(alloc).forEach((idx) => { alloc[idx]--; if (alloc[idx] < 1) delete alloc[idx]; }); }); } __name(layoutTable, "layoutTable"); function maxWidth(table) { let mw = 0; table.forEach(function(row) { row.forEach(function(cell) { mw = Math.max(mw, cell.x + (cell.colSpan || 1)); }); }); return mw; } __name(maxWidth, "maxWidth"); function maxHeight(table) { return table.length; } __name(maxHeight, "maxHeight"); function cellsConflict(cell1, cell2) { let yMin1 = cell1.y; let yMax1 = cell1.y - 1 + (cell1.rowSpan || 1); let yMin2 = cell2.y; let yMax2 = cell2.y - 1 + (cell2.rowSpan || 1); let yConflict = !(yMin1 > yMax2 || yMin2 > yMax1); let xMin1 = cell1.x; let xMax1 = cell1.x - 1 + (cell1.colSpan || 1); let xMin2 = cell2.x; let xMax2 = cell2.x - 1 + (cell2.colSpan || 1); let xConflict = !(xMin1 > xMax2 || xMin2 > xMax1); return yConflict && xConflict; } __name(cellsConflict, "cellsConflict"); function conflictExists(rows, x7, y5) { let i_max = Math.min(rows.length - 1, y5); let cell = { x: x7, y: y5 }; for (let i7 = 0; i7 <= i_max; i7++) { let row = rows[i7]; for (let j7 = 0; j7 < row.length; j7++) { if (cellsConflict(cell, row[j7])) { return true; } } } return false; } __name(conflictExists, "conflictExists"); function allBlank(rows, y5, xMin, xMax) { for (let x7 = xMin; x7 < xMax; x7++) { if (conflictExists(rows, x7, y5)) { return false; } } return true; } __name(allBlank, "allBlank"); function addRowSpanCells(table) { table.forEach(function(row, rowIndex) { row.forEach(function(cell) { for (let i7 = 1; i7 < cell.rowSpan; i7++) { let rowSpanCell = new RowSpanCell(cell); rowSpanCell.x = cell.x; rowSpanCell.y = cell.y + i7; rowSpanCell.colSpan = cell.colSpan; insertCell(rowSpanCell, table[rowIndex + i7]); } }); }); } __name(addRowSpanCells, "addRowSpanCells"); function addColSpanCells(cellRows) { for (let rowIndex = cellRows.length - 1; rowIndex >= 0; rowIndex--) { let cellColumns = cellRows[rowIndex]; for (let columnIndex = 0; columnIndex < cellColumns.length; columnIndex++) { let cell = cellColumns[columnIndex]; for (let k7 = 1; k7 < cell.colSpan; k7++) { let colSpanCell = new ColSpanCell(); colSpanCell.x = cell.x + k7; colSpanCell.y = cell.y; cellColumns.splice(columnIndex + 1, 0, colSpanCell); } } } } __name(addColSpanCells, "addColSpanCells"); function insertCell(cell, row) { let x7 = 0; while (x7 < row.length && row[x7].x < cell.x) { x7++; } row.splice(x7, 0, cell); } __name(insertCell, "insertCell"); function fillInTable(table) { let h_max = maxHeight(table); let w_max = maxWidth(table); debug2(`Max rows: ${h_max}; Max cols: ${w_max}`); for (let y5 = 0; y5 < h_max; y5++) { for (let x7 = 0; x7 < w_max; x7++) { if (!conflictExists(table, x7, y5)) { let opts = { x: x7, y: y5, colSpan: 1, rowSpan: 1 }; x7++; while (x7 < w_max && !conflictExists(table, x7, y5)) { opts.colSpan++; x7++; } let y22 = y5 + 1; while (y22 < h_max && allBlank(table, y22, opts.x, opts.x + opts.colSpan)) { opts.rowSpan++; y22++; } let cell = new Cell(opts); cell.x = opts.x; cell.y = opts.y; warn2(`Missing cell at ${cell.y}-${cell.x}.`); insertCell(cell, table[y5]); } } } } __name(fillInTable, "fillInTable"); function generateCells(rows) { return rows.map(function(row) { if (!Array.isArray(row)) { let key = Object.keys(row)[0]; row = row[key]; if (Array.isArray(row)) { row = row.slice(); row.unshift(key); } else { row = [key, row]; } } return row.map(function(cell) { return new Cell(cell); }); }); } __name(generateCells, "generateCells"); function makeTableLayout(rows) { let cellRows = generateCells(rows); layoutTable(cellRows); fillInTable(cellRows); addRowSpanCells(cellRows); addColSpanCells(cellRows); return cellRows; } __name(makeTableLayout, "makeTableLayout"); module4.exports = { makeTableLayout, layoutTable, addRowSpanCells, maxWidth, fillInTable, computeWidths: makeComputeWidths("colSpan", "desiredWidth", "x", 1), computeHeights: makeComputeWidths("rowSpan", "desiredHeight", "y", 1) }; })(); function makeComputeWidths(colSpan, desiredWidth, x7, forcedMin) { return function(vals, table) { let result = []; let spanners = []; let auto2 = {}; table.forEach(function(row) { row.forEach(function(cell) { if ((cell[colSpan] || 1) > 1) { spanners.push(cell); } else { result[cell[x7]] = Math.max(result[cell[x7]] || 0, cell[desiredWidth] || 0, forcedMin); } }); }); vals.forEach(function(val2, index) { if (typeof val2 === "number") { result[index] = val2; } }); for (let k7 = spanners.length - 1; k7 >= 0; k7--) { let cell = spanners[k7]; let span = cell[colSpan]; let col = cell[x7]; let existingWidth = result[col]; let editableCols = typeof vals[col] === "number" ? 0 : 1; if (typeof existingWidth === "number") { for (let i7 = 1; i7 < span; i7++) { existingWidth += 1 + result[col + i7]; if (typeof vals[col + i7] !== "number") { editableCols++; } } } else { existingWidth = desiredWidth === "desiredWidth" ? cell.desiredWidth - 1 : 1; if (!auto2[col] || auto2[col] < existingWidth) { auto2[col] = existingWidth; } } if (cell[desiredWidth] > existingWidth) { let i7 = 0; while (editableCols > 0 && cell[desiredWidth] > existingWidth) { if (typeof vals[col + i7] !== "number") { let dif = Math.round((cell[desiredWidth] - existingWidth) / editableCols); existingWidth += dif; result[col + i7] += dif; editableCols--; } i7++; } } } Object.assign(vals, result, auto2); for (let j7 = 0; j7 < vals.length; j7++) { vals[j7] = Math.max(forcedMin, vals[j7] || 0); } }; } __name(makeComputeWidths, "makeComputeWidths"); } }); // ../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/table.js var require_table = __commonJS({ "../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/src/table.js"(exports, module4) { init_import_meta_url(); var debug2 = require_debug(); var utils = require_utils2(); var tableLayout = require_layout_manager(); var Table = class extends Array { static { __name(this, "Table"); } constructor(opts) { super(); const options = utils.mergeOptions(opts); Object.defineProperty(this, "options", { value: options, enumerable: options.debug }); if (options.debug) { switch (typeof options.debug) { case "boolean": debug2.setDebugLevel(debug2.WARN); break; case "number": debug2.setDebugLevel(options.debug); break; case "string": debug2.setDebugLevel(parseInt(options.debug, 10)); break; default: debug2.setDebugLevel(debug2.WARN); debug2.warn(`Debug option is expected to be boolean, number, or string. Received a ${typeof options.debug}`); } Object.defineProperty(this, "messages", { get() { return debug2.debugMessages(); } }); } } toString() { let array = this; let headersPresent = this.options.head && this.options.head.length; if (headersPresent) { array = [this.options.head]; if (this.length) { array.push.apply(array, this); } } else { this.options.style.head = []; } let cells = tableLayout.makeTableLayout(array); cells.forEach(function(row) { row.forEach(function(cell) { cell.mergeTableOptions(this.options, cells); }, this); }, this); tableLayout.computeWidths(this.options.colWidths, cells); tableLayout.computeHeights(this.options.rowHeights, cells); cells.forEach(function(row) { row.forEach(function(cell) { cell.init(this.options); }, this); }, this); let result = []; for (let rowIndex = 0; rowIndex < cells.length; rowIndex++) { let row = cells[rowIndex]; let heightOfRow = this.options.rowHeights[rowIndex]; if (rowIndex === 0 || !this.options.style.compact || rowIndex == 1 && headersPresent) { doDraw(row, "top", result); } for (let lineNum = 0; lineNum < heightOfRow; lineNum++) { doDraw(row, lineNum, result); } if (rowIndex + 1 == cells.length) { doDraw(row, "bottom", result); } } return result.join("\n"); } get width() { let str = this.toString().split("\n"); return str[0].length; } }; Table.reset = () => debug2.reset(); function doDraw(row, lineNum, result) { let line = []; row.forEach(function(cell) { line.push(cell.draw(lineNum)); }); let str = line.join(""); if (str.length) result.push(str); } __name(doDraw, "doDraw"); module4.exports = Table; } }); // ../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/index.js var require_cli_table3 = __commonJS({ "../../node_modules/.pnpm/cli-table3@0.6.3/node_modules/cli-table3/index.js"(exports, module4) { init_import_meta_url(); module4.exports = require_table(); } }); function formatMessage({ text, notes, location, kind: kind2 = "error" }, color = true) { const input = { text, notes, location }; delete input.location?.fileText; for (const note of notes ?? []) { delete note.location?.fileText; } const lines = esbuild.formatMessagesSync([input], { color, kind: kind2, terminalWidth: logger.columns }); return lines.join("\n"); } var init_format_message = __esm({ "src/utils/format-message.ts"() { init_import_meta_url(); init_logger(); __name(formatMessage, "formatMessage"); } }); // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js var require_signals = __commonJS({ "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js"(exports, module4) { init_import_meta_url(); module4.exports = [ "SIGABRT", "SIGALRM", "SIGHUP", "SIGINT", "SIGTERM" ]; if (process.platform !== "win32") { module4.exports.push( "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT" // should detect profiler and enable/disable accordingly. // see #21 // 'SIGPROF' ); } if (process.platform === "linux") { module4.exports.push( "SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT", "SIGUNUSED" ); } } }); // ../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js var require_signal_exit = __commonJS({ "../../node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js"(exports, module4) { init_import_meta_url(); var process12 = global.process; var processOk = /* @__PURE__ */ __name(function(process13) { return process13 && typeof process13 === "object" && typeof process13.removeListener === "function" && typeof process13.emit === "function" && typeof process13.reallyExit === "function" && typeof process13.listeners === "function" && typeof process13.kill === "function" && typeof process13.pid === "number" && typeof process13.on === "function"; }, "processOk"); if (!processOk(process12)) { module4.exports = function() { return function() { }; }; } else { assert58 = __require("assert"); signals = require_signals(); isWin = /^win/i.test(process12.platform); EE = __require("events"); if (typeof EE !== "function") { EE = EE.EventEmitter; } if (process12.__signal_exit_emitter__) { emitter = process12.__signal_exit_emitter__; } else { emitter = process12.__signal_exit_emitter__ = new EE(); emitter.count = 0; emitter.emitted = {}; } if (!emitter.infinite) { emitter.setMaxListeners(Infinity); emitter.infinite = true; } module4.exports = function(cb2, opts) { if (!processOk(global.process)) { return function() { }; } assert58.equal(typeof cb2, "function", "a callback must be provided for exit handler"); if (loaded === false) { load(); } var ev = "exit"; if (opts && opts.alwaysLast) { ev = "afterexit"; } var remove = /* @__PURE__ */ __name(function() { emitter.removeListener(ev, cb2); if (emitter.listeners("exit").length === 0 && emitter.listeners("afterexit").length === 0) { unload(); } }, "remove"); emitter.on(ev, cb2); return remove; }; unload = /* @__PURE__ */ __name(function unload2() { if (!loaded || !processOk(global.process)) { return; } loaded = false; signals.forEach(function(sig) { try { process12.removeListener(sig, sigListeners[sig]); } catch (er2) { } }); process12.emit = originalProcessEmit; process12.reallyExit = originalProcessReallyExit; emitter.count -= 1; }, "unload"); module4.exports.unload = unload; emit = /* @__PURE__ */ __name(function emit2(event, code, signal) { if (emitter.emitted[event]) { return; } emitter.emitted[event] = true; emitter.emit(event, code, signal); }, "emit"); sigListeners = {}; signals.forEach(function(sig) { sigListeners[sig] = /* @__PURE__ */ __name(function listener() { if (!processOk(global.process)) { return; } var listeners = process12.listeners(sig); if (listeners.length === emitter.count) { unload(); emit("exit", null, sig); emit("afterexit", null, sig); if (isWin && sig === "SIGHUP") { sig = "SIGINT"; } process12.kill(process12.pid, sig); } }, "listener"); }); module4.exports.signals = function() { return signals; }; loaded = false; load = /* @__PURE__ */ __name(function load2() { if (loaded || !processOk(global.process)) { return; } loaded = true; emitter.count += 1; signals = signals.filter(function(sig) { try { process12.on(sig, sigListeners[sig]); return true; } catch (er2) { return false; } }); process12.emit = processEmit; process12.reallyExit = processReallyExit; }, "load"); module4.exports.load = load; originalProcessReallyExit = process12.reallyExit; processReallyExit = /* @__PURE__ */ __name(function processReallyExit2(code) { if (!processOk(global.process)) { return; } process12.exitCode = code || /* istanbul ignore next */ 0; emit("exit", process12.exitCode, null); emit("afterexit", process12.exitCode, null); originalProcessReallyExit.call(process12, process12.exitCode); }, "processReallyExit"); originalProcessEmit = process12.emit; processEmit = /* @__PURE__ */ __name(function processEmit2(ev, arg) { if (ev === "exit" && processOk(global.process)) { if (arg !== void 0) { process12.exitCode = arg; } var ret = originalProcessEmit.apply(this, arguments); emit("exit", process12.exitCode, null); emit("afterexit", process12.exitCode, null); return ret; } else { return originalProcessEmit.apply(this, arguments); } }, "processEmit"); } var assert58; var signals; var isWin; var EE; var emitter; var unload; var emit; var sigListeners; var loaded; var load; var originalProcessReallyExit; var processReallyExit; var originalProcessEmit; var processEmit; } }); async function ensureDirectoryExists(filepath) { const dirpath = path3__namespace.default.dirname(filepath); await fs12.mkdir(dirpath, { recursive: true }); } function ensureDirectoryExistsSync(filepath) { const dirpath = path3__namespace.default.dirname(filepath); fs23.mkdirSync(dirpath, { recursive: true }); } var init_filesystem = __esm({ "src/utils/filesystem.ts"() { init_import_meta_url(); __name(ensureDirectoryExists, "ensureDirectoryExists"); __name(ensureDirectoryExistsSync, "ensureDirectoryExistsSync"); } }); function getDebugFilepath() { const dir2 = getDebugFileDir(); const date = (/* @__PURE__ */ new Date()).toISOString().replaceAll(":", "-").replace(".", "_").replace("T", "_").replace("Z", ""); const filepath = dir2.endsWith(".log") ? dir2 : path3__namespace.default.join(dir2, `wrangler-${date}.log`); return path3__namespace.default.resolve(filepath); } async function appendToDebugLogFile(messageLevel, message) { const entry = ` --- ${(/* @__PURE__ */ new Date()).toISOString()} ${messageLevel} ${util2.stripVTControlCharacters(message)} --- `; if (!hasLoggedLocation) { hasLoggedLocation = true; logger.debug(`\u{1FAB5} Writing logs to "${debugLogFilepath}"`); (0, import_signal_exit.default)(() => { if (hasSeenErrorMessage) { logger.console( "warn", `\u{1FAB5} Logs were written to "${debugLogFilepath}"` ); } }); } if (!hasSeenErrorMessage) { hasSeenErrorMessage = messageLevel === "error"; } await mutex.runWith(async () => { try { await ensureDirectoryExists(debugLogFilepath); await fs12.appendFile(debugLogFilepath, entry); } catch (err) { if (!hasLoggedError) { hasLoggedError = true; logger.error(`Failed to write to log file`, err); logger.error(`Would have written:`, entry); } } }); } var import_signal_exit, getDebugFileDir, debugLogFilepath, mutex, hasLoggedLocation, hasLoggedError, hasSeenErrorMessage; var init_log_file = __esm({ "src/utils/log-file.ts"() { init_import_meta_url(); init_dist(); import_signal_exit = __toESM(require_signal_exit()); init_logger(); init_filesystem(); getDebugFileDir = getEnvironmentVariableFactory({ variableName: "WRANGLER_LOG_PATH", defaultValue() { const gobalWranglerConfigDir = getGlobalWranglerConfigPath(); return path3__namespace.default.join(gobalWranglerConfigDir, "logs"); } }); __name(getDebugFilepath, "getDebugFilepath"); debugLogFilepath = getDebugFilepath(); mutex = new miniflare.Mutex(); hasLoggedLocation = false; hasLoggedError = false; hasSeenErrorMessage = false; __name(appendToDebugLogFile, "appendToDebugLogFile"); } }); function getLoggerLevel() { const fromEnv3 = getLogLevelFromEnv()?.toLowerCase(); if (fromEnv3 !== void 0) { if (fromEnv3 in LOGGER_LEVELS) { return fromEnv3; } const expected = Object.keys(LOGGER_LEVELS).map((level) => `"${level}"`).join(" | "); logger.once.warn( `Unrecognised WRANGLER_LOG value ${JSON.stringify( fromEnv3 )}, expected ${expected}, defaulting to "log"...` ); } return "log"; } function consoleMethodToLoggerLevel(method) { if (method in LOGGER_LEVELS) { return method; } return "log"; } function logBuildWarnings(warnings) { const logs = esbuild.formatMessagesSync(warnings, { kind: "warning", color: true }); for (const log2 of logs) { logger.console("warn", log2); } } function logBuildFailure(errors, warnings) { if (errors.length > 0) { const logs = esbuild.formatMessagesSync(errors, { kind: "error", color: true }); const errorStr = errors.length > 1 ? "errors" : "error"; logger.error( `Build failed with ${errors.length} ${errorStr}: ` + logs.join("\n") ); } logBuildWarnings(warnings); } var import_cli_table3, LOGGER_LEVELS, LOGGER_LEVEL_FORMAT_TYPE_MAP, getLogLevelFromEnv, overrideLoggerLevel, runWithLogLevel, Logger, logger; var init_logger = __esm({ "src/logger.ts"() { init_import_meta_url(); init_dist(); init_source(); import_cli_table3 = __toESM(require_cli_table3()); init_format_message(); init_log_file(); LOGGER_LEVELS = { none: -1, error: 0, warn: 1, info: 2, log: 3, debug: 4 }; LOGGER_LEVEL_FORMAT_TYPE_MAP = { error: "error", warn: "warning", info: void 0, log: void 0, debug: void 0 }; getLogLevelFromEnv = getEnvironmentVariableFactory({ variableName: "WRANGLER_LOG" }); __name(getLoggerLevel, "getLoggerLevel"); overrideLoggerLevel = new async_hooks.AsyncLocalStorage(); runWithLogLevel = /* @__PURE__ */ __name((overrideLogLevel, cb2) => overrideLoggerLevel.run({ logLevel: overrideLogLevel }, cb2), "runWithLogLevel"); __name(consoleMethodToLoggerLevel, "consoleMethodToLoggerLevel"); Logger = class _Logger { static { __name(this, "Logger"); } constructor() { } overrideLoggerLevel; onceHistory = /* @__PURE__ */ new Set(); get loggerLevel() { return overrideLoggerLevel.getStore()?.logLevel ?? this.overrideLoggerLevel ?? getLoggerLevel(); } set loggerLevel(val2) { this.overrideLoggerLevel = val2; } resetLoggerLevel() { this.overrideLoggerLevel = void 0; } columns = process.stdout.columns; json = /* @__PURE__ */ __name((data) => { console.log(JSON.stringify(data, null, 4)); }, "json"); debug = /* @__PURE__ */ __name((...args) => this.doLog("debug", args), "debug"); debugWithSanitization = /* @__PURE__ */ __name((label, ...args) => { if (getSanitizeLogs()) { this.doLog("debug", [ label, "omitted; set WRANGLER_LOG_SANITIZE=false to include sanitized data" ]); } else { this.doLog("debug", [label, ...args]); } }, "debugWithSanitization"); info = /* @__PURE__ */ __name((...args) => this.doLog("info", args), "info"); log = /* @__PURE__ */ __name((...args) => this.doLog("log", args), "log"); warn = /* @__PURE__ */ __name((...args) => this.doLog("warn", args), "warn"); error(...args) { if (args.length === 1 && args[0] instanceof ParseError) { this.doLog("error", formatMessage(args[0])); } else { this.doLog("error", args); } } table(data, options) { const derivedHead = data.length === 0 ? [] : Object.keys(data[0]); const wordWrap = options?.wordWrap ?? false; const head = options?.head ?? derivedHead; const tableOptions = { style: { head: source_default.level ? ["blue"] : [], border: source_default.level ? ["gray"] : [] }, wordWrap, head }; const t12 = new import_cli_table3.default(tableOptions); t12.push(...data.map((row) => head.map((k7) => row[k7]))); return this.doLog("log", [t12.toString()]); } console(method, ...args) { if (typeof console[method] !== "function") { throw new Error(`console.${method}() is not a function`); } if (LOGGER_LEVELS[this.loggerLevel] >= LOGGER_LEVELS[consoleMethodToLoggerLevel(method)]) { _Logger.#beforeLogHook?.(); console[method].apply(console, args); _Logger.#afterLogHook?.(); } } get once() { return { info: /* @__PURE__ */ __name((...args) => this.doLogOnce("info", args), "info"), log: /* @__PURE__ */ __name((...args) => this.doLogOnce("log", args), "log"), warn: /* @__PURE__ */ __name((...args) => this.doLogOnce("warn", args), "warn"), error: /* @__PURE__ */ __name((...args) => this.doLogOnce("error", args), "error") }; } clearHistory() { this.onceHistory.clear(); } doLogOnce(messageLevel, args) { const cacheKey = `${messageLevel}: ${args.join(" ")}`; if (!this.onceHistory.has(cacheKey)) { this.onceHistory.add(cacheKey); this.doLog(messageLevel, args); } } doLog(messageLevel, args) { const message = Array.isArray(args) ? this.formatMessage(messageLevel, util2.format(...args)) : args; const inUnitTests = typeof vitest !== "undefined"; if (!inUnitTests) { void appendToDebugLogFile(messageLevel, message); } if (LOGGER_LEVELS[this.loggerLevel] >= LOGGER_LEVELS[messageLevel]) { _Logger.#beforeLogHook?.(); console[messageLevel](message); _Logger.#afterLogHook?.(); } } static #beforeLogHook; static registerBeforeLogHook(callback) { this.#beforeLogHook = callback; } static #afterLogHook; static registerAfterLogHook(callback) { this.#afterLogHook = callback; } formatMessage(level, message) { const kind2 = LOGGER_LEVEL_FORMAT_TYPE_MAP[level]; if (kind2) { const [firstLine, ...otherLines] = message.split("\n"); const notes = otherLines.length > 0 ? otherLines.map((text) => ({ text })) : void 0; return esbuild.formatMessagesSync([{ text: firstLine, notes }], { color: true, kind: kind2, terminalWidth: this.columns })[0]; } else { return message; } } }; logger = new Logger(); __name(logBuildWarnings, "logBuildWarnings"); __name(logBuildFailure, "logBuildFailure"); } }); function toUrlPath(filePath) { console$1.assert( !/^[a-z]:/i.test(filePath), "Tried to convert a Windows file path with a drive to a URL path." ); return filePath.replace(/\\/g, "/"); } function readableRelative(to) { const relativePath = path3__namespace.default.relative(process.cwd(), to); if ( // No directory nesting, return as-is path3__namespace.default.basename(relativePath) === relativePath || // Outside current directory relativePath.startsWith(".") ) { return relativePath; } else { return "./" + relativePath; } } function getBasePath() { return path3__namespace.default.resolve(__dirname, ".."); } function getWranglerHiddenDirPath(projectRoot) { projectRoot ??= process.cwd(); return path3__namespace.default.join(projectRoot, ".wrangler"); } function getWranglerTmpDir(projectRoot, prefix, cleanup = true) { const tmpRoot = path3__namespace.default.join(getWranglerHiddenDirPath(projectRoot), "tmp"); fs23__namespace.default.mkdirSync(tmpRoot, { recursive: true }); const tmpPrefix = path3__namespace.default.join(tmpRoot, `${prefix}-`); const tmpDir = fs23__namespace.default.realpathSync(fs23__namespace.default.mkdtempSync(tmpPrefix)); const cleanupDir = /* @__PURE__ */ __name(() => { if (cleanup) { try { removeDirSync(tmpDir); } catch { } } }, "cleanupDir"); const removeExitListener = (0, import_signal_exit2.default)(cleanupDir); return { path: tmpDir, remove() { removeExitListener(); cleanupDir(); } }; } var import_signal_exit2; var init_paths = __esm({ "src/paths.ts"() { init_import_meta_url(); init_dist(); import_signal_exit2 = __toESM(require_signal_exit()); __name(toUrlPath, "toUrlPath"); __name(readableRelative, "readableRelative"); __name(getBasePath, "getBasePath"); __name(getWranglerHiddenDirPath, "getWranglerHiddenDirPath"); __name(getWranglerTmpDir, "getWranglerTmpDir"); } }); // src/deployment-bundle/bundle-type.ts function getBundleType(format11, file3) { if (file3 && file3.endsWith(".py")) { return "python"; } return format11 === "modules" ? "esm" : "commonjs"; } var init_bundle_type = __esm({ "src/deployment-bundle/bundle-type.ts"() { init_import_meta_url(); __name(getBundleType, "getBundleType"); } }); // src/deployment-bundle/rules.ts function isJavaScriptModuleRule(rule) { return rule.type === "ESModule" || rule.type === "CommonJS"; } function parseRules(userRules = []) { const rules = [...userRules, ...DEFAULT_MODULE_RULES]; const completedRuleLocations = {}; const redundantRules = {}; let index = 0; const rulesToRemove = []; for (const rule of rules) { if (rule.type in completedRuleLocations) { if (rules[completedRuleLocations[rule.type]].fallthrough !== false) { if (rule.type in redundantRules) { redundantRules[rule.type].push({ index, default: index >= userRules.length }); } else { redundantRules[rule.type] = [ { index, default: index >= userRules.length } ]; } } rulesToRemove.push(rule); } if (!(rule.type in completedRuleLocations) && rule.fallthrough !== true) { completedRuleLocations[rule.type] = index; } index++; } for (const completedRuleType in completedRuleLocations) { const r9 = redundantRules[completedRuleType]; if (r9) { const completedRuleIndex = completedRuleLocations[completedRuleType]; let warning = `The ${completedRuleIndex >= userRules.length ? "default " : ""}module rule ${JSON.stringify( rules[completedRuleIndex] )} does not have a fallback, the following rules will be ignored:`; for (const rule of r9) { warning += ` ${JSON.stringify(rules[rule.index])}${rule.default ? " (DEFAULT)" : ""}`; } warning += ` Add \`fallthrough = true\` to rule to allow next rule to be used or \`fallthrough = false\` to silence this warning`; logger.warn(warning); } } rulesToRemove.forEach((rule) => rules.splice(rules.indexOf(rule), 1)); return { rules, removedRules: rulesToRemove }; } var DEFAULT_MODULE_RULES; var init_rules = __esm({ "src/deployment-bundle/rules.ts"() { init_import_meta_url(); init_logger(); __name(isJavaScriptModuleRule, "isJavaScriptModuleRule"); DEFAULT_MODULE_RULES = [ { type: "Text", globs: ["**/*.txt", "**/*.html", "**/*.sql"] }, { type: "Data", globs: ["**/*.bin"] }, { type: "CompiledWasm", globs: ["**/*.wasm", "**/*.wasm?module"] } ]; __name(parseRules, "parseRules"); } }); function loadSourceMaps(main2, modules, bundle) { const { sourceMapPath, sourceMapMetadata } = bundle; if (sourceMapPath && sourceMapMetadata) { return loadSourceMap(main2, sourceMapPath, sourceMapMetadata); } else { return scanSourceMaps([main2, ...modules]); } } function loadSourceMap({ name: name2, filePath }, sourceMapPath, { entryDirectory }) { if (filePath === void 0) { return []; } const map2 = JSON.parse( fs23__namespace.default.readFileSync(path3__namespace.default.join(entryDirectory, sourceMapPath), "utf8") ); map2.file = name2; if (map2.sourceRoot) { const sourceRootPath = path3__namespace.default.dirname( path3__namespace.default.join(entryDirectory, sourceMapPath) ); map2.sourceRoot = path3__namespace.default.relative(sourceRootPath, map2.sourceRoot); } map2.sources = map2.sources.map((source) => { const originalPath = path3__namespace.default.join(path3__namespace.default.dirname(filePath), source); return path3__namespace.default.relative(entryDirectory, originalPath); }); return [ { name: name2 + ".map", content: JSON.stringify(map2) } ]; } function scanSourceMaps(modules) { const maps = []; for (const module4 of modules) { const maybeSourcemap = sourceMapForModule(module4); if (maybeSourcemap) { maps.push(maybeSourcemap); } } return maps; } function tryAttachSourcemapToModule(module4) { if (module4.type !== "esm" && module4.type !== "commonjs") { return; } const sourceMap = sourceMapForModule(module4); if (sourceMap) { module4.sourceMap = sourceMap; } } function getSourceMappingUrl(module4) { const content = typeof module4.content === "string" ? module4.content : new TextDecoder().decode(module4.content); const trimmed = content.trimEnd(); const lines = trimmed.split("\n"); while (lines.at(-1)?.trim().length === 0) { lines.pop(); } const commentPrefix = "//# sourceMappingURL="; const lastLine = lines.pop(); if (lastLine === void 0 || !lastLine.startsWith(commentPrefix)) { return void 0; } const commentPath = stripPrefix(commentPrefix, lastLine).trim(); if (commentPath.startsWith("data:")) { throw new Error( `Unsupported source map path in ${module4.filePath}: expected file path but found data URL.` ); } return commentPath; } function sourceMapForModule(module4) { if (module4.filePath === void 0) { return void 0; } const sourceMapUrl = getSourceMappingUrl(module4); if (sourceMapUrl === void 0) { return; } const sourcemapPath = path3__namespace.default.join(path3__namespace.default.dirname(module4.filePath), sourceMapUrl); if (!fs23__namespace.default.existsSync(sourcemapPath)) { throw new Error( `Invalid source map path in ${module4.filePath}: ${sourcemapPath} does not exist.` ); } const map2 = JSON.parse( fs23__namespace.default.readFileSync(sourcemapPath, "utf8") ); map2.file = module4.name; if (map2.sourceRoot) { map2.sourceRoot = cleanPathPrefix(map2.sourceRoot); } map2.sources = map2.sources.map(cleanPathPrefix); return { name: module4.name + ".map", content: JSON.stringify(map2) }; } function cleanPathPrefix(filePath) { return stripPrefix( "..\\", stripPrefix("../", stripPrefix(".\\", stripPrefix("./", filePath))) ); } function stripPrefix(prefix, input) { let stripped = input; while (stripped.startsWith(prefix)) { stripped = stripped.slice(prefix.length); } return stripped; } var init_source_maps = __esm({ "src/deployment-bundle/source-maps.ts"() { init_import_meta_url(); __name(loadSourceMaps, "loadSourceMaps"); __name(loadSourceMap, "loadSourceMap"); __name(scanSourceMaps, "scanSourceMaps"); __name(tryAttachSourcemapToModule, "tryAttachSourcemapToModule"); __name(getSourceMappingUrl, "getSourceMappingUrl"); __name(sourceMapForModule, "sourceMapForModule"); __name(cleanPathPrefix, "cleanPathPrefix"); __name(stripPrefix, "stripPrefix"); } }); async function* getFiles(configPath, moduleRoot, relativeTo, projectRoot) { const wranglerHiddenDirPath = getWranglerHiddenDirPath(projectRoot); for (const file3 of await fs12.readdir(moduleRoot, { withFileTypes: true })) { const absPath = path3__namespace.default.join(moduleRoot, file3.name); if (file3.isDirectory()) { if (absPath !== wranglerHiddenDirPath) { yield* getFiles(configPath, absPath, relativeTo, projectRoot); } } else { if (absPath !== configPath) { yield path3__namespace.default.relative(relativeTo, absPath).replaceAll("\\", "/"); } } } } function isValidPythonPackageName(name2) { const regex2 = /^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$/i; return regex2.test(name2); } function isPythonVendorModule(moduleName) { return moduleName.startsWith("python_modules/"); } function removePythonVendorModules(isPythonEntrypoint, modules) { if (!isPythonEntrypoint) { return modules; } return modules.filter((m7) => !isPythonVendorModule(m7.name)); } function getPythonVendorModulesSize(modules) { const vendorModules = modules.filter((m7) => isPythonVendorModule(m7.name)); return vendorModules.reduce((total, m7) => total + m7.content.length, 0); } async function findAdditionalModules(entry, rules, attachSourcemaps = false, pythonModulesExcludes = []) { const files = getFiles( entry.configPath, entry.moduleRoot, entry.moduleRoot, entry.projectRoot ); const relativeEntryPoint = path3__namespace.default.relative(entry.moduleRoot, entry.file).replaceAll("\\", "/"); if (Array.isArray(rules)) { rules = parseRules(rules); } const modules = (await matchFiles(files, entry.moduleRoot, rules)).filter((m7) => m7.name !== relativeEntryPoint).map((m7) => ({ ...m7, name: m7.name })); const isPythonEntrypoint = getBundleType(entry.format, entry.file) === "python"; if (isPythonEntrypoint) { let pythonRequirements = ""; try { pythonRequirements = await fs12.readFile( path3__namespace.default.resolve(entry.projectRoot, "cf-requirements.txt"), "utf-8" ); } catch { logger.debug( "Python entrypoint detected, but no cf-requirements.txt file found." ); } if (fs23.existsSync(path3__namespace.default.resolve(entry.projectRoot, "requirements.txt"))) { logger.warn( "Found a `requirements.txt` file. Python requirements should now be in a `cf-requirements.txt` file." ); } for (const requirement of pythonRequirements.split("\n")) { if (requirement === "") { continue; } if (!isValidPythonPackageName(requirement)) { throw new UserError( `Invalid Python package name "${requirement}" found in cf-requirements.txt. Note that cf-requirements.txt should contain package names only, not version specifiers.` ); } modules.push({ type: "python-requirement", name: requirement, content: "", filePath: void 0 }); } const pythonModulesDir = path3__namespace.default.resolve(entry.projectRoot, "python_modules"); const pythonModulesDirInModuleRoot = path3__namespace.default.resolve( entry.moduleRoot, "python_modules" ); const pythonModulesExistsInModuleRoot = fs23.existsSync( pythonModulesDirInModuleRoot ); if (pythonModulesExistsInModuleRoot && entry.projectRoot !== entry.moduleRoot) { throw new UserError( "The 'python_modules' directory cannot exist in your module root. Delete it to continue." ); } const pythonModulesExists = fs23.existsSync(pythonModulesDir); if (pythonModulesExists) { const pythonModulesFiles = getFiles( entry.file, pythonModulesDir, pythonModulesDir, entry.projectRoot ); const vendoredRules = [ { type: "Data", globs: ["**/*"], fallthrough: true } ]; const vendoredModules = (await matchFiles(pythonModulesFiles, pythonModulesDir, { rules: vendoredRules, removedRules: [] })).filter((m7) => { for (const pattern of pythonModulesExcludes) { const regexp = (0, import_glob_to_regexp.default)(pattern, { globstar: true }); if (regexp.test(m7.name)) { return false; } } return true; }).map((m7) => { const prefixedPath = `python_modules/${m7.name}`; return { ...m7, name: prefixedPath }; }); modules.push(...vendoredModules); } else { logger.debug( "Python entrypoint detected, but no python_modules directory found." ); } } if (attachSourcemaps) { modules.forEach((module4) => tryAttachSourcemapToModule(module4)); } if (modules.length > 0) { logger.info(`Attaching additional modules:`); const filteredModules = removePythonVendorModules( isPythonEntrypoint, modules ); const vendorModulesSize = getPythonVendorModulesSize(modules); const totalSize = modules.reduce( (previous, { content }) => previous + content.length, 0 ); const tableEntries = [ ...filteredModules.map(({ name: name2, type, content }) => { return { Name: name2, Type: type ?? "", Size: type === "python-requirement" ? "" : `${(content.length / 1024).toFixed(2)} KiB` }; }) ]; if (isPythonEntrypoint && vendorModulesSize > 0) { tableEntries.push({ Name: "Vendored Modules", Type: "", Size: `${(vendorModulesSize / 1024).toFixed(2)} KiB` }); } tableEntries.push({ Name: `Total (${modules.length} module${modules.length > 1 ? "s" : ""})`, Type: "", Size: `${(totalSize / 1024).toFixed(2)} KiB` }); logger.table(tableEntries); } return modules; } async function matchFiles(files, relativeTo, { rules, removedRules }) { const modules = []; const moduleNames = /* @__PURE__ */ new Set(); for await (const filePath of files) { for (const rule of rules) { for (const glob of rule.globs) { const regexp = (0, import_glob_to_regexp.default)(glob, { globstar: true }); if (!regexp.test(filePath)) { continue; } const absoluteFilePath = path3__namespace.default.join(relativeTo, filePath); const fileContent = await fs12.readFile( absoluteFilePath ); const module4 = { name: filePath, content: fileContent, filePath: absoluteFilePath, type: RuleTypeToModuleType[rule.type] }; if (!moduleNames.has(module4.name)) { moduleNames.add(module4.name); modules.push(module4); } else { logger.warn( `Ignoring duplicate module: ${source_default.blue( module4.name )} (${source_default.green(module4.type ?? "")})` ); } } } for (const rule of removedRules) { for (const glob of rule.globs) { const regexp = (0, import_glob_to_regexp.default)(glob); if (regexp.test(filePath)) { throw new UserError( `The file ${filePath} matched a module rule in your configuration (${JSON.stringify( rule )}), but was ignored because a previous rule with the same type was not marked as \`fallthrough = true\`.` ); } } } } return modules; } async function* findAdditionalModuleWatchDirs(root) { yield root; for (const entry of await fs12.readdir(root, { withFileTypes: true })) { if (entry.isDirectory()) { if (entry.name === "node_modules" || entry.name === ".git") { continue; } yield* findAdditionalModuleWatchDirs(path3__namespace.default.join(root, entry.name)); } } } async function writeAdditionalModules(modules, destination) { for (const module4 of modules) { const modulePath = path3__namespace.default.resolve(destination, module4.name); logger.debug("Writing additional module to output", modulePath); await fs12.mkdir(path3__namespace.default.dirname(modulePath), { recursive: true }); await fs12.writeFile(modulePath, module4.content); if (module4.sourceMap) { const sourcemapPath = path3__namespace.default.resolve(destination, module4.sourceMap.name); await fs12.writeFile(sourcemapPath, module4.sourceMap.content); } } } var import_glob_to_regexp; var init_find_additional_modules = __esm({ "src/deployment-bundle/find-additional-modules.ts"() { init_import_meta_url(); init_dist(); init_source(); import_glob_to_regexp = __toESM(require_glob_to_regexp()); init_logger(); init_paths(); init_bundle_type(); init_module_collection(); init_rules(); init_source_maps(); __name(getFiles, "getFiles"); __name(isValidPythonPackageName, "isValidPythonPackageName"); __name(isPythonVendorModule, "isPythonVendorModule"); __name(removePythonVendorModules, "removePythonVendorModules"); __name(getPythonVendorModulesSize, "getPythonVendorModulesSize"); __name(findAdditionalModules, "findAdditionalModules"); __name(matchFiles, "matchFiles"); __name(findAdditionalModuleWatchDirs, "findAdditionalModuleWatchDirs"); __name(writeAdditionalModules, "writeAdditionalModules"); } }); function flipObject(obj) { return Object.fromEntries( Object.entries(obj).filter(([_5, v8]) => !!v8).map(([k7, v8]) => [v8, k7]) ); } function createModuleCollector(props) { const parsedRules = parseRules(props.rules); const modules = []; return { modules, plugin: { name: "wrangler-module-collector", setup(build5) { let foundModulePaths = []; build5.onStart(async () => { modules.splice(0); if (props.findAdditionalModules) { if (props.entry.format !== "modules") { const error2 = "`find_additional_modules` can only be used with an ES module entrypoint.\nRemove `find_additional_modules = true` from your configuration, or migrate to the ES module Worker format: https://developers.cloudflare.com/workers/learning/migrate-to-module-workers/"; return { errors: [{ text: error2 }] }; } const found = await findAdditionalModules(props.entry, parsedRules); foundModulePaths = found.map( ({ name: name2 }) => path3__namespace.default.resolve(props.entry.moduleRoot, name2) ); modules.push(...found); } }); build5.onResolve({ filter: modulesWatchRegexp }, (args) => { return { namespace: modulesWatchNamespace, path: args.path }; }); build5.onLoad( { namespace: modulesWatchNamespace, filter: modulesWatchRegexp }, async () => { let watchFiles = []; const watchDirs = []; if (props.findAdditionalModules) { watchFiles = foundModulePaths; const root = path3__namespace.default.resolve(props.entry.moduleRoot); for await (const dir2 of findAdditionalModuleWatchDirs(root)) { watchDirs.push(dir2); } } return { contents: "", loader: "js", watchFiles, watchDirs }; } ); const rulesMatchers = parsedRules.rules.flatMap((rule) => { return rule.globs.map((glob) => { const regex2 = (0, import_glob_to_regexp2.default)(glob); return { regex: regex2, rule }; }); }); if (props.wrangler1xLegacyModuleReferences && props.wrangler1xLegacyModuleReferences.fileNames.size > 0) { build5.onResolve( { filter: new RegExp( "^(" + [...props.wrangler1xLegacyModuleReferences.fileNames].map((name2) => name2.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).join("|") + ")$" ) }, async (args) => { if (args.kind !== "import-statement" && args.kind !== "require-call") { return; } logger.warn( `Deprecation: detected a legacy module import in "./${path3__namespace.default.relative( process.cwd(), args.importer )}". This will stop working in the future. Replace references to "${args.path}" with "./${args.path}";` ); const filePath = path3__namespace.default.join( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion props.wrangler1xLegacyModuleReferences.rootDirectory, args.path ); const fileContent = await fs12.readFile( filePath ); const fileHash = crypto2__default.default.createHash("sha1").update(fileContent).digest("hex"); const fileName = props.preserveFileNames ? args.path : `./${fileHash}-${path3__namespace.default.basename(args.path)}`; const { rule } = rulesMatchers.find(({ regex: regex2 }) => regex2.test(fileName)) || {}; if (rule) { modules.push({ name: fileName, filePath, content: fileContent, type: RuleTypeToModuleType[rule.type] }); return { path: fileName, // change the reference to the changed module external: props.entry.format === "modules", // mark it as external in the bundle namespace: `wrangler-module-${rule.type}`, // just a tag, this isn't strictly necessary watchFiles: [filePath] // we also add the file to esbuild's watch list }; } } ); } parsedRules.rules?.forEach((rule) => { if (!props.findAdditionalModules && isJavaScriptModuleRule(rule)) { return; } rule.globs.forEach((glob) => { build5.onResolve( { filter: (0, import_glob_to_regexp2.default)(glob) }, async (args) => { if (args.pluginData?.skip) { return; } let filePath = path3__namespace.default.join(args.resolveDir, args.path); if (foundModulePaths.includes(filePath)) { return { path: args.path, external: true }; } if (isJavaScriptModuleRule(rule)) { return; } try { const resolved = await build5.resolve(args.path, { kind: args.kind, importer: args.importer, resolveDir: args.resolveDir, pluginData: { skip: true } }); if (resolved.path) { filePath = resolved.path; } } catch { } try { const resolved = (0, import_resolve.sync)(args.path, { basedir: args.resolveDir }); filePath = resolved; } catch { } const fileContent = await fs12.readFile( filePath ); const fileHash = crypto2__default.default.createHash("sha1").update(fileContent).digest("hex"); const fileName = props.preserveFileNames ? args.path : `./${fileHash}-${path3__namespace.default.basename(args.path)}`; modules.push({ name: fileName, filePath, content: fileContent, type: RuleTypeToModuleType[rule.type] }); return { path: fileName, // change the reference to the changed module external: props.entry.format === "modules", // mark it as external in the bundle namespace: `wrangler-module-${rule.type}`, // just a tag, this isn't strictly necessary watchFiles: [filePath] // we also add the file to esbuild's watch list }; } ); if (props.entry.format === "service-worker") { build5.onLoad( { filter: (0, import_glob_to_regexp2.default)(glob) }, async (args) => { return { // We replace the the module with an identifier // that we'll separately add to the form upload // as part of [wasm_modules]/[text_blobs]/[data_blobs]. This identifier has to be a valid // JS identifier, so we replace all non alphanumeric characters // with an underscore. contents: `export default ${args.path.replace( /[^a-zA-Z0-9_$]/g, "_" )};` }; } ); } }); }); parsedRules.removedRules.forEach((rule) => { rule.globs.forEach((glob) => { build5.onResolve( { filter: (0, import_glob_to_regexp2.default)(glob) }, async (args) => { throw new UserError( `The file ${args.path} matched a module rule in your configuration (${JSON.stringify( rule )}), but was ignored because a previous rule with the same type was not marked as \`fallthrough = true\`.` ); } ); }); }); } } }; } function getWrangler1xLegacyModuleReferences(rootDirectory, entryPath) { return { rootDirectory, fileNames: new Set( fs23.readdirSync(rootDirectory, { withFileTypes: true }).filter( (dirEntry) => dirEntry.isFile() && dirEntry.name !== path3__namespace.default.basename(entryPath) ).map((dirEnt) => dirEnt.name) ) }; } var import_glob_to_regexp2, import_resolve, RuleTypeToModuleType, ModuleTypeToRuleType, modulesWatchRegexp, modulesWatchNamespace, noopModuleCollector; var init_module_collection = __esm({ "src/deployment-bundle/module-collection.ts"() { init_import_meta_url(); init_dist(); import_glob_to_regexp2 = __toESM(require_glob_to_regexp()); import_resolve = __toESM(require_resolve()); init_logger(); init_find_additional_modules(); init_rules(); __name(flipObject, "flipObject"); RuleTypeToModuleType = { ESModule: "esm", CommonJS: "commonjs", CompiledWasm: "compiled-wasm", Data: "buffer", Text: "text", PythonModule: "python", PythonRequirement: "python-requirement" }; ModuleTypeToRuleType = flipObject(RuleTypeToModuleType); modulesWatchRegexp = /^wrangler:modules-watch$/; modulesWatchNamespace = "wrangler-modules-watch"; noopModuleCollector = { modules: [], plugin: { name: "wrangler-module-collector", setup: /* @__PURE__ */ __name((build5) => { build5.onResolve({ filter: modulesWatchRegexp }, (args) => { return { namespace: modulesWatchNamespace, path: args.path }; }); build5.onLoad( { namespace: modulesWatchNamespace, filter: modulesWatchRegexp }, () => ({ contents: "", loader: "js" }) ); }, "setup") } }; __name(createModuleCollector, "createModuleCollector"); __name(getWrangler1xLegacyModuleReferences, "getWrangler1xLegacyModuleReferences"); } }); function withSourceURL(source, sourcePath) { return `${source} //# sourceURL=${Url.pathToFileURL(sourcePath)}`; } function withSourceURLs(entrypointPath, entrypointSource, modules) { if (!entrypointPath.endsWith(".py")) { entrypointSource = withSourceURL(entrypointSource, entrypointPath); } modules = modules.map((module4) => { if (module4.filePath !== void 0 && (module4.type === "esm" || module4.type === "commonjs")) { let newContent = module4.content.toString(); newContent = withSourceURL(newContent, module4.filePath); return { ...module4, content: newContent }; } else { return module4; } }); return { entrypointSource, modules }; } var init_source_url = __esm({ "src/deployment-bundle/source-url.ts"() { init_import_meta_url(); __name(withSourceURL, "withSourceURL"); __name(withSourceURLs, "withSourceURLs"); } }); // ../workers-shared/utils/constants.ts var MAX_ASSET_SIZE, CF_ASSETS_IGNORE_FILENAME, REDIRECTS_FILENAME, HEADERS_FILENAME; var init_constants = __esm({ "../workers-shared/utils/constants.ts"() { init_import_meta_url(); MAX_ASSET_SIZE = 25 * 1024 * 1024; CF_ASSETS_IGNORE_FILENAME = ".assetsignore"; REDIRECTS_FILENAME = "_redirects"; HEADERS_FILENAME = "_headers"; } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js var util, objectUtil, ZodParsedType, getParsedType; var init_util = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/util.js"() { init_import_meta_url(); (function(util3) { util3.assertEqual = (_5) => { }; function assertIs(_arg) { } __name(assertIs, "assertIs"); util3.assertIs = assertIs; function assertNever4(_x2) { throw new Error(); } __name(assertNever4, "assertNever"); util3.assertNever = assertNever4; util3.arrayToEnum = (items) => { const obj = {}; for (const item of items) { obj[item] = item; } return obj; }; util3.getValidEnumValues = (obj) => { const validKeys = util3.objectKeys(obj).filter((k7) => typeof obj[obj[k7]] !== "number"); const filtered = {}; for (const k7 of validKeys) { filtered[k7] = obj[k7]; } return util3.objectValues(filtered); }; util3.objectValues = (obj) => { return util3.objectKeys(obj).map(function(e9) { return obj[e9]; }); }; util3.objectKeys = typeof Object.keys === "function" ? (obj) => Object.keys(obj) : (object) => { const keys = []; for (const key in object) { if (Object.prototype.hasOwnProperty.call(object, key)) { keys.push(key); } } return keys; }; util3.find = (arr, checker) => { for (const item of arr) { if (checker(item)) return item; } return void 0; }; util3.isInteger = typeof Number.isInteger === "function" ? (val2) => Number.isInteger(val2) : (val2) => typeof val2 === "number" && Number.isFinite(val2) && Math.floor(val2) === val2; function joinValues(array, separator = " | ") { return array.map((val2) => typeof val2 === "string" ? `'${val2}'` : val2).join(separator); } __name(joinValues, "joinValues"); util3.joinValues = joinValues; util3.jsonStringifyReplacer = (_5, value) => { if (typeof value === "bigint") { return value.toString(); } return value; }; })(util || (util = {})); (function(objectUtil2) { objectUtil2.mergeShapes = (first, second) => { return { ...first, ...second // second overwrites first }; }; })(objectUtil || (objectUtil = {})); ZodParsedType = util.arrayToEnum([ "string", "nan", "number", "integer", "float", "boolean", "date", "bigint", "symbol", "function", "undefined", "null", "array", "object", "unknown", "promise", "void", "never", "map", "set" ]); getParsedType = /* @__PURE__ */ __name((data) => { const t12 = typeof data; switch (t12) { case "undefined": return ZodParsedType.undefined; case "string": return ZodParsedType.string; case "number": return Number.isNaN(data) ? ZodParsedType.nan : ZodParsedType.number; case "boolean": return ZodParsedType.boolean; case "function": return ZodParsedType.function; case "bigint": return ZodParsedType.bigint; case "symbol": return ZodParsedType.symbol; case "object": if (Array.isArray(data)) { return ZodParsedType.array; } if (data === null) { return ZodParsedType.null; } if (data.then && typeof data.then === "function" && data.catch && typeof data.catch === "function") { return ZodParsedType.promise; } if (typeof Map !== "undefined" && data instanceof Map) { return ZodParsedType.map; } if (typeof Set !== "undefined" && data instanceof Set) { return ZodParsedType.set; } if (typeof Date !== "undefined" && data instanceof Date) { return ZodParsedType.date; } return ZodParsedType.object; default: return ZodParsedType.unknown; } }, "getParsedType"); } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js var ZodIssueCode, quotelessJson, ZodError; var init_ZodError = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/ZodError.js"() { init_import_meta_url(); init_util(); ZodIssueCode = util.arrayToEnum([ "invalid_type", "invalid_literal", "custom", "invalid_union", "invalid_union_discriminator", "invalid_enum_value", "unrecognized_keys", "invalid_arguments", "invalid_return_type", "invalid_date", "invalid_string", "too_small", "too_big", "invalid_intersection_types", "not_multiple_of", "not_finite" ]); quotelessJson = /* @__PURE__ */ __name((obj) => { const json = JSON.stringify(obj, null, 2); return json.replace(/"([^"]+)":/g, "$1:"); }, "quotelessJson"); ZodError = class _ZodError extends Error { static { __name(this, "ZodError"); } get errors() { return this.issues; } constructor(issues) { super(); this.issues = []; this.addIssue = (sub) => { this.issues = [...this.issues, sub]; }; this.addIssues = (subs = []) => { this.issues = [...this.issues, ...subs]; }; const actualProto = new.target.prototype; if (Object.setPrototypeOf) { Object.setPrototypeOf(this, actualProto); } else { this.__proto__ = actualProto; } this.name = "ZodError"; this.issues = issues; } format(_mapper) { const mapper = _mapper || function(issue) { return issue.message; }; const fieldErrors = { _errors: [] }; const processError = /* @__PURE__ */ __name((error2) => { for (const issue of error2.issues) { if (issue.code === "invalid_union") { issue.unionErrors.map(processError); } else if (issue.code === "invalid_return_type") { processError(issue.returnTypeError); } else if (issue.code === "invalid_arguments") { processError(issue.argumentsError); } else if (issue.path.length === 0) { fieldErrors._errors.push(mapper(issue)); } else { let curr = fieldErrors; let i7 = 0; while (i7 < issue.path.length) { const el = issue.path[i7]; const terminal = i7 === issue.path.length - 1; if (!terminal) { curr[el] = curr[el] || { _errors: [] }; } else { curr[el] = curr[el] || { _errors: [] }; curr[el]._errors.push(mapper(issue)); } curr = curr[el]; i7++; } } } }, "processError"); processError(this); return fieldErrors; } static assert(value) { if (!(value instanceof _ZodError)) { throw new Error(`Not a ZodError: ${value}`); } } toString() { return this.message; } get message() { return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2); } get isEmpty() { return this.issues.length === 0; } flatten(mapper = (issue) => issue.message) { const fieldErrors = {}; const formErrors = []; for (const sub of this.issues) { if (sub.path.length > 0) { const firstEl = sub.path[0]; fieldErrors[firstEl] = fieldErrors[firstEl] || []; fieldErrors[firstEl].push(mapper(sub)); } else { formErrors.push(mapper(sub)); } } return { formErrors, fieldErrors }; } get formErrors() { return this.flatten(); } }; ZodError.create = (issues) => { const error2 = new ZodError(issues); return error2; }; } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js var errorMap, en_default; var init_en = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/locales/en.js"() { init_import_meta_url(); init_ZodError(); init_util(); errorMap = /* @__PURE__ */ __name((issue, _ctx) => { let message; switch (issue.code) { case ZodIssueCode.invalid_type: if (issue.received === ZodParsedType.undefined) { message = "Required"; } else { message = `Expected ${issue.expected}, received ${issue.received}`; } break; case ZodIssueCode.invalid_literal: message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`; break; case ZodIssueCode.unrecognized_keys: message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, ", ")}`; break; case ZodIssueCode.invalid_union: message = `Invalid input`; break; case ZodIssueCode.invalid_union_discriminator: message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`; break; case ZodIssueCode.invalid_enum_value: message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`; break; case ZodIssueCode.invalid_arguments: message = `Invalid function arguments`; break; case ZodIssueCode.invalid_return_type: message = `Invalid function return type`; break; case ZodIssueCode.invalid_date: message = `Invalid date`; break; case ZodIssueCode.invalid_string: if (typeof issue.validation === "object") { if ("includes" in issue.validation) { message = `Invalid input: must include "${issue.validation.includes}"`; if (typeof issue.validation.position === "number") { message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`; } } else if ("startsWith" in issue.validation) { message = `Invalid input: must start with "${issue.validation.startsWith}"`; } else if ("endsWith" in issue.validation) { message = `Invalid input: must end with "${issue.validation.endsWith}"`; } else { util.assertNever(issue.validation); } } else if (issue.validation !== "regex") { message = `Invalid ${issue.validation}`; } else { message = "Invalid"; } break; case ZodIssueCode.too_small: if (issue.type === "array") message = `Array must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`; else if (issue.type === "string") message = `String must contain ${issue.exact ? "exactly" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`; else if (issue.type === "number") message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; else if (issue.type === "bigint") message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`; else if (issue.type === "date") message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`; else message = "Invalid input"; break; case ZodIssueCode.too_big: if (issue.type === "array") message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`; else if (issue.type === "string") message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`; else if (issue.type === "number") message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; else if (issue.type === "bigint") message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`; else if (issue.type === "date") message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`; else message = "Invalid input"; break; case ZodIssueCode.custom: message = `Invalid input`; break; case ZodIssueCode.invalid_intersection_types: message = `Intersection results could not be merged`; break; case ZodIssueCode.not_multiple_of: message = `Number must be a multiple of ${issue.multipleOf}`; break; case ZodIssueCode.not_finite: message = "Number must be finite"; break; default: message = _ctx.defaultError; util.assertNever(issue); } return { message }; }, "errorMap"); en_default = errorMap; } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js function setErrorMap(map2) { overrideErrorMap = map2; } function getErrorMap() { return overrideErrorMap; } var overrideErrorMap; var init_errors = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/errors.js"() { init_import_meta_url(); init_en(); overrideErrorMap = en_default; __name(setErrorMap, "setErrorMap"); __name(getErrorMap, "getErrorMap"); } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js function addIssueToContext(ctx, issueData) { const overrideMap = getErrorMap(); const issue = makeIssue({ issueData, data: ctx.data, path: ctx.path, errorMaps: [ ctx.common.contextualErrorMap, // contextual error map is first priority ctx.schemaErrorMap, // then schema-bound map if available overrideMap, // then global override map overrideMap === en_default ? void 0 : en_default // then global default map ].filter((x7) => !!x7) }); ctx.common.issues.push(issue); } var makeIssue, EMPTY_PATH, ParseStatus, INVALID, DIRTY, OK, isAborted, isDirty, isValid, isAsync; var init_parseUtil = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/parseUtil.js"() { init_import_meta_url(); init_errors(); init_en(); makeIssue = /* @__PURE__ */ __name((params) => { const { data, path: path82, errorMaps, issueData } = params; const fullPath = [...path82, ...issueData.path || []]; const fullIssue = { ...issueData, path: fullPath }; if (issueData.message !== void 0) { return { ...issueData, path: fullPath, message: issueData.message }; } let errorMessage = ""; const maps = errorMaps.filter((m7) => !!m7).slice().reverse(); for (const map2 of maps) { errorMessage = map2(fullIssue, { data, defaultError: errorMessage }).message; } return { ...issueData, path: fullPath, message: errorMessage }; }, "makeIssue"); EMPTY_PATH = []; __name(addIssueToContext, "addIssueToContext"); ParseStatus = class _ParseStatus { static { __name(this, "ParseStatus"); } constructor() { this.value = "valid"; } dirty() { if (this.value === "valid") this.value = "dirty"; } abort() { if (this.value !== "aborted") this.value = "aborted"; } static mergeArray(status2, results) { const arrayValue = []; for (const s7 of results) { if (s7.status === "aborted") return INVALID; if (s7.status === "dirty") status2.dirty(); arrayValue.push(s7.value); } return { status: status2.value, value: arrayValue }; } static async mergeObjectAsync(status2, pairs) { const syncPairs = []; for (const pair of pairs) { const key = await pair.key; const value = await pair.value; syncPairs.push({ key, value }); } return _ParseStatus.mergeObjectSync(status2, syncPairs); } static mergeObjectSync(status2, pairs) { const finalObject = {}; for (const pair of pairs) { const { key, value } = pair; if (key.status === "aborted") return INVALID; if (value.status === "aborted") return INVALID; if (key.status === "dirty") status2.dirty(); if (value.status === "dirty") status2.dirty(); if (key.value !== "__proto__" && (typeof value.value !== "undefined" || pair.alwaysSet)) { finalObject[key.value] = value.value; } } return { status: status2.value, value: finalObject }; } }; INVALID = Object.freeze({ status: "aborted" }); DIRTY = /* @__PURE__ */ __name((value) => ({ status: "dirty", value }), "DIRTY"); OK = /* @__PURE__ */ __name((value) => ({ status: "valid", value }), "OK"); isAborted = /* @__PURE__ */ __name((x7) => x7.status === "aborted", "isAborted"); isDirty = /* @__PURE__ */ __name((x7) => x7.status === "dirty", "isDirty"); isValid = /* @__PURE__ */ __name((x7) => x7.status === "valid", "isValid"); isAsync = /* @__PURE__ */ __name((x7) => typeof Promise !== "undefined" && x7 instanceof Promise, "isAsync"); } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js var init_typeAliases = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/typeAliases.js"() { init_import_meta_url(); } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js var errorUtil; var init_errorUtil = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/helpers/errorUtil.js"() { init_import_meta_url(); (function(errorUtil2) { errorUtil2.errToObj = (message) => typeof message === "string" ? { message } : message || {}; errorUtil2.toString = (message) => typeof message === "string" ? message : message?.message; })(errorUtil || (errorUtil = {})); } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js function processCreateParams(params) { if (!params) return {}; const { errorMap: errorMap2, invalid_type_error, required_error, description } = params; if (errorMap2 && (invalid_type_error || required_error)) { throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`); } if (errorMap2) return { errorMap: errorMap2, description }; const customMap = /* @__PURE__ */ __name((iss, ctx) => { const { message } = params; if (iss.code === "invalid_enum_value") { return { message: message ?? ctx.defaultError }; } if (typeof ctx.data === "undefined") { return { message: message ?? required_error ?? ctx.defaultError }; } if (iss.code !== "invalid_type") return { message: ctx.defaultError }; return { message: message ?? invalid_type_error ?? ctx.defaultError }; }, "customMap"); return { errorMap: customMap, description }; } function timeRegexSource(args) { let secondsRegexSource = `[0-5]\\d`; if (args.precision) { secondsRegexSource = `${secondsRegexSource}\\.\\d{${args.precision}}`; } else if (args.precision == null) { secondsRegexSource = `${secondsRegexSource}(\\.\\d+)?`; } const secondsQuantifier = args.precision ? "+" : "?"; return `([01]\\d|2[0-3]):[0-5]\\d(:${secondsRegexSource})${secondsQuantifier}`; } function timeRegex(args) { return new RegExp(`^${timeRegexSource(args)}$`); } function datetimeRegex(args) { let regex2 = `${dateRegexSource}T${timeRegexSource(args)}`; const opts = []; opts.push(args.local ? `Z?` : `Z`); if (args.offset) opts.push(`([+-]\\d{2}:?\\d{2})`); regex2 = `${regex2}(${opts.join("|")})`; return new RegExp(`^${regex2}$`); } function isValidIP(ip, version5) { if ((version5 === "v4" || !version5) && ipv4Regex.test(ip)) { return true; } if ((version5 === "v6" || !version5) && ipv6Regex.test(ip)) { return true; } return false; } function isValidJWT(jwt, alg) { if (!jwtRegex.test(jwt)) return false; try { const [header] = jwt.split("."); if (!header) return false; const base642 = header.replace(/-/g, "+").replace(/_/g, "/").padEnd(header.length + (4 - header.length % 4) % 4, "="); const decoded = JSON.parse(atob(base642)); if (typeof decoded !== "object" || decoded === null) return false; if ("typ" in decoded && decoded?.typ !== "JWT") return false; if (!decoded.alg) return false; if (alg && decoded.alg !== alg) return false; return true; } catch { return false; } } function isValidCidr(ip, version5) { if ((version5 === "v4" || !version5) && ipv4CidrRegex.test(ip)) { return true; } if ((version5 === "v6" || !version5) && ipv6CidrRegex.test(ip)) { return true; } return false; } function floatSafeRemainder(val2, step) { const valDecCount = (val2.toString().split(".")[1] || "").length; const stepDecCount = (step.toString().split(".")[1] || "").length; const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount; const valInt = Number.parseInt(val2.toFixed(decCount).replace(".", "")); const stepInt = Number.parseInt(step.toFixed(decCount).replace(".", "")); return valInt % stepInt / 10 ** decCount; } function deepPartialify(schema) { if (schema instanceof ZodObject) { const newShape = {}; for (const key in schema.shape) { const fieldSchema = schema.shape[key]; newShape[key] = ZodOptional.create(deepPartialify(fieldSchema)); } return new ZodObject({ ...schema._def, shape: /* @__PURE__ */ __name(() => newShape, "shape") }); } else if (schema instanceof ZodArray) { return new ZodArray({ ...schema._def, type: deepPartialify(schema.element) }); } else if (schema instanceof ZodOptional) { return ZodOptional.create(deepPartialify(schema.unwrap())); } else if (schema instanceof ZodNullable) { return ZodNullable.create(deepPartialify(schema.unwrap())); } else if (schema instanceof ZodTuple) { return ZodTuple.create(schema.items.map((item) => deepPartialify(item))); } else { return schema; } } function mergeValues(a7, b11) { const aType = getParsedType(a7); const bType = getParsedType(b11); if (a7 === b11) { return { valid: true, data: a7 }; } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) { const bKeys = util.objectKeys(b11); const sharedKeys = util.objectKeys(a7).filter((key) => bKeys.indexOf(key) !== -1); const newObj = { ...a7, ...b11 }; for (const key of sharedKeys) { const sharedValue = mergeValues(a7[key], b11[key]); if (!sharedValue.valid) { return { valid: false }; } newObj[key] = sharedValue.data; } return { valid: true, data: newObj }; } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) { if (a7.length !== b11.length) { return { valid: false }; } const newArray = []; for (let index = 0; index < a7.length; index++) { const itemA = a7[index]; const itemB = b11[index]; const sharedValue = mergeValues(itemA, itemB); if (!sharedValue.valid) { return { valid: false }; } newArray.push(sharedValue.data); } return { valid: true, data: newArray }; } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a7 === +b11) { return { valid: true, data: a7 }; } else { return { valid: false }; } } function createZodEnum(values, params) { return new ZodEnum({ values, typeName: ZodFirstPartyTypeKind.ZodEnum, ...processCreateParams(params) }); } function cleanParams(params, data) { const p7 = typeof params === "function" ? params(data) : typeof params === "string" ? { message: params } : params; const p22 = typeof p7 === "string" ? { message: p7 } : p7; return p22; } function custom(check, _params = {}, fatal) { if (check) return ZodAny.create().superRefine((data, ctx) => { const r9 = check(data); if (r9 instanceof Promise) { return r9.then((r10) => { if (!r10) { const params = cleanParams(_params, data); const _fatal = params.fatal ?? fatal ?? true; ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); } }); } if (!r9) { const params = cleanParams(_params, data); const _fatal = params.fatal ?? fatal ?? true; ctx.addIssue({ code: "custom", ...params, fatal: _fatal }); } return; }); return ZodAny.create(); } var ParseInputLazyPath, handleResult, ZodType, cuidRegex, cuid2Regex, ulidRegex, uuidRegex, nanoidRegex, jwtRegex, durationRegex, emailRegex, _emojiRegex, emojiRegex, ipv4Regex, ipv4CidrRegex, ipv6Regex, ipv6CidrRegex, base64Regex, base64urlRegex, dateRegexSource, dateRegex, ZodString, ZodNumber, ZodBigInt, ZodBoolean, ZodDate, ZodSymbol, ZodUndefined, ZodNull, ZodAny, ZodUnknown, ZodNever, ZodVoid, ZodArray, ZodObject, ZodUnion, getDiscriminator, ZodDiscriminatedUnion, ZodIntersection, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodFunction, ZodLazy, ZodLiteral, ZodEnum, ZodNativeEnum, ZodPromise, ZodEffects, ZodOptional, ZodNullable, ZodDefault, ZodCatch, ZodNaN, BRAND, ZodBranded, ZodPipeline, ZodReadonly, late, ZodFirstPartyTypeKind, instanceOfType, stringType, numberType, nanType, bigIntType, booleanType, dateType, symbolType, undefinedType, nullType, anyType, unknownType, neverType, voidType, arrayType, objectType, strictObjectType, unionType, discriminatedUnionType, intersectionType, tupleType, recordType, mapType, setType, functionType, lazyType, literalType, enumType, nativeEnumType, promiseType, effectsType, optionalType, nullableType, preprocessType, pipelineType, ostring, onumber, oboolean, coerce, NEVER; var init_types2 = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js"() { init_import_meta_url(); init_ZodError(); init_errors(); init_errorUtil(); init_parseUtil(); init_util(); ParseInputLazyPath = class { static { __name(this, "ParseInputLazyPath"); } constructor(parent, value, path82, key) { this._cachedPath = []; this.parent = parent; this.data = value; this._path = path82; this._key = key; } get path() { if (!this._cachedPath.length) { if (Array.isArray(this._key)) { this._cachedPath.push(...this._path, ...this._key); } else { this._cachedPath.push(...this._path, this._key); } } return this._cachedPath; } }; handleResult = /* @__PURE__ */ __name((ctx, result) => { if (isValid(result)) { return { success: true, data: result.value }; } else { if (!ctx.common.issues.length) { throw new Error("Validation failed but no issues detected."); } return { success: false, get error() { if (this._error) return this._error; const error2 = new ZodError(ctx.common.issues); this._error = error2; return this._error; } }; } }, "handleResult"); __name(processCreateParams, "processCreateParams"); ZodType = class { static { __name(this, "ZodType"); } get description() { return this._def.description; } _getType(input) { return getParsedType(input.data); } _getOrReturnCtx(input, ctx) { return ctx || { common: input.parent.common, data: input.data, parsedType: getParsedType(input.data), schemaErrorMap: this._def.errorMap, path: input.path, parent: input.parent }; } _processInputParams(input) { return { status: new ParseStatus(), ctx: { common: input.parent.common, data: input.data, parsedType: getParsedType(input.data), schemaErrorMap: this._def.errorMap, path: input.path, parent: input.parent } }; } _parseSync(input) { const result = this._parse(input); if (isAsync(result)) { throw new Error("Synchronous parse encountered promise."); } return result; } _parseAsync(input) { const result = this._parse(input); return Promise.resolve(result); } parse(data, params) { const result = this.safeParse(data, params); if (result.success) return result.data; throw result.error; } safeParse(data, params) { const ctx = { common: { issues: [], async: params?.async ?? false, contextualErrorMap: params?.errorMap }, path: params?.path || [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType(data) }; const result = this._parseSync({ data, path: ctx.path, parent: ctx }); return handleResult(ctx, result); } "~validate"(data) { const ctx = { common: { issues: [], async: !!this["~standard"].async }, path: [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType(data) }; if (!this["~standard"].async) { try { const result = this._parseSync({ data, path: [], parent: ctx }); return isValid(result) ? { value: result.value } : { issues: ctx.common.issues }; } catch (err) { if (err?.message?.toLowerCase()?.includes("encountered")) { this["~standard"].async = true; } ctx.common = { issues: [], async: true }; } } return this._parseAsync({ data, path: [], parent: ctx }).then((result) => isValid(result) ? { value: result.value } : { issues: ctx.common.issues }); } async parseAsync(data, params) { const result = await this.safeParseAsync(data, params); if (result.success) return result.data; throw result.error; } async safeParseAsync(data, params) { const ctx = { common: { issues: [], contextualErrorMap: params?.errorMap, async: true }, path: params?.path || [], schemaErrorMap: this._def.errorMap, parent: null, data, parsedType: getParsedType(data) }; const maybeAsyncResult2 = this._parse({ data, path: ctx.path, parent: ctx }); const result = await (isAsync(maybeAsyncResult2) ? maybeAsyncResult2 : Promise.resolve(maybeAsyncResult2)); return handleResult(ctx, result); } refine(check, message) { const getIssueProperties = /* @__PURE__ */ __name((val2) => { if (typeof message === "string" || typeof message === "undefined") { return { message }; } else if (typeof message === "function") { return message(val2); } else { return message; } }, "getIssueProperties"); return this._refinement((val2, ctx) => { const result = check(val2); const setError = /* @__PURE__ */ __name(() => ctx.addIssue({ code: ZodIssueCode.custom, ...getIssueProperties(val2) }), "setError"); if (typeof Promise !== "undefined" && result instanceof Promise) { return result.then((data) => { if (!data) { setError(); return false; } else { return true; } }); } if (!result) { setError(); return false; } else { return true; } }); } refinement(check, refinementData) { return this._refinement((val2, ctx) => { if (!check(val2)) { ctx.addIssue(typeof refinementData === "function" ? refinementData(val2, ctx) : refinementData); return false; } else { return true; } }); } _refinement(refinement) { return new ZodEffects({ schema: this, typeName: ZodFirstPartyTypeKind.ZodEffects, effect: { type: "refinement", refinement } }); } superRefine(refinement) { return this._refinement(refinement); } constructor(def) { this.spa = this.safeParseAsync; this._def = def; this.parse = this.parse.bind(this); this.safeParse = this.safeParse.bind(this); this.parseAsync = this.parseAsync.bind(this); this.safeParseAsync = this.safeParseAsync.bind(this); this.spa = this.spa.bind(this); this.refine = this.refine.bind(this); this.refinement = this.refinement.bind(this); this.superRefine = this.superRefine.bind(this); this.optional = this.optional.bind(this); this.nullable = this.nullable.bind(this); this.nullish = this.nullish.bind(this); this.array = this.array.bind(this); this.promise = this.promise.bind(this); this.or = this.or.bind(this); this.and = this.and.bind(this); this.transform = this.transform.bind(this); this.brand = this.brand.bind(this); this.default = this.default.bind(this); this.catch = this.catch.bind(this); this.describe = this.describe.bind(this); this.pipe = this.pipe.bind(this); this.readonly = this.readonly.bind(this); this.isNullable = this.isNullable.bind(this); this.isOptional = this.isOptional.bind(this); this["~standard"] = { version: 1, vendor: "zod", validate: /* @__PURE__ */ __name((data) => this["~validate"](data), "validate") }; } optional() { return ZodOptional.create(this, this._def); } nullable() { return ZodNullable.create(this, this._def); } nullish() { return this.nullable().optional(); } array() { return ZodArray.create(this); } promise() { return ZodPromise.create(this, this._def); } or(option) { return ZodUnion.create([this, option], this._def); } and(incoming) { return ZodIntersection.create(this, incoming, this._def); } transform(transform) { return new ZodEffects({ ...processCreateParams(this._def), schema: this, typeName: ZodFirstPartyTypeKind.ZodEffects, effect: { type: "transform", transform } }); } default(def) { const defaultValueFunc = typeof def === "function" ? def : () => def; return new ZodDefault({ ...processCreateParams(this._def), innerType: this, defaultValue: defaultValueFunc, typeName: ZodFirstPartyTypeKind.ZodDefault }); } brand() { return new ZodBranded({ typeName: ZodFirstPartyTypeKind.ZodBranded, type: this, ...processCreateParams(this._def) }); } catch(def) { const catchValueFunc = typeof def === "function" ? def : () => def; return new ZodCatch({ ...processCreateParams(this._def), innerType: this, catchValue: catchValueFunc, typeName: ZodFirstPartyTypeKind.ZodCatch }); } describe(description) { const This = this.constructor; return new This({ ...this._def, description }); } pipe(target) { return ZodPipeline.create(this, target); } readonly() { return ZodReadonly.create(this); } isOptional() { return this.safeParse(void 0).success; } isNullable() { return this.safeParse(null).success; } }; cuidRegex = /^c[^\s-]{8,}$/i; cuid2Regex = /^[0-9a-z]+$/; ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/i; uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i; nanoidRegex = /^[a-z0-9_-]{21}$/i; jwtRegex = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/; durationRegex = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/; emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i; _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`; ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/; ipv4CidrRegex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/; ipv6Regex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/; ipv6CidrRegex = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/; base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/; base64urlRegex = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/; dateRegexSource = `((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`; dateRegex = new RegExp(`^${dateRegexSource}$`); __name(timeRegexSource, "timeRegexSource"); __name(timeRegex, "timeRegex"); __name(datetimeRegex, "datetimeRegex"); __name(isValidIP, "isValidIP"); __name(isValidJWT, "isValidJWT"); __name(isValidCidr, "isValidCidr"); ZodString = class _ZodString extends ZodType { static { __name(this, "ZodString"); } _parse(input) { if (this._def.coerce) { input.data = String(input.data); } const parsedType = this._getType(input); if (parsedType !== ZodParsedType.string) { const ctx2 = this._getOrReturnCtx(input); addIssueToContext(ctx2, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.string, received: ctx2.parsedType }); return INVALID; } const status2 = new ParseStatus(); let ctx = void 0; for (const check of this._def.checks) { if (check.kind === "min") { if (input.data.length < check.value) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_small, minimum: check.value, type: "string", inclusive: true, exact: false, message: check.message }); status2.dirty(); } } else if (check.kind === "max") { if (input.data.length > check.value) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_big, maximum: check.value, type: "string", inclusive: true, exact: false, message: check.message }); status2.dirty(); } } else if (check.kind === "length") { const tooBig = input.data.length > check.value; const tooSmall = input.data.length < check.value; if (tooBig || tooSmall) { ctx = this._getOrReturnCtx(input, ctx); if (tooBig) { addIssueToContext(ctx, { code: ZodIssueCode.too_big, maximum: check.value, type: "string", inclusive: true, exact: true, message: check.message }); } else if (tooSmall) { addIssueToContext(ctx, { code: ZodIssueCode.too_small, minimum: check.value, type: "string", inclusive: true, exact: true, message: check.message }); } status2.dirty(); } } else if (check.kind === "email") { if (!emailRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "email", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "emoji") { if (!emojiRegex) { emojiRegex = new RegExp(_emojiRegex, "u"); } if (!emojiRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "emoji", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "uuid") { if (!uuidRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "uuid", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "nanoid") { if (!nanoidRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "nanoid", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "cuid") { if (!cuidRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "cuid", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "cuid2") { if (!cuid2Regex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "cuid2", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "ulid") { if (!ulidRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "ulid", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "url") { try { new URL(input.data); } catch { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "url", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "regex") { check.regex.lastIndex = 0; const testResult = check.regex.test(input.data); if (!testResult) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "regex", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "trim") { input.data = input.data.trim(); } else if (check.kind === "includes") { if (!input.data.includes(check.value, check.position)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_string, validation: { includes: check.value, position: check.position }, message: check.message }); status2.dirty(); } } else if (check.kind === "toLowerCase") { input.data = input.data.toLowerCase(); } else if (check.kind === "toUpperCase") { input.data = input.data.toUpperCase(); } else if (check.kind === "startsWith") { if (!input.data.startsWith(check.value)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_string, validation: { startsWith: check.value }, message: check.message }); status2.dirty(); } } else if (check.kind === "endsWith") { if (!input.data.endsWith(check.value)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_string, validation: { endsWith: check.value }, message: check.message }); status2.dirty(); } } else if (check.kind === "datetime") { const regex2 = datetimeRegex(check); if (!regex2.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_string, validation: "datetime", message: check.message }); status2.dirty(); } } else if (check.kind === "date") { const regex2 = dateRegex; if (!regex2.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_string, validation: "date", message: check.message }); status2.dirty(); } } else if (check.kind === "time") { const regex2 = timeRegex(check); if (!regex2.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_string, validation: "time", message: check.message }); status2.dirty(); } } else if (check.kind === "duration") { if (!durationRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "duration", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "ip") { if (!isValidIP(input.data, check.version)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "ip", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "jwt") { if (!isValidJWT(input.data, check.alg)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "jwt", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "cidr") { if (!isValidCidr(input.data, check.version)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "cidr", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "base64") { if (!base64Regex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "base64", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else if (check.kind === "base64url") { if (!base64urlRegex.test(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { validation: "base64url", code: ZodIssueCode.invalid_string, message: check.message }); status2.dirty(); } } else { util.assertNever(check); } } return { status: status2.value, value: input.data }; } _regex(regex2, validation2, message) { return this.refinement((data) => regex2.test(data), { validation: validation2, code: ZodIssueCode.invalid_string, ...errorUtil.errToObj(message) }); } _addCheck(check) { return new _ZodString({ ...this._def, checks: [...this._def.checks, check] }); } email(message) { return this._addCheck({ kind: "email", ...errorUtil.errToObj(message) }); } url(message) { return this._addCheck({ kind: "url", ...errorUtil.errToObj(message) }); } emoji(message) { return this._addCheck({ kind: "emoji", ...errorUtil.errToObj(message) }); } uuid(message) { return this._addCheck({ kind: "uuid", ...errorUtil.errToObj(message) }); } nanoid(message) { return this._addCheck({ kind: "nanoid", ...errorUtil.errToObj(message) }); } cuid(message) { return this._addCheck({ kind: "cuid", ...errorUtil.errToObj(message) }); } cuid2(message) { return this._addCheck({ kind: "cuid2", ...errorUtil.errToObj(message) }); } ulid(message) { return this._addCheck({ kind: "ulid", ...errorUtil.errToObj(message) }); } base64(message) { return this._addCheck({ kind: "base64", ...errorUtil.errToObj(message) }); } base64url(message) { return this._addCheck({ kind: "base64url", ...errorUtil.errToObj(message) }); } jwt(options) { return this._addCheck({ kind: "jwt", ...errorUtil.errToObj(options) }); } ip(options) { return this._addCheck({ kind: "ip", ...errorUtil.errToObj(options) }); } cidr(options) { return this._addCheck({ kind: "cidr", ...errorUtil.errToObj(options) }); } datetime(options) { if (typeof options === "string") { return this._addCheck({ kind: "datetime", precision: null, offset: false, local: false, message: options }); } return this._addCheck({ kind: "datetime", precision: typeof options?.precision === "undefined" ? null : options?.precision, offset: options?.offset ?? false, local: options?.local ?? false, ...errorUtil.errToObj(options?.message) }); } date(message) { return this._addCheck({ kind: "date", message }); } time(options) { if (typeof options === "string") { return this._addCheck({ kind: "time", precision: null, message: options }); } return this._addCheck({ kind: "time", precision: typeof options?.precision === "undefined" ? null : options?.precision, ...errorUtil.errToObj(options?.message) }); } duration(message) { return this._addCheck({ kind: "duration", ...errorUtil.errToObj(message) }); } regex(regex2, message) { return this._addCheck({ kind: "regex", regex: regex2, ...errorUtil.errToObj(message) }); } includes(value, options) { return this._addCheck({ kind: "includes", value, position: options?.position, ...errorUtil.errToObj(options?.message) }); } startsWith(value, message) { return this._addCheck({ kind: "startsWith", value, ...errorUtil.errToObj(message) }); } endsWith(value, message) { return this._addCheck({ kind: "endsWith", value, ...errorUtil.errToObj(message) }); } min(minLength, message) { return this._addCheck({ kind: "min", value: minLength, ...errorUtil.errToObj(message) }); } max(maxLength, message) { return this._addCheck({ kind: "max", value: maxLength, ...errorUtil.errToObj(message) }); } length(len, message) { return this._addCheck({ kind: "length", value: len, ...errorUtil.errToObj(message) }); } /** * Equivalent to `.min(1)` */ nonempty(message) { return this.min(1, errorUtil.errToObj(message)); } trim() { return new _ZodString({ ...this._def, checks: [...this._def.checks, { kind: "trim" }] }); } toLowerCase() { return new _ZodString({ ...this._def, checks: [...this._def.checks, { kind: "toLowerCase" }] }); } toUpperCase() { return new _ZodString({ ...this._def, checks: [...this._def.checks, { kind: "toUpperCase" }] }); } get isDatetime() { return !!this._def.checks.find((ch2) => ch2.kind === "datetime"); } get isDate() { return !!this._def.checks.find((ch2) => ch2.kind === "date"); } get isTime() { return !!this._def.checks.find((ch2) => ch2.kind === "time"); } get isDuration() { return !!this._def.checks.find((ch2) => ch2.kind === "duration"); } get isEmail() { return !!this._def.checks.find((ch2) => ch2.kind === "email"); } get isURL() { return !!this._def.checks.find((ch2) => ch2.kind === "url"); } get isEmoji() { return !!this._def.checks.find((ch2) => ch2.kind === "emoji"); } get isUUID() { return !!this._def.checks.find((ch2) => ch2.kind === "uuid"); } get isNANOID() { return !!this._def.checks.find((ch2) => ch2.kind === "nanoid"); } get isCUID() { return !!this._def.checks.find((ch2) => ch2.kind === "cuid"); } get isCUID2() { return !!this._def.checks.find((ch2) => ch2.kind === "cuid2"); } get isULID() { return !!this._def.checks.find((ch2) => ch2.kind === "ulid"); } get isIP() { return !!this._def.checks.find((ch2) => ch2.kind === "ip"); } get isCIDR() { return !!this._def.checks.find((ch2) => ch2.kind === "cidr"); } get isBase64() { return !!this._def.checks.find((ch2) => ch2.kind === "base64"); } get isBase64url() { return !!this._def.checks.find((ch2) => ch2.kind === "base64url"); } get minLength() { let min = null; for (const ch2 of this._def.checks) { if (ch2.kind === "min") { if (min === null || ch2.value > min) min = ch2.value; } } return min; } get maxLength() { let max = null; for (const ch2 of this._def.checks) { if (ch2.kind === "max") { if (max === null || ch2.value < max) max = ch2.value; } } return max; } }; ZodString.create = (params) => { return new ZodString({ checks: [], typeName: ZodFirstPartyTypeKind.ZodString, coerce: params?.coerce ?? false, ...processCreateParams(params) }); }; __name(floatSafeRemainder, "floatSafeRemainder"); ZodNumber = class _ZodNumber extends ZodType { static { __name(this, "ZodNumber"); } constructor() { super(...arguments); this.min = this.gte; this.max = this.lte; this.step = this.multipleOf; } _parse(input) { if (this._def.coerce) { input.data = Number(input.data); } const parsedType = this._getType(input); if (parsedType !== ZodParsedType.number) { const ctx2 = this._getOrReturnCtx(input); addIssueToContext(ctx2, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.number, received: ctx2.parsedType }); return INVALID; } let ctx = void 0; const status2 = new ParseStatus(); for (const check of this._def.checks) { if (check.kind === "int") { if (!util.isInteger(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: "integer", received: "float", message: check.message }); status2.dirty(); } } else if (check.kind === "min") { const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; if (tooSmall) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_small, minimum: check.value, type: "number", inclusive: check.inclusive, exact: false, message: check.message }); status2.dirty(); } } else if (check.kind === "max") { const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; if (tooBig) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_big, maximum: check.value, type: "number", inclusive: check.inclusive, exact: false, message: check.message }); status2.dirty(); } } else if (check.kind === "multipleOf") { if (floatSafeRemainder(input.data, check.value) !== 0) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.not_multiple_of, multipleOf: check.value, message: check.message }); status2.dirty(); } } else if (check.kind === "finite") { if (!Number.isFinite(input.data)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.not_finite, message: check.message }); status2.dirty(); } } else { util.assertNever(check); } } return { status: status2.value, value: input.data }; } gte(value, message) { return this.setLimit("min", value, true, errorUtil.toString(message)); } gt(value, message) { return this.setLimit("min", value, false, errorUtil.toString(message)); } lte(value, message) { return this.setLimit("max", value, true, errorUtil.toString(message)); } lt(value, message) { return this.setLimit("max", value, false, errorUtil.toString(message)); } setLimit(kind2, value, inclusive, message) { return new _ZodNumber({ ...this._def, checks: [ ...this._def.checks, { kind: kind2, value, inclusive, message: errorUtil.toString(message) } ] }); } _addCheck(check) { return new _ZodNumber({ ...this._def, checks: [...this._def.checks, check] }); } int(message) { return this._addCheck({ kind: "int", message: errorUtil.toString(message) }); } positive(message) { return this._addCheck({ kind: "min", value: 0, inclusive: false, message: errorUtil.toString(message) }); } negative(message) { return this._addCheck({ kind: "max", value: 0, inclusive: false, message: errorUtil.toString(message) }); } nonpositive(message) { return this._addCheck({ kind: "max", value: 0, inclusive: true, message: errorUtil.toString(message) }); } nonnegative(message) { return this._addCheck({ kind: "min", value: 0, inclusive: true, message: errorUtil.toString(message) }); } multipleOf(value, message) { return this._addCheck({ kind: "multipleOf", value, message: errorUtil.toString(message) }); } finite(message) { return this._addCheck({ kind: "finite", message: errorUtil.toString(message) }); } safe(message) { return this._addCheck({ kind: "min", inclusive: true, value: Number.MIN_SAFE_INTEGER, message: errorUtil.toString(message) })._addCheck({ kind: "max", inclusive: true, value: Number.MAX_SAFE_INTEGER, message: errorUtil.toString(message) }); } get minValue() { let min = null; for (const ch2 of this._def.checks) { if (ch2.kind === "min") { if (min === null || ch2.value > min) min = ch2.value; } } return min; } get maxValue() { let max = null; for (const ch2 of this._def.checks) { if (ch2.kind === "max") { if (max === null || ch2.value < max) max = ch2.value; } } return max; } get isInt() { return !!this._def.checks.find((ch2) => ch2.kind === "int" || ch2.kind === "multipleOf" && util.isInteger(ch2.value)); } get isFinite() { let max = null; let min = null; for (const ch2 of this._def.checks) { if (ch2.kind === "finite" || ch2.kind === "int" || ch2.kind === "multipleOf") { return true; } else if (ch2.kind === "min") { if (min === null || ch2.value > min) min = ch2.value; } else if (ch2.kind === "max") { if (max === null || ch2.value < max) max = ch2.value; } } return Number.isFinite(min) && Number.isFinite(max); } }; ZodNumber.create = (params) => { return new ZodNumber({ checks: [], typeName: ZodFirstPartyTypeKind.ZodNumber, coerce: params?.coerce || false, ...processCreateParams(params) }); }; ZodBigInt = class _ZodBigInt extends ZodType { static { __name(this, "ZodBigInt"); } constructor() { super(...arguments); this.min = this.gte; this.max = this.lte; } _parse(input) { if (this._def.coerce) { try { input.data = BigInt(input.data); } catch { return this._getInvalidInput(input); } } const parsedType = this._getType(input); if (parsedType !== ZodParsedType.bigint) { return this._getInvalidInput(input); } let ctx = void 0; const status2 = new ParseStatus(); for (const check of this._def.checks) { if (check.kind === "min") { const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value; if (tooSmall) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_small, type: "bigint", minimum: check.value, inclusive: check.inclusive, message: check.message }); status2.dirty(); } } else if (check.kind === "max") { const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value; if (tooBig) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_big, type: "bigint", maximum: check.value, inclusive: check.inclusive, message: check.message }); status2.dirty(); } } else if (check.kind === "multipleOf") { if (input.data % check.value !== BigInt(0)) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.not_multiple_of, multipleOf: check.value, message: check.message }); status2.dirty(); } } else { util.assertNever(check); } } return { status: status2.value, value: input.data }; } _getInvalidInput(input) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.bigint, received: ctx.parsedType }); return INVALID; } gte(value, message) { return this.setLimit("min", value, true, errorUtil.toString(message)); } gt(value, message) { return this.setLimit("min", value, false, errorUtil.toString(message)); } lte(value, message) { return this.setLimit("max", value, true, errorUtil.toString(message)); } lt(value, message) { return this.setLimit("max", value, false, errorUtil.toString(message)); } setLimit(kind2, value, inclusive, message) { return new _ZodBigInt({ ...this._def, checks: [ ...this._def.checks, { kind: kind2, value, inclusive, message: errorUtil.toString(message) } ] }); } _addCheck(check) { return new _ZodBigInt({ ...this._def, checks: [...this._def.checks, check] }); } positive(message) { return this._addCheck({ kind: "min", value: BigInt(0), inclusive: false, message: errorUtil.toString(message) }); } negative(message) { return this._addCheck({ kind: "max", value: BigInt(0), inclusive: false, message: errorUtil.toString(message) }); } nonpositive(message) { return this._addCheck({ kind: "max", value: BigInt(0), inclusive: true, message: errorUtil.toString(message) }); } nonnegative(message) { return this._addCheck({ kind: "min", value: BigInt(0), inclusive: true, message: errorUtil.toString(message) }); } multipleOf(value, message) { return this._addCheck({ kind: "multipleOf", value, message: errorUtil.toString(message) }); } get minValue() { let min = null; for (const ch2 of this._def.checks) { if (ch2.kind === "min") { if (min === null || ch2.value > min) min = ch2.value; } } return min; } get maxValue() { let max = null; for (const ch2 of this._def.checks) { if (ch2.kind === "max") { if (max === null || ch2.value < max) max = ch2.value; } } return max; } }; ZodBigInt.create = (params) => { return new ZodBigInt({ checks: [], typeName: ZodFirstPartyTypeKind.ZodBigInt, coerce: params?.coerce ?? false, ...processCreateParams(params) }); }; ZodBoolean = class extends ZodType { static { __name(this, "ZodBoolean"); } _parse(input) { if (this._def.coerce) { input.data = Boolean(input.data); } const parsedType = this._getType(input); if (parsedType !== ZodParsedType.boolean) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.boolean, received: ctx.parsedType }); return INVALID; } return OK(input.data); } }; ZodBoolean.create = (params) => { return new ZodBoolean({ typeName: ZodFirstPartyTypeKind.ZodBoolean, coerce: params?.coerce || false, ...processCreateParams(params) }); }; ZodDate = class _ZodDate extends ZodType { static { __name(this, "ZodDate"); } _parse(input) { if (this._def.coerce) { input.data = new Date(input.data); } const parsedType = this._getType(input); if (parsedType !== ZodParsedType.date) { const ctx2 = this._getOrReturnCtx(input); addIssueToContext(ctx2, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.date, received: ctx2.parsedType }); return INVALID; } if (Number.isNaN(input.data.getTime())) { const ctx2 = this._getOrReturnCtx(input); addIssueToContext(ctx2, { code: ZodIssueCode.invalid_date }); return INVALID; } const status2 = new ParseStatus(); let ctx = void 0; for (const check of this._def.checks) { if (check.kind === "min") { if (input.data.getTime() < check.value) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_small, message: check.message, inclusive: true, exact: false, minimum: check.value, type: "date" }); status2.dirty(); } } else if (check.kind === "max") { if (input.data.getTime() > check.value) { ctx = this._getOrReturnCtx(input, ctx); addIssueToContext(ctx, { code: ZodIssueCode.too_big, message: check.message, inclusive: true, exact: false, maximum: check.value, type: "date" }); status2.dirty(); } } else { util.assertNever(check); } } return { status: status2.value, value: new Date(input.data.getTime()) }; } _addCheck(check) { return new _ZodDate({ ...this._def, checks: [...this._def.checks, check] }); } min(minDate, message) { return this._addCheck({ kind: "min", value: minDate.getTime(), message: errorUtil.toString(message) }); } max(maxDate, message) { return this._addCheck({ kind: "max", value: maxDate.getTime(), message: errorUtil.toString(message) }); } get minDate() { let min = null; for (const ch2 of this._def.checks) { if (ch2.kind === "min") { if (min === null || ch2.value > min) min = ch2.value; } } return min != null ? new Date(min) : null; } get maxDate() { let max = null; for (const ch2 of this._def.checks) { if (ch2.kind === "max") { if (max === null || ch2.value < max) max = ch2.value; } } return max != null ? new Date(max) : null; } }; ZodDate.create = (params) => { return new ZodDate({ checks: [], coerce: params?.coerce || false, typeName: ZodFirstPartyTypeKind.ZodDate, ...processCreateParams(params) }); }; ZodSymbol = class extends ZodType { static { __name(this, "ZodSymbol"); } _parse(input) { const parsedType = this._getType(input); if (parsedType !== ZodParsedType.symbol) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.symbol, received: ctx.parsedType }); return INVALID; } return OK(input.data); } }; ZodSymbol.create = (params) => { return new ZodSymbol({ typeName: ZodFirstPartyTypeKind.ZodSymbol, ...processCreateParams(params) }); }; ZodUndefined = class extends ZodType { static { __name(this, "ZodUndefined"); } _parse(input) { const parsedType = this._getType(input); if (parsedType !== ZodParsedType.undefined) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.undefined, received: ctx.parsedType }); return INVALID; } return OK(input.data); } }; ZodUndefined.create = (params) => { return new ZodUndefined({ typeName: ZodFirstPartyTypeKind.ZodUndefined, ...processCreateParams(params) }); }; ZodNull = class extends ZodType { static { __name(this, "ZodNull"); } _parse(input) { const parsedType = this._getType(input); if (parsedType !== ZodParsedType.null) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.null, received: ctx.parsedType }); return INVALID; } return OK(input.data); } }; ZodNull.create = (params) => { return new ZodNull({ typeName: ZodFirstPartyTypeKind.ZodNull, ...processCreateParams(params) }); }; ZodAny = class extends ZodType { static { __name(this, "ZodAny"); } constructor() { super(...arguments); this._any = true; } _parse(input) { return OK(input.data); } }; ZodAny.create = (params) => { return new ZodAny({ typeName: ZodFirstPartyTypeKind.ZodAny, ...processCreateParams(params) }); }; ZodUnknown = class extends ZodType { static { __name(this, "ZodUnknown"); } constructor() { super(...arguments); this._unknown = true; } _parse(input) { return OK(input.data); } }; ZodUnknown.create = (params) => { return new ZodUnknown({ typeName: ZodFirstPartyTypeKind.ZodUnknown, ...processCreateParams(params) }); }; ZodNever = class extends ZodType { static { __name(this, "ZodNever"); } _parse(input) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.never, received: ctx.parsedType }); return INVALID; } }; ZodNever.create = (params) => { return new ZodNever({ typeName: ZodFirstPartyTypeKind.ZodNever, ...processCreateParams(params) }); }; ZodVoid = class extends ZodType { static { __name(this, "ZodVoid"); } _parse(input) { const parsedType = this._getType(input); if (parsedType !== ZodParsedType.undefined) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.void, received: ctx.parsedType }); return INVALID; } return OK(input.data); } }; ZodVoid.create = (params) => { return new ZodVoid({ typeName: ZodFirstPartyTypeKind.ZodVoid, ...processCreateParams(params) }); }; ZodArray = class _ZodArray extends ZodType { static { __name(this, "ZodArray"); } _parse(input) { const { ctx, status: status2 } = this._processInputParams(input); const def = this._def; if (ctx.parsedType !== ZodParsedType.array) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.array, received: ctx.parsedType }); return INVALID; } if (def.exactLength !== null) { const tooBig = ctx.data.length > def.exactLength.value; const tooSmall = ctx.data.length < def.exactLength.value; if (tooBig || tooSmall) { addIssueToContext(ctx, { code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small, minimum: tooSmall ? def.exactLength.value : void 0, maximum: tooBig ? def.exactLength.value : void 0, type: "array", inclusive: true, exact: true, message: def.exactLength.message }); status2.dirty(); } } if (def.minLength !== null) { if (ctx.data.length < def.minLength.value) { addIssueToContext(ctx, { code: ZodIssueCode.too_small, minimum: def.minLength.value, type: "array", inclusive: true, exact: false, message: def.minLength.message }); status2.dirty(); } } if (def.maxLength !== null) { if (ctx.data.length > def.maxLength.value) { addIssueToContext(ctx, { code: ZodIssueCode.too_big, maximum: def.maxLength.value, type: "array", inclusive: true, exact: false, message: def.maxLength.message }); status2.dirty(); } } if (ctx.common.async) { return Promise.all([...ctx.data].map((item, i7) => { return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i7)); })).then((result2) => { return ParseStatus.mergeArray(status2, result2); }); } const result = [...ctx.data].map((item, i7) => { return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i7)); }); return ParseStatus.mergeArray(status2, result); } get element() { return this._def.type; } min(minLength, message) { return new _ZodArray({ ...this._def, minLength: { value: minLength, message: errorUtil.toString(message) } }); } max(maxLength, message) { return new _ZodArray({ ...this._def, maxLength: { value: maxLength, message: errorUtil.toString(message) } }); } length(len, message) { return new _ZodArray({ ...this._def, exactLength: { value: len, message: errorUtil.toString(message) } }); } nonempty(message) { return this.min(1, message); } }; ZodArray.create = (schema, params) => { return new ZodArray({ type: schema, minLength: null, maxLength: null, exactLength: null, typeName: ZodFirstPartyTypeKind.ZodArray, ...processCreateParams(params) }); }; __name(deepPartialify, "deepPartialify"); ZodObject = class _ZodObject extends ZodType { static { __name(this, "ZodObject"); } constructor() { super(...arguments); this._cached = null; this.nonstrict = this.passthrough; this.augment = this.extend; } _getCached() { if (this._cached !== null) return this._cached; const shape = this._def.shape(); const keys = util.objectKeys(shape); this._cached = { shape, keys }; return this._cached; } _parse(input) { const parsedType = this._getType(input); if (parsedType !== ZodParsedType.object) { const ctx2 = this._getOrReturnCtx(input); addIssueToContext(ctx2, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.object, received: ctx2.parsedType }); return INVALID; } const { status: status2, ctx } = this._processInputParams(input); const { shape, keys: shapeKeys } = this._getCached(); const extraKeys = []; if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === "strip")) { for (const key in ctx.data) { if (!shapeKeys.includes(key)) { extraKeys.push(key); } } } const pairs = []; for (const key of shapeKeys) { const keyValidator = shape[key]; const value = ctx.data[key]; pairs.push({ key: { status: "valid", value: key }, value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)), alwaysSet: key in ctx.data }); } if (this._def.catchall instanceof ZodNever) { const unknownKeys = this._def.unknownKeys; if (unknownKeys === "passthrough") { for (const key of extraKeys) { pairs.push({ key: { status: "valid", value: key }, value: { status: "valid", value: ctx.data[key] } }); } } else if (unknownKeys === "strict") { if (extraKeys.length > 0) { addIssueToContext(ctx, { code: ZodIssueCode.unrecognized_keys, keys: extraKeys }); status2.dirty(); } } else if (unknownKeys === "strip") ; else { throw new Error(`Internal ZodObject error: invalid unknownKeys value.`); } } else { const catchall = this._def.catchall; for (const key of extraKeys) { const value = ctx.data[key]; pairs.push({ key: { status: "valid", value: key }, value: catchall._parse( new ParseInputLazyPath(ctx, value, ctx.path, key) //, ctx.child(key), value, getParsedType(value) ), alwaysSet: key in ctx.data }); } } if (ctx.common.async) { return Promise.resolve().then(async () => { const syncPairs = []; for (const pair of pairs) { const key = await pair.key; const value = await pair.value; syncPairs.push({ key, value, alwaysSet: pair.alwaysSet }); } return syncPairs; }).then((syncPairs) => { return ParseStatus.mergeObjectSync(status2, syncPairs); }); } else { return ParseStatus.mergeObjectSync(status2, pairs); } } get shape() { return this._def.shape(); } strict(message) { errorUtil.errToObj; return new _ZodObject({ ...this._def, unknownKeys: "strict", ...message !== void 0 ? { errorMap: /* @__PURE__ */ __name((issue, ctx) => { const defaultError = this._def.errorMap?.(issue, ctx).message ?? ctx.defaultError; if (issue.code === "unrecognized_keys") return { message: errorUtil.errToObj(message).message ?? defaultError }; return { message: defaultError }; }, "errorMap") } : {} }); } strip() { return new _ZodObject({ ...this._def, unknownKeys: "strip" }); } passthrough() { return new _ZodObject({ ...this._def, unknownKeys: "passthrough" }); } // const AugmentFactory = // (def: Def) => // ( // augmentation: Augmentation // ): ZodObject< // extendShape, Augmentation>, // Def["unknownKeys"], // Def["catchall"] // > => { // return new ZodObject({ // ...def, // shape: () => ({ // ...def.shape(), // ...augmentation, // }), // }) as any; // }; extend(augmentation) { return new _ZodObject({ ...this._def, shape: /* @__PURE__ */ __name(() => ({ ...this._def.shape(), ...augmentation }), "shape") }); } /** * Prior to zod@1.0.12 there was a bug in the * inferred type of merged objects. Please * upgrade if you are experiencing issues. */ merge(merging) { const merged = new _ZodObject({ unknownKeys: merging._def.unknownKeys, catchall: merging._def.catchall, shape: /* @__PURE__ */ __name(() => ({ ...this._def.shape(), ...merging._def.shape() }), "shape"), typeName: ZodFirstPartyTypeKind.ZodObject }); return merged; } // merge< // Incoming extends AnyZodObject, // Augmentation extends Incoming["shape"], // NewOutput extends { // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation // ? Augmentation[k]["_output"] // : k extends keyof Output // ? Output[k] // : never; // }, // NewInput extends { // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation // ? Augmentation[k]["_input"] // : k extends keyof Input // ? Input[k] // : never; // } // >( // merging: Incoming // ): ZodObject< // extendShape>, // Incoming["_def"]["unknownKeys"], // Incoming["_def"]["catchall"], // NewOutput, // NewInput // > { // const merged: any = new ZodObject({ // unknownKeys: merging._def.unknownKeys, // catchall: merging._def.catchall, // shape: () => // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), // typeName: ZodFirstPartyTypeKind.ZodObject, // }) as any; // return merged; // } setKey(key, schema) { return this.augment({ [key]: schema }); } // merge( // merging: Incoming // ): //ZodObject = (merging) => { // ZodObject< // extendShape>, // Incoming["_def"]["unknownKeys"], // Incoming["_def"]["catchall"] // > { // // const mergedShape = objectUtil.mergeShapes( // // this._def.shape(), // // merging._def.shape() // // ); // const merged: any = new ZodObject({ // unknownKeys: merging._def.unknownKeys, // catchall: merging._def.catchall, // shape: () => // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()), // typeName: ZodFirstPartyTypeKind.ZodObject, // }) as any; // return merged; // } catchall(index) { return new _ZodObject({ ...this._def, catchall: index }); } pick(mask) { const shape = {}; for (const key of util.objectKeys(mask)) { if (mask[key] && this.shape[key]) { shape[key] = this.shape[key]; } } return new _ZodObject({ ...this._def, shape: /* @__PURE__ */ __name(() => shape, "shape") }); } omit(mask) { const shape = {}; for (const key of util.objectKeys(this.shape)) { if (!mask[key]) { shape[key] = this.shape[key]; } } return new _ZodObject({ ...this._def, shape: /* @__PURE__ */ __name(() => shape, "shape") }); } /** * @deprecated */ deepPartial() { return deepPartialify(this); } partial(mask) { const newShape = {}; for (const key of util.objectKeys(this.shape)) { const fieldSchema = this.shape[key]; if (mask && !mask[key]) { newShape[key] = fieldSchema; } else { newShape[key] = fieldSchema.optional(); } } return new _ZodObject({ ...this._def, shape: /* @__PURE__ */ __name(() => newShape, "shape") }); } required(mask) { const newShape = {}; for (const key of util.objectKeys(this.shape)) { if (mask && !mask[key]) { newShape[key] = this.shape[key]; } else { const fieldSchema = this.shape[key]; let newField = fieldSchema; while (newField instanceof ZodOptional) { newField = newField._def.innerType; } newShape[key] = newField; } } return new _ZodObject({ ...this._def, shape: /* @__PURE__ */ __name(() => newShape, "shape") }); } keyof() { return createZodEnum(util.objectKeys(this.shape)); } }; ZodObject.create = (shape, params) => { return new ZodObject({ shape: /* @__PURE__ */ __name(() => shape, "shape"), unknownKeys: "strip", catchall: ZodNever.create(), typeName: ZodFirstPartyTypeKind.ZodObject, ...processCreateParams(params) }); }; ZodObject.strictCreate = (shape, params) => { return new ZodObject({ shape: /* @__PURE__ */ __name(() => shape, "shape"), unknownKeys: "strict", catchall: ZodNever.create(), typeName: ZodFirstPartyTypeKind.ZodObject, ...processCreateParams(params) }); }; ZodObject.lazycreate = (shape, params) => { return new ZodObject({ shape, unknownKeys: "strip", catchall: ZodNever.create(), typeName: ZodFirstPartyTypeKind.ZodObject, ...processCreateParams(params) }); }; ZodUnion = class extends ZodType { static { __name(this, "ZodUnion"); } _parse(input) { const { ctx } = this._processInputParams(input); const options = this._def.options; function handleResults(results) { for (const result of results) { if (result.result.status === "valid") { return result.result; } } for (const result of results) { if (result.result.status === "dirty") { ctx.common.issues.push(...result.ctx.common.issues); return result.result; } } const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues)); addIssueToContext(ctx, { code: ZodIssueCode.invalid_union, unionErrors }); return INVALID; } __name(handleResults, "handleResults"); if (ctx.common.async) { return Promise.all(options.map(async (option) => { const childCtx = { ...ctx, common: { ...ctx.common, issues: [] }, parent: null }; return { result: await option._parseAsync({ data: ctx.data, path: ctx.path, parent: childCtx }), ctx: childCtx }; })).then(handleResults); } else { let dirty = void 0; const issues = []; for (const option of options) { const childCtx = { ...ctx, common: { ...ctx.common, issues: [] }, parent: null }; const result = option._parseSync({ data: ctx.data, path: ctx.path, parent: childCtx }); if (result.status === "valid") { return result; } else if (result.status === "dirty" && !dirty) { dirty = { result, ctx: childCtx }; } if (childCtx.common.issues.length) { issues.push(childCtx.common.issues); } } if (dirty) { ctx.common.issues.push(...dirty.ctx.common.issues); return dirty.result; } const unionErrors = issues.map((issues2) => new ZodError(issues2)); addIssueToContext(ctx, { code: ZodIssueCode.invalid_union, unionErrors }); return INVALID; } } get options() { return this._def.options; } }; ZodUnion.create = (types12, params) => { return new ZodUnion({ options: types12, typeName: ZodFirstPartyTypeKind.ZodUnion, ...processCreateParams(params) }); }; getDiscriminator = /* @__PURE__ */ __name((type) => { if (type instanceof ZodLazy) { return getDiscriminator(type.schema); } else if (type instanceof ZodEffects) { return getDiscriminator(type.innerType()); } else if (type instanceof ZodLiteral) { return [type.value]; } else if (type instanceof ZodEnum) { return type.options; } else if (type instanceof ZodNativeEnum) { return util.objectValues(type.enum); } else if (type instanceof ZodDefault) { return getDiscriminator(type._def.innerType); } else if (type instanceof ZodUndefined) { return [void 0]; } else if (type instanceof ZodNull) { return [null]; } else if (type instanceof ZodOptional) { return [void 0, ...getDiscriminator(type.unwrap())]; } else if (type instanceof ZodNullable) { return [null, ...getDiscriminator(type.unwrap())]; } else if (type instanceof ZodBranded) { return getDiscriminator(type.unwrap()); } else if (type instanceof ZodReadonly) { return getDiscriminator(type.unwrap()); } else if (type instanceof ZodCatch) { return getDiscriminator(type._def.innerType); } else { return []; } }, "getDiscriminator"); ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType { static { __name(this, "ZodDiscriminatedUnion"); } _parse(input) { const { ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.object) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.object, received: ctx.parsedType }); return INVALID; } const discriminator = this.discriminator; const discriminatorValue = ctx.data[discriminator]; const option = this.optionsMap.get(discriminatorValue); if (!option) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_union_discriminator, options: Array.from(this.optionsMap.keys()), path: [discriminator] }); return INVALID; } if (ctx.common.async) { return option._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }); } else { return option._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); } } get discriminator() { return this._def.discriminator; } get options() { return this._def.options; } get optionsMap() { return this._def.optionsMap; } /** * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. * However, it only allows a union of objects, all of which need to share a discriminator property. This property must * have a different value for each object in the union. * @param discriminator the name of the discriminator property * @param types an array of object schemas * @param params */ static create(discriminator, options, params) { const optionsMap = /* @__PURE__ */ new Map(); for (const type of options) { const discriminatorValues = getDiscriminator(type.shape[discriminator]); if (!discriminatorValues.length) { throw new Error(`A discriminator value for key \`${discriminator}\` could not be extracted from all schema options`); } for (const value of discriminatorValues) { if (optionsMap.has(value)) { throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`); } optionsMap.set(value, type); } } return new _ZodDiscriminatedUnion({ typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion, discriminator, options, optionsMap, ...processCreateParams(params) }); } }; __name(mergeValues, "mergeValues"); ZodIntersection = class extends ZodType { static { __name(this, "ZodIntersection"); } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); const handleParsed = /* @__PURE__ */ __name((parsedLeft, parsedRight) => { if (isAborted(parsedLeft) || isAborted(parsedRight)) { return INVALID; } const merged = mergeValues(parsedLeft.value, parsedRight.value); if (!merged.valid) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_intersection_types }); return INVALID; } if (isDirty(parsedLeft) || isDirty(parsedRight)) { status2.dirty(); } return { status: status2.value, value: merged.data }; }, "handleParsed"); if (ctx.common.async) { return Promise.all([ this._def.left._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }), this._def.right._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }) ]).then(([left2, right2]) => handleParsed(left2, right2)); } else { return handleParsed(this._def.left._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }), this._def.right._parseSync({ data: ctx.data, path: ctx.path, parent: ctx })); } } }; ZodIntersection.create = (left2, right2, params) => { return new ZodIntersection({ left: left2, right: right2, typeName: ZodFirstPartyTypeKind.ZodIntersection, ...processCreateParams(params) }); }; ZodTuple = class _ZodTuple extends ZodType { static { __name(this, "ZodTuple"); } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.array) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.array, received: ctx.parsedType }); return INVALID; } if (ctx.data.length < this._def.items.length) { addIssueToContext(ctx, { code: ZodIssueCode.too_small, minimum: this._def.items.length, inclusive: true, exact: false, type: "array" }); return INVALID; } const rest = this._def.rest; if (!rest && ctx.data.length > this._def.items.length) { addIssueToContext(ctx, { code: ZodIssueCode.too_big, maximum: this._def.items.length, inclusive: true, exact: false, type: "array" }); status2.dirty(); } const items = [...ctx.data].map((item, itemIndex) => { const schema = this._def.items[itemIndex] || this._def.rest; if (!schema) return null; return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex)); }).filter((x7) => !!x7); if (ctx.common.async) { return Promise.all(items).then((results) => { return ParseStatus.mergeArray(status2, results); }); } else { return ParseStatus.mergeArray(status2, items); } } get items() { return this._def.items; } rest(rest) { return new _ZodTuple({ ...this._def, rest }); } }; ZodTuple.create = (schemas, params) => { if (!Array.isArray(schemas)) { throw new Error("You must pass an array of schemas to z.tuple([ ... ])"); } return new ZodTuple({ items: schemas, typeName: ZodFirstPartyTypeKind.ZodTuple, rest: null, ...processCreateParams(params) }); }; ZodRecord = class _ZodRecord extends ZodType { static { __name(this, "ZodRecord"); } get keySchema() { return this._def.keyType; } get valueSchema() { return this._def.valueType; } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.object) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.object, received: ctx.parsedType }); return INVALID; } const pairs = []; const keyType = this._def.keyType; const valueType = this._def.valueType; for (const key in ctx.data) { pairs.push({ key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)), value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key)), alwaysSet: key in ctx.data }); } if (ctx.common.async) { return ParseStatus.mergeObjectAsync(status2, pairs); } else { return ParseStatus.mergeObjectSync(status2, pairs); } } get element() { return this._def.valueType; } static create(first, second, third) { if (second instanceof ZodType) { return new _ZodRecord({ keyType: first, valueType: second, typeName: ZodFirstPartyTypeKind.ZodRecord, ...processCreateParams(third) }); } return new _ZodRecord({ keyType: ZodString.create(), valueType: first, typeName: ZodFirstPartyTypeKind.ZodRecord, ...processCreateParams(second) }); } }; ZodMap = class extends ZodType { static { __name(this, "ZodMap"); } get keySchema() { return this._def.keyType; } get valueSchema() { return this._def.valueType; } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.map) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.map, received: ctx.parsedType }); return INVALID; } const keyType = this._def.keyType; const valueType = this._def.valueType; const pairs = [...ctx.data.entries()].map(([key, value], index) => { return { key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, "key"])), value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, "value"])) }; }); if (ctx.common.async) { const finalMap = /* @__PURE__ */ new Map(); return Promise.resolve().then(async () => { for (const pair of pairs) { const key = await pair.key; const value = await pair.value; if (key.status === "aborted" || value.status === "aborted") { return INVALID; } if (key.status === "dirty" || value.status === "dirty") { status2.dirty(); } finalMap.set(key.value, value.value); } return { status: status2.value, value: finalMap }; }); } else { const finalMap = /* @__PURE__ */ new Map(); for (const pair of pairs) { const key = pair.key; const value = pair.value; if (key.status === "aborted" || value.status === "aborted") { return INVALID; } if (key.status === "dirty" || value.status === "dirty") { status2.dirty(); } finalMap.set(key.value, value.value); } return { status: status2.value, value: finalMap }; } } }; ZodMap.create = (keyType, valueType, params) => { return new ZodMap({ valueType, keyType, typeName: ZodFirstPartyTypeKind.ZodMap, ...processCreateParams(params) }); }; ZodSet = class _ZodSet extends ZodType { static { __name(this, "ZodSet"); } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.set) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.set, received: ctx.parsedType }); return INVALID; } const def = this._def; if (def.minSize !== null) { if (ctx.data.size < def.minSize.value) { addIssueToContext(ctx, { code: ZodIssueCode.too_small, minimum: def.minSize.value, type: "set", inclusive: true, exact: false, message: def.minSize.message }); status2.dirty(); } } if (def.maxSize !== null) { if (ctx.data.size > def.maxSize.value) { addIssueToContext(ctx, { code: ZodIssueCode.too_big, maximum: def.maxSize.value, type: "set", inclusive: true, exact: false, message: def.maxSize.message }); status2.dirty(); } } const valueType = this._def.valueType; function finalizeSet(elements2) { const parsedSet = /* @__PURE__ */ new Set(); for (const element of elements2) { if (element.status === "aborted") return INVALID; if (element.status === "dirty") status2.dirty(); parsedSet.add(element.value); } return { status: status2.value, value: parsedSet }; } __name(finalizeSet, "finalizeSet"); const elements = [...ctx.data.values()].map((item, i7) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i7))); if (ctx.common.async) { return Promise.all(elements).then((elements2) => finalizeSet(elements2)); } else { return finalizeSet(elements); } } min(minSize, message) { return new _ZodSet({ ...this._def, minSize: { value: minSize, message: errorUtil.toString(message) } }); } max(maxSize, message) { return new _ZodSet({ ...this._def, maxSize: { value: maxSize, message: errorUtil.toString(message) } }); } size(size, message) { return this.min(size, message).max(size, message); } nonempty(message) { return this.min(1, message); } }; ZodSet.create = (valueType, params) => { return new ZodSet({ valueType, minSize: null, maxSize: null, typeName: ZodFirstPartyTypeKind.ZodSet, ...processCreateParams(params) }); }; ZodFunction = class _ZodFunction extends ZodType { static { __name(this, "ZodFunction"); } constructor() { super(...arguments); this.validate = this.implement; } _parse(input) { const { ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.function) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.function, received: ctx.parsedType }); return INVALID; } function makeArgsIssue(args, error2) { return makeIssue({ data: args, path: ctx.path, errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x7) => !!x7), issueData: { code: ZodIssueCode.invalid_arguments, argumentsError: error2 } }); } __name(makeArgsIssue, "makeArgsIssue"); function makeReturnsIssue(returns, error2) { return makeIssue({ data: returns, path: ctx.path, errorMaps: [ctx.common.contextualErrorMap, ctx.schemaErrorMap, getErrorMap(), en_default].filter((x7) => !!x7), issueData: { code: ZodIssueCode.invalid_return_type, returnTypeError: error2 } }); } __name(makeReturnsIssue, "makeReturnsIssue"); const params = { errorMap: ctx.common.contextualErrorMap }; const fn2 = ctx.data; if (this._def.returns instanceof ZodPromise) { const me2 = this; return OK(async function(...args) { const error2 = new ZodError([]); const parsedArgs = await me2._def.args.parseAsync(args, params).catch((e9) => { error2.addIssue(makeArgsIssue(args, e9)); throw error2; }); const result = await Reflect.apply(fn2, this, parsedArgs); const parsedReturns = await me2._def.returns._def.type.parseAsync(result, params).catch((e9) => { error2.addIssue(makeReturnsIssue(result, e9)); throw error2; }); return parsedReturns; }); } else { const me2 = this; return OK(function(...args) { const parsedArgs = me2._def.args.safeParse(args, params); if (!parsedArgs.success) { throw new ZodError([makeArgsIssue(args, parsedArgs.error)]); } const result = Reflect.apply(fn2, this, parsedArgs.data); const parsedReturns = me2._def.returns.safeParse(result, params); if (!parsedReturns.success) { throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]); } return parsedReturns.data; }); } } parameters() { return this._def.args; } returnType() { return this._def.returns; } args(...items) { return new _ZodFunction({ ...this._def, args: ZodTuple.create(items).rest(ZodUnknown.create()) }); } returns(returnType) { return new _ZodFunction({ ...this._def, returns: returnType }); } implement(func) { const validatedFunc = this.parse(func); return validatedFunc; } strictImplement(func) { const validatedFunc = this.parse(func); return validatedFunc; } static create(args, returns, params) { return new _ZodFunction({ args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()), returns: returns || ZodUnknown.create(), typeName: ZodFirstPartyTypeKind.ZodFunction, ...processCreateParams(params) }); } }; ZodLazy = class extends ZodType { static { __name(this, "ZodLazy"); } get schema() { return this._def.getter(); } _parse(input) { const { ctx } = this._processInputParams(input); const lazySchema = this._def.getter(); return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx }); } }; ZodLazy.create = (getter, params) => { return new ZodLazy({ getter, typeName: ZodFirstPartyTypeKind.ZodLazy, ...processCreateParams(params) }); }; ZodLiteral = class extends ZodType { static { __name(this, "ZodLiteral"); } _parse(input) { if (input.data !== this._def.value) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { received: ctx.data, code: ZodIssueCode.invalid_literal, expected: this._def.value }); return INVALID; } return { status: "valid", value: input.data }; } get value() { return this._def.value; } }; ZodLiteral.create = (value, params) => { return new ZodLiteral({ value, typeName: ZodFirstPartyTypeKind.ZodLiteral, ...processCreateParams(params) }); }; __name(createZodEnum, "createZodEnum"); ZodEnum = class _ZodEnum extends ZodType { static { __name(this, "ZodEnum"); } _parse(input) { if (typeof input.data !== "string") { const ctx = this._getOrReturnCtx(input); const expectedValues = this._def.values; addIssueToContext(ctx, { expected: util.joinValues(expectedValues), received: ctx.parsedType, code: ZodIssueCode.invalid_type }); return INVALID; } if (!this._cache) { this._cache = new Set(this._def.values); } if (!this._cache.has(input.data)) { const ctx = this._getOrReturnCtx(input); const expectedValues = this._def.values; addIssueToContext(ctx, { received: ctx.data, code: ZodIssueCode.invalid_enum_value, options: expectedValues }); return INVALID; } return OK(input.data); } get options() { return this._def.values; } get enum() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } get Values() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } get Enum() { const enumValues = {}; for (const val2 of this._def.values) { enumValues[val2] = val2; } return enumValues; } extract(values, newDef = this._def) { return _ZodEnum.create(values, { ...this._def, ...newDef }); } exclude(values, newDef = this._def) { return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)), { ...this._def, ...newDef }); } }; ZodEnum.create = createZodEnum; ZodNativeEnum = class extends ZodType { static { __name(this, "ZodNativeEnum"); } _parse(input) { const nativeEnumValues = util.getValidEnumValues(this._def.values); const ctx = this._getOrReturnCtx(input); if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) { const expectedValues = util.objectValues(nativeEnumValues); addIssueToContext(ctx, { expected: util.joinValues(expectedValues), received: ctx.parsedType, code: ZodIssueCode.invalid_type }); return INVALID; } if (!this._cache) { this._cache = new Set(util.getValidEnumValues(this._def.values)); } if (!this._cache.has(input.data)) { const expectedValues = util.objectValues(nativeEnumValues); addIssueToContext(ctx, { received: ctx.data, code: ZodIssueCode.invalid_enum_value, options: expectedValues }); return INVALID; } return OK(input.data); } get enum() { return this._def.values; } }; ZodNativeEnum.create = (values, params) => { return new ZodNativeEnum({ values, typeName: ZodFirstPartyTypeKind.ZodNativeEnum, ...processCreateParams(params) }); }; ZodPromise = class extends ZodType { static { __name(this, "ZodPromise"); } unwrap() { return this._def.type; } _parse(input) { const { ctx } = this._processInputParams(input); if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) { addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.promise, received: ctx.parsedType }); return INVALID; } const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data); return OK(promisified.then((data) => { return this._def.type.parseAsync(data, { path: ctx.path, errorMap: ctx.common.contextualErrorMap }); })); } }; ZodPromise.create = (schema, params) => { return new ZodPromise({ type: schema, typeName: ZodFirstPartyTypeKind.ZodPromise, ...processCreateParams(params) }); }; ZodEffects = class extends ZodType { static { __name(this, "ZodEffects"); } innerType() { return this._def.schema; } sourceType() { return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema; } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); const effect = this._def.effect || null; const checkCtx = { addIssue: /* @__PURE__ */ __name((arg) => { addIssueToContext(ctx, arg); if (arg.fatal) { status2.abort(); } else { status2.dirty(); } }, "addIssue"), get path() { return ctx.path; } }; checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx); if (effect.type === "preprocess") { const processed = effect.transform(ctx.data, checkCtx); if (ctx.common.async) { return Promise.resolve(processed).then(async (processed2) => { if (status2.value === "aborted") return INVALID; const result = await this._def.schema._parseAsync({ data: processed2, path: ctx.path, parent: ctx }); if (result.status === "aborted") return INVALID; if (result.status === "dirty") return DIRTY(result.value); if (status2.value === "dirty") return DIRTY(result.value); return result; }); } else { if (status2.value === "aborted") return INVALID; const result = this._def.schema._parseSync({ data: processed, path: ctx.path, parent: ctx }); if (result.status === "aborted") return INVALID; if (result.status === "dirty") return DIRTY(result.value); if (status2.value === "dirty") return DIRTY(result.value); return result; } } if (effect.type === "refinement") { const executeRefinement = /* @__PURE__ */ __name((acc) => { const result = effect.refinement(acc, checkCtx); if (ctx.common.async) { return Promise.resolve(result); } if (result instanceof Promise) { throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead."); } return acc; }, "executeRefinement"); if (ctx.common.async === false) { const inner = this._def.schema._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inner.status === "aborted") return INVALID; if (inner.status === "dirty") status2.dirty(); executeRefinement(inner.value); return { status: status2.value, value: inner.value }; } else { return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => { if (inner.status === "aborted") return INVALID; if (inner.status === "dirty") status2.dirty(); return executeRefinement(inner.value).then(() => { return { status: status2.value, value: inner.value }; }); }); } } if (effect.type === "transform") { if (ctx.common.async === false) { const base = this._def.schema._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (!isValid(base)) return INVALID; const result = effect.transform(base.value, checkCtx); if (result instanceof Promise) { throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`); } return { status: status2.value, value: result }; } else { return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => { if (!isValid(base)) return INVALID; return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status2.value, value: result })); }); } } util.assertNever(effect); } }; ZodEffects.create = (schema, effect, params) => { return new ZodEffects({ schema, typeName: ZodFirstPartyTypeKind.ZodEffects, effect, ...processCreateParams(params) }); }; ZodEffects.createWithPreprocess = (preprocess, schema, params) => { return new ZodEffects({ schema, effect: { type: "preprocess", transform: preprocess }, typeName: ZodFirstPartyTypeKind.ZodEffects, ...processCreateParams(params) }); }; ZodOptional = class extends ZodType { static { __name(this, "ZodOptional"); } _parse(input) { const parsedType = this._getType(input); if (parsedType === ZodParsedType.undefined) { return OK(void 0); } return this._def.innerType._parse(input); } unwrap() { return this._def.innerType; } }; ZodOptional.create = (type, params) => { return new ZodOptional({ innerType: type, typeName: ZodFirstPartyTypeKind.ZodOptional, ...processCreateParams(params) }); }; ZodNullable = class extends ZodType { static { __name(this, "ZodNullable"); } _parse(input) { const parsedType = this._getType(input); if (parsedType === ZodParsedType.null) { return OK(null); } return this._def.innerType._parse(input); } unwrap() { return this._def.innerType; } }; ZodNullable.create = (type, params) => { return new ZodNullable({ innerType: type, typeName: ZodFirstPartyTypeKind.ZodNullable, ...processCreateParams(params) }); }; ZodDefault = class extends ZodType { static { __name(this, "ZodDefault"); } _parse(input) { const { ctx } = this._processInputParams(input); let data = ctx.data; if (ctx.parsedType === ZodParsedType.undefined) { data = this._def.defaultValue(); } return this._def.innerType._parse({ data, path: ctx.path, parent: ctx }); } removeDefault() { return this._def.innerType; } }; ZodDefault.create = (type, params) => { return new ZodDefault({ innerType: type, typeName: ZodFirstPartyTypeKind.ZodDefault, defaultValue: typeof params.default === "function" ? params.default : () => params.default, ...processCreateParams(params) }); }; ZodCatch = class extends ZodType { static { __name(this, "ZodCatch"); } _parse(input) { const { ctx } = this._processInputParams(input); const newCtx = { ...ctx, common: { ...ctx.common, issues: [] } }; const result = this._def.innerType._parse({ data: newCtx.data, path: newCtx.path, parent: { ...newCtx } }); if (isAsync(result)) { return result.then((result2) => { return { status: "valid", value: result2.status === "valid" ? result2.value : this._def.catchValue({ get error() { return new ZodError(newCtx.common.issues); }, input: newCtx.data }) }; }); } else { return { status: "valid", value: result.status === "valid" ? result.value : this._def.catchValue({ get error() { return new ZodError(newCtx.common.issues); }, input: newCtx.data }) }; } } removeCatch() { return this._def.innerType; } }; ZodCatch.create = (type, params) => { return new ZodCatch({ innerType: type, typeName: ZodFirstPartyTypeKind.ZodCatch, catchValue: typeof params.catch === "function" ? params.catch : () => params.catch, ...processCreateParams(params) }); }; ZodNaN = class extends ZodType { static { __name(this, "ZodNaN"); } _parse(input) { const parsedType = this._getType(input); if (parsedType !== ZodParsedType.nan) { const ctx = this._getOrReturnCtx(input); addIssueToContext(ctx, { code: ZodIssueCode.invalid_type, expected: ZodParsedType.nan, received: ctx.parsedType }); return INVALID; } return { status: "valid", value: input.data }; } }; ZodNaN.create = (params) => { return new ZodNaN({ typeName: ZodFirstPartyTypeKind.ZodNaN, ...processCreateParams(params) }); }; BRAND = Symbol("zod_brand"); ZodBranded = class extends ZodType { static { __name(this, "ZodBranded"); } _parse(input) { const { ctx } = this._processInputParams(input); const data = ctx.data; return this._def.type._parse({ data, path: ctx.path, parent: ctx }); } unwrap() { return this._def.type; } }; ZodPipeline = class _ZodPipeline extends ZodType { static { __name(this, "ZodPipeline"); } _parse(input) { const { status: status2, ctx } = this._processInputParams(input); if (ctx.common.async) { const handleAsync = /* @__PURE__ */ __name(async () => { const inResult = await this._def.in._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inResult.status === "aborted") return INVALID; if (inResult.status === "dirty") { status2.dirty(); return DIRTY(inResult.value); } else { return this._def.out._parseAsync({ data: inResult.value, path: ctx.path, parent: ctx }); } }, "handleAsync"); return handleAsync(); } else { const inResult = this._def.in._parseSync({ data: ctx.data, path: ctx.path, parent: ctx }); if (inResult.status === "aborted") return INVALID; if (inResult.status === "dirty") { status2.dirty(); return { status: "dirty", value: inResult.value }; } else { return this._def.out._parseSync({ data: inResult.value, path: ctx.path, parent: ctx }); } } } static create(a7, b11) { return new _ZodPipeline({ in: a7, out: b11, typeName: ZodFirstPartyTypeKind.ZodPipeline }); } }; ZodReadonly = class extends ZodType { static { __name(this, "ZodReadonly"); } _parse(input) { const result = this._def.innerType._parse(input); const freeze = /* @__PURE__ */ __name((data) => { if (isValid(data)) { data.value = Object.freeze(data.value); } return data; }, "freeze"); return isAsync(result) ? result.then((data) => freeze(data)) : freeze(result); } unwrap() { return this._def.innerType; } }; ZodReadonly.create = (type, params) => { return new ZodReadonly({ innerType: type, typeName: ZodFirstPartyTypeKind.ZodReadonly, ...processCreateParams(params) }); }; __name(cleanParams, "cleanParams"); __name(custom, "custom"); late = { object: ZodObject.lazycreate }; (function(ZodFirstPartyTypeKind2) { ZodFirstPartyTypeKind2["ZodString"] = "ZodString"; ZodFirstPartyTypeKind2["ZodNumber"] = "ZodNumber"; ZodFirstPartyTypeKind2["ZodNaN"] = "ZodNaN"; ZodFirstPartyTypeKind2["ZodBigInt"] = "ZodBigInt"; ZodFirstPartyTypeKind2["ZodBoolean"] = "ZodBoolean"; ZodFirstPartyTypeKind2["ZodDate"] = "ZodDate"; ZodFirstPartyTypeKind2["ZodSymbol"] = "ZodSymbol"; ZodFirstPartyTypeKind2["ZodUndefined"] = "ZodUndefined"; ZodFirstPartyTypeKind2["ZodNull"] = "ZodNull"; ZodFirstPartyTypeKind2["ZodAny"] = "ZodAny"; ZodFirstPartyTypeKind2["ZodUnknown"] = "ZodUnknown"; ZodFirstPartyTypeKind2["ZodNever"] = "ZodNever"; ZodFirstPartyTypeKind2["ZodVoid"] = "ZodVoid"; ZodFirstPartyTypeKind2["ZodArray"] = "ZodArray"; ZodFirstPartyTypeKind2["ZodObject"] = "ZodObject"; ZodFirstPartyTypeKind2["ZodUnion"] = "ZodUnion"; ZodFirstPartyTypeKind2["ZodDiscriminatedUnion"] = "ZodDiscriminatedUnion"; ZodFirstPartyTypeKind2["ZodIntersection"] = "ZodIntersection"; ZodFirstPartyTypeKind2["ZodTuple"] = "ZodTuple"; ZodFirstPartyTypeKind2["ZodRecord"] = "ZodRecord"; ZodFirstPartyTypeKind2["ZodMap"] = "ZodMap"; ZodFirstPartyTypeKind2["ZodSet"] = "ZodSet"; ZodFirstPartyTypeKind2["ZodFunction"] = "ZodFunction"; ZodFirstPartyTypeKind2["ZodLazy"] = "ZodLazy"; ZodFirstPartyTypeKind2["ZodLiteral"] = "ZodLiteral"; ZodFirstPartyTypeKind2["ZodEnum"] = "ZodEnum"; ZodFirstPartyTypeKind2["ZodEffects"] = "ZodEffects"; ZodFirstPartyTypeKind2["ZodNativeEnum"] = "ZodNativeEnum"; ZodFirstPartyTypeKind2["ZodOptional"] = "ZodOptional"; ZodFirstPartyTypeKind2["ZodNullable"] = "ZodNullable"; ZodFirstPartyTypeKind2["ZodDefault"] = "ZodDefault"; ZodFirstPartyTypeKind2["ZodCatch"] = "ZodCatch"; ZodFirstPartyTypeKind2["ZodPromise"] = "ZodPromise"; ZodFirstPartyTypeKind2["ZodBranded"] = "ZodBranded"; ZodFirstPartyTypeKind2["ZodPipeline"] = "ZodPipeline"; ZodFirstPartyTypeKind2["ZodReadonly"] = "ZodReadonly"; })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {})); instanceOfType = /* @__PURE__ */ __name((cls, params = { message: `Input not instance of ${cls.name}` }) => custom((data) => data instanceof cls, params), "instanceOfType"); stringType = ZodString.create; numberType = ZodNumber.create; nanType = ZodNaN.create; bigIntType = ZodBigInt.create; booleanType = ZodBoolean.create; dateType = ZodDate.create; symbolType = ZodSymbol.create; undefinedType = ZodUndefined.create; nullType = ZodNull.create; anyType = ZodAny.create; unknownType = ZodUnknown.create; neverType = ZodNever.create; voidType = ZodVoid.create; arrayType = ZodArray.create; objectType = ZodObject.create; strictObjectType = ZodObject.strictCreate; unionType = ZodUnion.create; discriminatedUnionType = ZodDiscriminatedUnion.create; intersectionType = ZodIntersection.create; tupleType = ZodTuple.create; recordType = ZodRecord.create; mapType = ZodMap.create; setType = ZodSet.create; functionType = ZodFunction.create; lazyType = ZodLazy.create; literalType = ZodLiteral.create; enumType = ZodEnum.create; nativeEnumType = ZodNativeEnum.create; promiseType = ZodPromise.create; effectsType = ZodEffects.create; optionalType = ZodOptional.create; nullableType = ZodNullable.create; preprocessType = ZodEffects.createWithPreprocess; pipelineType = ZodPipeline.create; ostring = /* @__PURE__ */ __name(() => stringType().optional(), "ostring"); onumber = /* @__PURE__ */ __name(() => numberType().optional(), "onumber"); oboolean = /* @__PURE__ */ __name(() => booleanType().optional(), "oboolean"); coerce = { string: /* @__PURE__ */ __name((arg) => ZodString.create({ ...arg, coerce: true }), "string"), number: /* @__PURE__ */ __name((arg) => ZodNumber.create({ ...arg, coerce: true }), "number"), boolean: /* @__PURE__ */ __name((arg) => ZodBoolean.create({ ...arg, coerce: true }), "boolean"), bigint: /* @__PURE__ */ __name((arg) => ZodBigInt.create({ ...arg, coerce: true }), "bigint"), date: /* @__PURE__ */ __name((arg) => ZodDate.create({ ...arg, coerce: true }), "date") }; NEVER = INVALID; } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js var external_exports = {}; __export(external_exports, { BRAND: () => BRAND, DIRTY: () => DIRTY, EMPTY_PATH: () => EMPTY_PATH, INVALID: () => INVALID, NEVER: () => NEVER, OK: () => OK, ParseStatus: () => ParseStatus, Schema: () => ZodType, ZodAny: () => ZodAny, ZodArray: () => ZodArray, ZodBigInt: () => ZodBigInt, ZodBoolean: () => ZodBoolean, ZodBranded: () => ZodBranded, ZodCatch: () => ZodCatch, ZodDate: () => ZodDate, ZodDefault: () => ZodDefault, ZodDiscriminatedUnion: () => ZodDiscriminatedUnion, ZodEffects: () => ZodEffects, ZodEnum: () => ZodEnum, ZodError: () => ZodError, ZodFirstPartyTypeKind: () => ZodFirstPartyTypeKind, ZodFunction: () => ZodFunction, ZodIntersection: () => ZodIntersection, ZodIssueCode: () => ZodIssueCode, ZodLazy: () => ZodLazy, ZodLiteral: () => ZodLiteral, ZodMap: () => ZodMap, ZodNaN: () => ZodNaN, ZodNativeEnum: () => ZodNativeEnum, ZodNever: () => ZodNever, ZodNull: () => ZodNull, ZodNullable: () => ZodNullable, ZodNumber: () => ZodNumber, ZodObject: () => ZodObject, ZodOptional: () => ZodOptional, ZodParsedType: () => ZodParsedType, ZodPipeline: () => ZodPipeline, ZodPromise: () => ZodPromise, ZodReadonly: () => ZodReadonly, ZodRecord: () => ZodRecord, ZodSchema: () => ZodType, ZodSet: () => ZodSet, ZodString: () => ZodString, ZodSymbol: () => ZodSymbol, ZodTransformer: () => ZodEffects, ZodTuple: () => ZodTuple, ZodType: () => ZodType, ZodUndefined: () => ZodUndefined, ZodUnion: () => ZodUnion, ZodUnknown: () => ZodUnknown, ZodVoid: () => ZodVoid, addIssueToContext: () => addIssueToContext, any: () => anyType, array: () => arrayType, bigint: () => bigIntType, boolean: () => booleanType, coerce: () => coerce, custom: () => custom, date: () => dateType, datetimeRegex: () => datetimeRegex, defaultErrorMap: () => en_default, discriminatedUnion: () => discriminatedUnionType, effect: () => effectsType, enum: () => enumType, function: () => functionType, getErrorMap: () => getErrorMap, getParsedType: () => getParsedType, instanceof: () => instanceOfType, intersection: () => intersectionType, isAborted: () => isAborted, isAsync: () => isAsync, isDirty: () => isDirty, isValid: () => isValid, late: () => late, lazy: () => lazyType, literal: () => literalType, makeIssue: () => makeIssue, map: () => mapType, nan: () => nanType, nativeEnum: () => nativeEnumType, never: () => neverType, null: () => nullType, nullable: () => nullableType, number: () => numberType, object: () => objectType, objectUtil: () => objectUtil, oboolean: () => oboolean, onumber: () => onumber, optional: () => optionalType, ostring: () => ostring, pipeline: () => pipelineType, preprocess: () => preprocessType, promise: () => promiseType, quotelessJson: () => quotelessJson, record: () => recordType, set: () => setType, setErrorMap: () => setErrorMap, strictObject: () => strictObjectType, string: () => stringType, symbol: () => symbolType, transformer: () => effectsType, tuple: () => tupleType, undefined: () => undefinedType, union: () => unionType, unknown: () => unknownType, util: () => util, void: () => voidType }); var init_external = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/external.js"() { init_import_meta_url(); init_errors(); init_parseUtil(); init_typeAliases(); init_util(); init_types2(); init_ZodError(); } }); // ../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js var init_zod = __esm({ "../../node_modules/.pnpm/zod@3.25.76/node_modules/zod/index.js"() { init_import_meta_url(); init_external(); init_external(); } }); // ../workers-shared/utils/types.ts var InternalConfigSchema, StaticRoutingSchema, MetadataStaticRedirectEntry, MetadataRedirectEntry, MetadataStaticRedirects, MetadataRedirects, MetadataHeaderEntry, MetadataHeaders, RedirectsSchema, HeadersSchema; var init_types3 = __esm({ "../workers-shared/utils/types.ts"() { init_import_meta_url(); init_zod(); InternalConfigSchema = external_exports.object({ account_id: external_exports.number().optional(), script_id: external_exports.number().optional(), debug: external_exports.boolean().optional() }); StaticRoutingSchema = external_exports.object({ user_worker: external_exports.array(external_exports.string()), asset_worker: external_exports.array(external_exports.string()).optional() }); external_exports.object({ invoke_user_worker_ahead_of_assets: external_exports.boolean().optional(), static_routing: StaticRoutingSchema.optional(), has_user_worker: external_exports.boolean().optional(), ...InternalConfigSchema.shape }); external_exports.union([ external_exports.object({ limitedAssetsOnly: external_exports.boolean().optional() }), external_exports.null() ]); MetadataStaticRedirectEntry = external_exports.object({ status: external_exports.number(), to: external_exports.string(), lineNumber: external_exports.number() }); MetadataRedirectEntry = external_exports.object({ status: external_exports.number(), to: external_exports.string() }); MetadataStaticRedirects = external_exports.record(MetadataStaticRedirectEntry); MetadataRedirects = external_exports.record(MetadataRedirectEntry); MetadataHeaderEntry = external_exports.object({ set: external_exports.record(external_exports.string()).optional(), unset: external_exports.array(external_exports.string()).optional() }); MetadataHeaders = external_exports.record(MetadataHeaderEntry); RedirectsSchema = external_exports.object({ version: external_exports.literal(1), staticRules: MetadataStaticRedirects, rules: MetadataRedirects }).optional(); HeadersSchema = external_exports.object({ version: external_exports.literal(2), rules: MetadataHeaders }).optional(); external_exports.object({ compatibility_date: external_exports.string().optional(), compatibility_flags: external_exports.array(external_exports.string()).optional(), html_handling: external_exports.enum([ "auto-trailing-slash", "force-trailing-slash", "drop-trailing-slash", "none" ]).optional(), not_found_handling: external_exports.enum(["single-page-application", "404-page", "none"]).optional(), redirects: RedirectsSchema, headers: HeadersSchema, has_static_routing: external_exports.boolean().optional(), ...InternalConfigSchema.shape }); } }); // ../../node_modules/.pnpm/ignore@5.3.1/node_modules/ignore/index.js var require_ignore = __commonJS({ "../../node_modules/.pnpm/ignore@5.3.1/node_modules/ignore/index.js"(exports, module4) { init_import_meta_url(); function makeArray(subject) { return Array.isArray(subject) ? subject : [subject]; } __name(makeArray, "makeArray"); var EMPTY = ""; var SPACE2 = " "; var ESCAPE = "\\"; var REGEX_TEST_BLANK_LINE = /^\s+$/; var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; var REGEX_SPLITALL_CRLF = /\r?\n/g; var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; var SLASH2 = "/"; var TMP_KEY_IGNORE = "node-ignore"; if (typeof Symbol !== "undefined") { TMP_KEY_IGNORE = Symbol.for("node-ignore"); } var KEY_IGNORE = TMP_KEY_IGNORE; var define2 = /* @__PURE__ */ __name((object, key, value) => Object.defineProperty(object, key, { value }), "define"); var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; var RETURN_FALSE = /* @__PURE__ */ __name(() => false, "RETURN_FALSE"); var sanitizeRange = /* @__PURE__ */ __name((range) => range.replace( REGEX_REGEXP_RANGE, (match3, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match3 : EMPTY ), "sanitizeRange"); var cleanRangeBackSlash = /* @__PURE__ */ __name((slashes) => { const { length } = slashes; return slashes.slice(0, length - length % 2); }, "cleanRangeBackSlash"); var REPLACERS = [ [ // remove BOM // TODO: // Other similar zero-width characters? /^\uFEFF/, () => EMPTY ], // > Trailing spaces are ignored unless they are quoted with backslash ("\") [ // (a\ ) -> (a ) // (a ) -> (a) // (a \ ) -> (a ) /\\?\s+$/, (match3) => match3.indexOf("\\") === 0 ? SPACE2 : EMPTY ], // replace (\ ) with ' ' [ /\\\s/g, () => SPACE2 ], // Escape metacharacters // which is written down by users but means special for regular expressions. // > There are 12 characters with special meanings: // > - the backslash \, // > - the caret ^, // > - the dollar sign $, // > - the period or dot ., // > - the vertical bar or pipe symbol |, // > - the question mark ?, // > - the asterisk or star *, // > - the plus sign +, // > - the opening parenthesis (, // > - the closing parenthesis ), // > - and the opening square bracket [, // > - the opening curly brace {, // > These special characters are often called "metacharacters". [ /[\\$.|*+(){^]/g, (match3) => `\\${match3}` ], [ // > a question mark (?) matches a single character /(?!\\)\?/g, () => "[^/]" ], // leading slash [ // > A leading slash matches the beginning of the pathname. // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". // A leading slash matches the beginning of the pathname /^\//, () => "^" ], // replace special metacharacter slash after the leading slash [ /\//g, () => "\\/" ], [ // > A leading "**" followed by a slash means match in all directories. // > For example, "**/foo" matches file or directory "foo" anywhere, // > the same as pattern "foo". // > "**/foo/bar" matches file or directory "bar" anywhere that is directly // > under directory "foo". // Notice that the '*'s have been replaced as '\\*' /^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' () => "^(?:.*\\/)?" ], // starting [ // there will be no leading '/' // (which has been replaced by section "leading slash") // If starts with '**', adding a '^' to the regular expression also works /^(?=[^^])/, /* @__PURE__ */ __name(function startingReplacer() { return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; }, "startingReplacer") ], // two globstars [ // Use lookahead assertions so that we could match more than one `'/**'` /\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories // should not use '*', or it will be replaced by the next replacer // Check if it is not the last `'/**'` (_5, index, str) => index + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" ], // normal intermediate wildcards [ // Never replace escaped '*' // ignore rule '\*' will match the path '*' // 'abc.*/' -> go // 'abc.*' -> skip this rule, // coz trailing single wildcard will be handed by [trailing wildcard] /(^|[^\\]+)(\\\*)+(?=.+)/g, // '*.js' matches '.js' // '*.js' doesn't match 'abc' (_5, p1, p22) => { const unescaped = p22.replace(/\\\*/g, "[^\\/]*"); return p1 + unescaped; } ], [ // unescape, revert step 3 except for back slash // For example, if a user escape a '\\*', // after step 3, the result will be '\\\\\\*' /\\\\\\(?=[$.|*+(){^])/g, () => ESCAPE ], [ // '\\\\' -> '\\' /\\\\/g, () => ESCAPE ], [ // > The range notation, e.g. [a-zA-Z], // > can be used to match one of the characters in a range. // `\` is escaped by step 3 /(\\)?\[([^\]/]*?)(\\*)($|\])/g, (match3, leadEscape, range, endEscape, close2) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close2}` : close2 === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" ], // ending [ // 'js' will not match 'js.' // 'ab' will not match 'abc' /(?:[^*])$/, // WTF! // https://git-scm.com/docs/gitignore // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) // which re-fixes #24, #38 // > If there is a separator at the end of the pattern then the pattern // > will only match directories, otherwise the pattern can match both // > files and directories. // 'js*' will not match 'a.js' // 'js/' will not match 'a.js' // 'js' will match 'a.js' and 'a.js/' (match3) => /\/$/.test(match3) ? `${match3}$` : `${match3}(?=$|\\/$)` ], // trailing wildcard [ /(\^|\\\/)?\\\*$/, (_5, p1) => { const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; return `${prefix}(?=$|\\/$)`; } ] ]; var regexCache = /* @__PURE__ */ Object.create(null); var makeRegex = /* @__PURE__ */ __name((pattern, ignoreCase) => { let source = regexCache[pattern]; if (!source) { source = REPLACERS.reduce( (prev, current) => prev.replace(current[0], current[1].bind(pattern)), pattern ); regexCache[pattern] = source; } return ignoreCase ? new RegExp(source, "i") : new RegExp(source); }, "makeRegex"); var isString5 = /* @__PURE__ */ __name((subject) => typeof subject === "string", "isString"); var checkPattern = /* @__PURE__ */ __name((pattern) => pattern && isString5(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0, "checkPattern"); var splitPattern = /* @__PURE__ */ __name((pattern) => pattern.split(REGEX_SPLITALL_CRLF), "splitPattern"); var IgnoreRule = class { static { __name(this, "IgnoreRule"); } constructor(origin, pattern, negative, regex2) { this.origin = origin; this.pattern = pattern; this.negative = negative; this.regex = regex2; } }; var createRule = /* @__PURE__ */ __name((pattern, ignoreCase) => { const origin = pattern; let negative = false; if (pattern.indexOf("!") === 0) { negative = true; pattern = pattern.substr(1); } pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); const regex2 = makeRegex(pattern, ignoreCase); return new IgnoreRule( origin, pattern, negative, regex2 ); }, "createRule"); var throwError = /* @__PURE__ */ __name((message, Ctor) => { throw new Ctor(message); }, "throwError"); var checkPath = /* @__PURE__ */ __name((path82, originalPath, doThrow) => { if (!isString5(path82)) { return doThrow( `path must be a string, but got \`${originalPath}\``, TypeError ); } if (!path82) { return doThrow(`path must not be empty`, TypeError); } if (checkPath.isNotRelative(path82)) { const r9 = "`path.relative()`d"; return doThrow( `path should be a ${r9} string, but got "${originalPath}"`, RangeError ); } return true; }, "checkPath"); var isNotRelative = /* @__PURE__ */ __name((path82) => REGEX_TEST_INVALID_PATH.test(path82), "isNotRelative"); checkPath.isNotRelative = isNotRelative; checkPath.convert = (p7) => p7; var Ignore = class { static { __name(this, "Ignore"); } constructor({ ignorecase = true, ignoreCase = ignorecase, allowRelativePaths = false } = {}) { define2(this, KEY_IGNORE, true); this._rules = []; this._ignoreCase = ignoreCase; this._allowRelativePaths = allowRelativePaths; this._initCache(); } _initCache() { this._ignoreCache = /* @__PURE__ */ Object.create(null); this._testCache = /* @__PURE__ */ Object.create(null); } _addPattern(pattern) { if (pattern && pattern[KEY_IGNORE]) { this._rules = this._rules.concat(pattern._rules); this._added = true; return; } if (checkPattern(pattern)) { const rule = createRule(pattern, this._ignoreCase); this._added = true; this._rules.push(rule); } } // @param {Array | string | Ignore} pattern add(pattern) { this._added = false; makeArray( isString5(pattern) ? splitPattern(pattern) : pattern ).forEach(this._addPattern, this); if (this._added) { this._initCache(); } return this; } // legacy addPattern(pattern) { return this.add(pattern); } // | ignored : unignored // negative | 0:0 | 0:1 | 1:0 | 1:1 // -------- | ------- | ------- | ------- | -------- // 0 | TEST | TEST | SKIP | X // 1 | TESTIF | SKIP | TEST | X // - SKIP: always skip // - TEST: always test // - TESTIF: only test if checkUnignored // - X: that never happen // @param {boolean} whether should check if the path is unignored, // setting `checkUnignored` to `false` could reduce additional // path matching. // @returns {TestResult} true if a file is ignored _testOne(path82, checkUnignored) { let ignored = false; let unignored = false; this._rules.forEach((rule) => { const { negative } = rule; if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { return; } const matched = rule.regex.test(path82); if (matched) { ignored = !negative; unignored = negative; } }); return { ignored, unignored }; } // @returns {TestResult} _test(originalPath, cache6, checkUnignored, slices) { const path82 = originalPath && checkPath.convert(originalPath); checkPath( path82, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError ); return this._t(path82, cache6, checkUnignored, slices); } _t(path82, cache6, checkUnignored, slices) { if (path82 in cache6) { return cache6[path82]; } if (!slices) { slices = path82.split(SLASH2); } slices.pop(); if (!slices.length) { return cache6[path82] = this._testOne(path82, checkUnignored); } const parent = this._t( slices.join(SLASH2) + SLASH2, cache6, checkUnignored, slices ); return cache6[path82] = parent.ignored ? parent : this._testOne(path82, checkUnignored); } ignores(path82) { return this._test(path82, this._ignoreCache, false).ignored; } createFilter() { return (path82) => !this.ignores(path82); } filter(paths) { return makeArray(paths).filter(this.createFilter()); } // @returns {TestResult} test(path82) { return this._test(path82, this._testCache, true); } }; var factory = /* @__PURE__ */ __name((options) => new Ignore(options), "factory"); var isPathValid = /* @__PURE__ */ __name((path82) => checkPath(path82 && checkPath.convert(path82), path82, RETURN_FALSE), "isPathValid"); factory.isPathValid = isPathValid; factory.default = factory; module4.exports = factory; if ( // Detect `process` so that it can run in browsers. typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32") ) { const makePosix = /* @__PURE__ */ __name((str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"), "makePosix"); checkPath.convert = makePosix; const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; checkPath.isNotRelative = (path82) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path82) || isNotRelative(path82); } } }); // ../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/types/other.js var types, other_default; var init_other = __esm({ "../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/types/other.js"() { init_import_meta_url(); types = { "application/prs.cww": ["cww"], "application/prs.xsf+xml": ["xsf"], "application/vnd.1000minds.decision-model+xml": ["1km"], "application/vnd.3gpp.pic-bw-large": ["plb"], "application/vnd.3gpp.pic-bw-small": ["psb"], "application/vnd.3gpp.pic-bw-var": ["pvb"], "application/vnd.3gpp2.tcap": ["tcap"], "application/vnd.3m.post-it-notes": ["pwn"], "application/vnd.accpac.simply.aso": ["aso"], "application/vnd.accpac.simply.imp": ["imp"], "application/vnd.acucobol": ["acu"], "application/vnd.acucorp": ["atc", "acutc"], "application/vnd.adobe.air-application-installer-package+zip": ["air"], "application/vnd.adobe.formscentral.fcdt": ["fcdt"], "application/vnd.adobe.fxp": ["fxp", "fxpl"], "application/vnd.adobe.xdp+xml": ["xdp"], "application/vnd.adobe.xfdf": ["*xfdf"], "application/vnd.age": ["age"], "application/vnd.ahead.space": ["ahead"], "application/vnd.airzip.filesecure.azf": ["azf"], "application/vnd.airzip.filesecure.azs": ["azs"], "application/vnd.amazon.ebook": ["azw"], "application/vnd.americandynamics.acc": ["acc"], "application/vnd.amiga.ami": ["ami"], "application/vnd.android.package-archive": ["apk"], "application/vnd.anser-web-certificate-issue-initiation": ["cii"], "application/vnd.anser-web-funds-transfer-initiation": ["fti"], "application/vnd.antix.game-component": ["atx"], "application/vnd.apple.installer+xml": ["mpkg"], "application/vnd.apple.keynote": ["key"], "application/vnd.apple.mpegurl": ["m3u8"], "application/vnd.apple.numbers": ["numbers"], "application/vnd.apple.pages": ["pages"], "application/vnd.apple.pkpass": ["pkpass"], "application/vnd.aristanetworks.swi": ["swi"], "application/vnd.astraea-software.iota": ["iota"], "application/vnd.audiograph": ["aep"], "application/vnd.autodesk.fbx": ["fbx"], "application/vnd.balsamiq.bmml+xml": ["bmml"], "application/vnd.blueice.multipass": ["mpm"], "application/vnd.bmi": ["bmi"], "application/vnd.businessobjects": ["rep"], "application/vnd.chemdraw+xml": ["cdxml"], "application/vnd.chipnuts.karaoke-mmd": ["mmd"], "application/vnd.cinderella": ["cdy"], "application/vnd.citationstyles.style+xml": ["csl"], "application/vnd.claymore": ["cla"], "application/vnd.cloanto.rp9": ["rp9"], "application/vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"], "application/vnd.cluetrust.cartomobile-config": ["c11amc"], "application/vnd.cluetrust.cartomobile-config-pkg": ["c11amz"], "application/vnd.commonspace": ["csp"], "application/vnd.contact.cmsg": ["cdbcmsg"], "application/vnd.cosmocaller": ["cmc"], "application/vnd.crick.clicker": ["clkx"], "application/vnd.crick.clicker.keyboard": ["clkk"], "application/vnd.crick.clicker.palette": ["clkp"], "application/vnd.crick.clicker.template": ["clkt"], "application/vnd.crick.clicker.wordbank": ["clkw"], "application/vnd.criticaltools.wbs+xml": ["wbs"], "application/vnd.ctc-posml": ["pml"], "application/vnd.cups-ppd": ["ppd"], "application/vnd.curl.car": ["car"], "application/vnd.curl.pcurl": ["pcurl"], "application/vnd.dart": ["dart"], "application/vnd.data-vision.rdz": ["rdz"], "application/vnd.dbf": ["dbf"], "application/vnd.dcmp+xml": ["dcmp"], "application/vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"], "application/vnd.dece.ttml+xml": ["uvt", "uvvt"], "application/vnd.dece.unspecified": ["uvx", "uvvx"], "application/vnd.dece.zip": ["uvz", "uvvz"], "application/vnd.denovo.fcselayout-link": ["fe_launch"], "application/vnd.dna": ["dna"], "application/vnd.dolby.mlp": ["mlp"], "application/vnd.dpgraph": ["dpg"], "application/vnd.dreamfactory": ["dfac"], "application/vnd.ds-keypoint": ["kpxx"], "application/vnd.dvb.ait": ["ait"], "application/vnd.dvb.service": ["svc"], "application/vnd.dynageo": ["geo"], "application/vnd.ecowin.chart": ["mag"], "application/vnd.enliven": ["nml"], "application/vnd.epson.esf": ["esf"], "application/vnd.epson.msf": ["msf"], "application/vnd.epson.quickanime": ["qam"], "application/vnd.epson.salt": ["slt"], "application/vnd.epson.ssf": ["ssf"], "application/vnd.eszigno3+xml": ["es3", "et3"], "application/vnd.ezpix-album": ["ez2"], "application/vnd.ezpix-package": ["ez3"], "application/vnd.fdf": ["*fdf"], "application/vnd.fdsn.mseed": ["mseed"], "application/vnd.fdsn.seed": ["seed", "dataless"], "application/vnd.flographit": ["gph"], "application/vnd.fluxtime.clip": ["ftc"], "application/vnd.framemaker": ["fm", "frame", "maker", "book"], "application/vnd.frogans.fnc": ["fnc"], "application/vnd.frogans.ltf": ["ltf"], "application/vnd.fsc.weblaunch": ["fsc"], "application/vnd.fujitsu.oasys": ["oas"], "application/vnd.fujitsu.oasys2": ["oa2"], "application/vnd.fujitsu.oasys3": ["oa3"], "application/vnd.fujitsu.oasysgp": ["fg5"], "application/vnd.fujitsu.oasysprs": ["bh2"], "application/vnd.fujixerox.ddd": ["ddd"], "application/vnd.fujixerox.docuworks": ["xdw"], "application/vnd.fujixerox.docuworks.binder": ["xbd"], "application/vnd.fuzzysheet": ["fzs"], "application/vnd.genomatix.tuxedo": ["txd"], "application/vnd.geogebra.file": ["ggb"], "application/vnd.geogebra.slides": ["ggs"], "application/vnd.geogebra.tool": ["ggt"], "application/vnd.geometry-explorer": ["gex", "gre"], "application/vnd.geonext": ["gxt"], "application/vnd.geoplan": ["g2w"], "application/vnd.geospace": ["g3w"], "application/vnd.gmx": ["gmx"], "application/vnd.google-apps.document": ["gdoc"], "application/vnd.google-apps.drawing": ["gdraw"], "application/vnd.google-apps.form": ["gform"], "application/vnd.google-apps.jam": ["gjam"], "application/vnd.google-apps.map": ["gmap"], "application/vnd.google-apps.presentation": ["gslides"], "application/vnd.google-apps.script": ["gscript"], "application/vnd.google-apps.site": ["gsite"], "application/vnd.google-apps.spreadsheet": ["gsheet"], "application/vnd.google-earth.kml+xml": ["kml"], "application/vnd.google-earth.kmz": ["kmz"], "application/vnd.gov.sk.xmldatacontainer+xml": ["xdcf"], "application/vnd.grafeq": ["gqf", "gqs"], "application/vnd.groove-account": ["gac"], "application/vnd.groove-help": ["ghf"], "application/vnd.groove-identity-message": ["gim"], "application/vnd.groove-injector": ["grv"], "application/vnd.groove-tool-message": ["gtm"], "application/vnd.groove-tool-template": ["tpl"], "application/vnd.groove-vcard": ["vcg"], "application/vnd.hal+xml": ["hal"], "application/vnd.handheld-entertainment+xml": ["zmm"], "application/vnd.hbci": ["hbci"], "application/vnd.hhe.lesson-player": ["les"], "application/vnd.hp-hpgl": ["hpgl"], "application/vnd.hp-hpid": ["hpid"], "application/vnd.hp-hps": ["hps"], "application/vnd.hp-jlyt": ["jlt"], "application/vnd.hp-pcl": ["pcl"], "application/vnd.hp-pclxl": ["pclxl"], "application/vnd.hydrostatix.sof-data": ["sfd-hdstx"], "application/vnd.ibm.minipay": ["mpy"], "application/vnd.ibm.modcap": ["afp", "listafp", "list3820"], "application/vnd.ibm.rights-management": ["irm"], "application/vnd.ibm.secure-container": ["sc"], "application/vnd.iccprofile": ["icc", "icm"], "application/vnd.igloader": ["igl"], "application/vnd.immervision-ivp": ["ivp"], "application/vnd.immervision-ivu": ["ivu"], "application/vnd.insors.igm": ["igm"], "application/vnd.intercon.formnet": ["xpw", "xpx"], "application/vnd.intergeo": ["i2g"], "application/vnd.intu.qbo": ["qbo"], "application/vnd.intu.qfx": ["qfx"], "application/vnd.ipunplugged.rcprofile": ["rcprofile"], "application/vnd.irepository.package+xml": ["irp"], "application/vnd.is-xpr": ["xpr"], "application/vnd.isac.fcs": ["fcs"], "application/vnd.jam": ["jam"], "application/vnd.jcp.javame.midlet-rms": ["rms"], "application/vnd.jisp": ["jisp"], "application/vnd.joost.joda-archive": ["joda"], "application/vnd.kahootz": ["ktz", "ktr"], "application/vnd.kde.karbon": ["karbon"], "application/vnd.kde.kchart": ["chrt"], "application/vnd.kde.kformula": ["kfo"], "application/vnd.kde.kivio": ["flw"], "application/vnd.kde.kontour": ["kon"], "application/vnd.kde.kpresenter": ["kpr", "kpt"], "application/vnd.kde.kspread": ["ksp"], "application/vnd.kde.kword": ["kwd", "kwt"], "application/vnd.kenameaapp": ["htke"], "application/vnd.kidspiration": ["kia"], "application/vnd.kinar": ["kne", "knp"], "application/vnd.koan": ["skp", "skd", "skt", "skm"], "application/vnd.kodak-descriptor": ["sse"], "application/vnd.las.las+xml": ["lasxml"], "application/vnd.llamagraphics.life-balance.desktop": ["lbd"], "application/vnd.llamagraphics.life-balance.exchange+xml": ["lbe"], "application/vnd.lotus-1-2-3": ["123"], "application/vnd.lotus-approach": ["apr"], "application/vnd.lotus-freelance": ["pre"], "application/vnd.lotus-notes": ["nsf"], "application/vnd.lotus-organizer": ["org"], "application/vnd.lotus-screencam": ["scm"], "application/vnd.lotus-wordpro": ["lwp"], "application/vnd.macports.portpkg": ["portpkg"], "application/vnd.mapbox-vector-tile": ["mvt"], "application/vnd.mcd": ["mcd"], "application/vnd.medcalcdata": ["mc1"], "application/vnd.mediastation.cdkey": ["cdkey"], "application/vnd.mfer": ["mwf"], "application/vnd.mfmp": ["mfm"], "application/vnd.micrografx.flo": ["flo"], "application/vnd.micrografx.igx": ["igx"], "application/vnd.mif": ["mif"], "application/vnd.mobius.daf": ["daf"], "application/vnd.mobius.dis": ["dis"], "application/vnd.mobius.mbk": ["mbk"], "application/vnd.mobius.mqy": ["mqy"], "application/vnd.mobius.msl": ["msl"], "application/vnd.mobius.plc": ["plc"], "application/vnd.mobius.txf": ["txf"], "application/vnd.mophun.application": ["mpn"], "application/vnd.mophun.certificate": ["mpc"], "application/vnd.mozilla.xul+xml": ["xul"], "application/vnd.ms-artgalry": ["cil"], "application/vnd.ms-cab-compressed": ["cab"], "application/vnd.ms-excel": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"], "application/vnd.ms-excel.addin.macroenabled.12": ["xlam"], "application/vnd.ms-excel.sheet.binary.macroenabled.12": ["xlsb"], "application/vnd.ms-excel.sheet.macroenabled.12": ["xlsm"], "application/vnd.ms-excel.template.macroenabled.12": ["xltm"], "application/vnd.ms-fontobject": ["eot"], "application/vnd.ms-htmlhelp": ["chm"], "application/vnd.ms-ims": ["ims"], "application/vnd.ms-lrm": ["lrm"], "application/vnd.ms-officetheme": ["thmx"], "application/vnd.ms-outlook": ["msg"], "application/vnd.ms-pki.seccat": ["cat"], "application/vnd.ms-pki.stl": ["*stl"], "application/vnd.ms-powerpoint": ["ppt", "pps", "pot"], "application/vnd.ms-powerpoint.addin.macroenabled.12": ["ppam"], "application/vnd.ms-powerpoint.presentation.macroenabled.12": ["pptm"], "application/vnd.ms-powerpoint.slide.macroenabled.12": ["sldm"], "application/vnd.ms-powerpoint.slideshow.macroenabled.12": ["ppsm"], "application/vnd.ms-powerpoint.template.macroenabled.12": ["potm"], "application/vnd.ms-project": ["*mpp", "mpt"], "application/vnd.ms-visio.viewer": ["vdx"], "application/vnd.ms-word.document.macroenabled.12": ["docm"], "application/vnd.ms-word.template.macroenabled.12": ["dotm"], "application/vnd.ms-works": ["wps", "wks", "wcm", "wdb"], "application/vnd.ms-wpl": ["wpl"], "application/vnd.ms-xpsdocument": ["xps"], "application/vnd.mseq": ["mseq"], "application/vnd.musician": ["mus"], "application/vnd.muvee.style": ["msty"], "application/vnd.mynfc": ["taglet"], "application/vnd.nato.bindingdataobject+xml": ["bdo"], "application/vnd.neurolanguage.nlu": ["nlu"], "application/vnd.nitf": ["ntf", "nitf"], "application/vnd.noblenet-directory": ["nnd"], "application/vnd.noblenet-sealer": ["nns"], "application/vnd.noblenet-web": ["nnw"], "application/vnd.nokia.n-gage.ac+xml": ["*ac"], "application/vnd.nokia.n-gage.data": ["ngdat"], "application/vnd.nokia.n-gage.symbian.install": ["n-gage"], "application/vnd.nokia.radio-preset": ["rpst"], "application/vnd.nokia.radio-presets": ["rpss"], "application/vnd.novadigm.edm": ["edm"], "application/vnd.novadigm.edx": ["edx"], "application/vnd.novadigm.ext": ["ext"], "application/vnd.oasis.opendocument.chart": ["odc"], "application/vnd.oasis.opendocument.chart-template": ["otc"], "application/vnd.oasis.opendocument.database": ["odb"], "application/vnd.oasis.opendocument.formula": ["odf"], "application/vnd.oasis.opendocument.formula-template": ["odft"], "application/vnd.oasis.opendocument.graphics": ["odg"], "application/vnd.oasis.opendocument.graphics-template": ["otg"], "application/vnd.oasis.opendocument.image": ["odi"], "application/vnd.oasis.opendocument.image-template": ["oti"], "application/vnd.oasis.opendocument.presentation": ["odp"], "application/vnd.oasis.opendocument.presentation-template": ["otp"], "application/vnd.oasis.opendocument.spreadsheet": ["ods"], "application/vnd.oasis.opendocument.spreadsheet-template": ["ots"], "application/vnd.oasis.opendocument.text": ["odt"], "application/vnd.oasis.opendocument.text-master": ["odm"], "application/vnd.oasis.opendocument.text-template": ["ott"], "application/vnd.oasis.opendocument.text-web": ["oth"], "application/vnd.olpc-sugar": ["xo"], "application/vnd.oma.dd2+xml": ["dd2"], "application/vnd.openblox.game+xml": ["obgx"], "application/vnd.openofficeorg.extension": ["oxt"], "application/vnd.openstreetmap.data+xml": ["osm"], "application/vnd.openxmlformats-officedocument.presentationml.presentation": [ "pptx" ], "application/vnd.openxmlformats-officedocument.presentationml.slide": [ "sldx" ], "application/vnd.openxmlformats-officedocument.presentationml.slideshow": [ "ppsx" ], "application/vnd.openxmlformats-officedocument.presentationml.template": [ "potx" ], "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ["xlsx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.template": [ "xltx" ], "application/vnd.openxmlformats-officedocument.wordprocessingml.document": [ "docx" ], "application/vnd.openxmlformats-officedocument.wordprocessingml.template": [ "dotx" ], "application/vnd.osgeo.mapguide.package": ["mgp"], "application/vnd.osgi.dp": ["dp"], "application/vnd.osgi.subsystem": ["esa"], "application/vnd.palm": ["pdb", "pqa", "oprc"], "application/vnd.pawaafile": ["paw"], "application/vnd.pg.format": ["str"], "application/vnd.pg.osasli": ["ei6"], "application/vnd.picsel": ["efif"], "application/vnd.pmi.widget": ["wg"], "application/vnd.pocketlearn": ["plf"], "application/vnd.powerbuilder6": ["pbd"], "application/vnd.previewsystems.box": ["box"], "application/vnd.procrate.brushset": ["brushset"], "application/vnd.procreate.brush": ["brush"], "application/vnd.procreate.dream": ["drm"], "application/vnd.proteus.magazine": ["mgz"], "application/vnd.publishare-delta-tree": ["qps"], "application/vnd.pvi.ptid1": ["ptid"], "application/vnd.pwg-xhtml-print+xml": ["xhtm"], "application/vnd.quark.quarkxpress": [ "qxd", "qxt", "qwd", "qwt", "qxl", "qxb" ], "application/vnd.rar": ["rar"], "application/vnd.realvnc.bed": ["bed"], "application/vnd.recordare.musicxml": ["mxl"], "application/vnd.recordare.musicxml+xml": ["musicxml"], "application/vnd.rig.cryptonote": ["cryptonote"], "application/vnd.rim.cod": ["cod"], "application/vnd.rn-realmedia": ["rm"], "application/vnd.rn-realmedia-vbr": ["rmvb"], "application/vnd.route66.link66+xml": ["link66"], "application/vnd.sailingtracker.track": ["st"], "application/vnd.seemail": ["see"], "application/vnd.sema": ["sema"], "application/vnd.semd": ["semd"], "application/vnd.semf": ["semf"], "application/vnd.shana.informed.formdata": ["ifm"], "application/vnd.shana.informed.formtemplate": ["itp"], "application/vnd.shana.informed.interchange": ["iif"], "application/vnd.shana.informed.package": ["ipk"], "application/vnd.simtech-mindmapper": ["twd", "twds"], "application/vnd.smaf": ["mmf"], "application/vnd.smart.teacher": ["teacher"], "application/vnd.software602.filler.form+xml": ["fo"], "application/vnd.solent.sdkm+xml": ["sdkm", "sdkd"], "application/vnd.spotfire.dxp": ["dxp"], "application/vnd.spotfire.sfs": ["sfs"], "application/vnd.stardivision.calc": ["sdc"], "application/vnd.stardivision.draw": ["sda"], "application/vnd.stardivision.impress": ["sdd"], "application/vnd.stardivision.math": ["smf"], "application/vnd.stardivision.writer": ["sdw", "vor"], "application/vnd.stardivision.writer-global": ["sgl"], "application/vnd.stepmania.package": ["smzip"], "application/vnd.stepmania.stepchart": ["sm"], "application/vnd.sun.wadl+xml": ["wadl"], "application/vnd.sun.xml.calc": ["sxc"], "application/vnd.sun.xml.calc.template": ["stc"], "application/vnd.sun.xml.draw": ["sxd"], "application/vnd.sun.xml.draw.template": ["std"], "application/vnd.sun.xml.impress": ["sxi"], "application/vnd.sun.xml.impress.template": ["sti"], "application/vnd.sun.xml.math": ["sxm"], "application/vnd.sun.xml.writer": ["sxw"], "application/vnd.sun.xml.writer.global": ["sxg"], "application/vnd.sun.xml.writer.template": ["stw"], "application/vnd.sus-calendar": ["sus", "susp"], "application/vnd.svd": ["svd"], "application/vnd.symbian.install": ["sis", "sisx"], "application/vnd.syncml+xml": ["xsm"], "application/vnd.syncml.dm+wbxml": ["bdm"], "application/vnd.syncml.dm+xml": ["xdm"], "application/vnd.syncml.dmddf+xml": ["ddf"], "application/vnd.tao.intent-module-archive": ["tao"], "application/vnd.tcpdump.pcap": ["pcap", "cap", "dmp"], "application/vnd.tmobile-livetv": ["tmo"], "application/vnd.trid.tpt": ["tpt"], "application/vnd.triscape.mxs": ["mxs"], "application/vnd.trueapp": ["tra"], "application/vnd.ufdl": ["ufd", "ufdl"], "application/vnd.uiq.theme": ["utz"], "application/vnd.umajin": ["umj"], "application/vnd.unity": ["unityweb"], "application/vnd.uoml+xml": ["uoml", "uo"], "application/vnd.vcx": ["vcx"], "application/vnd.visio": ["vsd", "vst", "vss", "vsw", "vsdx", "vtx"], "application/vnd.visionary": ["vis"], "application/vnd.vsf": ["vsf"], "application/vnd.wap.wbxml": ["wbxml"], "application/vnd.wap.wmlc": ["wmlc"], "application/vnd.wap.wmlscriptc": ["wmlsc"], "application/vnd.webturbo": ["wtb"], "application/vnd.wolfram.player": ["nbp"], "application/vnd.wordperfect": ["wpd"], "application/vnd.wqd": ["wqd"], "application/vnd.wt.stf": ["stf"], "application/vnd.xara": ["xar"], "application/vnd.xfdl": ["xfdl"], "application/vnd.yamaha.hv-dic": ["hvd"], "application/vnd.yamaha.hv-script": ["hvs"], "application/vnd.yamaha.hv-voice": ["hvp"], "application/vnd.yamaha.openscoreformat": ["osf"], "application/vnd.yamaha.openscoreformat.osfpvg+xml": ["osfpvg"], "application/vnd.yamaha.smaf-audio": ["saf"], "application/vnd.yamaha.smaf-phrase": ["spf"], "application/vnd.yellowriver-custom-menu": ["cmp"], "application/vnd.zul": ["zir", "zirz"], "application/vnd.zzazz.deck+xml": ["zaz"], "application/x-7z-compressed": ["7z"], "application/x-abiword": ["abw"], "application/x-ace-compressed": ["ace"], "application/x-apple-diskimage": ["*dmg"], "application/x-arj": ["arj"], "application/x-authorware-bin": ["aab", "x32", "u32", "vox"], "application/x-authorware-map": ["aam"], "application/x-authorware-seg": ["aas"], "application/x-bcpio": ["bcpio"], "application/x-bdoc": ["*bdoc"], "application/x-bittorrent": ["torrent"], "application/x-blender": ["blend"], "application/x-blorb": ["blb", "blorb"], "application/x-bzip": ["bz"], "application/x-bzip2": ["bz2", "boz"], "application/x-cbr": ["cbr", "cba", "cbt", "cbz", "cb7"], "application/x-cdlink": ["vcd"], "application/x-cfs-compressed": ["cfs"], "application/x-chat": ["chat"], "application/x-chess-pgn": ["pgn"], "application/x-chrome-extension": ["crx"], "application/x-cocoa": ["cco"], "application/x-compressed": ["*rar"], "application/x-conference": ["nsc"], "application/x-cpio": ["cpio"], "application/x-csh": ["csh"], "application/x-debian-package": ["*deb", "udeb"], "application/x-dgc-compressed": ["dgc"], "application/x-director": [ "dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa" ], "application/x-doom": ["wad"], "application/x-dtbncx+xml": ["ncx"], "application/x-dtbook+xml": ["dtb"], "application/x-dtbresource+xml": ["res"], "application/x-dvi": ["dvi"], "application/x-envoy": ["evy"], "application/x-eva": ["eva"], "application/x-font-bdf": ["bdf"], "application/x-font-ghostscript": ["gsf"], "application/x-font-linux-psf": ["psf"], "application/x-font-pcf": ["pcf"], "application/x-font-snf": ["snf"], "application/x-font-type1": ["pfa", "pfb", "pfm", "afm"], "application/x-freearc": ["arc"], "application/x-futuresplash": ["spl"], "application/x-gca-compressed": ["gca"], "application/x-glulx": ["ulx"], "application/x-gnumeric": ["gnumeric"], "application/x-gramps-xml": ["gramps"], "application/x-gtar": ["gtar"], "application/x-hdf": ["hdf"], "application/x-httpd-php": ["php"], "application/x-install-instructions": ["install"], "application/x-ipynb+json": ["ipynb"], "application/x-iso9660-image": ["*iso"], "application/x-iwork-keynote-sffkey": ["*key"], "application/x-iwork-numbers-sffnumbers": ["*numbers"], "application/x-iwork-pages-sffpages": ["*pages"], "application/x-java-archive-diff": ["jardiff"], "application/x-java-jnlp-file": ["jnlp"], "application/x-keepass2": ["kdbx"], "application/x-latex": ["latex"], "application/x-lua-bytecode": ["luac"], "application/x-lzh-compressed": ["lzh", "lha"], "application/x-makeself": ["run"], "application/x-mie": ["mie"], "application/x-mobipocket-ebook": ["*prc", "mobi"], "application/x-ms-application": ["application"], "application/x-ms-shortcut": ["lnk"], "application/x-ms-wmd": ["wmd"], "application/x-ms-wmz": ["wmz"], "application/x-ms-xbap": ["xbap"], "application/x-msaccess": ["mdb"], "application/x-msbinder": ["obd"], "application/x-mscardfile": ["crd"], "application/x-msclip": ["clp"], "application/x-msdos-program": ["*exe"], "application/x-msdownload": ["*exe", "*dll", "com", "bat", "*msi"], "application/x-msmediaview": ["mvb", "m13", "m14"], "application/x-msmetafile": ["*wmf", "*wmz", "*emf", "emz"], "application/x-msmoney": ["mny"], "application/x-mspublisher": ["pub"], "application/x-msschedule": ["scd"], "application/x-msterminal": ["trm"], "application/x-mswrite": ["wri"], "application/x-netcdf": ["nc", "cdf"], "application/x-ns-proxy-autoconfig": ["pac"], "application/x-nzb": ["nzb"], "application/x-perl": ["pl", "pm"], "application/x-pilot": ["*prc", "*pdb"], "application/x-pkcs12": ["p12", "pfx"], "application/x-pkcs7-certificates": ["p7b", "spc"], "application/x-pkcs7-certreqresp": ["p7r"], "application/x-rar-compressed": ["*rar"], "application/x-redhat-package-manager": ["rpm"], "application/x-research-info-systems": ["ris"], "application/x-sea": ["sea"], "application/x-sh": ["sh"], "application/x-shar": ["shar"], "application/x-shockwave-flash": ["swf"], "application/x-silverlight-app": ["xap"], "application/x-sql": ["*sql"], "application/x-stuffit": ["sit"], "application/x-stuffitx": ["sitx"], "application/x-subrip": ["srt"], "application/x-sv4cpio": ["sv4cpio"], "application/x-sv4crc": ["sv4crc"], "application/x-t3vm-image": ["t3"], "application/x-tads": ["gam"], "application/x-tar": ["tar"], "application/x-tcl": ["tcl", "tk"], "application/x-tex": ["tex"], "application/x-tex-tfm": ["tfm"], "application/x-texinfo": ["texinfo", "texi"], "application/x-tgif": ["*obj"], "application/x-ustar": ["ustar"], "application/x-virtualbox-hdd": ["hdd"], "application/x-virtualbox-ova": ["ova"], "application/x-virtualbox-ovf": ["ovf"], "application/x-virtualbox-vbox": ["vbox"], "application/x-virtualbox-vbox-extpack": ["vbox-extpack"], "application/x-virtualbox-vdi": ["vdi"], "application/x-virtualbox-vhd": ["vhd"], "application/x-virtualbox-vmdk": ["vmdk"], "application/x-wais-source": ["src"], "application/x-web-app-manifest+json": ["webapp"], "application/x-x509-ca-cert": ["der", "crt", "pem"], "application/x-xfig": ["fig"], "application/x-xliff+xml": ["*xlf"], "application/x-xpinstall": ["xpi"], "application/x-xz": ["xz"], "application/x-zip-compressed": ["*zip"], "application/x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"], "audio/vnd.dece.audio": ["uva", "uvva"], "audio/vnd.digital-winds": ["eol"], "audio/vnd.dra": ["dra"], "audio/vnd.dts": ["dts"], "audio/vnd.dts.hd": ["dtshd"], "audio/vnd.lucent.voice": ["lvp"], "audio/vnd.ms-playready.media.pya": ["pya"], "audio/vnd.nuera.ecelp4800": ["ecelp4800"], "audio/vnd.nuera.ecelp7470": ["ecelp7470"], "audio/vnd.nuera.ecelp9600": ["ecelp9600"], "audio/vnd.rip": ["rip"], "audio/x-aac": ["*aac"], "audio/x-aiff": ["aif", "aiff", "aifc"], "audio/x-caf": ["caf"], "audio/x-flac": ["flac"], "audio/x-m4a": ["*m4a"], "audio/x-matroska": ["mka"], "audio/x-mpegurl": ["m3u"], "audio/x-ms-wax": ["wax"], "audio/x-ms-wma": ["wma"], "audio/x-pn-realaudio": ["ram", "ra"], "audio/x-pn-realaudio-plugin": ["rmp"], "audio/x-realaudio": ["*ra"], "audio/x-wav": ["*wav"], "chemical/x-cdx": ["cdx"], "chemical/x-cif": ["cif"], "chemical/x-cmdf": ["cmdf"], "chemical/x-cml": ["cml"], "chemical/x-csml": ["csml"], "chemical/x-xyz": ["xyz"], "image/prs.btif": ["btif", "btf"], "image/prs.pti": ["pti"], "image/vnd.adobe.photoshop": ["psd"], "image/vnd.airzip.accelerator.azv": ["azv"], "image/vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"], "image/vnd.djvu": ["djvu", "djv"], "image/vnd.dvb.subtitle": ["*sub"], "image/vnd.dwg": ["dwg"], "image/vnd.dxf": ["dxf"], "image/vnd.fastbidsheet": ["fbs"], "image/vnd.fpx": ["fpx"], "image/vnd.fst": ["fst"], "image/vnd.fujixerox.edmics-mmr": ["mmr"], "image/vnd.fujixerox.edmics-rlc": ["rlc"], "image/vnd.microsoft.icon": ["ico"], "image/vnd.ms-dds": ["dds"], "image/vnd.ms-modi": ["mdi"], "image/vnd.ms-photo": ["wdp"], "image/vnd.net-fpx": ["npx"], "image/vnd.pco.b16": ["b16"], "image/vnd.tencent.tap": ["tap"], "image/vnd.valve.source.texture": ["vtf"], "image/vnd.wap.wbmp": ["wbmp"], "image/vnd.xiff": ["xif"], "image/vnd.zbrush.pcx": ["pcx"], "image/x-3ds": ["3ds"], "image/x-adobe-dng": ["dng"], "image/x-cmu-raster": ["ras"], "image/x-cmx": ["cmx"], "image/x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"], "image/x-icon": ["*ico"], "image/x-jng": ["jng"], "image/x-mrsid-image": ["sid"], "image/x-ms-bmp": ["*bmp"], "image/x-pcx": ["*pcx"], "image/x-pict": ["pic", "pct"], "image/x-portable-anymap": ["pnm"], "image/x-portable-bitmap": ["pbm"], "image/x-portable-graymap": ["pgm"], "image/x-portable-pixmap": ["ppm"], "image/x-rgb": ["rgb"], "image/x-tga": ["tga"], "image/x-xbitmap": ["xbm"], "image/x-xpixmap": ["xpm"], "image/x-xwindowdump": ["xwd"], "message/vnd.wfa.wsc": ["wsc"], "model/vnd.bary": ["bary"], "model/vnd.cld": ["cld"], "model/vnd.collada+xml": ["dae"], "model/vnd.dwf": ["dwf"], "model/vnd.gdl": ["gdl"], "model/vnd.gtw": ["gtw"], "model/vnd.mts": ["*mts"], "model/vnd.opengex": ["ogex"], "model/vnd.parasolid.transmit.binary": ["x_b"], "model/vnd.parasolid.transmit.text": ["x_t"], "model/vnd.pytha.pyox": ["pyo", "pyox"], "model/vnd.sap.vds": ["vds"], "model/vnd.usda": ["usda"], "model/vnd.usdz+zip": ["usdz"], "model/vnd.valve.source.compiled-map": ["bsp"], "model/vnd.vtu": ["vtu"], "text/prs.lines.tag": ["dsc"], "text/vnd.curl": ["curl"], "text/vnd.curl.dcurl": ["dcurl"], "text/vnd.curl.mcurl": ["mcurl"], "text/vnd.curl.scurl": ["scurl"], "text/vnd.dvb.subtitle": ["sub"], "text/vnd.familysearch.gedcom": ["ged"], "text/vnd.fly": ["fly"], "text/vnd.fmi.flexstor": ["flx"], "text/vnd.graphviz": ["gv"], "text/vnd.in3d.3dml": ["3dml"], "text/vnd.in3d.spot": ["spot"], "text/vnd.sun.j2me.app-descriptor": ["jad"], "text/vnd.wap.wml": ["wml"], "text/vnd.wap.wmlscript": ["wmls"], "text/x-asm": ["s", "asm"], "text/x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"], "text/x-component": ["htc"], "text/x-fortran": ["f", "for", "f77", "f90"], "text/x-handlebars-template": ["hbs"], "text/x-java-source": ["java"], "text/x-lua": ["lua"], "text/x-markdown": ["mkd"], "text/x-nfo": ["nfo"], "text/x-opml": ["opml"], "text/x-org": ["*org"], "text/x-pascal": ["p", "pas"], "text/x-processing": ["pde"], "text/x-sass": ["sass"], "text/x-scss": ["scss"], "text/x-setext": ["etx"], "text/x-sfv": ["sfv"], "text/x-suse-ymp": ["ymp"], "text/x-uuencode": ["uu"], "text/x-vcalendar": ["vcs"], "text/x-vcard": ["vcf"], "video/vnd.dece.hd": ["uvh", "uvvh"], "video/vnd.dece.mobile": ["uvm", "uvvm"], "video/vnd.dece.pd": ["uvp", "uvvp"], "video/vnd.dece.sd": ["uvs", "uvvs"], "video/vnd.dece.video": ["uvv", "uvvv"], "video/vnd.dvb.file": ["dvb"], "video/vnd.fvt": ["fvt"], "video/vnd.mpegurl": ["mxu", "m4u"], "video/vnd.ms-playready.media.pyv": ["pyv"], "video/vnd.uvvu.mp4": ["uvu", "uvvu"], "video/vnd.vivo": ["viv"], "video/x-f4v": ["f4v"], "video/x-fli": ["fli"], "video/x-flv": ["flv"], "video/x-m4v": ["m4v"], "video/x-matroska": ["mkv", "mk3d", "mks"], "video/x-mng": ["mng"], "video/x-ms-asf": ["asf", "asx"], "video/x-ms-vob": ["vob"], "video/x-ms-wm": ["wm"], "video/x-ms-wmv": ["wmv"], "video/x-ms-wmx": ["wmx"], "video/x-ms-wvx": ["wvx"], "video/x-msvideo": ["avi"], "video/x-sgi-movie": ["movie"], "video/x-smv": ["smv"], "x-conference/x-cooltalk": ["ice"] }; Object.freeze(types); other_default = types; } }); // ../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/types/standard.js var types2, standard_default; var init_standard = __esm({ "../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/types/standard.js"() { init_import_meta_url(); types2 = { "application/andrew-inset": ["ez"], "application/appinstaller": ["appinstaller"], "application/applixware": ["aw"], "application/appx": ["appx"], "application/appxbundle": ["appxbundle"], "application/atom+xml": ["atom"], "application/atomcat+xml": ["atomcat"], "application/atomdeleted+xml": ["atomdeleted"], "application/atomsvc+xml": ["atomsvc"], "application/atsc-dwd+xml": ["dwd"], "application/atsc-held+xml": ["held"], "application/atsc-rsat+xml": ["rsat"], "application/automationml-aml+xml": ["aml"], "application/automationml-amlx+zip": ["amlx"], "application/bdoc": ["bdoc"], "application/calendar+xml": ["xcs"], "application/ccxml+xml": ["ccxml"], "application/cdfx+xml": ["cdfx"], "application/cdmi-capability": ["cdmia"], "application/cdmi-container": ["cdmic"], "application/cdmi-domain": ["cdmid"], "application/cdmi-object": ["cdmio"], "application/cdmi-queue": ["cdmiq"], "application/cpl+xml": ["cpl"], "application/cu-seeme": ["cu"], "application/cwl": ["cwl"], "application/dash+xml": ["mpd"], "application/dash-patch+xml": ["mpp"], "application/davmount+xml": ["davmount"], "application/dicom": ["dcm"], "application/docbook+xml": ["dbk"], "application/dssc+der": ["dssc"], "application/dssc+xml": ["xdssc"], "application/ecmascript": ["ecma"], "application/emma+xml": ["emma"], "application/emotionml+xml": ["emotionml"], "application/epub+zip": ["epub"], "application/exi": ["exi"], "application/express": ["exp"], "application/fdf": ["fdf"], "application/fdt+xml": ["fdt"], "application/font-tdpfr": ["pfr"], "application/geo+json": ["geojson"], "application/gml+xml": ["gml"], "application/gpx+xml": ["gpx"], "application/gxf": ["gxf"], "application/gzip": ["gz"], "application/hjson": ["hjson"], "application/hyperstudio": ["stk"], "application/inkml+xml": ["ink", "inkml"], "application/ipfix": ["ipfix"], "application/its+xml": ["its"], "application/java-archive": ["jar", "war", "ear"], "application/java-serialized-object": ["ser"], "application/java-vm": ["class"], "application/javascript": ["*js"], "application/json": ["json", "map"], "application/json5": ["json5"], "application/jsonml+json": ["jsonml"], "application/ld+json": ["jsonld"], "application/lgr+xml": ["lgr"], "application/lost+xml": ["lostxml"], "application/mac-binhex40": ["hqx"], "application/mac-compactpro": ["cpt"], "application/mads+xml": ["mads"], "application/manifest+json": ["webmanifest"], "application/marc": ["mrc"], "application/marcxml+xml": ["mrcx"], "application/mathematica": ["ma", "nb", "mb"], "application/mathml+xml": ["mathml"], "application/mbox": ["mbox"], "application/media-policy-dataset+xml": ["mpf"], "application/mediaservercontrol+xml": ["mscml"], "application/metalink+xml": ["metalink"], "application/metalink4+xml": ["meta4"], "application/mets+xml": ["mets"], "application/mmt-aei+xml": ["maei"], "application/mmt-usd+xml": ["musd"], "application/mods+xml": ["mods"], "application/mp21": ["m21", "mp21"], "application/mp4": ["*mp4", "*mpg4", "mp4s", "m4p"], "application/msix": ["msix"], "application/msixbundle": ["msixbundle"], "application/msword": ["doc", "dot"], "application/mxf": ["mxf"], "application/n-quads": ["nq"], "application/n-triples": ["nt"], "application/node": ["cjs"], "application/octet-stream": [ "bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer" ], "application/oda": ["oda"], "application/oebps-package+xml": ["opf"], "application/ogg": ["ogx"], "application/omdoc+xml": ["omdoc"], "application/onenote": [ "onetoc", "onetoc2", "onetmp", "onepkg", "one", "onea" ], "application/oxps": ["oxps"], "application/p2p-overlay+xml": ["relo"], "application/patch-ops-error+xml": ["xer"], "application/pdf": ["pdf"], "application/pgp-encrypted": ["pgp"], "application/pgp-keys": ["asc"], "application/pgp-signature": ["sig", "*asc"], "application/pics-rules": ["prf"], "application/pkcs10": ["p10"], "application/pkcs7-mime": ["p7m", "p7c"], "application/pkcs7-signature": ["p7s"], "application/pkcs8": ["p8"], "application/pkix-attr-cert": ["ac"], "application/pkix-cert": ["cer"], "application/pkix-crl": ["crl"], "application/pkix-pkipath": ["pkipath"], "application/pkixcmp": ["pki"], "application/pls+xml": ["pls"], "application/postscript": ["ai", "eps", "ps"], "application/provenance+xml": ["provx"], "application/pskc+xml": ["pskcxml"], "application/raml+yaml": ["raml"], "application/rdf+xml": ["rdf", "owl"], "application/reginfo+xml": ["rif"], "application/relax-ng-compact-syntax": ["rnc"], "application/resource-lists+xml": ["rl"], "application/resource-lists-diff+xml": ["rld"], "application/rls-services+xml": ["rs"], "application/route-apd+xml": ["rapd"], "application/route-s-tsid+xml": ["sls"], "application/route-usd+xml": ["rusd"], "application/rpki-ghostbusters": ["gbr"], "application/rpki-manifest": ["mft"], "application/rpki-roa": ["roa"], "application/rsd+xml": ["rsd"], "application/rss+xml": ["rss"], "application/rtf": ["rtf"], "application/sbml+xml": ["sbml"], "application/scvp-cv-request": ["scq"], "application/scvp-cv-response": ["scs"], "application/scvp-vp-request": ["spq"], "application/scvp-vp-response": ["spp"], "application/sdp": ["sdp"], "application/senml+xml": ["senmlx"], "application/sensml+xml": ["sensmlx"], "application/set-payment-initiation": ["setpay"], "application/set-registration-initiation": ["setreg"], "application/shf+xml": ["shf"], "application/sieve": ["siv", "sieve"], "application/smil+xml": ["smi", "smil"], "application/sparql-query": ["rq"], "application/sparql-results+xml": ["srx"], "application/sql": ["sql"], "application/srgs": ["gram"], "application/srgs+xml": ["grxml"], "application/sru+xml": ["sru"], "application/ssdl+xml": ["ssdl"], "application/ssml+xml": ["ssml"], "application/swid+xml": ["swidtag"], "application/tei+xml": ["tei", "teicorpus"], "application/thraud+xml": ["tfi"], "application/timestamped-data": ["tsd"], "application/toml": ["toml"], "application/trig": ["trig"], "application/ttml+xml": ["ttml"], "application/ubjson": ["ubj"], "application/urc-ressheet+xml": ["rsheet"], "application/urc-targetdesc+xml": ["td"], "application/voicexml+xml": ["vxml"], "application/wasm": ["wasm"], "application/watcherinfo+xml": ["wif"], "application/widget": ["wgt"], "application/winhlp": ["hlp"], "application/wsdl+xml": ["wsdl"], "application/wspolicy+xml": ["wspolicy"], "application/xaml+xml": ["xaml"], "application/xcap-att+xml": ["xav"], "application/xcap-caps+xml": ["xca"], "application/xcap-diff+xml": ["xdf"], "application/xcap-el+xml": ["xel"], "application/xcap-ns+xml": ["xns"], "application/xenc+xml": ["xenc"], "application/xfdf": ["xfdf"], "application/xhtml+xml": ["xhtml", "xht"], "application/xliff+xml": ["xlf"], "application/xml": ["xml", "xsl", "xsd", "rng"], "application/xml-dtd": ["dtd"], "application/xop+xml": ["xop"], "application/xproc+xml": ["xpl"], "application/xslt+xml": ["*xsl", "xslt"], "application/xspf+xml": ["xspf"], "application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"], "application/yang": ["yang"], "application/yin+xml": ["yin"], "application/zip": ["zip"], "application/zip+dotlottie": ["lottie"], "audio/3gpp": ["*3gpp"], "audio/aac": ["adts", "aac"], "audio/adpcm": ["adp"], "audio/amr": ["amr"], "audio/basic": ["au", "snd"], "audio/midi": ["mid", "midi", "kar", "rmi"], "audio/mobile-xmf": ["mxmf"], "audio/mp3": ["*mp3"], "audio/mp4": ["m4a", "mp4a", "m4b"], "audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"], "audio/ogg": ["oga", "ogg", "spx", "opus"], "audio/s3m": ["s3m"], "audio/silk": ["sil"], "audio/wav": ["wav"], "audio/wave": ["*wav"], "audio/webm": ["weba"], "audio/xm": ["xm"], "font/collection": ["ttc"], "font/otf": ["otf"], "font/ttf": ["ttf"], "font/woff": ["woff"], "font/woff2": ["woff2"], "image/aces": ["exr"], "image/apng": ["apng"], "image/avci": ["avci"], "image/avcs": ["avcs"], "image/avif": ["avif"], "image/bmp": ["bmp", "dib"], "image/cgm": ["cgm"], "image/dicom-rle": ["drle"], "image/dpx": ["dpx"], "image/emf": ["emf"], "image/fits": ["fits"], "image/g3fax": ["g3"], "image/gif": ["gif"], "image/heic": ["heic"], "image/heic-sequence": ["heics"], "image/heif": ["heif"], "image/heif-sequence": ["heifs"], "image/hej2k": ["hej2"], "image/ief": ["ief"], "image/jaii": ["jaii"], "image/jais": ["jais"], "image/jls": ["jls"], "image/jp2": ["jp2", "jpg2"], "image/jpeg": ["jpg", "jpeg", "jpe"], "image/jph": ["jph"], "image/jphc": ["jhc"], "image/jpm": ["jpm", "jpgm"], "image/jpx": ["jpx", "jpf"], "image/jxl": ["jxl"], "image/jxr": ["jxr"], "image/jxra": ["jxra"], "image/jxrs": ["jxrs"], "image/jxs": ["jxs"], "image/jxsc": ["jxsc"], "image/jxsi": ["jxsi"], "image/jxss": ["jxss"], "image/ktx": ["ktx"], "image/ktx2": ["ktx2"], "image/pjpeg": ["jfif"], "image/png": ["png"], "image/sgi": ["sgi"], "image/svg+xml": ["svg", "svgz"], "image/t38": ["t38"], "image/tiff": ["tif", "tiff"], "image/tiff-fx": ["tfx"], "image/webp": ["webp"], "image/wmf": ["wmf"], "message/disposition-notification": ["disposition-notification"], "message/global": ["u8msg"], "message/global-delivery-status": ["u8dsn"], "message/global-disposition-notification": ["u8mdn"], "message/global-headers": ["u8hdr"], "message/rfc822": ["eml", "mime", "mht", "mhtml"], "model/3mf": ["3mf"], "model/gltf+json": ["gltf"], "model/gltf-binary": ["glb"], "model/iges": ["igs", "iges"], "model/jt": ["jt"], "model/mesh": ["msh", "mesh", "silo"], "model/mtl": ["mtl"], "model/obj": ["obj"], "model/prc": ["prc"], "model/step": ["step", "stp", "stpnc", "p21", "210"], "model/step+xml": ["stpx"], "model/step+zip": ["stpz"], "model/step-xml+zip": ["stpxz"], "model/stl": ["stl"], "model/u3d": ["u3d"], "model/vrml": ["wrl", "vrml"], "model/x3d+binary": ["*x3db", "x3dbz"], "model/x3d+fastinfoset": ["x3db"], "model/x3d+vrml": ["*x3dv", "x3dvz"], "model/x3d+xml": ["x3d", "x3dz"], "model/x3d-vrml": ["x3dv"], "text/cache-manifest": ["appcache", "manifest"], "text/calendar": ["ics", "ifb"], "text/coffeescript": ["coffee", "litcoffee"], "text/css": ["css"], "text/csv": ["csv"], "text/html": ["html", "htm", "shtml"], "text/jade": ["jade"], "text/javascript": ["js", "mjs"], "text/jsx": ["jsx"], "text/less": ["less"], "text/markdown": ["md", "markdown"], "text/mathml": ["mml"], "text/mdx": ["mdx"], "text/n3": ["n3"], "text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"], "text/richtext": ["rtx"], "text/rtf": ["*rtf"], "text/sgml": ["sgml", "sgm"], "text/shex": ["shex"], "text/slim": ["slim", "slm"], "text/spdx": ["spdx"], "text/stylus": ["stylus", "styl"], "text/tab-separated-values": ["tsv"], "text/troff": ["t", "tr", "roff", "man", "me", "ms"], "text/turtle": ["ttl"], "text/uri-list": ["uri", "uris", "urls"], "text/vcard": ["vcard"], "text/vtt": ["vtt"], "text/wgsl": ["wgsl"], "text/xml": ["*xml"], "text/yaml": ["yaml", "yml"], "video/3gpp": ["3gp", "3gpp"], "video/3gpp2": ["3g2"], "video/h261": ["h261"], "video/h263": ["h263"], "video/h264": ["h264"], "video/iso.segment": ["m4s"], "video/jpeg": ["jpgv"], "video/jpm": ["*jpm", "*jpgm"], "video/mj2": ["mj2", "mjp2"], "video/mp2t": ["ts", "m2t", "m2ts", "mts"], "video/mp4": ["mp4", "mp4v", "mpg4"], "video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"], "video/ogg": ["ogv"], "video/quicktime": ["qt", "mov"], "video/webm": ["webm"] }; Object.freeze(types2); standard_default = types2; } }); // ../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/src/Mime.js var __classPrivateFieldGet, _Mime_extensionToType, _Mime_typeToExtension, _Mime_typeToExtensions, Mime, Mime_default; var init_Mime = __esm({ "../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/src/Mime.js"() { init_import_meta_url(); __classPrivateFieldGet = function(receiver, state2, kind2, f8) { if (kind2 === "a" && !f8) throw new TypeError("Private accessor was defined without a getter"); if (typeof state2 === "function" ? receiver !== state2 || !f8 : !state2.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind2 === "m" ? f8 : kind2 === "a" ? f8.call(receiver) : f8 ? f8.value : state2.get(receiver); }; Mime = class { static { __name(this, "Mime"); } constructor(...args) { _Mime_extensionToType.set(this, /* @__PURE__ */ new Map()); _Mime_typeToExtension.set(this, /* @__PURE__ */ new Map()); _Mime_typeToExtensions.set(this, /* @__PURE__ */ new Map()); for (const arg of args) { this.define(arg); } } define(typeMap, force = false) { for (let [type, extensions] of Object.entries(typeMap)) { type = type.toLowerCase(); extensions = extensions.map((ext2) => ext2.toLowerCase()); if (!__classPrivateFieldGet(this, _Mime_typeToExtensions, "f").has(type)) { __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").set(type, /* @__PURE__ */ new Set()); } const allExtensions = __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").get(type); let first = true; for (let extension of extensions) { const starred = extension.startsWith("*"); extension = starred ? extension.slice(1) : extension; allExtensions?.add(extension); if (first) { __classPrivateFieldGet(this, _Mime_typeToExtension, "f").set(type, extension); } first = false; if (starred) continue; const currentType = __classPrivateFieldGet(this, _Mime_extensionToType, "f").get(extension); if (currentType && currentType != type && !force) { throw new Error(`"${type} -> ${extension}" conflicts with "${currentType} -> ${extension}". Pass \`force=true\` to override this definition.`); } __classPrivateFieldGet(this, _Mime_extensionToType, "f").set(extension, type); } } return this; } getType(path82) { if (typeof path82 !== "string") return null; const last = path82.replace(/^.*[/\\]/s, "").toLowerCase(); const ext2 = last.replace(/^.*\./s, "").toLowerCase(); const hasPath = last.length < path82.length; const hasDot = ext2.length < last.length - 1; if (!hasDot && hasPath) return null; return __classPrivateFieldGet(this, _Mime_extensionToType, "f").get(ext2) ?? null; } getExtension(type) { if (typeof type !== "string") return null; type = type?.split?.(";")[0]; return (type && __classPrivateFieldGet(this, _Mime_typeToExtension, "f").get(type.trim().toLowerCase())) ?? null; } getAllExtensions(type) { if (typeof type !== "string") return null; return __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").get(type.toLowerCase()) ?? null; } _freeze() { this.define = () => { throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances"); }; Object.freeze(this); for (const extensions of __classPrivateFieldGet(this, _Mime_typeToExtensions, "f").values()) { Object.freeze(extensions); } return this; } _getTestState() { return { types: __classPrivateFieldGet(this, _Mime_extensionToType, "f"), extensions: __classPrivateFieldGet(this, _Mime_typeToExtension, "f") }; } }; _Mime_extensionToType = /* @__PURE__ */ new WeakMap(), _Mime_typeToExtension = /* @__PURE__ */ new WeakMap(), _Mime_typeToExtensions = /* @__PURE__ */ new WeakMap(); Mime_default = Mime; } }); // ../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/src/index.js var src_default; var init_src = __esm({ "../../node_modules/.pnpm/mime@4.0.7/node_modules/mime/dist/src/index.js"() { init_import_meta_url(); init_other(); init_standard(); init_Mime(); init_Mime(); src_default = new Mime_default(standard_default, other_default)._freeze(); } }); function createPatternMatcher(patterns, exclude) { if (patterns.length === 0) { return (_filePath) => !exclude; } else { const ignorer = (0, import_ignore.default)().add(patterns); return (filePath) => ignorer.test(filePath).ignored; } } function thrownIsDoesNotExistError(thrown) { return thrown instanceof Error && "code" in thrown && thrown.code === "ENOENT"; } function maybeGetFile(filePath) { try { return fs23.readFileSync(filePath, "utf8"); } catch (e9) { if (!thrownIsDoesNotExistError(e9)) { throw e9; } } } async function createAssetsIgnoreFunction(dir2) { const cfAssetIgnorePath = path3.resolve(dir2, CF_ASSETS_IGNORE_FILENAME); const ignorePatterns = [ // Ignore the `.assetsignore` file and other metafiles by default. // The ignore lib expects unix-style paths for its patterns `/${CF_ASSETS_IGNORE_FILENAME}`, `/${REDIRECTS_FILENAME}`, `/${HEADERS_FILENAME}` ]; let assetsIgnoreFilePresent = false; const assetsIgnore = maybeGetFile(cfAssetIgnorePath); if (assetsIgnore !== void 0) { assetsIgnoreFilePresent = true; ignorePatterns.push(...assetsIgnore.split("\n")); } return { assetsIgnoreFunction: createPatternMatcher(ignorePatterns, true), assetsIgnoreFilePresent }; } var import_ignore, normalizeFilePath, getContentType; var init_helpers = __esm({ "../workers-shared/utils/helpers.ts"() { init_import_meta_url(); import_ignore = __toESM(require_ignore()); init_src(); init_constants(); normalizeFilePath = /* @__PURE__ */ __name((relativeFilepath) => { if (path3.isAbsolute(relativeFilepath)) { throw new Error(`Expected relative path`); } return "/" + relativeFilepath.split(path3.sep).join("/"); }, "normalizeFilePath"); getContentType = /* @__PURE__ */ __name((absFilePath) => { let contentType = src_default.getType(absFilePath); if (contentType && contentType.startsWith("text/") && !contentType.includes("charset")) { contentType = `${contentType}; charset=utf-8`; } return contentType; }, "getContentType"); __name(createPatternMatcher, "createPatternMatcher"); __name(thrownIsDoesNotExistError, "thrownIsDoesNotExistError"); __name(maybeGetFile, "maybeGetFile"); __name(createAssetsIgnoreFunction, "createAssetsIgnoreFunction"); } }); // ../workers-shared/utils/configuration/constants.ts var REDIRECTS_VERSION, HEADERS_VERSION, PERMITTED_STATUS_CODES, HEADER_SEPARATOR, MAX_LINE_LENGTH, MAX_HEADER_RULES, MAX_DYNAMIC_REDIRECT_RULES, MAX_STATIC_REDIRECT_RULES, UNSET_OPERATOR, SPLAT_REGEX, PLACEHOLDER_REGEX, MAX_ROUTES_RULES, MAX_ROUTES_RULE_LENGTH; var init_constants2 = __esm({ "../workers-shared/utils/configuration/constants.ts"() { init_import_meta_url(); REDIRECTS_VERSION = 1; HEADERS_VERSION = 2; PERMITTED_STATUS_CODES = /* @__PURE__ */ new Set([200, 301, 302, 303, 307, 308]); HEADER_SEPARATOR = ":"; MAX_LINE_LENGTH = 2e3; MAX_HEADER_RULES = 100; MAX_DYNAMIC_REDIRECT_RULES = 100; MAX_STATIC_REDIRECT_RULES = 2e3; UNSET_OPERATOR = "! "; SPLAT_REGEX = /\*/g; PLACEHOLDER_REGEX = /:[A-Za-z]\w*/g; MAX_ROUTES_RULES = 100; MAX_ROUTES_RULE_LENGTH = 100; } }); // ../workers-shared/utils/configuration/validateURL.ts function urlHasHost(token) { const host = URL_REGEX.exec(token); return Boolean(host && host.groups && host.groups.host); } var extractPathname, URL_REGEX, HOST_WITH_PORT_REGEX, PATH_REGEX, validateUrl; var init_validateURL = __esm({ "../workers-shared/utils/configuration/validateURL.ts"() { init_import_meta_url(); extractPathname = /* @__PURE__ */ __name((path82 = "/", includeSearch, includeHash) => { if (!path82.startsWith("/")) { path82 = `/${path82}`; } const url4 = new URL(`//${path82}`, "relative://"); return `${url4.pathname}${includeSearch ? url4.search : ""}${includeHash ? url4.hash : ""}`; }, "extractPathname"); URL_REGEX = /^https:\/\/+(?[^/]+)\/?(?.*)/; HOST_WITH_PORT_REGEX = /.*:\d+$/; PATH_REGEX = /^\//; validateUrl = /* @__PURE__ */ __name((token, onlyRelative = false, disallowPorts = false, includeSearch = false, includeHash = false) => { const host = URL_REGEX.exec(token); if (host && host.groups && host.groups.host) { if (onlyRelative) { return [ void 0, `Only relative URLs are allowed. Skipping absolute URL ${token}.` ]; } if (disallowPorts && host.groups.host.match(HOST_WITH_PORT_REGEX)) { return [ void 0, `Specifying ports is not supported. Skipping absolute URL ${token}.` ]; } return [ `https://${host.groups.host}${extractPathname( host.groups.path, includeSearch, includeHash )}`, void 0 ]; } else { if (!token.startsWith("/") && onlyRelative) { token = `/${token}`; } const path82 = PATH_REGEX.exec(token); if (path82) { try { return [extractPathname(token, includeSearch, includeHash), void 0]; } catch { return [void 0, `Error parsing URL segment ${token}. Skipping.`]; } } } return [ void 0, onlyRelative ? "URLs should begin with a forward-slash." : 'URLs should either be relative (e.g. begin with a forward-slash), or use HTTPS (e.g. begin with "https://").' ]; }, "validateUrl"); __name(urlHasHost, "urlHasHost"); } }); // ../workers-shared/utils/configuration/parseHeaders.ts function parseHeaders(input, { maxRules = MAX_HEADER_RULES, maxLineLength = MAX_LINE_LENGTH } = {}) { const lines = input.split("\n"); const rules = []; const invalid = []; let rule = void 0; for (let i7 = 0; i7 < lines.length; i7++) { const line = (lines[i7] || "").trim(); if (line.length === 0 || line.startsWith("#")) { continue; } if (line.length > maxLineLength) { invalid.push({ message: `Ignoring line ${i7 + 1} as it exceeds the maximum allowed length of ${maxLineLength}.` }); continue; } if (LINE_IS_PROBABLY_A_PATH.test(line)) { if (rules.length >= maxRules) { invalid.push({ message: `Maximum number of rules supported is ${maxRules}. Skipping remaining ${lines.length - i7} lines of file.` }); break; } if (rule) { if (isValidRule(rule)) { rules.push({ path: rule.path, headers: rule.headers, unsetHeaders: rule.unsetHeaders }); } else { invalid.push({ line: rule.line, lineNumber: i7 + 1, message: "No headers specified" }); } } const [path82, pathError] = validateUrl(line, false, true); if (pathError) { invalid.push({ line, lineNumber: i7 + 1, message: pathError }); rule = void 0; continue; } rule = { path: path82, line, headers: {}, unsetHeaders: [] }; continue; } if (!line.includes(HEADER_SEPARATOR)) { if (!rule) { invalid.push({ line, lineNumber: i7 + 1, message: "Expected a path beginning with at least one forward-slash" }); } else { if (line.trim().startsWith(UNSET_OPERATOR)) { rule.unsetHeaders.push(line.trim().replace(UNSET_OPERATOR, "")); } else { invalid.push({ line, lineNumber: i7 + 1, message: "Expected a colon-separated header pair (e.g. name: value)" }); } } continue; } const [rawName, ...rawValue] = line.split(HEADER_SEPARATOR); const name2 = (rawName || "").trim().toLowerCase(); if (name2.includes(" ")) { invalid.push({ line, lineNumber: i7 + 1, message: "Header name cannot include spaces" }); continue; } const value = rawValue.join(HEADER_SEPARATOR).trim(); if (name2 === "") { invalid.push({ line, lineNumber: i7 + 1, message: "No header name specified" }); continue; } if (value === "") { invalid.push({ line, lineNumber: i7 + 1, message: "No header value specified" }); continue; } if (!rule) { invalid.push({ line, lineNumber: i7 + 1, message: `Path should come before header (${name2}: ${value})` }); continue; } const existingValues = rule.headers[name2]; rule.headers[name2] = existingValues ? `${existingValues}, ${value}` : value; } if (rule) { if (isValidRule(rule)) { rules.push({ path: rule.path, headers: rule.headers, unsetHeaders: rule.unsetHeaders }); } else { invalid.push({ line: rule.line, message: "No headers specified" }); } } return { rules, invalid }; } function isValidRule(rule) { return Object.keys(rule.headers).length > 0 || rule.unsetHeaders.length > 0; } var LINE_IS_PROBABLY_A_PATH; var init_parseHeaders = __esm({ "../workers-shared/utils/configuration/parseHeaders.ts"() { init_import_meta_url(); init_constants2(); init_validateURL(); LINE_IS_PROBABLY_A_PATH = new RegExp(/^([^\s]+:\/\/|^\/)/); __name(parseHeaders, "parseHeaders"); __name(isValidRule, "isValidRule"); } }); // ../workers-shared/utils/configuration/parseRedirects.ts function parseRedirects(input, { htmlHandling = void 0, maxStaticRules = MAX_STATIC_REDIRECT_RULES, maxDynamicRules = MAX_DYNAMIC_REDIRECT_RULES, maxLineLength = MAX_LINE_LENGTH } = {}) { const lines = input.split("\n"); const rules = []; const seen_paths = /* @__PURE__ */ new Set(); const invalid = []; let staticRules = 0; let dynamicRules = 0; let canCreateStaticRule = true; for (let i7 = 0; i7 < lines.length; i7++) { const line = (lines[i7] || "").trim(); if (line.length === 0 || line.startsWith("#")) { continue; } if (line.length > maxLineLength) { invalid.push({ message: `Ignoring line ${i7 + 1} as it exceeds the maximum allowed length of ${maxLineLength}.` }); continue; } const tokens = line.replace(/\s+#.*$/, "").split(/\s+/); if (tokens.length < 2 || tokens.length > 3) { invalid.push({ line, lineNumber: i7 + 1, message: `Expected exactly 2 or 3 whitespace-separated tokens. Got ${tokens.length}.` }); continue; } const [str_from, str_to, str_status = "302"] = tokens; const fromResult = validateUrl(str_from, true, true, false, false); if (fromResult[0] === void 0) { invalid.push({ line, lineNumber: i7 + 1, message: fromResult[1] }); continue; } const from = fromResult[0]; if (canCreateStaticRule && !from.match(SPLAT_REGEX) && !from.match(PLACEHOLDER_REGEX)) { staticRules += 1; if (staticRules > maxStaticRules) { invalid.push({ message: `Maximum number of static rules supported is ${maxStaticRules}. Skipping line.` }); continue; } } else { dynamicRules += 1; canCreateStaticRule = false; if (dynamicRules > maxDynamicRules) { invalid.push({ message: `Maximum number of dynamic rules supported is ${maxDynamicRules}. Skipping remaining ${lines.length - i7} lines of file.` }); break; } } const toResult = validateUrl(str_to, false, false, true, true); if (toResult[0] === void 0) { invalid.push({ line, lineNumber: i7 + 1, message: toResult[1] }); continue; } const to = toResult[0]; const status2 = Number(str_status); if (isNaN(status2) || !PERMITTED_STATUS_CODES.has(status2)) { invalid.push({ line, lineNumber: i7 + 1, message: `Valid status codes are 200, 301, 302 (default), 303, 307, or 308. Got ${str_status}.` }); continue; } const hasRelativePath = !urlHasHost(to); const hasWildcardToIndex = /\/\*$/.test(from) && /\/index(.html)?$/.test(to); const hasRootToIndex = /\/$/.test(from) && /\/index(.html)?$/.test(to); const hasHTMLHandling = htmlHandling !== "none"; if (hasRelativePath && (hasWildcardToIndex || hasRootToIndex && hasHTMLHandling)) { invalid.push({ line, lineNumber: i7 + 1, message: "Infinite loop detected in this rule and has been ignored. This will cause a redirect to strip `.html` or `/index` and end up triggering this rule again. Please fix or remove this rule to silence this warning." }); continue; } if (seen_paths.has(from)) { invalid.push({ line, lineNumber: i7 + 1, message: `Ignoring duplicate rule for path ${from}.` }); continue; } seen_paths.add(from); if (status2 === 200) { if (urlHasHost(to)) { invalid.push({ line, lineNumber: i7 + 1, message: `Proxy (200) redirects can only point to relative paths. Got ${to}` }); continue; } } rules.push({ from, to, status: status2, lineNumber: i7 + 1 }); } return { rules, invalid }; } var init_parseRedirects = __esm({ "../workers-shared/utils/configuration/parseRedirects.ts"() { init_import_meta_url(); init_constants2(); init_validateURL(); __name(parseRedirects, "parseRedirects"); } }); // ../workers-shared/utils/configuration/types.ts var init_types4 = __esm({ "../workers-shared/utils/configuration/types.ts"() { init_import_meta_url(); } }); // ../workers-shared/index.ts var init_workers_shared = __esm({ "../workers-shared/index.ts"() { init_import_meta_url(); init_constants(); init_types3(); init_helpers(); init_parseHeaders(); init_parseRedirects(); init_types4(); } }); function maybeRetrieveFileSourceMap(filePath) { if (filePath === void 0) { return null; } const contents = maybeGetFile(filePath); if (contents === void 0) { return null; } const mapRegexp = /# sourceMappingURL=(.+)/g; const matches = [...contents.matchAll(mapRegexp)]; if (matches.length === 0) { return null; } const mapMatch = matches[matches.length - 1]; const fileUrl = Url__default.default.pathToFileURL(filePath); const mapUrl = new URL(mapMatch[1], fileUrl); if (mapUrl.protocol === "data:" && mapUrl.pathname.startsWith("application/json;base64,")) { const base642 = mapUrl.href.substring(mapUrl.href.indexOf(",") + 1); const map2 = Buffer.from(base642, "base64").toString(); return { map: map2, url: fileUrl.href }; } else { const map2 = maybeGetFile(mapUrl); if (map2 === void 0) { return null; } return { map: map2, url: mapUrl.href }; } } function getSourceMappingPrepareStackTrace(retrieveSourceMap) { retrieveSourceMapOverride = retrieveSourceMap; if (sourceMappingPrepareStackTrace !== void 0) { return sourceMappingPrepareStackTrace; } const support = miniflare.getFreshSourceMapSupport(); const originalPrepareStackTrace = Error.prepareStackTrace; support.install({ environment: "node", // Don't add Node `uncaughtException` handler handleUncaughtExceptions: false, // Don't hook Node `require` function hookRequire: false, redirectConflictingLibrary: false, // Make sure we're using fresh copies of files each time we source map emptyCacheBetweenOperations: true, // Allow retriever to be overridden at prepare stack trace time retrieveSourceMap(path82) { return retrieveSourceMapOverride?.(path82) ?? null; } }); sourceMappingPrepareStackTrace = Error.prepareStackTrace; assert50__default.default(sourceMappingPrepareStackTrace !== void 0); Error.prepareStackTrace = originalPrepareStackTrace; return sourceMappingPrepareStackTrace; } function getSourceMappedStack(details) { const description = details.exception?.description ?? ""; const callFrames = details.stackTrace?.callFrames; if (callFrames === void 0) { return description; } const nameMessage = details.exception?.description?.split("\n")[0] ?? ""; const colonIndex = nameMessage.indexOf(":"); const error2 = new Error(nameMessage.substring(colonIndex + 2)); error2.name = nameMessage.substring(0, colonIndex); const callSites = callFrames.map(callFrameToCallSite); return getSourceMappingPrepareStackTrace()(error2, callSites); } function callFrameToCallSite(frame) { return new CallSite({ typeName: null, functionName: frame.functionName, methodName: null, fileName: frame.url, lineNumber: frame.lineNumber + 1, columnNumber: frame.columnNumber + 1, native: false }); } function getSourceMappedString(value, retrieveSourceMap) { const callSiteLines = Array.from(value.matchAll(CALL_SITE_REGEXP)); const callSites = callSiteLines.map(lineMatchToCallSite); const prepareStack = getSourceMappingPrepareStackTrace(retrieveSourceMap); const sourceMappedStackTrace = prepareStack( placeholderError, callSites ); const sourceMappedCallSiteLines = sourceMappedStackTrace.split("\n").slice(1); for (let i7 = 0; i7 < callSiteLines.length; i7++) { if (callSites[i7].getFileName() === void 0) { continue; } const callSiteLine = callSiteLines[i7][0]; const callSiteAtIndex = callSiteLine.indexOf("at"); assert50__default.default(callSiteAtIndex !== -1); const callSiteLineLeftPad = callSiteLine.substring(0, callSiteAtIndex); value = value.replace( callSiteLine, callSiteLineLeftPad + sourceMappedCallSiteLines[i7].trimStart() ); } return value; } function lineMatchToCallSite(lineMatch) { let object = null; let method = null; let functionName = null; let typeName = null; let methodName = null; const isNative = lineMatch[5] === "native"; if (lineMatch[1]) { functionName = lineMatch[1]; let methodStart = functionName.lastIndexOf("."); if (functionName[methodStart - 1] == ".") { methodStart--; } if (methodStart > 0) { object = functionName.substring(0, methodStart); method = functionName.substring(methodStart + 1); const objectEnd = object.indexOf(".Module"); if (objectEnd > 0) { functionName = functionName.substring(objectEnd + 1); object = object.substring(0, objectEnd); } } } if (method) { typeName = object; methodName = method; } if (method === "") { methodName = null; functionName = null; } return new CallSite({ typeName, functionName, methodName, fileName: lineMatch[2], lineNumber: parseInt(lineMatch[3]) || null, columnNumber: parseInt(lineMatch[4]) || null, native: isNative }); } var sourceMappingPrepareStackTrace, retrieveSourceMapOverride, placeholderError, CALL_SITE_REGEXP, CallSite; var init_sourcemap = __esm({ "src/sourcemap.ts"() { init_import_meta_url(); init_workers_shared(); __name(maybeRetrieveFileSourceMap, "maybeRetrieveFileSourceMap"); __name(getSourceMappingPrepareStackTrace, "getSourceMappingPrepareStackTrace"); __name(getSourceMappedStack, "getSourceMappedStack"); __name(callFrameToCallSite, "callFrameToCallSite"); placeholderError = new Error(); __name(getSourceMappedString, "getSourceMappedString"); CALL_SITE_REGEXP = // Validation errors from `wrangler deploy` have a 2 space indent, whereas // regular stack traces have a 4 space indent. // eslint-disable-next-line no-control-regex /^(?:\s+(?:\x1B\[\d+m)?'?)? {2,4}at (?:(.+?)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/gm; __name(lineMatchToCallSite, "lineMatchToCallSite"); CallSite = class { constructor(opts) { this.opts = opts; } static { __name(this, "CallSite"); } getScriptHash() { throw new Error("Method not implemented."); } getEnclosingColumnNumber() { throw new Error("Method not implemented."); } getEnclosingLineNumber() { throw new Error("Method not implemented."); } getPosition() { throw new Error("Method not implemented."); } getThis() { return null; } getTypeName() { return this.opts.typeName; } // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type getFunction() { return void 0; } getFunctionName() { return this.opts.functionName; } getMethodName() { return this.opts.methodName; } getFileName() { return this.opts.fileName ?? null; } getScriptNameOrSourceURL() { return this.opts.fileName; } getLineNumber() { return this.opts.lineNumber; } getColumnNumber() { return this.opts.columnNumber; } getEvalOrigin() { return void 0; } isToplevel() { return false; } isEval() { return false; } isNative() { return this.opts.native; } isConstructor() { return false; } isAsync() { return false; } isPromiseAll() { return false; } isPromiseAny() { return false; } getPromiseIndex() { return null; } }; } }); // ../../node_modules/.pnpm/ini@1.3.8/node_modules/ini/ini.js var require_ini = __commonJS({ "../../node_modules/.pnpm/ini@1.3.8/node_modules/ini/ini.js"(exports) { init_import_meta_url(); exports.parse = exports.decode = decode; exports.stringify = exports.encode = encode2; exports.safe = safe; exports.unsafe = unsafe; var eol = typeof process !== "undefined" && process.platform === "win32" ? "\r\n" : "\n"; function encode2(obj, opt) { var children = []; var out = ""; if (typeof opt === "string") { opt = { section: opt, whitespace: false }; } else { opt = opt || {}; opt.whitespace = opt.whitespace === true; } var separator = opt.whitespace ? " = " : "="; Object.keys(obj).forEach(function(k7, _5, __) { var val2 = obj[k7]; if (val2 && Array.isArray(val2)) { val2.forEach(function(item) { out += safe(k7 + "[]") + separator + safe(item) + "\n"; }); } else if (val2 && typeof val2 === "object") children.push(k7); else out += safe(k7) + separator + safe(val2) + eol; }); if (opt.section && out.length) out = "[" + safe(opt.section) + "]" + eol + out; children.forEach(function(k7, _5, __) { var nk = dotSplit(k7).join("\\."); var section = (opt.section ? opt.section + "." : "") + nk; var child = encode2(obj[k7], { section, whitespace: opt.whitespace }); if (out.length && child.length) out += eol; out += child; }); return out; } __name(encode2, "encode"); function dotSplit(str) { return str.replace(/\1/g, "LITERAL\\1LITERAL").replace(/\\\./g, "").split(/\./).map(function(part) { return part.replace(/\1/g, "\\.").replace(/\2LITERAL\\1LITERAL\2/g, ""); }); } __name(dotSplit, "dotSplit"); function decode(str) { var out = {}; var p7 = out; var section = null; var re2 = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i; var lines = str.split(/[\r\n]+/g); lines.forEach(function(line, _5, __) { if (!line || line.match(/^\s*[;#]/)) return; var match3 = line.match(re2); if (!match3) return; if (match3[1] !== void 0) { section = unsafe(match3[1]); if (section === "__proto__") { p7 = {}; return; } p7 = out[section] = out[section] || {}; return; } var key = unsafe(match3[2]); if (key === "__proto__") return; var value = match3[3] ? unsafe(match3[4]) : true; switch (value) { case "true": case "false": case "null": value = JSON.parse(value); } if (key.length > 2 && key.slice(-2) === "[]") { key = key.substring(0, key.length - 2); if (key === "__proto__") return; if (!p7[key]) p7[key] = []; else if (!Array.isArray(p7[key])) p7[key] = [p7[key]]; } if (Array.isArray(p7[key])) p7[key].push(value); else p7[key] = value; }); Object.keys(out).filter(function(k7, _5, __) { if (!out[k7] || typeof out[k7] !== "object" || Array.isArray(out[k7])) return false; var parts = dotSplit(k7); var p8 = out; var l8 = parts.pop(); var nl = l8.replace(/\\\./g, "."); parts.forEach(function(part, _6, __2) { if (part === "__proto__") return; if (!p8[part] || typeof p8[part] !== "object") p8[part] = {}; p8 = p8[part]; }); if (p8 === out && nl === l8) return false; p8[nl] = out[k7]; return true; }).forEach(function(del, _5, __) { delete out[del]; }); return out; } __name(decode, "decode"); function isQuoted(val2) { return val2.charAt(0) === '"' && val2.slice(-1) === '"' || val2.charAt(0) === "'" && val2.slice(-1) === "'"; } __name(isQuoted, "isQuoted"); function safe(val2) { return typeof val2 !== "string" || val2.match(/[=\r\n]/) || val2.match(/^\[/) || val2.length > 1 && isQuoted(val2) || val2 !== val2.trim() ? JSON.stringify(val2) : val2.replace(/;/g, "\\;").replace(/#/g, "\\#"); } __name(safe, "safe"); function unsafe(val2, doUnesc) { val2 = (val2 || "").trim(); if (isQuoted(val2)) { if (val2.charAt(0) === "'") val2 = val2.substr(1, val2.length - 2); try { val2 = JSON.parse(val2); } catch (_5) { } } else { var esc = false; var unesc = ""; for (var i7 = 0, l8 = val2.length; i7 < l8; i7++) { var c8 = val2.charAt(i7); if (esc) { if ("\\;#".indexOf(c8) !== -1) unesc += c8; else unesc += "\\" + c8; esc = false; } else if (";#".indexOf(c8) !== -1) break; else if (c8 === "\\") esc = true; else unesc += c8; } if (esc) unesc += "\\"; return unesc.trim(); } return val2; } __name(unsafe, "unsafe"); } }); // ../../node_modules/.pnpm/strip-json-comments@2.0.1/node_modules/strip-json-comments/index.js var require_strip_json_comments = __commonJS({ "../../node_modules/.pnpm/strip-json-comments@2.0.1/node_modules/strip-json-comments/index.js"(exports, module4) { init_import_meta_url(); var singleComment = 1; var multiComment = 2; function stripWithoutWhitespace() { return ""; } __name(stripWithoutWhitespace, "stripWithoutWhitespace"); function stripWithWhitespace(str, start, end) { return str.slice(start, end).replace(/\S/g, " "); } __name(stripWithWhitespace, "stripWithWhitespace"); module4.exports = function(str, opts) { opts = opts || {}; var currentChar; var nextChar; var insideString = false; var insideComment = false; var offset = 0; var ret = ""; var strip = opts.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace; for (var i7 = 0; i7 < str.length; i7++) { currentChar = str[i7]; nextChar = str[i7 + 1]; if (!insideComment && currentChar === '"') { var escaped = str[i7 - 1] === "\\" && str[i7 - 2] !== "\\"; if (!escaped) { insideString = !insideString; } } if (insideString) { continue; } if (!insideComment && currentChar + nextChar === "//") { ret += str.slice(offset, i7); offset = i7; insideComment = singleComment; i7++; } else if (insideComment === singleComment && currentChar + nextChar === "\r\n") { i7++; insideComment = false; ret += strip(str, offset, i7); offset = i7; continue; } else if (insideComment === singleComment && currentChar === "\n") { insideComment = false; ret += strip(str, offset, i7); offset = i7; } else if (!insideComment && currentChar + nextChar === "/*") { ret += str.slice(offset, i7); offset = i7; insideComment = multiComment; i7++; continue; } else if (insideComment === multiComment && currentChar + nextChar === "*/") { i7++; insideComment = false; ret += strip(str, offset, i7 + 1); offset = i7 + 1; continue; } } return ret + (insideComment ? strip(str.substr(offset)) : str.substr(offset)); }; } }); // ../../node_modules/.pnpm/rc@1.2.8/node_modules/rc/lib/utils.js var require_utils3 = __commonJS({ "../../node_modules/.pnpm/rc@1.2.8/node_modules/rc/lib/utils.js"(exports) { init_import_meta_url(); var fs27 = __require("fs"); var ini = require_ini(); var path82 = __require("path"); var stripJsonComments = require_strip_json_comments(); var parse17 = exports.parse = function(content) { if (/^\s*{/.test(content)) return JSON.parse(stripJsonComments(content)); return ini.parse(content); }; var file3 = exports.file = function() { var args = [].slice.call(arguments).filter(function(arg) { return arg != null; }); for (var i7 in args) if ("string" !== typeof args[i7]) return; var file4 = path82.join.apply(null, args); try { return fs27.readFileSync(file4, "utf-8"); } catch (err) { return; } }; exports.json = function() { var content = file3.apply(null, arguments); return content ? parse17(content) : null; }; exports.env = function(prefix, env7) { env7 = env7 || process.env; var obj = {}; var l8 = prefix.length; for (var k7 in env7) { if (k7.toLowerCase().indexOf(prefix.toLowerCase()) === 0) { var keypath = k7.substring(l8).split("__"); var _emptyStringIndex; while ((_emptyStringIndex = keypath.indexOf("")) > -1) { keypath.splice(_emptyStringIndex, 1); } var cursor = obj; keypath.forEach(/* @__PURE__ */ __name(function _buildSubObj(_subkey, i7) { if (!_subkey || typeof cursor !== "object") return; if (i7 === keypath.length - 1) cursor[_subkey] = env7[k7]; if (cursor[_subkey] === void 0) cursor[_subkey] = {}; cursor = cursor[_subkey]; }, "_buildSubObj")); } } return obj; }; exports.find = function() { var rel = path82.join.apply(null, [].slice.call(arguments)); function find3(start, rel2) { var file4 = path82.join(start, rel2); try { fs27.statSync(file4); return file4; } catch (err) { if (path82.dirname(start) !== start) return find3(path82.dirname(start), rel2); } } __name(find3, "find"); return find3(process.cwd(), rel); }; } }); // ../../node_modules/.pnpm/deep-extend@0.6.0/node_modules/deep-extend/lib/deep-extend.js var require_deep_extend = __commonJS({ "../../node_modules/.pnpm/deep-extend@0.6.0/node_modules/deep-extend/lib/deep-extend.js"(exports, module4) { init_import_meta_url(); function isSpecificValue(val2) { return val2 instanceof Buffer || val2 instanceof Date || val2 instanceof RegExp ? true : false; } __name(isSpecificValue, "isSpecificValue"); function cloneSpecificValue(val2) { if (val2 instanceof Buffer) { var x7 = Buffer.alloc ? Buffer.alloc(val2.length) : new Buffer(val2.length); val2.copy(x7); return x7; } else if (val2 instanceof Date) { return new Date(val2.getTime()); } else if (val2 instanceof RegExp) { return new RegExp(val2); } else { throw new Error("Unexpected situation"); } } __name(cloneSpecificValue, "cloneSpecificValue"); function deepCloneArray(arr) { var clone2 = []; arr.forEach(function(item, index) { if (typeof item === "object" && item !== null) { if (Array.isArray(item)) { clone2[index] = deepCloneArray(item); } else if (isSpecificValue(item)) { clone2[index] = cloneSpecificValue(item); } else { clone2[index] = deepExtend({}, item); } } else { clone2[index] = item; } }); return clone2; } __name(deepCloneArray, "deepCloneArray"); function safeGetProperty(object, property) { return property === "__proto__" ? void 0 : object[property]; } __name(safeGetProperty, "safeGetProperty"); var deepExtend = module4.exports = function() { if (arguments.length < 1 || typeof arguments[0] !== "object") { return false; } if (arguments.length < 2) { return arguments[0]; } var target = arguments[0]; var args = Array.prototype.slice.call(arguments, 1); var val2, src; args.forEach(function(obj) { if (typeof obj !== "object" || obj === null || Array.isArray(obj)) { return; } Object.keys(obj).forEach(function(key) { src = safeGetProperty(target, key); val2 = safeGetProperty(obj, key); if (val2 === target) { return; } else if (typeof val2 !== "object" || val2 === null) { target[key] = val2; return; } else if (Array.isArray(val2)) { target[key] = deepCloneArray(val2); return; } else if (isSpecificValue(val2)) { target[key] = cloneSpecificValue(val2); return; } else if (typeof src !== "object" || src === null || Array.isArray(src)) { target[key] = deepExtend({}, val2); return; } else { target[key] = deepExtend(src, val2); return; } }); }); return target; }; } }); // ../../node_modules/.pnpm/minimist@1.2.6/node_modules/minimist/index.js var require_minimist = __commonJS({ "../../node_modules/.pnpm/minimist@1.2.6/node_modules/minimist/index.js"(exports, module4) { init_import_meta_url(); module4.exports = function(args, opts) { if (!opts) opts = {}; var flags2 = { bools: {}, strings: {}, unknownFn: null }; if (typeof opts["unknown"] === "function") { flags2.unknownFn = opts["unknown"]; } if (typeof opts["boolean"] === "boolean" && opts["boolean"]) { flags2.allBools = true; } else { [].concat(opts["boolean"]).filter(Boolean).forEach(function(key2) { flags2.bools[key2] = true; }); } var aliases2 = {}; Object.keys(opts.alias || {}).forEach(function(key2) { aliases2[key2] = [].concat(opts.alias[key2]); aliases2[key2].forEach(function(x7) { aliases2[x7] = [key2].concat(aliases2[key2].filter(function(y5) { return x7 !== y5; })); }); }); [].concat(opts.string).filter(Boolean).forEach(function(key2) { flags2.strings[key2] = true; if (aliases2[key2]) { flags2.strings[aliases2[key2]] = true; } }); var defaults3 = opts["default"] || {}; var argv = { _: [] }; Object.keys(flags2.bools).forEach(function(key2) { setArg(key2, defaults3[key2] === void 0 ? false : defaults3[key2]); }); var notFlags = []; if (args.indexOf("--") !== -1) { notFlags = args.slice(args.indexOf("--") + 1); args = args.slice(0, args.indexOf("--")); } function argDefined(key2, arg2) { return flags2.allBools && /^--[^=]+$/.test(arg2) || flags2.strings[key2] || flags2.bools[key2] || aliases2[key2]; } __name(argDefined, "argDefined"); function setArg(key2, val2, arg2) { if (arg2 && flags2.unknownFn && !argDefined(key2, arg2)) { if (flags2.unknownFn(arg2) === false) return; } var value2 = !flags2.strings[key2] && isNumber(val2) ? Number(val2) : val2; setKey(argv, key2.split("."), value2); (aliases2[key2] || []).forEach(function(x7) { setKey(argv, x7.split("."), value2); }); } __name(setArg, "setArg"); function setKey(obj, keys, value2) { var o7 = obj; for (var i8 = 0; i8 < keys.length - 1; i8++) { var key2 = keys[i8]; if (isConstructorOrProto(o7, key2)) return; if (o7[key2] === void 0) o7[key2] = {}; if (o7[key2] === Object.prototype || o7[key2] === Number.prototype || o7[key2] === String.prototype) o7[key2] = {}; if (o7[key2] === Array.prototype) o7[key2] = []; o7 = o7[key2]; } var key2 = keys[keys.length - 1]; if (isConstructorOrProto(o7, key2)) return; if (o7 === Object.prototype || o7 === Number.prototype || o7 === String.prototype) o7 = {}; if (o7 === Array.prototype) o7 = []; if (o7[key2] === void 0 || flags2.bools[key2] || typeof o7[key2] === "boolean") { o7[key2] = value2; } else if (Array.isArray(o7[key2])) { o7[key2].push(value2); } else { o7[key2] = [o7[key2], value2]; } } __name(setKey, "setKey"); function aliasIsBoolean(key2) { return aliases2[key2].some(function(x7) { return flags2.bools[x7]; }); } __name(aliasIsBoolean, "aliasIsBoolean"); for (var i7 = 0; i7 < args.length; i7++) { var arg = args[i7]; if (/^--.+=/.test(arg)) { var m7 = arg.match(/^--([^=]+)=([\s\S]*)$/); var key = m7[1]; var value = m7[2]; if (flags2.bools[key]) { value = value !== "false"; } setArg(key, value, arg); } else if (/^--no-.+/.test(arg)) { var key = arg.match(/^--no-(.+)/)[1]; setArg(key, false, arg); } else if (/^--.+/.test(arg)) { var key = arg.match(/^--(.+)/)[1]; var next = args[i7 + 1]; if (next !== void 0 && !/^-/.test(next) && !flags2.bools[key] && !flags2.allBools && (aliases2[key] ? !aliasIsBoolean(key) : true)) { setArg(key, next, arg); i7++; } else if (/^(true|false)$/.test(next)) { setArg(key, next === "true", arg); i7++; } else { setArg(key, flags2.strings[key] ? "" : true, arg); } } else if (/^-[^-]+/.test(arg)) { var letters = arg.slice(1, -1).split(""); var broken = false; for (var j7 = 0; j7 < letters.length; j7++) { var next = arg.slice(j7 + 2); if (next === "-") { setArg(letters[j7], next, arg); continue; } if (/[A-Za-z]/.test(letters[j7]) && /=/.test(next)) { setArg(letters[j7], next.split("=")[1], arg); broken = true; break; } if (/[A-Za-z]/.test(letters[j7]) && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { setArg(letters[j7], next, arg); broken = true; break; } if (letters[j7 + 1] && letters[j7 + 1].match(/\W/)) { setArg(letters[j7], arg.slice(j7 + 2), arg); broken = true; break; } else { setArg(letters[j7], flags2.strings[letters[j7]] ? "" : true, arg); } } var key = arg.slice(-1)[0]; if (!broken && key !== "-") { if (args[i7 + 1] && !/^(-|--)[^-]/.test(args[i7 + 1]) && !flags2.bools[key] && (aliases2[key] ? !aliasIsBoolean(key) : true)) { setArg(key, args[i7 + 1], arg); i7++; } else if (args[i7 + 1] && /^(true|false)$/.test(args[i7 + 1])) { setArg(key, args[i7 + 1] === "true", arg); i7++; } else { setArg(key, flags2.strings[key] ? "" : true, arg); } } } else { if (!flags2.unknownFn || flags2.unknownFn(arg) !== false) { argv._.push( flags2.strings["_"] || !isNumber(arg) ? arg : Number(arg) ); } if (opts.stopEarly) { argv._.push.apply(argv._, args.slice(i7 + 1)); break; } } } Object.keys(defaults3).forEach(function(key2) { if (!hasKey(argv, key2.split("."))) { setKey(argv, key2.split("."), defaults3[key2]); (aliases2[key2] || []).forEach(function(x7) { setKey(argv, x7.split("."), defaults3[key2]); }); } }); if (opts["--"]) { argv["--"] = new Array(); notFlags.forEach(function(key2) { argv["--"].push(key2); }); } else { notFlags.forEach(function(key2) { argv._.push(key2); }); } return argv; }; function hasKey(obj, keys) { var o7 = obj; keys.slice(0, -1).forEach(function(key2) { o7 = o7[key2] || {}; }); var key = keys[keys.length - 1]; return key in o7; } __name(hasKey, "hasKey"); function isNumber(x7) { if (typeof x7 === "number") return true; if (/^0x[0-9a-f]+$/i.test(x7)) return true; return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x7); } __name(isNumber, "isNumber"); function isConstructorOrProto(obj, key) { return key === "constructor" && typeof obj[key] === "function" || key === "__proto__"; } __name(isConstructorOrProto, "isConstructorOrProto"); } }); // ../../node_modules/.pnpm/rc@1.2.8/node_modules/rc/index.js var require_rc = __commonJS({ "../../node_modules/.pnpm/rc@1.2.8/node_modules/rc/index.js"(exports, module4) { init_import_meta_url(); var cc2 = require_utils3(); var join32 = __require("path").join; var deepExtend = require_deep_extend(); var etc = "/etc"; var win = process.platform === "win32"; var home = win ? process.env.USERPROFILE : process.env.HOME; module4.exports = function(name2, defaults3, argv, parse17) { if ("string" !== typeof name2) throw new Error("rc(name): name *must* be string"); if (!argv) argv = require_minimist()(process.argv.slice(2)); defaults3 = ("string" === typeof defaults3 ? cc2.json(defaults3) : defaults3) || {}; parse17 = parse17 || cc2.parse; var env6 = cc2.env(name2 + "_"); var configs = [defaults3]; var configFiles = []; function addConfigFile(file3) { if (configFiles.indexOf(file3) >= 0) return; var fileConfig = cc2.file(file3); if (fileConfig) { configs.push(parse17(fileConfig)); configFiles.push(file3); } } __name(addConfigFile, "addConfigFile"); if (!win) [ join32(etc, name2, "config"), join32(etc, name2 + "rc") ].forEach(addConfigFile); if (home) [ join32(home, ".config", name2, "config"), join32(home, ".config", name2), join32(home, "." + name2, "config"), join32(home, "." + name2 + "rc") ].forEach(addConfigFile); addConfigFile(cc2.find("." + name2 + "rc")); if (env6.config) addConfigFile(env6.config); if (argv.config) addConfigFile(argv.config); return deepExtend.apply(null, configs.concat([ env6, argv, configFiles.length ? { configs: configFiles, config: configFiles[configFiles.length - 1] } : void 0 ])); }; } }); // ../../node_modules/.pnpm/registry-url@3.1.0/node_modules/registry-url/index.js var require_registry_url = __commonJS({ "../../node_modules/.pnpm/registry-url@3.1.0/node_modules/registry-url/index.js"(exports, module4) { init_import_meta_url(); module4.exports = function(scope) { var rc = require_rc()("npm", { registry: "https://registry.npmjs.org/" }); var url4 = rc[scope + ":registry"] || rc.registry; return url4.slice(-1) === "/" ? url4 : url4 + "/"; }; } }); // ../../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js var require_safe_buffer = __commonJS({ "../../node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js"(exports, module4) { init_import_meta_url(); var buffer = __require("buffer"); var Buffer7 = buffer.Buffer; function copyProps(src, dst) { for (var key in src) { dst[key] = src[key]; } } __name(copyProps, "copyProps"); if (Buffer7.from && Buffer7.alloc && Buffer7.allocUnsafe && Buffer7.allocUnsafeSlow) { module4.exports = buffer; } else { copyProps(buffer, exports); exports.Buffer = SafeBuffer; } function SafeBuffer(arg, encodingOrOffset, length) { return Buffer7(arg, encodingOrOffset, length); } __name(SafeBuffer, "SafeBuffer"); SafeBuffer.prototype = Object.create(Buffer7.prototype); copyProps(Buffer7, SafeBuffer); SafeBuffer.from = function(arg, encodingOrOffset, length) { if (typeof arg === "number") { throw new TypeError("Argument must not be a number"); } return Buffer7(arg, encodingOrOffset, length); }; SafeBuffer.alloc = function(size, fill2, encoding) { if (typeof size !== "number") { throw new TypeError("Argument must be a number"); } var buf = Buffer7(size); if (fill2 !== void 0) { if (typeof encoding === "string") { buf.fill(fill2, encoding); } else { buf.fill(fill2); } } else { buf.fill(0); } return buf; }; SafeBuffer.allocUnsafe = function(size) { if (typeof size !== "number") { throw new TypeError("Argument must be a number"); } return Buffer7(size); }; SafeBuffer.allocUnsafeSlow = function(size) { if (typeof size !== "number") { throw new TypeError("Argument must be a number"); } return buffer.SlowBuffer(size); }; } }); // ../../node_modules/.pnpm/registry-auth-token@3.3.2/node_modules/registry-auth-token/base64.js var require_base64 = __commonJS({ "../../node_modules/.pnpm/registry-auth-token@3.3.2/node_modules/registry-auth-token/base64.js"(exports, module4) { init_import_meta_url(); var safeBuffer = require_safe_buffer().Buffer; function decodeBase64(base642) { return safeBuffer.from(base642, "base64").toString("utf8"); } __name(decodeBase64, "decodeBase64"); function encodeBase64(string) { return safeBuffer.from(string, "utf8").toString("base64"); } __name(encodeBase64, "encodeBase64"); module4.exports = { decodeBase64, encodeBase64 }; } }); // ../../node_modules/.pnpm/registry-auth-token@3.3.2/node_modules/registry-auth-token/index.js var require_registry_auth_token = __commonJS({ "../../node_modules/.pnpm/registry-auth-token@3.3.2/node_modules/registry-auth-token/index.js"(exports, module4) { init_import_meta_url(); var url4 = __require("url"); var base642 = require_base64(); var decodeBase64 = base642.decodeBase64; var encodeBase64 = base642.encodeBase64; var tokenKey = ":_authToken"; var userKey = ":username"; var passwordKey = ":_password"; module4.exports = function() { var checkUrl2; var options; if (arguments.length >= 2) { checkUrl2 = arguments[0]; options = arguments[1]; } else if (typeof arguments[0] === "string") { checkUrl2 = arguments[0]; } else { options = arguments[0]; } options = options || {}; options.npmrc = options.npmrc || require_rc()("npm", { registry: "https://registry.npmjs.org/" }); checkUrl2 = checkUrl2 || options.npmrc.registry; return getRegistryAuthInfo(checkUrl2, options) || getLegacyAuthInfo(options.npmrc); }; function getRegistryAuthInfo(checkUrl2, options) { var parsed = url4.parse(checkUrl2, false, true); var pathname; while (pathname !== "/" && parsed.pathname !== pathname) { pathname = parsed.pathname || "/"; var regUrl = "//" + parsed.host + pathname.replace(/\/$/, ""); var authInfo = getAuthInfoForUrl(regUrl, options.npmrc); if (authInfo) { return authInfo; } if (!options.recursive) { return /\/$/.test(checkUrl2) ? void 0 : getRegistryAuthInfo(url4.resolve(checkUrl2, "."), options); } parsed.pathname = url4.resolve(normalizePath2(pathname), "..") || "/"; } return void 0; } __name(getRegistryAuthInfo, "getRegistryAuthInfo"); function getLegacyAuthInfo(npmrc) { if (npmrc._auth) { return { token: npmrc._auth, type: "Basic" }; } return void 0; } __name(getLegacyAuthInfo, "getLegacyAuthInfo"); function normalizePath2(path82) { return path82[path82.length - 1] === "/" ? path82 : path82 + "/"; } __name(normalizePath2, "normalizePath"); function getAuthInfoForUrl(regUrl, npmrc) { var bearerAuth = getBearerToken(npmrc[regUrl + tokenKey] || npmrc[regUrl + "/" + tokenKey]); if (bearerAuth) { return bearerAuth; } var username = npmrc[regUrl + userKey] || npmrc[regUrl + "/" + userKey]; var password = npmrc[regUrl + passwordKey] || npmrc[regUrl + "/" + passwordKey]; var basicAuth = getTokenForUsernameAndPassword(username, password); if (basicAuth) { return basicAuth; } return void 0; } __name(getAuthInfoForUrl, "getAuthInfoForUrl"); function getBearerToken(tok) { if (!tok) { return void 0; } var token = tok.replace(/^\$\{?([^}]*)\}?$/, function(fullMatch, envVar) { return process.env[envVar]; }); return { token, type: "Bearer" }; } __name(getBearerToken, "getBearerToken"); function getTokenForUsernameAndPassword(username, password) { if (!username || !password) { return void 0; } var pass2 = decodeBase64(password.replace(/^\$\{?([^}]*)\}?$/, function(fullMatch, envVar) { return process.env[envVar]; })); var token = encodeBase64(username + ":" + pass2); return { token, type: "Basic", password: pass2, username }; } __name(getTokenForUsernameAndPassword, "getTokenForUsernameAndPassword"); } }); // ../../node_modules/.pnpm/update-check@1.5.4/node_modules/update-check/index.js var require_update_check = __commonJS({ "../../node_modules/.pnpm/update-check@1.5.4/node_modules/update-check/index.js"(exports, module4) { init_import_meta_url(); var { URL: URL8 } = __require("url"); var { join: join32 } = __require("path"); var fs27 = __require("fs"); var { promisify: promisify3 } = __require("util"); var { tmpdir } = __require("os"); var registryUrl = require_registry_url(); var writeFile15 = promisify3(fs27.writeFile); var mkdir5 = promisify3(fs27.mkdir); var readFile19 = promisify3(fs27.readFile); var compareVersions = /* @__PURE__ */ __name((a7, b11) => a7.localeCompare(b11, "en-US", { numeric: true }), "compareVersions"); var encode2 = /* @__PURE__ */ __name((value) => encodeURIComponent(value).replace(/^%40/, "@"), "encode"); var getFile = /* @__PURE__ */ __name(async (details, distTag) => { const rootDir = tmpdir(); const subDir = join32(rootDir, "update-check"); if (!fs27.existsSync(subDir)) { await mkdir5(subDir); } let name2 = `${details.name}-${distTag}.json`; if (details.scope) { name2 = `${details.scope}-${name2}`; } return join32(subDir, name2); }, "getFile"); var evaluateCache = /* @__PURE__ */ __name(async (file3, time, interval) => { if (fs27.existsSync(file3)) { const content = await readFile19(file3, "utf8"); const { lastUpdate, latest } = JSON.parse(content); const nextCheck = lastUpdate + interval; if (nextCheck > time) { return { shouldCheck: false, latest }; } } return { shouldCheck: true, latest: null }; }, "evaluateCache"); var updateCache = /* @__PURE__ */ __name(async (file3, latest, lastUpdate) => { const content = JSON.stringify({ latest, lastUpdate }); await writeFile15(file3, content, "utf8"); }, "updateCache"); var loadPackage = /* @__PURE__ */ __name((url4, authInfo) => new Promise((resolve31, reject) => { const options = { host: url4.hostname, path: url4.pathname, port: url4.port, headers: { accept: "application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*" }, timeout: 2e3 }; if (authInfo) { options.headers.authorization = `${authInfo.type} ${authInfo.token}`; } const { get: get2 } = url4.protocol === "https:" ? __require("https") : __require("http"); get2(options, (response) => { const { statusCode } = response; if (statusCode !== 200) { const error2 = new Error(`Request failed with code ${statusCode}`); error2.code = statusCode; reject(error2); response.resume(); return; } let rawData = ""; response.setEncoding("utf8"); response.on("data", (chunk) => { rawData += chunk; }); response.on("end", () => { try { const parsedData = JSON.parse(rawData); resolve31(parsedData); } catch (e9) { reject(e9); } }); }).on("error", reject).on("timeout", reject); }), "loadPackage"); var getMostRecent = /* @__PURE__ */ __name(async ({ full, scope }, distTag) => { const regURL = registryUrl(scope); const url4 = new URL8(full, regURL); let spec = null; try { spec = await loadPackage(url4); } catch (err) { if (err.code && String(err.code).startsWith(4)) { const registryAuthToken = require_registry_auth_token(); const authInfo = registryAuthToken(regURL, { recursive: true }); spec = await loadPackage(url4, authInfo); } else { throw err; } } const version5 = spec["dist-tags"][distTag]; if (!version5) { throw new Error(`Distribution tag ${distTag} is not available`); } return version5; }, "getMostRecent"); var defaultConfig = { interval: 36e5, distTag: "latest" }; var getDetails = /* @__PURE__ */ __name((name2) => { const spec = { full: encode2(name2) }; if (name2.includes("/")) { const parts = name2.split("/"); spec.scope = parts[0]; spec.name = parts[1]; } else { spec.scope = null; spec.name = name2; } return spec; }, "getDetails"); module4.exports = async (pkg, config) => { if (typeof pkg !== "object") { throw new Error("The first parameter should be your package.json file content"); } const details = getDetails(pkg.name); const time = Date.now(); const { distTag, interval } = Object.assign({}, defaultConfig, config); const file3 = await getFile(details, distTag); let latest = null; let shouldCheck = true; ({ shouldCheck, latest } = await evaluateCache(file3, time, interval)); if (shouldCheck) { latest = await getMostRecent(details, distTag); await updateCache(file3, latest, time); } const comparision = compareVersions(pkg.version, latest); if (comparision === -1) { return { latest, fromCache: !shouldCheck }; } return null; }; } }); // package.json var name, version; var init_package = __esm({ "package.json"() { name = "wrangler"; version = "4.69.0"; } }); // src/update-check.ts async function doUpdateCheck() { let update = null; const pkg = { name, version }; try { update = await (0, import_update_check.default)(pkg, { distTag: pkg.version.startsWith("0.0.0") ? "beta" : "latest" }); } catch { } return update?.latest; } function updateCheck() { return updateCheckPromise ??= doUpdateCheck(); } var import_update_check, updateCheckPromise; var init_update_check = __esm({ "src/update-check.ts"() { init_import_meta_url(); import_update_check = __toESM(require_update_check()); init_package(); __name(doUpdateCheck, "doUpdateCheck"); __name(updateCheck, "updateCheck"); } }); var flags, run, getFlag; var init_experimental_flags = __esm({ "src/experimental-flags.ts"() { init_import_meta_url(); init_logger(); flags = new async_hooks.AsyncLocalStorage(); run = /* @__PURE__ */ __name((flagValues, cb2) => flags.run(flagValues, cb2), "run"); getFlag = /* @__PURE__ */ __name((flag) => { const store = flags.getStore(); if (store === void 0) { logger.debug("No experimental flag store instantiated"); } const value = flags.getStore()?.[flag]; if (value === void 0) { logger.debug( `Attempted to use flag "${flag}" which has not been instantiated` ); } return value; }, "getFlag"); } }); function printBindings(bindings, tailConsumers = [], streamingTailConsumers = [], containers = [], context2 = {}) { let hasConnectionStatus = false; const log2 = context2.log ?? logger.log; const isMultiWorker = context2.isMultiWorker ?? getFlag("MULTIWORKER"); const getMode = createGetMode({ isProvisioning: context2.provisioning, isLocalDev: context2.local }); const truncate4 = /* @__PURE__ */ __name((item, maxLength = 40) => { const s7 = typeof item === "string" ? item : JSON.stringify(item); if (s7.length < maxLength) { return s7; } return `${s7.substring(0, maxLength - 3)}...`; }, "truncate"); const output = []; const data_blobs = extractBindingsOfType("data_blob", bindings); const durable_objects = extractBindingsOfType( "durable_object_namespace", bindings ); const workflows = extractBindingsOfType("workflow", bindings); const kv_namespaces = extractBindingsOfType("kv_namespace", bindings); const send_email = extractBindingsOfType("send_email", bindings); const queues = extractBindingsOfType("queue", bindings); const d1_databases = extractBindingsOfType("d1", bindings); const vectorize = extractBindingsOfType("vectorize", bindings); const hyperdrive = extractBindingsOfType("hyperdrive", bindings); const r2_buckets = extractBindingsOfType("r2_bucket", bindings); const logfwdr = extractBindingsOfType("logfwdr", bindings); const secrets_store_secrets = extractBindingsOfType( "secrets_store_secret", bindings ); const services = extractBindingsOfType("service", bindings); const vpc_services = extractBindingsOfType("vpc_service", bindings); const analytics_engine_datasets = extractBindingsOfType( "analytics_engine", bindings ); const text_blobs = extractBindingsOfType("text_blob", bindings); const browser = extractBindingsOfType("browser", bindings); const images = extractBindingsOfType("images", bindings); const ai2 = extractBindingsOfType("ai", bindings); const version_metadata = extractBindingsOfType("version_metadata", bindings); const vars = Object.entries(bindings ?? {}).filter( ([_5, binding]) => binding.type === "plain_text" || binding.type === "json" || binding.type === "secret_text" ).map(([name2, binding]) => ({ binding: name2, ...binding })); const wasm_modules = extractBindingsOfType("wasm_module", bindings); const dispatch_namespaces = extractBindingsOfType( "dispatch_namespace", bindings ); const mtls_certificates = extractBindingsOfType("mtls_certificate", bindings); const pipelines = extractBindingsOfType("pipeline", bindings); const ratelimits = extractBindingsOfType("ratelimit", bindings); const assets = extractBindingsOfType("assets", bindings); const unsafe_hello_world = extractBindingsOfType( "unsafe_hello_world", bindings ); const media = extractBindingsOfType("media", bindings); const worker_loaders = extractBindingsOfType("worker_loader", bindings); const unsafe_bindings = Object.entries(bindings ?? {}).filter( ([_5, binding]) => isUnsafeBindingType(binding.type) && binding.type !== "unsafe_hello_world" ).map(([name2, binding]) => ({ name: name2, ...binding })); if (data_blobs.length > 0) { output.push( ...data_blobs.map(({ binding, source }) => ({ name: binding, type: getBindingTypeFriendlyName("data_blob"), value: "contents" in source ? "" : truncate4(source.path), mode: getMode({ isSimulatedLocally: true }) })) ); } if (durable_objects.length > 0) { output.push( ...durable_objects.map(({ name: name2, class_name, script_name }) => { let value = class_name; let mode = void 0; if (script_name) { if (context2.local && context2.registry !== null) { const registryDefinition = context2.registry?.[script_name]; hasConnectionStatus = true; if (registryDefinition && registryDefinition.durableObjects.some( (d8) => d8.className === class_name )) { value += `, defined in ${script_name}`; mode = getMode({ isSimulatedLocally: true, connected: true }); } else { value += `, defined in ${script_name}`; mode = getMode({ isSimulatedLocally: true, connected: false }); } } else { value += `, defined in ${script_name}`; mode = getMode({ isSimulatedLocally: true }); } } else { mode = getMode({ isSimulatedLocally: true }); } return { name: name2, type: getBindingTypeFriendlyName("durable_object_namespace"), value, mode }; }) ); } if (workflows.length > 0) { output.push( ...workflows.map(({ class_name, script_name, binding, remote }) => { let value = class_name; if (script_name) { value += ` (defined in ${script_name})`; } return { name: binding, type: getBindingTypeFriendlyName("workflow"), value, mode: getMode({ isSimulatedLocally: script_name && !context2.remoteBindingsDisabled ? !remote : true }) }; }) ); } if (kv_namespaces.length > 0) { output.push( ...kv_namespaces.map(({ binding, id, remote }) => { return { name: binding, type: getBindingTypeFriendlyName("kv_namespace"), value: id, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }) }; }) ); } if (send_email.length > 0) { output.push( ...send_email.map((emailBinding) => { const destination_address = "destination_address" in emailBinding ? emailBinding.destination_address : void 0; const allowed_destination_addresses = "allowed_destination_addresses" in emailBinding ? emailBinding.allowed_destination_addresses : void 0; const allowed_sender_addresses = "allowed_sender_addresses" in emailBinding ? emailBinding.allowed_sender_addresses : void 0; let value = destination_address || allowed_destination_addresses?.join(", ") || "unrestricted"; if (allowed_sender_addresses) { value += ` - senders: ${allowed_sender_addresses.join(", ")}`; } return { name: emailBinding.name, type: getBindingTypeFriendlyName("send_email"), value, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !emailBinding.remote }) }; }) ); } if (queues.length > 0) { output.push( ...queues.map(({ binding, queue_name, remote }) => { return { name: binding, type: getBindingTypeFriendlyName("queue"), value: queue_name, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }) }; }) ); } if (d1_databases.length > 0) { output.push( ...d1_databases.map( ({ binding, database_name, database_id, preview_database_id, remote }) => { const value = typeof database_id == "symbol" ? database_id : preview_database_id ?? database_name ?? database_id; return { name: binding, type: getBindingTypeFriendlyName("d1"), mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }), value }; } ) ); } if (vectorize.length > 0) { output.push( ...vectorize.map(({ binding, index_name, remote }) => { return { name: binding, type: getBindingTypeFriendlyName("vectorize"), value: index_name, mode: getMode({ isSimulatedLocally: remote && !context2.remoteBindingsDisabled ? false : void 0 }) }; }) ); } if (hyperdrive.length > 0) { output.push( ...hyperdrive.map(({ binding, id }) => { return { name: binding, type: getBindingTypeFriendlyName("hyperdrive"), value: id, mode: getMode({ isSimulatedLocally: true }) }; }) ); } if (vpc_services.length > 0) { output.push( ...vpc_services.map(({ binding, service_id, remote }) => { return { name: binding, type: getBindingTypeFriendlyName("vpc_service"), value: service_id, mode: getMode({ isSimulatedLocally: remote && !context2.remoteBindingsDisabled ? false : void 0 }) }; }) ); } if (r2_buckets.length > 0) { output.push( ...r2_buckets.map(({ binding, bucket_name, jurisdiction, remote }) => { const value = typeof bucket_name === "symbol" ? bucket_name : bucket_name ? `${bucket_name}${jurisdiction ? ` (${jurisdiction})` : ""}` : void 0; return { name: binding, type: getBindingTypeFriendlyName("r2_bucket"), value, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }) }; }) ); } if (logfwdr.length > 0) { output.push( ...logfwdr.map(({ name: name2, destination }) => { return { name: name2, type: getBindingTypeFriendlyName("logfwdr"), value: destination, mode: getMode() }; }) ); } if (secrets_store_secrets.length > 0) { output.push( ...secrets_store_secrets.map(({ binding, store_id, secret_name }) => { return { name: binding, type: getBindingTypeFriendlyName("secrets_store_secret"), value: `${store_id}/${secret_name}`, mode: getMode({ isSimulatedLocally: true }) }; }) ); } if (unsafe_hello_world.length > 0) { output.push( ...unsafe_hello_world.map(({ binding, enable_timer }) => { return { name: binding, type: getBindingTypeFriendlyName("unsafe_hello_world"), value: enable_timer ? `Timer enabled` : `Timer disabled`, mode: getMode({ isSimulatedLocally: true }) }; }) ); } if (services.length > 0) { output.push( ...services.map(({ binding, service, entrypoint, remote }) => { let value = service; let mode = void 0; if (entrypoint) { value += `#${entrypoint}`; } if (remote) { mode = getMode({ isSimulatedLocally: false }); } else if (context2.local && context2.registry !== null) { const isSelfBinding = service === context2.name; if (isSelfBinding) { hasConnectionStatus = true; mode = getMode({ isSimulatedLocally: true, connected: true }); } else { const registryDefinition = context2.registry?.[service]; hasConnectionStatus = true; if (registryDefinition && (!entrypoint || registryDefinition.entrypointAddresses?.[entrypoint])) { mode = getMode({ isSimulatedLocally: true, connected: true }); } else { mode = getMode({ isSimulatedLocally: true, connected: false }); } } } return { name: binding, type: getBindingTypeFriendlyName("service"), value, mode }; }) ); } if (analytics_engine_datasets.length > 0) { output.push( ...analytics_engine_datasets.map(({ binding, dataset }) => { return { name: binding, type: getBindingTypeFriendlyName("analytics_engine"), value: dataset ?? binding, mode: getMode({ isSimulatedLocally: true }) }; }) ); } if (text_blobs.length > 0) { output.push( ...text_blobs.map(({ binding, source }) => ({ name: binding, type: getBindingTypeFriendlyName("text_blob"), value: "contents" in source ? truncate4(source.contents) : "path" in source ? truncate4(source.path) : void 0, mode: getMode({ isSimulatedLocally: true }) })) ); } if (browser.length > 0) { output.push( ...browser.map(({ binding, remote }) => ({ name: binding, type: getBindingTypeFriendlyName("browser"), value: void 0, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }) })) ); } if (images.length > 0) { output.push( ...images.map(({ binding, remote }) => ({ name: binding, type: getBindingTypeFriendlyName("images"), value: void 0, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }) })) ); } if (media.length > 0) { output.push( ...media.map(({ binding, remote }) => ({ name: binding, type: getBindingTypeFriendlyName("media"), value: void 0, mode: getMode({ isSimulatedLocally: (remote === true || remote === void 0) && !context2.remoteBindingsDisabled ? false : void 0 }) })) ); } if (ai2.length > 0) { output.push( ...ai2.map(({ binding, staging, remote }) => ({ name: binding, type: getBindingTypeFriendlyName("ai"), value: staging ? `staging` : void 0, mode: getMode({ isSimulatedLocally: (remote === true || remote === void 0) && !context2.remoteBindingsDisabled ? false : void 0 }) })) ); } if (pipelines.length > 0) { output.push( ...pipelines.map(({ binding, pipeline, remote }) => ({ name: binding, type: getBindingTypeFriendlyName("pipeline"), value: pipeline, mode: getMode({ isSimulatedLocally: context2.remoteBindingsDisabled || !remote }) })) ); } if (ratelimits.length > 0) { output.push( ...ratelimits.map(({ name: name2, simple }) => ({ name: name2, type: getBindingTypeFriendlyName("ratelimit"), value: `${simple.limit} requests/${simple.period}s`, mode: getMode({ isSimulatedLocally: true }) })) ); } if (assets.length > 0) { output.push( ...assets.map(({ binding }) => ({ name: binding, type: getBindingTypeFriendlyName("assets"), value: void 0, mode: getMode({ isSimulatedLocally: true }) })) ); } if (version_metadata.length > 0) { output.push( ...version_metadata.map(({ binding }) => ({ name: binding, type: getBindingTypeFriendlyName("version_metadata"), value: void 0, mode: getMode({ isSimulatedLocally: true }) })) ); } if (unsafe_bindings.length > 0) { output.push( ...unsafe_bindings.map((binding) => { const dev2 = "dev" in binding ? binding.dev : void 0; const originalType = binding.type.slice("unsafe_".length); return { name: binding.name, type: dev2 ? dev2.plugin.name : getBindingTypeFriendlyName(binding.type), value: originalType, mode: getMode({ isSimulatedLocally: !!dev2 }) }; }) ); } if (vars.length > 0) { output.push( ...vars.map((variable) => { const { binding, type: varType, value: varValue } = variable; let parsedValue; if (varType === "plain_text" && variable.hidden !== true) { parsedValue = `"${truncate4(varValue)}"`; } else if (varType === "json") { parsedValue = truncate4(JSON.stringify(varValue)); } else { parsedValue = `"(hidden)"`; } return { name: binding, type: getBindingTypeFriendlyName(varType), value: parsedValue, mode: getMode({ isSimulatedLocally: true }) }; }) ); } if (wasm_modules.length > 0) { output.push( ...wasm_modules.map(({ binding, source }) => ({ name: binding, type: getBindingTypeFriendlyName("wasm_module"), value: "contents" in source ? "" : truncate4(source.path), mode: getMode({ isSimulatedLocally: true }) })) ); } if (dispatch_namespaces.length > 0) { output.push( ...dispatch_namespaces.map(({ binding, namespace, outbound, remote }) => { return { name: binding, type: getBindingTypeFriendlyName("dispatch_namespace"), value: outbound ? `${namespace} (outbound -> ${outbound.service})` : namespace, mode: getMode({ isSimulatedLocally: remote && !context2.remoteBindingsDisabled ? false : void 0 }) }; }) ); } if (mtls_certificates.length > 0) { output.push( ...mtls_certificates.map(({ binding, certificate_id, remote }) => { return { name: binding, type: getBindingTypeFriendlyName("mtls_certificate"), value: certificate_id, mode: getMode({ isSimulatedLocally: remote && !context2.remoteBindingsDisabled ? false : void 0 }) }; }) ); } if (worker_loaders.length > 0) { output.push( ...worker_loaders.map(({ binding }) => ({ name: binding, type: getBindingTypeFriendlyName("worker_loader"), value: void 0, mode: getMode({ isSimulatedLocally: true }) })) ); } if (output.length === 0) { if (context2.warnIfNoBindings) { if (context2.name && isMultiWorker) { log2(`No bindings found for ${source_default.blue(context2.name)}`); } else { log2("No bindings found."); } } } else { let title2; if (context2.provisioning) { title2 = `${source_default.red("Experimental:")} The following bindings need to be provisioned:`; } else if (context2.name && isMultiWorker) { title2 = `${source_default.blue(context2.name)} has access to the following bindings:`; } else { title2 = "Your Worker has access to the following bindings:"; } const headings = { binding: "Binding", resource: "Resource", mode: "Mode" }; const maxValueLength = Math.max( ...output.map( (b11) => typeof b11.value === "symbol" ? "inherited".length : b11.value?.length ?? 0 ) ); const maxNameLength = Math.max(...output.map((b11) => b11.name.length)); const maxTypeLength = Math.max( ...output.map((b11) => b11.type.length), headings.resource.length ); const maxModeLength = Math.max( ...output.map( (b11) => b11.mode ? util2.stripVTControlCharacters(b11.mode).length : headings.mode.length ) ); const hasMode = output.some((b11) => b11.mode); const bindingPrefix = `env.`; const bindingLength = bindingPrefix.length + maxNameLength + " (".length + maxValueLength + ")".length; const columnGapSpaces = 6; const columnGapSpacesWrapped = 4; const shouldWrap = bindingLength + columnGapSpaces + maxTypeLength + columnGapSpaces + maxModeLength >= process.stdout.columns; log2(title2); const columnGap = shouldWrap ? " ".repeat(columnGapSpacesWrapped) : " ".repeat(columnGapSpaces); log2( `${padEndAnsi(dim(headings.binding), shouldWrap ? bindingPrefix.length + maxNameLength : bindingLength)}${columnGap}${padEndAnsi(dim(headings.resource), maxTypeLength)}${columnGap}${hasMode ? dim(headings.mode) : ""}` ); for (const binding of output) { const bindingValue = dim( typeof binding.value === "symbol" ? source_default.italic("inherited") : binding.value ?? "" ); const bindingString = padEndAnsi( `${white(`env.${binding.name}`)}${binding.value && !shouldWrap ? ` (${bindingValue})` : ""}`, shouldWrap ? bindingPrefix.length + maxNameLength : bindingLength ); const suffix = shouldWrap ? binding.value ? ` ${bindingValue}` : "" : ""; log2( `${bindingString}${columnGap}${brandColor(binding.type.padEnd(maxTypeLength))}${columnGap}${hasMode ? binding.mode : ""}${suffix}` ); } log2(""); } let title; if (context2.name && isMultiWorker) { title = `${source_default.blue(context2.name)} is sending Tail events to the following Workers:`; } else { title = "Your Worker is sending Tail events to the following Workers:"; } const allTailConsumers = [ ...(tailConsumers ?? []).map((c8) => ({ service: c8.service, streaming: false })), ...(streamingTailConsumers ?? []).map((c8) => ({ service: c8.service, streaming: true })) ]; if (allTailConsumers.length > 0) { log2( `${title} ${allTailConsumers.map(({ service, streaming }) => { const displayName = `${service}${streaming ? ` (streaming)` : ""}`; if (context2.local && context2.registry !== null) { const registryDefinition = context2.registry?.[service]; hasConnectionStatus = true; if (registryDefinition) { return `- ${displayName} ${source_default.green("[connected]")}`; } else { return `- ${displayName} ${source_default.red("[not connected]")}`; } } else { return `- ${displayName}`; } }).join("\n")}` ); } if (containers.length > 0 && !context2.provisioning) { let containersTitle = "The following containers are available:"; if (context2.name && isMultiWorker) { containersTitle = `The following containers are available from ${source_default.blue(context2.name)}:`; } log2( `${containersTitle} ${containers.map((c8) => `- ${c8.name} (${c8.image})`).join("\n")}` ); log2(""); } if (context2.unsafeMetadata) { log2("The following unsafe metadata will be attached to your Worker:"); log2(JSON.stringify(context2.unsafeMetadata, null, 2)); } if (hasConnectionStatus && !isConnectedStatusExplained) { log2( dim( ` Service bindings, Durable Object bindings, and Tail consumers connect to other Wrangler or Vite dev processes running locally, with their connection status indicated by ${source_default.green("[connected]")} or ${source_default.red("[not connected]")}. For more details, refer to https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/#local-development ` ) ); isConnectedStatusExplained = true; } } function padEndAnsi(str, length) { return str + " ".repeat(Math.max(0, length - util2.stripVTControlCharacters(str).length)); } function createGetMode({ isProvisioning = false, isLocalDev = false }) { return /* @__PURE__ */ __name(function bindingMode({ isSimulatedLocally, connected } = {}) { if (isProvisioning || !isLocalDev) { return void 0; } if (isSimulatedLocally === void 0) { return dim("not supported"); } return `${isSimulatedLocally ? source_default.blue("local") : source_default.yellow("remote")}${connected === void 0 ? "" : connected ? source_default.green(" [connected]") : source_default.red(" [not connected]")}`; }, "bindingMode"); } function warnOrError(type, remote, supports2) { if (remote === true && supports2 === "local") { throw new UserError( `${getBindingTypeFriendlyName(type)} bindings do not support accessing remote resources.`, { telemetryMessage: true } ); } if (remote === false && supports2 === "remote") { throw new UserError( `${getBindingTypeFriendlyName(type)} bindings do not support local development. You may be able to set \`remote: true\` for the binding definition in your configuration file to access a remote version of the resource.`, { telemetryMessage: true } ); } if (remote === void 0 && supports2 === "remote") { logger.warn( `${getBindingTypeFriendlyName(type)} bindings do not support local development, and so parts of your Worker may not work correctly. You may be able to set \`remote: true\` for the binding definition in your configuration file to access a remote version of the resource.` ); } if (remote === void 0 && supports2 === "always-remote") { logger.warn( `${getBindingTypeFriendlyName(type)} bindings always access remote resources, and so may incur usage charges even in local dev. To suppress this warning, set \`remote: true\` for the binding definition in your configuration file.` ); } } var isConnectedStatusExplained; var init_print_bindings = __esm({ "src/utils/print-bindings.ts"() { init_import_meta_url(); init_colors(); init_dist(); init_source(); init_utils2(); init_experimental_flags(); init_logger(); isConnectedStatusExplained = false; __name(printBindings, "printBindings"); __name(padEndAnsi, "padEndAnsi"); __name(createGetMode, "createGetMode"); __name(warnOrError, "warnOrError"); } }); // src/dev/class-names-sqlite.ts function getDurableObjectClassNameToUseSQLiteMap(migrations) { const durableObjectClassNameToUseSQLiteMap = /* @__PURE__ */ new Map(); (migrations || []).forEach((migration) => { migration.deleted_classes?.forEach((deleted_class) => { if (!durableObjectClassNameToUseSQLiteMap.delete(deleted_class)) { throw new UserError( `Cannot apply deleted_classes migration to non-existent class ${deleted_class}` ); } }); migration.renamed_classes?.forEach(({ from, to }) => { const useSQLite = durableObjectClassNameToUseSQLiteMap.get(from); if (useSQLite === void 0) { throw new UserError( `Cannot apply renamed_classes migration to non-existent class ${from}` ); } else { durableObjectClassNameToUseSQLiteMap.delete(from); durableObjectClassNameToUseSQLiteMap.set(to, useSQLite); } }); migration.new_classes?.forEach((new_class) => { if (durableObjectClassNameToUseSQLiteMap.has(new_class)) { throw new UserError( `Cannot apply new_classes migration to existing class ${new_class}` ); } else { durableObjectClassNameToUseSQLiteMap.set(new_class, false); } }); migration.new_sqlite_classes?.forEach((new_class) => { if (durableObjectClassNameToUseSQLiteMap.has(new_class)) { throw new UserError( `Cannot apply new_sqlite_classes migration to existing class ${new_class}` ); } else { durableObjectClassNameToUseSQLiteMap.set(new_class, true); } }); }); return durableObjectClassNameToUseSQLiteMap; } var init_class_names_sqlite = __esm({ "src/dev/class-names-sqlite.ts"() { init_import_meta_url(); init_dist(); __name(getDurableObjectClassNameToUseSQLiteMap, "getDurableObjectClassNameToUseSQLiteMap"); } }); function getName(config) { return config.name ?? DEFAULT_WORKER_NAME; } function getIdentifier(name2) { return name2.replace(IDENTIFIER_UNSAFE_REGEXP, "_"); } function castLogLevel(level) { let key = level.toUpperCase(); if (key === "LOG") { key = "INFO"; } return miniflare.LogLevel[key]; } function buildLog() { const level = castLogLevel(logger.loggerLevel); return new WranglerLog(level, { prefix: level === miniflare.LogLevel.DEBUG ? "wrangler-UserWorker" : "wrangler" }); } async function buildSourceOptions(config) { const scriptPath4 = config.bundle.path; if (config.format === "modules") { const isPython = config.bundle.type === "python"; const { entrypointSource, modules } = isPython ? { entrypointSource: config.bundle.entrypointSource, modules: config.bundle.modules } : withSourceURLs( scriptPath4, config.bundle.entrypointSource, config.bundle.modules ); const entrypointNames = isPython ? [] : config.bundle.entry.exports; const modulesRoot = path3__namespace.default.dirname(scriptPath4); const sourceOptions = { modulesRoot, modules: [ // Entrypoint { type: ModuleTypeToRuleType[config.bundle.type], path: scriptPath4, contents: entrypointSource }, // Misc (WebAssembly, etc, ...) ...modules.map((module4) => ({ type: ModuleTypeToRuleType[module4.type ?? "esm"], path: path3__namespace.default.resolve(modulesRoot, module4.name), contents: module4.content })) ] }; return { sourceOptions, entrypointNames }; } else { return { sourceOptions: { script: config.bundle.entrypointSource, scriptPath: scriptPath4 }, entrypointNames: [] }; } } function getRemoteId(id) { return typeof id === "string" ? id : null; } function kvNamespaceEntry({ binding, id: originalId, remote }, remoteProxyConnectionString) { const id = getRemoteId(originalId) ?? binding; if (!remoteProxyConnectionString || !remote) { return [binding, { id }]; } return [binding, { id, remoteProxyConnectionString }]; } function r2BucketEntry({ binding, bucket_name, remote }, remoteProxyConnectionString) { const id = getRemoteId(bucket_name) ?? binding; if (!remoteProxyConnectionString || !remote) { return [binding, { id }]; } return [binding, { id, remoteProxyConnectionString }]; } function d1DatabaseEntry({ binding, database_id, preview_database_id, remote }, remoteProxyConnectionString) { const id = getRemoteId(preview_database_id ?? database_id) ?? binding; if (!remoteProxyConnectionString || !remote) { return [binding, { id }]; } return [binding, { id, remoteProxyConnectionString }]; } function queueProducerEntry({ binding, queue_name: queueName, delivery_delay: deliveryDelay, remote }, remoteProxyConnectionString) { if (!remoteProxyConnectionString || !remote) { return [binding, { queueName, deliveryDelay }]; } return [binding, { queueName, deliveryDelay, remoteProxyConnectionString }]; } function pipelineEntry(pipeline, remoteProxyConnectionString) { if (!remoteProxyConnectionString || !pipeline.remote) { return [pipeline.binding, { pipeline: pipeline.pipeline }]; } return [ pipeline.binding, { pipeline: pipeline.pipeline, remoteProxyConnectionString } ]; } function hyperdriveEntry(hyperdrive) { return [hyperdrive.binding, hyperdrive.localConnectionString ?? ""]; } function workflowEntry({ binding, name: name2, class_name: className, script_name: scriptName, remote }, remoteProxyConnectionString) { if (!remoteProxyConnectionString || !remote) { return [ binding, { name: name2, className, scriptName } ]; } return [ binding, { name: name2, className, scriptName, remoteProxyConnectionString } ]; } function dispatchNamespaceEntry({ binding, namespace, remote }, remoteProxyConnectionString) { if (!remoteProxyConnectionString || !remote) { return [binding, { namespace }]; } return [binding, { namespace, remoteProxyConnectionString }]; } function ratelimitEntry(ratelimit) { return [ratelimit.name, ratelimit]; } function queueConsumerEntry(consumer) { const options = { maxBatchSize: consumer.max_batch_size, maxBatchTimeout: consumer.max_batch_timeout, maxRetries: consumer.max_retries, deadLetterQueue: consumer.dead_letter_queue, retryDelay: consumer.retry_delay }; return [consumer.queue, options]; } function buildMiniflareBindingOptions(config, remoteProxyConnectionString) { const bindings = config.bindings; const textBlobs = extractBindingsOfType("text_blob", bindings); const dataBlobs = extractBindingsOfType("data_blob", bindings); const wasmModules = extractBindingsOfType("wasm_module", bindings); const plainTextBindings = extractBindingsOfType("plain_text", bindings); const secretTextBindings = extractBindingsOfType("secret_text", bindings); const jsonBindings = extractBindingsOfType("json", bindings); const kvNamespaces = extractBindingsOfType("kv_namespace", bindings); const r2Buckets = extractBindingsOfType("r2_bucket", bindings); const d1Databases = extractBindingsOfType("d1", bindings); const queues = extractBindingsOfType("queue", bindings); const pipelines = extractBindingsOfType("pipeline", bindings); const hyperdrives = extractBindingsOfType("hyperdrive", bindings); const workflows = extractBindingsOfType("workflow", bindings); const durableObjects = extractBindingsOfType( "durable_object_namespace", bindings ); const services = extractBindingsOfType("service", bindings); const analyticsEngineDatasets = extractBindingsOfType( "analytics_engine", bindings ); const dispatchNamespaces = extractBindingsOfType( "dispatch_namespace", bindings ); const mtlsCertificates = extractBindingsOfType("mtls_certificate", bindings); const vectorizeBindings = extractBindingsOfType("vectorize", bindings); const vpcServices = extractBindingsOfType("vpc_service", bindings); const secretsStoreSecrets = extractBindingsOfType( "secrets_store_secret", bindings ); const helloWorldBindings = extractBindingsOfType( "unsafe_hello_world", bindings ); const workerLoaders = extractBindingsOfType("worker_loader", bindings); const sendEmailBindings = extractBindingsOfType("send_email", bindings); const ratelimits = [ ...extractBindingsOfType("ratelimit", bindings), ...extractBindingsOfType("unsafe_ratelimit", bindings) ]; const aiBindings = extractBindingsOfType("ai", bindings); const imagesBindings = extractBindingsOfType("images", bindings); const mediaBindings = extractBindingsOfType("media", bindings); const browserBindings = extractBindingsOfType("browser", bindings); const versionMetadataBindings = extractBindingsOfType( "version_metadata", bindings ); const fetchers = extractBindingsOfType("fetcher", bindings); const textBlobBindings = {}; for (const blob of textBlobs) { if ("path" in blob.source && blob.source.path) { textBlobBindings[blob.binding] = blob.source.path; } else if ("contents" in blob.source) { textBlobBindings[blob.binding] = blob.source.contents; } } const dataBlobBindings = {}; for (const blob of dataBlobs) { if ("path" in blob.source && blob.source.path) { dataBlobBindings[blob.binding] = blob.source.path; } else if ("contents" in blob.source) { dataBlobBindings[blob.binding] = blob.source.contents; } } const wasmBindings = {}; for (const wasm of wasmModules) { if ("path" in wasm.source && wasm.source.path) { wasmBindings[wasm.binding] = wasm.source.path; } else if ("contents" in wasm.source) { wasmBindings[wasm.binding] = wasm.source.contents; } } if (config.format === "service-worker" && config.bundle) { const scriptPath4 = config.bundle.path; const modulesRoot = path3__namespace.default.dirname(scriptPath4); for (const { type, name: name2 } of config.bundle.modules) { if (type === "text") { textBlobBindings[getIdentifier(name2)] = path3__namespace.default.resolve(modulesRoot, name2); } else if (type === "buffer") { dataBlobBindings[getIdentifier(name2)] = path3__namespace.default.resolve(modulesRoot, name2); } else if (type === "compiled-wasm") { wasmBindings[getIdentifier(name2)] = path3__namespace.default.resolve(modulesRoot, name2); } } } const serviceBindings = Object.fromEntries(fetchers.map((f8) => [f8.binding, f8.fetcher])); for (const service of services) { if (remoteProxyConnectionString && service.remote) { serviceBindings[service.binding] = { name: service.service, props: service.props, entrypoint: service.entrypoint, remoteProxyConnectionString }; continue; } serviceBindings[service.binding] = { name: service.service, entrypoint: service.entrypoint, props: service.props }; } const tails = []; for (const tail of config.tails ?? []) { tails.push({ name: tail.service }); } const streamingTails = []; for (const streamingTail of config.streamingTails ?? []) { streamingTails.push({ name: streamingTail.service }); } const classNameToUseSQLite = getDurableObjectClassNameToUseSQLiteMap( config.migrations ); const externalWorkers = []; const wrappedBindings = {}; for (const ai2 of aiBindings) { warnOrError("ai", ai2.remote, "always-remote"); } for (const media of mediaBindings) { warnOrError("media", media.remote, "always-remote"); } const unsafeBindings = []; const unsafeBindingsWithLocalDev = Object.entries(bindings ?? {}).filter( (b11) => isUnsafeServiceBindingWithDevCfg(b11[1]) ); for (const [name2, unsafeBinding] of unsafeBindingsWithLocalDev) { assert50__default.default(isUnsafeServiceBindingWithDevCfg(unsafeBinding)); const { type, dev: { plugin, options: devOptions }, // additional options that are included in the production binding ...options } = unsafeBinding; logger.debug( `Binding ${name2} is a local binding to plugin ${plugin.name} provided by package ${plugin.package}` ); unsafeBindings.push({ name: name2, type: type.slice("unsafe_".length), plugin, options: { ...options, ...devOptions } }); } const additionalUnboundDurableObjects = []; for (const [className, useSQLite] of classNameToUseSQLite) { if (!durableObjects.find((d8) => d8.class_name === className)) { additionalUnboundDurableObjects.push({ className, scriptName: void 0, useSQLite, container: config.containerDOClassNames?.size && config.enableContainers ? getImageNameFromDOClassName({ doClassName: className, containerDOClassNames: config.containerDOClassNames, containerBuildId: config.containerBuildId }) : void 0 }); } } const vars = {}; for (const binding of plainTextBindings) { vars[binding.binding] = binding.value; } for (const binding of secretTextBindings) { vars[binding.binding] = binding.value; } for (const binding of jsonBindings) { vars[binding.binding] = binding.value; } const bindingOptions = { bindings: vars, versionMetadata: versionMetadataBindings[0]?.binding, textBlobBindings, dataBlobBindings, wasmBindings, unsafeBindings, ai: aiBindings.length > 0 ? { binding: aiBindings[0].binding, remoteProxyConnectionString } : void 0, kvNamespaces: Object.fromEntries( kvNamespaces.map( (kv) => kvNamespaceEntry(kv, remoteProxyConnectionString) ) ), r2Buckets: Object.fromEntries( r2Buckets.map((r22) => r2BucketEntry(r22, remoteProxyConnectionString)) ), d1Databases: Object.fromEntries( d1Databases.map((d1) => d1DatabaseEntry(d1, remoteProxyConnectionString)) ), queueProducers: Object.fromEntries( queues.map( (queue) => queueProducerEntry(queue, remoteProxyConnectionString) ) ), queueConsumers: Object.fromEntries( config.queueConsumers?.map(queueConsumerEntry) ?? [] ), pipelines: Object.fromEntries( pipelines.map( (pipeline) => pipelineEntry(pipeline, remoteProxyConnectionString) ) ), hyperdrives: Object.fromEntries(hyperdrives.map(hyperdriveEntry)), analyticsEngineDatasets: Object.fromEntries( analyticsEngineDatasets.map((binding) => [ binding.binding, { dataset: binding.dataset ?? "dataset" } ]) ), workflows: Object.fromEntries( workflows.map( (workflow) => workflowEntry(workflow, remoteProxyConnectionString) ) ), secretsStoreSecrets: Object.fromEntries( secretsStoreSecrets.map((binding) => [binding.binding, binding]) ), helloWorld: Object.fromEntries( helloWorldBindings.map((binding) => [binding.binding, binding]) ), workerLoaders: Object.fromEntries( workerLoaders.map(({ binding }) => [binding, {}]) ), email: { send_email: sendEmailBindings.map(({ type: _type, ...b11 }) => { return { ...b11, remoteProxyConnectionString: b11.remote && remoteProxyConnectionString ? remoteProxyConnectionString : void 0 }; }) }, images: imagesBindings.length > 0 ? { binding: imagesBindings[0].binding, remoteProxyConnectionString: imagesBindings[0].remote && remoteProxyConnectionString ? remoteProxyConnectionString : void 0 } : void 0, media: mediaBindings.length > 0 ? { binding: mediaBindings[0].binding, remoteProxyConnectionString } : void 0, browserRendering: browserBindings.length > 0 ? { binding: browserBindings[0].binding, remoteProxyConnectionString: remoteProxyConnectionString && browserBindings[0].remote ? remoteProxyConnectionString : void 0 } : void 0, vectorize: Object.fromEntries( vectorizeBindings.map((vectorize) => { warnOrError("vectorize", vectorize.remote, "remote"); return [ vectorize.binding, { index_name: vectorize.index_name, remoteProxyConnectionString: vectorize.remote && remoteProxyConnectionString ? remoteProxyConnectionString : void 0 } ]; }) ), vpcServices: Object.fromEntries( vpcServices.map((vpc) => { warnOrError("vpc_service", vpc.remote, "always-remote"); return [ vpc.binding, { service_id: vpc.service_id, remoteProxyConnectionString: vpc.remote && remoteProxyConnectionString ? remoteProxyConnectionString : void 0 } ]; }) ), dispatchNamespaces: Object.fromEntries( dispatchNamespaces.map((dispatchNamespace) => { warnOrError("dispatch_namespace", dispatchNamespace.remote, "remote"); return dispatchNamespaceEntry( dispatchNamespace, dispatchNamespace.remote && remoteProxyConnectionString ? remoteProxyConnectionString : void 0 ); }) ), durableObjects: Object.fromEntries( durableObjects.map( ({ name: name2, class_name: className, script_name: scriptName }) => { return [ name2, { className, scriptName, useSQLite: classNameToUseSQLite.get(className), container: config.containerDOClassNames?.size && config.enableContainers ? getImageNameFromDOClassName({ doClassName: className, containerDOClassNames: config.containerDOClassNames, containerBuildId: config.containerBuildId }) : void 0 } ]; } ) ), additionalUnboundDurableObjects, ratelimits: Object.fromEntries(ratelimits.map(ratelimitEntry)), mtlsCertificates: Object.fromEntries( mtlsCertificates.map((mtlsCertificate) => { warnOrError("mtls_certificate", mtlsCertificate.remote, "remote"); return [ mtlsCertificate.binding, { remoteProxyConnectionString: mtlsCertificate.remote && remoteProxyConnectionString ? remoteProxyConnectionString : void 0, certificate_id: mtlsCertificate.certificate_id } ]; }) ), serviceBindings, wrappedBindings, tails, streamingTails }; return { bindingOptions, externalWorkers }; } function getDefaultPersistRoot(localPersistencePath) { if (localPersistencePath !== null) { const v3Path = path3__namespace.default.join(localPersistencePath, "v3"); return v3Path; } } function buildAssetOptions(config) { if (config.assets) { return { assets: { directory: config.assets.directory, binding: config.assets.binding, routerConfig: config.assets.routerConfig, assetConfig: config.assets.assetConfig } }; } } function buildSitesOptions({ legacyAssetPaths }) { if (legacyAssetPaths !== void 0) { const { baseDirectory, assetDirectory, includePatterns, excludePatterns } = legacyAssetPaths; return { sitePath: path3__namespace.default.join(baseDirectory, assetDirectory), siteInclude: includePatterns.length > 0 ? includePatterns : void 0, siteExclude: excludePatterns.length > 0 ? excludePatterns : void 0 }; } } async function buildMiniflareOptions(log2, config, proxyToUserWorkerAuthenticationSecret, remoteProxyConnectionString, onDevRegistryUpdate) { const upstream = typeof config.localUpstream === "string" ? `${config.upstreamProtocol}://${config.localUpstream}` : void 0; const { sourceOptions, entrypointNames } = await buildSourceOptions(config); const { bindingOptions, externalWorkers } = buildMiniflareBindingOptions( config, remoteProxyConnectionString ); const sitesOptions = buildSitesOptions(config); const defaultPersistRoot = getDefaultPersistRoot(config.localPersistencePath); const assetOptions = buildAssetOptions(config); const options = { host: config.initialIp, port: config.initialPort, inspectorPort: config.inspect ? config.inspectorPort : void 0, inspectorHost: config.inspect ? config.inspectorHost : void 0, liveReload: config.liveReload, upstream, unsafeDevRegistryPath: config.devRegistry, unsafeDevRegistryDurableObjectProxy: true, unsafeHandleDevRegistryUpdate: onDevRegistryUpdate, unsafeProxySharedSecret: proxyToUserWorkerAuthenticationSecret, unsafeTriggerHandlers: true, unsafeLocalExplorer: getLocalExplorerEnabledFromEnv(), // The way we run Miniflare instances with wrangler dev is that there are two: // - one holding the proxy worker, // - and one holding the user worker. // The issue with that setup is that end users would see two sets of request logs from Miniflare! // Instead of hiding all logs from this Miniflare instance, we specifically hide the request logs, // allowing other logs to be shown to the user (such as details about emails being triggered) logRequests: false, log: log2, verbose: logger.loggerLevel === "debug", handleStructuredLogs, defaultPersistRoot, workers: [ { name: getName(config), compatibilityDate: config.compatibilityDate, compatibilityFlags: config.compatibilityFlags, ...sourceOptions, ...bindingOptions, ...sitesOptions, ...assetOptions, // Allow each entrypoint to be accessed directly over `127.0.0.1:0` unsafeDirectSockets: entrypointNames.map((name2) => ({ host: "127.0.0.1", port: 0, entrypoint: name2, proxy: true })), containerEngine: config.containerEngine, zone: config.zone }, ...externalWorkers ] }; return options; } function getImageNameFromDOClassName(options) { assert50__default.default( options.containerBuildId, "Build ID should be set if containers are defined and enabled" ); if (options.containerDOClassNames.has(options.doClassName)) { return { imageName: getDevContainerImageName( options.doClassName, options.containerBuildId ) }; } } function isUnsafeServiceBindingWithDevCfg(b11) { return isUnsafeBindingType(b11.type) && "dev" in b11; } function handleStructuredLogs({ level, message }) { if (level === "warn") { return logger.warn(message); } if (level === "info") { return logger.info(message); } if (level === "debug") { return logger.info(message); } if (level === "error") { return logger.error(getSourceMappedString(message)); } return logger.log(getSourceMappedString(message)); } var EXTERNAL_SERVICE_WORKER_NAME, WranglerLog, DEFAULT_WORKER_NAME, IDENTIFIER_UNSAFE_REGEXP; var init_miniflare = __esm({ "src/dev/miniflare/index.ts"() { init_import_meta_url(); init_containers_shared(); init_dist(); init_utils2(); init_module_collection(); init_source_url(); init_logger(); init_sourcemap(); init_update_check(); init_print_bindings(); init_class_names_sqlite(); EXTERNAL_SERVICE_WORKER_NAME = "__WRANGLER_EXTERNAL_DURABLE_OBJECTS_WORKER"; WranglerLog = class extends miniflare.Log { static { __name(this, "WranglerLog"); } #warnedCompatibilityDateFallback = false; log(message) { if (message.includes(EXTERNAL_SERVICE_WORKER_NAME)) { return; } super.log(message); } warn(message) { if (message.startsWith("The latest compatibility date supported by")) { if (this.#warnedCompatibilityDateFallback) { return; } this.#warnedCompatibilityDateFallback = true; return void updateCheck().then((maybeNewVersion) => { if (maybeNewVersion === void 0) { return; } message += [ "", "Features enabled by your requested compatibility date may not be available.", `Upgrade to \`wrangler@${maybeNewVersion}\` to remove this warning.` ].join("\n"); super.warn(message); }); } super.warn(message); } }; DEFAULT_WORKER_NAME = "worker"; __name(getName, "getName"); IDENTIFIER_UNSAFE_REGEXP = /[^a-zA-Z0-9_$]/g; __name(getIdentifier, "getIdentifier"); __name(castLogLevel, "castLogLevel"); __name(buildLog, "buildLog"); __name(buildSourceOptions, "buildSourceOptions"); __name(getRemoteId, "getRemoteId"); __name(kvNamespaceEntry, "kvNamespaceEntry"); __name(r2BucketEntry, "r2BucketEntry"); __name(d1DatabaseEntry, "d1DatabaseEntry"); __name(queueProducerEntry, "queueProducerEntry"); __name(pipelineEntry, "pipelineEntry"); __name(hyperdriveEntry, "hyperdriveEntry"); __name(workflowEntry, "workflowEntry"); __name(dispatchNamespaceEntry, "dispatchNamespaceEntry"); __name(ratelimitEntry, "ratelimitEntry"); __name(queueConsumerEntry, "queueConsumerEntry"); __name(buildMiniflareBindingOptions, "buildMiniflareBindingOptions"); __name(getDefaultPersistRoot, "getDefaultPersistRoot"); __name(buildAssetOptions, "buildAssetOptions"); __name(buildSitesOptions, "buildSitesOptions"); __name(buildMiniflareOptions, "buildMiniflareOptions"); __name(getImageNameFromDOClassName, "getImageNameFromDOClassName"); __name(isUnsafeServiceBindingWithDevCfg, "isUnsafeServiceBindingWithDevCfg"); __name(handleStructuredLogs, "handleStructuredLogs"); } }); // src/api/startDevWorker/devtools.ts var init_devtools = __esm({ "src/api/startDevWorker/devtools.ts"() { init_import_meta_url(); } }); // src/api/startDevWorker/events.ts function castErrorCause(cause) { if (cause instanceof Error) { return cause; } const error2 = new Error(); error2.cause = cause; return error2; } var init_events = __esm({ "src/api/startDevWorker/events.ts"() { init_import_meta_url(); init_devtools(); __name(castErrorCause, "castErrorCause"); } }); // src/api/startDevWorker/BaseController.ts var Controller, RuntimeController; var init_BaseController = __esm({ "src/api/startDevWorker/BaseController.ts"() { init_import_meta_url(); init_logger(); Controller = class { static { __name(this, "Controller"); } bus; #tearingDown = false; constructor(bus) { this.bus = bus; } async teardown() { this.#tearingDown = true; } emitErrorEvent(event) { if (this.#tearingDown) { logger.debug("Suppressing error event during teardown"); logger.debug(`Error in ${event.source}: ${event.reason} `, event.cause); logger.debug("=> Error contextual data:", event.data); return; } this.bus.dispatch(event); } }; RuntimeController = class extends Controller { static { __name(this, "RuntimeController"); } // ********************* // Event Dispatchers // ********************* emitReloadStartEvent(data) { this.bus.dispatch(data); } emitReloadCompleteEvent(data) { this.bus.dispatch(data); } emitDevRegistryUpdateEvent(data) { this.bus.dispatch(data); } }; } }); // src/pages/constants.ts var isWindows, MAX_ASSET_COUNT_DEFAULT, MAX_ASSET_SIZE2, PAGES_CONFIG_CACHE_FILENAME, MAX_BUCKET_SIZE, MAX_BUCKET_FILE_COUNT, BULK_UPLOAD_CONCURRENCY, MAX_UPLOAD_ATTEMPTS, MAX_UPLOAD_GATEWAY_ERRORS, MAX_DEPLOYMENT_ATTEMPTS, MAX_DEPLOYMENT_STATUS_ATTEMPTS, MAX_CHECK_MISSING_ATTEMPTS, SECONDS_TO_WAIT_FOR_PROXY, MAX_FUNCTIONS_ROUTES_RULES, MAX_FUNCTIONS_ROUTES_RULE_LENGTH, ROUTES_SPEC_VERSION, ROUTES_SPEC_DESCRIPTION; var init_constants3 = __esm({ "src/pages/constants.ts"() { init_import_meta_url(); init_package(); isWindows = process.platform === "win32"; MAX_ASSET_COUNT_DEFAULT = 2e4; MAX_ASSET_SIZE2 = 25 * 1024 * 1024; PAGES_CONFIG_CACHE_FILENAME = "pages.json"; MAX_BUCKET_SIZE = 40 * 1024 * 1024; MAX_BUCKET_FILE_COUNT = isWindows ? 1e3 : 2e3; BULK_UPLOAD_CONCURRENCY = 3; MAX_UPLOAD_ATTEMPTS = 5; MAX_UPLOAD_GATEWAY_ERRORS = 5; MAX_DEPLOYMENT_ATTEMPTS = 3; MAX_DEPLOYMENT_STATUS_ATTEMPTS = 5; MAX_CHECK_MISSING_ATTEMPTS = 5; SECONDS_TO_WAIT_FOR_PROXY = 5; MAX_FUNCTIONS_ROUTES_RULES = 100; MAX_FUNCTIONS_ROUTES_RULE_LENGTH = 100; ROUTES_SPEC_VERSION = 1; ROUTES_SPEC_DESCRIPTION = `Generated by wrangler@${version}`; } }); // src/pages/functions/routes-validation.ts function isRoutesJSONSpec(data) { return typeof data === "object" && data && "version" in data && typeof data.version === "number" && data.version === ROUTES_SPEC_VERSION && Array.isArray(data.include) && Array.isArray(data.exclude) || false; } function validateRoutes2(routesJSON, routesPath) { if (!isRoutesJSONSpec(routesJSON)) { throw new FatalError( getRoutesValidationErrorMessage( 0 /* INVALID_JSON_SPEC */, routesPath ), 1 ); } if (!hasIncludeRules(routesJSON)) { throw new FatalError( getRoutesValidationErrorMessage( 1 /* NO_INCLUDE_RULES */, routesPath ), 1 ); } if (!hasValidRulesCount(routesJSON)) { throw new FatalError( getRoutesValidationErrorMessage( 3 /* TOO_MANY_RULES */, routesPath ), 1 ); } if (!hasValidRuleCharCount(routesJSON)) { throw new FatalError( getRoutesValidationErrorMessage( 4 /* RULE_TOO_LONG */, routesPath ), 1 ); } if (!hasValidRules(routesJSON)) { throw new FatalError( getRoutesValidationErrorMessage( 2 /* INVALID_RULES */, routesPath ), 1 ); } if (hasOverlappingRules(routesJSON.include) || hasOverlappingRules(routesJSON.exclude)) { throw new FatalError( getRoutesValidationErrorMessage( 5 /* OVERLAPPING_RULES */, routesPath ), 1 ); } } function hasIncludeRules(routesJSON) { if (!routesJSON || !routesJSON.include) { throw new Error( "Function `hasIncludeRules` was called out of context. Attempting to validate include rules for routes that are undefined or an invalid RoutesJSONSpec" ); } return routesJSON?.include?.length > 0; } function hasValidRulesCount(routesJSON) { if (!routesJSON || !routesJSON.include || !routesJSON.exclude) { throw new Error( "Function `hasValidRulesCount` was called out of context. Attempting to validate maximum rules count for routes that are undefined or an invalid RoutesJSONSpec" ); } return routesJSON.include.length + routesJSON.exclude.length <= MAX_FUNCTIONS_ROUTES_RULES; } function hasValidRuleCharCount(routesJSON) { if (!routesJSON || !routesJSON.include || !routesJSON.exclude) { throw new Error( "Function `hasValidRuleCharCount` was called out of context. Attempting to validate rules maximum character count for routes that are undefined or an invalid RoutesJSONSpec" ); } const rules = [...routesJSON.include, ...routesJSON.exclude]; return rules.filter((rule) => rule.length > MAX_FUNCTIONS_ROUTES_RULE_LENGTH).length === 0; } function hasValidRules(routesJSON) { if (!routesJSON || !routesJSON.include || !routesJSON.exclude) { throw new Error( "Function `hasValidRules` was called out of context. Attempting to validate rules for routes that are undefined or an invalid RoutesJSONSpec" ); } const rules = [...routesJSON.include, ...routesJSON.exclude]; return rules.filter((rule) => !rule.match(/^\//)).length === 0; } function hasOverlappingRules(routes) { if (!routes) { throw new Error( "Function `hasverlappingRules` was called out of context. Attempting to validate rules for routes that are undefined" ); } const endingSplatRoutes = routes.filter((route) => route.endsWith("/*")); for (let i7 = 0; i7 < endingSplatRoutes.length; i7++) { const crrRoute = endingSplatRoutes[i7]; const crrRouteTrimmed = crrRoute.substring(0, crrRoute.length - 1); for (let j7 = 0; j7 < routes.length; j7++) { const nextRoute = routes[j7]; if (nextRoute !== crrRoute && nextRoute.startsWith(crrRouteTrimmed)) { return true; } } } return false; } var init_routes_validation = __esm({ "src/pages/functions/routes-validation.ts"() { init_import_meta_url(); init_dist(); init_constants3(); init_errors2(); __name(isRoutesJSONSpec, "isRoutesJSONSpec"); __name(validateRoutes2, "validateRoutes"); __name(hasIncludeRules, "hasIncludeRules"); __name(hasValidRulesCount, "hasValidRulesCount"); __name(hasValidRuleCharCount, "hasValidRuleCharCount"); __name(hasValidRules, "hasValidRules"); __name(hasOverlappingRules, "hasOverlappingRules"); } }); // src/pages/errors.ts function getFunctionsNoRoutesWarning(functionsDirectory, suffix) { return `No routes found when building Functions directory: ${functionsDirectory}${suffix ? " - " + suffix : ""}`; } function getRoutesValidationErrorMessage(errorCode, routesPath) { switch (errorCode) { case 1 /* NO_INCLUDE_RULES */: return `Invalid _routes.json file found at: ${routesPath} Routes must have at least 1 include rule, but no include rules were detected.`; case 3 /* TOO_MANY_RULES */: return `Invalid _routes.json file found at: ${routesPath} Detected rules that are over the ${MAX_FUNCTIONS_ROUTES_RULES} rule limit. Please make sure you have a total of ${MAX_FUNCTIONS_ROUTES_RULES} include and exclude rules combined.`; case 4 /* RULE_TOO_LONG */: return `Invalid _routes.json file found at: ${routesPath} Detected rules the are over the ${MAX_FUNCTIONS_ROUTES_RULE_LENGTH} character limit. Please make sure that each include and exclude routing rule is at most ${MAX_FUNCTIONS_ROUTES_RULE_LENGTH} characters long.`; case 2 /* INVALID_RULES */: return `Invalid _routes.json file found at: ${routesPath} All rules must start with '/'.`; case 5 /* OVERLAPPING_RULES */: return `Invalid _routes.json file found at: ${routesPath} Overlapping rules found. Please make sure that rules ending with a splat (eg. "/api/*") don't overlap any other rules (eg. "/api/foo"). This applies to both include and exclude rules individually.`; case 0 /* INVALID_JSON_SPEC */: default: return `Invalid _routes.json file found at: ${routesPath} Please make sure the JSON object has the following format: { version: ${ROUTES_SPEC_VERSION}; include: string[]; exclude: string[]; } and that at least one include rule is provided. `; } } var EXIT_CODE_FUNCTIONS_NO_ROUTES_ERROR, EXIT_CODE_FUNCTIONS_NOTHING_TO_BUILD_ERROR, EXIT_CODE_NO_CONFIG_FOUND, EXIT_CODE_INVALID_PAGES_CONFIG, FunctionsBuildError, FunctionsNoRoutesError; var init_errors2 = __esm({ "src/pages/errors.ts"() { init_import_meta_url(); init_dist(); init_constants3(); init_routes_validation(); EXIT_CODE_FUNCTIONS_NO_ROUTES_ERROR = 156; EXIT_CODE_FUNCTIONS_NOTHING_TO_BUILD_ERROR = 157; EXIT_CODE_NO_CONFIG_FOUND = 158; EXIT_CODE_INVALID_PAGES_CONFIG = 159; FunctionsBuildError = class extends UserError { static { __name(this, "FunctionsBuildError"); } constructor(message) { super(message); } }; FunctionsNoRoutesError = class extends UserError { static { __name(this, "FunctionsNoRoutesError"); } constructor(message) { super(message); } }; __name(getFunctionsNoRoutesWarning, "getFunctionsNoRoutesWarning"); __name(getRoutesValidationErrorMessage, "getRoutesValidationErrorMessage"); } }); function readConfig(args, options = {}) { const { rawConfig, configPath, userConfigPath, deployConfigPath, redirected } = exports.experimental_readRawConfig(args, options); if (redirected) { assert50__default.default(configPath, "Redirected config found without a configPath"); assert50__default.default( deployConfigPath, "Redirected config found without a deployConfigPath" ); logger.info(esm_default3` Using redirected Wrangler configuration. - Configuration being used: "${path3__namespace.default.relative(".", configPath)}" - Original user's configuration: "${userConfigPath ? path3__namespace.default.relative(".", userConfigPath) : ""}" - Deploy configuration file: "${path3__namespace.default.relative(".", deployConfigPath)}" `); } const { config, diagnostics } = normalizeAndValidateConfig( rawConfig, configPath, userConfigPath, args, options.preserveOriginalMain ); if (diagnostics.hasWarnings() && !options?.hideWarnings) { logger.warn(diagnostics.renderWarnings()); } if (diagnostics.hasErrors()) { throw new UserError(diagnostics.renderErrors()); } return config; } function readPagesConfig(args, options = {}) { let rawConfig; let configPath; let userConfigPath; let redirected; let deployConfigPath; try { ({ rawConfig, configPath, userConfigPath, deployConfigPath, redirected } = exports.experimental_readRawConfig(args, options)); if (redirected) { assert50__default.default(configPath, "Redirected config found without a configPath"); assert50__default.default( deployConfigPath, "Redirected config found without a deployConfigPath" ); logger.info(esm_default3` Using redirected Wrangler configuration. - Configuration being used: "${path3__namespace.default.relative(".", configPath)}" - Original user's configuration: "${userConfigPath ? path3__namespace.default.relative(".", userConfigPath) : ""}" - Deploy configuration file: "${path3__namespace.default.relative(".", deployConfigPath)}" `); } } catch (e9) { logger.error(e9); throw new FatalError( `Your ${configFileName(configPath)} file is not a valid Pages configuration file`, EXIT_CODE_INVALID_PAGES_CONFIG ); } if (!isPagesConfig(rawConfig)) { throw new FatalError( `Your ${configFileName(configPath)} file is not a valid Pages configuration file`, EXIT_CODE_INVALID_PAGES_CONFIG ); } const { config, diagnostics } = normalizeAndValidateConfig( rawConfig, configPath, userConfigPath, args ); if (diagnostics.hasWarnings() && !options.hideWarnings) { logger.warn(diagnostics.renderWarnings()); } if (diagnostics.hasErrors()) { throw new UserError(diagnostics.renderErrors()); } logger.debug( `Configuration file belonging to \u26A1\uFE0F Pages \u26A1\uFE0F project detected.` ); const envNames = rawConfig.env ? Object.keys(rawConfig.env) : []; const projectName = rawConfig?.name; const pagesDiagnostics = validatePagesConfig(config, envNames, projectName); if (pagesDiagnostics.hasWarnings()) { logger.warn(pagesDiagnostics.renderWarnings()); } if (pagesDiagnostics.hasErrors()) { throw new UserError(pagesDiagnostics.renderErrors()); } return config; } var init_config = __esm({ "src/config/index.ts"() { init_import_meta_url(); init_dist(); init_esm2(); init_logger(); init_errors2(); __name(readConfig, "readConfig"); __name(readPagesConfig, "readPagesConfig"); } }); // ../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/vendors.json var require_vendors = __commonJS({ "../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/vendors.json"(exports, module4) { module4.exports = [ { name: "Agola CI", constant: "AGOLA", env: "AGOLA_GIT_REF", pr: "AGOLA_PULL_REQUEST_ID" }, { name: "Alpic", constant: "ALPIC", env: "ALPIC_HOST" }, { name: "Appcircle", constant: "APPCIRCLE", env: "AC_APPCIRCLE", pr: { env: "AC_GIT_PR", ne: "false" } }, { name: "AppVeyor", constant: "APPVEYOR", env: "APPVEYOR", pr: "APPVEYOR_PULL_REQUEST_NUMBER" }, { name: "AWS CodeBuild", constant: "CODEBUILD", env: "CODEBUILD_BUILD_ARN", pr: { env: "CODEBUILD_WEBHOOK_EVENT", any: [ "PULL_REQUEST_CREATED", "PULL_REQUEST_UPDATED", "PULL_REQUEST_REOPENED" ] } }, { name: "Azure Pipelines", constant: "AZURE_PIPELINES", env: "TF_BUILD", pr: { BUILD_REASON: "PullRequest" } }, { name: "Bamboo", constant: "BAMBOO", env: "bamboo_planKey" }, { name: "Bitbucket Pipelines", constant: "BITBUCKET", env: "BITBUCKET_COMMIT", pr: "BITBUCKET_PR_ID" }, { name: "Bitrise", constant: "BITRISE", env: "BITRISE_IO", pr: "BITRISE_PULL_REQUEST" }, { name: "Buddy", constant: "BUDDY", env: "BUDDY_WORKSPACE_ID", pr: "BUDDY_EXECUTION_PULL_REQUEST_ID" }, { name: "Buildkite", constant: "BUILDKITE", env: "BUILDKITE", pr: { env: "BUILDKITE_PULL_REQUEST", ne: "false" } }, { name: "CircleCI", constant: "CIRCLE", env: "CIRCLECI", pr: "CIRCLE_PULL_REQUEST" }, { name: "Cirrus CI", constant: "CIRRUS", env: "CIRRUS_CI", pr: "CIRRUS_PR" }, { name: "Cloudflare Pages", constant: "CLOUDFLARE_PAGES", env: "CF_PAGES" }, { name: "Cloudflare Workers", constant: "CLOUDFLARE_WORKERS", env: "WORKERS_CI" }, { name: "Codefresh", constant: "CODEFRESH", env: "CF_BUILD_ID", pr: { any: [ "CF_PULL_REQUEST_NUMBER", "CF_PULL_REQUEST_ID" ] } }, { name: "Codemagic", constant: "CODEMAGIC", env: "CM_BUILD_ID", pr: "CM_PULL_REQUEST" }, { name: "Codeship", constant: "CODESHIP", env: { CI_NAME: "codeship" } }, { name: "Drone", constant: "DRONE", env: "DRONE", pr: { DRONE_BUILD_EVENT: "pull_request" } }, { name: "dsari", constant: "DSARI", env: "DSARI" }, { name: "Earthly", constant: "EARTHLY", env: "EARTHLY_CI" }, { name: "Expo Application Services", constant: "EAS", env: "EAS_BUILD" }, { name: "Gerrit", constant: "GERRIT", env: "GERRIT_PROJECT" }, { name: "Gitea Actions", constant: "GITEA_ACTIONS", env: "GITEA_ACTIONS" }, { name: "GitHub Actions", constant: "GITHUB_ACTIONS", env: "GITHUB_ACTIONS", pr: { GITHUB_EVENT_NAME: "pull_request" } }, { name: "GitLab CI", constant: "GITLAB", env: "GITLAB_CI", pr: "CI_MERGE_REQUEST_ID" }, { name: "GoCD", constant: "GOCD", env: "GO_PIPELINE_LABEL" }, { name: "Google Cloud Build", constant: "GOOGLE_CLOUD_BUILD", env: "BUILDER_OUTPUT" }, { name: "Harness CI", constant: "HARNESS", env: "HARNESS_BUILD_ID" }, { name: "Heroku", constant: "HEROKU", env: { env: "NODE", includes: "/app/.heroku/node/bin/node" } }, { name: "Hudson", constant: "HUDSON", env: "HUDSON_URL" }, { name: "Jenkins", constant: "JENKINS", env: [ "JENKINS_URL", "BUILD_ID" ], pr: { any: [ "ghprbPullId", "CHANGE_ID" ] } }, { name: "LayerCI", constant: "LAYERCI", env: "LAYERCI", pr: "LAYERCI_PULL_REQUEST" }, { name: "Magnum CI", constant: "MAGNUM", env: "MAGNUM" }, { name: "Netlify CI", constant: "NETLIFY", env: "NETLIFY", pr: { env: "PULL_REQUEST", ne: "false" } }, { name: "Nevercode", constant: "NEVERCODE", env: "NEVERCODE", pr: { env: "NEVERCODE_PULL_REQUEST", ne: "false" } }, { name: "Prow", constant: "PROW", env: "PROW_JOB_ID" }, { name: "ReleaseHub", constant: "RELEASEHUB", env: "RELEASE_BUILD_ID" }, { name: "Render", constant: "RENDER", env: "RENDER", pr: { IS_PULL_REQUEST: "true" } }, { name: "Sail CI", constant: "SAIL", env: "SAILCI", pr: "SAIL_PULL_REQUEST_NUMBER" }, { name: "Screwdriver", constant: "SCREWDRIVER", env: "SCREWDRIVER", pr: { env: "SD_PULL_REQUEST", ne: "false" } }, { name: "Semaphore", constant: "SEMAPHORE", env: "SEMAPHORE", pr: "PULL_REQUEST_NUMBER" }, { name: "Sourcehut", constant: "SOURCEHUT", env: { CI_NAME: "sourcehut" } }, { name: "Strider CD", constant: "STRIDER", env: "STRIDER" }, { name: "TaskCluster", constant: "TASKCLUSTER", env: [ "TASK_ID", "RUN_ID" ] }, { name: "TeamCity", constant: "TEAMCITY", env: "TEAMCITY_VERSION" }, { name: "Travis CI", constant: "TRAVIS", env: "TRAVIS", pr: { env: "TRAVIS_PULL_REQUEST", ne: "false" } }, { name: "Vela", constant: "VELA", env: "VELA", pr: { VELA_PULL_REQUEST: "1" } }, { name: "Vercel", constant: "VERCEL", env: { any: [ "NOW_BUILDER", "VERCEL" ] }, pr: "VERCEL_GIT_PULL_REQUEST_ID" }, { name: "Visual Studio App Center", constant: "APPCENTER", env: "APPCENTER_BUILD_ID" }, { name: "Woodpecker", constant: "WOODPECKER", env: { CI: "woodpecker" }, pr: { CI_BUILD_EVENT: "pull_request" } }, { name: "Xcode Cloud", constant: "XCODE_CLOUD", env: "CI_XCODE_PROJECT", pr: "CI_PULL_REQUEST_NUMBER" }, { name: "Xcode Server", constant: "XCODE_SERVER", env: "XCS" } ]; } }); // ../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/index.js var require_ci_info = __commonJS({ "../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/index.js"(exports) { init_import_meta_url(); var vendors = require_vendors(); var env6 = process.env; Object.defineProperty(exports, "_vendors", { value: vendors.map(function(v8) { return v8.constant; }) }); exports.name = null; exports.isPR = null; exports.id = null; if (env6.CI !== "false") { vendors.forEach(function(vendor) { const envs = Array.isArray(vendor.env) ? vendor.env : [vendor.env]; const isCI = envs.every(function(obj) { return checkEnv(obj); }); exports[vendor.constant] = isCI; if (!isCI) { return; } exports.name = vendor.name; exports.isPR = checkPR(vendor); exports.id = vendor.constant; }); } exports.isCI = !!(env6.CI !== "false" && // Bypass all checks if CI env is explicitly set to 'false' (env6.BUILD_ID || // Jenkins, Cloudbees env6.BUILD_NUMBER || // Jenkins, TeamCity env6.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari, Cloudflare Pages/Workers env6.CI_APP_ID || // Appflow env6.CI_BUILD_ID || // Appflow env6.CI_BUILD_NUMBER || // Appflow env6.CI_NAME || // Codeship and others env6.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI env6.RUN_ID || // TaskCluster, dsari exports.name || false)); function checkEnv(obj) { if (typeof obj === "string") return !!env6[obj]; if ("env" in obj) { return env6[obj.env] && env6[obj.env].includes(obj.includes); } if ("any" in obj) { return obj.any.some(function(k7) { return !!env6[k7]; }); } return Object.keys(obj).every(function(k7) { return env6[k7] === obj[k7]; }); } __name(checkEnv, "checkEnv"); function checkPR(vendor) { switch (typeof vendor.pr) { case "string": return !!env6[vendor.pr]; case "object": if ("env" in vendor.pr) { if ("any" in vendor.pr) { return vendor.pr.any.some(function(key) { return env6[vendor.pr.env] === key; }); } else { return vendor.pr.env in env6 && env6[vendor.pr.env] !== vendor.pr.ne; } } else if ("any" in vendor.pr) { return vendor.pr.any.some(function(key) { return !!env6[key]; }); } else { return checkEnv(vendor.pr); } default: return null; } } __name(checkPR, "checkPR"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/error.js function getLineColFromPtr2(string, ptr) { let lines = string.slice(0, ptr).split(/\r\n|\n|\r/g); return [lines.length, lines.pop().length + 1]; } function makeCodeBlock2(string, line, column) { let lines = string.split(/\r\n|\n|\r/g); let codeblock = ""; let numberLen = (Math.log10(line + 1) | 0) + 1; for (let i7 = line - 1; i7 <= line + 1; i7++) { let l8 = lines[i7 - 1]; if (!l8) continue; codeblock += i7.toString().padEnd(numberLen, " "); codeblock += ": "; codeblock += l8; codeblock += "\n"; if (i7 === line) { codeblock += " ".repeat(numberLen + column + 2); codeblock += "^\n"; } } return codeblock; } var TomlError2; var init_error = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/error.js"() { init_import_meta_url(); __name(getLineColFromPtr2, "getLineColFromPtr"); __name(makeCodeBlock2, "makeCodeBlock"); TomlError2 = class extends Error { static { __name(this, "TomlError"); } line; column; codeblock; constructor(message, options) { const [line, column] = getLineColFromPtr2(options.toml, options.ptr); const codeblock = makeCodeBlock2(options.toml, line, column); super(`Invalid TOML document: ${message} ${codeblock}`, options); this.line = line; this.column = column; this.codeblock = codeblock; } }; } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/util.js function isEscaped2(str, ptr) { let i7 = 0; while (str[ptr - ++i7] === "\\") ; return --i7 && i7 % 2; } function indexOfNewline2(str, start = 0, end = str.length) { let idx = str.indexOf("\n", start); if (str[idx - 1] === "\r") idx--; return idx <= end ? idx : -1; } function skipComment2(str, ptr) { for (let i7 = ptr; i7 < str.length; i7++) { let c8 = str[i7]; if (c8 === "\n") return i7; if (c8 === "\r" && str[i7 + 1] === "\n") return i7 + 1; if (c8 < " " && c8 !== " " || c8 === "\x7F") { throw new TomlError2("control characters are not allowed in comments", { toml: str, ptr }); } } return str.length; } function skipVoid2(str, ptr, banNewLines, banComments) { let c8; while ((c8 = str[ptr]) === " " || c8 === " " || !banNewLines && (c8 === "\n" || c8 === "\r" && str[ptr + 1] === "\n")) ptr++; return banComments || c8 !== "#" ? ptr : skipVoid2(str, skipComment2(str, ptr), banNewLines); } function skipUntil2(str, ptr, sep6, end, banNewLines = false) { if (!end) { ptr = indexOfNewline2(str, ptr); return ptr < 0 ? str.length : ptr; } for (let i7 = ptr; i7 < str.length; i7++) { let c8 = str[i7]; if (c8 === "#") { i7 = indexOfNewline2(str, i7); } else if (c8 === sep6) { return i7 + 1; } else if (c8 === end || banNewLines && (c8 === "\n" || c8 === "\r" && str[i7 + 1] === "\n")) { return i7; } } throw new TomlError2("cannot find end of structure", { toml: str, ptr }); } function getStringEnd2(str, seek) { let first = str[seek]; let target = first === str[seek + 1] && str[seek + 1] === str[seek + 2] ? str.slice(seek, seek + 3) : first; seek += target.length - 1; do seek = str.indexOf(target, ++seek); while (seek > -1 && first !== "'" && isEscaped2(str, seek)); if (seek > -1) { seek += target.length; if (target.length > 1) { if (str[seek] === first) seek++; if (str[seek] === first) seek++; } } return seek; } var init_util2 = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/util.js"() { init_import_meta_url(); init_error(); __name(isEscaped2, "isEscaped"); __name(indexOfNewline2, "indexOfNewline"); __name(skipComment2, "skipComment"); __name(skipVoid2, "skipVoid"); __name(skipUntil2, "skipUntil"); __name(getStringEnd2, "getStringEnd"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/date.js var DATE_TIME_RE2, TomlDate2; var init_date = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/date.js"() { init_import_meta_url(); DATE_TIME_RE2 = /^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}:\d{2}(?:\.\d+)?)?(Z|[-+]\d{2}:\d{2})?$/i; TomlDate2 = class _TomlDate2 extends Date { static { __name(this, "TomlDate"); } #hasDate = false; #hasTime = false; #offset = null; constructor(date) { let hasDate = true; let hasTime = true; let offset = "Z"; if (typeof date === "string") { let match3 = date.match(DATE_TIME_RE2); if (match3) { if (!match3[1]) { hasDate = false; date = `0000-01-01T${date}`; } hasTime = !!match3[2]; hasTime && date[10] === " " && (date = date.replace(" ", "T")); if (match3[2] && +match3[2] > 23) { date = ""; } else { offset = match3[3] || null; date = date.toUpperCase(); if (!offset && hasTime) date += "Z"; } } else { date = ""; } } super(date); if (!isNaN(this.getTime())) { this.#hasDate = hasDate; this.#hasTime = hasTime; this.#offset = offset; } } isDateTime() { return this.#hasDate && this.#hasTime; } isLocal() { return !this.#hasDate || !this.#hasTime || !this.#offset; } isDate() { return this.#hasDate && !this.#hasTime; } isTime() { return this.#hasTime && !this.#hasDate; } isValid() { return this.#hasDate || this.#hasTime; } toISOString() { let iso = super.toISOString(); if (this.isDate()) return iso.slice(0, 10); if (this.isTime()) return iso.slice(11, 23); if (this.#offset === null) return iso.slice(0, -1); if (this.#offset === "Z") return iso; let offset = +this.#offset.slice(1, 3) * 60 + +this.#offset.slice(4, 6); offset = this.#offset[0] === "-" ? offset : -offset; let offsetDate = new Date(this.getTime() - offset * 6e4); return offsetDate.toISOString().slice(0, -1) + this.#offset; } static wrapAsOffsetDateTime(jsDate, offset = "Z") { let date = new _TomlDate2(jsDate); date.#offset = offset; return date; } static wrapAsLocalDateTime(jsDate) { let date = new _TomlDate2(jsDate); date.#offset = null; return date; } static wrapAsLocalDate(jsDate) { let date = new _TomlDate2(jsDate); date.#hasTime = false; date.#offset = null; return date; } static wrapAsLocalTime(jsDate) { let date = new _TomlDate2(jsDate); date.#hasDate = false; date.#offset = null; return date; } }; } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/primitive.js function parseString2(str, ptr = 0, endPtr = str.length) { let isLiteral = str[ptr] === "'"; let isMultiline = str[ptr++] === str[ptr] && str[ptr] === str[ptr + 1]; if (isMultiline) { endPtr -= 2; if (str[ptr += 2] === "\r") ptr++; if (str[ptr] === "\n") ptr++; } let tmp = 0; let isEscape; let parsed = ""; let sliceStart = ptr; while (ptr < endPtr - 1) { let c8 = str[ptr++]; if (c8 === "\n" || c8 === "\r" && str[ptr] === "\n") { if (!isMultiline) { throw new TomlError2("newlines are not allowed in strings", { toml: str, ptr: ptr - 1 }); } } else if (c8 < " " && c8 !== " " || c8 === "\x7F") { throw new TomlError2("control characters are not allowed in strings", { toml: str, ptr: ptr - 1 }); } if (isEscape) { isEscape = false; if (c8 === "u" || c8 === "U") { let code = str.slice(ptr, ptr += c8 === "u" ? 4 : 8); if (!ESCAPE_REGEX2.test(code)) { throw new TomlError2("invalid unicode escape", { toml: str, ptr: tmp }); } try { parsed += String.fromCodePoint(parseInt(code, 16)); } catch { throw new TomlError2("invalid unicode escape", { toml: str, ptr: tmp }); } } else if (isMultiline && (c8 === "\n" || c8 === " " || c8 === " " || c8 === "\r")) { ptr = skipVoid2(str, ptr - 1, true); if (str[ptr] !== "\n" && str[ptr] !== "\r") { throw new TomlError2("invalid escape: only line-ending whitespace may be escaped", { toml: str, ptr: tmp }); } ptr = skipVoid2(str, ptr); } else if (c8 in ESC_MAP2) { parsed += ESC_MAP2[c8]; } else { throw new TomlError2("unrecognized escape sequence", { toml: str, ptr: tmp }); } sliceStart = ptr; } else if (!isLiteral && c8 === "\\") { tmp = ptr - 1; isEscape = true; parsed += str.slice(sliceStart, tmp); } } return parsed + str.slice(sliceStart, endPtr - 1); } function parseValue2(value, toml, ptr, integersAsBigInt) { if (value === "true") return true; if (value === "false") return false; if (value === "-inf") return -Infinity; if (value === "inf" || value === "+inf") return Infinity; if (value === "nan" || value === "+nan" || value === "-nan") return NaN; if (value === "-0") return integersAsBigInt ? 0n : 0; let isInt = INT_REGEX2.test(value); if (isInt || FLOAT_REGEX2.test(value)) { if (LEADING_ZERO2.test(value)) { throw new TomlError2("leading zeroes are not allowed", { toml, ptr }); } value = value.replace(/_/g, ""); let numeric = +value; if (isNaN(numeric)) { throw new TomlError2("invalid number", { toml, ptr }); } if (isInt) { if ((isInt = !Number.isSafeInteger(numeric)) && !integersAsBigInt) { throw new TomlError2("integer value cannot be represented losslessly", { toml, ptr }); } if (isInt || integersAsBigInt === true) numeric = BigInt(value); } return numeric; } const date = new TomlDate2(value); if (!date.isValid()) { throw new TomlError2("invalid value", { toml, ptr }); } return date; } var INT_REGEX2, FLOAT_REGEX2, LEADING_ZERO2, ESCAPE_REGEX2, ESC_MAP2; var init_primitive = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/primitive.js"() { init_import_meta_url(); init_util2(); init_date(); init_error(); INT_REGEX2 = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/; FLOAT_REGEX2 = /^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/; LEADING_ZERO2 = /^[+-]?0[0-9_]/; ESCAPE_REGEX2 = /^[0-9a-f]{4,8}$/i; ESC_MAP2 = { b: "\b", t: " ", n: "\n", f: "\f", r: "\r", '"': '"', "\\": "\\" }; __name(parseString2, "parseString"); __name(parseValue2, "parseValue"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/extract.js function sliceAndTrimEndOf2(str, startPtr, endPtr, allowNewLines) { let value = str.slice(startPtr, endPtr); let commentIdx = value.indexOf("#"); if (commentIdx > -1) { skipComment2(str, commentIdx); value = value.slice(0, commentIdx); } let trimmed = value.trimEnd(); if (!allowNewLines) { let newlineIdx = value.indexOf("\n", trimmed.length); if (newlineIdx > -1) { throw new TomlError2("newlines are not allowed in inline tables", { toml: str, ptr: startPtr + newlineIdx }); } } return [trimmed, commentIdx]; } function extractValue2(str, ptr, end, depth, integersAsBigInt) { if (depth === 0) { throw new TomlError2("document contains excessively nested structures. aborting.", { toml: str, ptr }); } let c8 = str[ptr]; if (c8 === "[" || c8 === "{") { let [value, endPtr2] = c8 === "[" ? parseArray2(str, ptr, depth, integersAsBigInt) : parseInlineTable2(str, ptr, depth, integersAsBigInt); let newPtr = end ? skipUntil2(str, endPtr2, ",", end) : endPtr2; if (endPtr2 - newPtr && end === "}") { let nextNewLine = indexOfNewline2(str, endPtr2, newPtr); if (nextNewLine > -1) { throw new TomlError2("newlines are not allowed in inline tables", { toml: str, ptr: nextNewLine }); } } return [value, newPtr]; } let endPtr; if (c8 === '"' || c8 === "'") { endPtr = getStringEnd2(str, ptr); let parsed = parseString2(str, ptr, endPtr); if (end) { endPtr = skipVoid2(str, endPtr, end !== "]"); if (str[endPtr] && str[endPtr] !== "," && str[endPtr] !== end && str[endPtr] !== "\n" && str[endPtr] !== "\r") { throw new TomlError2("unexpected character encountered", { toml: str, ptr: endPtr }); } endPtr += +(str[endPtr] === ","); } return [parsed, endPtr]; } endPtr = skipUntil2(str, ptr, ",", end); let slice = sliceAndTrimEndOf2(str, ptr, endPtr - +(str[endPtr - 1] === ","), end === "]"); if (!slice[0]) { throw new TomlError2("incomplete key-value declaration: no value specified", { toml: str, ptr }); } if (end && slice[1] > -1) { endPtr = skipVoid2(str, ptr + slice[1]); endPtr += +(str[endPtr] === ","); } return [ parseValue2(slice[0], str, ptr, integersAsBigInt), endPtr ]; } var init_extract = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/extract.js"() { init_import_meta_url(); init_primitive(); init_struct(); init_util2(); init_error(); __name(sliceAndTrimEndOf2, "sliceAndTrimEndOf"); __name(extractValue2, "extractValue"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/struct.js function parseKey2(str, ptr, end = "=") { let dot = ptr - 1; let parsed = []; let endPtr = str.indexOf(end, ptr); if (endPtr < 0) { throw new TomlError2("incomplete key-value: cannot find end of key", { toml: str, ptr }); } do { let c8 = str[ptr = ++dot]; if (c8 !== " " && c8 !== " ") { if (c8 === '"' || c8 === "'") { if (c8 === str[ptr + 1] && c8 === str[ptr + 2]) { throw new TomlError2("multiline strings are not allowed in keys", { toml: str, ptr }); } let eos = getStringEnd2(str, ptr); if (eos < 0) { throw new TomlError2("unfinished string encountered", { toml: str, ptr }); } dot = str.indexOf(".", eos); let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot); let newLine = indexOfNewline2(strEnd); if (newLine > -1) { throw new TomlError2("newlines are not allowed in keys", { toml: str, ptr: ptr + dot + newLine }); } if (strEnd.trimStart()) { throw new TomlError2("found extra tokens after the string part", { toml: str, ptr: eos }); } if (endPtr < eos) { endPtr = str.indexOf(end, eos); if (endPtr < 0) { throw new TomlError2("incomplete key-value: cannot find end of key", { toml: str, ptr }); } } parsed.push(parseString2(str, ptr, eos)); } else { dot = str.indexOf(".", ptr); let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot); if (!KEY_PART_RE2.test(part)) { throw new TomlError2("only letter, numbers, dashes and underscores are allowed in keys", { toml: str, ptr }); } parsed.push(part.trimEnd()); } } } while (dot + 1 && dot < endPtr); return [parsed, skipVoid2(str, endPtr + 1, true, true)]; } function parseInlineTable2(str, ptr, depth, integersAsBigInt) { let res = {}; let seen = /* @__PURE__ */ new Set(); let c8; let comma = 0; ptr++; while ((c8 = str[ptr++]) !== "}" && c8) { let err = { toml: str, ptr: ptr - 1 }; if (c8 === "\n") { throw new TomlError2("newlines are not allowed in inline tables", err); } else if (c8 === "#") { throw new TomlError2("inline tables cannot contain comments", err); } else if (c8 === ",") { throw new TomlError2("expected key-value, found comma", err); } else if (c8 !== " " && c8 !== " ") { let k7; let t12 = res; let hasOwn2 = false; let [key, keyEndPtr] = parseKey2(str, ptr - 1); for (let i7 = 0; i7 < key.length; i7++) { if (i7) t12 = hasOwn2 ? t12[k7] : t12[k7] = {}; k7 = key[i7]; if ((hasOwn2 = Object.hasOwn(t12, k7)) && (typeof t12[k7] !== "object" || seen.has(t12[k7]))) { throw new TomlError2("trying to redefine an already defined value", { toml: str, ptr }); } if (!hasOwn2 && k7 === "__proto__") { Object.defineProperty(t12, k7, { enumerable: true, configurable: true, writable: true }); } } if (hasOwn2) { throw new TomlError2("trying to redefine an already defined value", { toml: str, ptr }); } let [value, valueEndPtr] = extractValue2(str, keyEndPtr, "}", depth - 1, integersAsBigInt); seen.add(value); t12[k7] = value; ptr = valueEndPtr; comma = str[ptr - 1] === "," ? ptr - 1 : 0; } } if (comma) { throw new TomlError2("trailing commas are not allowed in inline tables", { toml: str, ptr: comma }); } if (!c8) { throw new TomlError2("unfinished table encountered", { toml: str, ptr }); } return [res, ptr]; } function parseArray2(str, ptr, depth, integersAsBigInt) { let res = []; let c8; ptr++; while ((c8 = str[ptr++]) !== "]" && c8) { if (c8 === ",") { throw new TomlError2("expected value, found comma", { toml: str, ptr: ptr - 1 }); } else if (c8 === "#") ptr = skipComment2(str, ptr); else if (c8 !== " " && c8 !== " " && c8 !== "\n" && c8 !== "\r") { let e9 = extractValue2(str, ptr - 1, "]", depth - 1, integersAsBigInt); res.push(e9[0]); ptr = e9[1]; } } if (!c8) { throw new TomlError2("unfinished array encountered", { toml: str, ptr }); } return [res, ptr]; } var KEY_PART_RE2; var init_struct = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/struct.js"() { init_import_meta_url(); init_primitive(); init_extract(); init_util2(); init_error(); KEY_PART_RE2 = /^[a-zA-Z0-9-_]+[ \t]*$/; __name(parseKey2, "parseKey"); __name(parseInlineTable2, "parseInlineTable"); __name(parseArray2, "parseArray"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/parse.js function peekTable2(key, table, meta, type) { let t12 = table; let m7 = meta; let k7; let hasOwn2 = false; let state2; for (let i7 = 0; i7 < key.length; i7++) { if (i7) { t12 = hasOwn2 ? t12[k7] : t12[k7] = {}; m7 = (state2 = m7[k7]).c; if (type === 0 && (state2.t === 1 || state2.t === 2)) { return null; } if (state2.t === 2) { let l8 = t12.length - 1; t12 = t12[l8]; m7 = m7[l8].c; } } k7 = key[i7]; if ((hasOwn2 = Object.hasOwn(t12, k7)) && m7[k7]?.t === 0 && m7[k7]?.d) { return null; } if (!hasOwn2) { if (k7 === "__proto__") { Object.defineProperty(t12, k7, { enumerable: true, configurable: true, writable: true }); Object.defineProperty(m7, k7, { enumerable: true, configurable: true, writable: true }); } m7[k7] = { t: i7 < key.length - 1 && type === 2 ? 3 : type, d: false, i: 0, c: {} }; } } state2 = m7[k7]; if (state2.t !== type && !(type === 1 && state2.t === 3)) { return null; } if (type === 2) { if (!state2.d) { state2.d = true; t12[k7] = []; } t12[k7].push(t12 = {}); state2.c[state2.i++] = state2 = { t: 1, d: false, i: 0, c: {} }; } if (state2.d) { return null; } state2.d = true; if (type === 1) { t12 = hasOwn2 ? t12[k7] : t12[k7] = {}; } else if (type === 0 && hasOwn2) { return null; } return [k7, t12, state2.c]; } function parse4(toml, { maxDepth = 1e3, integersAsBigInt } = {}) { let res = {}; let meta = {}; let tbl = res; let m7 = meta; for (let ptr = skipVoid2(toml, 0); ptr < toml.length; ) { if (toml[ptr] === "[") { let isTableArray = toml[++ptr] === "["; let k7 = parseKey2(toml, ptr += +isTableArray, "]"); if (isTableArray) { if (toml[k7[1] - 1] !== "]") { throw new TomlError2("expected end of table declaration", { toml, ptr: k7[1] - 1 }); } k7[1]++; } let p7 = peekTable2( k7[0], res, meta, isTableArray ? 2 : 1 /* Type.EXPLICIT */ ); if (!p7) { throw new TomlError2("trying to redefine an already defined table or value", { toml, ptr }); } m7 = p7[2]; tbl = p7[1]; ptr = k7[1]; } else { let k7 = parseKey2(toml, ptr); let p7 = peekTable2( k7[0], tbl, m7, 0 /* Type.DOTTED */ ); if (!p7) { throw new TomlError2("trying to redefine an already defined table or value", { toml, ptr }); } let v8 = extractValue2(toml, k7[1], void 0, maxDepth, integersAsBigInt); p7[1][p7[0]] = v8[0]; ptr = v8[1]; } ptr = skipVoid2(toml, ptr, true); if (toml[ptr] && toml[ptr] !== "\n" && toml[ptr] !== "\r") { throw new TomlError2("each key-value declaration must be followed by an end-of-line", { toml, ptr }); } ptr = skipVoid2(toml, ptr); } return res; } var init_parse = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/parse.js"() { init_import_meta_url(); init_struct(); init_extract(); init_util2(); init_error(); __name(peekTable2, "peekTable"); __name(parse4, "parse"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/stringify.js function extendedTypeOf2(obj) { let type = typeof obj; if (type === "object") { if (Array.isArray(obj)) return "array"; if (obj instanceof Date) return "date"; } return type; } function isArrayOfTables2(obj) { for (let i7 = 0; i7 < obj.length; i7++) { if (extendedTypeOf2(obj[i7]) !== "object") return false; } return obj.length != 0; } function formatString2(s7) { return JSON.stringify(s7).replace(/\x7f/g, "\\u007f"); } function stringifyValue2(val2, type, depth, numberAsFloat) { if (depth === 0) { throw new Error("Could not stringify the object: maximum object depth exceeded"); } if (type === "number") { if (isNaN(val2)) return "nan"; if (val2 === Infinity) return "inf"; if (val2 === -Infinity) return "-inf"; if (numberAsFloat && Number.isInteger(val2)) return val2.toFixed(1); return val2.toString(); } if (type === "bigint" || type === "boolean") { return val2.toString(); } if (type === "string") { return formatString2(val2); } if (type === "date") { if (isNaN(val2.getTime())) { throw new TypeError("cannot serialize invalid date"); } return val2.toISOString(); } if (type === "object") { return stringifyInlineTable2(val2, depth, numberAsFloat); } if (type === "array") { return stringifyArray2(val2, depth, numberAsFloat); } } function stringifyInlineTable2(obj, depth, numberAsFloat) { let keys = Object.keys(obj); if (keys.length === 0) return "{}"; let res = "{ "; for (let i7 = 0; i7 < keys.length; i7++) { let k7 = keys[i7]; if (i7) res += ", "; res += BARE_KEY2.test(k7) ? k7 : formatString2(k7); res += " = "; res += stringifyValue2(obj[k7], extendedTypeOf2(obj[k7]), depth - 1, numberAsFloat); } return res + " }"; } function stringifyArray2(array, depth, numberAsFloat) { if (array.length === 0) return "[]"; let res = "[ "; for (let i7 = 0; i7 < array.length; i7++) { if (i7) res += ", "; if (array[i7] === null || array[i7] === void 0) { throw new TypeError("arrays cannot contain null or undefined values"); } res += stringifyValue2(array[i7], extendedTypeOf2(array[i7]), depth - 1, numberAsFloat); } return res + " ]"; } function stringifyArrayTable2(array, key, depth, numberAsFloat) { if (depth === 0) { throw new Error("Could not stringify the object: maximum object depth exceeded"); } let res = ""; for (let i7 = 0; i7 < array.length; i7++) { res += `${res && "\n"}[[${key}]] `; res += stringifyTable2(0, array[i7], key, depth, numberAsFloat); } return res; } function stringifyTable2(tableKey, obj, prefix, depth, numberAsFloat) { if (depth === 0) { throw new Error("Could not stringify the object: maximum object depth exceeded"); } let preamble = ""; let tables = ""; let keys = Object.keys(obj); for (let i7 = 0; i7 < keys.length; i7++) { let k7 = keys[i7]; if (obj[k7] !== null && obj[k7] !== void 0) { let type = extendedTypeOf2(obj[k7]); if (type === "symbol" || type === "function") { throw new TypeError(`cannot serialize values of type '${type}'`); } let key = BARE_KEY2.test(k7) ? k7 : formatString2(k7); if (type === "array" && isArrayOfTables2(obj[k7])) { tables += (tables && "\n") + stringifyArrayTable2(obj[k7], prefix ? `${prefix}.${key}` : key, depth - 1, numberAsFloat); } else if (type === "object") { let tblKey = prefix ? `${prefix}.${key}` : key; tables += (tables && "\n") + stringifyTable2(tblKey, obj[k7], tblKey, depth - 1, numberAsFloat); } else { preamble += key; preamble += " = "; preamble += stringifyValue2(obj[k7], type, depth, numberAsFloat); preamble += "\n"; } } } if (tableKey && (preamble || !tables)) preamble = preamble ? `[${tableKey}] ${preamble}` : `[${tableKey}]`; return preamble && tables ? `${preamble} ${tables}` : preamble || tables; } function stringify2(obj, { maxDepth = 1e3, numbersAsFloat = false } = {}) { if (extendedTypeOf2(obj) !== "object") { throw new TypeError("stringify can only be called with an object"); } let str = stringifyTable2(0, obj, "", maxDepth, numbersAsFloat); if (str[str.length - 1] !== "\n") return str + "\n"; return str; } var BARE_KEY2; var init_stringify = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/stringify.js"() { init_import_meta_url(); BARE_KEY2 = /^[a-z0-9-_]+$/i; __name(extendedTypeOf2, "extendedTypeOf"); __name(isArrayOfTables2, "isArrayOfTables"); __name(formatString2, "formatString"); __name(stringifyValue2, "stringifyValue"); __name(stringifyInlineTable2, "stringifyInlineTable"); __name(stringifyArray2, "stringifyArray"); __name(stringifyArrayTable2, "stringifyArrayTable"); __name(stringifyTable2, "stringifyTable"); __name(stringify2, "stringify"); } }); // ../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/index.js var dist_default2; var init_dist2 = __esm({ "../../node_modules/.pnpm/smol-toml@1.5.2/node_modules/smol-toml/dist/index.js"() { init_import_meta_url(); init_parse(); init_stringify(); init_date(); init_error(); dist_default2 = { parse: parse4, stringify: stringify2, TomlDate: TomlDate2, TomlError: TomlError2 }; } }); function absolute2(input, root) { return path3.isAbsolute(input) ? input : path3.resolve(root || ".", input); } var init_resolve = __esm({ "../../node_modules/.pnpm/empathic@2.0.0/node_modules/empathic/resolve.mjs"() { init_import_meta_url(); __name(absolute2, "absolute"); } }); function up2(base, options) { let { last, cwd: cwd2 } = options || {}; let tmp = absolute2(base, cwd2); let root = absolute2(last || "/", cwd2); let prev, arr = []; while (prev !== root) { arr.push(tmp); tmp = path3.dirname(prev = tmp); if (tmp === prev) break; } return arr; } var init_walk = __esm({ "../../node_modules/.pnpm/empathic@2.0.0/node_modules/empathic/walk.mjs"() { init_import_meta_url(); init_resolve(); __name(up2, "up"); } }); function file2(name2, options) { let dir2, tmp; let start = options && options.cwd || ""; for (dir2 of up2(start, options)) { try { tmp = path3.join(dir2, name2); if (fs23.statSync(tmp).isFile()) return tmp; } catch { } } } function dir(name2, options) { let dir2, tmp; let start = options && options.cwd || ""; for (dir2 of up2(start, options)) { try { tmp = path3.join(dir2, name2); if (fs23.statSync(tmp).isDirectory()) return tmp; } catch { } } } var init_find = __esm({ "../../node_modules/.pnpm/empathic@2.0.0/node_modules/empathic/find.mjs"() { init_import_meta_url(); init_walk(); __name(file2, "file"); __name(dir, "dir"); } }); // ../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js var require_src2 = __commonJS({ "../../node_modules/.pnpm/sisteransi@1.0.5/node_modules/sisteransi/src/index.js"(exports, module4) { init_import_meta_url(); var ESC2 = "\x1B"; var CSI = `${ESC2}[`; var beep = "\x07"; var cursor = { to(x7, y5) { if (!y5) return `${CSI}${x7 + 1}G`; return `${CSI}${y5 + 1};${x7 + 1}H`; }, move(x7, y5) { let ret = ""; if (x7 < 0) ret += `${CSI}${-x7}D`; else if (x7 > 0) ret += `${CSI}${x7}C`; if (y5 < 0) ret += `${CSI}${-y5}A`; else if (y5 > 0) ret += `${CSI}${y5}B`; return ret; }, up: /* @__PURE__ */ __name((count = 1) => `${CSI}${count}A`, "up"), down: /* @__PURE__ */ __name((count = 1) => `${CSI}${count}B`, "down"), forward: /* @__PURE__ */ __name((count = 1) => `${CSI}${count}C`, "forward"), backward: /* @__PURE__ */ __name((count = 1) => `${CSI}${count}D`, "backward"), nextLine: /* @__PURE__ */ __name((count = 1) => `${CSI}E`.repeat(count), "nextLine"), prevLine: /* @__PURE__ */ __name((count = 1) => `${CSI}F`.repeat(count), "prevLine"), left: `${CSI}G`, hide: `${CSI}?25l`, show: `${CSI}?25h`, save: `${ESC2}7`, restore: `${ESC2}8` }; var scroll = { up: /* @__PURE__ */ __name((count = 1) => `${CSI}S`.repeat(count), "up"), down: /* @__PURE__ */ __name((count = 1) => `${CSI}T`.repeat(count), "down") }; var erase = { screen: `${CSI}2J`, up: /* @__PURE__ */ __name((count = 1) => `${CSI}1J`.repeat(count), "up"), down: /* @__PURE__ */ __name((count = 1) => `${CSI}J`.repeat(count), "down"), line: `${CSI}2K`, lineEnd: `${CSI}K`, lineStart: `${CSI}1K`, lines(count) { let clear = ""; for (let i7 = 0; i7 < count; i7++) clear += this.line + (i7 < count - 1 ? cursor.up() : ""); if (count) clear += cursor.left; return clear; } }; module4.exports = { cursor, scroll, erase, beep }; } }); // ../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js var require_picocolors = __commonJS({ "../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js"(exports, module4) { init_import_meta_url(); var p7 = process || {}; var argv = p7.argv || []; var env6 = p7.env || {}; var isColorSupported = !(!!env6.NO_COLOR || argv.includes("--no-color")) && (!!env6.FORCE_COLOR || argv.includes("--color") || p7.platform === "win32" || (p7.stdout || {}).isTTY && env6.TERM !== "dumb" || !!env6.CI); var formatter = /* @__PURE__ */ __name((open4, close2, replace = open4) => (input) => { let string = "" + input, index = string.indexOf(close2, open4.length); return ~index ? open4 + replaceClose(string, close2, replace, index) + close2 : open4 + string + close2; }, "formatter"); var replaceClose = /* @__PURE__ */ __name((string, close2, replace, index) => { let result = "", cursor = 0; do { result += string.substring(cursor, index) + replace; cursor = index + close2.length; index = string.indexOf(close2, cursor); } while (~index); return result + string.substring(cursor); }, "replaceClose"); var createColors = /* @__PURE__ */ __name((enabled = isColorSupported) => { let f8 = enabled ? formatter : () => String; return { isColorSupported: enabled, reset: f8("\x1B[0m", "\x1B[0m"), bold: f8("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), dim: f8("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), italic: f8("\x1B[3m", "\x1B[23m"), underline: f8("\x1B[4m", "\x1B[24m"), inverse: f8("\x1B[7m", "\x1B[27m"), hidden: f8("\x1B[8m", "\x1B[28m"), strikethrough: f8("\x1B[9m", "\x1B[29m"), black: f8("\x1B[30m", "\x1B[39m"), red: f8("\x1B[31m", "\x1B[39m"), green: f8("\x1B[32m", "\x1B[39m"), yellow: f8("\x1B[33m", "\x1B[39m"), blue: f8("\x1B[34m", "\x1B[39m"), magenta: f8("\x1B[35m", "\x1B[39m"), cyan: f8("\x1B[36m", "\x1B[39m"), white: f8("\x1B[37m", "\x1B[39m"), gray: f8("\x1B[90m", "\x1B[39m"), bgBlack: f8("\x1B[40m", "\x1B[49m"), bgRed: f8("\x1B[41m", "\x1B[49m"), bgGreen: f8("\x1B[42m", "\x1B[49m"), bgYellow: f8("\x1B[43m", "\x1B[49m"), bgBlue: f8("\x1B[44m", "\x1B[49m"), bgMagenta: f8("\x1B[45m", "\x1B[49m"), bgCyan: f8("\x1B[46m", "\x1B[49m"), bgWhite: f8("\x1B[47m", "\x1B[49m"), blackBright: f8("\x1B[90m", "\x1B[39m"), redBright: f8("\x1B[91m", "\x1B[39m"), greenBright: f8("\x1B[92m", "\x1B[39m"), yellowBright: f8("\x1B[93m", "\x1B[39m"), blueBright: f8("\x1B[94m", "\x1B[39m"), magentaBright: f8("\x1B[95m", "\x1B[39m"), cyanBright: f8("\x1B[96m", "\x1B[39m"), whiteBright: f8("\x1B[97m", "\x1B[39m"), bgBlackBright: f8("\x1B[100m", "\x1B[49m"), bgRedBright: f8("\x1B[101m", "\x1B[49m"), bgGreenBright: f8("\x1B[102m", "\x1B[49m"), bgYellowBright: f8("\x1B[103m", "\x1B[49m"), bgBlueBright: f8("\x1B[104m", "\x1B[49m"), bgMagentaBright: f8("\x1B[105m", "\x1B[49m"), bgCyanBright: f8("\x1B[106m", "\x1B[49m"), bgWhiteBright: f8("\x1B[107m", "\x1B[49m") }; }, "createColors"); module4.exports = createColors(); module4.exports.createColors = createColors; } }); function z({ onlyFirst: t12 = false } = {}) { const u7 = ["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|"); return new RegExp(u7, t12 ? void 0 : "g"); } function $(t12) { if (typeof t12 != "string") throw new TypeError(`Expected a \`string\`, got \`${typeof t12}\``); return t12.replace(z(), ""); } function c(t12, u7 = {}) { if (typeof t12 != "string" || t12.length === 0 || (u7 = { ambiguousIsNarrow: true, ...u7 }, t12 = $(t12), t12.length === 0)) return 0; t12 = t12.replace(Y(), " "); const F4 = u7.ambiguousIsNarrow ? 1 : 2; let e9 = 0; for (const s7 of t12) { const C4 = s7.codePointAt(0); if (C4 <= 31 || C4 >= 127 && C4 <= 159 || C4 >= 768 && C4 <= 879) continue; switch (K.eastAsianWidth(s7)) { case "F": case "W": e9 += 2; break; case "A": e9 += F4; break; default: e9 += 1; } } return e9; } function U() { const t12 = /* @__PURE__ */ new Map(); for (const [u7, F4] of Object.entries(r)) { for (const [e9, s7] of Object.entries(F4)) r[e9] = { open: `\x1B[${s7[0]}m`, close: `\x1B[${s7[1]}m` }, F4[e9] = r[e9], t12.set(s7[0], s7[1]); Object.defineProperty(r, u7, { value: F4, enumerable: false }); } return Object.defineProperty(r, "codes", { value: t12, enumerable: false }), r.color.close = "\x1B[39m", r.bgColor.close = "\x1B[49m", r.color.ansi = L(), r.color.ansi256 = M(), r.color.ansi16m = T(), r.bgColor.ansi = L(v), r.bgColor.ansi256 = M(v), r.bgColor.ansi16m = T(v), Object.defineProperties(r, { rgbToAnsi256: { value: /* @__PURE__ */ __name((u7, F4, e9) => u7 === F4 && F4 === e9 ? u7 < 8 ? 16 : u7 > 248 ? 231 : Math.round((u7 - 8) / 247 * 24) + 232 : 16 + 36 * Math.round(u7 / 255 * 5) + 6 * Math.round(F4 / 255 * 5) + Math.round(e9 / 255 * 5), "value"), enumerable: false }, hexToRgb: { value: /* @__PURE__ */ __name((u7) => { const F4 = /[a-f\d]{6}|[a-f\d]{3}/i.exec(u7.toString(16)); if (!F4) return [0, 0, 0]; let [e9] = F4; e9.length === 3 && (e9 = [...e9].map((C4) => C4 + C4).join("")); const s7 = Number.parseInt(e9, 16); return [s7 >> 16 & 255, s7 >> 8 & 255, s7 & 255]; }, "value"), enumerable: false }, hexToAnsi256: { value: /* @__PURE__ */ __name((u7) => r.rgbToAnsi256(...r.hexToRgb(u7)), "value"), enumerable: false }, ansi256ToAnsi: { value: /* @__PURE__ */ __name((u7) => { if (u7 < 8) return 30 + u7; if (u7 < 16) return 90 + (u7 - 8); let F4, e9, s7; if (u7 >= 232) F4 = ((u7 - 232) * 10 + 8) / 255, e9 = F4, s7 = F4; else { u7 -= 16; const i7 = u7 % 36; F4 = Math.floor(u7 / 36) / 5, e9 = Math.floor(i7 / 6) / 5, s7 = i7 % 6 / 5; } const C4 = Math.max(F4, e9, s7) * 2; if (C4 === 0) return 30; let D4 = 30 + (Math.round(s7) << 2 | Math.round(e9) << 1 | Math.round(F4)); return C4 === 2 && (D4 += 60), D4; }, "value"), enumerable: false }, rgbToAnsi: { value: /* @__PURE__ */ __name((u7, F4, e9) => r.ansi256ToAnsi(r.rgbToAnsi256(u7, F4, e9)), "value"), enumerable: false }, hexToAnsi: { value: /* @__PURE__ */ __name((u7) => r.ansi256ToAnsi(r.hexToAnsi256(u7)), "value"), enumerable: false } }), r; } function P(t12, u7, F4) { return String(t12).normalize().replace(/\r\n/g, ` `).split(` `).map((e9) => uD(e9, u7, F4)).join(` `); } function FD(t12, u7) { if (t12 === u7) return; const F4 = t12.split(` `), e9 = u7.split(` `), s7 = []; for (let C4 = 0; C4 < Math.max(F4.length, e9.length); C4++) F4[C4] !== e9[C4] && s7.push(C4); return s7; } function eD(t12) { return t12 === R; } function g(t12, u7) { t12.isTTY && t12.setRawMode(u7); } var import_sisteransi, import_picocolors, m, G, K, Y, v, L, M, T, r, Z, H, q, p, J, b, W, Q, I, w, N, j, X, _, DD, uD, R, V, tD, h, sD, iD, ED, oD; var init_dist3 = __esm({ "../../node_modules/.pnpm/@clack+core@0.3.2/node_modules/@clack/core/dist/index.mjs"() { init_import_meta_url(); import_sisteransi = __toESM(require_src2(), 1); import_picocolors = __toESM(require_picocolors(), 1); __name(z, "z"); __name($, "$"); m = {}; G = { get exports() { return m; }, set exports(t12) { m = t12; } }; (function(t12) { var u7 = {}; t12.exports = u7, u7.eastAsianWidth = function(e9) { var s7 = e9.charCodeAt(0), C4 = e9.length == 2 ? e9.charCodeAt(1) : 0, D4 = s7; return 55296 <= s7 && s7 <= 56319 && 56320 <= C4 && C4 <= 57343 && (s7 &= 1023, C4 &= 1023, D4 = s7 << 10 | C4, D4 += 65536), D4 == 12288 || 65281 <= D4 && D4 <= 65376 || 65504 <= D4 && D4 <= 65510 ? "F" : D4 == 8361 || 65377 <= D4 && D4 <= 65470 || 65474 <= D4 && D4 <= 65479 || 65482 <= D4 && D4 <= 65487 || 65490 <= D4 && D4 <= 65495 || 65498 <= D4 && D4 <= 65500 || 65512 <= D4 && D4 <= 65518 ? "H" : 4352 <= D4 && D4 <= 4447 || 4515 <= D4 && D4 <= 4519 || 4602 <= D4 && D4 <= 4607 || 9001 <= D4 && D4 <= 9002 || 11904 <= D4 && D4 <= 11929 || 11931 <= D4 && D4 <= 12019 || 12032 <= D4 && D4 <= 12245 || 12272 <= D4 && D4 <= 12283 || 12289 <= D4 && D4 <= 12350 || 12353 <= D4 && D4 <= 12438 || 12441 <= D4 && D4 <= 12543 || 12549 <= D4 && D4 <= 12589 || 12593 <= D4 && D4 <= 12686 || 12688 <= D4 && D4 <= 12730 || 12736 <= D4 && D4 <= 12771 || 12784 <= D4 && D4 <= 12830 || 12832 <= D4 && D4 <= 12871 || 12880 <= D4 && D4 <= 13054 || 13056 <= D4 && D4 <= 19903 || 19968 <= D4 && D4 <= 42124 || 42128 <= D4 && D4 <= 42182 || 43360 <= D4 && D4 <= 43388 || 44032 <= D4 && D4 <= 55203 || 55216 <= D4 && D4 <= 55238 || 55243 <= D4 && D4 <= 55291 || 63744 <= D4 && D4 <= 64255 || 65040 <= D4 && D4 <= 65049 || 65072 <= D4 && D4 <= 65106 || 65108 <= D4 && D4 <= 65126 || 65128 <= D4 && D4 <= 65131 || 110592 <= D4 && D4 <= 110593 || 127488 <= D4 && D4 <= 127490 || 127504 <= D4 && D4 <= 127546 || 127552 <= D4 && D4 <= 127560 || 127568 <= D4 && D4 <= 127569 || 131072 <= D4 && D4 <= 194367 || 177984 <= D4 && D4 <= 196605 || 196608 <= D4 && D4 <= 262141 ? "W" : 32 <= D4 && D4 <= 126 || 162 <= D4 && D4 <= 163 || 165 <= D4 && D4 <= 166 || D4 == 172 || D4 == 175 || 10214 <= D4 && D4 <= 10221 || 10629 <= D4 && D4 <= 10630 ? "Na" : D4 == 161 || D4 == 164 || 167 <= D4 && D4 <= 168 || D4 == 170 || 173 <= D4 && D4 <= 174 || 176 <= D4 && D4 <= 180 || 182 <= D4 && D4 <= 186 || 188 <= D4 && D4 <= 191 || D4 == 198 || D4 == 208 || 215 <= D4 && D4 <= 216 || 222 <= D4 && D4 <= 225 || D4 == 230 || 232 <= D4 && D4 <= 234 || 236 <= D4 && D4 <= 237 || D4 == 240 || 242 <= D4 && D4 <= 243 || 247 <= D4 && D4 <= 250 || D4 == 252 || D4 == 254 || D4 == 257 || D4 == 273 || D4 == 275 || D4 == 283 || 294 <= D4 && D4 <= 295 || D4 == 299 || 305 <= D4 && D4 <= 307 || D4 == 312 || 319 <= D4 && D4 <= 322 || D4 == 324 || 328 <= D4 && D4 <= 331 || D4 == 333 || 338 <= D4 && D4 <= 339 || 358 <= D4 && D4 <= 359 || D4 == 363 || D4 == 462 || D4 == 464 || D4 == 466 || D4 == 468 || D4 == 470 || D4 == 472 || D4 == 474 || D4 == 476 || D4 == 593 || D4 == 609 || D4 == 708 || D4 == 711 || 713 <= D4 && D4 <= 715 || D4 == 717 || D4 == 720 || 728 <= D4 && D4 <= 731 || D4 == 733 || D4 == 735 || 768 <= D4 && D4 <= 879 || 913 <= D4 && D4 <= 929 || 931 <= D4 && D4 <= 937 || 945 <= D4 && D4 <= 961 || 963 <= D4 && D4 <= 969 || D4 == 1025 || 1040 <= D4 && D4 <= 1103 || D4 == 1105 || D4 == 8208 || 8211 <= D4 && D4 <= 8214 || 8216 <= D4 && D4 <= 8217 || 8220 <= D4 && D4 <= 8221 || 8224 <= D4 && D4 <= 8226 || 8228 <= D4 && D4 <= 8231 || D4 == 8240 || 8242 <= D4 && D4 <= 8243 || D4 == 8245 || D4 == 8251 || D4 == 8254 || D4 == 8308 || D4 == 8319 || 8321 <= D4 && D4 <= 8324 || D4 == 8364 || D4 == 8451 || D4 == 8453 || D4 == 8457 || D4 == 8467 || D4 == 8470 || 8481 <= D4 && D4 <= 8482 || D4 == 8486 || D4 == 8491 || 8531 <= D4 && D4 <= 8532 || 8539 <= D4 && D4 <= 8542 || 8544 <= D4 && D4 <= 8555 || 8560 <= D4 && D4 <= 8569 || D4 == 8585 || 8592 <= D4 && D4 <= 8601 || 8632 <= D4 && D4 <= 8633 || D4 == 8658 || D4 == 8660 || D4 == 8679 || D4 == 8704 || 8706 <= D4 && D4 <= 8707 || 8711 <= D4 && D4 <= 8712 || D4 == 8715 || D4 == 8719 || D4 == 8721 || D4 == 8725 || D4 == 8730 || 8733 <= D4 && D4 <= 8736 || D4 == 8739 || D4 == 8741 || 8743 <= D4 && D4 <= 8748 || D4 == 8750 || 8756 <= D4 && D4 <= 8759 || 8764 <= D4 && D4 <= 8765 || D4 == 8776 || D4 == 8780 || D4 == 8786 || 8800 <= D4 && D4 <= 8801 || 8804 <= D4 && D4 <= 8807 || 8810 <= D4 && D4 <= 8811 || 8814 <= D4 && D4 <= 8815 || 8834 <= D4 && D4 <= 8835 || 8838 <= D4 && D4 <= 8839 || D4 == 8853 || D4 == 8857 || D4 == 8869 || D4 == 8895 || D4 == 8978 || 9312 <= D4 && D4 <= 9449 || 9451 <= D4 && D4 <= 9547 || 9552 <= D4 && D4 <= 9587 || 9600 <= D4 && D4 <= 9615 || 9618 <= D4 && D4 <= 9621 || 9632 <= D4 && D4 <= 9633 || 9635 <= D4 && D4 <= 9641 || 9650 <= D4 && D4 <= 9651 || 9654 <= D4 && D4 <= 9655 || 9660 <= D4 && D4 <= 9661 || 9664 <= D4 && D4 <= 9665 || 9670 <= D4 && D4 <= 9672 || D4 == 9675 || 9678 <= D4 && D4 <= 9681 || 9698 <= D4 && D4 <= 9701 || D4 == 9711 || 9733 <= D4 && D4 <= 9734 || D4 == 9737 || 9742 <= D4 && D4 <= 9743 || 9748 <= D4 && D4 <= 9749 || D4 == 9756 || D4 == 9758 || D4 == 9792 || D4 == 9794 || 9824 <= D4 && D4 <= 9825 || 9827 <= D4 && D4 <= 9829 || 9831 <= D4 && D4 <= 9834 || 9836 <= D4 && D4 <= 9837 || D4 == 9839 || 9886 <= D4 && D4 <= 9887 || 9918 <= D4 && D4 <= 9919 || 9924 <= D4 && D4 <= 9933 || 9935 <= D4 && D4 <= 9953 || D4 == 9955 || 9960 <= D4 && D4 <= 9983 || D4 == 10045 || D4 == 10071 || 10102 <= D4 && D4 <= 10111 || 11093 <= D4 && D4 <= 11097 || 12872 <= D4 && D4 <= 12879 || 57344 <= D4 && D4 <= 63743 || 65024 <= D4 && D4 <= 65039 || D4 == 65533 || 127232 <= D4 && D4 <= 127242 || 127248 <= D4 && D4 <= 127277 || 127280 <= D4 && D4 <= 127337 || 127344 <= D4 && D4 <= 127386 || 917760 <= D4 && D4 <= 917999 || 983040 <= D4 && D4 <= 1048573 || 1048576 <= D4 && D4 <= 1114109 ? "A" : "N"; }, u7.characterLength = function(e9) { var s7 = this.eastAsianWidth(e9); return s7 == "F" || s7 == "W" || s7 == "A" ? 2 : 1; }; function F4(e9) { return e9.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; } __name(F4, "F"); u7.length = function(e9) { for (var s7 = F4(e9), C4 = 0, D4 = 0; D4 < s7.length; D4++) C4 = C4 + this.characterLength(s7[D4]); return C4; }, u7.slice = function(e9, s7, C4) { textLen = u7.length(e9), s7 = s7 || 0, C4 = C4 || 1, s7 < 0 && (s7 = textLen + s7), C4 < 0 && (C4 = textLen + C4); for (var D4 = "", i7 = 0, o7 = F4(e9), E4 = 0; E4 < o7.length; E4++) { var a7 = o7[E4], n8 = u7.length(a7); if (i7 >= s7 - (n8 == 2 ? 1 : 0)) if (i7 + n8 <= C4) D4 += a7; else break; i7 += n8; } return D4; }; })(G); K = m; Y = /* @__PURE__ */ __name(function() { return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; }, "Y"); __name(c, "c"); v = 10; L = /* @__PURE__ */ __name((t12 = 0) => (u7) => `\x1B[${u7 + t12}m`, "L"); M = /* @__PURE__ */ __name((t12 = 0) => (u7) => `\x1B[${38 + t12};5;${u7}m`, "M"); T = /* @__PURE__ */ __name((t12 = 0) => (u7, F4, e9) => `\x1B[${38 + t12};2;${u7};${F4};${e9}m`, "T"); r = { modifier: { reset: [0, 0], bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], blackBright: [90, 39], gray: [90, 39], grey: [90, 39], redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], bgBlackBright: [100, 49], bgGray: [100, 49], bgGrey: [100, 49], bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; Object.keys(r.modifier); Z = Object.keys(r.color); H = Object.keys(r.bgColor); [...Z, ...H]; __name(U, "U"); q = U(); p = /* @__PURE__ */ new Set(["\x1B", "\x9B"]); J = 39; b = "\x07"; W = "["; Q = "]"; I = "m"; w = `${Q}8;;`; N = /* @__PURE__ */ __name((t12) => `${p.values().next().value}${W}${t12}${I}`, "N"); j = /* @__PURE__ */ __name((t12) => `${p.values().next().value}${w}${t12}${b}`, "j"); X = /* @__PURE__ */ __name((t12) => t12.split(" ").map((u7) => c(u7)), "X"); _ = /* @__PURE__ */ __name((t12, u7, F4) => { const e9 = [...u7]; let s7 = false, C4 = false, D4 = c($(t12[t12.length - 1])); for (const [i7, o7] of e9.entries()) { const E4 = c(o7); if (D4 + E4 <= F4 ? t12[t12.length - 1] += o7 : (t12.push(o7), D4 = 0), p.has(o7) && (s7 = true, C4 = e9.slice(i7 + 1).join("").startsWith(w)), s7) { C4 ? o7 === b && (s7 = false, C4 = false) : o7 === I && (s7 = false); continue; } D4 += E4, D4 === F4 && i7 < e9.length - 1 && (t12.push(""), D4 = 0); } !D4 && t12[t12.length - 1].length > 0 && t12.length > 1 && (t12[t12.length - 2] += t12.pop()); }, "_"); DD = /* @__PURE__ */ __name((t12) => { const u7 = t12.split(" "); let F4 = u7.length; for (; F4 > 0 && !(c(u7[F4 - 1]) > 0); ) F4--; return F4 === u7.length ? t12 : u7.slice(0, F4).join(" ") + u7.slice(F4).join(""); }, "DD"); uD = /* @__PURE__ */ __name((t12, u7, F4 = {}) => { if (F4.trim !== false && t12.trim() === "") return ""; let e9 = "", s7, C4; const D4 = X(t12); let i7 = [""]; for (const [E4, a7] of t12.split(" ").entries()) { F4.trim !== false && (i7[i7.length - 1] = i7[i7.length - 1].trimStart()); let n8 = c(i7[i7.length - 1]); if (E4 !== 0 && (n8 >= u7 && (F4.wordWrap === false || F4.trim === false) && (i7.push(""), n8 = 0), (n8 > 0 || F4.trim === false) && (i7[i7.length - 1] += " ", n8++)), F4.hard && D4[E4] > u7) { const B4 = u7 - n8, A4 = 1 + Math.floor((D4[E4] - B4 - 1) / u7); Math.floor((D4[E4] - 1) / u7) < A4 && i7.push(""), _(i7, a7, u7); continue; } if (n8 + D4[E4] > u7 && n8 > 0 && D4[E4] > 0) { if (F4.wordWrap === false && n8 < u7) { _(i7, a7, u7); continue; } i7.push(""); } if (n8 + D4[E4] > u7 && F4.wordWrap === false) { _(i7, a7, u7); continue; } i7[i7.length - 1] += a7; } F4.trim !== false && (i7 = i7.map((E4) => DD(E4))); const o7 = [...i7.join(` `)]; for (const [E4, a7] of o7.entries()) { if (e9 += a7, p.has(a7)) { const { groups: B4 } = new RegExp(`(?:\\${W}(?\\d+)m|\\${w}(?.*)${b})`).exec(o7.slice(E4).join("")) || { groups: {} }; if (B4.code !== void 0) { const A4 = Number.parseFloat(B4.code); s7 = A4 === J ? void 0 : A4; } else B4.uri !== void 0 && (C4 = B4.uri.length === 0 ? void 0 : B4.uri); } const n8 = q.codes.get(Number(s7)); o7[E4 + 1] === ` ` ? (C4 && (e9 += j("")), s7 && n8 && (e9 += N(n8))) : a7 === ` ` && (s7 && n8 && (e9 += N(s7)), C4 && (e9 += j(C4))); } return e9; }, "uD"); __name(P, "P"); __name(FD, "FD"); R = Symbol("clack:cancel"); __name(eD, "eD"); __name(g, "g"); V = /* @__PURE__ */ new Map([["k", "up"], ["j", "down"], ["h", "left"], ["l", "right"]]); tD = /* @__PURE__ */ new Set(["up", "down", "left", "right", "space", "enter"]); h = class { static { __name(this, "h"); } constructor({ render: u7, input: F4 = process7.stdin, output: e9 = process7.stdout, ...s7 }, C4 = true) { this._track = false, this._cursor = 0, this.state = "initial", this.error = "", this.subscribers = /* @__PURE__ */ new Map(), this._prevFrame = "", this.opts = s7, this.onKeypress = this.onKeypress.bind(this), this.close = this.close.bind(this), this.render = this.render.bind(this), this._render = u7.bind(this), this._track = C4, this.input = F4, this.output = e9; } prompt() { const u7 = new tty.WriteStream(0); return u7._write = (F4, e9, s7) => { this._track && (this.value = this.rl.line.replace(/\t/g, ""), this._cursor = this.rl.cursor, this.emit("value", this.value)), s7(); }, this.input.pipe(u7), this.rl = S__default.default.createInterface({ input: this.input, output: u7, tabSize: 2, prompt: "", escapeCodeTimeout: 50 }), S__default.default.emitKeypressEvents(this.input, this.rl), this.rl.prompt(), this.opts.initialValue !== void 0 && this._track && this.rl.write(this.opts.initialValue), this.input.on("keypress", this.onKeypress), g(this.input, true), this.output.on("resize", this.render), this.render(), new Promise((F4, e9) => { this.once("submit", () => { this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), g(this.input, false), F4(this.value); }), this.once("cancel", () => { this.output.write(import_sisteransi.cursor.show), this.output.off("resize", this.render), g(this.input, false), F4(R); }); }); } on(u7, F4) { const e9 = this.subscribers.get(u7) ?? []; e9.push({ cb: F4 }), this.subscribers.set(u7, e9); } once(u7, F4) { const e9 = this.subscribers.get(u7) ?? []; e9.push({ cb: F4, once: true }), this.subscribers.set(u7, e9); } emit(u7, ...F4) { const e9 = this.subscribers.get(u7) ?? [], s7 = []; for (const C4 of e9) C4.cb(...F4), C4.once && s7.push(() => e9.splice(e9.indexOf(C4), 1)); for (const C4 of s7) C4(); } unsubscribe() { this.subscribers.clear(); } onKeypress(u7, F4) { if (this.state === "error" && (this.state = "active"), F4?.name && !this._track && V.has(F4.name) && this.emit("cursor", V.get(F4.name)), F4?.name && tD.has(F4.name) && this.emit("cursor", F4.name), u7 && (u7.toLowerCase() === "y" || u7.toLowerCase() === "n") && this.emit("confirm", u7.toLowerCase() === "y"), u7 && this.emit("key", u7.toLowerCase()), F4?.name === "return") { if (this.opts.validate) { const e9 = this.opts.validate(this.value); e9 && (this.error = e9, this.state = "error", this.rl.write(this.value)); } this.state !== "error" && (this.state = "submit"); } u7 === "" && (this.state = "cancel"), (this.state === "submit" || this.state === "cancel") && this.emit("finalize"), this.render(), (this.state === "submit" || this.state === "cancel") && this.close(); } close() { this.input.unpipe(), this.input.removeListener("keypress", this.onKeypress), this.output.write(` `), g(this.input, false), this.rl.close(), this.emit(`${this.state}`, this.value), this.unsubscribe(); } restoreCursor() { const u7 = P(this._prevFrame, process.stdout.columns, { hard: true }).split(` `).length - 1; this.output.write(import_sisteransi.cursor.move(-999, u7 * -1)); } render() { const u7 = P(this._render(this) ?? "", process.stdout.columns, { hard: true }); if (u7 !== this._prevFrame) { if (this.state === "initial") this.output.write(import_sisteransi.cursor.hide); else { const F4 = FD(this._prevFrame, u7); if (this.restoreCursor(), F4 && F4?.length === 1) { const e9 = F4[0]; this.output.write(import_sisteransi.cursor.move(0, e9)), this.output.write(import_sisteransi.erase.lines(1)); const s7 = u7.split(` `); this.output.write(s7[e9]), this._prevFrame = u7, this.output.write(import_sisteransi.cursor.move(0, s7.length - e9 - 1)); return; } else if (F4 && F4?.length > 1) { const e9 = F4[0]; this.output.write(import_sisteransi.cursor.move(0, e9)), this.output.write(import_sisteransi.erase.down()); const C4 = u7.split(` `).slice(e9); this.output.write(C4.join(` `)), this._prevFrame = u7; return; } this.output.write(import_sisteransi.erase.down()); } this.output.write(u7), this.state === "initial" && (this.state = "active"), this._prevFrame = u7; } } }; sD = class extends h { static { __name(this, "sD"); } get cursor() { return this.value ? 0 : 1; } get _value() { return this.cursor === 0; } constructor(u7) { super(u7, false), this.value = !!u7.initialValue, this.on("value", () => { this.value = this._value; }), this.on("confirm", (F4) => { this.output.write(import_sisteransi.cursor.move(0, -1)), this.value = F4, this.state = "submit", this.close(); }), this.on("cursor", () => { this.value = !this.value; }); } }; iD = class extends h { static { __name(this, "iD"); } constructor(u7) { super(u7, false), this.cursor = 0, this.options = u7.options, this.value = [...u7.initialValues ?? []], this.cursor = Math.max(this.options.findIndex(({ value: F4 }) => F4 === u7.cursorAt), 0), this.on("key", (F4) => { F4 === "a" && this.toggleAll(); }), this.on("cursor", (F4) => { switch (F4) { case "left": case "up": this.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1; break; case "down": case "right": this.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1; break; case "space": this.toggleValue(); break; } }); } get _value() { return this.options[this.cursor].value; } toggleAll() { const u7 = this.value.length === this.options.length; this.value = u7 ? [] : this.options.map((F4) => F4.value); } toggleValue() { const u7 = this.value.includes(this._value); this.value = u7 ? this.value.filter((F4) => F4 !== this._value) : [...this.value, this._value]; } }; ED = class extends h { static { __name(this, "ED"); } constructor(u7) { super(u7, false), this.cursor = 0, this.options = u7.options, this.cursor = this.options.findIndex(({ value: F4 }) => F4 === u7.initialValue), this.cursor === -1 && (this.cursor = 0), this.changeValue(), this.on("cursor", (F4) => { switch (F4) { case "left": case "up": this.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1; break; case "down": case "right": this.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1; break; } this.changeValue(); }); } get _value() { return this.options[this.cursor]; } changeValue() { this.value = this._value.value; } }; oD = class extends h { static { __name(this, "oD"); } constructor(u7) { super(u7), this.valueWithCursor = "", this.on("finalize", () => { this.value || (this.value = u7.defaultValue), this.valueWithCursor = this.value; }), this.on("value", () => { if (this.cursor >= this.value.length) this.valueWithCursor = `${this.value}${import_picocolors.default.inverse(import_picocolors.default.hidden("_"))}`; else { const F4 = this.value.slice(0, this.cursor), e9 = this.value.slice(this.cursor); this.valueWithCursor = `${F4}${import_picocolors.default.inverse(e9[0])}${e9.slice(1)}`; } }); } get cursor() { return this._cursor; } }; } }); // ../../node_modules/.pnpm/ansi-escapes@5.0.0/node_modules/ansi-escapes/index.js var ESC, OSC, BEL, SEP, isTerminalApp, ansiEscapes, ansi_escapes_default; var init_ansi_escapes = __esm({ "../../node_modules/.pnpm/ansi-escapes@5.0.0/node_modules/ansi-escapes/index.js"() { init_import_meta_url(); ESC = "\x1B["; OSC = "\x1B]"; BEL = "\x07"; SEP = ";"; isTerminalApp = process.env.TERM_PROGRAM === "Apple_Terminal"; ansiEscapes = {}; ansiEscapes.cursorTo = (x7, y5) => { if (typeof x7 !== "number") { throw new TypeError("The `x` argument is required"); } if (typeof y5 !== "number") { return ESC + (x7 + 1) + "G"; } return ESC + (y5 + 1) + ";" + (x7 + 1) + "H"; }; ansiEscapes.cursorMove = (x7, y5) => { if (typeof x7 !== "number") { throw new TypeError("The `x` argument is required"); } let returnValue = ""; if (x7 < 0) { returnValue += ESC + -x7 + "D"; } else if (x7 > 0) { returnValue += ESC + x7 + "C"; } if (y5 < 0) { returnValue += ESC + -y5 + "A"; } else if (y5 > 0) { returnValue += ESC + y5 + "B"; } return returnValue; }; ansiEscapes.cursorUp = (count = 1) => ESC + count + "A"; ansiEscapes.cursorDown = (count = 1) => ESC + count + "B"; ansiEscapes.cursorForward = (count = 1) => ESC + count + "C"; ansiEscapes.cursorBackward = (count = 1) => ESC + count + "D"; ansiEscapes.cursorLeft = ESC + "G"; ansiEscapes.cursorSavePosition = isTerminalApp ? "\x1B7" : ESC + "s"; ansiEscapes.cursorRestorePosition = isTerminalApp ? "\x1B8" : ESC + "u"; ansiEscapes.cursorGetPosition = ESC + "6n"; ansiEscapes.cursorNextLine = ESC + "E"; ansiEscapes.cursorPrevLine = ESC + "F"; ansiEscapes.cursorHide = ESC + "?25l"; ansiEscapes.cursorShow = ESC + "?25h"; ansiEscapes.eraseLines = (count) => { let clear = ""; for (let i7 = 0; i7 < count; i7++) { clear += ansiEscapes.eraseLine + (i7 < count - 1 ? ansiEscapes.cursorUp() : ""); } if (count) { clear += ansiEscapes.cursorLeft; } return clear; }; ansiEscapes.eraseEndLine = ESC + "K"; ansiEscapes.eraseStartLine = ESC + "1K"; ansiEscapes.eraseLine = ESC + "2K"; ansiEscapes.eraseDown = ESC + "J"; ansiEscapes.eraseUp = ESC + "1J"; ansiEscapes.eraseScreen = ESC + "2J"; ansiEscapes.scrollUp = ESC + "S"; ansiEscapes.scrollDown = ESC + "T"; ansiEscapes.clearScreen = "\x1Bc"; ansiEscapes.clearTerminal = process.platform === "win32" ? `${ansiEscapes.eraseScreen}${ESC}0f` : ( // 1. Erases the screen (Only done in case `2` is not supported) // 2. Erases the whole screen including scrollback buffer // 3. Moves cursor to the top-left position // More info: https://www.real-world-systems.com/docs/ANSIcode.html `${ansiEscapes.eraseScreen}${ESC}3J${ESC}H` ); ansiEscapes.beep = BEL; ansiEscapes.link = (text, url4) => { return [ OSC, "8", SEP, SEP, url4, BEL, text, OSC, "8", SEP, SEP, BEL ].join(""); }; ansiEscapes.image = (buffer, options = {}) => { let returnValue = `${OSC}1337;File=inline=1`; if (options.width) { returnValue += `;width=${options.width}`; } if (options.height) { returnValue += `;height=${options.height}`; } if (options.preserveAspectRatio === false) { returnValue += ";preserveAspectRatio=0"; } return returnValue + ":" + buffer.toString("base64") + BEL; }; ansiEscapes.iTerm = { setCwd: /* @__PURE__ */ __name((cwd2 = process.cwd()) => `${OSC}50;CurrentDir=${cwd2}${BEL}`, "setCwd"), annotation: /* @__PURE__ */ __name((message, options = {}) => { let returnValue = `${OSC}1337;`; const hasX = typeof options.x !== "undefined"; const hasY = typeof options.y !== "undefined"; if ((hasX || hasY) && !(hasX && hasY && typeof options.length !== "undefined")) { throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined"); } message = message.replace(/\|/g, ""); returnValue += options.isHidden ? "AddHiddenAnnotation=" : "AddAnnotation="; if (options.length > 0) { returnValue += (hasX ? [message, options.length, options.x, options.y] : [options.length, message]).join("|"); } else { returnValue += message; } return returnValue + BEL; }, "annotation") }; ansi_escapes_default = ansiEscapes; } }); // ../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js var require_mimic_fn = __commonJS({ "../../node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js"(exports, module4) { init_import_meta_url(); var mimicFn = /* @__PURE__ */ __name((to, from) => { for (const prop of Reflect.ownKeys(from)) { Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); } return to; }, "mimicFn"); module4.exports = mimicFn; module4.exports.default = mimicFn; } }); // ../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js var require_onetime = __commonJS({ "../../node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js"(exports, module4) { init_import_meta_url(); var mimicFn = require_mimic_fn(); var calledFunctions2 = /* @__PURE__ */ new WeakMap(); var onetime3 = /* @__PURE__ */ __name((function_, options = {}) => { if (typeof function_ !== "function") { throw new TypeError("Expected a function"); } let returnValue; let callCount = 0; const functionName = function_.displayName || function_.name || ""; const onetime4 = /* @__PURE__ */ __name(function(...arguments_) { calledFunctions2.set(onetime4, ++callCount); if (callCount === 1) { returnValue = function_.apply(this, arguments_); function_ = null; } else if (options.throw === true) { throw new Error(`Function \`${functionName}\` can only be called once`); } return returnValue; }, "onetime"); mimicFn(onetime4, function_); calledFunctions2.set(onetime4, callCount); return onetime4; }, "onetime"); module4.exports = onetime3; module4.exports.default = onetime3; module4.exports.callCount = (function_) => { if (!calledFunctions2.has(function_)) { throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`); } return calledFunctions2.get(function_); }; } }); var import_onetime, import_signal_exit3, restoreCursor, restore_cursor_default; var init_restore_cursor = __esm({ "../../node_modules/.pnpm/restore-cursor@4.0.0/node_modules/restore-cursor/index.js"() { init_import_meta_url(); import_onetime = __toESM(require_onetime(), 1); import_signal_exit3 = __toESM(require_signal_exit(), 1); restoreCursor = (0, import_onetime.default)(() => { (0, import_signal_exit3.default)(() => { process7__default.default.stderr.write("\x1B[?25h"); }, { alwaysLast: true }); }); restore_cursor_default = restoreCursor; } }); var isHidden, cliCursor, cli_cursor_default; var init_cli_cursor = __esm({ "../../node_modules/.pnpm/cli-cursor@4.0.0/node_modules/cli-cursor/index.js"() { init_import_meta_url(); init_restore_cursor(); isHidden = false; cliCursor = {}; cliCursor.show = (writableStream = process7__default.default.stderr) => { if (!writableStream.isTTY) { return; } isHidden = false; writableStream.write("\x1B[?25h"); }; cliCursor.hide = (writableStream = process7__default.default.stderr) => { if (!writableStream.isTTY) { return; } restore_cursor_default(); isHidden = true; writableStream.write("\x1B[?25l"); }; cliCursor.toggle = (force, writableStream) => { if (force !== void 0) { isHidden = force; } if (isHidden) { cliCursor.show(writableStream); } else { cliCursor.hide(writableStream); } }; cli_cursor_default = cliCursor; } }); // ../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js function ansiRegex({ onlyFirst = false } = {}) { const pattern = [ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))" ].join("|"); return new RegExp(pattern, onlyFirst ? void 0 : "g"); } var init_ansi_regex = __esm({ "../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js"() { init_import_meta_url(); __name(ansiRegex, "ansiRegex"); } }); // ../../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js function stripAnsi2(string) { if (typeof string !== "string") { throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); } return string.replace(regex, ""); } var regex; var init_strip_ansi = __esm({ "../../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js"() { init_import_meta_url(); init_ansi_regex(); regex = ansiRegex(); __name(stripAnsi2, "stripAnsi"); } }); // ../../node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js var require_eastasianwidth = __commonJS({ "../../node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js"(exports, module4) { init_import_meta_url(); var eaw = {}; if ("undefined" == typeof module4) { window.eastasianwidth = eaw; } else { module4.exports = eaw; } eaw.eastAsianWidth = function(character) { var x7 = character.charCodeAt(0); var y5 = character.length == 2 ? character.charCodeAt(1) : 0; var codePoint = x7; if (55296 <= x7 && x7 <= 56319 && (56320 <= y5 && y5 <= 57343)) { x7 &= 1023; y5 &= 1023; codePoint = x7 << 10 | y5; codePoint += 65536; } if (12288 == codePoint || 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510) { return "F"; } if (8361 == codePoint || 65377 <= codePoint && codePoint <= 65470 || 65474 <= codePoint && codePoint <= 65479 || 65482 <= codePoint && codePoint <= 65487 || 65490 <= codePoint && codePoint <= 65495 || 65498 <= codePoint && codePoint <= 65500 || 65512 <= codePoint && codePoint <= 65518) { return "H"; } if (4352 <= codePoint && codePoint <= 4447 || 4515 <= codePoint && codePoint <= 4519 || 4602 <= codePoint && codePoint <= 4607 || 9001 <= codePoint && codePoint <= 9002 || 11904 <= codePoint && codePoint <= 11929 || 11931 <= codePoint && codePoint <= 12019 || 12032 <= codePoint && codePoint <= 12245 || 12272 <= codePoint && codePoint <= 12283 || 12289 <= codePoint && codePoint <= 12350 || 12353 <= codePoint && codePoint <= 12438 || 12441 <= codePoint && codePoint <= 12543 || 12549 <= codePoint && codePoint <= 12589 || 12593 <= codePoint && codePoint <= 12686 || 12688 <= codePoint && codePoint <= 12730 || 12736 <= codePoint && codePoint <= 12771 || 12784 <= codePoint && codePoint <= 12830 || 12832 <= codePoint && codePoint <= 12871 || 12880 <= codePoint && codePoint <= 13054 || 13056 <= codePoint && codePoint <= 19903 || 19968 <= codePoint && codePoint <= 42124 || 42128 <= codePoint && codePoint <= 42182 || 43360 <= codePoint && codePoint <= 43388 || 44032 <= codePoint && codePoint <= 55203 || 55216 <= codePoint && codePoint <= 55238 || 55243 <= codePoint && codePoint <= 55291 || 63744 <= codePoint && codePoint <= 64255 || 65040 <= codePoint && codePoint <= 65049 || 65072 <= codePoint && codePoint <= 65106 || 65108 <= codePoint && codePoint <= 65126 || 65128 <= codePoint && codePoint <= 65131 || 110592 <= codePoint && codePoint <= 110593 || 127488 <= codePoint && codePoint <= 127490 || 127504 <= codePoint && codePoint <= 127546 || 127552 <= codePoint && codePoint <= 127560 || 127568 <= codePoint && codePoint <= 127569 || 131072 <= codePoint && codePoint <= 194367 || 177984 <= codePoint && codePoint <= 196605 || 196608 <= codePoint && codePoint <= 262141) { return "W"; } if (32 <= codePoint && codePoint <= 126 || 162 <= codePoint && codePoint <= 163 || 165 <= codePoint && codePoint <= 166 || 172 == codePoint || 175 == codePoint || 10214 <= codePoint && codePoint <= 10221 || 10629 <= codePoint && codePoint <= 10630) { return "Na"; } if (161 == codePoint || 164 == codePoint || 167 <= codePoint && codePoint <= 168 || 170 == codePoint || 173 <= codePoint && codePoint <= 174 || 176 <= codePoint && codePoint <= 180 || 182 <= codePoint && codePoint <= 186 || 188 <= codePoint && codePoint <= 191 || 198 == codePoint || 208 == codePoint || 215 <= codePoint && codePoint <= 216 || 222 <= codePoint && codePoint <= 225 || 230 == codePoint || 232 <= codePoint && codePoint <= 234 || 236 <= codePoint && codePoint <= 237 || 240 == codePoint || 242 <= codePoint && codePoint <= 243 || 247 <= codePoint && codePoint <= 250 || 252 == codePoint || 254 == codePoint || 257 == codePoint || 273 == codePoint || 275 == codePoint || 283 == codePoint || 294 <= codePoint && codePoint <= 295 || 299 == codePoint || 305 <= codePoint && codePoint <= 307 || 312 == codePoint || 319 <= codePoint && codePoint <= 322 || 324 == codePoint || 328 <= codePoint && codePoint <= 331 || 333 == codePoint || 338 <= codePoint && codePoint <= 339 || 358 <= codePoint && codePoint <= 359 || 363 == codePoint || 462 == codePoint || 464 == codePoint || 466 == codePoint || 468 == codePoint || 470 == codePoint || 472 == codePoint || 474 == codePoint || 476 == codePoint || 593 == codePoint || 609 == codePoint || 708 == codePoint || 711 == codePoint || 713 <= codePoint && codePoint <= 715 || 717 == codePoint || 720 == codePoint || 728 <= codePoint && codePoint <= 731 || 733 == codePoint || 735 == codePoint || 768 <= codePoint && codePoint <= 879 || 913 <= codePoint && codePoint <= 929 || 931 <= codePoint && codePoint <= 937 || 945 <= codePoint && codePoint <= 961 || 963 <= codePoint && codePoint <= 969 || 1025 == codePoint || 1040 <= codePoint && codePoint <= 1103 || 1105 == codePoint || 8208 == codePoint || 8211 <= codePoint && codePoint <= 8214 || 8216 <= codePoint && codePoint <= 8217 || 8220 <= codePoint && codePoint <= 8221 || 8224 <= codePoint && codePoint <= 8226 || 8228 <= codePoint && codePoint <= 8231 || 8240 == codePoint || 8242 <= codePoint && codePoint <= 8243 || 8245 == codePoint || 8251 == codePoint || 8254 == codePoint || 8308 == codePoint || 8319 == codePoint || 8321 <= codePoint && codePoint <= 8324 || 8364 == codePoint || 8451 == codePoint || 8453 == codePoint || 8457 == codePoint || 8467 == codePoint || 8470 == codePoint || 8481 <= codePoint && codePoint <= 8482 || 8486 == codePoint || 8491 == codePoint || 8531 <= codePoint && codePoint <= 8532 || 8539 <= codePoint && codePoint <= 8542 || 8544 <= codePoint && codePoint <= 8555 || 8560 <= codePoint && codePoint <= 8569 || 8585 == codePoint || 8592 <= codePoint && codePoint <= 8601 || 8632 <= codePoint && codePoint <= 8633 || 8658 == codePoint || 8660 == codePoint || 8679 == codePoint || 8704 == codePoint || 8706 <= codePoint && codePoint <= 8707 || 8711 <= codePoint && codePoint <= 8712 || 8715 == codePoint || 8719 == codePoint || 8721 == codePoint || 8725 == codePoint || 8730 == codePoint || 8733 <= codePoint && codePoint <= 8736 || 8739 == codePoint || 8741 == codePoint || 8743 <= codePoint && codePoint <= 8748 || 8750 == codePoint || 8756 <= codePoint && codePoint <= 8759 || 8764 <= codePoint && codePoint <= 8765 || 8776 == codePoint || 8780 == codePoint || 8786 == codePoint || 8800 <= codePoint && codePoint <= 8801 || 8804 <= codePoint && codePoint <= 8807 || 8810 <= codePoint && codePoint <= 8811 || 8814 <= codePoint && codePoint <= 8815 || 8834 <= codePoint && codePoint <= 8835 || 8838 <= codePoint && codePoint <= 8839 || 8853 == codePoint || 8857 == codePoint || 8869 == codePoint || 8895 == codePoint || 8978 == codePoint || 9312 <= codePoint && codePoint <= 9449 || 9451 <= codePoint && codePoint <= 9547 || 9552 <= codePoint && codePoint <= 9587 || 9600 <= codePoint && codePoint <= 9615 || 9618 <= codePoint && codePoint <= 9621 || 9632 <= codePoint && codePoint <= 9633 || 9635 <= codePoint && codePoint <= 9641 || 9650 <= codePoint && codePoint <= 9651 || 9654 <= codePoint && codePoint <= 9655 || 9660 <= codePoint && codePoint <= 9661 || 9664 <= codePoint && codePoint <= 9665 || 9670 <= codePoint && codePoint <= 9672 || 9675 == codePoint || 9678 <= codePoint && codePoint <= 9681 || 9698 <= codePoint && codePoint <= 9701 || 9711 == codePoint || 9733 <= codePoint && codePoint <= 9734 || 9737 == codePoint || 9742 <= codePoint && codePoint <= 9743 || 9748 <= codePoint && codePoint <= 9749 || 9756 == codePoint || 9758 == codePoint || 9792 == codePoint || 9794 == codePoint || 9824 <= codePoint && codePoint <= 9825 || 9827 <= codePoint && codePoint <= 9829 || 9831 <= codePoint && codePoint <= 9834 || 9836 <= codePoint && codePoint <= 9837 || 9839 == codePoint || 9886 <= codePoint && codePoint <= 9887 || 9918 <= codePoint && codePoint <= 9919 || 9924 <= codePoint && codePoint <= 9933 || 9935 <= codePoint && codePoint <= 9953 || 9955 == codePoint || 9960 <= codePoint && codePoint <= 9983 || 10045 == codePoint || 10071 == codePoint || 10102 <= codePoint && codePoint <= 10111 || 11093 <= codePoint && codePoint <= 11097 || 12872 <= codePoint && codePoint <= 12879 || 57344 <= codePoint && codePoint <= 63743 || 65024 <= codePoint && codePoint <= 65039 || 65533 == codePoint || 127232 <= codePoint && codePoint <= 127242 || 127248 <= codePoint && codePoint <= 127277 || 127280 <= codePoint && codePoint <= 127337 || 127344 <= codePoint && codePoint <= 127386 || 917760 <= codePoint && codePoint <= 917999 || 983040 <= codePoint && codePoint <= 1048573 || 1048576 <= codePoint && codePoint <= 1114109) { return "A"; } return "N"; }; eaw.characterLength = function(character) { var code = this.eastAsianWidth(character); if (code == "F" || code == "W" || code == "A") { return 2; } else { return 1; } }; function stringToArray(string) { return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; } __name(stringToArray, "stringToArray"); eaw.length = function(string) { var characters = stringToArray(string); var len = 0; for (var i7 = 0; i7 < characters.length; i7++) { len = len + this.characterLength(characters[i7]); } return len; }; eaw.slice = function(text, start, end) { textLen = eaw.length(text); start = start ? start : 0; end = end ? end : 1; if (start < 0) { start = textLen + start; } if (end < 0) { end = textLen + end; } var result = ""; var eawLen = 0; var chars = stringToArray(text); for (var i7 = 0; i7 < chars.length; i7++) { var char = chars[i7]; var charLen = eaw.length(char); if (eawLen >= start - (charLen == 2 ? 1 : 0)) { if (eawLen + charLen <= end) { result += char; } else { break; } } eawLen += charLen; } return result; }; } }); // ../../node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js var require_emoji_regex2 = __commonJS({ "../../node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js"(exports, module4) { init_import_meta_url(); module4.exports = function() { return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; }; } }); // ../../node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js function stringWidth(string, options = {}) { if (typeof string !== "string" || string.length === 0) { return 0; } options = { ambiguousIsNarrow: true, ...options }; string = stripAnsi2(string); if (string.length === 0) { return 0; } string = string.replace((0, import_emoji_regex.default)(), " "); const ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2; let width = 0; for (const character of string) { const codePoint = character.codePointAt(0); if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) { continue; } if (codePoint >= 768 && codePoint <= 879) { continue; } const code = import_eastasianwidth.default.eastAsianWidth(character); switch (code) { case "F": case "W": width += 2; break; case "A": width += ambiguousCharacterWidth; break; default: width += 1; } } return width; } var import_eastasianwidth, import_emoji_regex; var init_string_width = __esm({ "../../node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js"() { init_import_meta_url(); init_strip_ansi(); import_eastasianwidth = __toESM(require_eastasianwidth(), 1); import_emoji_regex = __toESM(require_emoji_regex2(), 1); __name(stringWidth, "stringWidth"); } }); // ../../node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js function assembleStyles2() { const codes = /* @__PURE__ */ new Map(); for (const [groupName, group] of Object.entries(styles3)) { for (const [styleName, style] of Object.entries(group)) { styles3[styleName] = { open: `\x1B[${style[0]}m`, close: `\x1B[${style[1]}m` }; group[styleName] = styles3[styleName]; codes.set(style[0], style[1]); } Object.defineProperty(styles3, groupName, { value: group, enumerable: false }); } Object.defineProperty(styles3, "codes", { value: codes, enumerable: false }); styles3.color.close = "\x1B[39m"; styles3.bgColor.close = "\x1B[49m"; styles3.color.ansi = wrapAnsi162(); styles3.color.ansi256 = wrapAnsi2562(); styles3.color.ansi16m = wrapAnsi16m2(); styles3.bgColor.ansi = wrapAnsi162(ANSI_BACKGROUND_OFFSET2); styles3.bgColor.ansi256 = wrapAnsi2562(ANSI_BACKGROUND_OFFSET2); styles3.bgColor.ansi16m = wrapAnsi16m2(ANSI_BACKGROUND_OFFSET2); Object.defineProperties(styles3, { rgbToAnsi256: { value: /* @__PURE__ */ __name((red2, green2, blue2) => { if (red2 === green2 && green2 === blue2) { if (red2 < 8) { return 16; } if (red2 > 248) { return 231; } return Math.round((red2 - 8) / 247 * 24) + 232; } return 16 + 36 * Math.round(red2 / 255 * 5) + 6 * Math.round(green2 / 255 * 5) + Math.round(blue2 / 255 * 5); }, "value"), enumerable: false }, hexToRgb: { value: /* @__PURE__ */ __name((hex) => { const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16)); if (!matches) { return [0, 0, 0]; } let [colorString] = matches; if (colorString.length === 3) { colorString = [...colorString].map((character) => character + character).join(""); } const integer = Number.parseInt(colorString, 16); return [ /* eslint-disable no-bitwise */ integer >> 16 & 255, integer >> 8 & 255, integer & 255 /* eslint-enable no-bitwise */ ]; }, "value"), enumerable: false }, hexToAnsi256: { value: /* @__PURE__ */ __name((hex) => styles3.rgbToAnsi256(...styles3.hexToRgb(hex)), "value"), enumerable: false }, ansi256ToAnsi: { value: /* @__PURE__ */ __name((code) => { if (code < 8) { return 30 + code; } if (code < 16) { return 90 + (code - 8); } let red2; let green2; let blue2; if (code >= 232) { red2 = ((code - 232) * 10 + 8) / 255; green2 = red2; blue2 = red2; } else { code -= 16; const remainder = code % 36; red2 = Math.floor(code / 36) / 5; green2 = Math.floor(remainder / 6) / 5; blue2 = remainder % 6 / 5; } const value = Math.max(red2, green2, blue2) * 2; if (value === 0) { return 30; } let result = 30 + (Math.round(blue2) << 2 | Math.round(green2) << 1 | Math.round(red2)); if (value === 2) { result += 60; } return result; }, "value"), enumerable: false }, rgbToAnsi: { value: /* @__PURE__ */ __name((red2, green2, blue2) => styles3.ansi256ToAnsi(styles3.rgbToAnsi256(red2, green2, blue2)), "value"), enumerable: false }, hexToAnsi: { value: /* @__PURE__ */ __name((hex) => styles3.ansi256ToAnsi(styles3.hexToAnsi256(hex)), "value"), enumerable: false } }); return styles3; } var ANSI_BACKGROUND_OFFSET2, wrapAnsi162, wrapAnsi2562, wrapAnsi16m2, styles3, foregroundColorNames2, backgroundColorNames2, ansiStyles2, ansi_styles_default2; var init_ansi_styles2 = __esm({ "../../node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js"() { init_import_meta_url(); ANSI_BACKGROUND_OFFSET2 = 10; wrapAnsi162 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${code + offset}m`, "wrapAnsi16"); wrapAnsi2562 = /* @__PURE__ */ __name((offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`, "wrapAnsi256"); wrapAnsi16m2 = /* @__PURE__ */ __name((offset = 0) => (red2, green2, blue2) => `\x1B[${38 + offset};2;${red2};${green2};${blue2}m`, "wrapAnsi16m"); styles3 = { modifier: { reset: [0, 0], // 21 isn't widely supported and 22 does the same thing bold: [1, 22], dim: [2, 22], italic: [3, 23], underline: [4, 24], overline: [53, 55], inverse: [7, 27], hidden: [8, 28], strikethrough: [9, 29] }, color: { black: [30, 39], red: [31, 39], green: [32, 39], yellow: [33, 39], blue: [34, 39], magenta: [35, 39], cyan: [36, 39], white: [37, 39], // Bright color blackBright: [90, 39], gray: [90, 39], // Alias of `blackBright` grey: [90, 39], // Alias of `blackBright` redBright: [91, 39], greenBright: [92, 39], yellowBright: [93, 39], blueBright: [94, 39], magentaBright: [95, 39], cyanBright: [96, 39], whiteBright: [97, 39] }, bgColor: { bgBlack: [40, 49], bgRed: [41, 49], bgGreen: [42, 49], bgYellow: [43, 49], bgBlue: [44, 49], bgMagenta: [45, 49], bgCyan: [46, 49], bgWhite: [47, 49], // Bright color bgBlackBright: [100, 49], bgGray: [100, 49], // Alias of `bgBlackBright` bgGrey: [100, 49], // Alias of `bgBlackBright` bgRedBright: [101, 49], bgGreenBright: [102, 49], bgYellowBright: [103, 49], bgBlueBright: [104, 49], bgMagentaBright: [105, 49], bgCyanBright: [106, 49], bgWhiteBright: [107, 49] } }; Object.keys(styles3.modifier); foregroundColorNames2 = Object.keys(styles3.color); backgroundColorNames2 = Object.keys(styles3.bgColor); [...foregroundColorNames2, ...backgroundColorNames2]; __name(assembleStyles2, "assembleStyles"); ansiStyles2 = assembleStyles2(); ansi_styles_default2 = ansiStyles2; } }); // ../../node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js function wrapAnsi(string, columns, options) { return String(string).normalize().replace(/\r\n/g, "\n").split("\n").map((line) => exec(line, columns, options)).join("\n"); } var ESCAPES, END_CODE, ANSI_ESCAPE_BELL, ANSI_CSI, ANSI_OSC, ANSI_SGR_TERMINATOR, ANSI_ESCAPE_LINK, wrapAnsiCode, wrapAnsiHyperlink, wordLengths, wrapWord, stringVisibleTrimSpacesRight, exec; var init_wrap_ansi = __esm({ "../../node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js"() { init_import_meta_url(); init_string_width(); init_strip_ansi(); init_ansi_styles2(); ESCAPES = /* @__PURE__ */ new Set([ "\x1B", "\x9B" ]); END_CODE = 39; ANSI_ESCAPE_BELL = "\x07"; ANSI_CSI = "["; ANSI_OSC = "]"; ANSI_SGR_TERMINATOR = "m"; ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`; wrapAnsiCode = /* @__PURE__ */ __name((code) => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`, "wrapAnsiCode"); wrapAnsiHyperlink = /* @__PURE__ */ __name((uri) => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`, "wrapAnsiHyperlink"); wordLengths = /* @__PURE__ */ __name((string) => string.split(" ").map((character) => stringWidth(character)), "wordLengths"); wrapWord = /* @__PURE__ */ __name((rows, word, columns) => { const characters = [...word]; let isInsideEscape = false; let isInsideLinkEscape = false; let visible = stringWidth(stripAnsi2(rows[rows.length - 1])); for (const [index, character] of characters.entries()) { const characterLength = stringWidth(character); if (visible + characterLength <= columns) { rows[rows.length - 1] += character; } else { rows.push(character); visible = 0; } if (ESCAPES.has(character)) { isInsideEscape = true; isInsideLinkEscape = characters.slice(index + 1).join("").startsWith(ANSI_ESCAPE_LINK); } if (isInsideEscape) { if (isInsideLinkEscape) { if (character === ANSI_ESCAPE_BELL) { isInsideEscape = false; isInsideLinkEscape = false; } } else if (character === ANSI_SGR_TERMINATOR) { isInsideEscape = false; } continue; } visible += characterLength; if (visible === columns && index < characters.length - 1) { rows.push(""); visible = 0; } } if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) { rows[rows.length - 2] += rows.pop(); } }, "wrapWord"); stringVisibleTrimSpacesRight = /* @__PURE__ */ __name((string) => { const words = string.split(" "); let last = words.length; while (last > 0) { if (stringWidth(words[last - 1]) > 0) { break; } last--; } if (last === words.length) { return string; } return words.slice(0, last).join(" ") + words.slice(last).join(""); }, "stringVisibleTrimSpacesRight"); exec = /* @__PURE__ */ __name((string, columns, options = {}) => { if (options.trim !== false && string.trim() === "") { return ""; } let returnValue = ""; let escapeCode; let escapeUrl; const lengths = wordLengths(string); let rows = [""]; for (const [index, word] of string.split(" ").entries()) { if (options.trim !== false) { rows[rows.length - 1] = rows[rows.length - 1].trimStart(); } let rowLength = stringWidth(rows[rows.length - 1]); if (index !== 0) { if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) { rows.push(""); rowLength = 0; } if (rowLength > 0 || options.trim === false) { rows[rows.length - 1] += " "; rowLength++; } } if (options.hard && lengths[index] > columns) { const remainingColumns = columns - rowLength; const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns); const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns); if (breaksStartingNextLine < breaksStartingThisLine) { rows.push(""); } wrapWord(rows, word, columns); continue; } if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) { if (options.wordWrap === false && rowLength < columns) { wrapWord(rows, word, columns); continue; } rows.push(""); } if (rowLength + lengths[index] > columns && options.wordWrap === false) { wrapWord(rows, word, columns); continue; } rows[rows.length - 1] += word; } if (options.trim !== false) { rows = rows.map((row) => stringVisibleTrimSpacesRight(row)); } const pre = [...rows.join("\n")]; for (const [index, character] of pre.entries()) { returnValue += character; if (ESCAPES.has(character)) { const { groups } = new RegExp(`(?:\\${ANSI_CSI}(?\\d+)m|\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join("")) || { groups: {} }; if (groups.code !== void 0) { const code2 = Number.parseFloat(groups.code); escapeCode = code2 === END_CODE ? void 0 : code2; } else if (groups.uri !== void 0) { escapeUrl = groups.uri.length === 0 ? void 0 : groups.uri; } } const code = ansi_styles_default2.codes.get(Number(escapeCode)); if (pre[index + 1] === "\n") { if (escapeUrl) { returnValue += wrapAnsiHyperlink(""); } if (escapeCode && code) { returnValue += wrapAnsiCode(code); } } else if (character === "\n") { if (escapeCode && code) { returnValue += wrapAnsiCode(escapeCode); } if (escapeUrl) { returnValue += wrapAnsiHyperlink(escapeUrl); } } } return returnValue; }, "exec"); __name(wrapAnsi, "wrapAnsi"); } }); // ../../node_modules/.pnpm/is-fullwidth-code-point@4.0.0/node_modules/is-fullwidth-code-point/index.js function isFullwidthCodePoint(codePoint) { if (!Number.isInteger(codePoint)) { return false; } return codePoint >= 4352 && (codePoint <= 4447 || // Hangul Jamo codePoint === 9001 || // LEFT-POINTING ANGLE BRACKET codePoint === 9002 || // RIGHT-POINTING ANGLE BRACKET // CJK Radicals Supplement .. Enclosed CJK Letters and Months 11904 <= codePoint && codePoint <= 12871 && codePoint !== 12351 || // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A 12880 <= codePoint && codePoint <= 19903 || // CJK Unified Ideographs .. Yi Radicals 19968 <= codePoint && codePoint <= 42182 || // Hangul Jamo Extended-A 43360 <= codePoint && codePoint <= 43388 || // Hangul Syllables 44032 <= codePoint && codePoint <= 55203 || // CJK Compatibility Ideographs 63744 <= codePoint && codePoint <= 64255 || // Vertical Forms 65040 <= codePoint && codePoint <= 65049 || // CJK Compatibility Forms .. Small Form Variants 65072 <= codePoint && codePoint <= 65131 || // Halfwidth and Fullwidth Forms 65281 <= codePoint && codePoint <= 65376 || 65504 <= codePoint && codePoint <= 65510 || // Kana Supplement 110592 <= codePoint && codePoint <= 110593 || // Enclosed Ideographic Supplement 127488 <= codePoint && codePoint <= 127569 || // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane 131072 <= codePoint && codePoint <= 262141); } var init_is_fullwidth_code_point = __esm({ "../../node_modules/.pnpm/is-fullwidth-code-point@4.0.0/node_modules/is-fullwidth-code-point/index.js"() { init_import_meta_url(); __name(isFullwidthCodePoint, "isFullwidthCodePoint"); } }); // ../../node_modules/.pnpm/slice-ansi@5.0.0/node_modules/slice-ansi/index.js function sliceAnsi(string, begin, end) { const characters = [...string]; const ansiCodes = []; let stringEnd = typeof end === "number" ? end : characters.length; let isInsideEscape = false; let ansiCode; let visible = 0; let output = ""; for (const [index, character] of characters.entries()) { let leftEscape = false; if (ESCAPES2.includes(character)) { const code = /\d[^m]*/.exec(string.slice(index, index + 18)); ansiCode = code && code.length > 0 ? code[0] : void 0; if (visible < stringEnd) { isInsideEscape = true; if (ansiCode !== void 0) { ansiCodes.push(ansiCode); } } } else if (isInsideEscape && character === "m") { isInsideEscape = false; leftEscape = true; } if (!isInsideEscape && !leftEscape) { visible++; } if (!astralRegex.test(character) && isFullwidthCodePoint(character.codePointAt())) { visible++; if (typeof end !== "number") { stringEnd++; } } if (visible > begin && visible <= stringEnd) { output += character; } else if (visible === begin && !isInsideEscape && ansiCode !== void 0) { output = checkAnsi(ansiCodes); } else if (visible >= stringEnd) { output += checkAnsi(ansiCodes, true, ansiCode); break; } } return output; } var astralRegex, ESCAPES2, wrapAnsi2, checkAnsi; var init_slice_ansi = __esm({ "../../node_modules/.pnpm/slice-ansi@5.0.0/node_modules/slice-ansi/index.js"() { init_import_meta_url(); init_is_fullwidth_code_point(); init_ansi_styles2(); astralRegex = /^[\uD800-\uDBFF][\uDC00-\uDFFF]$/; ESCAPES2 = [ "\x1B", "\x9B" ]; wrapAnsi2 = /* @__PURE__ */ __name((code) => `${ESCAPES2[0]}[${code}m`, "wrapAnsi"); checkAnsi = /* @__PURE__ */ __name((ansiCodes, isEscapes, endAnsiCode) => { let output = []; ansiCodes = [...ansiCodes]; for (let ansiCode of ansiCodes) { const ansiCodeOrigin = ansiCode; if (ansiCode.includes(";")) { ansiCode = ansiCode.split(";")[0][0] + "0"; } const item = ansi_styles_default2.codes.get(Number.parseInt(ansiCode, 10)); if (item) { const indexEscape = ansiCodes.indexOf(item.toString()); if (indexEscape === -1) { output.push(wrapAnsi2(isEscapes ? item : ansiCodeOrigin)); } else { ansiCodes.splice(indexEscape, 1); } } else if (isEscapes) { output.push(wrapAnsi2(0)); break; } else { output.push(wrapAnsi2(ansiCodeOrigin)); } } if (isEscapes) { output = output.filter((element, index) => output.indexOf(element) === index); if (endAnsiCode !== void 0) { const fistEscapeCode = wrapAnsi2(ansi_styles_default2.codes.get(Number.parseInt(endAnsiCode, 10))); output = output.reduce((current, next) => next === fistEscapeCode ? [next, ...current] : [...current, next], []); } } return output.join(""); }, "checkAnsi"); __name(sliceAnsi, "sliceAnsi"); } }); function createLogUpdate(stream2, { showCursor: showCursor2 = false } = {}) { let previousLineCount = 0; let previousWidth = getWidth(stream2); let previousOutput = ""; const render2 = /* @__PURE__ */ __name((...arguments_) => { if (!showCursor2) { cli_cursor_default.hide(); } let output = arguments_.join(" ") + "\n"; output = fitToTerminalHeight(stream2, output); const width = getWidth(stream2); if (output === previousOutput && previousWidth === width) { return; } previousOutput = output; previousWidth = width; output = wrapAnsi(output, width, { trim: false, hard: true, wordWrap: false }); stream2.write(ansi_escapes_default.eraseLines(previousLineCount) + output); previousLineCount = output.split("\n").length; }, "render"); render2.clear = () => { stream2.write(ansi_escapes_default.eraseLines(previousLineCount)); previousOutput = ""; previousWidth = getWidth(stream2); previousLineCount = 0; }; render2.done = () => { previousOutput = ""; previousWidth = getWidth(stream2); previousLineCount = 0; if (!showCursor2) { cli_cursor_default.show(); } }; return render2; } var defaultTerminalHeight, getWidth, fitToTerminalHeight; var init_log_update = __esm({ "../../node_modules/.pnpm/log-update@5.0.1/node_modules/log-update/index.js"() { init_import_meta_url(); init_ansi_escapes(); init_cli_cursor(); init_wrap_ansi(); init_slice_ansi(); init_strip_ansi(); defaultTerminalHeight = 24; getWidth = /* @__PURE__ */ __name((stream2) => { const { columns } = stream2; if (!columns) { return 80; } return columns; }, "getWidth"); fitToTerminalHeight = /* @__PURE__ */ __name((stream2, text) => { const terminalHeight = stream2.rows || defaultTerminalHeight; const lines = text.split("\n"); const toRemove = lines.length - terminalHeight; if (toRemove <= 0) { return text; } return sliceAnsi( text, stripAnsi2(lines.slice(0, toRemove).join("\n")).length + 1 ); }, "fitToTerminalHeight"); __name(createLogUpdate, "createLogUpdate"); createLogUpdate(process7__default.default.stdout); createLogUpdate(process7__default.default.stderr); } }); // ../cli/error.ts var CancelError2; var init_error2 = __esm({ "../cli/error.ts"() { init_import_meta_url(); CancelError2 = class extends Error { constructor(message, signal) { super(message); this.signal = signal; } static { __name(this, "CancelError"); } }; } }); // ../cli/select-list.ts var SelectRefreshablePrompt; var init_select_list = __esm({ "../cli/select-list.ts"() { init_import_meta_url(); init_dist3(); SelectRefreshablePrompt = class extends h { static { __name(this, "SelectRefreshablePrompt"); } options; cursor = 0; get _value() { return this.options[this.cursor]; } changeValue() { this.value = this._value.value; } constructor(opts) { super(opts, false); this.options = opts.options; this.cursor = this.options.findIndex( ({ value }) => value === opts.initialValue ); if (this.cursor === -1) { this.cursor = 0; } this.changeValue(); this.on("key", (c8) => { if (c8 !== "r") { return; } void opts.onRefresh().then((newOptions) => { this.options = [...newOptions]; this.cursor = 0; this.changeValue(); const that = this; if ("render" in that && typeof that.render === "function") { that.render(); } }).catch(() => { }); }); this.on("cursor", (key) => { switch (key) { case "left": case "up": this.cursor = this.cursor === 0 ? this.options.length - 1 : this.cursor - 1; break; case "down": case "right": this.cursor = this.cursor === this.options.length - 1 ? 0 : this.cursor + 1; break; } this.changeValue(); }); } }; } }); // ../cli/streams.ts var stdout, stderr; var init_streams = __esm({ "../cli/streams.ts"() { init_import_meta_url(); stdout = process.stdout; stderr = process.stderr; } }); function checkMacOSVersion(options) { if (process.platform !== "darwin") { return; } if (import_ci_info.default.isCI) { return; } const release3 = os10__namespace.default.release(); const macOSVersion = darwinVersionToMacOSVersion(release3); if (macOSVersion && isVersionLessThan(macOSVersion, MINIMUM_MACOS_VERSION)) { if (options.shouldThrow) { throw new UserError( `Unsupported macOS version: The Cloudflare Workers runtime cannot run on the current version of macOS (${macOSVersion}). The minimum requirement is macOS ${MINIMUM_MACOS_VERSION}+. See https://github.com/cloudflare/workerd?tab=readme-ov-file#running-workerd If you cannot upgrade your version of macOS, you could try running in a DevContainer setup with a supported version of Linux (glibc 2.35+ required).` ); } else { console.warn( `\u26A0\uFE0F Warning: Unsupported macOS version detected (${macOSVersion}). The Cloudflare Workers runtime may not work correctly on macOS versions below ${MINIMUM_MACOS_VERSION}. Consider upgrading to macOS ${MINIMUM_MACOS_VERSION}+ or using a DevContainer setup with a supported version of Linux (glibc 2.35+ required).` ); } } } function darwinVersionToMacOSVersion(darwinVersion) { const match3 = darwinVersion.match(/^(\d+)\.(\d+)\.(\d+)/); if (!match3) { return null; } const major = parseInt(match3[1], 10); if (major >= 20) { const macOSMajor = major - 9; const minor = parseInt(match3[2], 10); const patch = parseInt(match3[3], 10); return `${macOSMajor}.${minor}.${patch}`; } return null; } function isVersionLessThan(version1, version22) { const versionRegex = /^(\d+)\.(\d+)\.(\d+)$/; const match1 = version1.match(versionRegex); const match22 = version22.match(versionRegex); if (!match1 || !match22) { throw new Error( `Invalid version format. Expected M.m.p format, got: ${version1}, ${version22}` ); } const [major1, minor1, patch1] = [ parseInt(match1[1], 10), parseInt(match1[2], 10), parseInt(match1[3], 10) ]; const [major2, minor2, patch2] = [ parseInt(match22[1], 10), parseInt(match22[2], 10), parseInt(match22[3], 10) ]; if (major1 !== major2) { return major1 < major2; } if (minor1 !== minor2) { return minor1 < minor2; } return patch1 < patch2; } var import_ci_info, MINIMUM_MACOS_VERSION; var init_check_macos_version = __esm({ "../cli/check-macos-version.ts"() { init_import_meta_url(); init_dist(); import_ci_info = __toESM(require_ci_info()); MINIMUM_MACOS_VERSION = "13.5.0"; __name(checkMacOSVersion, "checkMacOSVersion"); __name(darwinVersionToMacOSVersion, "darwinVersionToMacOSVersion"); __name(isVersionLessThan, "isVersionLessThan"); } }); function showCursor(show, stream2 = process7__default.default.stderr) { if (!stream2.isTTY) { return; } if (show) { stream2.write("\x1B[?25h"); } else { stream2.write("\x1B[?25l"); } } var init_cursor = __esm({ "../cli/cursor.ts"() { init_import_meta_url(); __name(showCursor, "showCursor"); } }); function setLogLevel(level) { currentLogLevel = level; } function getLogLevel() { return currentLogLevel; } var shapes, status, space, LOGGER_LEVELS2, currentLogLevel, logRaw, log, newline, format6, updateStatus, startSection, endSection, cancel, warn, success, stripAnsi3, linkRegex, crash, error; var init_cli = __esm({ "../cli/index.ts"() { init_import_meta_url(); init_colors(); init_streams(); init_check_macos_version(); init_cursor(); shapes = { diamond: "\u25C7", dash: "\u2500", radioInactive: "\u25CB", radioActive: "\u25CF", backActive: "\u25C0", backInactive: "\u25C1", bar: "\u2502", leftT: "\u251C", rigthT: "\u2524", arrows: { left: "\u2039", right: "\u203A" }, corners: { tl: "\u256D", bl: "\u2570", tr: "\u256E", br: "\u256F" } }; status = { error: bgRed(` ERROR `), warning: bgYellow(` WARNING `), info: bgBlue(` INFO `), success: bgGreen(` SUCCESS `), cancel: white.bgRed(` X `) }; space = /* @__PURE__ */ __name((n8 = 1) => { return hidden("\u200A".repeat(n8)); }, "space"); LOGGER_LEVELS2 = { none: -1, error: 0, warn: 1, info: 2, log: 3, debug: 4 }; currentLogLevel = "log"; __name(setLogLevel, "setLogLevel"); __name(getLogLevel, "getLogLevel"); logRaw = /* @__PURE__ */ __name((msg) => { const currentLevel = getLogLevel(); if (LOGGER_LEVELS2[currentLevel] >= LOGGER_LEVELS2.log) { stdout.write(`${msg} `); } }, "logRaw"); log = /* @__PURE__ */ __name((msg) => { const lines = msg.split("\n").map((ln) => `${gray(shapes.bar)}${ln.length > 0 ? " " + white(ln) : ""}`); logRaw(lines.join("\n")); }, "log"); newline = /* @__PURE__ */ __name(() => { log(""); }, "newline"); format6 = /* @__PURE__ */ __name((msg, { linePrefix = gray(shapes.bar), firstLinePrefix = linePrefix, newlineBefore = false, newlineAfter = false, formatLine = /* @__PURE__ */ __name((line) => white(line), "formatLine"), multiline = true } = {}) => { const lines = multiline ? msg.split("\n") : [msg]; const formattedLines = lines.map( (line, i7) => (i7 === 0 ? firstLinePrefix : linePrefix) + space() + formatLine(line) ); if (newlineBefore) { formattedLines.unshift(linePrefix); } if (newlineAfter) { formattedLines.push(linePrefix); } return formattedLines.join("\n"); }, "format"); updateStatus = /* @__PURE__ */ __name((msg, printNewLine = true) => { logRaw( format6(msg, { firstLinePrefix: gray(shapes.leftT), linePrefix: gray(shapes.bar), newlineAfter: printNewLine }) ); }, "updateStatus"); startSection = /* @__PURE__ */ __name((heading, subheading, printNewLine = true) => { logRaw( `${gray(shapes.corners.tl)} ${brandColor(heading)} ${subheading ? dim(subheading) : ""}` ); if (printNewLine) { newline(); } }, "startSection"); endSection = /* @__PURE__ */ __name((heading, subheading) => { logRaw( `${gray(shapes.corners.bl)} ${brandColor(heading)} ${subheading ? dim(subheading) : ""} ` ); }, "endSection"); cancel = /* @__PURE__ */ __name((msg, { // current default is backcompat and makes sense going forward too shape = shapes.corners.bl, // current default for backcompat -- TODO: change default to true once all callees have been updated multiline = false } = {}) => { logRaw( format6(msg, { firstLinePrefix: `${gray(shape)} ${status.cancel}`, linePrefix: gray(shapes.bar), newlineBefore: true, formatLine: /* @__PURE__ */ __name((line) => dim(line), "formatLine"), // for backcompat but it's not ideal for this to be "dim" multiline }) ); }, "cancel"); warn = /* @__PURE__ */ __name((msg, { // current default for backcompat -- TODO: change default to shapes.bar once all callees have been updated shape = shapes.corners.bl, // current default for backcompat -- TODO: change default to true once all callees have been updated multiline = false, newlineBefore = true } = {}) => { logRaw( format6(msg, { firstLinePrefix: gray(shape) + space() + status.warning, linePrefix: gray(shapes.bar), formatLine: /* @__PURE__ */ __name((line) => dim(line), "formatLine"), // for backcompat but it's not ideal for this to be "dim" multiline, newlineBefore }) ); }, "warn"); success = /* @__PURE__ */ __name((msg, { // current default for backcompat -- TODO: change default to shapes.bar once all callees have been updated shape = shapes.corners.bl, // current default for backcompat -- TODO: change default to true once all callees have been updated multiline = false } = {}) => { logRaw( format6(msg, { firstLinePrefix: gray(shape) + space() + status.success, linePrefix: gray(shapes.bar), newlineBefore: true, formatLine: /* @__PURE__ */ __name((line) => dim(line), "formatLine"), // for backcompat but it's not ideal for this to be "dim" multiline }) ); }, "success"); stripAnsi3 = /* @__PURE__ */ __name((str) => { const pattern = [ "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)", "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))" ].join("|"); const regex2 = RegExp(pattern, "g"); return str.replace(linkRegex, "$2").replace(regex2, ""); }, "stripAnsi"); linkRegex = // eslint-disable-next-line no-control-regex /\u001B\]8;;(?.+)\u001B\\(?