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.

232 lines (176 loc) 6.59 kB
"use strict"; exports.id = 114; exports.ids = [114]; exports.modules = { /***/ 1532: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ isStandardSyntaxAtRule) /* harmony export */ }); /** * Check whether a at-rule is standard * * @param {import('postcss').AtRule | import('postcss-less').AtRule} atRule postcss at-rule node * @returns {boolean} If `true`, the declaration is standard */ function isStandardSyntaxAtRule(atRule) { // Ignore `@charset` css rule (is parsed as at-rule) if (atRule.name.toLowerCase() === 'charset') { return false; } // Ignore scss `@content` inside mixins if (!atRule.nodes && atRule.params === '') { return false; } // Ignore Less mixins if ('mixin' in atRule && atRule.mixin) { return false; } // Ignore Less detached ruleset `@detached-ruleset: { background: red; }; .top { @detached-ruleset(); }` if ( ('variable' in atRule && atRule.variable) || (!atRule.nodes && atRule.raws.afterName === '' && atRule.params[0] === '(') ) { return false; } return true; } /***/ }), /***/ 1562: /***/ ((__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_createMapWithSet_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1563); /* harmony import */ var _utils_isStandardSyntaxAtRule_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1532); /* harmony import */ var _utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(579); /* harmony import */ var _utils_report_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(945); /* harmony import */ var _utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(950); /* harmony import */ var _utils_validateObjectWithArrayProps_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1564); /* harmony import */ var _utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(873); // NOTE: We should have named this rule as `at-rule-descriptor-required-list` instead. // See https://github.com/stylelint/stylelint/pull/8185 const ruleName = 'at-rule-property-required-list'; const messages = (0,_utils_ruleMessages_mjs__WEBPACK_IMPORTED_MODULE_4__["default"])(ruleName, { expected: (atRule, property) => `Expected property (or descriptor) "${property}" for at-rule "${atRule}"`, }); const meta = { url: 'https://stylelint.io/user-guide/rules/at-rule-property-required-list', }; /** @type {import('stylelint').CoreRules[ruleName]} */ const rule = (primary) => { return (root, result) => { const validOptions = (0,_utils_validateOptions_mjs__WEBPACK_IMPORTED_MODULE_6__["default"])(result, ruleName, { actual: primary, possible: [(0,_utils_validateObjectWithArrayProps_mjs__WEBPACK_IMPORTED_MODULE_5__["default"])(_utils_validateTypes_mjs__WEBPACK_IMPORTED_MODULE_2__.isString)], }); if (!validOptions) { return; } const propLists = (0,_utils_createMapWithSet_mjs__WEBPACK_IMPORTED_MODULE_0__["default"])(primary); /** @type {Set<string>} */ const currentPropList = new Set(); root.walkAtRules((atRule) => { if (!(0,_utils_isStandardSyntaxAtRule_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])(atRule)) { return; } const { name, nodes } = atRule; if (!nodes) return; const atRuleName = name.toLowerCase(); const propList = propLists.get(atRuleName); if (!propList) { return; } currentPropList.clear(); for (const node of nodes) { if (!node || node.type !== 'decl') continue; const propName = node.prop.toLowerCase(); if (!propList.has(propName)) continue; currentPropList.add(propName); } if (currentPropList.size === propList.size) { return; } for (const requiredProp of propList) { if (currentPropList.has(requiredProp)) continue; const atName = `@${atRule.name}`; (0,_utils_report_mjs__WEBPACK_IMPORTED_MODULE_3__["default"])({ message: messages.expected, messageArgs: [atName, requiredProp], node: atRule, word: atName, result, ruleName, }); } }); }; }; rule.ruleName = ruleName; rule.messages = messages; rule.meta = meta; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rule); /***/ }), /***/ 1563: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ createMapWithSet) /* harmony export */ }); /** * Create a map with unique sets of values from a record. * * @template T * @param {Record<string, T | T[]>} record * @returns {Map<string, Set<T>>} */ function createMapWithSet(record) { /** @type {Map<string, Set<T>>} */ const map = new Map(); for (const [key, value] of Object.entries(record)) { const list = Array.isArray(value) ? value : [value]; map.set(key, new Set(list)); } return map; } /***/ }), /***/ 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))); }; } /***/ }) }; ; //# sourceMappingURL=114.extension.js.map