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.

262 lines (200 loc) 9.27 kB
"use strict"; 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