aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js')
-rw-r--r--vanilla/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js156
1 files changed, 156 insertions, 0 deletions
diff --git a/vanilla/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js b/vanilla/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js
new file mode 100644
index 0000000..74d0dab
--- /dev/null
+++ b/vanilla/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js
@@ -0,0 +1,156 @@
+const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
+function normalizeWindowsPath(input = "") {
+ if (!input) {
+ return input;
+ }
+ return input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
+}
+
+const _UNC_REGEX = /^[/\\]{2}/;
+const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
+const _DRIVE_LETTER_RE = /^[A-Za-z]:$/;
+const normalize = function(path) {
+ if (path.length === 0) {
+ return ".";
+ }
+ path = normalizeWindowsPath(path);
+ const isUNCPath = path.match(_UNC_REGEX);
+ const isPathAbsolute = isAbsolute(path);
+ const trailingSeparator = path[path.length - 1] === "/";
+ path = normalizeString(path, !isPathAbsolute);
+ if (path.length === 0) {
+ if (isPathAbsolute) {
+ return "/";
+ }
+ return trailingSeparator ? "./" : ".";
+ }
+ if (trailingSeparator) {
+ path += "/";
+ }
+ if (_DRIVE_LETTER_RE.test(path)) {
+ path += "/";
+ }
+ if (isUNCPath) {
+ if (!isPathAbsolute) {
+ return `//./${path}`;
+ }
+ return `//${path}`;
+ }
+ return isPathAbsolute && !isAbsolute(path) ? `/${path}` : path;
+};
+const join = function(...segments) {
+ let path = "";
+ for (const seg of segments) {
+ if (!seg) {
+ continue;
+ }
+ if (path.length > 0) {
+ const pathTrailing = path[path.length - 1] === "/";
+ const segLeading = seg[0] === "/";
+ const both = pathTrailing && segLeading;
+ if (both) {
+ path += seg.slice(1);
+ } else {
+ path += pathTrailing || segLeading ? seg : `/${seg}`;
+ }
+ } else {
+ path += seg;
+ }
+ }
+ return normalize(path);
+};
+function cwd() {
+ if (typeof process !== "undefined" && typeof process.cwd === "function") {
+ return process.cwd().replace(/\\/g, "/");
+ }
+ return "/";
+}
+const resolve = function(...arguments_) {
+ arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));
+ let resolvedPath = "";
+ let resolvedAbsolute = false;
+ for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) {
+ const path = index >= 0 ? arguments_[index] : cwd();
+ if (!path || path.length === 0) {
+ continue;
+ }
+ resolvedPath = `${path}/${resolvedPath}`;
+ resolvedAbsolute = isAbsolute(path);
+ }
+ resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);
+ if (resolvedAbsolute && !isAbsolute(resolvedPath)) {
+ return `/${resolvedPath}`;
+ }
+ return resolvedPath.length > 0 ? resolvedPath : ".";
+};
+function normalizeString(path, allowAboveRoot) {
+ let res = "";
+ let lastSegmentLength = 0;
+ let lastSlash = -1;
+ let dots = 0;
+ let char = null;
+ for (let index = 0; index <= path.length; ++index) {
+ if (index < path.length) {
+ char = path[index];
+ } else if (char === "/") {
+ break;
+ } else {
+ char = "/";
+ }
+ if (char === "/") {
+ if (lastSlash === index - 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 = index;
+ dots = 0;
+ continue;
+ } else if (res.length > 0) {
+ res = "";
+ lastSegmentLength = 0;
+ lastSlash = index;
+ dots = 0;
+ continue;
+ }
+ }
+ if (allowAboveRoot) {
+ res += res.length > 0 ? "/.." : "..";
+ lastSegmentLength = 2;
+ }
+ } else {
+ if (res.length > 0) {
+ res += `/${path.slice(lastSlash + 1, index)}`;
+ } else {
+ res = path.slice(lastSlash + 1, index);
+ }
+ lastSegmentLength = index - lastSlash - 1;
+ }
+ lastSlash = index;
+ dots = 0;
+ } else if (char === "." && dots !== -1) {
+ ++dots;
+ } else {
+ dots = -1;
+ }
+ }
+ return res;
+}
+const isAbsolute = function(p) {
+ return _IS_ABSOLUTE_RE.test(p);
+};
+const dirname = function(p) {
+ const segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1);
+ if (segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0])) {
+ segments[0] += "/";
+ }
+ return segments.join("/") || (isAbsolute(p) ? "/" : ".");
+};
+
+export { dirname as d, join as j, resolve as r };