UNPKG

ocrmnav

Version:

DevStack - The Complete Developer Toolkit - Virtual file system, workflow automation, and more than 65+ other development tools / features in one seamless extension. Cutting down dev times never before seen.

1,131 lines (855 loc) 39 kB
"use strict"; exports.id = 161; exports.ids = [161]; exports.modules = { /***/ 1781: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ pluralize) /* harmony export */ }); /** * Returns the plural form of the given word. * * @param {string} singular * @param {number} count * @returns {string} */ function pluralize(singular, count) { return count === 1 ? singular : `${singular}s`; } /***/ }), /***/ 1823: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ preprocessWarnings) /* harmony export */ }); /* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(786); /** @import {LintResult} from 'stylelint' */ /** @typedef {LintResult['parseErrors'][0]} ParseError */ /** @typedef {LintResult['warnings'][0]} Warning */ /** @typedef {Warning['severity']} Severity */ /** * Preprocess warnings in a given lint result. * Note that this function has a side-effect. * * @param {LintResult} result * @returns {LintResult} */ function preprocessWarnings(result) { for (const error of result.parseErrors || []) { result.warnings.push(parseErrorToWarning(error)); } for (const warning of result.warnings) { warning.severity = normalizeSeverity(warning); } result.warnings.sort(byLocationOrder); return result; } /** * @param {ParseError} error * @returns {Warning} */ function parseErrorToWarning(error) { return { line: error.line, column: error.column, rule: error.stylelintType, severity: _constants_mjs__WEBPACK_IMPORTED_MODULE_0__.SEVERITY_ERROR, text: `${error.text} (${error.stylelintType})`, }; } /** * @param {Warning} warning * @returns {Severity} */ function normalizeSeverity(warning) { // NOTE: Plugins may add a warning without severity, for example, // by directly using the PostCSS `Result#warn()` API. return warning.severity || _constants_mjs__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SEVERITY; } /** * @param {Warning} a * @param {Warning} b * @returns {number} */ function byLocationOrder(a, b) { // positionless first if (!a.line && b.line) return -1; // positionless first if (a.line && !b.line) return 1; if (a.line < b.line) return -1; if (a.line > b.line) return 1; if (a.column < b.column) return -1; if (a.column > b.column) return 1; return 0; } /***/ }), /***/ 1826: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ stringFormatter) /* harmony export */ }); /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29); /* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(102); /* harmony import */ var table__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(893); /* harmony import */ var picocolors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(723); /* harmony import */ var string_width__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1827); /* harmony import */ var _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(579); /* harmony import */ var _calcSeverityCounts_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1831); /* harmony import */ var _utils_isUnicodeSupported_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1832); /* harmony import */ var _utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1781); /* harmony import */ var _preprocessWarnings_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(1823); /* harmony import */ var _terminalLink_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1833); const { yellow, dim, underline, blue, red, green } = picocolors__WEBPACK_IMPORTED_MODULE_3__; const NON_ASCII_PATTERN = /\P{ASCII}/u; const MARGIN_WIDTHS = 9; /** * @param {string} s * @returns {string} */ function identity(s) { return s; } const levelColors = { info: blue, warning: yellow, error: red, success: identity, }; const supportsUnicode = (0,_utils_isUnicodeSupported_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])(); const symbols = { info: blue(supportsUnicode ? 'ℹ' : 'i'), warning: yellow(supportsUnicode ? '⚠' : '‼'), error: red(supportsUnicode ? '✖' : '×'), success: green(supportsUnicode ? '✔' : '√'), }; /** * @param {import('stylelint').LintResult[]} results * @returns {string} */ function deprecationsFormatter(results) { const allDeprecationWarnings = results.flatMap((result) => result.deprecations || []); if (allDeprecationWarnings.length === 0) { return ''; } const seenText = new Set(); const lines = []; for (const { text, reference } of allDeprecationWarnings) { if (seenText.has(text)) continue; seenText.add(text); let line = ` ${dim('-')} ${text}`; if (reference) { line += dim(` See: ${underline(reference)}`); } lines.push(line); } return ['', yellow('Deprecation warnings:'), ...lines, ''].join('\n'); } /** * @param {import('stylelint').LintResult[]} results * @returns {string} */ function invalidOptionsFormatter(results) { const allInvalidOptionWarnings = results.flatMap((result) => (result.invalidOptionWarnings || []).map((warning) => warning.text), ); const uniqueInvalidOptionWarnings = [...new Set(allInvalidOptionWarnings)]; return uniqueInvalidOptionWarnings.reduce((output, warning) => { output += red('Invalid Option: '); output += warning; return `${output}\n`; }, '\n'); } /** * @param {string} fromValue * @param {string} cwd * @returns {string} */ function logFrom(fromValue, cwd) { if (fromValue.startsWith('<')) { return underline(fromValue); } const filePath = (0,node_path__WEBPACK_IMPORTED_MODULE_0__.relative)(cwd, fromValue).split(node_path__WEBPACK_IMPORTED_MODULE_0__.sep).join('/'); return (0,_terminalLink_mjs__WEBPACK_IMPORTED_MODULE_10__["default"])(filePath, `file://${fromValue}`); } /** * @param {{[k: number]: number}} columnWidths * @returns {number} */ function getMessageWidth(columnWidths) { const width = columnWidths[3]; (0,_utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_5__.assertNumber)(width); if (!node_process__WEBPACK_IMPORTED_MODULE_1__.stdout.isTTY) { return width; } const availableWidth = node_process__WEBPACK_IMPORTED_MODULE_1__.stdout.columns < 80 ? 80 : node_process__WEBPACK_IMPORTED_MODULE_1__.stdout.columns; const fullWidth = Object.values(columnWidths).reduce((a, b) => a + b); // If there is no reason to wrap the text, we won't align the last column to the right if (availableWidth > fullWidth + MARGIN_WIDTHS) { return width; } return availableWidth - (fullWidth - width + MARGIN_WIDTHS); } /** * @param {import('stylelint').Warning[]} messages * @param {string} source * @param {string} cwd * @returns {string} */ function formatter(messages, source, cwd) { if (messages.length === 0) return ''; /** * Create a list of column widths, needed to calculate * the size of the message column and if needed wrap it. * @type {{[k: string]: number}} */ const columnWidths = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1 }; /** * @param {[string, string, string, string, string]} columns * @returns {[string, string, string, string, string]} */ function calculateWidths(columns) { for (const [key, value] of Object.entries(columns)) { const normalisedValue = value ? value.toString() : value; const width = columnWidths[key]; (0,_utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_5__.assertNumber)(width); columnWidths[key] = Math.max(width, string_width__WEBPACK_IMPORTED_MODULE_4__(normalisedValue)); } return columns; } let output = '\n'; if (source) { output += `${logFrom(source, cwd)}\n`; } /** * @param {import('stylelint').Warning} message * @returns {string} */ function formatMessageText(message) { let result = message.text; result = result // Remove all control characters (newline, tab and etc) .replace(/[\u0001-\u001A]+/g, ' ') // eslint-disable-line no-control-regex .replace(/\.$/, ''); const ruleString = ` (${message.rule})`; if (result.endsWith(ruleString)) { result = result.slice(0, result.lastIndexOf(ruleString)); } return result; } const cleanedMessages = messages.map((message) => { const { line, column, severity } = message; /** * @type {[string, string, string, string, string]} */ const row = [ line ? line.toString() : '', column ? column.toString() : '', symbols[severity] ? levelColors[severity](symbols[severity]) : severity, formatMessageText(message), dim(message.rule || ''), ]; calculateWidths(row); return row; }); const messageWidth = getMessageWidth(columnWidths); const hasNonAsciiChar = messages.some((msg) => NON_ASCII_PATTERN.test(msg.text)); output += (0,table__WEBPACK_IMPORTED_MODULE_2__.table)(cleanedMessages, { border: (0,table__WEBPACK_IMPORTED_MODULE_2__.getBorderCharacters)('void'), columns: { 0: { alignment: 'right', width: columnWidths[0], paddingRight: 0, paddingLeft: 2 }, 1: { alignment: 'left', width: columnWidths[1] }, 2: { alignment: 'center', width: columnWidths[2] }, 3: { alignment: 'left', width: messageWidth, wrapWord: messageWidth > 1 && !hasNonAsciiChar, }, 4: { alignment: 'left', width: columnWidths[4], paddingRight: 0 }, }, drawHorizontalLine: () => false, }) .split('\n') .map((el) => el.replace(/(\d+)\s+(\d+)/, (_m, p1, p2) => dim(`${p1}:${p2}`)).trimEnd()) .join('\n'); return output; } /** * @type {import('stylelint').Formatter} */ function stringFormatter(results, returnValue) { let output = invalidOptionsFormatter(results); output += deprecationsFormatter(results); const resultCounts = { error: 0, warning: 0 }; const fixableCounts = { error: 0, warning: 0 }; output = results.reduce((accum, result) => { (0,_preprocessWarnings_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])(result); accum += formatter( result.warnings, result.source || '', (returnValue && returnValue.cwd) || node_process__WEBPACK_IMPORTED_MODULE_1__.cwd(), ); for (const warning of result.warnings) { (0,_calcSeverityCounts_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(warning.severity, resultCounts); const fixable = returnValue.ruleMetadata?.[warning.rule]?.fixable; if (fixable === true) { (0,_calcSeverityCounts_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(warning.severity, fixableCounts); } } return accum; }, output); // Ensure consistent padding output = output.trim(); if (output !== '') { output = `\n${output}\n`; const errorCount = resultCounts.error; const warningCount = resultCounts.warning; const total = errorCount + warningCount; if (total > 0) { const error = red(`${errorCount} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])('error', errorCount)}`); const warning = yellow(`${warningCount} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])('warning', warningCount)}`); const symbol = errorCount > 0 ? symbols.error : symbols.warning; output += `\n${symbol} ${total} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])('problem', total)} (${error}, ${warning})`; } const fixErrorCount = fixableCounts.error; const fixWarningCount = fixableCounts.warning; if (fixErrorCount > 0 || fixWarningCount > 0) { let fixErrorText; let fixWarningText; if (fixErrorCount > 0) { fixErrorText = `${fixErrorCount} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])('error', fixErrorCount)}`; } if (fixWarningCount > 0) { fixWarningText = `${fixWarningCount} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])('warning', fixWarningCount)}`; } const countText = [fixErrorText, fixWarningText].filter(Boolean).join(' and '); output += `\n ${countText} potentially fixable with the "--fix" option.`; } output += '\n\n'; } return output; } /***/ }), /***/ 1827: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const stripAnsi = __webpack_require__(1828); const isFullwidthCodePoint = __webpack_require__(900); const emojiRegex = __webpack_require__(1830); const stringWidth = string => { if (typeof string !== 'string' || string.length === 0) { return 0; } string = stripAnsi(string); if (string.length === 0) { return 0; } string = string.replace(emojiRegex(), ' '); let width = 0; for (let i = 0; i < string.length; i++) { const code = string.codePointAt(i); // Ignore control characters if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { continue; } // Ignore combining characters if (code >= 0x300 && code <= 0x36F) { continue; } // Surrogates if (code > 0xFFFF) { i++; } width += isFullwidthCodePoint(code) ? 2 : 1; } return width; }; module.exports = stringWidth; // TODO: remove this in the next major version module.exports["default"] = stringWidth; /***/ }), /***/ 1828: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const ansiRegex = __webpack_require__(1829); module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; /***/ }), /***/ 1829: /***/ ((module) => { module.exports = ({onlyFirst = false} = {}) => { const pattern = [ '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' ].join('|'); return new RegExp(pattern, onlyFirst ? undefined : 'g'); }; /***/ }), /***/ 1830: /***/ ((module) => { module.exports = function () { // https://mths.be/emoji return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; }; /***/ }), /***/ 1831: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ calcSeverityCounts) /* harmony export */ }); /* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(786); /** * @import {Severity} from 'stylelint' * * @param {Severity} severity * @param {Record<Severity, number>} counts * @returns {void} */ function calcSeverityCounts(severity, counts) { switch (severity) { case _constants_mjs__WEBPACK_IMPORTED_MODULE_0__.SEVERITY_ERROR: counts.error += 1; break; case _constants_mjs__WEBPACK_IMPORTED_MODULE_0__.SEVERITY_WARNING: counts.warning += 1; break; default: throw new Error(`Unknown severity: "${severity}"`); } } /***/ }), /***/ 1832: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ isUnicodeSupported) /* harmony export */ }); /* harmony import */ var node_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(102); /** * Originally copied from https://github.com/sindresorhus/is-unicode-supported/blob/506f27260df3636555714bf10ed40ab9e6a6c96e/index.js * @version 2.0.0 * @summary Detect whether the terminal supports Unicode * @see https://github.com/sindresorhus/is-unicode-supported/pull/1#issuecomment-827321546 * @see microsoft/terminal#13680 */ function isUnicodeSupported() { if (node_process__WEBPACK_IMPORTED_MODULE_0__.platform !== 'win32') { return node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERM !== 'linux'; // Linux console (kernel) } return ( Boolean(node_process__WEBPACK_IMPORTED_MODULE_0__.env.WT_SESSION) || // Windows Terminal Boolean(node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27) node_process__WEBPACK_IMPORTED_MODULE_0__.env.ConEmuTask === '{cmd::Cmder}' || // ConEmu and cmder node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERM_PROGRAM === 'Terminus-Sublime' || node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERM_PROGRAM === 'vscode' || node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERM === 'xterm-256color' || node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERM === 'alacritty' || node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm' || node_process__WEBPACK_IMPORTED_MODULE_0__.env.TERM?.startsWith('rxvt-unicode') // fork of rxvt ); } /***/ }), /***/ 1833: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ terminalLink) /* harmony export */ }); /* harmony import */ var supports_hyperlinks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1834); // ANSI escapes const OSC = '\u001B]'; const BEL = '\u0007'; const SEP = ';'; /** * @see https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda * * @param {string} text * @param {string} url * @returns {string} */ function terminalLink(text, url) { if (supports_hyperlinks__WEBPACK_IMPORTED_MODULE_0__.stdout) { return [OSC, '8', SEP, SEP, url, BEL, text, OSC, '8', SEP, SEP, BEL].join(''); } return text; } /***/ }), /***/ 1834: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const supportsColor = __webpack_require__(1835); const hasFlag = __webpack_require__(1836); /** @param {string} versionString @returns {{ major: number, minor: number, patch: number }} */ function parseVersion(versionString) { if (/^\d{3,4}$/.test(versionString)) { // Env var doesn't always use dots. example: 4601 => 46.1.0 const m = /(\d{1,2})(\d{2})/.exec(versionString) || []; return { major: 0, minor: parseInt(m[1], 10), patch: parseInt(m[2], 10) }; } const versions = (versionString || '').split('.').map(n => parseInt(n, 10)); return { major: versions[0], minor: versions[1], patch: versions[2] }; } /** @param {{ isTTY?: boolean | undefined }} stream @returns {boolean} */ // eslint-disable-next-line complexity function supportsHyperlink(stream) { const { CI, FORCE_HYPERLINK, NETLIFY, TEAMCITY_VERSION, TERM_PROGRAM, TERM_PROGRAM_VERSION, VTE_VERSION, TERM, } = process.env; if (FORCE_HYPERLINK) { return !(FORCE_HYPERLINK.length > 0 && parseInt(FORCE_HYPERLINK, 10) === 0); } if (hasFlag('no-hyperlink') || hasFlag('no-hyperlinks') || hasFlag('hyperlink=false') || hasFlag('hyperlink=never')) { return false; } if (hasFlag('hyperlink=true') || hasFlag('hyperlink=always')) { return true; } // Netlify does not run a TTY, it does not need `supportsColor` check if (NETLIFY) { return true; } // If they specify no colors, they probably don't want hyperlinks. if (!supportsColor.supportsColor(stream)) { return false; } if (stream && !stream.isTTY) { return false; } // Windows Terminal if ('WT_SESSION' in process.env) { return true; } if (process.platform === 'win32') { return false; } if (CI) { return false; } if (TEAMCITY_VERSION) { return false; } if (TERM_PROGRAM) { const version = parseVersion(TERM_PROGRAM_VERSION || ''); switch (TERM_PROGRAM) { case 'iTerm.app': if (version.major === 3) { return version.minor >= 1; } return version.major > 3; case 'WezTerm': return version.major >= 20200620; case 'vscode': // eslint-disable-next-line no-mixed-operators return version.major > 1 || version.major === 1 && version.minor >= 72; case 'ghostty': return true; // No default } } if (VTE_VERSION) { // 0.50.0 was supposed to support hyperlinks, but throws a segfault if (VTE_VERSION === '0.50.0') { return false; } const version = parseVersion(VTE_VERSION); return version.major > 0 || version.minor >= 50; } switch (TERM) { case 'alacritty': // Support added in v0.11 (2022-10-13) return true; // No default } return false; } module.exports = { supportsHyperlink, stdout: supportsHyperlink(process.stdout), stderr: supportsHyperlink(process.stderr) }; /***/ }), /***/ 1835: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { const os = __webpack_require__(3); const tty = __webpack_require__(100); const hasFlag = __webpack_require__(1836); const {env} = process; let forceColor; if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false') || hasFlag('color=never')) { forceColor = 0; } else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true') || hasFlag('color=always')) { forceColor = 1; } if ('FORCE_COLOR' in env) { if (env.FORCE_COLOR === 'true') { forceColor = 1; } else if (env.FORCE_COLOR === 'false') { forceColor = 0; } else { forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); } } function translateLevel(level) { if (level === 0) { return false; } return { level, hasBasic: true, has256: level >= 2, has16m: level >= 3 }; } function supportsColor(haveStream, streamIsTTY) { if (forceColor === 0) { return 0; } if (hasFlag('color=16m') || hasFlag('color=full') || hasFlag('color=truecolor')) { return 3; } if (hasFlag('color=256')) { return 2; } if (haveStream && !streamIsTTY && forceColor === undefined) { return 0; } const min = forceColor || 0; if (env.TERM === 'dumb') { return min; } if (process.platform === 'win32') { // Windows 10 build 10586 is the first Windows release that supports 256 colors. // Windows 10 build 14931 is the first release that supports 16m/TrueColor. const osRelease = os.release().split('.'); if ( Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 ) { return Number(osRelease[2]) >= 14931 ? 3 : 2; } return 1; } if ('CI' in env) { if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { return 1; } return min; } if ('TEAMCITY_VERSION' in env) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } if (env.COLORTERM === 'truecolor') { return 3; } if ('TERM_PROGRAM' in env) { const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); switch (env.TERM_PROGRAM) { case 'iTerm.app': return version >= 3 ? 3 : 2; case 'Apple_Terminal': return 2; // No default } } if (/-256(color)?$/i.test(env.TERM)) { return 2; } if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { return 1; } if ('COLORTERM' in env) { return 1; } return min; } function getSupportLevel(stream) { const level = supportsColor(stream, stream && stream.isTTY); return translateLevel(level); } module.exports = { supportsColor: getSupportLevel, stdout: translateLevel(supportsColor(true, tty.isatty(1))), stderr: translateLevel(supportsColor(true, tty.isatty(2))) }; /***/ }), /***/ 1836: /***/ ((module) => { module.exports = (flag, argv = process.argv) => { const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); const position = argv.indexOf(prefix + flag); const terminatorPosition = argv.indexOf('--'); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); }; /***/ }), /***/ 1839: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ verboseFormatter) /* harmony export */ }); /* harmony import */ var picocolors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(723); /* harmony import */ var _utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1781); /* harmony import */ var _stringFormatter_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1826); /* harmony import */ var _terminalLink_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1833); const { underline, red, yellow, dim, green } = picocolors__WEBPACK_IMPORTED_MODULE_0__; /** @import {Formatter, LintResult, RuleMeta, Severity, Warning} from 'stylelint' */ /** * @type {Formatter} */ function verboseFormatter(results, returnValue) { let output = (0,_stringFormatter_mjs__WEBPACK_IMPORTED_MODULE_2__["default"])(results, returnValue); if (output === '') { output = '\n'; } const ignoredCount = results.filter((result) => result.ignored).length; const checkedDisplay = ignoredCount ? `${results.length - ignoredCount} of ${results.length}` : results.length; output += underline(`${checkedDisplay} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('source', results.length)} checked\n`); for (const result of results) { let formatting = green; if (result.errored) { formatting = red; } else if (result.warnings.length) { formatting = yellow; } else if (result.ignored) { formatting = dim; } let sourceText = fileLink(result.source); if (result.ignored) { sourceText += ' (ignored)'; } output += formatting(` ${sourceText}\n`); } const warnings = results.flatMap((r) => r.warnings); if (warnings.length === 0) { output += '\n0 problems found\n'; } else { const warningsBySeverity = groupBy(warnings, (w) => w.severity); /** * @param {Severity} severity */ const printProblems = (severity) => { const problems = warningsBySeverity[severity]; if (problems === undefined) return; output += '\n'; output += underline(`${problems.length} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])(severity, problems.length)} found\n`); const problemsByRule = groupBy(problems, (w) => w.rule); const metadata = returnValue.ruleMetadata; for (const [rule, list] of Object.entries(problemsByRule)) { const meta = metadata[rule] || {}; let additional = [meta.fixable ? 'maybe fixable' : '', meta.deprecated ? 'deprecated' : ''] .filter(Boolean) .join(', '); additional = additional ? ` (${additional})` : ''; output += dim(` ${ruleLink(rule, meta)}: ${list.length}${additional}\n`); } }; printProblems('error'); printProblems('warning'); } const fixedRules = getFixedRules(results); if (fixedRules.size) { let lines = '\n'; let total = 0; for (const [name, count] of fixedRules) { const meta = returnValue.ruleMetadata[name]; lines += dim(` ${ruleLink(name, meta)}: ${count}\n`); total += count; } output += '\n'; output += underline(`${total} ${(0,_utils_pluralize_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('problem', total)} fixed`); output += lines; } return `${output}\n`; } /** * @template {string} K * @param {Warning[]} array * @param {(w: Warning) => K} keyFn * @returns {Record<K, Warning[]>} * @todo replace by Object.groupBy once support for Node.js version 20 is dropped */ function groupBy(array, keyFn) { /** @type {Record<string, Warning[]>} */ const result = {}; for (const item of array) { const key = keyFn(item); let warnings = result[key]; if (warnings === undefined) { result[key] = warnings = []; } warnings.push(item); } return result; } /** * @param {string | undefined} source * @returns {string} */ function fileLink(source) { if (!source || source.startsWith('<')) { return `${source}`; } return (0,_terminalLink_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])(source, `file://${source}`); } /** * @param {string} rule * @param {Partial<RuleMeta> | undefined} metadata * @returns {string} */ function ruleLink(rule, metadata) { if (metadata && metadata.url) { return (0,_terminalLink_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])(rule, metadata.url); } return rule; } /** @param {LintResult[]} results */ function getFixedRules(results) { /** @type {Map<string, number>} */ const rules = new Map(); for (const { _postcssResult } of results) { if (!_postcssResult) continue; // CSS syntax error const { stylelint: { fixersData }, } = _postcssResult; const entries = Object.entries(fixersData); for (const [ruleName, count] of entries) { if (count) rules.set(ruleName, count); } } return rules; } /***/ }) }; ; //# sourceMappingURL=161.extension.js.map