{"version":3,"file":"react/js/vendor.vfile@current.27c2894311e1a55ef4ef.js","mappings":"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","sources":["webpack:///./node_modules/vfile/lib/minpath.browser.js","webpack:///./node_modules/vfile/lib/minproc.browser.js","webpack:///./node_modules/vfile/lib/minurl.shared.js","webpack:///./node_modules/vfile/lib/minurl.browser.js","webpack:///./node_modules/vfile/lib/index.js"],"sourcesContent":["// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\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\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.codePointAt(index) === 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 (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 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 (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\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 (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\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 (\n startDot < 0 ||\n end < 0 ||\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 ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n"],"names":["path","basename","ext","undefined","TypeError","assertPath","seenNonSlash","start","end","index","length","codePointAt","slice","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","code","join","segments","joined","absolute","value","allowAboveRoot","lastSlashIndex","result","lastSegmentLength","lastSlash","dots","lastIndexOf","normalizeString","normalize","sep","JSON","stringify","proc","cwd","isUrl","fileUrlOrPath","Boolean","href","protocol","auth","urlToPath","URL","error","url","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","order","VFile","constructor","options","isUint8Array","this","data","history","messages","map","stored","prop","includes","assertNonEmpty","assertPart","Error","stem","push","fail","causeOrReason","optionsOrParentOrPlace","origin","message","fatal","info","name","file","toString","encoding","TextDecoder","decode","part"],"sourceRoot":""}