@storybook/core
Version:
Storybook framework-agnostic API
1,476 lines (1,462 loc) • 862 kB
JavaScript
import ESM_COMPAT_Module from "node:module";
import { fileURLToPath as ESM_COMPAT_fileURLToPath } from 'node:url';
import { dirname as ESM_COMPAT_dirname } from 'node:path';
const __filename = ESM_COMPAT_fileURLToPath(import.meta.url);
const __dirname = ESM_COMPAT_dirname(__filename);
const require = ESM_COMPAT_Module.createRequire(import.meta.url);
var lQ = Object.create;
var Wt = Object.defineProperty;
var uQ = Object.getOwnPropertyDescriptor;
var fQ = Object.getOwnPropertyNames;
var wQ = Object.getPrototypeOf, dQ = Object.prototype.hasOwnProperty;
var g = (r, A) => Wt(r, "name", { value: A, configurable: !0 }), G = /* @__PURE__ */ ((r) => typeof require < "u" ? require : typeof Proxy <
"u" ? new Proxy(r, {
get: (A, e) => (typeof require < "u" ? require : A)[e]
}) : r)(function(r) {
if (typeof require < "u") return require.apply(this, arguments);
throw Error('Dynamic require of "' + r + '" is not supported');
});
var mn = (r, A) => () => (r && (A = r(r = 0)), A);
var j = (r, A) => () => (A || r((A = { exports: {} }).exports, A), A.exports), yn = (r, A) => {
for (var e in A)
Wt(r, e, { get: A[e], enumerable: !0 });
}, Dn = (r, A, e, t) => {
if (A && typeof A == "object" || typeof A == "function")
for (let i of fQ(A))
!dQ.call(r, i) && i !== e && Wt(r, i, { get: () => A[i], enumerable: !(t = uQ(A, i)) || t.enumerable });
return r;
};
var CA = (r, A, e) => (e = r != null ? lQ(wQ(r)) : {}, Dn(
// 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.
A || !r || !r.__esModule ? Wt(e, "default", { value: r, enumerable: !0 }) : e,
r
)), Ie = (r) => Dn(Wt({}, "__esModule", { value: !0 }), r);
// ../node_modules/ts-dedent/dist/index.js
var jA = j((Xt) => {
"use strict";
Object.defineProperty(Xt, "__esModule", { value: !0 });
Xt.dedent = void 0;
function Sn(r) {
for (var A = [], e = 1; e < arguments.length; e++)
A[e - 1] = arguments[e];
var t = Array.from(typeof r == "string" ? [r] : r);
t[t.length - 1] = t[t.length - 1].replace(/\r?\n([\t ]*)$/, "");
var i = t.reduce(function(I, E) {
var B = E.match(/\n([\t ]+|(?!\s).)/g);
return B ? I.concat(B.map(function(h) {
var u, f;
return (f = (u = h.match(/[\t ]/g)) === null || u === void 0 ? void 0 : u.length) !== null && f !== void 0 ? f : 0;
})) : I;
}, []);
if (i.length) {
var o = new RegExp(`
[ ]{` + Math.min.apply(Math, i) + "}", "g");
t = t.map(function(I) {
return I.replace(o, `
`);
});
}
t[0] = t[0].replace(/^\r?\n/, "");
var s = t[0];
return A.forEach(function(I, E) {
var B = s.match(/(?:^|\n)( *)$/), h = B ? B[1] : "", u = I;
typeof I == "string" && I.includes(`
`) && (u = String(I).split(`
`).map(function(f, p) {
return p === 0 ? f : "" + h + f;
}).join(`
`)), s += u + t[E + 1];
}), s;
}
g(Sn, "dedent");
Xt.dedent = Sn;
Xt.default = Sn;
});
// ../node_modules/balanced-match/index.js
var Yn = j((mS, Ln) => {
"use strict";
Ln.exports = Rn;
function Rn(r, A, e) {
r instanceof RegExp && (r = Mn(r, e)), A instanceof RegExp && (A = Mn(A, e));
var t = bn(r, A, e);
return t && {
start: t[0],
end: t[1],
pre: e.slice(0, t[0]),
body: e.slice(t[0] + r.length, t[1]),
post: e.slice(t[1] + A.length)
};
}
g(Rn, "balanced");
function Mn(r, A) {
var e = A.match(r);
return e ? e[0] : null;
}
g(Mn, "maybeMatch");
Rn.range = bn;
function bn(r, A, e) {
var t, i, o, s, I, E = e.indexOf(r), B = e.indexOf(A, E + 1), h = E;
if (E >= 0 && B > 0) {
if (r === A)
return [E, B];
for (t = [], o = e.length; h >= 0 && !I; )
h == E ? (t.push(h), E = e.indexOf(r, h + 1)) : t.length == 1 ? I = [t.pop(), B] : (i = t.pop(), i < o && (o = i, s = B), B = e.indexOf(
A, h + 1)), h = E < B && E >= 0 ? E : B;
t.length && (I = [o, s]);
}
return I;
}
g(bn, "range");
});
// ../node_modules/brace-expansion/index.js
var _n = j((DS, On) => {
var Un = Yn();
On.exports = SQ;
var Gn = "\0SLASH" + Math.random() + "\0", Jn = "\0OPEN" + Math.random() + "\0", Lo = "\0CLOSE" + Math.random() + "\0", vn = "\0COMMA" + Math.
random() + "\0", xn = "\0PERIOD" + Math.random() + "\0";
function bo(r) {
return parseInt(r, 10) == r ? parseInt(r, 10) : r.charCodeAt(0);
}
g(bo, "numeric");
function yQ(r) {
return r.split("\\\\").join(Gn).split("\\{").join(Jn).split("\\}").join(Lo).split("\\,").join(vn).split("\\.").join(xn);
}
g(yQ, "escapeBraces");
function DQ(r) {
return r.split(Gn).join("\\").split(Jn).join("{").split(Lo).join("}").split(vn).join(",").split(xn).join(".");
}
g(DQ, "unescapeBraces");
function Pn(r) {
if (!r)
return [""];
var A = [], e = Un("{", "}", r);
if (!e)
return r.split(",");
var t = e.pre, i = e.body, o = e.post, s = t.split(",");
s[s.length - 1] += "{" + i + "}";
var I = Pn(o);
return o.length && (s[s.length - 1] += I.shift(), s.push.apply(s, I)), A.push.apply(A, s), A;
}
g(Pn, "parseCommaParts");
function SQ(r) {
return r ? (r.substr(0, 2) === "{}" && (r = "\\{\\}" + r.substr(2)), $t(yQ(r), !0).map(DQ)) : [];
}
g(SQ, "expandTop");
function KQ(r) {
return "{" + r + "}";
}
g(KQ, "embrace");
function FQ(r) {
return /^-?0\d/.test(r);
}
g(FQ, "isPadded");
function NQ(r, A) {
return r <= A;
}
g(NQ, "lte");
function kQ(r, A) {
return r >= A;
}
g(kQ, "gte");
function $t(r, A) {
var e = [], t = Un("{", "}", r);
if (!t) return [r];
var i = t.pre, o = t.post.length ? $t(t.post, !1) : [""];
if (/\$$/.test(t.pre))
for (var s = 0; s < o.length; s++) {
var I = i + "{" + t.body + "}" + o[s];
e.push(I);
}
else {
var E = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(t.body), B = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(t.body), h = E || B, u = t.body.
indexOf(",") >= 0;
if (!h && !u)
return t.post.match(/,.*\}/) ? (r = t.pre + "{" + t.body + Lo + t.post, $t(r)) : [r];
var f;
if (h)
f = t.body.split(/\.\./);
else if (f = Pn(t.body), f.length === 1 && (f = $t(f[0], !1).map(KQ), f.length === 1))
return o.map(function(lA) {
return t.pre + f[0] + lA;
});
var p;
if (h) {
var m = bo(f[0]), D = bo(f[1]), U = Math.max(f[0].length, f[1].length), R = f.length == 3 ? Math.abs(bo(f[2])) : 1, T = NQ, M = D < m;
M && (R *= -1, T = kQ);
var x = f.some(FQ);
p = [];
for (var V = m; T(V, D); V += R) {
var gA;
if (B)
gA = String.fromCharCode(V), gA === "\\" && (gA = "");
else if (gA = String(V), x) {
var sA = U - gA.length;
if (sA > 0) {
var P = new Array(sA + 1).join("0");
V < 0 ? gA = "-" + P + gA.slice(1) : gA = P + gA;
}
}
p.push(gA);
}
} else {
p = [];
for (var Z = 0; Z < f.length; Z++)
p.push.apply(p, $t(f[Z], !1));
}
for (var Z = 0; Z < p.length; Z++)
for (var s = 0; s < o.length; s++) {
var I = i + p[Z] + o[s];
(!A || h || I) && e.push(I);
}
}
return e;
}
g($t, "expand");
});
// ../node_modules/resolve-from/index.js
var eg = j((IF, Ag) => {
"use strict";
var MC = G("path"), RC = G("module"), $h = G("fs"), bC = /* @__PURE__ */ g((r, A, e) => {
if (typeof r != "string")
throw new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof r}\``);
if (typeof A != "string")
throw new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof A}\``);
try {
r = $h.realpathSync(r);
} catch (o) {
if (o.code === "ENOENT")
r = MC.resolve(r);
else {
if (e)
return;
throw o;
}
}
let t = MC.join(r, "noop.js"), i = /* @__PURE__ */ g(() => RC._resolveFilename(A, {
id: t,
filename: t,
paths: RC._nodeModulePaths(r)
}), "resolveFileName");
if (e)
try {
return i();
} catch {
return;
}
return i();
}, "resolveFrom");
Ag.exports = (r, A) => bC(r, A);
Ag.exports.silent = (r, A) => bC(r, A, !0);
});
// ../node_modules/common-path-prefix/index.js
var WC = j((YF, zC) => {
"use strict";
var { sep: ll } = G("path"), ul = /* @__PURE__ */ g((r) => {
for (let A of r) {
let e = /(\/|\\)/.exec(A);
if (e !== null) return e[0];
}
return ll;
}, "determineSeparator");
zC.exports = /* @__PURE__ */ g(function(A, e = ul(A)) {
let [t = "", ...i] = A;
if (t === "" || i.length === 0) return "";
let o = t.split(e), s = o.length;
for (let E of i) {
let B = E.split(e);
for (let h = 0; h < s; h++)
B[h] !== o[h] && (s = h);
if (s === 0) return "";
}
let I = o.slice(0, s).join(e);
return I.endsWith(e) ? I : I + e;
}, "commonPathPrefix");
});
// ../node_modules/app-root-dir/lib/index.js
var dI = j((lg) => {
var wI = "app-root-dir", st;
lg.get = function() {
var r = global[wI];
if (r)
return r;
if (st === void 0) {
var A = G("fs"), e = G("path"), t = e.sep + "node_modules" + e.sep, i = process.cwd(), o = i.indexOf(t);
o !== -1 ? st = i.substring(0, o) : A.existsSync(e.join(i, "package.json")) ? st = i : (o = __dirname.indexOf(t), o === -1 ? st = e.normalize(
e.join(__dirname, "..")) : st = __dirname.substring(0, o));
}
return st;
};
lg.set = function(r) {
global[wI] = st = r;
};
});
// ../node_modules/dotenv/package.json
var pI = j((nk, ou) => {
ou.exports = {
name: "dotenv",
version: "16.4.7",
description: "Loads environment variables from .env file",
main: "lib/main.js",
types: "lib/main.d.ts",
exports: {
".": {
types: "./lib/main.d.ts",
require: "./lib/main.js",
default: "./lib/main.js"
},
"./config": "./config.js",
"./config.js": "./config.js",
"./lib/env-options": "./lib/env-options.js",
"./lib/env-options.js": "./lib/env-options.js",
"./lib/cli-options": "./lib/cli-options.js",
"./lib/cli-options.js": "./lib/cli-options.js",
"./package.json": "./package.json"
},
scripts: {
"dts-check": "tsc --project tests/types/tsconfig.json",
lint: "standard",
pretest: "npm run lint && npm run dts-check",
test: "tap run --allow-empty-coverage --disable-coverage --timeout=60000",
"test:coverage": "tap run --show-full-coverage --timeout=60000 --coverage-report=lcov",
prerelease: "npm test",
release: "standard-version"
},
repository: {
type: "git",
url: "git://github.com/motdotla/dotenv.git"
},
funding: "https://dotenvx.com",
keywords: [
"dotenv",
"env",
".env",
"environment",
"variables",
"config",
"settings"
],
readmeFilename: "README.md",
license: "BSD-2-Clause",
devDependencies: {
"@types/node": "^18.11.3",
decache: "^4.6.2",
sinon: "^14.0.1",
standard: "^17.0.0",
"standard-version": "^9.5.0",
tap: "^19.2.0",
typescript: "^4.8.4"
},
engines: {
node: ">=12"
},
browser: {
fs: !1
}
};
});
// ../node_modules/dotenv/lib/main.js
var SI = j((Ck, be) => {
var ug = G("fs"), fg = G("path"), gu = G("os"), su = G("crypto"), nu = pI(), wg = nu.version, Cu = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
function Iu(r) {
let A = {}, e = r.toString();
e = e.replace(/\r\n?/mg, `
`);
let t;
for (; (t = Cu.exec(e)) != null; ) {
let i = t[1], o = t[2] || "";
o = o.trim();
let s = o[0];
o = o.replace(/^(['"`])([\s\S]*)\1$/mg, "$2"), s === '"' && (o = o.replace(/\\n/g, `
`), o = o.replace(/\\r/g, "\r")), A[i] = o;
}
return A;
}
g(Iu, "parse");
function au(r) {
let A = DI(r), e = mA.configDotenv({ path: A });
if (!e.parsed) {
let s = new Error(`MISSING_DATA: Cannot parse ${A} for an unknown reason`);
throw s.code = "MISSING_DATA", s;
}
let t = yI(r).split(","), i = t.length, o;
for (let s = 0; s < i; s++)
try {
let I = t[s].trim(), E = Bu(e, I);
o = mA.decrypt(E.ciphertext, E.key);
break;
} catch (I) {
if (s + 1 >= i)
throw I;
}
return mA.parse(o);
}
g(au, "_parseVault");
function Eu(r) {
console.log(`[dotenv@${wg}][INFO] ${r}`);
}
g(Eu, "_log");
function cu(r) {
console.log(`[dotenv@${wg}][WARN] ${r}`);
}
g(cu, "_warn");
function ui(r) {
console.log(`[dotenv@${wg}][DEBUG] ${r}`);
}
g(ui, "_debug");
function yI(r) {
return r && r.DOTENV_KEY && r.DOTENV_KEY.length > 0 ? r.DOTENV_KEY : process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0 ? process.
env.DOTENV_KEY : "";
}
g(yI, "_dotenvKey");
function Bu(r, A) {
let e;
try {
e = new URL(A);
} catch (I) {
if (I.code === "ERR_INVALID_URL") {
let E = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vaul\
t?environment=development");
throw E.code = "INVALID_DOTENV_KEY", E;
}
throw I;
}
let t = e.password;
if (!t) {
let I = new Error("INVALID_DOTENV_KEY: Missing key part");
throw I.code = "INVALID_DOTENV_KEY", I;
}
let i = e.searchParams.get("environment");
if (!i) {
let I = new Error("INVALID_DOTENV_KEY: Missing environment part");
throw I.code = "INVALID_DOTENV_KEY", I;
}
let o = `DOTENV_VAULT_${i.toUpperCase()}`, s = r.parsed[o];
if (!s) {
let I = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);
throw I.code = "NOT_FOUND_DOTENV_ENVIRONMENT", I;
}
return { ciphertext: s, key: t };
}
g(Bu, "_instructions");
function DI(r) {
let A = null;
if (r && r.path && r.path.length > 0)
if (Array.isArray(r.path))
for (let e of r.path)
ug.existsSync(e) && (A = e.endsWith(".vault") ? e : `${e}.vault`);
else
A = r.path.endsWith(".vault") ? r.path : `${r.path}.vault`;
else
A = fg.resolve(process.cwd(), ".env.vault");
return ug.existsSync(A) ? A : null;
}
g(DI, "_vaultPath");
function mI(r) {
return r[0] === "~" ? fg.join(gu.homedir(), r.slice(1)) : r;
}
g(mI, "_resolveHome");
function Qu(r) {
Eu("Loading env from encrypted .env.vault");
let A = mA._parseVault(r), e = process.env;
return r && r.processEnv != null && (e = r.processEnv), mA.populate(e, A, r), { parsed: A };
}
g(Qu, "_configVault");
function hu(r) {
let A = fg.resolve(process.cwd(), ".env"), e = "utf8", t = !!(r && r.debug);
r && r.encoding ? e = r.encoding : t && ui("No encoding is specified. UTF-8 is used by default");
let i = [A];
if (r && r.path)
if (!Array.isArray(r.path))
i = [mI(r.path)];
else {
i = [];
for (let E of r.path)
i.push(mI(E));
}
let o, s = {};
for (let E of i)
try {
let B = mA.parse(ug.readFileSync(E, { encoding: e }));
mA.populate(s, B, r);
} catch (B) {
t && ui(`Failed to load ${E} ${B.message}`), o = B;
}
let I = process.env;
return r && r.processEnv != null && (I = r.processEnv), mA.populate(I, s, r), o ? { parsed: s, error: o } : { parsed: s };
}
g(hu, "configDotenv");
function lu(r) {
if (yI(r).length === 0)
return mA.configDotenv(r);
let A = DI(r);
return A ? mA._configVault(r) : (cu(`You set DOTENV_KEY but you are missing a .env.vault file at ${A}. Did you forget to build it?`), mA.
configDotenv(r));
}
g(lu, "config");
function uu(r, A) {
let e = Buffer.from(A.slice(-64), "hex"), t = Buffer.from(r, "base64"), i = t.subarray(0, 12), o = t.subarray(-16);
t = t.subarray(12, -16);
try {
let s = su.createDecipheriv("aes-256-gcm", e, i);
return s.setAuthTag(o), `${s.update(t)}${s.final()}`;
} catch (s) {
let I = s instanceof RangeError, E = s.message === "Invalid key length", B = s.message === "Unsupported state or unable to authenticat\
e data";
if (I || E) {
let h = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");
throw h.code = "INVALID_DOTENV_KEY", h;
} else if (B) {
let h = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");
throw h.code = "DECRYPTION_FAILED", h;
} else
throw s;
}
}
g(uu, "decrypt");
function fu(r, A, e = {}) {
let t = !!(e && e.debug), i = !!(e && e.override);
if (typeof A != "object") {
let o = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");
throw o.code = "OBJECT_REQUIRED", o;
}
for (let o of Object.keys(A))
Object.prototype.hasOwnProperty.call(r, o) ? (i === !0 && (r[o] = A[o]), t && ui(i === !0 ? `"${o}" is already defined and WAS overwri\
tten` : `"${o}" is already defined and was NOT overwritten`)) : r[o] = A[o];
}
g(fu, "populate");
var mA = {
configDotenv: hu,
_configVault: Qu,
_parseVault: au,
config: lu,
decrypt: uu,
parse: Iu,
populate: fu
};
be.exports.configDotenv = mA.configDotenv;
be.exports._configVault = mA._configVault;
be.exports._parseVault = mA._parseVault;
be.exports.config = mA.config;
be.exports.decrypt = mA.decrypt;
be.exports.parse = mA.parse;
be.exports.populate = mA.populate;
be.exports = mA;
});
// ../node_modules/lazy-universal-dotenv/node_modules/dotenv-expand/lib/main.js
var NI = j((ak, FI) => {
"use strict";
function wu(r, A) {
let e = Array.from(r.matchAll(A));
return e.length > 0 ? e.slice(-1)[0].index : -1;
}
g(wu, "_searchLast");
function KI(r, A, e) {
let t = wu(r, /(?!(?<=\\))\$/g);
if (t === -1) return r;
let i = r.slice(t), o = /((?!(?<=\\))\${?([\w]+)(?::-([^}\\]*))?}?)/, s = i.match(o);
if (s != null) {
let [, I, E, B] = s;
return KI(
r.replace(
I,
A[E] || B || e.parsed[E] || ""
),
A,
e
);
}
return r;
}
g(KI, "_interpolate");
function du(r) {
return r.replace(/\\\$/g, "$");
}
g(du, "_resolveEscapeSequences");
function pu(r) {
let A = r.ignoreProcessEnv ? {} : process.env;
for (let e in r.parsed) {
let t = Object.prototype.hasOwnProperty.call(A, e) ? A[e] : r.parsed[e];
r.parsed[e] = du(
KI(t, A, r)
);
}
for (let e in r.parsed)
A[e] = r.parsed[e];
return r;
}
g(pu, "expand");
FI.exports.expand = pu;
});
// ../node_modules/picomatch/lib/constants.js
var dr = j((wM, WI) => {
"use strict";
var vu = G("path"), Ke = "\\\\/", HI = `[^${Ke}]`, Le = "\\.", xu = "\\+", Pu = "\\?", wi = "\\/", Ou = "(?=.)", jI = "[^/]", dg = `(?:${wi}\
|$)`, qI = `(?:^|${wi})`, pg = `${Le}{1,2}${dg}`, _u = `(?!${Le})`, Tu = `(?!${qI}${pg})`, Hu = `(?!${Le}{0,1}${dg})`, ju = `(?!${pg})`, qu = `\
[^.${wi}]`, zu = `${jI}*?`, zI = {
DOT_LITERAL: Le,
PLUS_LITERAL: xu,
QMARK_LITERAL: Pu,
SLASH_LITERAL: wi,
ONE_CHAR: Ou,
QMARK: jI,
END_ANCHOR: dg,
DOTS_SLASH: pg,
NO_DOT: _u,
NO_DOTS: Tu,
NO_DOT_SLASH: Hu,
NO_DOTS_SLASH: ju,
QMARK_NO_DOT: qu,
STAR: zu,
START_ANCHOR: qI
}, Wu = {
...zI,
SLASH_LITERAL: `[${Ke}]`,
QMARK: HI,
STAR: `${HI}*?`,
DOTS_SLASH: `${Le}{1,2}(?:[${Ke}]|$)`,
NO_DOT: `(?!${Le})`,
NO_DOTS: `(?!(?:^|[${Ke}])${Le}{1,2}(?:[${Ke}]|$))`,
NO_DOT_SLASH: `(?!${Le}{0,1}(?:[${Ke}]|$))`,
NO_DOTS_SLASH: `(?!${Le}{1,2}(?:[${Ke}]|$))`,
QMARK_NO_DOT: `[^.${Ke}]`,
START_ANCHOR: `(?:^|[${Ke}])`,
END_ANCHOR: `(?:[${Ke}]|$)`
}, Xu = {
alnum: "a-zA-Z0-9",
alpha: "a-zA-Z",
ascii: "\\x00-\\x7F",
blank: " \\t",
cntrl: "\\x00-\\x1F\\x7F",
digit: "0-9",
graph: "\\x21-\\x7E",
lower: "a-z",
print: "\\x20-\\x7E ",
punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",
space: " \\t\\r\\n\\v\\f",
upper: "A-Z",
word: "A-Za-z0-9_",
xdigit: "A-Fa-f0-9"
};
WI.exports = {
MAX_LENGTH: 1024 * 64,
POSIX_REGEX_SOURCE: Xu,
// regular expressions
REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/,
REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/,
REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g,
REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
// Replace globs with equivalent patterns to reduce parsing time.
REPLACEMENTS: {
"***": "*",
"**/**": "**",
"**/**/**": "**"
},
// Digits
CHAR_0: 48,
/* 0 */
CHAR_9: 57,
/* 9 */
// Alphabet chars.
CHAR_UPPERCASE_A: 65,
/* A */
CHAR_LOWERCASE_A: 97,
/* a */
CHAR_UPPERCASE_Z: 90,
/* Z */
CHAR_LOWERCASE_Z: 122,
/* z */
CHAR_LEFT_PARENTHESES: 40,
/* ( */
CHAR_RIGHT_PARENTHESES: 41,
/* ) */
CHAR_ASTERISK: 42,
/* * */
// Non-alphabetic chars.
CHAR_AMPERSAND: 38,
/* & */
CHAR_AT: 64,
/* @ */
CHAR_BACKWARD_SLASH: 92,
/* \ */
CHAR_CARRIAGE_RETURN: 13,
/* \r */
CHAR_CIRCUMFLEX_ACCENT: 94,
/* ^ */
CHAR_COLON: 58,
/* : */
CHAR_COMMA: 44,
/* , */
CHAR_DOT: 46,
/* . */
CHAR_DOUBLE_QUOTE: 34,
/* " */
CHAR_EQUAL: 61,
/* = */
CHAR_EXCLAMATION_MARK: 33,
/* ! */
CHAR_FORM_FEED: 12,
/* \f */
CHAR_FORWARD_SLASH: 47,
/* / */
CHAR_GRAVE_ACCENT: 96,
/* ` */
CHAR_HASH: 35,
/* # */
CHAR_HYPHEN_MINUS: 45,
/* - */
CHAR_LEFT_ANGLE_BRACKET: 60,
/* < */
CHAR_LEFT_CURLY_BRACE: 123,
/* { */
CHAR_LEFT_SQUARE_BRACKET: 91,
/* [ */
CHAR_LINE_FEED: 10,
/* \n */
CHAR_NO_BREAK_SPACE: 160,
/* \u00A0 */
CHAR_PERCENT: 37,
/* % */
CHAR_PLUS: 43,
/* + */
CHAR_QUESTION_MARK: 63,
/* ? */
CHAR_RIGHT_ANGLE_BRACKET: 62,
/* > */
CHAR_RIGHT_CURLY_BRACE: 125,
/* } */
CHAR_RIGHT_SQUARE_BRACKET: 93,
/* ] */
CHAR_SEMICOLON: 59,
/* ; */
CHAR_SINGLE_QUOTE: 39,
/* ' */
CHAR_SPACE: 32,
/* */
CHAR_TAB: 9,
/* \t */
CHAR_UNDERSCORE: 95,
/* _ */
CHAR_VERTICAL_LINE: 124,
/* | */
CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,
/* \uFEFF */
SEP: vu.sep,
/**
* Create EXTGLOB_CHARS
*/
extglobChars(r) {
return {
"!": { type: "negate", open: "(?:(?!(?:", close: `))${r.STAR})` },
"?": { type: "qmark", open: "(?:", close: ")?" },
"+": { type: "plus", open: "(?:", close: ")+" },
"*": { type: "star", open: "(?:", close: ")*" },
"@": { type: "at", open: "(?:", close: ")" }
};
},
/**
* Create GLOB_CHARS
*/
globChars(r) {
return r === !0 ? Wu : zI;
}
};
});
// ../node_modules/picomatch/lib/utils.js
var di = j((qA) => {
"use strict";
var Vu = G("path"), Zu = process.platform === "win32", {
REGEX_BACKSLASH: $u,
REGEX_REMOVE_BACKSLASH: Af,
REGEX_SPECIAL_CHARS: ef,
REGEX_SPECIAL_CHARS_GLOBAL: tf
} = dr();
qA.isObject = (r) => r !== null && typeof r == "object" && !Array.isArray(r);
qA.hasRegexChars = (r) => ef.test(r);
qA.isRegexChar = (r) => r.length === 1 && qA.hasRegexChars(r);
qA.escapeRegex = (r) => r.replace(tf, "\\$1");
qA.toPosixSlashes = (r) => r.replace($u, "/");
qA.removeBackslashes = (r) => r.replace(Af, (A) => A === "\\" ? "" : A);
qA.supportsLookbehinds = () => {
let r = process.version.slice(1).split(".").map(Number);
return r.length === 3 && r[0] >= 9 || r[0] === 8 && r[1] >= 10;
};
qA.isWindows = (r) => r && typeof r.windows == "boolean" ? r.windows : Zu === !0 || Vu.sep === "\\";
qA.escapeLast = (r, A, e) => {
let t = r.lastIndexOf(A, e);
return t === -1 ? r : r[t - 1] === "\\" ? qA.escapeLast(r, A, t - 1) : `${r.slice(0, t)}\\${r.slice(t)}`;
};
qA.removePrefix = (r, A = {}) => {
let e = r;
return e.startsWith("./") && (e = e.slice(2), A.prefix = "./"), e;
};
qA.wrapOutput = (r, A = {}, e = {}) => {
let t = e.contains ? "" : "^", i = e.contains ? "" : "$", o = `${t}(?:${r})${i}`;
return A.negated === !0 && (o = `(?:^(?!${o}).*$)`), o;
};
});
// ../node_modules/picomatch/lib/scan.js
var ra = j((pM, ta) => {
"use strict";
var XI = di(), {
CHAR_ASTERISK: mg,
/* * */
CHAR_AT: rf,
/* @ */
CHAR_BACKWARD_SLASH: pr,
/* \ */
CHAR_COMMA: of,
/* , */
CHAR_DOT: yg,
/* . */
CHAR_EXCLAMATION_MARK: Dg,
/* ! */
CHAR_FORWARD_SLASH: ea,
/* / */
CHAR_LEFT_CURLY_BRACE: Sg,
/* { */
CHAR_LEFT_PARENTHESES: Kg,
/* ( */
CHAR_LEFT_SQUARE_BRACKET: gf,
/* [ */
CHAR_PLUS: sf,
/* + */
CHAR_QUESTION_MARK: VI,
/* ? */
CHAR_RIGHT_CURLY_BRACE: nf,
/* } */
CHAR_RIGHT_PARENTHESES: ZI,
/* ) */
CHAR_RIGHT_SQUARE_BRACKET: Cf
/* ] */
} = dr(), $I = /* @__PURE__ */ g((r) => r === ea || r === pr, "isPathSeparator"), Aa = /* @__PURE__ */ g((r) => {
r.isPrefix !== !0 && (r.depth = r.isGlobstar ? 1 / 0 : 1);
}, "depth"), If = /* @__PURE__ */ g((r, A) => {
let e = A || {}, t = r.length - 1, i = e.parts === !0 || e.scanToEnd === !0, o = [], s = [], I = [], E = r, B = -1, h = 0, u = 0, f = !1,
p = !1, m = !1, D = !1, U = !1, R = !1, T = !1, M = !1, x = !1, V = !1, gA = 0, sA, P, Z = { value: "", depth: 0, isGlob: !1 }, lA = /* @__PURE__ */ g(
() => B >= t, "eos"), F = /* @__PURE__ */ g(() => E.charCodeAt(B + 1), "peek"), BA = /* @__PURE__ */ g(() => (sA = P, E.charCodeAt(++B)),
"advance");
for (; B < t; ) {
P = BA();
let MA;
if (P === pr) {
T = Z.backslashes = !0, P = BA(), P === Sg && (R = !0);
continue;
}
if (R === !0 || P === Sg) {
for (gA++; lA() !== !0 && (P = BA()); ) {
if (P === pr) {
T = Z.backslashes = !0, BA();
continue;
}
if (P === Sg) {
gA++;
continue;
}
if (R !== !0 && P === yg && (P = BA()) === yg) {
if (f = Z.isBrace = !0, m = Z.isGlob = !0, V = !0, i === !0)
continue;
break;
}
if (R !== !0 && P === of) {
if (f = Z.isBrace = !0, m = Z.isGlob = !0, V = !0, i === !0)
continue;
break;
}
if (P === nf && (gA--, gA === 0)) {
R = !1, f = Z.isBrace = !0, V = !0;
break;
}
}
if (i === !0)
continue;
break;
}
if (P === ea) {
if (o.push(B), s.push(Z), Z = { value: "", depth: 0, isGlob: !1 }, V === !0) continue;
if (sA === yg && B === h + 1) {
h += 2;
continue;
}
u = B + 1;
continue;
}
if (e.noext !== !0 && (P === sf || P === rf || P === mg || P === VI || P === Dg) === !0 && F() === Kg) {
if (m = Z.isGlob = !0, D = Z.isExtglob = !0, V = !0, P === Dg && B === h && (x = !0), i === !0) {
for (; lA() !== !0 && (P = BA()); ) {
if (P === pr) {
T = Z.backslashes = !0, P = BA();
continue;
}
if (P === ZI) {
m = Z.isGlob = !0, V = !0;
break;
}
}
continue;
}
break;
}
if (P === mg) {
if (sA === mg && (U = Z.isGlobstar = !0), m = Z.isGlob = !0, V = !0, i === !0)
continue;
break;
}
if (P === VI) {
if (m = Z.isGlob = !0, V = !0, i === !0)
continue;
break;
}
if (P === gf) {
for (; lA() !== !0 && (MA = BA()); ) {
if (MA === pr) {
T = Z.backslashes = !0, BA();
continue;
}
if (MA === Cf) {
p = Z.isBracket = !0, m = Z.isGlob = !0, V = !0;
break;
}
}
if (i === !0)
continue;
break;
}
if (e.nonegate !== !0 && P === Dg && B === h) {
M = Z.negated = !0, h++;
continue;
}
if (e.noparen !== !0 && P === Kg) {
if (m = Z.isGlob = !0, i === !0) {
for (; lA() !== !0 && (P = BA()); ) {
if (P === Kg) {
T = Z.backslashes = !0, P = BA();
continue;
}
if (P === ZI) {
V = !0;
break;
}
}
continue;
}
break;
}
if (m === !0) {
if (V = !0, i === !0)
continue;
break;
}
}
e.noext === !0 && (D = !1, m = !1);
let QA = E, ne = "", S = "";
h > 0 && (ne = E.slice(0, h), E = E.slice(h), u -= h), QA && m === !0 && u > 0 ? (QA = E.slice(0, u), S = E.slice(u)) : m === !0 ? (QA =
"", S = E) : QA = E, QA && QA !== "" && QA !== "/" && QA !== E && $I(QA.charCodeAt(QA.length - 1)) && (QA = QA.slice(0, -1)), e.unescape ===
!0 && (S && (S = XI.removeBackslashes(S)), QA && T === !0 && (QA = XI.removeBackslashes(QA)));
let K = {
prefix: ne,
input: r,
start: h,
base: QA,
glob: S,
isBrace: f,
isBracket: p,
isGlob: m,
isExtglob: D,
isGlobstar: U,
negated: M,
negatedExtglob: x
};
if (e.tokens === !0 && (K.maxDepth = 0, $I(P) || s.push(Z), K.tokens = s), e.parts === !0 || e.tokens === !0) {
let MA;
for (let oA = 0; oA < o.length; oA++) {
let RA = MA ? MA + 1 : h, XA = o[oA], DA = r.slice(RA, XA);
e.tokens && (oA === 0 && h !== 0 ? (s[oA].isPrefix = !0, s[oA].value = ne) : s[oA].value = DA, Aa(s[oA]), K.maxDepth += s[oA].depth),
(oA !== 0 || DA !== "") && I.push(DA), MA = XA;
}
if (MA && MA + 1 < r.length) {
let oA = r.slice(MA + 1);
I.push(oA), e.tokens && (s[s.length - 1].value = oA, Aa(s[s.length - 1]), K.maxDepth += s[s.length - 1].depth);
}
K.slashes = o, K.parts = I;
}
return K;
}, "scan");
ta.exports = If;
});
// ../node_modules/picomatch/lib/parse.js
var ga = j((yM, oa) => {
"use strict";
var pi = dr(), Ae = di(), {
MAX_LENGTH: mi,
POSIX_REGEX_SOURCE: af,
REGEX_NON_SPECIAL_CHARS: Ef,
REGEX_SPECIAL_CHARS_BACKREF: cf,
REPLACEMENTS: ia
} = pi, Bf = /* @__PURE__ */ g((r, A) => {
if (typeof A.expandRange == "function")
return A.expandRange(...r, A);
r.sort();
let e = `[${r.join("-")}]`;
try {
new RegExp(e);
} catch {
return r.map((i) => Ae.escapeRegex(i)).join("..");
}
return e;
}, "expandRange"), bt = /* @__PURE__ */ g((r, A) => `Missing ${r}: "${A}" - use "\\\\${A}" to match literal characters`, "syntaxError"), Fg = /* @__PURE__ */ g(
(r, A) => {
if (typeof r != "string")
throw new TypeError("Expected a string");
r = ia[r] || r;
let e = { ...A }, t = typeof e.maxLength == "number" ? Math.min(mi, e.maxLength) : mi, i = r.length;
if (i > t)
throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${t}`);
let o = { type: "bos", value: "", output: e.prepend || "" }, s = [o], I = e.capture ? "" : "?:", E = Ae.isWindows(A), B = pi.globChars(E),
h = pi.extglobChars(B), {
DOT_LITERAL: u,
PLUS_LITERAL: f,
SLASH_LITERAL: p,
ONE_CHAR: m,
DOTS_SLASH: D,
NO_DOT: U,
NO_DOT_SLASH: R,
NO_DOTS_SLASH: T,
QMARK: M,
QMARK_NO_DOT: x,
STAR: V,
START_ANCHOR: gA
} = B, sA = /* @__PURE__ */ g((Y) => `(${I}(?:(?!${gA}${Y.dot ? D : u}).)*?)`, "globstar"), P = e.dot ? "" : U, Z = e.dot ? M : x, lA = e.
bash === !0 ? sA(e) : V;
e.capture && (lA = `(${lA})`), typeof e.noext == "boolean" && (e.noextglob = e.noext);
let F = {
input: r,
index: -1,
start: 0,
dot: e.dot === !0,
consumed: "",
output: "",
prefix: "",
backtrack: !1,
negated: !1,
brackets: 0,
braces: 0,
parens: 0,
quotes: 0,
globstar: !1,
tokens: s
};
r = Ae.removePrefix(r, F), i = r.length;
let BA = [], QA = [], ne = [], S = o, K, MA = /* @__PURE__ */ g(() => F.index === i - 1, "eos"), oA = F.peek = (Y = 1) => r[F.index + Y],
RA = F.advance = () => r[++F.index] || "", XA = /* @__PURE__ */ g(() => r.slice(F.index + 1), "remaining"), DA = /* @__PURE__ */ g((Y = "", aA = 0) => {
F.consumed += Y, F.index += aA;
}, "consume"), rt = /* @__PURE__ */ g((Y) => {
F.output += Y.output != null ? Y.output : Y.value, DA(Y.value);
}, "append"), Qt = /* @__PURE__ */ g(() => {
let Y = 1;
for (; oA() === "!" && (oA(2) !== "(" || oA(3) === "?"); )
RA(), F.start++, Y++;
return Y % 2 === 0 ? !1 : (F.negated = !0, F.start++, !0);
}, "negate"), xe = /* @__PURE__ */ g((Y) => {
F[Y]++, ne.push(Y);
}, "increment"), Fe = /* @__PURE__ */ g((Y) => {
F[Y]--, ne.pop();
}, "decrement"), rA = /* @__PURE__ */ g((Y) => {
if (S.type === "globstar") {
let aA = F.braces > 0 && (Y.type === "comma" || Y.type === "brace"), b = Y.extglob === !0 || BA.length && (Y.type === "pipe" || Y.type ===
"paren");
Y.type !== "slash" && Y.type !== "paren" && !aA && !b && (F.output = F.output.slice(0, -S.output.length), S.type = "star", S.value =
"*", S.output = lA, F.output += S.output);
}
if (BA.length && Y.type !== "paren" && (BA[BA.length - 1].inner += Y.value), (Y.value || Y.output) && rt(Y), S && S.type === "text" &&
Y.type === "text") {
S.value += Y.value, S.output = (S.output || "") + Y.value;
return;
}
Y.prev = S, s.push(Y), S = Y;
}, "push"), Pe = /* @__PURE__ */ g((Y, aA) => {
let b = { ...h[aA], conditions: 1, inner: "" };
b.prev = S, b.parens = F.parens, b.output = F.output;
let N = (e.capture ? "(" : "") + b.open;
xe("parens"), rA({ type: Y, value: aA, output: F.output ? "" : m }), rA({ type: "paren", extglob: !0, value: RA(), output: N }), BA.push(
b);
}, "extglobOpen"), bA = /* @__PURE__ */ g((Y) => {
let aA = Y.close + (e.capture ? ")" : ""), b;
if (Y.type === "negate") {
let N = lA;
if (Y.inner && Y.inner.length > 1 && Y.inner.includes("/") && (N = sA(e)), (N !== lA || MA() || /^\)+$/.test(XA())) && (aA = Y.close =
`)$))${N}`), Y.inner.includes("*") && (b = XA()) && /^\.[^\\/.]+$/.test(b)) {
let hA = Fg(b, { ...A, fastpaths: !1 }).output;
aA = Y.close = `)${hA})${N})`;
}
Y.prev.type === "bos" && (F.negatedExtglob = !0);
}
rA({ type: "paren", extglob: !0, value: K, output: aA }), Fe("parens");
}, "extglobClose");
if (e.fastpaths !== !1 && !/(^[*!]|[/()[\]{}"])/.test(r)) {
let Y = !1, aA = r.replace(cf, (b, N, hA, SA, uA, ht) => SA === "\\" ? (Y = !0, b) : SA === "?" ? N ? N + SA + (uA ? M.repeat(uA.length) :
"") : ht === 0 ? Z + (uA ? M.repeat(uA.length) : "") : M.repeat(hA.length) : SA === "." ? u.repeat(hA.length) : SA === "*" ? N ? N + SA +
(uA ? lA : "") : lA : N ? b : `\\${b}`);
return Y === !0 && (e.unescape === !0 ? aA = aA.replace(/\\/g, "") : aA = aA.replace(/\\+/g, (b) => b.length % 2 === 0 ? "\\\\" : b ? "\
\\" : "")), aA === r && e.contains === !0 ? (F.output = r, F) : (F.output = Ae.wrapOutput(aA, F, A), F);
}
for (; !MA(); ) {
if (K = RA(), K === "\0")
continue;
if (K === "\\") {
let b = oA();
if (b === "/" && e.bash !== !0 || b === "." || b === ";")
continue;
if (!b) {
K += "\\", rA({ type: "text", value: K });
continue;
}
let N = /^\\+/.exec(XA()), hA = 0;
if (N && N[0].length > 2 && (hA = N[0].length, F.index += hA, hA % 2 !== 0 && (K += "\\")), e.unescape === !0 ? K = RA() : K += RA(),
F.brackets === 0) {
rA({ type: "text", value: K });
continue;
}
}
if (F.brackets > 0 && (K !== "]" || S.value === "[" || S.value === "[^")) {
if (e.posix !== !1 && K === ":") {
let b = S.value.slice(1);
if (b.includes("[") && (S.posix = !0, b.includes(":"))) {
let N = S.value.lastIndexOf("["), hA = S.value.slice(0, N), SA = S.value.slice(N + 2), uA = af[SA];
if (uA) {
S.value = hA + uA, F.backtrack = !0, RA(), !o.output && s.indexOf(S) === 1 && (o.output = m);
continue;
}
}
}
(K === "[" && oA() !== ":" || K === "-" && oA() === "]") && (K = `\\${K}`), K === "]" && (S.value === "[" || S.value === "[^") && (K =
`\\${K}`), e.posix === !0 && K === "!" && S.value === "[" && (K = "^"), S.value += K, rt({ value: K });
continue;
}
if (F.quotes === 1 && K !== '"') {
K = Ae.escapeRegex(K), S.value += K, rt({ value: K });
continue;
}
if (K === '"') {
F.quotes = F.quotes === 1 ? 0 : 1, e.keepQuotes === !0 && rA({ type: "text", value: K });
continue;
}
if (K === "(") {
xe("parens"), rA({ type: "paren", value: K });
continue;
}
if (K === ")") {
if (F.parens === 0 && e.strictBrackets === !0)
throw new SyntaxError(bt("opening", "("));
let b = BA[BA.length - 1];
if (b && F.parens === b.parens + 1) {
bA(BA.pop());
continue;
}
rA({ type: "paren", value: K, output: F.parens ? ")" : "\\)" }), Fe("parens");
continue;
}
if (K === "[") {
if (e.nobracket === !0 || !XA().includes("]")) {
if (e.nobracket !== !0 && e.strictBrackets === !0)
throw new SyntaxError(bt("closing", "]"));
K = `\\${K}`;
} else
xe("brackets");
rA({ type: "bracket", value: K });
continue;
}
if (K === "]") {
if (e.nobracket === !0 || S && S.type === "bracket" && S.value.length === 1) {
rA({ type: "text", value: K, output: `\\${K}` });
continue;
}
if (F.brackets === 0) {
if (e.strictBrackets === !0)
throw new SyntaxError(bt("opening", "["));
rA({ type: "text", value: K, output: `\\${K}` });
continue;
}
Fe("brackets");
let b = S.value.slice(1);
if (S.posix !== !0 && b[0] === "^" && !b.includes("/") && (K = `/${K}`), S.value += K, rt({ value: K }), e.literalBrackets === !1 ||
Ae.hasRegexChars(b))
continue;
let N = Ae.escapeRegex(S.value);
if (F.output = F.output.slice(0, -S.value.length), e.literalBrackets === !0) {
F.output += N, S.value = N;
continue;
}
S.value = `(${I}${N}|${S.value})`, F.output += S.value;
continue;
}
if (K === "{" && e.nobrace !== !0) {
xe("braces");
let b = {
type: "brace",
value: K,
output: "(",
outputIndex: F.output.length,
tokensIndex: F.tokens.length
};
QA.push(b), rA(b);
continue;
}
if (K === "}") {
let b = QA[QA.length - 1];
if (e.nobrace === !0 || !b) {
rA({ type: "text", value: K, output: K });
continue;
}
let N = ")";
if (b.dots === !0) {
let hA = s.slice(), SA = [];
for (let uA = hA.length - 1; uA >= 0 && (s.pop(), hA[uA].type !== "brace"); uA--)
hA[uA].type !== "dots" && SA.unshift(hA[uA].value);
N = Bf(SA, e), F.backtrack = !0;
}
if (b.comma !== !0 && b.dots !== !0) {
let hA = F.output.slice(0, b.outputIndex), SA = F.tokens.slice(b.tokensIndex);
b.value = b.output = "\\{", K = N = "\\}", F.output = hA;
for (let uA of SA)
F.output += uA.output || uA.value;
}
rA({ type: "brace", value: K, output: N }), Fe("braces"), QA.pop();
continue;
}
if (K === "|") {
BA.length > 0 && BA[BA.length - 1].conditions++, rA({ type: "text", value: K });
continue;
}
if (K === ",") {
let b = K, N = QA[QA.length - 1];
N && ne[ne.length - 1] === "braces" && (N.comma = !0, b = "|"), rA({ type: "comma", value: K, output: b });
continue;
}
if (K === "/") {
if (S.type === "dot" && F.index === F.start + 1) {
F.start = F.index + 1, F.consumed = "", F.output = "", s.pop(), S = o;
continue;
}
rA({ type: "slash", value: K, output: p });
continue;
}
if (K === ".") {
if (F.braces > 0 && S.type === "dot") {
S.value === "." && (S.output = u);
let b = QA[QA.length - 1];
S.type = "dots", S.output += K, S.value += K, b.dots = !0;
continue;
}
if (F.braces + F.parens === 0 && S.type !== "bos" && S.type !== "slash") {
rA({ type: "text", value: K, output: u });
continue;
}
rA({ type: "dot", value: K, output: u });
continue;
}
if (K === "?") {
if (!(S && S.value === "(") && e.noextglob !== !0 && oA() === "(" && oA(2) !== "?") {
Pe("qmark", K);
continue;
}
if (S && S.type === "paren") {
let N = oA(), hA = K;
if (N === "<" && !Ae.supportsLookbehinds())
throw new Error("Node.js v10 or higher is required for regex lookbehinds");
(S.value === "(" && !/[!=<:]/.test(N) || N === "<" && !/<([!=]|\w+>)/.test(XA())) && (hA = `\\${K}`), rA({ type: "text", value: K,
output: hA });
continue;
}
if (e.dot !== !0 && (S.type === "slash" || S.type === "bos")) {
rA({ type: "qmark", value: K, output: x });
continue;
}
rA({ type: "qmark", value: K, output: M });
continue;
}
if (K === "!") {
if (e.noextglob !== !0 && oA() === "(" && (oA(2) !== "?" || !/[!=<:]/.test(oA(3)))) {
Pe("negate", K);
continue;
}
if (e.nonegate !== !0 && F.index === 0) {
Qt();
continue;
}
}
if (K === "+") {
if (e.noextglob !== !0 && oA() === "(" && oA(2) !== "?") {
Pe("plus", K);
continue;
}
if (S && S.value === "(" || e.regex === !1) {
rA({ type: "plus", value: K, output: f });
continue;
}
if (S && (S.type === "bracket" || S.type === "paren" || S.type === "brace") || F.parens > 0) {
rA({ type: "plus", value: K });
continue;
}
rA({ type: "plus", value: f });
continue;
}
if (K === "@") {
if (e.noextglob !== !0 && oA() === "(" && oA(2) !== "?") {
rA({ type: "at", extglob: !0, value: K, output: "" });
continue;
}
rA({ type: "text", value: K });
continue;
}
if (K !== "*") {
(K === "$" || K === "^") && (K = `\\${K}`);
let b = Ef.exec(XA());
b && (K += b[0], F.index += b[0].length), rA({ type: "text", value: K });
continue;
}
if (S && (S.type === "globstar" || S.star === !0)) {
S.type = "star", S.star = !0, S.value += K, S.output = lA, F.backtrack = !0, F.globstar = !0, DA(K);
continue;
}
let Y = XA();
if (e.noextglob !== !0 && /^\([^?]/.test(Y)) {
Pe("star", K);
continue;
}
if (S.type === "star") {
if (e.noglobstar === !0) {
DA(K);
continue;
}
let b = S.prev, N = b.prev, hA = b.type === "slash" || b.type === "bos", SA = N && (N.type === "star" || N.type === "globstar");
if (e.bash === !0 && (!hA || Y[0] && Y[0] !== "/")) {
rA({ type: "star", value: K, output: "" });
continue;
}
let uA = F.braces > 0 && (b.type === "comma" || b.type === "brace"), ht = BA.length && (b.type === "pipe" || b.type === "paren");
if (!hA && b.type !== "paren" && !uA && !ht) {
rA({ type: "star", value: K, output: "" });
continue;
}
for (; Y.slice(0, 3) === "/**"; ) {
let Ht = r[F.index + 4];
if (Ht && Ht !== "/")
break;
Y = Y.slice(3), DA("/**", 3);
}
if (b.type === "bos" && MA()) {
S.type = "globstar", S.value += K, S.output = sA(e), F.output = S.output, F.globstar = !0, DA(K);
continue;
}
if (b.type === "slash" && b.prev.type !== "bos" && !SA && MA()) {
F.output = F.output.slice(0, -(b.output + S.output).length), b.output = `(?:${b.output}`, S.type = "globstar", S.output = sA(e) + (e.
strictSlashes ? ")" : "|$)"), S.value += K, F.globstar = !0, F.output += b.output + S.output, DA(K);
continue;
}
if (b.type === "slash" && b.prev.type !== "bos" && Y[0] === "/") {
let Ht = Y[1] !== void 0 ? "|$" : "";
F.output = F.output.slice(0, -(b.output + S.output).length), b.output = `(?:${b.output}`, S.type = "globstar", S.output = `${sA(e)}${p}\
|${p}${Ht})`, S.value += K, F.output += b.output + S.output, F.globstar = !0, DA(K + RA()), rA({ type: "slash", value: "/", output: "" });
continue;
}
if (b.type === "bos" && Y[0] === "/") {
S.type = "globstar", S.value += K, S.output = `(?:^|${p}|${sA(e)}${p})`, F.output = S.output, F.globstar = !0, DA(K + RA()), rA({ type: "\
slash", value: "/", output: "" });
continue;
}
F.output = F.output.slice(0, -S.output.length), S.type = "globstar", S.output = sA(e), S.value += K, F.output += S.output, F.globstar =
!0, DA(K);
continue;
}
let aA = { type: "star", value: K, output: lA };
if (e.bash === !0) {
aA.output = ".*?", (S.type === "bos" || S.type === "slash") && (aA.output = P + aA.output), rA(aA);
continue;
}
if (S && (S.type === "bracket" || S.type === "paren") && e.regex === !0) {
aA.output = K, rA(aA);
continue;
}
(F.index === F.start || S.type === "slash" || S.type === "dot") && (S.type === "dot" ? (F.output += R, S.output += R) : e.dot === !0 ?
(F.output += T, S.output += T) : (F.output += P, S.output += P), oA() !== "*" && (F.output += m, S.output += m)), rA(aA);
}
for (; F.brackets > 0; ) {
if (e.strictBrackets === !0) throw new SyntaxError(bt("closing", "]"));
F.output = Ae.escapeLast(F.output, "["), Fe("brackets");
}
for (; F.parens > 0; ) {
if (e.strictBrackets === !0) throw new SyntaxError(bt("closing", ")"));
F.output = Ae.escapeLast(F.output, "("), Fe("parens");
}
for (; F.braces > 0; ) {
if (e.strictBrackets === !0) throw new SyntaxError(bt("closing", "}"));
F.output = Ae.escapeLast(F.output, "{"), Fe("braces");
}
if (e.strictSlashes !== !0 && (S.type === "star" || S.type === "bracket") && rA({ type: "maybe_slash", value: "", output: `${p}?` }), F.
backtrack === !0) {
F.output = "";
for (let Y of F.tokens)
F.output += Y.output != null ? Y.output : Y.value, Y.suffix && (F.output += Y.suffix);
}
return F;
}, "parse");
Fg.fastpaths = (r, A) => {
let e = { ...A }, t = typeof e.maxLength == "number" ? Math.min(mi, e.maxLength) : mi, i = r.length;
if (i > t)
throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${t}`);
r = ia[r] || r;
let o = Ae.isWindows(A), {
DOT_LITERAL: s,
SLASH_LITERAL: I,
ONE_CHAR: E,
DOTS_SLASH: B,
NO_DOT: h,
NO_DOTS: u,
NO_DOTS_SLASH: f,
STAR: p,
START_ANCHOR: m
} = pi.globChars(o), D = e.dot ? u : h, U = e.dot ? f : h, R = e.capture ? "" : "?:", T = { negated: !1, prefix: "" }, M = e.bash === !0 ?
".*?" : p;
e.capture && (M = `(${M})`);
let x = /* @__PURE__ */ g((P) => P.noglobstar === !0 ? M : `(${R}(?:(?!${m}${P.dot ? B : s}).)*?)`, "globstar"), V = /* @__PURE__ */ g((P) => {
switch (P) {
case "*":
return `${D}${E}${M}`;
case ".*":
return `${s}${E}${M}`;
case "*.*":
return `${D}${M}${s}${E}${M}`;
case "*/*":
return `${D}${M}${I}${E}${U}${M}`;
case "**":
return D + x(e);
case "**/*":
return `(?:${D}${x(e)}${I})?${U}${E}${M}`;
case "**/*.*":
return `(?:${D}${x(e)}${I})?${U}${M}${s}${E}${M}`;
case "**/.*":
return `(?:${D}${x(e)}${I})?${s}${E}${M}`;
default: {
let Z = /^(.*?)\.(\w+)$/.exec(P);
if (!Z) return;
let lA = V(Z[1]);
return lA ? lA + s + Z[2] : void 0;
}
}
}, "create"), gA = Ae.removePrefix(r, T), sA = V(gA);
return sA && e.strictSlashes !== !0 && (sA += `${I}?`), sA;
};
oa.exports = Fg;
});
// ../node_modules/picomatch/lib/picomatch.js
var na = j((SM, sa) => {
"use strict";
var Qf = G("path"), hf = ra(), Ng = ga(), kg = di(), lf = dr(), uf = /* @__PURE__ */ g((r) => r && typeof r == "object" && !Array.isArray(
r), "isObject"), dA = /* @__PURE__ */ g((r, A, e = !1) => {
if (Array.isArray(r)) {
let