stylelint-use-logical-spec
Advanced tools
+79
-15
@@ -40,8 +40,12 @@ 'use strict'; | ||
| const validateRuleWithProps = (root, props, fn) => { | ||
| // conditionally walk nodes with children | ||
| if (root.nodes && root.nodes.length) { | ||
| // For supporting css-in-js | ||
| const { | ||
| nodes = [root] | ||
| } = root; // conditionally walk nodes with children | ||
| if (nodes && nodes.length) { | ||
| const args = []; | ||
| const hasProps = props.every(prop => { | ||
| const declIndex = root.nodes.findIndex(child => child.type === 'decl' && child.prop === prop); | ||
| const decl = root.nodes[declIndex]; | ||
| const declIndex = nodes.findIndex(child => child.type === 'decl' && child.prop === prop); | ||
| const decl = nodes[declIndex]; | ||
@@ -61,2 +65,58 @@ if (decl) { | ||
| const cssValueSplit = value => { | ||
| const ret = []; | ||
| const stack = []; | ||
| let part = ''; | ||
| let esc = false; | ||
| let q = ''; | ||
| for (let i = 0; i < value.length; i++) { | ||
| const c = value[i]; | ||
| if (esc) { | ||
| esc = false; | ||
| } else if (c === '\\') { | ||
| esc = true; | ||
| } else if (q) { | ||
| if (c === q) { | ||
| q = ''; | ||
| } | ||
| } else if (c === '\'' || c === '"') { | ||
| q = c; | ||
| } else if (c === ' ' && stack.length === 0) { | ||
| if (part) { | ||
| ret.push(part); | ||
| } | ||
| part = ''; | ||
| continue; | ||
| } else if (c === '(') { | ||
| stack.push(')'); | ||
| } else if (c === '{') { | ||
| stack.push('}'); | ||
| } else if (c === '[') { | ||
| stack.push(']'); | ||
| } else if (stack.length && c === stack[stack.length - 1]) { | ||
| stack.length--; | ||
| } | ||
| part += c; | ||
| } | ||
| if (part) { | ||
| ret.push(part); | ||
| } | ||
| return ret; | ||
| }; // console.log(cssValueSplit('3px 0 5px')); | ||
| // -> [ '3px', '0', '5px' ] | ||
| // console.log(cssValueSplit('3px calc(--bla, 0) 5px')); | ||
| // -> [ '3px', 'calc(--bla, 0)', '5px' ] | ||
| // console.log(cssValueSplit('3px map-get($spacers, 2) 5px')); | ||
| // -> [ '3px', 'map-get($spacers, 2)', '5px' ] | ||
| // console.log(cssValueSplit('-#{map-get($spacers, 2)} #{map-get($spacers, 3)} 5px')); | ||
| // -> [ '-#{map-get($spacers, 2)}', '#{map-get($spacers, 3)}', '5px' ] | ||
| // console.log(cssValueSplit('-#{function("something ) else\')\\" bla", 2)} #{map-get($spacers, 3)} 5px')); | ||
| // [ `-#{function("something ) else')\\" bla", 2)}`, '#{map-get($spacers, 3)}', '5px' ] | ||
| var ruleName = 'liberty/use-logical-spec'; | ||
@@ -100,6 +160,10 @@ | ||
| const reportedDecls = new WeakMap(); | ||
| const reportedDecls = new WeakMap(); // Ignore autofix on those expression value | ||
| const expressionRegex = /^\$\{.*\}$/g; | ||
| var index = stylelint__default['default'].createPlugin(ruleName, (method, opts, context) => { | ||
| const propExceptions = [].concat(Object(opts).except || []); | ||
| const isAutofix = isContextAutofixing(context); | ||
| const isAutofixable = node => isContextAutofixing(context) && !expressionRegex.test(node.value); | ||
| const dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr'; | ||
@@ -145,3 +209,3 @@ return (root, result) => { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| console.warn(`Migrating ${prop[0]} to Logical standards.`); | ||
@@ -177,3 +241,3 @@ const value = outDateDecl.value; | ||
| ) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| firstInlineDecl.cloneBefore({ | ||
@@ -201,6 +265,6 @@ prop, | ||
| // eslint-disable-line | ||
| let inputValues = physicalDecl.value.trim().split(' '); | ||
| const inputValues = cssValueSplit(physicalDecl.value); | ||
| if (!isDeclAnException(physicalDecl, propExceptions) && inputValues.length !== 1) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| let outputValues = convertShorthandValues(inputValues, dir); | ||
@@ -228,3 +292,3 @@ ['block', 'inline'].forEach(type => { | ||
| if (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| firstInlineDecl.cloneBefore({ | ||
@@ -248,3 +312,3 @@ prop, | ||
| if (!isDeclAnException(physicalDecl, propExceptions)) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| physicalDecl.prop = prop; | ||
@@ -266,3 +330,3 @@ } else if (!isDeclReported(physicalDecl)) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| node.value = value; | ||
@@ -295,3 +359,3 @@ } else { | ||
| if (value !== originalValue) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| node.value = value; | ||
@@ -367,3 +431,3 @@ } else { | ||
| const optimizeCssValues = value => { | ||
| let values = value.split(' '); | ||
| const values = cssValueSplit(value); | ||
@@ -370,0 +434,0 @@ if (values.length === 2 && values[0] === values[1]) { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.cjs.js","sources":["lib/maps.js","lib/validate.js","lib/rule-name.js","lib/messages.js","lib/walk.js","index.js"],"sourcesContent":["const inline = {\n\tstart: { ltr: 'left', rtl: 'right' },\n\tend: { ltr: 'right', rtl: 'left' }\n}\n\nexport const propsThatContainPropsInValue = /^(transition(-property)?|will-change)$/i;\n\nexport const physical4Prop = [\n\t[['top', 'left', 'bottom', 'right'], 'inset'],\n\t[['margin-top', 'margin-left', 'margin-bottom', 'margin-right'], 'margin'],\n\t[['padding-top', 'padding-left', 'padding-bottom', 'padding-right'], 'padding']\n];\n\nexport const physicalShorthandProp = ['inset', 'margin', 'padding'];\n\nexport const physical2Prop = dir => [\n\t[['top', 'bottom'], 'inset-block'],\n\t[[inline.start[dir], inline.end[dir]], 'inset-inline'],\n\n\t[['margin-top', 'margin-bottom'], 'margin-block'],\n\t[[`margin-${inline.start[dir]}`, `margin-${inline.end[dir]}`], 'margin-inline'],\n\n\t[['padding-top', 'padding-bottom'], 'padding-block'],\n\t[[`padding-${inline.start[dir]}`, `padding-${inline.end[dir]}`], 'padding-inline'],\n];\n\nexport const physicalProp = dir => [\n\t[['top'], 'inset-block-start'],\n\t[['bottom'], 'inset-block-end'],\n\t[[inline.start[dir]], 'inset-inline-start'],\n\t[[inline.end[dir]], 'inset-inline-end'],\n\n\t[['margin-top'], 'margin-block-start'],\n\t[['margin-bottom'], 'margin-block-end'],\n\t[[`margin-${inline.start[dir]}`], 'margin-inline-start'],\n\t[[`margin-${inline.end[dir]}`], 'margin-inline-end'],\n\n\t[['padding-top'], 'padding-block-start'],\n\t[['padding-bottom'], 'padding-block-end'],\n\t[[`padding-${inline.start[dir]}`], 'padding-inline-start'],\n\t[[`padding-${inline.end[dir]}`], 'padding-inline-end'],\n\n\n\t// border\n\t[['border-top'], 'border-block-start'],\n\t[['border-bottom'], 'border-block-end'],\n\t[[`border-${inline.start[dir]}`], 'border-inline-start'],\n\t[[`border-${inline.end[dir]}`], 'border-inline-end'],\n\n\t[['border-top-color'], 'border-block-start-color'],\n\t[['border-top-style'], 'border-block-start-style'],\n\t[['border-top-width'], 'border-block-start-width'],\n\t[['border-bottom-color'], 'border-block-end-color'],\n\t[['border-bottom-style'], 'border-block-end-style'],\n\t[['border-bottom-width'], 'border-block-end-width'],\n\n\n\t[[`border-${inline.start[dir]}-color`], 'border-inline-start-color'],\n\t[[`border-${inline.start[dir]}-style`], 'border-inline-start-style'],\n\t[[`border-${inline.start[dir]}-width`], 'border-inline-start-width'],\n\t[[`border-${inline.end[dir]}-color`], 'border-inline-end-color'],\n\t[[`border-${inline.end[dir]}-style`], 'border-inline-end-style'],\n\t[[`border-${inline.end[dir]}-width`], 'border-inline-end-width'],\n\n\n\t[[`border-top-${inline.start[dir]}-radius`], 'border-start-start-radius'],\n\t[[`border-bottom-${inline.start[dir]}-radius`], 'border-end-start-radius'],\n\t[[`border-top-${inline.end[dir]}-radius`], 'border-start-end-radius'],\n\t[[`border-bottom-${inline.end[dir]}-radius`], 'border-end-end-radius'],\n\n\t[['height'], 'block-size'],\n\t[['min-height'], 'min-block-size'],\n\t[['max-height'], 'max-block-size'],\n\n\t[['width'], 'inline-size'],\n\t[['min-width'], 'min-inline-size'],\n\t[['max-width'], 'max-inline-size'],\n\n];\n\nexport const physicalValue = dir => [\n\t[/^clear$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^float$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^text-align$/i, {\n\t\t[inline.start[dir]]: 'start',\n\t\t[inline.end[dir]]: 'end'\n\t}]\n];\n\nexport const migrationNoneSpec = [\n\t[['margin-start'], ['margin-block-start', 'margin-inline-start']],\n\t[['margin-end'], ['margin-block-end', 'margin-inline-end']],\n\n\t[['padding-start'], ['padding-block-start', 'padding-inline-start']],\n\t[['padding-end'], ['padding-block-end', 'padding-inline-end']],\n\n\t[['inset-start'], ['inset-inline-start', 'inset-block-start']],\n\t[['inset-end'], ['inset-inline-end', 'inset-block-end']],\n];\n\n","export const validateRuleWithProps = (root, props, fn) => {\n\t// conditionally walk nodes with children\n\tif (root.nodes && root.nodes.length) {\n\t\tconst args = [];\n\n\t\tconst hasProps = props.every(prop => {\n\t\t\tconst declIndex = root.nodes.findIndex(child => child.type === 'decl' && child.prop === prop);\n\t\t\tconst decl = root.nodes[declIndex];\n\n\t\t\tif (decl) {\n\t\t\t\targs.push(decl, declIndex);\n\t\t\t}\n\n\t\t\treturn decl;\n\t\t});\n\n\t\tif (hasProps) {\n\t\t\tfn(...args);\n\t\t}\n\t}\n};\n","export default 'liberty/use-logical-spec';\n","import stylelint from 'stylelint';\nimport ruleName from './rule-name';\n\nexport default stylelint.utils.ruleMessages(ruleName, {\n\tunexpectedProp(physicalProperty, logicalProperty) {\n\t\treturn `Unexpected \"${physicalProperty}\" property. Use \"${logicalProperty}\".`;\n\t},\n\tunexpectedValue(property, physicalValue, logicalValue) {\n\t\treturn `Unexpected \"${physicalValue}\" value in \"${property}\" property. Use \"${logicalValue}\".`;\n\t},\n\tunsupportedProp(physicalProperty, logicalProperty) {\n\t\treturn `\"${physicalProperty}\" is not part of CSS specs. Use \"${logicalProperty[0]}\" and \"${logicalProperty[1]}\".`;\n\t},\n});\n","// walk all container nodes\nexport default function walk(node, fn) {\n\tif (node.nodes && node.nodes.length) {\n\t\tconst nodes = node.nodes.slice();\n\t\tconst length = nodes.length;\n\t\tlet index = -1;\n\n\t\twhile (++index < length) {\n\t\t\tconst child = nodes[index];\n\n\t\t\tif (!isDirRule(child)) {\n\t\t\t\tfn(child);\n\n\t\t\t\twalk(child, fn);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst dirSelectorRegExp = /:dir\\(ltr|rtl\\)/i;\nconst isDirRule = node => node.type === 'rule' && dirSelectorRegExp.test(node.selector);\n","import stylelint from 'stylelint';\nimport { physicalProp, physical2Prop, physicalShorthandProp, physical4Prop, physicalValue, migrationNoneSpec, propsThatContainPropsInValue } from './lib/maps';\nimport { validateRuleWithProps } from './lib/validate';\nimport ruleName from './lib/rule-name';\nimport messages from './lib/messages';\nimport walk from './lib/walk';\n\nconst reportedDecls = new WeakMap();\n\nexport default stylelint.createPlugin(ruleName, (method, opts, context) => {\n\tconst propExceptions = [].concat(Object(opts).except || []);\n\tconst isAutofix = isContextAutofixing(context);\n\tconst dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr';\n\n\treturn (root, result) => {\n\t\t// validate the method\n\t\tconst isMethodValid = stylelint.utils.validateOptions(result, ruleName, {\n\t\t\tactual: method,\n\t\t\tpossible() {\n\t\t\t\treturn isMethodIndifferent(method) ||\n\t\t\t\t\tisMethodAlways(method)\n\t\t\t}\n\t\t});\n\n\t\tconst reportUnexpectedProperty = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnsupportedProp = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unsupportedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnexpectedValue = (node, value) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedValue(node.prop, node.value, value),\n\t\t\tnode,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tif (isMethodValid && isMethodAlways(method)) {\n\t\t\twalk(root, node => {\n\n\t\t\t\t// MIGRATION from out of date props https://github.com/csstools/stylelint-use-logical/issues/1\n\n\t\t\t\tmigrationNoneSpec.forEach(([prop, props]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, prop, (outDateDecl) => {\n\t\t\t\t\t\tconsole.warn(`Property ${prop[0]} is not part of Logical standards.`);\n\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\tconsole.warn(`Migrating ${prop[0]} to Logical standards.`);\n\t\t\t\t\t\t\tconst value = outDateDecl.value;\n\t\t\t\t\t\t\toutDateDecl.cloneBefore({\n\t\t\t\t\t\t\t\tprop:\tprops[0],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.cloneAfter({\n\t\t\t\t\t\t\t\tprop: props[1],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.remove();\n\t\t\t\t\t\t} else if (!isDeclReported(outDateDecl)) {\n\t\t\t\t\t\t\treportUnsupportedProp(outDateDecl, props);\n\t\t\t\t\t\t\treportedDecls.set(outDateDecl);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\n\n\t\t\t\t/* logical shorthands do not work yet in browsers */\n\t\t\t\t/* but we can still use shorthand if all values are the same */\n\t\t\t\t// validate or autofix 4 physical properties as logical shorthands\n\t\t\t\tphysical4Prop.forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (blockStartDecl, blockStartIndex, inlineStartDecl, inlineStartIndex, blockEndDecl, blockEndIndex, inlineEndDecl, inlineEndIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = blockStartDecl;\n\t\t\t\t\t\tconst values = shorthandValueShorten([blockStartDecl.value, inlineStartDecl.value, blockEndDecl.value, inlineEndDecl.value]);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(blockStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(blockEndDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineEndDecl, propExceptions) &&\n\t\t\t\t\t\t\tvalues.length === 1 // only report issues if there is 1 value after shortening\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: values.join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tblockStartDecl.remove();\n\t\t\t\t\t\t\t\tinlineStartDecl.remove();\n\t\t\t\t\t\t\t\tblockEndDecl.remove();\n\t\t\t\t\t\t\t\tinlineEndDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(blockStartDecl) && !isDeclReported(inlineStartDecl) && !isDeclReported(blockEndDecl) && !isDeclReported(inlineEndDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(blockStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(blockEndDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineEndDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\n\t\t\t\t// validate or autofix shorthand properties that are not supported\n\t\t\t\tphysicalShorthandProp.forEach((prop) => {\n\t\t\t\t\tvalidateRuleWithProps(node, [prop], physicalDecl => { // eslint-disable-line\n\t\t\t\t\t\tlet inputValues = physicalDecl.value.trim().split(' ');\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(physicalDecl, propExceptions) &&\n\t\t\t\t\t\t\tinputValues.length !== 1\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tlet outputValues = convertShorthandValues(inputValues, dir);\n\n\t\t\t\t\t\t\t\t['block', 'inline'].forEach(type => {\n\t\t\t\t\t\t\t\t\tphysicalDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\t\tprop: prop + \"-\" + type,\n\t\t\t\t\t\t\t\t\t\tvalue: outputValues[type]\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tphysicalDecl.remove();\n\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, `${prop}-block and ${prop}-inline`);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix 2 physical properties as logical shorthands\n\t\t\t\tphysical2Prop(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (startDecl, startIndex, endDecl, endStartIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = startIndex < endStartIndex\n\t\t\t\t\t\t\t? startDecl\n\t\t\t\t\t\t\t: endDecl;\n\n\t\t\t\t\t\tif (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: startDecl.value === endDecl.value\n\t\t\t\t\t\t\t\t\t\t? startDecl.value\n\t\t\t\t\t\t\t\t\t\t: [startDecl.value, endDecl.value].join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tstartDecl.remove();\n\t\t\t\t\t\t\t\tendDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(startDecl) && !isDeclReported(endDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(startDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(endDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical properties as logical\n\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, physicalDecl => {\n\t\t\t\t\t\tif (!isDeclAnException(physicalDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tphysicalDecl.prop = prop;\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values as logical\n\t\t\t\tphysicalValue(dir).forEach(([regexp, props]) => {\n\t\t\t\t\tif (isNodeMatchingDecl(node, regexp) && !isDeclAnException(node, propExceptions)) {\n\t\t\t\t\t\tconst valuekey = node.value.toLowerCase();\n\n\t\t\t\t\t\tif (valuekey in props) {\n\t\t\t\t\t\t\tconst value = props[valuekey];\n\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values containing properties as logical\n\t\t\t\tif (isNodeMatchingDecl(node, propsThatContainPropsInValue)) {\n\t\t\t\t\tconst originalValue = node.value.toLowerCase();\n\t\t\t\t\tlet value = originalValue;\n\n\t\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\t\tif (!isDeclAnException(node, propExceptions)) {\n\n\t\t\t\t\t\t\tprops.forEach(searchProp => {\n\t\t\t\t\t\t\t\tif (!isValueAnException(searchProp, propExceptions)) {\n\t\t\t\t\t\t\t\t\tlet regex = new RegExp(\"(?<!-)\" + searchProp + \"(?!-)\", \"g\");\n\t\t\t\t\t\t\t\t\tif (regex.test(value)) {\n\t\t\t\t\t\t\t\t\t\tvalue = value.replace(regex, prop);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (value !== originalValue) {\n\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n});\n\nexport { ruleName }\n\nconst isMethodIndifferent = method => method === 'ignore' || method === false || method === null;\nconst isMethodAlways = method => method === 'always' || method === true;\nconst isContextAutofixing = context => Boolean(Object(context).fix);\nconst isNodeMatchingDecl = (decl, regexp) => decl.type === 'decl' && regexp.test(decl.prop);\nconst isDeclAnException = (decl, propExceptions) => isValueAnException(decl.prop, propExceptions);\nconst isValueAnException = (value, propExceptions) => propExceptions.some(match => match instanceof RegExp\n\t? match.test(value)\n: String(match || '').toLowerCase() === String(value || '').toLowerCase());\nconst isDeclReported = decl => reportedDecls.has(decl);\n\nconst shorthandValueShorten = values => {\n\tconst map = [[1, 0], [0, 2], [1, 3]];\n\tfor (let x = values.length - 2; x >= 0; x--)\n\t{\n\t\tif (values[map[x][0]] !== values[map[x][1]]) {\n\t\t\tbreak;\n\t\t}\n\t\tvalues.pop();\n\t}\n\treturn values;\n};\n\nconst convertShorthandValues = (input, dir) => {\n\tlet block, inline;\n\tif (input.length === 1) {\n\t\tblock = input[0];\n\t\tinline = input[0];\n\t}\n\tif (input.length === 2) {\n\t\tblock = input[0];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 3) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 4) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = dir === 'ltr' ? input[3] + ' ' + input[1] : input[1] + ' ' + input[3];\n\t}\n\treturn {\n\t\tblock: optimizeCssValues(block),\n\t\tinline: optimizeCssValues(inline)\n\t};\n};\n\nconst optimizeCssValues = (value) => {\n\tlet values = value.split(' ');\n\tif (values.length === 2 && values[0] === values[1]) {\n\t\treturn values[0];\n\t}\n\treturn value;\n}\n"],"names":["inline","start","ltr","rtl","end","propsThatContainPropsInValue","physical4Prop","physicalShorthandProp","physical2Prop","dir","physicalProp","physicalValue","migrationNoneSpec","validateRuleWithProps","root","props","fn","nodes","length","args","hasProps","every","prop","declIndex","findIndex","child","type","decl","push","stylelint","utils","ruleMessages","ruleName","unexpectedProp","physicalProperty","logicalProperty","unexpectedValue","property","logicalValue","unsupportedProp","walk","node","slice","index","isDirRule","dirSelectorRegExp","test","selector","reportedDecls","WeakMap","createPlugin","method","opts","context","propExceptions","concat","Object","except","isAutofix","isContextAutofixing","direction","result","isMethodValid","validateOptions","actual","possible","isMethodIndifferent","isMethodAlways","reportUnexpectedProperty","report","message","messages","reportUnsupportedProp","reportUnexpectedValue","value","forEach","outDateDecl","console","warn","cloneBefore","cloneAfter","remove","isDeclReported","set","blockStartDecl","blockStartIndex","inlineStartDecl","inlineStartIndex","blockEndDecl","blockEndIndex","inlineEndDecl","inlineEndIndex","firstInlineDecl","values","shorthandValueShorten","isDeclAnException","join","physicalDecl","inputValues","trim","split","outputValues","convertShorthandValues","startDecl","startIndex","endDecl","endStartIndex","regexp","isNodeMatchingDecl","valuekey","toLowerCase","originalValue","searchProp","isValueAnException","regex","RegExp","replace","Boolean","fix","some","match","String","has","map","x","pop","input","block","optimizeCssValues"],"mappings":"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"} | ||
| {"version":3,"file":"index.cjs.js","sources":["lib/maps.js","lib/validate.js","lib/value-split.js","lib/rule-name.js","lib/messages.js","lib/walk.js","index.js"],"sourcesContent":["const inline = {\n\tstart: { ltr: 'left', rtl: 'right' },\n\tend: { ltr: 'right', rtl: 'left' }\n}\n\nexport const propsThatContainPropsInValue = /^(transition(-property)?|will-change)$/i;\n\nexport const physical4Prop = [\n\t[['top', 'left', 'bottom', 'right'], 'inset'],\n\t[['margin-top', 'margin-left', 'margin-bottom', 'margin-right'], 'margin'],\n\t[['padding-top', 'padding-left', 'padding-bottom', 'padding-right'], 'padding']\n];\n\nexport const physicalShorthandProp = ['inset', 'margin', 'padding'];\n\nexport const physical2Prop = dir => [\n\t[['top', 'bottom'], 'inset-block'],\n\t[[inline.start[dir], inline.end[dir]], 'inset-inline'],\n\n\t[['margin-top', 'margin-bottom'], 'margin-block'],\n\t[[`margin-${inline.start[dir]}`, `margin-${inline.end[dir]}`], 'margin-inline'],\n\n\t[['padding-top', 'padding-bottom'], 'padding-block'],\n\t[[`padding-${inline.start[dir]}`, `padding-${inline.end[dir]}`], 'padding-inline'],\n];\n\nexport const physicalProp = dir => [\n\t[['top'], 'inset-block-start'],\n\t[['bottom'], 'inset-block-end'],\n\t[[inline.start[dir]], 'inset-inline-start'],\n\t[[inline.end[dir]], 'inset-inline-end'],\n\n\t[['margin-top'], 'margin-block-start'],\n\t[['margin-bottom'], 'margin-block-end'],\n\t[[`margin-${inline.start[dir]}`], 'margin-inline-start'],\n\t[[`margin-${inline.end[dir]}`], 'margin-inline-end'],\n\n\t[['padding-top'], 'padding-block-start'],\n\t[['padding-bottom'], 'padding-block-end'],\n\t[[`padding-${inline.start[dir]}`], 'padding-inline-start'],\n\t[[`padding-${inline.end[dir]}`], 'padding-inline-end'],\n\n\n\t// border\n\t[['border-top'], 'border-block-start'],\n\t[['border-bottom'], 'border-block-end'],\n\t[[`border-${inline.start[dir]}`], 'border-inline-start'],\n\t[[`border-${inline.end[dir]}`], 'border-inline-end'],\n\n\t[['border-top-color'], 'border-block-start-color'],\n\t[['border-top-style'], 'border-block-start-style'],\n\t[['border-top-width'], 'border-block-start-width'],\n\t[['border-bottom-color'], 'border-block-end-color'],\n\t[['border-bottom-style'], 'border-block-end-style'],\n\t[['border-bottom-width'], 'border-block-end-width'],\n\n\n\t[[`border-${inline.start[dir]}-color`], 'border-inline-start-color'],\n\t[[`border-${inline.start[dir]}-style`], 'border-inline-start-style'],\n\t[[`border-${inline.start[dir]}-width`], 'border-inline-start-width'],\n\t[[`border-${inline.end[dir]}-color`], 'border-inline-end-color'],\n\t[[`border-${inline.end[dir]}-style`], 'border-inline-end-style'],\n\t[[`border-${inline.end[dir]}-width`], 'border-inline-end-width'],\n\n\n\t[[`border-top-${inline.start[dir]}-radius`], 'border-start-start-radius'],\n\t[[`border-bottom-${inline.start[dir]}-radius`], 'border-end-start-radius'],\n\t[[`border-top-${inline.end[dir]}-radius`], 'border-start-end-radius'],\n\t[[`border-bottom-${inline.end[dir]}-radius`], 'border-end-end-radius'],\n\n\t[['height'], 'block-size'],\n\t[['min-height'], 'min-block-size'],\n\t[['max-height'], 'max-block-size'],\n\n\t[['width'], 'inline-size'],\n\t[['min-width'], 'min-inline-size'],\n\t[['max-width'], 'max-inline-size'],\n\n];\n\nexport const physicalValue = dir => [\n\t[/^clear$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^float$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^text-align$/i, {\n\t\t[inline.start[dir]]: 'start',\n\t\t[inline.end[dir]]: 'end'\n\t}]\n];\n\nexport const migrationNoneSpec = [\n\t[['margin-start'], ['margin-block-start', 'margin-inline-start']],\n\t[['margin-end'], ['margin-block-end', 'margin-inline-end']],\n\n\t[['padding-start'], ['padding-block-start', 'padding-inline-start']],\n\t[['padding-end'], ['padding-block-end', 'padding-inline-end']],\n\n\t[['inset-start'], ['inset-inline-start', 'inset-block-start']],\n\t[['inset-end'], ['inset-inline-end', 'inset-block-end']],\n];\n\n","export const validateRuleWithProps = (root, props, fn) => {\n\t// For supporting css-in-js\n\tconst { nodes = [root] } = root;\n\t// conditionally walk nodes with children\n\tif (nodes && nodes.length) {\n\t\tconst args = [];\n\n\t\tconst hasProps = props.every(prop => {\n\t\t\tconst declIndex = nodes.findIndex(child => child.type === 'decl' && child.prop === prop);\n\t\t\tconst decl = nodes[declIndex];\n\n\t\t\tif (decl) {\n\t\t\t\targs.push(decl, declIndex);\n\t\t\t}\n\n\t\t\treturn decl;\n\t\t});\n\n\t\tif (hasProps) {\n\t\t\tfn(...args);\n\t\t}\n\t}\n};\n","export const cssValueSplit = (value) => {\n\tconst ret = [];\n\tconst stack = [];\n\n\tlet part = '';\n\tlet esc = false;\n\tlet q = '';\n\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst c = value[i];\n\n\t\tif (esc) {\n\t\t\tesc = false;\n\t\t} else if (c === '\\\\') {\n\t\t\tesc = true;\n\t\t} else if (q) {\n\t\t\tif (c === q) {\n\t\t\t\tq = '';\n\t\t\t}\n\t\t} else if (c === '\\'' || c === '\"') {\n\t\t\tq = c;\n\t\t} else if (c === ' ' && stack.length === 0) {\n\t\t\tif (part) {\n\t\t\t\tret.push(part);\n\t\t\t}\n\t\t\tpart = '';\n\t\t\tcontinue;\n\n\t\t} else if (c === '(') {\n\t\t\tstack.push(')');\n\t\t} else if (c === '{') {\n\t\t\tstack.push('}');\n\t\t} else if (c === '[') {\n\t\t\tstack.push(']');\n\t\t} else if (stack.length && c === stack[stack.length - 1]) {\n\t\t\tstack.length--;\n\t\t}\n\n\t\tpart += c;\n\t}\n\n\tif (part) {\n\t\tret.push(part);\n\t}\n\n\treturn ret;\n}\n\n// console.log(cssValueSplit('3px 0 5px'));\n// -> [ '3px', '0', '5px' ]\n// console.log(cssValueSplit('3px calc(--bla, 0) 5px'));\n// -> [ '3px', 'calc(--bla, 0)', '5px' ]\n// console.log(cssValueSplit('3px map-get($spacers, 2) 5px'));\n// -> [ '3px', 'map-get($spacers, 2)', '5px' ]\n// console.log(cssValueSplit('-#{map-get($spacers, 2)} #{map-get($spacers, 3)} 5px'));\n// -> [ '-#{map-get($spacers, 2)}', '#{map-get($spacers, 3)}', '5px' ]\n// console.log(cssValueSplit('-#{function(\"something ) else\\')\\\\\" bla\", 2)} #{map-get($spacers, 3)} 5px'));\n// [ `-#{function(\"something ) else')\\\\\" bla\", 2)}`, '#{map-get($spacers, 3)}', '5px' ]\n","export default 'liberty/use-logical-spec';\n","import stylelint from 'stylelint';\nimport ruleName from './rule-name';\n\nexport default stylelint.utils.ruleMessages(ruleName, {\n\tunexpectedProp(physicalProperty, logicalProperty) {\n\t\treturn `Unexpected \"${physicalProperty}\" property. Use \"${logicalProperty}\".`;\n\t},\n\tunexpectedValue(property, physicalValue, logicalValue) {\n\t\treturn `Unexpected \"${physicalValue}\" value in \"${property}\" property. Use \"${logicalValue}\".`;\n\t},\n\tunsupportedProp(physicalProperty, logicalProperty) {\n\t\treturn `\"${physicalProperty}\" is not part of CSS specs. Use \"${logicalProperty[0]}\" and \"${logicalProperty[1]}\".`;\n\t},\n});\n","// walk all container nodes\nexport default function walk(node, fn) {\n\tif (node.nodes && node.nodes.length) {\n\t\tconst nodes = node.nodes.slice();\n\t\tconst length = nodes.length;\n\t\tlet index = -1;\n\n\t\twhile (++index < length) {\n\t\t\tconst child = nodes[index];\n\n\t\t\tif (!isDirRule(child)) {\n\t\t\t\tfn(child);\n\n\t\t\t\twalk(child, fn);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst dirSelectorRegExp = /:dir\\(ltr|rtl\\)/i;\nconst isDirRule = node => node.type === 'rule' && dirSelectorRegExp.test(node.selector);\n","import stylelint from 'stylelint';\nimport { physicalProp, physical2Prop, physicalShorthandProp, physical4Prop, physicalValue, migrationNoneSpec, propsThatContainPropsInValue } from './lib/maps';\nimport { validateRuleWithProps } from './lib/validate';\nimport { cssValueSplit } from './lib/value-split';\nimport ruleName from './lib/rule-name';\nimport messages from './lib/messages';\nimport walk from './lib/walk';\n\nconst reportedDecls = new WeakMap();\n\n// Ignore autofix on those expression value\nconst expressionRegex = /^\\$\\{.*\\}$/g;\n\nexport default stylelint.createPlugin(ruleName, (method, opts, context) => {\n\tconst propExceptions = [].concat(Object(opts).except || []);\n\tconst isAutofixable = (node) => isContextAutofixing(context) && !expressionRegex.test(node.value);\n\tconst dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr';\n\n\treturn (root, result) => {\n\t\t// validate the method\n\t\tconst isMethodValid = stylelint.utils.validateOptions(result, ruleName, {\n\t\t\tactual: method,\n\t\t\tpossible() {\n\t\t\t\treturn isMethodIndifferent(method) ||\n\t\t\t\t\tisMethodAlways(method)\n\t\t\t}\n\t\t});\n\n\t\tconst reportUnexpectedProperty = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnsupportedProp = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unsupportedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnexpectedValue = (node, value) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedValue(node.prop, node.value, value),\n\t\t\tnode,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tif (isMethodValid && isMethodAlways(method)) {\n\t\t\twalk(root, node => {\n\n\t\t\t\t// MIGRATION from out of date props https://github.com/csstools/stylelint-use-logical/issues/1\n\n\t\t\t\tmigrationNoneSpec.forEach(([prop, props]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, prop, (outDateDecl) => {\n\t\t\t\t\t\tconsole.warn(`Property ${prop[0]} is not part of Logical standards.`);\n\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\tconsole.warn(`Migrating ${prop[0]} to Logical standards.`);\n\t\t\t\t\t\t\tconst value = outDateDecl.value;\n\t\t\t\t\t\t\toutDateDecl.cloneBefore({\n\t\t\t\t\t\t\t\tprop:\tprops[0],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.cloneAfter({\n\t\t\t\t\t\t\t\tprop: props[1],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.remove();\n\t\t\t\t\t\t} else if (!isDeclReported(outDateDecl)) {\n\t\t\t\t\t\t\treportUnsupportedProp(outDateDecl, props);\n\t\t\t\t\t\t\treportedDecls.set(outDateDecl);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\n\n\t\t\t\t/* logical shorthands do not work yet in browsers */\n\t\t\t\t/* but we can still use shorthand if all values are the same */\n\t\t\t\t// validate or autofix 4 physical properties as logical shorthands\n\t\t\t\tphysical4Prop.forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (blockStartDecl, blockStartIndex, inlineStartDecl, inlineStartIndex, blockEndDecl, blockEndIndex, inlineEndDecl, inlineEndIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = blockStartDecl;\n\t\t\t\t\t\tconst values = shorthandValueShorten([blockStartDecl.value, inlineStartDecl.value, blockEndDecl.value, inlineEndDecl.value]);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(blockStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(blockEndDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineEndDecl, propExceptions) &&\n\t\t\t\t\t\t\tvalues.length === 1 // only report issues if there is 1 value after shortening\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: values.join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tblockStartDecl.remove();\n\t\t\t\t\t\t\t\tinlineStartDecl.remove();\n\t\t\t\t\t\t\t\tblockEndDecl.remove();\n\t\t\t\t\t\t\t\tinlineEndDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(blockStartDecl) && !isDeclReported(inlineStartDecl) && !isDeclReported(blockEndDecl) && !isDeclReported(inlineEndDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(blockStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(blockEndDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineEndDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\n\t\t\t\t// validate or autofix shorthand properties that are not supported\n\t\t\t\tphysicalShorthandProp.forEach((prop) => {\n\t\t\t\t\tvalidateRuleWithProps(node, [prop], physicalDecl => { // eslint-disable-line\n\t\t\t\t\t\tconst inputValues = cssValueSplit(physicalDecl.value);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(physicalDecl, propExceptions) &&\n\t\t\t\t\t\t\tinputValues.length !== 1\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tlet outputValues = convertShorthandValues(inputValues, dir);\n\n\t\t\t\t\t\t\t\t['block', 'inline'].forEach(type => {\n\t\t\t\t\t\t\t\t\tphysicalDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\t\tprop: prop + \"-\" + type,\n\t\t\t\t\t\t\t\t\t\tvalue: outputValues[type]\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tphysicalDecl.remove();\n\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, `${prop}-block and ${prop}-inline`);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix 2 physical properties as logical shorthands\n\t\t\t\tphysical2Prop(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (startDecl, startIndex, endDecl, endStartIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = startIndex < endStartIndex\n\t\t\t\t\t\t\t? startDecl\n\t\t\t\t\t\t\t: endDecl;\n\n\t\t\t\t\t\tif (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: startDecl.value === endDecl.value\n\t\t\t\t\t\t\t\t\t\t? startDecl.value\n\t\t\t\t\t\t\t\t\t\t: [startDecl.value, endDecl.value].join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tstartDecl.remove();\n\t\t\t\t\t\t\t\tendDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(startDecl) && !isDeclReported(endDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(startDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(endDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical properties as logical\n\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, physicalDecl => {\n\t\t\t\t\t\tif (!isDeclAnException(physicalDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tphysicalDecl.prop = prop;\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values as logical\n\t\t\t\tphysicalValue(dir).forEach(([regexp, props]) => {\n\t\t\t\t\tif (isNodeMatchingDecl(node, regexp) && !isDeclAnException(node, propExceptions)) {\n\t\t\t\t\t\tconst valuekey = node.value.toLowerCase();\n\n\t\t\t\t\t\tif (valuekey in props) {\n\t\t\t\t\t\t\tconst value = props[valuekey];\n\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values containing properties as logical\n\t\t\t\tif (isNodeMatchingDecl(node, propsThatContainPropsInValue)) {\n\t\t\t\t\tconst originalValue = node.value.toLowerCase();\n\t\t\t\t\tlet value = originalValue;\n\n\t\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\t\tif (!isDeclAnException(node, propExceptions)) {\n\n\t\t\t\t\t\t\tprops.forEach(searchProp => {\n\t\t\t\t\t\t\t\tif (!isValueAnException(searchProp, propExceptions)) {\n\t\t\t\t\t\t\t\t\tlet regex = new RegExp(\"(?<!-)\" + searchProp + \"(?!-)\", \"g\");\n\t\t\t\t\t\t\t\t\tif (regex.test(value)) {\n\t\t\t\t\t\t\t\t\t\tvalue = value.replace(regex, prop);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (value !== originalValue) {\n\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n});\n\nexport { ruleName }\n\nconst isMethodIndifferent = method => method === 'ignore' || method === false || method === null;\nconst isMethodAlways = method => method === 'always' || method === true;\nconst isContextAutofixing = context => Boolean(Object(context).fix);\nconst isNodeMatchingDecl = (decl, regexp) => decl.type === 'decl' && regexp.test(decl.prop);\nconst isDeclAnException = (decl, propExceptions) => isValueAnException(decl.prop, propExceptions);\nconst isValueAnException = (value, propExceptions) => propExceptions.some(match => match instanceof RegExp\n\t? match.test(value)\n: String(match || '').toLowerCase() === String(value || '').toLowerCase());\nconst isDeclReported = decl => reportedDecls.has(decl);\n\nconst shorthandValueShorten = values => {\n\tconst map = [[1, 0], [0, 2], [1, 3]];\n\tfor (let x = values.length - 2; x >= 0; x--)\n\t{\n\t\tif (values[map[x][0]] !== values[map[x][1]]) {\n\t\t\tbreak;\n\t\t}\n\t\tvalues.pop();\n\t}\n\treturn values;\n};\n\nconst convertShorthandValues = (input, dir) => {\n\tlet block, inline;\n\tif (input.length === 1) {\n\t\tblock = input[0];\n\t\tinline = input[0];\n\t}\n\tif (input.length === 2) {\n\t\tblock = input[0];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 3) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 4) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = dir === 'ltr' ? input[3] + ' ' + input[1] : input[1] + ' ' + input[3];\n\t}\n\treturn {\n\t\tblock: optimizeCssValues(block),\n\t\tinline: optimizeCssValues(inline)\n\t};\n};\n\nconst optimizeCssValues = (value) => {\n\tconst values = cssValueSplit(value);\n\tif (values.length === 2 && values[0] === values[1]) {\n\t\treturn values[0];\n\t}\n\treturn value;\n}\n"],"names":["inline","start","ltr","rtl","end","propsThatContainPropsInValue","physical4Prop","physicalShorthandProp","physical2Prop","dir","physicalProp","physicalValue","migrationNoneSpec","validateRuleWithProps","root","props","fn","nodes","length","args","hasProps","every","prop","declIndex","findIndex","child","type","decl","push","cssValueSplit","value","ret","stack","part","esc","q","i","c","stylelint","utils","ruleMessages","ruleName","unexpectedProp","physicalProperty","logicalProperty","unexpectedValue","property","logicalValue","unsupportedProp","walk","node","slice","index","isDirRule","dirSelectorRegExp","test","selector","reportedDecls","WeakMap","expressionRegex","createPlugin","method","opts","context","propExceptions","concat","Object","except","isAutofixable","isContextAutofixing","direction","result","isMethodValid","validateOptions","actual","possible","isMethodIndifferent","isMethodAlways","reportUnexpectedProperty","report","message","messages","reportUnsupportedProp","reportUnexpectedValue","forEach","outDateDecl","console","warn","cloneBefore","cloneAfter","remove","isDeclReported","set","blockStartDecl","blockStartIndex","inlineStartDecl","inlineStartIndex","blockEndDecl","blockEndIndex","inlineEndDecl","inlineEndIndex","firstInlineDecl","values","shorthandValueShorten","isDeclAnException","join","physicalDecl","inputValues","outputValues","convertShorthandValues","startDecl","startIndex","endDecl","endStartIndex","regexp","isNodeMatchingDecl","valuekey","toLowerCase","originalValue","searchProp","isValueAnException","regex","RegExp","replace","Boolean","fix","some","match","String","has","map","x","pop","input","block","optimizeCssValues"],"mappings":"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"} |
+79
-15
@@ -32,8 +32,12 @@ import stylelint from 'stylelint'; | ||
| const validateRuleWithProps = (root, props, fn) => { | ||
| // conditionally walk nodes with children | ||
| if (root.nodes && root.nodes.length) { | ||
| // For supporting css-in-js | ||
| const { | ||
| nodes = [root] | ||
| } = root; // conditionally walk nodes with children | ||
| if (nodes && nodes.length) { | ||
| const args = []; | ||
| const hasProps = props.every(prop => { | ||
| const declIndex = root.nodes.findIndex(child => child.type === 'decl' && child.prop === prop); | ||
| const decl = root.nodes[declIndex]; | ||
| const declIndex = nodes.findIndex(child => child.type === 'decl' && child.prop === prop); | ||
| const decl = nodes[declIndex]; | ||
@@ -53,2 +57,58 @@ if (decl) { | ||
| const cssValueSplit = value => { | ||
| const ret = []; | ||
| const stack = []; | ||
| let part = ''; | ||
| let esc = false; | ||
| let q = ''; | ||
| for (let i = 0; i < value.length; i++) { | ||
| const c = value[i]; | ||
| if (esc) { | ||
| esc = false; | ||
| } else if (c === '\\') { | ||
| esc = true; | ||
| } else if (q) { | ||
| if (c === q) { | ||
| q = ''; | ||
| } | ||
| } else if (c === '\'' || c === '"') { | ||
| q = c; | ||
| } else if (c === ' ' && stack.length === 0) { | ||
| if (part) { | ||
| ret.push(part); | ||
| } | ||
| part = ''; | ||
| continue; | ||
| } else if (c === '(') { | ||
| stack.push(')'); | ||
| } else if (c === '{') { | ||
| stack.push('}'); | ||
| } else if (c === '[') { | ||
| stack.push(']'); | ||
| } else if (stack.length && c === stack[stack.length - 1]) { | ||
| stack.length--; | ||
| } | ||
| part += c; | ||
| } | ||
| if (part) { | ||
| ret.push(part); | ||
| } | ||
| return ret; | ||
| }; // console.log(cssValueSplit('3px 0 5px')); | ||
| // -> [ '3px', '0', '5px' ] | ||
| // console.log(cssValueSplit('3px calc(--bla, 0) 5px')); | ||
| // -> [ '3px', 'calc(--bla, 0)', '5px' ] | ||
| // console.log(cssValueSplit('3px map-get($spacers, 2) 5px')); | ||
| // -> [ '3px', 'map-get($spacers, 2)', '5px' ] | ||
| // console.log(cssValueSplit('-#{map-get($spacers, 2)} #{map-get($spacers, 3)} 5px')); | ||
| // -> [ '-#{map-get($spacers, 2)}', '#{map-get($spacers, 3)}', '5px' ] | ||
| // console.log(cssValueSplit('-#{function("something ) else\')\\" bla", 2)} #{map-get($spacers, 3)} 5px')); | ||
| // [ `-#{function("something ) else')\\" bla", 2)}`, '#{map-get($spacers, 3)}', '5px' ] | ||
| var ruleName = 'liberty/use-logical-spec'; | ||
@@ -92,6 +152,10 @@ | ||
| const reportedDecls = new WeakMap(); | ||
| const reportedDecls = new WeakMap(); // Ignore autofix on those expression value | ||
| const expressionRegex = /^\$\{.*\}$/g; | ||
| var index = stylelint.createPlugin(ruleName, (method, opts, context) => { | ||
| const propExceptions = [].concat(Object(opts).except || []); | ||
| const isAutofix = isContextAutofixing(context); | ||
| const isAutofixable = node => isContextAutofixing(context) && !expressionRegex.test(node.value); | ||
| const dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr'; | ||
@@ -137,3 +201,3 @@ return (root, result) => { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| console.warn(`Migrating ${prop[0]} to Logical standards.`); | ||
@@ -169,3 +233,3 @@ const value = outDateDecl.value; | ||
| ) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| firstInlineDecl.cloneBefore({ | ||
@@ -193,6 +257,6 @@ prop, | ||
| // eslint-disable-line | ||
| let inputValues = physicalDecl.value.trim().split(' '); | ||
| const inputValues = cssValueSplit(physicalDecl.value); | ||
| if (!isDeclAnException(physicalDecl, propExceptions) && inputValues.length !== 1) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| let outputValues = convertShorthandValues(inputValues, dir); | ||
@@ -220,3 +284,3 @@ ['block', 'inline'].forEach(type => { | ||
| if (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| firstInlineDecl.cloneBefore({ | ||
@@ -240,3 +304,3 @@ prop, | ||
| if (!isDeclAnException(physicalDecl, propExceptions)) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| physicalDecl.prop = prop; | ||
@@ -258,3 +322,3 @@ } else if (!isDeclReported(physicalDecl)) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| node.value = value; | ||
@@ -287,3 +351,3 @@ } else { | ||
| if (value !== originalValue) { | ||
| if (isAutofix) { | ||
| if (isAutofixable(node)) { | ||
| node.value = value; | ||
@@ -359,3 +423,3 @@ } else { | ||
| const optimizeCssValues = value => { | ||
| let values = value.split(' '); | ||
| const values = cssValueSplit(value); | ||
@@ -362,0 +426,0 @@ if (values.length === 2 && values[0] === values[1]) { |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.es.mjs","sources":["lib/maps.js","lib/validate.js","lib/rule-name.js","lib/messages.js","lib/walk.js","index.js"],"sourcesContent":["const inline = {\n\tstart: { ltr: 'left', rtl: 'right' },\n\tend: { ltr: 'right', rtl: 'left' }\n}\n\nexport const propsThatContainPropsInValue = /^(transition(-property)?|will-change)$/i;\n\nexport const physical4Prop = [\n\t[['top', 'left', 'bottom', 'right'], 'inset'],\n\t[['margin-top', 'margin-left', 'margin-bottom', 'margin-right'], 'margin'],\n\t[['padding-top', 'padding-left', 'padding-bottom', 'padding-right'], 'padding']\n];\n\nexport const physicalShorthandProp = ['inset', 'margin', 'padding'];\n\nexport const physical2Prop = dir => [\n\t[['top', 'bottom'], 'inset-block'],\n\t[[inline.start[dir], inline.end[dir]], 'inset-inline'],\n\n\t[['margin-top', 'margin-bottom'], 'margin-block'],\n\t[[`margin-${inline.start[dir]}`, `margin-${inline.end[dir]}`], 'margin-inline'],\n\n\t[['padding-top', 'padding-bottom'], 'padding-block'],\n\t[[`padding-${inline.start[dir]}`, `padding-${inline.end[dir]}`], 'padding-inline'],\n];\n\nexport const physicalProp = dir => [\n\t[['top'], 'inset-block-start'],\n\t[['bottom'], 'inset-block-end'],\n\t[[inline.start[dir]], 'inset-inline-start'],\n\t[[inline.end[dir]], 'inset-inline-end'],\n\n\t[['margin-top'], 'margin-block-start'],\n\t[['margin-bottom'], 'margin-block-end'],\n\t[[`margin-${inline.start[dir]}`], 'margin-inline-start'],\n\t[[`margin-${inline.end[dir]}`], 'margin-inline-end'],\n\n\t[['padding-top'], 'padding-block-start'],\n\t[['padding-bottom'], 'padding-block-end'],\n\t[[`padding-${inline.start[dir]}`], 'padding-inline-start'],\n\t[[`padding-${inline.end[dir]}`], 'padding-inline-end'],\n\n\n\t// border\n\t[['border-top'], 'border-block-start'],\n\t[['border-bottom'], 'border-block-end'],\n\t[[`border-${inline.start[dir]}`], 'border-inline-start'],\n\t[[`border-${inline.end[dir]}`], 'border-inline-end'],\n\n\t[['border-top-color'], 'border-block-start-color'],\n\t[['border-top-style'], 'border-block-start-style'],\n\t[['border-top-width'], 'border-block-start-width'],\n\t[['border-bottom-color'], 'border-block-end-color'],\n\t[['border-bottom-style'], 'border-block-end-style'],\n\t[['border-bottom-width'], 'border-block-end-width'],\n\n\n\t[[`border-${inline.start[dir]}-color`], 'border-inline-start-color'],\n\t[[`border-${inline.start[dir]}-style`], 'border-inline-start-style'],\n\t[[`border-${inline.start[dir]}-width`], 'border-inline-start-width'],\n\t[[`border-${inline.end[dir]}-color`], 'border-inline-end-color'],\n\t[[`border-${inline.end[dir]}-style`], 'border-inline-end-style'],\n\t[[`border-${inline.end[dir]}-width`], 'border-inline-end-width'],\n\n\n\t[[`border-top-${inline.start[dir]}-radius`], 'border-start-start-radius'],\n\t[[`border-bottom-${inline.start[dir]}-radius`], 'border-end-start-radius'],\n\t[[`border-top-${inline.end[dir]}-radius`], 'border-start-end-radius'],\n\t[[`border-bottom-${inline.end[dir]}-radius`], 'border-end-end-radius'],\n\n\t[['height'], 'block-size'],\n\t[['min-height'], 'min-block-size'],\n\t[['max-height'], 'max-block-size'],\n\n\t[['width'], 'inline-size'],\n\t[['min-width'], 'min-inline-size'],\n\t[['max-width'], 'max-inline-size'],\n\n];\n\nexport const physicalValue = dir => [\n\t[/^clear$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^float$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^text-align$/i, {\n\t\t[inline.start[dir]]: 'start',\n\t\t[inline.end[dir]]: 'end'\n\t}]\n];\n\nexport const migrationNoneSpec = [\n\t[['margin-start'], ['margin-block-start', 'margin-inline-start']],\n\t[['margin-end'], ['margin-block-end', 'margin-inline-end']],\n\n\t[['padding-start'], ['padding-block-start', 'padding-inline-start']],\n\t[['padding-end'], ['padding-block-end', 'padding-inline-end']],\n\n\t[['inset-start'], ['inset-inline-start', 'inset-block-start']],\n\t[['inset-end'], ['inset-inline-end', 'inset-block-end']],\n];\n\n","export const validateRuleWithProps = (root, props, fn) => {\n\t// conditionally walk nodes with children\n\tif (root.nodes && root.nodes.length) {\n\t\tconst args = [];\n\n\t\tconst hasProps = props.every(prop => {\n\t\t\tconst declIndex = root.nodes.findIndex(child => child.type === 'decl' && child.prop === prop);\n\t\t\tconst decl = root.nodes[declIndex];\n\n\t\t\tif (decl) {\n\t\t\t\targs.push(decl, declIndex);\n\t\t\t}\n\n\t\t\treturn decl;\n\t\t});\n\n\t\tif (hasProps) {\n\t\t\tfn(...args);\n\t\t}\n\t}\n};\n","export default 'liberty/use-logical-spec';\n","import stylelint from 'stylelint';\nimport ruleName from './rule-name';\n\nexport default stylelint.utils.ruleMessages(ruleName, {\n\tunexpectedProp(physicalProperty, logicalProperty) {\n\t\treturn `Unexpected \"${physicalProperty}\" property. Use \"${logicalProperty}\".`;\n\t},\n\tunexpectedValue(property, physicalValue, logicalValue) {\n\t\treturn `Unexpected \"${physicalValue}\" value in \"${property}\" property. Use \"${logicalValue}\".`;\n\t},\n\tunsupportedProp(physicalProperty, logicalProperty) {\n\t\treturn `\"${physicalProperty}\" is not part of CSS specs. Use \"${logicalProperty[0]}\" and \"${logicalProperty[1]}\".`;\n\t},\n});\n","// walk all container nodes\nexport default function walk(node, fn) {\n\tif (node.nodes && node.nodes.length) {\n\t\tconst nodes = node.nodes.slice();\n\t\tconst length = nodes.length;\n\t\tlet index = -1;\n\n\t\twhile (++index < length) {\n\t\t\tconst child = nodes[index];\n\n\t\t\tif (!isDirRule(child)) {\n\t\t\t\tfn(child);\n\n\t\t\t\twalk(child, fn);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst dirSelectorRegExp = /:dir\\(ltr|rtl\\)/i;\nconst isDirRule = node => node.type === 'rule' && dirSelectorRegExp.test(node.selector);\n","import stylelint from 'stylelint';\nimport { physicalProp, physical2Prop, physicalShorthandProp, physical4Prop, physicalValue, migrationNoneSpec, propsThatContainPropsInValue } from './lib/maps';\nimport { validateRuleWithProps } from './lib/validate';\nimport ruleName from './lib/rule-name';\nimport messages from './lib/messages';\nimport walk from './lib/walk';\n\nconst reportedDecls = new WeakMap();\n\nexport default stylelint.createPlugin(ruleName, (method, opts, context) => {\n\tconst propExceptions = [].concat(Object(opts).except || []);\n\tconst isAutofix = isContextAutofixing(context);\n\tconst dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr';\n\n\treturn (root, result) => {\n\t\t// validate the method\n\t\tconst isMethodValid = stylelint.utils.validateOptions(result, ruleName, {\n\t\t\tactual: method,\n\t\t\tpossible() {\n\t\t\t\treturn isMethodIndifferent(method) ||\n\t\t\t\t\tisMethodAlways(method)\n\t\t\t}\n\t\t});\n\n\t\tconst reportUnexpectedProperty = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnsupportedProp = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unsupportedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnexpectedValue = (node, value) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedValue(node.prop, node.value, value),\n\t\t\tnode,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tif (isMethodValid && isMethodAlways(method)) {\n\t\t\twalk(root, node => {\n\n\t\t\t\t// MIGRATION from out of date props https://github.com/csstools/stylelint-use-logical/issues/1\n\n\t\t\t\tmigrationNoneSpec.forEach(([prop, props]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, prop, (outDateDecl) => {\n\t\t\t\t\t\tconsole.warn(`Property ${prop[0]} is not part of Logical standards.`);\n\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\tconsole.warn(`Migrating ${prop[0]} to Logical standards.`);\n\t\t\t\t\t\t\tconst value = outDateDecl.value;\n\t\t\t\t\t\t\toutDateDecl.cloneBefore({\n\t\t\t\t\t\t\t\tprop:\tprops[0],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.cloneAfter({\n\t\t\t\t\t\t\t\tprop: props[1],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.remove();\n\t\t\t\t\t\t} else if (!isDeclReported(outDateDecl)) {\n\t\t\t\t\t\t\treportUnsupportedProp(outDateDecl, props);\n\t\t\t\t\t\t\treportedDecls.set(outDateDecl);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\n\n\t\t\t\t/* logical shorthands do not work yet in browsers */\n\t\t\t\t/* but we can still use shorthand if all values are the same */\n\t\t\t\t// validate or autofix 4 physical properties as logical shorthands\n\t\t\t\tphysical4Prop.forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (blockStartDecl, blockStartIndex, inlineStartDecl, inlineStartIndex, blockEndDecl, blockEndIndex, inlineEndDecl, inlineEndIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = blockStartDecl;\n\t\t\t\t\t\tconst values = shorthandValueShorten([blockStartDecl.value, inlineStartDecl.value, blockEndDecl.value, inlineEndDecl.value]);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(blockStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(blockEndDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineEndDecl, propExceptions) &&\n\t\t\t\t\t\t\tvalues.length === 1 // only report issues if there is 1 value after shortening\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: values.join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tblockStartDecl.remove();\n\t\t\t\t\t\t\t\tinlineStartDecl.remove();\n\t\t\t\t\t\t\t\tblockEndDecl.remove();\n\t\t\t\t\t\t\t\tinlineEndDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(blockStartDecl) && !isDeclReported(inlineStartDecl) && !isDeclReported(blockEndDecl) && !isDeclReported(inlineEndDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(blockStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(blockEndDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineEndDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\n\t\t\t\t// validate or autofix shorthand properties that are not supported\n\t\t\t\tphysicalShorthandProp.forEach((prop) => {\n\t\t\t\t\tvalidateRuleWithProps(node, [prop], physicalDecl => { // eslint-disable-line\n\t\t\t\t\t\tlet inputValues = physicalDecl.value.trim().split(' ');\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(physicalDecl, propExceptions) &&\n\t\t\t\t\t\t\tinputValues.length !== 1\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tlet outputValues = convertShorthandValues(inputValues, dir);\n\n\t\t\t\t\t\t\t\t['block', 'inline'].forEach(type => {\n\t\t\t\t\t\t\t\t\tphysicalDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\t\tprop: prop + \"-\" + type,\n\t\t\t\t\t\t\t\t\t\tvalue: outputValues[type]\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tphysicalDecl.remove();\n\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, `${prop}-block and ${prop}-inline`);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix 2 physical properties as logical shorthands\n\t\t\t\tphysical2Prop(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (startDecl, startIndex, endDecl, endStartIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = startIndex < endStartIndex\n\t\t\t\t\t\t\t? startDecl\n\t\t\t\t\t\t\t: endDecl;\n\n\t\t\t\t\t\tif (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: startDecl.value === endDecl.value\n\t\t\t\t\t\t\t\t\t\t? startDecl.value\n\t\t\t\t\t\t\t\t\t\t: [startDecl.value, endDecl.value].join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tstartDecl.remove();\n\t\t\t\t\t\t\t\tendDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(startDecl) && !isDeclReported(endDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(startDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(endDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical properties as logical\n\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, physicalDecl => {\n\t\t\t\t\t\tif (!isDeclAnException(physicalDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tphysicalDecl.prop = prop;\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values as logical\n\t\t\t\tphysicalValue(dir).forEach(([regexp, props]) => {\n\t\t\t\t\tif (isNodeMatchingDecl(node, regexp) && !isDeclAnException(node, propExceptions)) {\n\t\t\t\t\t\tconst valuekey = node.value.toLowerCase();\n\n\t\t\t\t\t\tif (valuekey in props) {\n\t\t\t\t\t\t\tconst value = props[valuekey];\n\n\t\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values containing properties as logical\n\t\t\t\tif (isNodeMatchingDecl(node, propsThatContainPropsInValue)) {\n\t\t\t\t\tconst originalValue = node.value.toLowerCase();\n\t\t\t\t\tlet value = originalValue;\n\n\t\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\t\tif (!isDeclAnException(node, propExceptions)) {\n\n\t\t\t\t\t\t\tprops.forEach(searchProp => {\n\t\t\t\t\t\t\t\tif (!isValueAnException(searchProp, propExceptions)) {\n\t\t\t\t\t\t\t\t\tlet regex = new RegExp(\"(?<!-)\" + searchProp + \"(?!-)\", \"g\");\n\t\t\t\t\t\t\t\t\tif (regex.test(value)) {\n\t\t\t\t\t\t\t\t\t\tvalue = value.replace(regex, prop);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (value !== originalValue) {\n\t\t\t\t\t\tif (isAutofix) {\n\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n});\n\nexport { ruleName }\n\nconst isMethodIndifferent = method => method === 'ignore' || method === false || method === null;\nconst isMethodAlways = method => method === 'always' || method === true;\nconst isContextAutofixing = context => Boolean(Object(context).fix);\nconst isNodeMatchingDecl = (decl, regexp) => decl.type === 'decl' && regexp.test(decl.prop);\nconst isDeclAnException = (decl, propExceptions) => isValueAnException(decl.prop, propExceptions);\nconst isValueAnException = (value, propExceptions) => propExceptions.some(match => match instanceof RegExp\n\t? match.test(value)\n: String(match || '').toLowerCase() === String(value || '').toLowerCase());\nconst isDeclReported = decl => reportedDecls.has(decl);\n\nconst shorthandValueShorten = values => {\n\tconst map = [[1, 0], [0, 2], [1, 3]];\n\tfor (let x = values.length - 2; x >= 0; x--)\n\t{\n\t\tif (values[map[x][0]] !== values[map[x][1]]) {\n\t\t\tbreak;\n\t\t}\n\t\tvalues.pop();\n\t}\n\treturn values;\n};\n\nconst convertShorthandValues = (input, dir) => {\n\tlet block, inline;\n\tif (input.length === 1) {\n\t\tblock = input[0];\n\t\tinline = input[0];\n\t}\n\tif (input.length === 2) {\n\t\tblock = input[0];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 3) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 4) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = dir === 'ltr' ? input[3] + ' ' + input[1] : input[1] + ' ' + input[3];\n\t}\n\treturn {\n\t\tblock: optimizeCssValues(block),\n\t\tinline: optimizeCssValues(inline)\n\t};\n};\n\nconst optimizeCssValues = (value) => {\n\tlet values = value.split(' ');\n\tif (values.length === 2 && values[0] === values[1]) {\n\t\treturn values[0];\n\t}\n\treturn value;\n}\n"],"names":["inline","start","ltr","rtl","end","propsThatContainPropsInValue","physical4Prop","physicalShorthandProp","physical2Prop","dir","physicalProp","physicalValue","migrationNoneSpec","validateRuleWithProps","root","props","fn","nodes","length","args","hasProps","every","prop","declIndex","findIndex","child","type","decl","push","stylelint","utils","ruleMessages","ruleName","unexpectedProp","physicalProperty","logicalProperty","unexpectedValue","property","logicalValue","unsupportedProp","walk","node","slice","index","isDirRule","dirSelectorRegExp","test","selector","reportedDecls","WeakMap","createPlugin","method","opts","context","propExceptions","concat","Object","except","isAutofix","isContextAutofixing","direction","result","isMethodValid","validateOptions","actual","possible","isMethodIndifferent","isMethodAlways","reportUnexpectedProperty","report","message","messages","reportUnsupportedProp","reportUnexpectedValue","value","forEach","outDateDecl","console","warn","cloneBefore","cloneAfter","remove","isDeclReported","set","blockStartDecl","blockStartIndex","inlineStartDecl","inlineStartIndex","blockEndDecl","blockEndIndex","inlineEndDecl","inlineEndIndex","firstInlineDecl","values","shorthandValueShorten","isDeclAnException","join","physicalDecl","inputValues","trim","split","outputValues","convertShorthandValues","startDecl","startIndex","endDecl","endStartIndex","regexp","isNodeMatchingDecl","valuekey","toLowerCase","originalValue","searchProp","isValueAnException","regex","RegExp","replace","Boolean","fix","some","match","String","has","map","x","pop","input","block","optimizeCssValues"],"mappings":"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"} | ||
| {"version":3,"file":"index.es.mjs","sources":["lib/maps.js","lib/validate.js","lib/value-split.js","lib/rule-name.js","lib/messages.js","lib/walk.js","index.js"],"sourcesContent":["const inline = {\n\tstart: { ltr: 'left', rtl: 'right' },\n\tend: { ltr: 'right', rtl: 'left' }\n}\n\nexport const propsThatContainPropsInValue = /^(transition(-property)?|will-change)$/i;\n\nexport const physical4Prop = [\n\t[['top', 'left', 'bottom', 'right'], 'inset'],\n\t[['margin-top', 'margin-left', 'margin-bottom', 'margin-right'], 'margin'],\n\t[['padding-top', 'padding-left', 'padding-bottom', 'padding-right'], 'padding']\n];\n\nexport const physicalShorthandProp = ['inset', 'margin', 'padding'];\n\nexport const physical2Prop = dir => [\n\t[['top', 'bottom'], 'inset-block'],\n\t[[inline.start[dir], inline.end[dir]], 'inset-inline'],\n\n\t[['margin-top', 'margin-bottom'], 'margin-block'],\n\t[[`margin-${inline.start[dir]}`, `margin-${inline.end[dir]}`], 'margin-inline'],\n\n\t[['padding-top', 'padding-bottom'], 'padding-block'],\n\t[[`padding-${inline.start[dir]}`, `padding-${inline.end[dir]}`], 'padding-inline'],\n];\n\nexport const physicalProp = dir => [\n\t[['top'], 'inset-block-start'],\n\t[['bottom'], 'inset-block-end'],\n\t[[inline.start[dir]], 'inset-inline-start'],\n\t[[inline.end[dir]], 'inset-inline-end'],\n\n\t[['margin-top'], 'margin-block-start'],\n\t[['margin-bottom'], 'margin-block-end'],\n\t[[`margin-${inline.start[dir]}`], 'margin-inline-start'],\n\t[[`margin-${inline.end[dir]}`], 'margin-inline-end'],\n\n\t[['padding-top'], 'padding-block-start'],\n\t[['padding-bottom'], 'padding-block-end'],\n\t[[`padding-${inline.start[dir]}`], 'padding-inline-start'],\n\t[[`padding-${inline.end[dir]}`], 'padding-inline-end'],\n\n\n\t// border\n\t[['border-top'], 'border-block-start'],\n\t[['border-bottom'], 'border-block-end'],\n\t[[`border-${inline.start[dir]}`], 'border-inline-start'],\n\t[[`border-${inline.end[dir]}`], 'border-inline-end'],\n\n\t[['border-top-color'], 'border-block-start-color'],\n\t[['border-top-style'], 'border-block-start-style'],\n\t[['border-top-width'], 'border-block-start-width'],\n\t[['border-bottom-color'], 'border-block-end-color'],\n\t[['border-bottom-style'], 'border-block-end-style'],\n\t[['border-bottom-width'], 'border-block-end-width'],\n\n\n\t[[`border-${inline.start[dir]}-color`], 'border-inline-start-color'],\n\t[[`border-${inline.start[dir]}-style`], 'border-inline-start-style'],\n\t[[`border-${inline.start[dir]}-width`], 'border-inline-start-width'],\n\t[[`border-${inline.end[dir]}-color`], 'border-inline-end-color'],\n\t[[`border-${inline.end[dir]}-style`], 'border-inline-end-style'],\n\t[[`border-${inline.end[dir]}-width`], 'border-inline-end-width'],\n\n\n\t[[`border-top-${inline.start[dir]}-radius`], 'border-start-start-radius'],\n\t[[`border-bottom-${inline.start[dir]}-radius`], 'border-end-start-radius'],\n\t[[`border-top-${inline.end[dir]}-radius`], 'border-start-end-radius'],\n\t[[`border-bottom-${inline.end[dir]}-radius`], 'border-end-end-radius'],\n\n\t[['height'], 'block-size'],\n\t[['min-height'], 'min-block-size'],\n\t[['max-height'], 'max-block-size'],\n\n\t[['width'], 'inline-size'],\n\t[['min-width'], 'min-inline-size'],\n\t[['max-width'], 'max-inline-size'],\n\n];\n\nexport const physicalValue = dir => [\n\t[/^clear$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^float$/i, {\n\t\t[inline.start[dir]]: 'inline-start',\n\t\t[inline.end[dir]]: 'inline-end'\n\t}],\n\t[/^text-align$/i, {\n\t\t[inline.start[dir]]: 'start',\n\t\t[inline.end[dir]]: 'end'\n\t}]\n];\n\nexport const migrationNoneSpec = [\n\t[['margin-start'], ['margin-block-start', 'margin-inline-start']],\n\t[['margin-end'], ['margin-block-end', 'margin-inline-end']],\n\n\t[['padding-start'], ['padding-block-start', 'padding-inline-start']],\n\t[['padding-end'], ['padding-block-end', 'padding-inline-end']],\n\n\t[['inset-start'], ['inset-inline-start', 'inset-block-start']],\n\t[['inset-end'], ['inset-inline-end', 'inset-block-end']],\n];\n\n","export const validateRuleWithProps = (root, props, fn) => {\n\t// For supporting css-in-js\n\tconst { nodes = [root] } = root;\n\t// conditionally walk nodes with children\n\tif (nodes && nodes.length) {\n\t\tconst args = [];\n\n\t\tconst hasProps = props.every(prop => {\n\t\t\tconst declIndex = nodes.findIndex(child => child.type === 'decl' && child.prop === prop);\n\t\t\tconst decl = nodes[declIndex];\n\n\t\t\tif (decl) {\n\t\t\t\targs.push(decl, declIndex);\n\t\t\t}\n\n\t\t\treturn decl;\n\t\t});\n\n\t\tif (hasProps) {\n\t\t\tfn(...args);\n\t\t}\n\t}\n};\n","export const cssValueSplit = (value) => {\n\tconst ret = [];\n\tconst stack = [];\n\n\tlet part = '';\n\tlet esc = false;\n\tlet q = '';\n\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst c = value[i];\n\n\t\tif (esc) {\n\t\t\tesc = false;\n\t\t} else if (c === '\\\\') {\n\t\t\tesc = true;\n\t\t} else if (q) {\n\t\t\tif (c === q) {\n\t\t\t\tq = '';\n\t\t\t}\n\t\t} else if (c === '\\'' || c === '\"') {\n\t\t\tq = c;\n\t\t} else if (c === ' ' && stack.length === 0) {\n\t\t\tif (part) {\n\t\t\t\tret.push(part);\n\t\t\t}\n\t\t\tpart = '';\n\t\t\tcontinue;\n\n\t\t} else if (c === '(') {\n\t\t\tstack.push(')');\n\t\t} else if (c === '{') {\n\t\t\tstack.push('}');\n\t\t} else if (c === '[') {\n\t\t\tstack.push(']');\n\t\t} else if (stack.length && c === stack[stack.length - 1]) {\n\t\t\tstack.length--;\n\t\t}\n\n\t\tpart += c;\n\t}\n\n\tif (part) {\n\t\tret.push(part);\n\t}\n\n\treturn ret;\n}\n\n// console.log(cssValueSplit('3px 0 5px'));\n// -> [ '3px', '0', '5px' ]\n// console.log(cssValueSplit('3px calc(--bla, 0) 5px'));\n// -> [ '3px', 'calc(--bla, 0)', '5px' ]\n// console.log(cssValueSplit('3px map-get($spacers, 2) 5px'));\n// -> [ '3px', 'map-get($spacers, 2)', '5px' ]\n// console.log(cssValueSplit('-#{map-get($spacers, 2)} #{map-get($spacers, 3)} 5px'));\n// -> [ '-#{map-get($spacers, 2)}', '#{map-get($spacers, 3)}', '5px' ]\n// console.log(cssValueSplit('-#{function(\"something ) else\\')\\\\\" bla\", 2)} #{map-get($spacers, 3)} 5px'));\n// [ `-#{function(\"something ) else')\\\\\" bla\", 2)}`, '#{map-get($spacers, 3)}', '5px' ]\n","export default 'liberty/use-logical-spec';\n","import stylelint from 'stylelint';\nimport ruleName from './rule-name';\n\nexport default stylelint.utils.ruleMessages(ruleName, {\n\tunexpectedProp(physicalProperty, logicalProperty) {\n\t\treturn `Unexpected \"${physicalProperty}\" property. Use \"${logicalProperty}\".`;\n\t},\n\tunexpectedValue(property, physicalValue, logicalValue) {\n\t\treturn `Unexpected \"${physicalValue}\" value in \"${property}\" property. Use \"${logicalValue}\".`;\n\t},\n\tunsupportedProp(physicalProperty, logicalProperty) {\n\t\treturn `\"${physicalProperty}\" is not part of CSS specs. Use \"${logicalProperty[0]}\" and \"${logicalProperty[1]}\".`;\n\t},\n});\n","// walk all container nodes\nexport default function walk(node, fn) {\n\tif (node.nodes && node.nodes.length) {\n\t\tconst nodes = node.nodes.slice();\n\t\tconst length = nodes.length;\n\t\tlet index = -1;\n\n\t\twhile (++index < length) {\n\t\t\tconst child = nodes[index];\n\n\t\t\tif (!isDirRule(child)) {\n\t\t\t\tfn(child);\n\n\t\t\t\twalk(child, fn);\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst dirSelectorRegExp = /:dir\\(ltr|rtl\\)/i;\nconst isDirRule = node => node.type === 'rule' && dirSelectorRegExp.test(node.selector);\n","import stylelint from 'stylelint';\nimport { physicalProp, physical2Prop, physicalShorthandProp, physical4Prop, physicalValue, migrationNoneSpec, propsThatContainPropsInValue } from './lib/maps';\nimport { validateRuleWithProps } from './lib/validate';\nimport { cssValueSplit } from './lib/value-split';\nimport ruleName from './lib/rule-name';\nimport messages from './lib/messages';\nimport walk from './lib/walk';\n\nconst reportedDecls = new WeakMap();\n\n// Ignore autofix on those expression value\nconst expressionRegex = /^\\$\\{.*\\}$/g;\n\nexport default stylelint.createPlugin(ruleName, (method, opts, context) => {\n\tconst propExceptions = [].concat(Object(opts).except || []);\n\tconst isAutofixable = (node) => isContextAutofixing(context) && !expressionRegex.test(node.value);\n\tconst dir = /^rtl$/i.test(Object(opts).direction) ? 'rtl' : 'ltr';\n\n\treturn (root, result) => {\n\t\t// validate the method\n\t\tconst isMethodValid = stylelint.utils.validateOptions(result, ruleName, {\n\t\t\tactual: method,\n\t\t\tpossible() {\n\t\t\t\treturn isMethodIndifferent(method) ||\n\t\t\t\t\tisMethodAlways(method)\n\t\t\t}\n\t\t});\n\n\t\tconst reportUnexpectedProperty = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnsupportedProp = (decl, logicalProperty) => stylelint.utils.report({\n\t\t\tmessage: messages.unsupportedProp(decl.prop, logicalProperty),\n\t\t\tnode: decl,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tconst reportUnexpectedValue = (node, value) => stylelint.utils.report({\n\t\t\tmessage: messages.unexpectedValue(node.prop, node.value, value),\n\t\t\tnode,\n\t\t\tresult,\n\t\t\truleName\n\t\t});\n\n\t\tif (isMethodValid && isMethodAlways(method)) {\n\t\t\twalk(root, node => {\n\n\t\t\t\t// MIGRATION from out of date props https://github.com/csstools/stylelint-use-logical/issues/1\n\n\t\t\t\tmigrationNoneSpec.forEach(([prop, props]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, prop, (outDateDecl) => {\n\t\t\t\t\t\tconsole.warn(`Property ${prop[0]} is not part of Logical standards.`);\n\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\tconsole.warn(`Migrating ${prop[0]} to Logical standards.`);\n\t\t\t\t\t\t\tconst value = outDateDecl.value;\n\t\t\t\t\t\t\toutDateDecl.cloneBefore({\n\t\t\t\t\t\t\t\tprop:\tprops[0],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.cloneAfter({\n\t\t\t\t\t\t\t\tprop: props[1],\n\t\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\toutDateDecl.remove();\n\t\t\t\t\t\t} else if (!isDeclReported(outDateDecl)) {\n\t\t\t\t\t\t\treportUnsupportedProp(outDateDecl, props);\n\t\t\t\t\t\t\treportedDecls.set(outDateDecl);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\n\n\t\t\t\t/* logical shorthands do not work yet in browsers */\n\t\t\t\t/* but we can still use shorthand if all values are the same */\n\t\t\t\t// validate or autofix 4 physical properties as logical shorthands\n\t\t\t\tphysical4Prop.forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (blockStartDecl, blockStartIndex, inlineStartDecl, inlineStartIndex, blockEndDecl, blockEndIndex, inlineEndDecl, inlineEndIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = blockStartDecl;\n\t\t\t\t\t\tconst values = shorthandValueShorten([blockStartDecl.value, inlineStartDecl.value, blockEndDecl.value, inlineEndDecl.value]);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(blockStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineStartDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(blockEndDecl, propExceptions) &&\n\t\t\t\t\t\t\t!isDeclAnException(inlineEndDecl, propExceptions) &&\n\t\t\t\t\t\t\tvalues.length === 1 // only report issues if there is 1 value after shortening\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: values.join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tblockStartDecl.remove();\n\t\t\t\t\t\t\t\tinlineStartDecl.remove();\n\t\t\t\t\t\t\t\tblockEndDecl.remove();\n\t\t\t\t\t\t\t\tinlineEndDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(blockStartDecl) && !isDeclReported(inlineStartDecl) && !isDeclReported(blockEndDecl) && !isDeclReported(inlineEndDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(blockStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineStartDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(blockEndDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(inlineEndDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\n\t\t\t\t// validate or autofix shorthand properties that are not supported\n\t\t\t\tphysicalShorthandProp.forEach((prop) => {\n\t\t\t\t\tvalidateRuleWithProps(node, [prop], physicalDecl => { // eslint-disable-line\n\t\t\t\t\t\tconst inputValues = cssValueSplit(physicalDecl.value);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t!isDeclAnException(physicalDecl, propExceptions) &&\n\t\t\t\t\t\t\tinputValues.length !== 1\n\t\t\t\t\t\t) {\n\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tlet outputValues = convertShorthandValues(inputValues, dir);\n\n\t\t\t\t\t\t\t\t['block', 'inline'].forEach(type => {\n\t\t\t\t\t\t\t\t\tphysicalDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\t\tprop: prop + \"-\" + type,\n\t\t\t\t\t\t\t\t\t\tvalue: outputValues[type]\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t})\n\n\t\t\t\t\t\t\t\tphysicalDecl.remove();\n\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, `${prop}-block and ${prop}-inline`);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix 2 physical properties as logical shorthands\n\t\t\t\tphysical2Prop(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, (startDecl, startIndex, endDecl, endStartIndex) => { // eslint-disable-line\n\t\t\t\t\t\tconst firstInlineDecl = startIndex < endStartIndex\n\t\t\t\t\t\t\t? startDecl\n\t\t\t\t\t\t\t: endDecl;\n\n\t\t\t\t\t\tif (!isDeclAnException(startDecl, propExceptions) && !isDeclAnException(endDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tfirstInlineDecl.cloneBefore({\n\t\t\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t\t\tvalue: startDecl.value === endDecl.value\n\t\t\t\t\t\t\t\t\t\t? startDecl.value\n\t\t\t\t\t\t\t\t\t\t: [startDecl.value, endDecl.value].join(' ')\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tstartDecl.remove();\n\t\t\t\t\t\t\t\tendDecl.remove();\n\t\t\t\t\t\t\t} else if (!isDeclReported(startDecl) && !isDeclReported(endDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(firstInlineDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(startDecl);\n\t\t\t\t\t\t\t\treportedDecls.set(endDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical properties as logical\n\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\tvalidateRuleWithProps(node, props, physicalDecl => {\n\t\t\t\t\t\tif (!isDeclAnException(physicalDecl, propExceptions)) {\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tphysicalDecl.prop = prop;\n\t\t\t\t\t\t\t} else if (!isDeclReported(physicalDecl)) {\n\t\t\t\t\t\t\t\treportUnexpectedProperty(physicalDecl, prop);\n\n\t\t\t\t\t\t\t\treportedDecls.set(physicalDecl);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values as logical\n\t\t\t\tphysicalValue(dir).forEach(([regexp, props]) => {\n\t\t\t\t\tif (isNodeMatchingDecl(node, regexp) && !isDeclAnException(node, propExceptions)) {\n\t\t\t\t\t\tconst valuekey = node.value.toLowerCase();\n\n\t\t\t\t\t\tif (valuekey in props) {\n\t\t\t\t\t\t\tconst value = props[valuekey];\n\n\t\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// validate or autofix physical values containing properties as logical\n\t\t\t\tif (isNodeMatchingDecl(node, propsThatContainPropsInValue)) {\n\t\t\t\t\tconst originalValue = node.value.toLowerCase();\n\t\t\t\t\tlet value = originalValue;\n\n\t\t\t\t\tphysicalProp(dir).forEach(([props, prop]) => {\n\t\t\t\t\t\tif (!isDeclAnException(node, propExceptions)) {\n\n\t\t\t\t\t\t\tprops.forEach(searchProp => {\n\t\t\t\t\t\t\t\tif (!isValueAnException(searchProp, propExceptions)) {\n\t\t\t\t\t\t\t\t\tlet regex = new RegExp(\"(?<!-)\" + searchProp + \"(?!-)\", \"g\");\n\t\t\t\t\t\t\t\t\tif (regex.test(value)) {\n\t\t\t\t\t\t\t\t\t\tvalue = value.replace(regex, prop);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (value !== originalValue) {\n\t\t\t\t\t\tif (isAutofixable(node)) {\n\t\t\t\t\t\t\tnode.value = value;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treportUnexpectedValue(node, value);\n\n\t\t\t\t\t\t\treportedDecls.set(node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n});\n\nexport { ruleName }\n\nconst isMethodIndifferent = method => method === 'ignore' || method === false || method === null;\nconst isMethodAlways = method => method === 'always' || method === true;\nconst isContextAutofixing = context => Boolean(Object(context).fix);\nconst isNodeMatchingDecl = (decl, regexp) => decl.type === 'decl' && regexp.test(decl.prop);\nconst isDeclAnException = (decl, propExceptions) => isValueAnException(decl.prop, propExceptions);\nconst isValueAnException = (value, propExceptions) => propExceptions.some(match => match instanceof RegExp\n\t? match.test(value)\n: String(match || '').toLowerCase() === String(value || '').toLowerCase());\nconst isDeclReported = decl => reportedDecls.has(decl);\n\nconst shorthandValueShorten = values => {\n\tconst map = [[1, 0], [0, 2], [1, 3]];\n\tfor (let x = values.length - 2; x >= 0; x--)\n\t{\n\t\tif (values[map[x][0]] !== values[map[x][1]]) {\n\t\t\tbreak;\n\t\t}\n\t\tvalues.pop();\n\t}\n\treturn values;\n};\n\nconst convertShorthandValues = (input, dir) => {\n\tlet block, inline;\n\tif (input.length === 1) {\n\t\tblock = input[0];\n\t\tinline = input[0];\n\t}\n\tif (input.length === 2) {\n\t\tblock = input[0];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 3) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = input[1];\n\t}\n\tif (input.length === 4) {\n\t\tblock = input[0] + ' ' + input[2];\n\t\tinline = dir === 'ltr' ? input[3] + ' ' + input[1] : input[1] + ' ' + input[3];\n\t}\n\treturn {\n\t\tblock: optimizeCssValues(block),\n\t\tinline: optimizeCssValues(inline)\n\t};\n};\n\nconst optimizeCssValues = (value) => {\n\tconst values = cssValueSplit(value);\n\tif (values.length === 2 && values[0] === values[1]) {\n\t\treturn values[0];\n\t}\n\treturn value;\n}\n"],"names":["inline","start","ltr","rtl","end","propsThatContainPropsInValue","physical4Prop","physicalShorthandProp","physical2Prop","dir","physicalProp","physicalValue","migrationNoneSpec","validateRuleWithProps","root","props","fn","nodes","length","args","hasProps","every","prop","declIndex","findIndex","child","type","decl","push","cssValueSplit","value","ret","stack","part","esc","q","i","c","stylelint","utils","ruleMessages","ruleName","unexpectedProp","physicalProperty","logicalProperty","unexpectedValue","property","logicalValue","unsupportedProp","walk","node","slice","index","isDirRule","dirSelectorRegExp","test","selector","reportedDecls","WeakMap","expressionRegex","createPlugin","method","opts","context","propExceptions","concat","Object","except","isAutofixable","isContextAutofixing","direction","result","isMethodValid","validateOptions","actual","possible","isMethodIndifferent","isMethodAlways","reportUnexpectedProperty","report","message","messages","reportUnsupportedProp","reportUnexpectedValue","forEach","outDateDecl","console","warn","cloneBefore","cloneAfter","remove","isDeclReported","set","blockStartDecl","blockStartIndex","inlineStartDecl","inlineStartIndex","blockEndDecl","blockEndIndex","inlineEndDecl","inlineEndIndex","firstInlineDecl","values","shorthandValueShorten","isDeclAnException","join","physicalDecl","inputValues","outputValues","convertShorthandValues","startDecl","startIndex","endDecl","endStartIndex","regexp","isNodeMatchingDecl","valuekey","toLowerCase","originalValue","searchProp","isValueAnException","regex","RegExp","replace","Boolean","fix","some","match","String","has","map","x","pop","input","block","optimizeCssValues"],"mappings":"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"} |
+1
-2
| { | ||
| "name": "stylelint-use-logical-spec", | ||
| "version": "4.1.0", | ||
| "version": "5.0.0", | ||
| "description": "Enforce usage of logical properties and values in CSS", | ||
@@ -30,3 +30,2 @@ "license": "CC0-1.0", | ||
| }, | ||
| "dependencies": {}, | ||
| "devDependencies": { | ||
@@ -33,0 +32,0 @@ "@babel/core": "^7.12.3", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
125243
9.21%736
16.83%13
Infinity%