Files
portfolio/node_modules/.cache/babel-loader/3eccc54e681b9dd6699dc8f3f03ef0ca.json
2021-09-20 16:54:47 -04:00

1 line
27 KiB
JSON

{"ast":null,"code":"// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/path-browserify/index.js"],"names":["normalizeArray","parts","allowAboveRoot","up","i","length","last","splice","unshift","exports","resolve","resolvedPath","resolvedAbsolute","arguments","path","process","cwd","TypeError","charAt","filter","split","p","join","normalize","isAbsolute","trailingSlash","substr","paths","Array","prototype","slice","call","index","relative","from","to","trim","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","push","concat","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","f","extname","startDot","startPart","preDotState","xs","res","str","len"],"mappings":"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","sourcesContent":["// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n"]},"metadata":{},"sourceType":"script"}