@master/eslint-plugin-css 2.0.0-beta.198 → 2.0.0-beta.199
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var k=Object.create;var p=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var K=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var A=(e,s)=>{for(var o in s)p(e,o,{get:s[o],enumerable:!0})},y=(e,s,o,l)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of w(s))!V.call(e,n)&&n!==o&&p(e,n,{get:()=>s[n],enumerable:!(l=q(s,n))||l.enumerable});return e};var f=(e,s,o)=>(o=e!=null?k(K(e)):{},y(s||!e||!e.__esModule?p(o,"default",{value:e,enumerable:!0}):o,e)),D=e=>y(p({},"__esModule",{value:!0}),e);var U={};A(U,{default:()=>O});module.exports=D(U);var R=f(require("../utils/ast")),S=f(require("../utils/are-declarations-equal")),$=f(require("../utils/define-visitors")),v=f(require("../utils/resolve-context")),L=require("@master/css-validator"),O={meta:{docs:{description:"Avoid applying classes with the same CSS declaration",category:"Stylistic Issues",recommended:!1,url:"https://beta.css.master.co/docs/code-linting#class-collision-detection"},messages:{collisionClass:"{{message}}"},fixable:"code",schema:[{type:"object",properties:{calleeMatching:{type:"string"},classMatching:{type:"string"},ignoredKeys:{type:"array",items:{type:"string",minLength:0},uniqueItems:!0},config:{type:["string","object"]}}}]},create(e){const{options:s,settings:o,config:l}=(0,v.default)(e);return(0,$.default)({context:e,settings:o},(b,j=null)=>{R.parseNodeRecursive(b,j,(c,C,x,E,M)=>{const I=e.sourceCode.lines,N=C.loc.start.line,T=C.loc.end.line,m={};c.forEach(i=>{m[i]=(0,L.createValidRules)(i,{config:l})[0]});for(let i=0;i<c.length;i++){const g=c[i],u=m[g],d=[];if(u)for(let r=0;r<c.length;r++){const a=c[r],t=m[a];i!==r&&t&&(0,S.default)(u.declarations,t.declarations)&&u.stateToken===t.stateToken&&d.push(a)}if(d.length>0){const r=d.map(t=>`"${t}"`).join(" and ");let a=x;for(const t of d){const h=t.replace(/(\\|\.|\(|\)|\[|\]|\{|\}|\+|\*|\?|\^|\$|\||\/)/g,"\\$1");a=a.replace(new RegExp(`\\s+${h}|${h}\\s+`),"")}e.report({loc:R.findLoc(g,I,N,T),messageId:"collisionClass",data:{message:`"${g}" applies the same CSS declarations as ${r}.`},fix:function(t){return t.replaceTextRange([E,M],a)}})}}},!1,!1,o.ignoredKeys,e)})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as m from"../utils/ast";import L from"../utils/are-declarations-equal";import b from"../utils/define-visitors";import j from"../utils/resolve-context";import{createValidRules as x}from"@master/css-validator";var V={meta:{docs:{description:"Avoid applying classes with the same CSS declaration",category:"Stylistic Issues",recommended:!1,url:"https://beta.css.master.co/docs/code-linting#class-collision-detection"},messages:{collisionClass:"{{message}}"},fixable:"code",schema:[{type:"object",properties:{calleeMatching:{type:"string"},classMatching:{type:"string"},ignoredKeys:{type:"array",items:{type:"string",minLength:0},uniqueItems:!0},config:{type:["string","object"]}}}]},create(i){const{options:E,settings:d,config:g}=j(i);return b({context:i,settings:d},(u,C=null)=>{m.parseNodeRecursive(u,C,(n,p,h,y,R)=>{const S=i.sourceCode.lines,$=p.loc.start.line,v=p.loc.end.line,a={};n.forEach(s=>{a[s]=x(s,{config:g})[0]});for(let s=0;s<n.length;s++){const c=n[s],l=a[c],r=[];if(l)for(let o=0;o<n.length;o++){const t=n[o],e=a[t];s!==o&&e&&L(l.declarations,e.declarations)&&l.stateToken===e.stateToken&&r.push(t)}if(r.length>0){const o=r.map(e=>`"${e}"`).join(" and ");let t=h;for(const e of r){const f=e.replace(/(\\|\.|\(|\)|\[|\]|\{|\}|\+|\*|\?|\^|\$|\||\/)/g,"\\$1");t=t.replace(new RegExp(`\\s+${f}|${f}\\s+`),"")}i.report({loc:m.findLoc(c,S,$,v),messageId:"collisionClass",data:{message:`"${c}" applies the same CSS declarations as ${o}.`},fix:function(e){return e.replaceTextRange([y,R],t)}})}}},!1,!1,d.ignoredKeys,i)})}};export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var V=Object.create;var
|
|
1
|
+
var V=Object.create;var N=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var U=(l,a)=>{for(var n in a)N(l,n,{get:a[n],enumerable:!0})},k=(l,a,n,E)=>{if(a&&typeof a=="object"||typeof a=="function")for(let u of O(a))!w.call(l,u)&&u!==n&&N(l,u,{get:()=>a[u],enumerable:!(E=M(a,u))||E.enumerable});return l};var T=(l,a,n)=>(n=l!=null?V(P(l)):{},k(a||!l||!l.__esModule?N(n,"default",{value:l,enumerable:!0}):n,l)),F=l=>k(N({},"__esModule",{value:!0}),l);var G={};U(G,{default:()=>j});module.exports=F(G);var g=T(require("../utils/ast")),L=T(require("../utils/define-visitors")),_=T(require("../utils/resolve-context")),$=require("@master/css"),j={meta:{docs:{description:"Enforce a consistent and logical order of classes",category:"Stylistic Issues",recommended:!1,url:"https://beta.css.master.co/docs/code-linting#consistent-class-order"},messages:{invalidClassOrder:"No consistent class order followed."},fixable:"code",schema:[{type:"object",properties:{calleeMatching:{type:"string"},classMatching:{type:"string"},ignoredKeys:{type:"array",items:{type:"string",minLength:0},uniqueItems:!0},config:{type:["string","object"]}}}]},create:function(l){const{options:a,settings:n,config:E}=(0,_.default)(l),u=l.sourceCode,p=(r,t=null)=>{let s=null,f=null,m=null,S="",C="",y=[];if(t===null){s=g.extractValueFromNode(r);const e=g.extractRangeFromNode(r);r.type==="TextAttribute"?(f=e[0],m=e[1]):(f=e[0]+1,m=e[1]-1)}else switch(t.type){case"Identifier":return;case"TemplateLiteral":t.expressions.forEach(i=>{p(r,i)}),s=u.getText(t),s=s.substring(1,s.length-1),y=s.match(/\$\{(?:(?<!\\\\)(['"`]).*?(?<!\\\\)\1|[^}])*?\}/g)??[];for(let i=0;i<y.length;i++)s=s.replace(y[i],`EXPRESSION_STRING_NUM_${i}`);f=t.range[0]+1,m=t.range[1]-1;break;case"ConditionalExpression":p(r,t.consequent),p(r,t.alternate);return;case"LogicalExpression":p(r,t.right);return;case"ArrayExpression":t.elements.forEach(i=>{p(r,i)});return;case"ObjectExpression":const e=r.callee&&r.callee.name==="classnames",h=r.key&&r.key.type==="VDirectiveKey";t.properties.forEach(i=>{const R=e||h?i.key:i.value;p(r,R)});return;case"Property":p(r,t.key);break;case"Literal":s=t.value,f=t.range[0]+1,m=t.range[1]-1;break;case"SvelteLiteral":if(s=t.value,s==="")return;f=t.range[0],m=t.range[1];break;case"TemplateElement":if(s=t.value.raw,s==="")return;f=t.range[0],m=t.range[1];const o=l.sourceCode.getText(t);S=g.getTemplateElementPrefix(o,s),C=g.getTemplateElementSuffix(o,s),s=g.getTemplateElementBody(o,S,C);break}const{classNames:x,whitespaces:b,headSpace:v,tailSpace:I}=g.extractClassnamesFromValue(s);if(x.length<=1)return;let d=(0,$.reorderForReadableClasses)(x,E).filter(e=>x.includes(e));d=x.filter(e=>!d.includes(e)).concat(d).filter(e=>e.trim()!=="");let c="";for(let e=0;e<d.length;e++){const h=b[e]??"",o=d[e];c+=v?`${h}${o}`:`${o}${h}`,o&&(!I&&e===d.length-1&&(c=c.replace(/\s+$/,"")),v&&I&&e===d.length-1&&(c+=b[b.length-1]??""))}for(let e=0;e<y.length;e++)s=s.replace(`EXPRESSION_STRING_NUM_${e}`,y[e]),c=c.replace(`EXPRESSION_STRING_NUM_${e}`,y[e]);if(s!==c){c=S+c+C;const e=u.lines,h=r.loc.start.line,o=r.loc.end.line,i={loc:g.findLoc(s,e,h,o),messageId:"invalidClassOrder",fix:function(R){return R.replaceTextRange([f,m],c)}};l.report(i)}};return(0,L.default)({context:l,settings:n},p)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as
|
|
1
|
+
import*as p from"../utils/ast";import T from"../utils/define-visitors";import v from"../utils/resolve-context";import{reorderForReadableClasses as I}from"@master/css";var O={meta:{docs:{description:"Enforce a consistent and logical order of classes",category:"Stylistic Issues",recommended:!1,url:"https://beta.css.master.co/docs/code-linting#consistent-class-order"},messages:{invalidClassOrder:"No consistent class order followed."},fixable:"code",schema:[{type:"object",properties:{calleeMatching:{type:"string"},classMatching:{type:"string"},ignoredKeys:{type:"array",items:{type:"string",minLength:0},uniqueItems:!0},config:{type:["string","object"]}}}]},create:function(d){const{options:k,settings:b,config:R}=v(d),N=d.sourceCode,n=(l,t=null)=>{let s=null,c=null,o=null,y="",h="",f=[];if(t===null){s=p.extractValueFromNode(l);const e=p.extractRangeFromNode(l);l.type==="TextAttribute"?(c=e[0],o=e[1]):(c=e[0]+1,o=e[1]-1)}else switch(t.type){case"Identifier":return;case"TemplateLiteral":t.expressions.forEach(r=>{n(l,r)}),s=N.getText(t),s=s.substring(1,s.length-1),f=s.match(/\$\{(?:(?<!\\\\)(['"`]).*?(?<!\\\\)\1|[^}])*?\}/g)??[];for(let r=0;r<f.length;r++)s=s.replace(f[r],`EXPRESSION_STRING_NUM_${r}`);c=t.range[0]+1,o=t.range[1]-1;break;case"ConditionalExpression":n(l,t.consequent),n(l,t.alternate);return;case"LogicalExpression":n(l,t.right);return;case"ArrayExpression":t.elements.forEach(r=>{n(l,r)});return;case"ObjectExpression":const e=l.callee&&l.callee.name==="classnames",m=l.key&&l.key.type==="VDirectiveKey";t.properties.forEach(r=>{const x=e||m?r.key:r.value;n(l,x)});return;case"Property":n(l,t.key);break;case"Literal":s=t.value,c=t.range[0]+1,o=t.range[1]-1;break;case"SvelteLiteral":if(s=t.value,s==="")return;c=t.range[0],o=t.range[1];break;case"TemplateElement":if(s=t.value.raw,s==="")return;c=t.range[0],o=t.range[1];const a=d.sourceCode.getText(t);y=p.getTemplateElementPrefix(a,s),h=p.getTemplateElementSuffix(a,s),s=p.getTemplateElementBody(a,y,h);break}const{classNames:g,whitespaces:E,headSpace:S,tailSpace:C}=p.extractClassnamesFromValue(s);if(g.length<=1)return;let u=I(g,R).filter(e=>g.includes(e));u=g.filter(e=>!u.includes(e)).concat(u).filter(e=>e.trim()!=="");let i="";for(let e=0;e<u.length;e++){const m=E[e]??"",a=u[e];i+=S?`${m}${a}`:`${a}${m}`,a&&(!C&&e===u.length-1&&(i=i.replace(/\s+$/,"")),S&&C&&e===u.length-1&&(i+=E[E.length-1]??""))}for(let e=0;e<f.length;e++)s=s.replace(`EXPRESSION_STRING_NUM_${e}`,f[e]),i=i.replace(`EXPRESSION_STRING_NUM_${e}`,f[e]);if(s!==i){i=y+i+h;const e=N.lines,m=l.loc.start.line,a=l.loc.end.line,r={loc:p.findLoc(s,e,m,a),messageId:"invalidClassOrder",fix:function(x){return x.replaceTextRange([c,o],i)}};d.report(r)}};return T({context:d,settings:b},n)}};export{O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var b=Object.create;var n=Object.defineProperty;var I=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var S=(e,s)=>{for(var o in s)n(e,o,{get:s[o],enumerable:!0})},p=(e,s,o,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of M(s))!R.call(e,t)&&t!==o&&n(e,t,{get:()=>s[t],enumerable:!(i=I(s,t))||i.enumerable});return e};var a=(e,s,o)=>(o=e!=null?b(N(e)):{},p(s||!e||!e.__esModule?n(o,"default",{value:e,enumerable:!0}):o,e)),U=e=>p(n({},"__esModule",{value:!0}),e);var K={};S(K,{default:()=>j});module.exports=U(K);var l=a(require("../utils/ast")),u=a(require("../utils/define-visitors")),y=a(require("../utils/resolve-context")),C=require("@master/css-validator"),j={meta:{docs:{description:"Detect syntax errors early when writing classes",category:"Stylistic Issues",recommended:!1,url:"https://beta.css.master.co/docs/code-linting#syntax-error-checks"},messages:{invalidClass:"{{message}}",disallowUnknownClass:"{{message}}"},fixable:null,schema:[{type:"object",properties:{calleeMatching:{type:"string"},classMatching:{type:"string"},ignoredKeys:{type:"array",items:{type:"string",minLength:0},uniqueItems:!0},config:{type:["string","object"]}}}]},create:function(e){const{options:s,settings:o,config:i}=(0,y.default)(e);return(0,u.default)({context:e,settings:o},(w,h=null)=>{l.parseNodeRecursive(w,h,(v,c)=>{const d=e.sourceCode.lines,m=c.loc.start.line,g=c.loc.end.line;for(const r of v){const{isMasterCSS:L,errors:f}=(0,C.validate)(r,{config:i});if(f.length>0)for(const k of f)L?e.report({loc:l.findLoc(r,d,m,g),messageId:"invalidClass",data:{message:k.message+"."}}):s.disallowUnknownClass&&e.report({loc:l.findLoc(r,d,m,g),messageId:"disallowUnknownClass",data:{message:`"${r}" is not a valid or known class.`}})}},!1,!1,o.ignoredKeys,e)})}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as o from"../utils/ast";import
|
|
1
|
+
import*as o from"../utils/ast";import y from"../utils/define-visitors";import C from"../utils/resolve-context";import{validate as w}from"@master/css-validator";var N={meta:{docs:{description:"Detect syntax errors early when writing classes",category:"Stylistic Issues",recommended:!1,url:"https://beta.css.master.co/docs/code-linting#syntax-error-checks"},messages:{invalidClass:"{{message}}",disallowUnknownClass:"{{message}}"},fixable:null,schema:[{type:"object",properties:{calleeMatching:{type:"string"},classMatching:{type:"string"},ignoredKeys:{type:"array",items:{type:"string",minLength:0},uniqueItems:!0},config:{type:["string","object"]}}}]},create:function(e){const{options:c,settings:t,config:d}=C(e);return y({context:e,settings:t},(m,g=null)=>{o.parseNodeRecursive(m,g,(f,i)=>{const r=e.sourceCode.lines,n=i.loc.start.line,a=i.loc.end.line;for(const s of f){const{isMasterCSS:p,errors:l}=w(s,{config:d});if(l.length>0)for(const u of l)p?e.report({loc:o.findLoc(s,r,n,a),messageId:"invalidClass",data:{message:u.message+"."}}):c.disallowUnknownClass&&e.report({loc:o.findLoc(s,r,n,a),messageId:"disallowUnknownClass",data:{message:`"${s}" is not a valid or known class.`}})}},!1,!1,t.ignoredKeys,e)})}};export{N as default};
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@master/eslint-plugin-css","scripts":{"build":"techor pack 'src/**/*.ts'","dev":"pnpm run build --watch --no-declare","test":"jest","type-check":"tsc --noEmit","lint":"eslint src"},"keywords":["mastercss","eslint","eslintplugin"],"license":"MIT","description":"Master CSS ESLint Plugin","author":"Aoyue Design LLC.","funding":"https://css.master.co/docs/donate","homepage":"https://css.master.co","bugs":{"url":"https://github.com/master-co/css/issues"},"repository":{"type":"git","url":"https://github.com/master-co/css.git","directory":"packages/eslint-plugin"},"sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":"./dist/index.js","module":"./dist/index.mjs","jsnext:main":"./dist/index.mjs","esnext":"./dist/index.mjs","files":["dist"],"publishConfig":{"access":"public"},"dependencies":{"@master/css":"^2.0.0-beta.
|
|
1
|
+
{"name":"@master/eslint-plugin-css","scripts":{"build":"techor pack 'src/**/*.ts'","dev":"pnpm run build --watch --no-declare","test":"jest","type-check":"tsc --noEmit","lint":"eslint src"},"keywords":["mastercss","eslint","eslintplugin"],"license":"MIT","description":"Master CSS ESLint Plugin","author":"Aoyue Design LLC.","funding":"https://css.master.co/docs/donate","homepage":"https://css.master.co","bugs":{"url":"https://github.com/master-co/css/issues"},"repository":{"type":"git","url":"https://github.com/master-co/css.git","directory":"packages/eslint-plugin"},"sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":"./dist/index.js","module":"./dist/index.mjs","jsnext:main":"./dist/index.mjs","esnext":"./dist/index.mjs","files":["dist"],"publishConfig":{"access":"public"},"dependencies":{"@master/css":"^2.0.0-beta.199","@master/css-validator":"^2.0.0-beta.199","explore-config":"^2.5.19"},"devDependencies":{"@angular-eslint/template-parser":"^16.2.0","@types/node":"^20.6.0","@typescript-eslint/parser":"^5.50.0","@typescript-eslint/utils":"^6.9.0","eslint":"^8.52.0","eslint-plugin-markdown":"^3.0.1","eslint-plugin-mdx":"^2.2.0","svelte-eslint-parser":"^0.33.1","vue-eslint-parser":"^9.3.1"},"version":"2.0.0-beta.199"}
|