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.
262 lines (200 loc) • 9.27 kB
JavaScript
exports.id = 154;
exports.ids = [154];
exports.modules = {
/***/ 1708:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(579);
/* harmony import */ var _utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1519);
/* harmony import */ var _utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1535);
/* harmony import */ var _utils_findMediaFeatureNames_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1709);
/* harmony import */ var _utils_getAtRuleParams_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1520);
/* harmony import */ var _utils_isCustomMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1711);
/* harmony import */ var _utils_matchesStringOrRegExp_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(870);
/* harmony import */ var _utils_report_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(945);
/* harmony import */ var _utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(950);
/* harmony import */ var _utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(873);
const ruleName = 'media-feature-name-allowed-list';
const messages = (0,_utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])(ruleName, {
rejected: (name) => `Unexpected media feature name "${name}"`,
});
const meta = {
url: 'https://stylelint.io/user-guide/rules/media-feature-name-allowed-list',
};
/** @type {import('stylelint').CoreRules[ruleName]} */
const rule = (primary) => {
return (root, result) => {
const validOptions = (0,_utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])(result, ruleName, {
actual: primary,
possible: [_utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isString, _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isRegExp],
});
if (!validOptions) {
return;
}
root.walkAtRules(_utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_2__.atRuleRegexes.mediaName, (atRule) => {
(0,_utils_findMediaFeatureNames_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_utils_getAtRuleParams_mjs__WEBPACK_IMPORTED_MODULE_4__["default"])(atRule), (mediaFeatureNameToken) => {
const [, , startIndex, endIndex, { value: featureName }] = mediaFeatureNameToken;
if ((0,_utils_isCustomMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(featureName)) {
return;
}
if ((0,_utils_matchesStringOrRegExp_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(featureName, primary)) {
return;
}
const atRuleIndex = (0,_utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_1__.atRuleParamIndex)(atRule);
(0,_utils_report_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])({
message: messages.rejected,
messageArgs: [featureName],
node: atRule,
index: atRuleIndex + startIndex,
endIndex: atRuleIndex + endIndex + 1,
ruleName,
result,
});
});
});
};
};
rule.primaryOptionArray = true;
rule.ruleName = ruleName;
rule.messages = messages;
rule.meta = meta;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rule);
/***/ }),
/***/ 1709:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ findMediaFeatureNames)
/* harmony export */ });
/* harmony import */ var _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(889);
/* harmony import */ var _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1710);
/* harmony import */ var _csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1647);
/** @typedef {Array<import('@csstools/media-query-list-parser').MediaQuery>} MediaQueryList */
/** @typedef {import('@csstools/css-tokenizer').TokenIdent} TokenIdent */
/** @typedef {{ stringify: () => string }} MediaQuerySerializer */
const rangeFeatureOperator = /[<>=]/;
/**
* Search a CSS string for Media Feature names.
* For every found name, invoke the callback, passing the token
* as an argument.
*
* Found tokens are mutable and modifications made to them will be reflected in the output.
*
* This function supports some non-standard syntaxes like SCSS variables and interpolation.
*
* @param {string} mediaQueryParams
* @param {(mediaFeatureName: TokenIdent) => void} callback
*
* @returns {MediaQuerySerializer}
*/
function findMediaFeatureNames(mediaQueryParams, callback) {
const tokens = (0,_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.tokenize)({ css: mediaQueryParams });
const list = (0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_2__.parseCommaSeparatedListOfComponentValues)(tokens);
const mediaQueryConditions = list.flatMap((listItem) => {
return listItem.flatMap((componentValue) => {
if (
!(0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_2__.isSimpleBlockNode)(componentValue) ||
componentValue.startToken[0] !== _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.OpenParen
) {
return [];
}
const blockTokens = componentValue.tokens();
const mediaQueryList = (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.parseFromTokens)(blockTokens, {
preserveInvalidMediaQueries: true,
});
return mediaQueryList.filter((mediaQuery) => {
return !(0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isMediaQueryInvalid)(mediaQuery);
});
});
});
mediaQueryConditions.forEach((mediaQuery) => {
mediaQuery.walk(({ node }) => {
if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isMediaFeature)(node)) {
const token = node.getNameToken();
if (token[0] !== _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.Ident) return;
callback(token);
}
if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_1__.isGeneralEnclosed)(node)) {
topLevelTokenNodes(node).forEach((token, i, topLevelTokens) => {
if (token[0] !== _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.Ident) {
return;
}
const nextToken = topLevelTokens[i + 1];
const prevToken = topLevelTokens[i - 1];
if (
// Media Feature
(!prevToken && nextToken && nextToken[0] === _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.Colon) ||
// Range Feature
(nextToken &&
nextToken[0] === _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.Delim &&
rangeFeatureOperator.test(nextToken[4].value)) ||
// Range Feature
(prevToken &&
prevToken[0] === _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.Delim &&
rangeFeatureOperator.test(prevToken[4].value))
) {
callback(token);
}
});
}
});
});
// Serializing takes time/resources and not all callers will use this.
// By returning an object with a stringify method, we can avoid doing
// this work when it's not needed.
return {
stringify() {
return (0,_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.stringify)(...tokens);
},
};
}
/** @param {import('@csstools/media-query-list-parser').GeneralEnclosed} node */
function topLevelTokenNodes(node) {
const components = node.value.value;
if ((0,_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.isToken)(components) || components.length === 0 || (0,_csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.isToken)(components[0])) {
return [];
}
/** @type {Array<import('@csstools/css-tokenizer').CSSToken>} */
const relevantTokens = [];
// To consume the next token if it is a scss variable
let lastWasDollarSign = false;
components.forEach((component) => {
// Only preserve top level tokens (idents, delims, ...)
// Discard all blocks, functions, ...
if (component && (0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_2__.isTokenNode)(component)) {
if (component.value[0] === _csstools_css_tokenizer__WEBPACK_IMPORTED_MODULE_0__.TokenType.Delim && component.value[4].value === '$') {
lastWasDollarSign = true;
return;
}
if (lastWasDollarSign) {
lastWasDollarSign = false;
return;
}
relevantTokens.push(component.value);
}
});
return relevantTokens;
}
/***/ }),
/***/ 1711:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ isCustomMediaQuery)
/* harmony export */ });
/**
* Check whether a media query is a custom
* @param {string} mediaQuery
* @returns {boolean}
*/
function isCustomMediaQuery(mediaQuery) {
return mediaQuery.startsWith('--');
}
/***/ })
};
;
//# sourceMappingURL=154.extension.js.map
;