You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
228 lines
6.0 KiB
228 lines
6.0 KiB
import url from 'node:url';
|
|
import g from 'path';
|
|
|
|
function normalizeWindowsPath(input = "") {
|
|
if (!input.includes("\\")) {
|
|
return input;
|
|
}
|
|
return input.replace(/\\/g, "/");
|
|
}
|
|
|
|
const _UNC_REGEX = /^[/][/]/;
|
|
const _UNC_DRIVE_REGEX = /^[/][/]([.]{1,2}[/])?([a-zA-Z]):[/]/;
|
|
const _IS_ABSOLUTE_RE = /^\/|^\\|^[a-zA-Z]:[/\\]/;
|
|
const sep = "/";
|
|
const delimiter = ":";
|
|
const normalize = function(path2) {
|
|
if (path2.length === 0) {
|
|
return ".";
|
|
}
|
|
path2 = normalizeWindowsPath(path2);
|
|
const isUNCPath = path2.match(_UNC_REGEX);
|
|
const hasUNCDrive = isUNCPath && path2.match(_UNC_DRIVE_REGEX);
|
|
const isPathAbsolute = isAbsolute(path2);
|
|
const trailingSeparator = path2[path2.length - 1] === "/";
|
|
path2 = normalizeString(path2, !isPathAbsolute);
|
|
if (path2.length === 0) {
|
|
if (isPathAbsolute) {
|
|
return "/";
|
|
}
|
|
return trailingSeparator ? "./" : ".";
|
|
}
|
|
if (trailingSeparator) {
|
|
path2 += "/";
|
|
}
|
|
if (isUNCPath) {
|
|
if (hasUNCDrive) {
|
|
return `//./${path2}`;
|
|
}
|
|
return `//${path2}`;
|
|
}
|
|
return isPathAbsolute && !isAbsolute(path2) ? `/${path2}` : path2;
|
|
};
|
|
const join = function(...args) {
|
|
if (args.length === 0) {
|
|
return ".";
|
|
}
|
|
let joined;
|
|
for (let i = 0; i < args.length; ++i) {
|
|
const arg = args[i];
|
|
if (arg.length > 0) {
|
|
if (joined === void 0) {
|
|
joined = arg;
|
|
} else {
|
|
joined += `/${arg}`;
|
|
}
|
|
}
|
|
}
|
|
if (joined === void 0) {
|
|
return ".";
|
|
}
|
|
return normalize(joined);
|
|
};
|
|
const resolve = function(...args) {
|
|
args = args.map((arg) => normalizeWindowsPath(arg));
|
|
let resolvedPath = "";
|
|
let resolvedAbsolute = false;
|
|
for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {
|
|
const path2 = i >= 0 ? args[i] : process.cwd();
|
|
if (path2.length === 0) {
|
|
continue;
|
|
}
|
|
resolvedPath = `${path2}/${resolvedPath}`;
|
|
resolvedAbsolute = isAbsolute(path2);
|
|
}
|
|
resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);
|
|
if (resolvedAbsolute && !isAbsolute(resolvedPath)) {
|
|
return `/${resolvedPath}`;
|
|
}
|
|
return resolvedPath.length > 0 ? resolvedPath : ".";
|
|
};
|
|
function normalizeString(path2, allowAboveRoot) {
|
|
let res = "";
|
|
let lastSegmentLength = 0;
|
|
let lastSlash = -1;
|
|
let dots = 0;
|
|
let char = null;
|
|
for (let i = 0; i <= path2.length; ++i) {
|
|
if (i < path2.length) {
|
|
char = path2[i];
|
|
} else if (char === "/") {
|
|
break;
|
|
} else {
|
|
char = "/";
|
|
}
|
|
if (char === "/") {
|
|
if (lastSlash === i - 1 || dots === 1) ; else if (dots === 2) {
|
|
if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
|
|
if (res.length > 2) {
|
|
const lastSlashIndex = res.lastIndexOf("/");
|
|
if (lastSlashIndex === -1) {
|
|
res = "";
|
|
lastSegmentLength = 0;
|
|
} else {
|
|
res = res.slice(0, lastSlashIndex);
|
|
lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
|
|
}
|
|
lastSlash = i;
|
|
dots = 0;
|
|
continue;
|
|
} else if (res.length !== 0) {
|
|
res = "";
|
|
lastSegmentLength = 0;
|
|
lastSlash = i;
|
|
dots = 0;
|
|
continue;
|
|
}
|
|
}
|
|
if (allowAboveRoot) {
|
|
res += res.length > 0 ? "/.." : "..";
|
|
lastSegmentLength = 2;
|
|
}
|
|
} else {
|
|
if (res.length > 0) {
|
|
res += `/${path2.slice(lastSlash + 1, i)}`;
|
|
} else {
|
|
res = path2.slice(lastSlash + 1, i);
|
|
}
|
|
lastSegmentLength = i - lastSlash - 1;
|
|
}
|
|
lastSlash = i;
|
|
dots = 0;
|
|
} else if (char === "." && dots !== -1) {
|
|
++dots;
|
|
} else {
|
|
dots = -1;
|
|
}
|
|
}
|
|
return res;
|
|
}
|
|
const isAbsolute = function(p) {
|
|
return _IS_ABSOLUTE_RE.test(p);
|
|
};
|
|
const toNamespacedPath = function(p) {
|
|
return normalizeWindowsPath(p);
|
|
};
|
|
const extname = function(p) {
|
|
return g.posix.extname(normalizeWindowsPath(p));
|
|
};
|
|
const relative = function(from, to) {
|
|
return g.posix.relative(normalizeWindowsPath(from), normalizeWindowsPath(to));
|
|
};
|
|
const dirname = function(p) {
|
|
return g.posix.dirname(normalizeWindowsPath(p));
|
|
};
|
|
const format = function(p) {
|
|
return normalizeWindowsPath(g.posix.format(p));
|
|
};
|
|
const basename = function(p, ext) {
|
|
return g.posix.basename(normalizeWindowsPath(p), ext);
|
|
};
|
|
const parse = function(p) {
|
|
return g.posix.parse(normalizeWindowsPath(p));
|
|
};
|
|
|
|
const _path = /*#__PURE__*/Object.freeze({
|
|
__proto__: null,
|
|
sep: sep,
|
|
delimiter: delimiter,
|
|
normalize: normalize,
|
|
join: join,
|
|
resolve: resolve,
|
|
normalizeString: normalizeString,
|
|
isAbsolute: isAbsolute,
|
|
toNamespacedPath: toNamespacedPath,
|
|
extname: extname,
|
|
relative: relative,
|
|
dirname: dirname,
|
|
format: format,
|
|
basename: basename,
|
|
parse: parse
|
|
});
|
|
|
|
({
|
|
..._path
|
|
});
|
|
|
|
var _a;
|
|
const isNode = typeof process < "u" && typeof process.stdout < "u" && !((_a = process.versions) == null ? void 0 : _a.deno) && !globalThis.window;
|
|
const isBrowser = typeof window !== "undefined";
|
|
|
|
const rootDir = isNode ? resolve(url.fileURLToPath(import.meta.url), "../../") : import.meta.url;
|
|
const distDir = isNode ? resolve(url.fileURLToPath(import.meta.url), "../../dist") : import.meta.url;
|
|
const defaultPort = 51204;
|
|
const EXIT_CODE_RESTART = 43;
|
|
const API_PATH = "/__vitest_api__";
|
|
const configFiles = [
|
|
"vitest.config.ts",
|
|
"vitest.config.mts",
|
|
"vitest.config.cts",
|
|
"vitest.config.js",
|
|
"vitest.config.mjs",
|
|
"vitest.config.cjs",
|
|
"vite.config.ts",
|
|
"vite.config.mts",
|
|
"vite.config.cts",
|
|
"vite.config.js",
|
|
"vite.config.mjs",
|
|
"vite.config.cjs"
|
|
];
|
|
const globalApis = [
|
|
"suite",
|
|
"test",
|
|
"describe",
|
|
"it",
|
|
"chai",
|
|
"expect",
|
|
"assert",
|
|
"expectTypeOf",
|
|
"assertType",
|
|
"vitest",
|
|
"vi",
|
|
"beforeAll",
|
|
"afterAll",
|
|
"beforeEach",
|
|
"afterEach"
|
|
];
|
|
|
|
export { API_PATH as A, EXIT_CODE_RESTART as E, isBrowser as a, resolve as b, basename as c, dirname as d, extname as e, distDir as f, rootDir as g, isAbsolute as h, isNode as i, join as j, configFiles as k, defaultPort as l, globalApis as m, normalize as n, relative as r, toNamespacedPath as t };
|
|
|