alinea
Version:
[](https://npmjs.org/package/alinea) [](https://packagephobia.com/result?p=alinea)
724 lines (718 loc) • 23.8 kB
JavaScript
import "../../chunks/chunk-U5RRZUYZ.js";
// src/cli/util/ExternalPlugin.ts
import { dirname, normalize, relative } from "alinea/core/util/Paths";
// node_modules/get-tsconfig/dist/index.mjs
import r from "path";
import $ from "fs";
import ue from "module";
// node_modules/resolve-pkg-maps/dist/index.mjs
var A = (r2) => r2 !== null && typeof r2 == "object";
var a = (r2, t) => Object.assign(new Error(`[${r2}]: ${t}`), { code: r2 });
var _ = "ERR_INVALID_PACKAGE_CONFIG";
var E = "ERR_INVALID_PACKAGE_TARGET";
var I = "ERR_PACKAGE_PATH_NOT_EXPORTED";
var R = /^\d+$/;
var O = /^(\.{1,2}|node_modules)$/i;
var w = /\/|\\/;
var h = ((r2) => (r2.Export = "exports", r2.Import = "imports", r2))(h || {});
var f = (r2, t, e, o, c) => {
if (t == null)
return [];
if (typeof t == "string") {
const [n, ...i] = t.split(w);
if (n === ".." || i.some((l) => O.test(l)))
throw a(E, `Invalid "${r2}" target "${t}" defined in the package config`);
return [c ? t.replace(/\*/g, c) : t];
}
if (Array.isArray(t))
return t.flatMap((n) => f(r2, n, e, o, c));
if (A(t)) {
for (const n of Object.keys(t)) {
if (R.test(n))
throw a(_, "Cannot contain numeric property keys");
if (n === "default" || o.includes(n))
return f(r2, t[n], e, o, c);
}
return [];
}
throw a(E, `Invalid "${r2}" target "${t}"`);
};
var s = "*";
var m = (r2, t) => {
const e = r2.indexOf(s), o = t.indexOf(s);
return e === o ? t.length > r2.length : o > e;
};
function d(r2, t) {
if (!t.includes(s) && r2.hasOwnProperty(t))
return [t];
let e, o;
for (const c of Object.keys(r2))
if (c.includes(s)) {
const [n, i, l] = c.split(s);
if (l === void 0 && t.startsWith(n) && t.endsWith(i)) {
const g = t.slice(n.length, -i.length || void 0);
g && (!e || m(e, c)) && (e = c, o = g);
}
}
return [e, o];
}
var p = (r2) => Object.keys(r2).reduce((t, e) => {
const o = e === "" || e[0] !== ".";
if (t === void 0 || t === o)
return o;
throw a(_, '"exports" cannot contain some keys starting with "." and some not');
}, void 0);
var u = /^\w+:/;
var v = (r2, t, e) => {
if (!r2)
throw new Error('"exports" is required');
t = t === "" ? "." : `./${t}`, (typeof r2 == "string" || Array.isArray(r2) || A(r2) && p(r2)) && (r2 = { ".": r2 });
const [o, c] = d(r2, t), n = f(h.Export, r2[o], t, e, c);
if (n.length === 0)
throw a(I, t === "." ? 'No "exports" main defined' : `Package subpath '${t}' is not defined by "exports"`);
for (const i of n)
if (!i.startsWith("./") && !u.test(i))
throw a(E, `Invalid "exports" target "${i}" defined in the package config`);
return n;
};
// node_modules/get-tsconfig/dist/index.mjs
function U(e) {
return e.startsWith("\\\\?\\") ? e : e.replace(/\\/g, "/");
}
var Y = (e, s2) => {
for (; ; ) {
const i = r.posix.join(e, s2);
if ($.existsSync(i))
return i;
const n = r.dirname(e);
if (n === e)
return;
e = n;
}
};
var V = /^\.{1,2}(\/.*)?$/;
var P = (e) => U(V.test(e) ? e : `./${e}`);
function re(e, s2 = false) {
const i = e.length;
let n = 0, t = "", l = 0, c = 16, a2 = 0, p2 = 0, L = 0, g = 0, T = 0;
function k(o, f2) {
let u2 = 0, E2 = 0;
for (; u2 < o || !f2; ) {
let O2 = e.charCodeAt(n);
if (O2 >= 48 && O2 <= 57)
E2 = E2 * 16 + O2 - 48;
else if (O2 >= 65 && O2 <= 70)
E2 = E2 * 16 + O2 - 65 + 10;
else if (O2 >= 97 && O2 <= 102)
E2 = E2 * 16 + O2 - 97 + 10;
else
break;
n++, u2++;
}
return u2 < o && (E2 = -1), E2;
}
function j(o) {
n = o, t = "", l = 0, c = 16, T = 0;
}
function w2() {
let o = n;
if (e.charCodeAt(n) === 48)
n++;
else
for (n++; n < e.length && h2(e.charCodeAt(n)); )
n++;
if (n < e.length && e.charCodeAt(n) === 46)
if (n++, n < e.length && h2(e.charCodeAt(n)))
for (n++; n < e.length && h2(e.charCodeAt(n)); )
n++;
else
return T = 3, e.substring(o, n);
let f2 = n;
if (n < e.length && (e.charCodeAt(n) === 69 || e.charCodeAt(n) === 101))
if (n++, (n < e.length && e.charCodeAt(n) === 43 || e.charCodeAt(n) === 45) && n++, n < e.length && h2(e.charCodeAt(n))) {
for (n++; n < e.length && h2(e.charCodeAt(n)); )
n++;
f2 = n;
} else
T = 3;
return e.substring(o, f2);
}
function b() {
let o = "", f2 = n;
for (; ; ) {
if (n >= i) {
o += e.substring(f2, n), T = 2;
break;
}
const u2 = e.charCodeAt(n);
if (u2 === 34) {
o += e.substring(f2, n), n++;
break;
}
if (u2 === 92) {
if (o += e.substring(f2, n), n++, n >= i) {
T = 2;
break;
}
switch (e.charCodeAt(n++)) {
case 34:
o += '"';
break;
case 92:
o += "\\";
break;
case 47:
o += "/";
break;
case 98:
o += "\b";
break;
case 102:
o += "\f";
break;
case 110:
o += `
`;
break;
case 114:
o += "\r";
break;
case 116:
o += " ";
break;
case 117:
const O2 = k(4, true);
O2 >= 0 ? o += String.fromCharCode(O2) : T = 4;
break;
default:
T = 5;
}
f2 = n;
continue;
}
if (u2 >= 0 && u2 <= 31)
if (F(u2)) {
o += e.substring(f2, n), T = 2;
break;
} else
T = 6;
n++;
}
return o;
}
function A2() {
if (t = "", T = 0, l = n, p2 = a2, g = L, n >= i)
return l = i, c = 17;
let o = e.charCodeAt(n);
if (W(o)) {
do
n++, t += String.fromCharCode(o), o = e.charCodeAt(n);
while (W(o));
return c = 15;
}
if (F(o))
return n++, t += String.fromCharCode(o), o === 13 && e.charCodeAt(n) === 10 && (n++, t += `
`), a2++, L = n, c = 14;
switch (o) {
case 123:
return n++, c = 1;
case 125:
return n++, c = 2;
case 91:
return n++, c = 3;
case 93:
return n++, c = 4;
case 58:
return n++, c = 6;
case 44:
return n++, c = 5;
case 34:
return n++, t = b(), c = 10;
case 47:
const f2 = n - 1;
if (e.charCodeAt(n + 1) === 47) {
for (n += 2; n < i && !F(e.charCodeAt(n)); )
n++;
return t = e.substring(f2, n), c = 12;
}
if (e.charCodeAt(n + 1) === 42) {
n += 2;
const u2 = i - 1;
let E2 = false;
for (; n < u2; ) {
const O2 = e.charCodeAt(n);
if (O2 === 42 && e.charCodeAt(n + 1) === 47) {
n += 2, E2 = true;
break;
}
n++, F(O2) && (O2 === 13 && e.charCodeAt(n) === 10 && n++, a2++, L = n);
}
return E2 || (n++, T = 1), t = e.substring(f2, n), c = 13;
}
return t += String.fromCharCode(o), n++, c = 16;
case 45:
if (t += String.fromCharCode(o), n++, n === i || !h2(e.charCodeAt(n)))
return c = 16;
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
return t += w2(), c = 11;
default:
for (; n < i && N(o); )
n++, o = e.charCodeAt(n);
if (l !== n) {
switch (t = e.substring(l, n), t) {
case "true":
return c = 8;
case "false":
return c = 9;
case "null":
return c = 7;
}
return c = 16;
}
return t += String.fromCharCode(o), n++, c = 16;
}
}
function N(o) {
if (W(o) || F(o))
return false;
switch (o) {
case 125:
case 93:
case 123:
case 91:
case 34:
case 58:
case 44:
case 47:
return false;
}
return true;
}
function _2() {
let o;
do
o = A2();
while (o >= 12 && o <= 15);
return o;
}
return { setPosition: j, getPosition: () => n, scan: s2 ? _2 : A2, getToken: () => c, getTokenValue: () => t, getTokenOffset: () => l, getTokenLength: () => n - l, getTokenStartLine: () => p2, getTokenStartCharacter: () => l - g, getTokenError: () => T };
}
function W(e) {
return e === 32 || e === 9;
}
function F(e) {
return e === 10 || e === 13;
}
function h2(e) {
return e >= 48 && e <= 57;
}
var Z;
(function(e) {
e[e.lineFeed = 10] = "lineFeed", e[e.carriageReturn = 13] = "carriageReturn", e[e.space = 32] = "space", e[e._0 = 48] = "_0", e[e._1 = 49] = "_1", e[e._2 = 50] = "_2", e[e._3 = 51] = "_3", e[e._4 = 52] = "_4", e[e._5 = 53] = "_5", e[e._6 = 54] = "_6", e[e._7 = 55] = "_7", e[e._8 = 56] = "_8", e[e._9 = 57] = "_9", e[e.a = 97] = "a", e[e.b = 98] = "b", e[e.c = 99] = "c", e[e.d = 100] = "d", e[e.e = 101] = "e", e[e.f = 102] = "f", e[e.g = 103] = "g", e[e.h = 104] = "h", e[e.i = 105] = "i", e[e.j = 106] = "j", e[e.k = 107] = "k", e[e.l = 108] = "l", e[e.m = 109] = "m", e[e.n = 110] = "n", e[e.o = 111] = "o", e[e.p = 112] = "p", e[e.q = 113] = "q", e[e.r = 114] = "r", e[e.s = 115] = "s", e[e.t = 116] = "t", e[e.u = 117] = "u", e[e.v = 118] = "v", e[e.w = 119] = "w", e[e.x = 120] = "x", e[e.y = 121] = "y", e[e.z = 122] = "z", e[e.A = 65] = "A", e[e.B = 66] = "B", e[e.C = 67] = "C", e[e.D = 68] = "D", e[e.E = 69] = "E", e[e.F = 70] = "F", e[e.G = 71] = "G", e[e.H = 72] = "H", e[e.I = 73] = "I", e[e.J = 74] = "J", e[e.K = 75] = "K", e[e.L = 76] = "L", e[e.M = 77] = "M", e[e.N = 78] = "N", e[e.O = 79] = "O", e[e.P = 80] = "P", e[e.Q = 81] = "Q", e[e.R = 82] = "R", e[e.S = 83] = "S", e[e.T = 84] = "T", e[e.U = 85] = "U", e[e.V = 86] = "V", e[e.W = 87] = "W", e[e.X = 88] = "X", e[e.Y = 89] = "Y", e[e.Z = 90] = "Z", e[e.asterisk = 42] = "asterisk", e[e.backslash = 92] = "backslash", e[e.closeBrace = 125] = "closeBrace", e[e.closeBracket = 93] = "closeBracket", e[e.colon = 58] = "colon", e[e.comma = 44] = "comma", e[e.dot = 46] = "dot", e[e.doubleQuote = 34] = "doubleQuote", e[e.minus = 45] = "minus", e[e.openBrace = 123] = "openBrace", e[e.openBracket = 91] = "openBracket", e[e.plus = 43] = "plus", e[e.slash = 47] = "slash", e[e.formFeed = 12] = "formFeed", e[e.tab = 9] = "tab";
})(Z || (Z = {}));
var x;
(function(e) {
e.DEFAULT = { allowTrailingComma: false };
})(x || (x = {}));
function pe(e, s2 = [], i = x.DEFAULT) {
let n = null, t = [];
const l = [];
function c(p2) {
Array.isArray(t) ? t.push(p2) : n !== null && (t[n] = p2);
}
return ge(e, { onObjectBegin: () => {
const p2 = {};
c(p2), l.push(t), t = p2, n = null;
}, onObjectProperty: (p2) => {
n = p2;
}, onObjectEnd: () => {
t = l.pop();
}, onArrayBegin: () => {
const p2 = [];
c(p2), l.push(t), t = p2, n = null;
}, onArrayEnd: () => {
t = l.pop();
}, onLiteralValue: c, onError: (p2, L, g) => {
s2.push({ error: p2, offset: L, length: g });
} }, i), t[0];
}
function ge(e, s2, i = x.DEFAULT) {
const n = re(e, false), t = [];
function l(m2) {
return m2 ? () => m2(n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter()) : () => true;
}
function c(m2) {
return m2 ? () => m2(n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter(), () => t.slice()) : () => true;
}
function a2(m2) {
return m2 ? (v2) => m2(v2, n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter()) : () => true;
}
function p2(m2) {
return m2 ? (v2) => m2(v2, n.getTokenOffset(), n.getTokenLength(), n.getTokenStartLine(), n.getTokenStartCharacter(), () => t.slice()) : () => true;
}
const L = c(s2.onObjectBegin), g = p2(s2.onObjectProperty), T = l(s2.onObjectEnd), k = c(s2.onArrayBegin), j = l(s2.onArrayEnd), w2 = p2(s2.onLiteralValue), b = a2(s2.onSeparator), A2 = l(s2.onComment), N = a2(s2.onError), _2 = i && i.disallowComments, o = i && i.allowTrailingComma;
function f2() {
for (; ; ) {
const m2 = n.scan();
switch (n.getTokenError()) {
case 4:
u2(14);
break;
case 5:
u2(15);
break;
case 3:
u2(13);
break;
case 1:
_2 || u2(11);
break;
case 2:
u2(12);
break;
case 6:
u2(16);
break;
}
switch (m2) {
case 12:
case 13:
_2 ? u2(10) : A2();
break;
case 16:
u2(1);
break;
case 15:
case 14:
break;
default:
return m2;
}
}
}
function u2(m2, v2 = [], X = []) {
if (N(m2), v2.length + X.length > 0) {
let y = n.getToken();
for (; y !== 17; ) {
if (v2.indexOf(y) !== -1) {
f2();
break;
} else if (X.indexOf(y) !== -1)
break;
y = f2();
}
}
}
function E2(m2) {
const v2 = n.getTokenValue();
return m2 ? w2(v2) : (g(v2), t.push(v2)), f2(), true;
}
function O2() {
switch (n.getToken()) {
case 11:
const m2 = n.getTokenValue();
let v2 = Number(m2);
isNaN(v2) && (u2(2), v2 = 0), w2(v2);
break;
case 7:
w2(null);
break;
case 8:
w2(true);
break;
case 9:
w2(false);
break;
default:
return false;
}
return f2(), true;
}
function oe() {
return n.getToken() !== 10 ? (u2(3, [], [2, 5]), false) : (E2(false), n.getToken() === 6 ? (b(":"), f2(), S() || u2(4, [], [2, 5])) : u2(5, [], [2, 5]), t.pop(), true);
}
function le() {
L(), f2();
let m2 = false;
for (; n.getToken() !== 2 && n.getToken() !== 17; ) {
if (n.getToken() === 5) {
if (m2 || u2(4, [], []), b(","), f2(), n.getToken() === 2 && o)
break;
} else
m2 && u2(6, [], []);
oe() || u2(4, [], [2, 5]), m2 = true;
}
return T(), n.getToken() !== 2 ? u2(7, [2], []) : f2(), true;
}
function ce() {
k(), f2();
let m2 = true, v2 = false;
for (; n.getToken() !== 4 && n.getToken() !== 17; ) {
if (n.getToken() === 5) {
if (v2 || u2(4, [], []), b(","), f2(), n.getToken() === 4 && o)
break;
} else
v2 && u2(6, [], []);
m2 ? (t.push(0), m2 = false) : t[t.length - 1]++, S() || u2(4, [], [4, 5]), v2 = true;
}
return j(), m2 || t.pop(), n.getToken() !== 4 ? u2(8, [4], []) : f2(), true;
}
function S() {
switch (n.getToken()) {
case 3:
return ce();
case 1:
return le();
case 10:
return E2(true);
default:
return O2();
}
}
return f2(), n.getToken() === 17 ? i.allowEmptyContent ? true : (u2(4, [], []), false) : S() ? (n.getToken() !== 17 && u2(9, [], []), true) : (u2(4, [], []), false);
}
var q;
(function(e) {
e[e.None = 0] = "None", e[e.UnexpectedEndOfComment = 1] = "UnexpectedEndOfComment", e[e.UnexpectedEndOfString = 2] = "UnexpectedEndOfString", e[e.UnexpectedEndOfNumber = 3] = "UnexpectedEndOfNumber", e[e.InvalidUnicode = 4] = "InvalidUnicode", e[e.InvalidEscapeCharacter = 5] = "InvalidEscapeCharacter", e[e.InvalidCharacter = 6] = "InvalidCharacter";
})(q || (q = {}));
var d2;
(function(e) {
e[e.OpenBraceToken = 1] = "OpenBraceToken", e[e.CloseBraceToken = 2] = "CloseBraceToken", e[e.OpenBracketToken = 3] = "OpenBracketToken", e[e.CloseBracketToken = 4] = "CloseBracketToken", e[e.CommaToken = 5] = "CommaToken", e[e.ColonToken = 6] = "ColonToken", e[e.NullKeyword = 7] = "NullKeyword", e[e.TrueKeyword = 8] = "TrueKeyword", e[e.FalseKeyword = 9] = "FalseKeyword", e[e.StringLiteral = 10] = "StringLiteral", e[e.NumericLiteral = 11] = "NumericLiteral", e[e.LineCommentTrivia = 12] = "LineCommentTrivia", e[e.BlockCommentTrivia = 13] = "BlockCommentTrivia", e[e.LineBreakTrivia = 14] = "LineBreakTrivia", e[e.Trivia = 15] = "Trivia", e[e.Unknown = 16] = "Unknown", e[e.EOF = 17] = "EOF";
})(d2 || (d2 = {}));
var me = pe;
var K;
(function(e) {
e[e.InvalidSymbol = 1] = "InvalidSymbol", e[e.InvalidNumberFormat = 2] = "InvalidNumberFormat", e[e.PropertyNameExpected = 3] = "PropertyNameExpected", e[e.ValueExpected = 4] = "ValueExpected", e[e.ColonExpected = 5] = "ColonExpected", e[e.CommaExpected = 6] = "CommaExpected", e[e.CloseBraceExpected = 7] = "CloseBraceExpected", e[e.CloseBracketExpected = 8] = "CloseBracketExpected", e[e.EndOfFileExpected = 9] = "EndOfFileExpected", e[e.InvalidCommentToken = 10] = "InvalidCommentToken", e[e.UnexpectedEndOfComment = 11] = "UnexpectedEndOfComment", e[e.UnexpectedEndOfString = 12] = "UnexpectedEndOfString", e[e.UnexpectedEndOfNumber = 13] = "UnexpectedEndOfNumber", e[e.InvalidUnicode = 14] = "InvalidUnicode", e[e.InvalidEscapeCharacter = 15] = "InvalidEscapeCharacter", e[e.InvalidCharacter = 16] = "InvalidCharacter";
})(K || (K = {}));
var C = (e) => me($.readFileSync(e, "utf8"));
var { existsSync: B } = $;
var ae = () => {
const { findPnpApi: e } = ue;
return e && e(process.cwd());
};
var J = (e, s2, i) => {
let n = "tsconfig.json";
const t = C(e);
if (t)
if (!i && t.exports)
try {
const [l] = v(t.exports, s2, ["require", "types"]);
n = l;
} catch {
return;
}
else
!s2 && t.tsconfig && (n = t.tsconfig);
return r.join(e, "..", n);
};
var M = "package.json";
var R2 = "tsconfig.json";
var ke = (e, s2) => {
let i = e;
if (e === ".." && (i = r.join(i, R2)), e[0] === "." && (i = r.resolve(s2, i)), r.isAbsolute(i)) {
if (B(i)) {
if ($.statSync(i).isFile())
return i;
} else if (!i.endsWith(".json")) {
const k = `${i}.json`;
if (B(k))
return k;
}
return;
}
const [n, ...t] = e.split("/"), l = n[0] === "@" ? `${n}/${t.shift()}` : n, c = t.join("/"), a2 = ae();
if (a2) {
const { resolveRequest: k } = a2;
try {
if (l === e) {
const j = k(r.join(l, M), s2);
if (j) {
const w2 = J(j, c);
if (w2 && B(w2))
return w2;
}
} else {
let j;
try {
j = k(e, s2, { extensions: [".json"] });
} catch {
j = k(r.join(e, R2), s2);
}
if (j)
return j;
}
} catch {
}
}
const p2 = Y(s2, r.join("node_modules", l));
if (!p2 || !$.statSync(p2).isDirectory())
return;
const L = r.join(p2, M);
if (B(L)) {
const k = J(L, c);
if (!k)
return;
if (B(k))
return k;
}
const g = r.join(p2, c), T = g.endsWith(".json");
if (!T) {
const k = `${g}.json`;
if (B(k))
return k;
}
if (B(g)) {
if ($.statSync(g).isDirectory()) {
const k = r.join(g, M);
if (B(k)) {
const w2 = J(k, "", true);
if (w2 && B(w2))
return w2;
}
const j = r.join(g, R2);
if (B(j))
return j;
} else if (T)
return g;
}
};
var be = (e, s2) => {
var i;
const n = ke(e, s2);
if (!n)
throw new Error(`File '${e}' not found.`);
const t = G(n);
if (delete t.references, (i = t.compilerOptions) != null && i.baseUrl) {
const { compilerOptions: l } = t;
l.baseUrl = r.relative(s2, r.join(r.dirname(n), l.baseUrl)) || "./";
}
return t.files && (t.files = t.files.map((l) => r.relative(s2, r.join(r.dirname(n), l)))), t.include && (t.include = t.include.map((l) => r.relative(s2, r.join(r.dirname(n), l)))), t;
};
var G = (e) => {
let s2;
try {
s2 = $.realpathSync(e);
} catch {
throw new Error(`Cannot resolve tsconfig at path: ${e}`);
}
const i = r.dirname(s2);
let n = C(s2) || {};
if (typeof n != "object")
throw new SyntaxError(`Failed to parse tsconfig at: ${e}`);
if (n.extends) {
const t = Array.isArray(n.extends) ? n.extends : [n.extends];
delete n.extends;
for (const l of t.reverse()) {
const c = be(l, i), a2 = { ...c, ...n, compilerOptions: { ...c.compilerOptions, ...n.compilerOptions } };
c.watchOptions && (a2.watchOptions = { ...c.watchOptions, ...n.watchOptions }), n = a2;
}
}
if (n.compilerOptions) {
const { compilerOptions: t } = n;
t.baseUrl && (t.baseUrl = P(t.baseUrl)), t.outDir && (Array.isArray(n.exclude) || (n.exclude = []), n.exclude.push(t.outDir), t.outDir = P(t.outDir));
} else
n.compilerOptions = {};
if (n.files && (n.files = n.files.map(P)), n.include && (n.include = n.include.map(U)), n.watchOptions) {
const { watchOptions: t } = n;
t.excludeDirectories && (t.excludeDirectories = t.excludeDirectories.map((l) => U(r.resolve(i, l))));
}
return n;
};
var Te = (e = process.cwd(), s2 = "tsconfig.json") => {
const i = Y(U(e), s2);
if (!i)
return null;
const n = G(i);
return { path: i, config: n };
};
var we = /\*/g;
var ee = (e, s2) => {
const i = e.match(we);
if (i && i.length > 1)
throw new Error(s2);
};
var Oe = (e) => {
if (e.includes("*")) {
const [s2, i] = e.split("*");
return { prefix: s2, suffix: i };
}
return e;
};
var ve = ({ prefix: e, suffix: s2 }, i) => i.startsWith(e) && i.endsWith(s2);
var je = (e, s2, i) => Object.entries(e).map(([n, t]) => (ee(n, `Pattern '${n}' can have at most one '*' character.`), { pattern: Oe(n), substitutions: t.map((l) => {
if (ee(l, `Substitution '${l}' in pattern '${n}' can have at most one '*' character.`), !s2 && !V.test(l))
throw new Error("Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?");
return r.join(i, l);
}) }));
var Ae = (e) => {
if (!e.config.compilerOptions)
return null;
const { baseUrl: s2, paths: i } = e.config.compilerOptions;
if (!s2 && !i)
return null;
const n = r.resolve(r.dirname(e.path), s2 || "."), t = i ? je(i, s2, n) : [];
return (l) => {
if (V.test(l))
return [];
const c = [];
for (const g of t) {
if (g.pattern === l)
return g.substitutions.map(U);
typeof g.pattern != "string" && c.push(g);
}
let a2, p2 = -1;
for (const g of c)
ve(g.pattern, l) && g.pattern.prefix.length > p2 && (p2 = g.pattern.prefix.length, a2 = g);
if (!a2)
return s2 ? [U(r.join(n, l))] : [];
const L = l.slice(a2.pattern.prefix.length, l.length - a2.pattern.suffix.length);
return a2.substitutions.map((g) => U(g.replace("*", L)));
};
};
var { join: D } = r.posix;
var he = ["node_modules", "bower_components", "jspm_packages"];
var z = `(?!(${he.join("|")})(/|$))`;
var se = process.platform === "win32";
// src/cli/util/ExternalPlugin.ts
function externalPlugin(cwd) {
return {
name: "external",
setup(build) {
const tsConfig = Te(cwd);
const rootDir = tsConfig && normalize(dirname(tsConfig.path));
const pathsMatcher = tsConfig && Ae(tsConfig);
build.onResolve({ filter: /^[^\.].*/ }, async ({ path, ...args }) => {
if (args.kind === "entry-point")
return;
const extern = { path, external: true };
if (!tsConfig || !rootDir || !pathsMatcher)
return extern;
const tryPaths = pathsMatcher(path);
if (tryPaths.length === 0)
return extern;
for (const attempt of tryPaths) {
const location = relative(rootDir, attempt);
const resolved = await build.resolve(`./${location}`, {
kind: args.kind,
resolveDir: rootDir
});
if (resolved.errors.length === 0)
return resolved;
}
return extern;
});
}
};
}
export {
externalPlugin
};