- Updated all component headers and documentation
- Changed navbar and footer branding
- Updated homepage hero badge
- Modified page title in index.html
- Simplified footer text to 'Built with ❤️'
- Consistent V2 capitalization across all references
1405 lines
47 KiB
JavaScript
1405 lines
47 KiB
JavaScript
"use strict";
|
|
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 __export = (target, all) => {
|
|
for (var name in all)
|
|
__defProp(target, name, { get: all[name], 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 __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);
|
|
var chunk_KDPLGCY6_exports = {};
|
|
__export(chunk_KDPLGCY6_exports, {
|
|
getProxyAgent: () => getProxyAgent
|
|
});
|
|
module.exports = __toCommonJS(chunk_KDPLGCY6_exports);
|
|
var import_chunk_AH6QHEOA = require("./chunk-AH6QHEOA.js");
|
|
var import_debug = __toESM(require("@prisma/debug"));
|
|
var import_url = __toESM(require("url"));
|
|
var require_ms = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports, module2) {
|
|
"use strict";
|
|
var s = 1e3;
|
|
var m = s * 60;
|
|
var h = m * 60;
|
|
var d = h * 24;
|
|
var w = d * 7;
|
|
var y = d * 365.25;
|
|
module2.exports = function(val, options) {
|
|
options = options || {};
|
|
var type = typeof val;
|
|
if (type === "string" && val.length > 0) {
|
|
return parse(val);
|
|
} else if (type === "number" && isFinite(val)) {
|
|
return options.long ? fmtLong(val) : fmtShort(val);
|
|
}
|
|
throw new Error(
|
|
"val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
|
|
);
|
|
};
|
|
function parse(str) {
|
|
str = String(str);
|
|
if (str.length > 100) {
|
|
return;
|
|
}
|
|
var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
|
|
str
|
|
);
|
|
if (!match) {
|
|
return;
|
|
}
|
|
var n = parseFloat(match[1]);
|
|
var type = (match[2] || "ms").toLowerCase();
|
|
switch (type) {
|
|
case "years":
|
|
case "year":
|
|
case "yrs":
|
|
case "yr":
|
|
case "y":
|
|
return n * y;
|
|
case "weeks":
|
|
case "week":
|
|
case "w":
|
|
return n * w;
|
|
case "days":
|
|
case "day":
|
|
case "d":
|
|
return n * d;
|
|
case "hours":
|
|
case "hour":
|
|
case "hrs":
|
|
case "hr":
|
|
case "h":
|
|
return n * h;
|
|
case "minutes":
|
|
case "minute":
|
|
case "mins":
|
|
case "min":
|
|
case "m":
|
|
return n * m;
|
|
case "seconds":
|
|
case "second":
|
|
case "secs":
|
|
case "sec":
|
|
case "s":
|
|
return n * s;
|
|
case "milliseconds":
|
|
case "millisecond":
|
|
case "msecs":
|
|
case "msec":
|
|
case "ms":
|
|
return n;
|
|
default:
|
|
return void 0;
|
|
}
|
|
}
|
|
function fmtShort(ms) {
|
|
var msAbs = Math.abs(ms);
|
|
if (msAbs >= d) {
|
|
return Math.round(ms / d) + "d";
|
|
}
|
|
if (msAbs >= h) {
|
|
return Math.round(ms / h) + "h";
|
|
}
|
|
if (msAbs >= m) {
|
|
return Math.round(ms / m) + "m";
|
|
}
|
|
if (msAbs >= s) {
|
|
return Math.round(ms / s) + "s";
|
|
}
|
|
return ms + "ms";
|
|
}
|
|
function fmtLong(ms) {
|
|
var msAbs = Math.abs(ms);
|
|
if (msAbs >= d) {
|
|
return plural(ms, msAbs, d, "day");
|
|
}
|
|
if (msAbs >= h) {
|
|
return plural(ms, msAbs, h, "hour");
|
|
}
|
|
if (msAbs >= m) {
|
|
return plural(ms, msAbs, m, "minute");
|
|
}
|
|
if (msAbs >= s) {
|
|
return plural(ms, msAbs, s, "second");
|
|
}
|
|
return ms + " ms";
|
|
}
|
|
function plural(ms, msAbs, n, name) {
|
|
var isPlural = msAbs >= n * 1.5;
|
|
return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
|
|
}
|
|
}
|
|
});
|
|
var require_common = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/common.js"(exports, module2) {
|
|
"use strict";
|
|
function setup(env) {
|
|
createDebug.debug = createDebug;
|
|
createDebug.default = createDebug;
|
|
createDebug.coerce = coerce;
|
|
createDebug.disable = disable;
|
|
createDebug.enable = enable;
|
|
createDebug.enabled = enabled;
|
|
createDebug.humanize = require_ms();
|
|
createDebug.destroy = destroy;
|
|
Object.keys(env).forEach((key) => {
|
|
createDebug[key] = env[key];
|
|
});
|
|
createDebug.names = [];
|
|
createDebug.skips = [];
|
|
createDebug.formatters = {};
|
|
function selectColor(namespace) {
|
|
let hash = 0;
|
|
for (let i = 0; i < namespace.length; i++) {
|
|
hash = (hash << 5) - hash + namespace.charCodeAt(i);
|
|
hash |= 0;
|
|
}
|
|
return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
|
|
}
|
|
createDebug.selectColor = selectColor;
|
|
function createDebug(namespace) {
|
|
let prevTime;
|
|
let enableOverride = null;
|
|
let namespacesCache;
|
|
let enabledCache;
|
|
function debug2(...args) {
|
|
if (!debug2.enabled) {
|
|
return;
|
|
}
|
|
const self = debug2;
|
|
const curr = Number(/* @__PURE__ */ new Date());
|
|
const ms = curr - (prevTime || curr);
|
|
self.diff = ms;
|
|
self.prev = prevTime;
|
|
self.curr = curr;
|
|
prevTime = curr;
|
|
args[0] = createDebug.coerce(args[0]);
|
|
if (typeof args[0] !== "string") {
|
|
args.unshift("%O");
|
|
}
|
|
let index = 0;
|
|
args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
|
|
if (match === "%%") {
|
|
return "%";
|
|
}
|
|
index++;
|
|
const formatter = createDebug.formatters[format];
|
|
if (typeof formatter === "function") {
|
|
const val = args[index];
|
|
match = formatter.call(self, val);
|
|
args.splice(index, 1);
|
|
index--;
|
|
}
|
|
return match;
|
|
});
|
|
createDebug.formatArgs.call(self, args);
|
|
const logFn = self.log || createDebug.log;
|
|
logFn.apply(self, args);
|
|
}
|
|
debug2.namespace = namespace;
|
|
debug2.useColors = createDebug.useColors();
|
|
debug2.color = createDebug.selectColor(namespace);
|
|
debug2.extend = extend;
|
|
debug2.destroy = createDebug.destroy;
|
|
Object.defineProperty(debug2, "enabled", {
|
|
enumerable: true,
|
|
configurable: false,
|
|
get: () => {
|
|
if (enableOverride !== null) {
|
|
return enableOverride;
|
|
}
|
|
if (namespacesCache !== createDebug.namespaces) {
|
|
namespacesCache = createDebug.namespaces;
|
|
enabledCache = createDebug.enabled(namespace);
|
|
}
|
|
return enabledCache;
|
|
},
|
|
set: (v) => {
|
|
enableOverride = v;
|
|
}
|
|
});
|
|
if (typeof createDebug.init === "function") {
|
|
createDebug.init(debug2);
|
|
}
|
|
return debug2;
|
|
}
|
|
function extend(namespace, delimiter) {
|
|
const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
|
|
newDebug.log = this.log;
|
|
return newDebug;
|
|
}
|
|
function enable(namespaces) {
|
|
createDebug.save(namespaces);
|
|
createDebug.namespaces = namespaces;
|
|
createDebug.names = [];
|
|
createDebug.skips = [];
|
|
let i;
|
|
const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
|
|
const len = split.length;
|
|
for (i = 0; i < len; i++) {
|
|
if (!split[i]) {
|
|
continue;
|
|
}
|
|
namespaces = split[i].replace(/\*/g, ".*?");
|
|
if (namespaces[0] === "-") {
|
|
createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
|
|
} else {
|
|
createDebug.names.push(new RegExp("^" + namespaces + "$"));
|
|
}
|
|
}
|
|
}
|
|
function disable() {
|
|
const namespaces = [
|
|
...createDebug.names.map(toNamespace),
|
|
...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
|
|
].join(",");
|
|
createDebug.enable("");
|
|
return namespaces;
|
|
}
|
|
function enabled(name) {
|
|
if (name[name.length - 1] === "*") {
|
|
return true;
|
|
}
|
|
let i;
|
|
let len;
|
|
for (i = 0, len = createDebug.skips.length; i < len; i++) {
|
|
if (createDebug.skips[i].test(name)) {
|
|
return false;
|
|
}
|
|
}
|
|
for (i = 0, len = createDebug.names.length; i < len; i++) {
|
|
if (createDebug.names[i].test(name)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
function toNamespace(regexp) {
|
|
return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
|
|
}
|
|
function coerce(val) {
|
|
if (val instanceof Error) {
|
|
return val.stack || val.message;
|
|
}
|
|
return val;
|
|
}
|
|
function destroy() {
|
|
console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
|
|
}
|
|
createDebug.enable(createDebug.load());
|
|
return createDebug;
|
|
}
|
|
module2.exports = setup;
|
|
}
|
|
});
|
|
var require_browser = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/browser.js"(exports, module2) {
|
|
"use strict";
|
|
exports.formatArgs = formatArgs;
|
|
exports.save = save;
|
|
exports.load = load;
|
|
exports.useColors = useColors;
|
|
exports.storage = localstorage();
|
|
exports.destroy = /* @__PURE__ */ (() => {
|
|
let warned = false;
|
|
return () => {
|
|
if (!warned) {
|
|
warned = true;
|
|
console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
|
|
}
|
|
};
|
|
})();
|
|
exports.colors = [
|
|
"#0000CC",
|
|
"#0000FF",
|
|
"#0033CC",
|
|
"#0033FF",
|
|
"#0066CC",
|
|
"#0066FF",
|
|
"#0099CC",
|
|
"#0099FF",
|
|
"#00CC00",
|
|
"#00CC33",
|
|
"#00CC66",
|
|
"#00CC99",
|
|
"#00CCCC",
|
|
"#00CCFF",
|
|
"#3300CC",
|
|
"#3300FF",
|
|
"#3333CC",
|
|
"#3333FF",
|
|
"#3366CC",
|
|
"#3366FF",
|
|
"#3399CC",
|
|
"#3399FF",
|
|
"#33CC00",
|
|
"#33CC33",
|
|
"#33CC66",
|
|
"#33CC99",
|
|
"#33CCCC",
|
|
"#33CCFF",
|
|
"#6600CC",
|
|
"#6600FF",
|
|
"#6633CC",
|
|
"#6633FF",
|
|
"#66CC00",
|
|
"#66CC33",
|
|
"#9900CC",
|
|
"#9900FF",
|
|
"#9933CC",
|
|
"#9933FF",
|
|
"#99CC00",
|
|
"#99CC33",
|
|
"#CC0000",
|
|
"#CC0033",
|
|
"#CC0066",
|
|
"#CC0099",
|
|
"#CC00CC",
|
|
"#CC00FF",
|
|
"#CC3300",
|
|
"#CC3333",
|
|
"#CC3366",
|
|
"#CC3399",
|
|
"#CC33CC",
|
|
"#CC33FF",
|
|
"#CC6600",
|
|
"#CC6633",
|
|
"#CC9900",
|
|
"#CC9933",
|
|
"#CCCC00",
|
|
"#CCCC33",
|
|
"#FF0000",
|
|
"#FF0033",
|
|
"#FF0066",
|
|
"#FF0099",
|
|
"#FF00CC",
|
|
"#FF00FF",
|
|
"#FF3300",
|
|
"#FF3333",
|
|
"#FF3366",
|
|
"#FF3399",
|
|
"#FF33CC",
|
|
"#FF33FF",
|
|
"#FF6600",
|
|
"#FF6633",
|
|
"#FF9900",
|
|
"#FF9933",
|
|
"#FFCC00",
|
|
"#FFCC33"
|
|
];
|
|
function useColors() {
|
|
if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
|
|
return true;
|
|
}
|
|
if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
|
return false;
|
|
}
|
|
let m;
|
|
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
|
|
typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
|
|
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
|
typeof navigator !== "undefined" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
|
|
typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
|
|
}
|
|
function formatArgs(args) {
|
|
args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff);
|
|
if (!this.useColors) {
|
|
return;
|
|
}
|
|
const c = "color: " + this.color;
|
|
args.splice(1, 0, c, "color: inherit");
|
|
let index = 0;
|
|
let lastC = 0;
|
|
args[0].replace(/%[a-zA-Z%]/g, (match) => {
|
|
if (match === "%%") {
|
|
return;
|
|
}
|
|
index++;
|
|
if (match === "%c") {
|
|
lastC = index;
|
|
}
|
|
});
|
|
args.splice(lastC, 0, c);
|
|
}
|
|
exports.log = console.debug || console.log || (() => {
|
|
});
|
|
function save(namespaces) {
|
|
try {
|
|
if (namespaces) {
|
|
exports.storage.setItem("debug", namespaces);
|
|
} else {
|
|
exports.storage.removeItem("debug");
|
|
}
|
|
} catch (error) {
|
|
}
|
|
}
|
|
function load() {
|
|
let r;
|
|
try {
|
|
r = exports.storage.getItem("debug");
|
|
} catch (error) {
|
|
}
|
|
if (!r && typeof process !== "undefined" && "env" in process) {
|
|
r = process.env.DEBUG;
|
|
}
|
|
return r;
|
|
}
|
|
function localstorage() {
|
|
try {
|
|
return localStorage;
|
|
} catch (error) {
|
|
}
|
|
}
|
|
module2.exports = require_common()(exports);
|
|
var { formatters } = module2.exports;
|
|
formatters.j = function(v) {
|
|
try {
|
|
return JSON.stringify(v);
|
|
} catch (error) {
|
|
return "[UnexpectedJSONParseError]: " + error.message;
|
|
}
|
|
};
|
|
}
|
|
});
|
|
var require_has_flag = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports, module2) {
|
|
"use strict";
|
|
module2.exports = (flag, argv = process.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);
|
|
};
|
|
}
|
|
});
|
|
var require_supports_color = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/supports-color@8.1.1/node_modules/supports-color/index.js"(exports, module2) {
|
|
"use strict";
|
|
var os = (0, import_chunk_AH6QHEOA.__require)("os");
|
|
var tty = (0, import_chunk_AH6QHEOA.__require)("tty");
|
|
var hasFlag = require_has_flag();
|
|
var { env } = process;
|
|
var flagForceColor;
|
|
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;
|
|
}
|
|
function envForceColor() {
|
|
if ("FORCE_COLOR" in env) {
|
|
if (env.FORCE_COLOR === "true") {
|
|
return 1;
|
|
}
|
|
if (env.FORCE_COLOR === "false") {
|
|
return 0;
|
|
}
|
|
return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.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 (haveStream && !streamIsTTY && forceColor === void 0) {
|
|
return 0;
|
|
}
|
|
const min = forceColor || 0;
|
|
if (env.TERM === "dumb") {
|
|
return min;
|
|
}
|
|
if (process.platform === "win32") {
|
|
const osRelease = os.release().split(".");
|
|
if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
|
|
return Number(osRelease[2]) >= 14931 ? 3 : 2;
|
|
}
|
|
return 1;
|
|
}
|
|
if ("CI" in env) {
|
|
if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
|
|
return 1;
|
|
}
|
|
return min;
|
|
}
|
|
if ("TEAMCITY_VERSION" in env) {
|
|
return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
|
|
}
|
|
if (env.COLORTERM === "truecolor") {
|
|
return 3;
|
|
}
|
|
if ("TERM_PROGRAM" in env) {
|
|
const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
|
|
switch (env.TERM_PROGRAM) {
|
|
case "iTerm.app":
|
|
return version >= 3 ? 3 : 2;
|
|
case "Apple_Terminal":
|
|
return 2;
|
|
}
|
|
}
|
|
if (/-256(color)?$/i.test(env.TERM)) {
|
|
return 2;
|
|
}
|
|
if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
|
|
return 1;
|
|
}
|
|
if ("COLORTERM" in env) {
|
|
return 1;
|
|
}
|
|
return min;
|
|
}
|
|
function getSupportLevel(stream, options = {}) {
|
|
const level = supportsColor(stream, {
|
|
streamIsTTY: stream && stream.isTTY,
|
|
...options
|
|
});
|
|
return translateLevel(level);
|
|
}
|
|
module2.exports = {
|
|
supportsColor: getSupportLevel,
|
|
stdout: getSupportLevel({ isTTY: tty.isatty(1) }),
|
|
stderr: getSupportLevel({ isTTY: tty.isatty(2) })
|
|
};
|
|
}
|
|
});
|
|
var require_node = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/node.js"(exports, module2) {
|
|
"use strict";
|
|
var tty = (0, import_chunk_AH6QHEOA.__require)("tty");
|
|
var util = (0, import_chunk_AH6QHEOA.__require)("util");
|
|
exports.init = init;
|
|
exports.log = log;
|
|
exports.formatArgs = formatArgs;
|
|
exports.save = save;
|
|
exports.load = load;
|
|
exports.useColors = useColors;
|
|
exports.destroy = util.deprecate(
|
|
() => {
|
|
},
|
|
"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
|
|
);
|
|
exports.colors = [6, 2, 3, 4, 5, 1];
|
|
try {
|
|
const supportsColor = require_supports_color();
|
|
if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
|
|
exports.colors = [
|
|
20,
|
|
21,
|
|
26,
|
|
27,
|
|
32,
|
|
33,
|
|
38,
|
|
39,
|
|
40,
|
|
41,
|
|
42,
|
|
43,
|
|
44,
|
|
45,
|
|
56,
|
|
57,
|
|
62,
|
|
63,
|
|
68,
|
|
69,
|
|
74,
|
|
75,
|
|
76,
|
|
77,
|
|
78,
|
|
79,
|
|
80,
|
|
81,
|
|
92,
|
|
93,
|
|
98,
|
|
99,
|
|
112,
|
|
113,
|
|
128,
|
|
129,
|
|
134,
|
|
135,
|
|
148,
|
|
149,
|
|
160,
|
|
161,
|
|
162,
|
|
163,
|
|
164,
|
|
165,
|
|
166,
|
|
167,
|
|
168,
|
|
169,
|
|
170,
|
|
171,
|
|
172,
|
|
173,
|
|
178,
|
|
179,
|
|
184,
|
|
185,
|
|
196,
|
|
197,
|
|
198,
|
|
199,
|
|
200,
|
|
201,
|
|
202,
|
|
203,
|
|
204,
|
|
205,
|
|
206,
|
|
207,
|
|
208,
|
|
209,
|
|
214,
|
|
215,
|
|
220,
|
|
221
|
|
];
|
|
}
|
|
} catch (error) {
|
|
}
|
|
exports.inspectOpts = Object.keys(process.env).filter((key) => {
|
|
return /^debug_/i.test(key);
|
|
}).reduce((obj, key) => {
|
|
const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => {
|
|
return k.toUpperCase();
|
|
});
|
|
let val = process.env[key];
|
|
if (/^(yes|on|true|enabled)$/i.test(val)) {
|
|
val = true;
|
|
} else if (/^(no|off|false|disabled)$/i.test(val)) {
|
|
val = false;
|
|
} else if (val === "null") {
|
|
val = null;
|
|
} else {
|
|
val = Number(val);
|
|
}
|
|
obj[prop] = val;
|
|
return obj;
|
|
}, {});
|
|
function useColors() {
|
|
return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);
|
|
}
|
|
function formatArgs(args) {
|
|
const { namespace: name, useColors: useColors2 } = this;
|
|
if (useColors2) {
|
|
const c = this.color;
|
|
const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
|
|
const prefix = ` ${colorCode};1m${name} \x1B[0m`;
|
|
args[0] = prefix + args[0].split("\n").join("\n" + prefix);
|
|
args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "\x1B[0m");
|
|
} else {
|
|
args[0] = getDate() + name + " " + args[0];
|
|
}
|
|
}
|
|
function getDate() {
|
|
if (exports.inspectOpts.hideDate) {
|
|
return "";
|
|
}
|
|
return (/* @__PURE__ */ new Date()).toISOString() + " ";
|
|
}
|
|
function log(...args) {
|
|
return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + "\n");
|
|
}
|
|
function save(namespaces) {
|
|
if (namespaces) {
|
|
process.env.DEBUG = namespaces;
|
|
} else {
|
|
delete process.env.DEBUG;
|
|
}
|
|
}
|
|
function load() {
|
|
return process.env.DEBUG;
|
|
}
|
|
function init(debug2) {
|
|
debug2.inspectOpts = {};
|
|
const keys = Object.keys(exports.inspectOpts);
|
|
for (let i = 0; i < keys.length; i++) {
|
|
debug2.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
|
}
|
|
}
|
|
module2.exports = require_common()(exports);
|
|
var { formatters } = module2.exports;
|
|
formatters.o = function(v) {
|
|
this.inspectOpts.colors = this.useColors;
|
|
return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
|
|
};
|
|
formatters.O = function(v) {
|
|
this.inspectOpts.colors = this.useColors;
|
|
return util.inspect(v, this.inspectOpts);
|
|
};
|
|
}
|
|
});
|
|
var require_src = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/debug@4.3.6/node_modules/debug/src/index.js"(exports, module2) {
|
|
"use strict";
|
|
if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
|
|
module2.exports = require_browser();
|
|
} else {
|
|
module2.exports = require_node();
|
|
}
|
|
}
|
|
});
|
|
var require_helpers = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/agent-base@7.1.0/node_modules/agent-base/dist/helpers.js"(exports) {
|
|
"use strict";
|
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() {
|
|
return m[k];
|
|
} };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
} : function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
o[k2] = m[k];
|
|
});
|
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
} : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = exports && exports.__importStar || function(mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) {
|
|
for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
}
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.req = exports.json = exports.toBuffer = void 0;
|
|
var http = __importStar((0, import_chunk_AH6QHEOA.__require)("http"));
|
|
var https = __importStar((0, import_chunk_AH6QHEOA.__require)("https"));
|
|
async function toBuffer(stream) {
|
|
let length = 0;
|
|
const chunks = [];
|
|
for await (const chunk of stream) {
|
|
length += chunk.length;
|
|
chunks.push(chunk);
|
|
}
|
|
return Buffer.concat(chunks, length);
|
|
}
|
|
exports.toBuffer = toBuffer;
|
|
async function json(stream) {
|
|
const buf = await toBuffer(stream);
|
|
const str = buf.toString("utf8");
|
|
try {
|
|
return JSON.parse(str);
|
|
} catch (_err) {
|
|
const err = _err;
|
|
err.message += ` (input: ${str})`;
|
|
throw err;
|
|
}
|
|
}
|
|
exports.json = json;
|
|
function req(url, opts = {}) {
|
|
const href = typeof url === "string" ? url : url.href;
|
|
const req2 = (href.startsWith("https:") ? https : http).request(url, opts);
|
|
const promise = new Promise((resolve, reject) => {
|
|
req2.once("response", resolve).once("error", reject).end();
|
|
});
|
|
req2.then = promise.then.bind(promise);
|
|
return req2;
|
|
}
|
|
exports.req = req;
|
|
}
|
|
});
|
|
var require_dist = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/agent-base@7.1.0/node_modules/agent-base/dist/index.js"(exports) {
|
|
"use strict";
|
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() {
|
|
return m[k];
|
|
} };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
} : function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
o[k2] = m[k];
|
|
});
|
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
} : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = exports && exports.__importStar || function(mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) {
|
|
for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
}
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
var __exportStar = exports && exports.__exportStar || function(m, exports2) {
|
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) __createBinding(exports2, m, p);
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.Agent = void 0;
|
|
var http = __importStar((0, import_chunk_AH6QHEOA.__require)("http"));
|
|
__exportStar(require_helpers(), exports);
|
|
var INTERNAL = Symbol("AgentBaseInternalState");
|
|
var Agent = class extends http.Agent {
|
|
constructor(opts) {
|
|
super(opts);
|
|
this[INTERNAL] = {};
|
|
}
|
|
/**
|
|
* Determine whether this is an `http` or `https` request.
|
|
*/
|
|
isSecureEndpoint(options) {
|
|
if (options) {
|
|
if (typeof options.secureEndpoint === "boolean") {
|
|
return options.secureEndpoint;
|
|
}
|
|
if (typeof options.protocol === "string") {
|
|
return options.protocol === "https:";
|
|
}
|
|
}
|
|
const { stack } = new Error();
|
|
if (typeof stack !== "string")
|
|
return false;
|
|
return stack.split("\n").some((l) => l.indexOf("(https.js:") !== -1 || l.indexOf("node:https:") !== -1);
|
|
}
|
|
createSocket(req, options, cb) {
|
|
const connectOpts = {
|
|
...options,
|
|
secureEndpoint: this.isSecureEndpoint(options)
|
|
};
|
|
Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => {
|
|
if (socket instanceof http.Agent) {
|
|
return socket.addRequest(req, connectOpts);
|
|
}
|
|
this[INTERNAL].currentSocket = socket;
|
|
super.createSocket(req, options, cb);
|
|
}, cb);
|
|
}
|
|
createConnection() {
|
|
const socket = this[INTERNAL].currentSocket;
|
|
this[INTERNAL].currentSocket = void 0;
|
|
if (!socket) {
|
|
throw new Error("No socket was returned in the `connect()` function");
|
|
}
|
|
return socket;
|
|
}
|
|
get defaultPort() {
|
|
return this[INTERNAL].defaultPort ?? (this.protocol === "https:" ? 443 : 80);
|
|
}
|
|
set defaultPort(v) {
|
|
if (this[INTERNAL]) {
|
|
this[INTERNAL].defaultPort = v;
|
|
}
|
|
}
|
|
get protocol() {
|
|
return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:");
|
|
}
|
|
set protocol(v) {
|
|
if (this[INTERNAL]) {
|
|
this[INTERNAL].protocol = v;
|
|
}
|
|
}
|
|
};
|
|
exports.Agent = Agent;
|
|
}
|
|
});
|
|
var require_dist2 = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/http-proxy-agent@7.0.2/node_modules/http-proxy-agent/dist/index.js"(exports) {
|
|
"use strict";
|
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() {
|
|
return m[k];
|
|
} };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
} : function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
o[k2] = m[k];
|
|
});
|
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
} : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = exports && exports.__importStar || function(mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) {
|
|
for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
}
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.HttpProxyAgent = void 0;
|
|
var net = __importStar((0, import_chunk_AH6QHEOA.__require)("net"));
|
|
var tls = __importStar((0, import_chunk_AH6QHEOA.__require)("tls"));
|
|
var debug_1 = __importDefault(require_src());
|
|
var events_1 = (0, import_chunk_AH6QHEOA.__require)("events");
|
|
var agent_base_1 = require_dist();
|
|
var url_1 = (0, import_chunk_AH6QHEOA.__require)("url");
|
|
var debug2 = (0, debug_1.default)("http-proxy-agent");
|
|
var HttpProxyAgent2 = class extends agent_base_1.Agent {
|
|
constructor(proxy, opts) {
|
|
super(opts);
|
|
this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy;
|
|
this.proxyHeaders = opts?.headers ?? {};
|
|
debug2("Creating new HttpProxyAgent instance: %o", this.proxy.href);
|
|
const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, "");
|
|
const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80;
|
|
this.connectOpts = {
|
|
...opts ? omit(opts, "headers") : null,
|
|
host,
|
|
port
|
|
};
|
|
}
|
|
addRequest(req, opts) {
|
|
req._header = null;
|
|
this.setRequestProps(req, opts);
|
|
super.addRequest(req, opts);
|
|
}
|
|
setRequestProps(req, opts) {
|
|
const { proxy } = this;
|
|
const protocol = opts.secureEndpoint ? "https:" : "http:";
|
|
const hostname = req.getHeader("host") || "localhost";
|
|
const base = `${protocol}//${hostname}`;
|
|
const url = new url_1.URL(req.path, base);
|
|
if (opts.port !== 80) {
|
|
url.port = String(opts.port);
|
|
}
|
|
req.path = String(url);
|
|
const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders };
|
|
if (proxy.username || proxy.password) {
|
|
const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;
|
|
headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`;
|
|
}
|
|
if (!headers["Proxy-Connection"]) {
|
|
headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close";
|
|
}
|
|
for (const name of Object.keys(headers)) {
|
|
const value = headers[name];
|
|
if (value) {
|
|
req.setHeader(name, value);
|
|
}
|
|
}
|
|
}
|
|
async connect(req, opts) {
|
|
req._header = null;
|
|
if (!req.path.includes("://")) {
|
|
this.setRequestProps(req, opts);
|
|
}
|
|
let first;
|
|
let endOfHeaders;
|
|
debug2("Regenerating stored HTTP header string for request");
|
|
req._implicitHeader();
|
|
if (req.outputData && req.outputData.length > 0) {
|
|
debug2("Patching connection write() output buffer with updated header");
|
|
first = req.outputData[0].data;
|
|
endOfHeaders = first.indexOf("\r\n\r\n") + 4;
|
|
req.outputData[0].data = req._header + first.substring(endOfHeaders);
|
|
debug2("Output buffer: %o", req.outputData[0].data);
|
|
}
|
|
let socket;
|
|
if (this.proxy.protocol === "https:") {
|
|
debug2("Creating `tls.Socket`: %o", this.connectOpts);
|
|
socket = tls.connect(this.connectOpts);
|
|
} else {
|
|
debug2("Creating `net.Socket`: %o", this.connectOpts);
|
|
socket = net.connect(this.connectOpts);
|
|
}
|
|
await (0, events_1.once)(socket, "connect");
|
|
return socket;
|
|
}
|
|
};
|
|
HttpProxyAgent2.protocols = ["http", "https"];
|
|
exports.HttpProxyAgent = HttpProxyAgent2;
|
|
function omit(obj, ...keys) {
|
|
const ret = {};
|
|
let key;
|
|
for (key in obj) {
|
|
if (!keys.includes(key)) {
|
|
ret[key] = obj[key];
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
}
|
|
});
|
|
var require_parse_proxy_response = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/https-proxy-agent@7.0.5/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports) {
|
|
"use strict";
|
|
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.parseProxyResponse = void 0;
|
|
var debug_1 = __importDefault(require_src());
|
|
var debug2 = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
|
|
function parseProxyResponse(socket) {
|
|
return new Promise((resolve, reject) => {
|
|
let buffersLength = 0;
|
|
const buffers = [];
|
|
function read() {
|
|
const b = socket.read();
|
|
if (b)
|
|
ondata(b);
|
|
else
|
|
socket.once("readable", read);
|
|
}
|
|
function cleanup() {
|
|
socket.removeListener("end", onend);
|
|
socket.removeListener("error", onerror);
|
|
socket.removeListener("readable", read);
|
|
}
|
|
function onend() {
|
|
cleanup();
|
|
debug2("onend");
|
|
reject(new Error("Proxy connection ended before receiving CONNECT response"));
|
|
}
|
|
function onerror(err) {
|
|
cleanup();
|
|
debug2("onerror %o", err);
|
|
reject(err);
|
|
}
|
|
function ondata(b) {
|
|
buffers.push(b);
|
|
buffersLength += b.length;
|
|
const buffered = Buffer.concat(buffers, buffersLength);
|
|
const endOfHeaders = buffered.indexOf("\r\n\r\n");
|
|
if (endOfHeaders === -1) {
|
|
debug2("have not received end of HTTP headers yet...");
|
|
read();
|
|
return;
|
|
}
|
|
const headerParts = buffered.slice(0, endOfHeaders).toString("ascii").split("\r\n");
|
|
const firstLine = headerParts.shift();
|
|
if (!firstLine) {
|
|
socket.destroy();
|
|
return reject(new Error("No header received from proxy CONNECT response"));
|
|
}
|
|
const firstLineParts = firstLine.split(" ");
|
|
const statusCode = +firstLineParts[1];
|
|
const statusText = firstLineParts.slice(2).join(" ");
|
|
const headers = {};
|
|
for (const header of headerParts) {
|
|
if (!header)
|
|
continue;
|
|
const firstColon = header.indexOf(":");
|
|
if (firstColon === -1) {
|
|
socket.destroy();
|
|
return reject(new Error(`Invalid header from proxy CONNECT response: "${header}"`));
|
|
}
|
|
const key = header.slice(0, firstColon).toLowerCase();
|
|
const value = header.slice(firstColon + 1).trimStart();
|
|
const current = headers[key];
|
|
if (typeof current === "string") {
|
|
headers[key] = [current, value];
|
|
} else if (Array.isArray(current)) {
|
|
current.push(value);
|
|
} else {
|
|
headers[key] = value;
|
|
}
|
|
}
|
|
debug2("got proxy server response: %o %o", firstLine, headers);
|
|
cleanup();
|
|
resolve({
|
|
connect: {
|
|
statusCode,
|
|
statusText,
|
|
headers
|
|
},
|
|
buffered
|
|
});
|
|
}
|
|
socket.on("error", onerror);
|
|
socket.on("end", onend);
|
|
read();
|
|
});
|
|
}
|
|
exports.parseProxyResponse = parseProxyResponse;
|
|
}
|
|
});
|
|
var require_dist3 = (0, import_chunk_AH6QHEOA.__commonJS)({
|
|
"../../node_modules/.pnpm/https-proxy-agent@7.0.5/node_modules/https-proxy-agent/dist/index.js"(exports) {
|
|
"use strict";
|
|
var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
desc = { enumerable: true, get: function() {
|
|
return m[k];
|
|
} };
|
|
}
|
|
Object.defineProperty(o, k2, desc);
|
|
} : function(o, m, k, k2) {
|
|
if (k2 === void 0) k2 = k;
|
|
o[k2] = m[k];
|
|
});
|
|
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
|
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
} : function(o, v) {
|
|
o["default"] = v;
|
|
});
|
|
var __importStar = exports && exports.__importStar || function(mod) {
|
|
if (mod && mod.__esModule) return mod;
|
|
var result = {};
|
|
if (mod != null) {
|
|
for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
}
|
|
__setModuleDefault(result, mod);
|
|
return result;
|
|
};
|
|
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
return mod && mod.__esModule ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.HttpsProxyAgent = void 0;
|
|
var net = __importStar((0, import_chunk_AH6QHEOA.__require)("net"));
|
|
var tls = __importStar((0, import_chunk_AH6QHEOA.__require)("tls"));
|
|
var assert_1 = __importDefault((0, import_chunk_AH6QHEOA.__require)("assert"));
|
|
var debug_1 = __importDefault(require_src());
|
|
var agent_base_1 = require_dist();
|
|
var url_1 = (0, import_chunk_AH6QHEOA.__require)("url");
|
|
var parse_proxy_response_1 = require_parse_proxy_response();
|
|
var debug2 = (0, debug_1.default)("https-proxy-agent");
|
|
var HttpsProxyAgent2 = class extends agent_base_1.Agent {
|
|
constructor(proxy, opts) {
|
|
super(opts);
|
|
this.options = { path: void 0 };
|
|
this.proxy = typeof proxy === "string" ? new url_1.URL(proxy) : proxy;
|
|
this.proxyHeaders = opts?.headers ?? {};
|
|
debug2("Creating new HttpsProxyAgent instance: %o", this.proxy.href);
|
|
const host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, "");
|
|
const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80;
|
|
this.connectOpts = {
|
|
// Attempt to negotiate http/1.1 for proxy servers that support http/2
|
|
ALPNProtocols: ["http/1.1"],
|
|
...opts ? omit(opts, "headers") : null,
|
|
host,
|
|
port
|
|
};
|
|
}
|
|
/**
|
|
* Called when the node-core HTTP client library is creating a
|
|
* new HTTP request.
|
|
*/
|
|
async connect(req, opts) {
|
|
const { proxy } = this;
|
|
if (!opts.host) {
|
|
throw new TypeError('No "host" provided');
|
|
}
|
|
let socket;
|
|
if (proxy.protocol === "https:") {
|
|
debug2("Creating `tls.Socket`: %o", this.connectOpts);
|
|
const servername = this.connectOpts.servername || this.connectOpts.host;
|
|
socket = tls.connect({
|
|
...this.connectOpts,
|
|
servername
|
|
});
|
|
} else {
|
|
debug2("Creating `net.Socket`: %o", this.connectOpts);
|
|
socket = net.connect(this.connectOpts);
|
|
}
|
|
const headers = typeof this.proxyHeaders === "function" ? this.proxyHeaders() : { ...this.proxyHeaders };
|
|
const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host;
|
|
let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\r
|
|
`;
|
|
if (proxy.username || proxy.password) {
|
|
const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;
|
|
headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`;
|
|
}
|
|
headers.Host = `${host}:${opts.port}`;
|
|
if (!headers["Proxy-Connection"]) {
|
|
headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close";
|
|
}
|
|
for (const name of Object.keys(headers)) {
|
|
payload += `${name}: ${headers[name]}\r
|
|
`;
|
|
}
|
|
const proxyResponsePromise = (0, parse_proxy_response_1.parseProxyResponse)(socket);
|
|
socket.write(`${payload}\r
|
|
`);
|
|
const { connect, buffered } = await proxyResponsePromise;
|
|
req.emit("proxyConnect", connect);
|
|
this.emit("proxyConnect", connect, req);
|
|
if (connect.statusCode === 200) {
|
|
req.once("socket", resume);
|
|
if (opts.secureEndpoint) {
|
|
debug2("Upgrading socket connection to TLS");
|
|
const servername = opts.servername || opts.host;
|
|
return tls.connect({
|
|
...omit(opts, "host", "path", "port"),
|
|
socket,
|
|
servername
|
|
});
|
|
}
|
|
return socket;
|
|
}
|
|
socket.destroy();
|
|
const fakeSocket = new net.Socket({ writable: false });
|
|
fakeSocket.readable = true;
|
|
req.once("socket", (s) => {
|
|
debug2("Replaying proxy buffer for failed request");
|
|
(0, assert_1.default)(s.listenerCount("data") > 0);
|
|
s.push(buffered);
|
|
s.push(null);
|
|
});
|
|
return fakeSocket;
|
|
}
|
|
};
|
|
HttpsProxyAgent2.protocols = ["http", "https"];
|
|
exports.HttpsProxyAgent = HttpsProxyAgent2;
|
|
function resume(socket) {
|
|
socket.resume();
|
|
}
|
|
function omit(obj, ...keys) {
|
|
const ret = {};
|
|
let key;
|
|
for (key in obj) {
|
|
if (!keys.includes(key)) {
|
|
ret[key] = obj[key];
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
}
|
|
});
|
|
var import_http_proxy_agent = (0, import_chunk_AH6QHEOA.__toESM)(require_dist2());
|
|
var import_https_proxy_agent = (0, import_chunk_AH6QHEOA.__toESM)(require_dist3());
|
|
var debug = (0, import_debug.default)("prisma:fetch-engine:getProxyAgent");
|
|
function formatHostname(hostname) {
|
|
return hostname.replace(/^\.*/, ".").toLowerCase();
|
|
}
|
|
function parseNoProxyZone(zone) {
|
|
zone = zone.trim().toLowerCase();
|
|
const zoneParts = zone.split(":", 2);
|
|
const zoneHost = formatHostname(zoneParts[0]);
|
|
const zonePort = zoneParts[1];
|
|
const hasPort = zone.includes(":");
|
|
return { hostname: zoneHost, port: zonePort, hasPort };
|
|
}
|
|
function uriInNoProxy(uri, noProxy) {
|
|
const port = uri.port || (uri.protocol === "https:" ? "443" : "80");
|
|
const hostname = formatHostname(uri.hostname);
|
|
const noProxyList = noProxy.split(",");
|
|
return noProxyList.map(parseNoProxyZone).some(function(noProxyZone) {
|
|
const isMatchedAt = hostname.indexOf(noProxyZone.hostname);
|
|
const hostnameMatched = isMatchedAt > -1 && isMatchedAt === hostname.length - noProxyZone.hostname.length;
|
|
if (noProxyZone.hasPort) {
|
|
return port === noProxyZone.port && hostnameMatched;
|
|
}
|
|
return hostnameMatched;
|
|
});
|
|
}
|
|
function getProxyFromURI(uri) {
|
|
const noProxy = process.env.NO_PROXY || process.env.no_proxy || "";
|
|
if (noProxy) debug(`noProxy is set to "${noProxy}"`);
|
|
if (noProxy === "*") {
|
|
return null;
|
|
}
|
|
if (noProxy !== "" && uriInNoProxy(uri, noProxy)) {
|
|
return null;
|
|
}
|
|
if (uri.protocol === "http:") {
|
|
const httpProxy = process.env.HTTP_PROXY || process.env.http_proxy || null;
|
|
if (httpProxy) debug(`uri.protocol is HTTP and the URL for the proxy is "${httpProxy}"`);
|
|
return httpProxy;
|
|
}
|
|
if (uri.protocol === "https:") {
|
|
const httpsProxy = process.env.HTTPS_PROXY || process.env.https_proxy || process.env.HTTP_PROXY || process.env.http_proxy || null;
|
|
if (httpsProxy) debug(`uri.protocol is HTTPS and the URL for the proxy is "${httpsProxy}"`);
|
|
return httpsProxy;
|
|
}
|
|
return null;
|
|
}
|
|
function getProxyAgent(url) {
|
|
try {
|
|
const uri = import_url.default.parse(url);
|
|
const proxy = getProxyFromURI(uri);
|
|
if (!proxy) {
|
|
return void 0;
|
|
} else if (uri.protocol === "http:") {
|
|
try {
|
|
return new import_http_proxy_agent.HttpProxyAgent(proxy);
|
|
} catch (agentError) {
|
|
throw new Error(
|
|
`Error while instantiating HttpProxyAgent with URL: "${proxy}"
|
|
${agentError}
|
|
Check the following env vars "http_proxy" or "HTTP_PROXY". The value should be a valid URL starting with "http://"`
|
|
);
|
|
}
|
|
} else if (uri.protocol === "https:") {
|
|
try {
|
|
return new import_https_proxy_agent.HttpsProxyAgent(proxy);
|
|
} catch (agentError) {
|
|
throw new Error(
|
|
`Error while instantiating HttpsProxyAgent with URL: "${proxy}"
|
|
${agentError}
|
|
Check the following env vars "https_proxy" or "HTTPS_PROXY". The value should be a valid URL starting with "https://"`
|
|
);
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.warn(`An error occurred in getProxyAgent(), no proxy agent will be used.`, e);
|
|
}
|
|
return void 0;
|
|
}
|