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.
254 lines (192 loc) • 8.5 kB
JavaScript
exports.id = 120;
exports.ids = [120];
exports.modules = {
/***/ 1533:
/***/ ((__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 */ });
/**
* Contains helpers for working with vendor prefixes.
*
* Copied from https://github.com/postcss/postcss/commit/777c55b5d2a10605313a4972888f4f32005f5ac2
*
* @namespace vendor
*/
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
/**
* Returns the vendor prefix extracted from an input string.
*
* @param {string} prop String with or without vendor prefix.
*
* @returns {string} vendor prefix or empty string
*
* @example
* vendor.prefix('-moz-tab-size') //=> '-moz-'
* vendor.prefix('tab-size') //=> ''
*/
prefix(prop) {
const match = prop.match(/^(-\w+-)/);
if (match) {
return match[0] || '';
}
return '';
},
/**
* Returns the input string stripped of its vendor prefix.
*
* @param {string} prop String with or without vendor prefix.
*
* @returns {string} String name without vendor prefixes.
*
* @example
* vendor.unprefixed('-moz-tab-size') //=> 'tab-size'
*/
unprefixed(prop) {
return prop.replace(/^-\w+-/, '');
},
});
/***/ }),
/***/ 1564:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ validateObjectWithArrayProps)
/* harmony export */ });
/* harmony import */ var _validateTypes_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(579);
/**
* Check whether the variable is an object and all its properties are one or more values
* that satisfy the specified validator(s):
*
* @example
* ignoreProperties = {
* value1: ["item11", "item12", "item13"],
* value2: "item2",
* };
* validateObjectWithArrayProps(isString)(ignoreProperties);
* //=> true
*
* @typedef {(value: unknown) => boolean} Validator
* @param {...Validator} validators
* @returns {Validator}
*/
function validateObjectWithArrayProps(...validators) {
return (value) => {
if (!(0,_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(value)) {
return false;
}
return Object.values(value)
.flat()
.every((item) => validators.some((v) => v(item)));
};
}
/***/ }),
/***/ 1717:
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ parseMediaQuery)
/* harmony export */ });
/* harmony import */ var _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1710);
/* harmony import */ var _getAtRuleParams_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1520);
/**
* @param {import('postcss').AtRule} atRule
* @returns {ReturnType<typeof import('@csstools/media-query-list-parser').parse>}
*/
function parseMediaQuery(atRule) {
const mediaQueries = (0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.parse)((0,_getAtRuleParams_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])(atRule), {
preserveInvalidMediaQueries: true,
});
return mediaQueries;
}
/***/ }),
/***/ 1718:
/***/ ((__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 _csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1710);
/* harmony import */ var _csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1647);
/* harmony import */ var _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(579);
/* harmony import */ var _utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1519);
/* harmony import */ var _utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1535);
/* harmony import */ var _utils_matchesStringOrRegExp_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(870);
/* harmony import */ var _utils_optionsMatches_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(869);
/* harmony import */ var _utils_parseMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1717);
/* harmony import */ var _utils_report_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(945);
/* harmony import */ var _utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(950);
/* harmony import */ var _utils_validateObjectWithArrayProps_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(1564);
/* harmony import */ var _utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(873);
/* harmony import */ var _utils_vendor_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1533);
const ruleName = 'media-feature-name-value-allowed-list';
const messages = (0,_utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_9__["default"])(ruleName, {
rejected: (name, value) => `Unexpected value "${value}" for name "${name}"`,
});
const meta = {
url: 'https://stylelint.io/user-guide/rules/media-feature-name-value-allowed-list',
};
/** @type {import('stylelint').CoreRules[ruleName]} */
const rule = (primary) => {
return (root, result) => {
const validOptions = (0,_utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_11__["default"])(result, ruleName, {
actual: primary,
possible: [(0,_utils_validateObjectWithArrayProps_mjs__WEBPACK_IMPORTED_MODULE_10__["default"])(_utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__.isString, _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__.isRegExp)],
});
if (!validOptions) {
return;
}
root.walkAtRules(_utils_regexes_mjs__WEBPACK_IMPORTED_MODULE_4__.atRuleRegexes.mediaName, (atRule) => {
(0,_utils_parseMediaQuery_mjs__WEBPACK_IMPORTED_MODULE_7__["default"])(atRule).forEach((mediaQuery) => {
if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaQueryInvalid)(mediaQuery)) return;
const initialState = {
mediaFeatureName: '',
unprefixedMediaFeatureName: '',
};
mediaQuery.walk(({ node, state }) => {
if (!state) return;
if ((0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeature)(node)) {
state.mediaFeatureName = node.getName();
state.unprefixedMediaFeatureName = _utils_vendor_mjs__WEBPACK_IMPORTED_MODULE_12__["default"].unprefixed(node.getName());
return;
}
if (!(0,_csstools_media_query_list_parser__WEBPACK_IMPORTED_MODULE_0__.isMediaFeatureValue)(node)) return;
const { mediaFeatureName, unprefixedMediaFeatureName } = state;
if (!mediaFeatureName || !unprefixedMediaFeatureName) return;
const componentValues = [node.value].flat();
const value = componentValues.map((x) => x.toString()).join('');
const allowedValuesKey = Object.keys(primary).find((featureName) =>
(0,_utils_matchesStringOrRegExp_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(unprefixedMediaFeatureName, featureName),
);
if (allowedValuesKey == null) {
return;
}
if ((0,_utils_optionsMatches_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(primary, allowedValuesKey, value)) {
return;
}
const atRuleIndex = (0,_utils_nodeFieldIndices_mjs__WEBPACK_IMPORTED_MODULE_3__.atRuleParamIndex)(atRule);
const [startIndex, endIndex] = (0,_csstools_css_parser_algorithms__WEBPACK_IMPORTED_MODULE_1__.sourceIndices)(componentValues);
(0,_utils_report_mjs__WEBPACK_IMPORTED_MODULE_8__["default"])({
index: atRuleIndex + startIndex,
endIndex: atRuleIndex + endIndex + 1,
message: messages.rejected,
messageArgs: [mediaFeatureName, value],
node: atRule,
ruleName,
result,
});
}, initialState);
});
});
};
};
rule.ruleName = ruleName;
rule.messages = messages;
rule.meta = meta;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rule);
/***/ })
};
;
//# sourceMappingURL=120.extension.js.map
;