@master/eslint-plugin-css 2.0.0-rc.30 → 2.0.0-rc.33
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.
- package/dist/functions/filter-collision-classes.cjs +24 -4
- package/dist/functions/filter-collision-classes.d.ts +2 -3
- package/dist/functions/filter-collision-classes.mjs +27 -11
- package/dist/rules/class-collision.cjs +3 -2
- package/dist/rules/class-collision.mjs +3 -2
- package/dist/rules/class-order.cjs +3 -3
- package/dist/rules/class-order.mjs +3 -3
- package/dist/rules/class-validation.cjs +4 -4
- package/dist/rules/class-validation.mjs +4 -4
- package/dist/utils/define-visitors.cjs +0 -1
- package/dist/utils/define-visitors.mjs +0 -1
- package/dist/utils/resolve-context.cjs +24 -2
- package/dist/utils/resolve-context.d.ts +2 -0
- package/dist/utils/resolve-context.mjs +24 -2
- package/package.json +1 -1
- package/dist/functions/filter-collision-classes.worker.cjs +0 -35
- package/dist/functions/filter-collision-classes.worker.d.ts +0 -1
- package/dist/functions/filter-collision-classes.worker.mjs +0 -33
- package/dist/functions/get-css.cjs +0 -19
- package/dist/functions/get-css.d.ts +0 -1
- package/dist/functions/get-css.mjs +0 -17
- package/dist/functions/reorder-valid-classes.cjs +0 -9
- package/dist/functions/reorder-valid-classes.d.ts +0 -3
- package/dist/functions/reorder-valid-classes.mjs +0 -11
- package/dist/functions/reorder-valid-classes.worker.cjs +0 -13
- package/dist/functions/reorder-valid-classes.worker.d.ts +0 -1
- package/dist/functions/reorder-valid-classes.worker.mjs +0 -11
- package/dist/functions/validate.cjs +0 -9
- package/dist/functions/validate.d.ts +0 -3
- package/dist/functions/validate.mjs +0 -11
- package/dist/functions/validate.worker.cjs +0 -15
- package/dist/functions/validate.worker.d.ts +0 -5
- package/dist/functions/validate.worker.mjs +0 -13
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var path = require('path');
|
|
3
|
+
var cssValidator = require('@master/css-validator');
|
|
4
|
+
var css = require('@master/css');
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
function filterCollisionClasses(classNames, css$1) {
|
|
7
|
+
const validRules = classNames.map((eachClassName)=>cssValidator.generateValidRules(eachClassName, css$1)[0]).filter(Boolean);
|
|
8
|
+
const collisionClassesRecord = {};
|
|
9
|
+
for(let i = 0; i < classNames.length; i++){
|
|
10
|
+
const className = classNames[i];
|
|
11
|
+
const rule = validRules.find((eachValidRule)=>eachValidRule.className === className);
|
|
12
|
+
const collisionClasses = [];
|
|
13
|
+
if (rule) {
|
|
14
|
+
for(let j = 0; j < classNames.length; j++){
|
|
15
|
+
const compareClassName = classNames[j];
|
|
16
|
+
const compareRule = validRules.find((eachValidRule)=>eachValidRule.className === compareClassName);
|
|
17
|
+
if (i !== j && compareRule && css.areRulesDuplicated(rule, compareRule) && css.areRuleStatesEqual(rule, compareRule)) {
|
|
18
|
+
collisionClasses.push(compareClassName);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
if (collisionClasses.length > 0) {
|
|
22
|
+
collisionClassesRecord[className] = collisionClasses;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return collisionClassesRecord;
|
|
27
|
+
}
|
|
8
28
|
|
|
9
29
|
module.exports = filterCollisionClasses;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export default _default;
|
|
1
|
+
import { MasterCSS } from '@master/css';
|
|
2
|
+
export default function filterCollisionClasses(classNames: string[], css: MasterCSS): Record<string, string[]>;
|
|
@@ -1,11 +1,27 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { generateValidRules } from '@master/css-validator';
|
|
2
|
+
import { areRulesDuplicated, areRuleStatesEqual } from '@master/css';
|
|
3
|
+
|
|
4
|
+
function filterCollisionClasses(classNames, css) {
|
|
5
|
+
const validRules = classNames.map((eachClassName)=>generateValidRules(eachClassName, css)[0]).filter(Boolean);
|
|
6
|
+
const collisionClassesRecord = {};
|
|
7
|
+
for(let i = 0; i < classNames.length; i++){
|
|
8
|
+
const className = classNames[i];
|
|
9
|
+
const rule = validRules.find((eachValidRule)=>eachValidRule.className === className);
|
|
10
|
+
const collisionClasses = [];
|
|
11
|
+
if (rule) {
|
|
12
|
+
for(let j = 0; j < classNames.length; j++){
|
|
13
|
+
const compareClassName = classNames[j];
|
|
14
|
+
const compareRule = validRules.find((eachValidRule)=>eachValidRule.className === compareClassName);
|
|
15
|
+
if (i !== j && compareRule && areRulesDuplicated(rule, compareRule) && areRuleStatesEqual(rule, compareRule)) {
|
|
16
|
+
collisionClasses.push(compareClassName);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (collisionClasses.length > 0) {
|
|
20
|
+
collisionClassesRecord[className] = collisionClasses;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return collisionClassesRecord;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { filterCollisionClasses as default };
|
|
@@ -26,14 +26,15 @@ var classCollision = createRule({
|
|
|
26
26
|
},
|
|
27
27
|
defaultOptions: [],
|
|
28
28
|
create (context) {
|
|
29
|
-
const {
|
|
29
|
+
const { settings, css } = resolveContext(context);
|
|
30
30
|
const visitNode = (node, arg = null)=>{
|
|
31
31
|
parseNodeRecursive.parseNodeRecursive(node, arg, (classNames, node, originalClassNamesValue, start, end)=>{
|
|
32
32
|
const sourceCode = context.sourceCode;
|
|
33
33
|
const sourceCodeLines = sourceCode.lines;
|
|
34
34
|
const nodeStartLine = node.loc.start.line;
|
|
35
35
|
const nodeEndLine = node.loc.end.line;
|
|
36
|
-
|
|
36
|
+
// todo css
|
|
37
|
+
const collisionClassesRecord = filterCollisionClasses(classNames, css);
|
|
37
38
|
for(const className in collisionClassesRecord){
|
|
38
39
|
const collisionClasses = collisionClassesRecord[className];
|
|
39
40
|
const collisionClassNamesMsg = collisionClasses.map((x)=>`"${x}"`).join(' and ');
|
|
@@ -24,14 +24,15 @@ var classCollision = createRule({
|
|
|
24
24
|
},
|
|
25
25
|
defaultOptions: [],
|
|
26
26
|
create (context) {
|
|
27
|
-
const {
|
|
27
|
+
const { settings, css } = resolveContext(context);
|
|
28
28
|
const visitNode = (node, arg = null)=>{
|
|
29
29
|
parseNodeRecursive(node, arg, (classNames, node, originalClassNamesValue, start, end)=>{
|
|
30
30
|
const sourceCode = context.sourceCode;
|
|
31
31
|
const sourceCodeLines = sourceCode.lines;
|
|
32
32
|
const nodeStartLine = node.loc.start.line;
|
|
33
33
|
const nodeEndLine = node.loc.end.line;
|
|
34
|
-
|
|
34
|
+
// todo css
|
|
35
|
+
const collisionClassesRecord = filterCollisionClasses(classNames, css);
|
|
35
36
|
for(const className in collisionClassesRecord){
|
|
36
37
|
const collisionClasses = collisionClassesRecord[className];
|
|
37
38
|
const collisionClassNamesMsg = collisionClasses.map((x)=>`"${x}"`).join(' and ');
|
|
@@ -9,9 +9,9 @@ var extractValueFromNode = require('../utils/extract-value-from-node.cjs');
|
|
|
9
9
|
var extractRangeFromNode = require('../utils/extract-range-from-node.cjs');
|
|
10
10
|
var extractClassnamesFromValue = require('../utils/extract-classnames-from-value.cjs');
|
|
11
11
|
var findLoc = require('../utils/find-loc.cjs');
|
|
12
|
-
var reorderValidClasses = require('../functions/reorder-valid-classes.cjs');
|
|
13
12
|
var createRule = require('../create-rule.cjs');
|
|
14
13
|
var settingsSchema = require('../settings-schema.cjs');
|
|
14
|
+
var css = require('@master/css');
|
|
15
15
|
|
|
16
16
|
var classOrder = createRule({
|
|
17
17
|
name: 'consistent-class-order',
|
|
@@ -31,7 +31,7 @@ var classOrder = createRule({
|
|
|
31
31
|
},
|
|
32
32
|
defaultOptions: [],
|
|
33
33
|
create: function(context) {
|
|
34
|
-
const {
|
|
34
|
+
const { settings, css: css$1 } = resolveContext(context);
|
|
35
35
|
const sourceCode = context.sourceCode;
|
|
36
36
|
const visitNode = (node, arg = null)=>{
|
|
37
37
|
let originalClassNamesValue = null;
|
|
@@ -126,7 +126,7 @@ var classOrder = createRule({
|
|
|
126
126
|
// Don't run sorting for a single or empty className
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
129
|
-
let orderedClassNames =
|
|
129
|
+
let orderedClassNames = css.reorderForReadableClasses(classNames, css$1).filter((eachOrderedClassName)=>classNames.includes(eachOrderedClassName));
|
|
130
130
|
orderedClassNames = classNames.filter((x)=>!orderedClassNames.includes(x)).concat(orderedClassNames).filter((x)=>x.trim() !== '');
|
|
131
131
|
// Generates the validated/sorted attribute value
|
|
132
132
|
let validatedClassNamesValue = '';
|
|
@@ -7,9 +7,9 @@ import extractValueFromNode from '../utils/extract-value-from-node.mjs';
|
|
|
7
7
|
import extractRangeFromNode from '../utils/extract-range-from-node.mjs';
|
|
8
8
|
import extractClassnamesFromValue from '../utils/extract-classnames-from-value.mjs';
|
|
9
9
|
import findLoc from '../utils/find-loc.mjs';
|
|
10
|
-
import reorderValidClasses from '../functions/reorder-valid-classes.mjs';
|
|
11
10
|
import createRule from '../create-rule.mjs';
|
|
12
11
|
import settingsSchema from '../settings-schema.mjs';
|
|
12
|
+
import { reorderForReadableClasses } from '@master/css';
|
|
13
13
|
|
|
14
14
|
var classOrder = createRule({
|
|
15
15
|
name: 'consistent-class-order',
|
|
@@ -29,7 +29,7 @@ var classOrder = createRule({
|
|
|
29
29
|
},
|
|
30
30
|
defaultOptions: [],
|
|
31
31
|
create: function(context) {
|
|
32
|
-
const {
|
|
32
|
+
const { settings, css } = resolveContext(context);
|
|
33
33
|
const sourceCode = context.sourceCode;
|
|
34
34
|
const visitNode = (node, arg = null)=>{
|
|
35
35
|
let originalClassNamesValue = null;
|
|
@@ -124,7 +124,7 @@ var classOrder = createRule({
|
|
|
124
124
|
// Don't run sorting for a single or empty className
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
|
-
let orderedClassNames =
|
|
127
|
+
let orderedClassNames = reorderForReadableClasses(classNames, css).filter((eachOrderedClassName)=>classNames.includes(eachOrderedClassName));
|
|
128
128
|
orderedClassNames = classNames.filter((x)=>!orderedClassNames.includes(x)).concat(orderedClassNames).filter((x)=>x.trim() !== '');
|
|
129
129
|
// Generates the validated/sorted attribute value
|
|
130
130
|
let validatedClassNamesValue = '';
|
|
@@ -4,9 +4,9 @@ var defineVisitors = require('../utils/define-visitors.cjs');
|
|
|
4
4
|
var resolveContext = require('../utils/resolve-context.cjs');
|
|
5
5
|
var findLoc = require('../utils/find-loc.cjs');
|
|
6
6
|
var parseNodeRecursive = require('../utils/parse-node-recursive.cjs');
|
|
7
|
-
var validate = require('../functions/validate.cjs');
|
|
8
7
|
var createRule = require('../create-rule.cjs');
|
|
9
8
|
var settingsSchema = require('../settings-schema.cjs');
|
|
9
|
+
var cssValidator = require('@master/css-validator');
|
|
10
10
|
|
|
11
11
|
var classValidation = createRule({
|
|
12
12
|
name: 'syntax-error-checks',
|
|
@@ -27,7 +27,7 @@ var classValidation = createRule({
|
|
|
27
27
|
},
|
|
28
28
|
defaultOptions: [],
|
|
29
29
|
create: function(context) {
|
|
30
|
-
const { options, settings } = resolveContext(context);
|
|
30
|
+
const { options, settings, css } = resolveContext(context);
|
|
31
31
|
const visitNode = (node, arg = null)=>{
|
|
32
32
|
parseNodeRecursive.parseNodeRecursive(node, arg, (classNames, node)=>{
|
|
33
33
|
const sourceCode = context.sourceCode;
|
|
@@ -35,10 +35,10 @@ var classValidation = createRule({
|
|
|
35
35
|
const nodeStartLine = node.loc.start.line;
|
|
36
36
|
const nodeEndLine = node.loc.end.line;
|
|
37
37
|
for (const className of classNames){
|
|
38
|
-
const {
|
|
38
|
+
const { matched, errors } = cssValidator.validate(className, css);
|
|
39
39
|
if (errors.length > 0) {
|
|
40
40
|
for (const error of errors){
|
|
41
|
-
if (
|
|
41
|
+
if (matched) {
|
|
42
42
|
context.report({
|
|
43
43
|
loc: findLoc(className, sourceCodeLines, nodeStartLine, nodeEndLine),
|
|
44
44
|
messageId: 'invalidClass',
|
|
@@ -2,9 +2,9 @@ import defineVisitors from '../utils/define-visitors.mjs';
|
|
|
2
2
|
import resolveContext from '../utils/resolve-context.mjs';
|
|
3
3
|
import findLoc from '../utils/find-loc.mjs';
|
|
4
4
|
import { parseNodeRecursive } from '../utils/parse-node-recursive.mjs';
|
|
5
|
-
import validate from '../functions/validate.mjs';
|
|
6
5
|
import createRule from '../create-rule.mjs';
|
|
7
6
|
import settingsSchema from '../settings-schema.mjs';
|
|
7
|
+
import { validate } from '@master/css-validator';
|
|
8
8
|
|
|
9
9
|
var classValidation = createRule({
|
|
10
10
|
name: 'syntax-error-checks',
|
|
@@ -25,7 +25,7 @@ var classValidation = createRule({
|
|
|
25
25
|
},
|
|
26
26
|
defaultOptions: [],
|
|
27
27
|
create: function(context) {
|
|
28
|
-
const { options, settings } = resolveContext(context);
|
|
28
|
+
const { options, settings, css } = resolveContext(context);
|
|
29
29
|
const visitNode = (node, arg = null)=>{
|
|
30
30
|
parseNodeRecursive(node, arg, (classNames, node)=>{
|
|
31
31
|
const sourceCode = context.sourceCode;
|
|
@@ -33,10 +33,10 @@ var classValidation = createRule({
|
|
|
33
33
|
const nodeStartLine = node.loc.start.line;
|
|
34
34
|
const nodeEndLine = node.loc.end.line;
|
|
35
35
|
for (const className of classNames){
|
|
36
|
-
const {
|
|
36
|
+
const { matched, errors } = validate(className, css);
|
|
37
37
|
if (errors.length > 0) {
|
|
38
38
|
for (const error of errors){
|
|
39
|
-
if (
|
|
39
|
+
if (matched) {
|
|
40
40
|
context.report({
|
|
41
41
|
loc: findLoc(className, sourceCodeLines, nodeStartLine, nodeEndLine),
|
|
42
42
|
messageId: 'invalidClass',
|
|
@@ -51,7 +51,6 @@ function defineVisitors({ context, settings }, visitNode) {
|
|
|
51
51
|
},
|
|
52
52
|
VariableDeclaration: function(node) {
|
|
53
53
|
node.declarations.forEach((decl)=>{
|
|
54
|
-
console.log(decl);
|
|
55
54
|
if (decl.id.type === 'Identifier' && classDeclarationsRegex.test(decl.id.name)) {
|
|
56
55
|
visitNode(node, decl.init);
|
|
57
56
|
}
|
|
@@ -49,7 +49,6 @@ function defineVisitors({ context, settings }, visitNode) {
|
|
|
49
49
|
},
|
|
50
50
|
VariableDeclaration: function(node) {
|
|
51
51
|
node.declarations.forEach((decl)=>{
|
|
52
|
-
console.log(decl);
|
|
53
52
|
if (decl.id.type === 'Identifier' && classDeclarationsRegex.test(decl.id.name)) {
|
|
54
53
|
visitNode(node, decl.init);
|
|
55
54
|
}
|
|
@@ -1,12 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var settings = require('../settings.cjs');
|
|
4
|
+
var exploreConfig = require('@master/css-explore-config');
|
|
5
|
+
var css = require('@master/css');
|
|
4
6
|
|
|
7
|
+
const cssCaches = [];
|
|
5
8
|
function resolveContext(context) {
|
|
6
|
-
const resolvedSettings = Object.assign(settings, context.settings?.['@master/css']);
|
|
9
|
+
const resolvedSettings = Object.assign({}, settings, context.settings?.['@master/css']);
|
|
10
|
+
let css$1 = cssCaches.find((cache)=>cache.settings.config === resolvedSettings.config && cache.cwd === context.cwd)?.css;
|
|
11
|
+
if (!css$1) {
|
|
12
|
+
let config;
|
|
13
|
+
if (typeof resolvedSettings.config === 'object') {
|
|
14
|
+
config = resolvedSettings.config;
|
|
15
|
+
} else {
|
|
16
|
+
config = exploreConfig({
|
|
17
|
+
name: resolvedSettings.config,
|
|
18
|
+
found: undefined
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
css$1 = new css.MasterCSS(config);
|
|
22
|
+
cssCaches.push({
|
|
23
|
+
cwd: context.cwd,
|
|
24
|
+
settings: resolvedSettings,
|
|
25
|
+
css: css$1
|
|
26
|
+
});
|
|
27
|
+
}
|
|
7
28
|
return {
|
|
8
29
|
settings: resolvedSettings,
|
|
9
|
-
options: context.options[0] || {}
|
|
30
|
+
options: context.options[0] || {},
|
|
31
|
+
css: css$1
|
|
10
32
|
};
|
|
11
33
|
}
|
|
12
34
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { RuleContext } from '@typescript-eslint/utils/ts-eslint';
|
|
2
|
+
import { MasterCSS } from '@master/css';
|
|
2
3
|
export default function resolveContext(context: RuleContext<any, any[]>): {
|
|
3
4
|
settings: {
|
|
4
5
|
classAttributes: string[];
|
|
@@ -8,4 +9,5 @@ export default function resolveContext(context: RuleContext<any, any[]>): {
|
|
|
8
9
|
config: string;
|
|
9
10
|
};
|
|
10
11
|
options: any;
|
|
12
|
+
css: MasterCSS;
|
|
11
13
|
};
|
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
import settings from '../settings.mjs';
|
|
2
|
+
import exploreConfig from '@master/css-explore-config';
|
|
3
|
+
import { MasterCSS } from '@master/css';
|
|
2
4
|
|
|
5
|
+
const cssCaches = [];
|
|
3
6
|
function resolveContext(context) {
|
|
4
|
-
const resolvedSettings = Object.assign(settings, context.settings?.['@master/css']);
|
|
7
|
+
const resolvedSettings = Object.assign({}, settings, context.settings?.['@master/css']);
|
|
8
|
+
let css = cssCaches.find((cache)=>cache.settings.config === resolvedSettings.config && cache.cwd === context.cwd)?.css;
|
|
9
|
+
if (!css) {
|
|
10
|
+
let config;
|
|
11
|
+
if (typeof resolvedSettings.config === 'object') {
|
|
12
|
+
config = resolvedSettings.config;
|
|
13
|
+
} else {
|
|
14
|
+
config = exploreConfig({
|
|
15
|
+
name: resolvedSettings.config,
|
|
16
|
+
found: undefined
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
css = new MasterCSS(config);
|
|
20
|
+
cssCaches.push({
|
|
21
|
+
cwd: context.cwd,
|
|
22
|
+
settings: resolvedSettings,
|
|
23
|
+
css
|
|
24
|
+
});
|
|
25
|
+
}
|
|
5
26
|
return {
|
|
6
27
|
settings: resolvedSettings,
|
|
7
|
-
options: context.options[0] || {}
|
|
28
|
+
options: context.options[0] || {},
|
|
29
|
+
css
|
|
8
30
|
};
|
|
9
31
|
}
|
|
10
32
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@master/eslint-plugin-css","type":"module","scripts":{"build":"techor build \"src/**/*.{js,ts}\"","dev":"pnpm build --watch","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.cjs","module":"./dist/index.mjs","jsnext:main":"./dist/index.mjs","esnext":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"files":["dist"],"publishConfig":{"access":"public","provenance":true},"dependencies":{"@master/css":"^2.0.0-rc.
|
|
1
|
+
{"name":"@master/eslint-plugin-css","type":"module","scripts":{"build":"techor build \"src/**/*.{js,ts}\"","dev":"pnpm build --watch","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.cjs","module":"./dist/index.mjs","jsnext:main":"./dist/index.mjs","esnext":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"files":["dist"],"publishConfig":{"access":"public","provenance":true},"dependencies":{"@master/css":"^2.0.0-rc.33","@master/css-explore-config":"^2.0.0-rc.33","@master/css-validator":"^2.0.0-rc.33","@typescript-eslint/utils":"^7.7.0","synckit":"^0.9.0","typescript-eslint":"^7.7.0"},"devDependencies":{"@angular-eslint/template-parser":"^17.3.0","@master/css-explore-config":"^2.0.0-rc.33","@master/css-shared":"^2.0.0-rc.33","@types/node":"^20.12.7","@typescript-eslint/rule-tester":"^7.7.0","eslint":"^8.57.0","eslint-plugin-markdown":"^4.0.1","eslint-plugin-mdx":"^3.1.5","svelte-eslint-parser":"^0.34.1","ts-node":"^10.9.2","vue-eslint-parser":"^9.4.2"},"version":"2.0.0-rc.33"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var synckit = require('synckit');
|
|
4
|
-
var getCss = require('./get-css.cjs');
|
|
5
|
-
var cssValidator = require('@master/css-validator');
|
|
6
|
-
var css = require('@master/css');
|
|
7
|
-
|
|
8
|
-
function runFilterCollisionClasses(classNames, config) {
|
|
9
|
-
const currentCSS = getCss(config);
|
|
10
|
-
const validRules = classNames.map((eachClassName)=>cssValidator.generateValidRules(eachClassName, {
|
|
11
|
-
css: currentCSS
|
|
12
|
-
})[0]).filter(Boolean);
|
|
13
|
-
const collisionClassesRecord = {};
|
|
14
|
-
for(let i = 0; i < classNames.length; i++){
|
|
15
|
-
const className = classNames[i];
|
|
16
|
-
const rule = validRules.find((eachValidRule)=>eachValidRule.className === className);
|
|
17
|
-
const collisionClasses = [];
|
|
18
|
-
if (rule) {
|
|
19
|
-
for(let j = 0; j < classNames.length; j++){
|
|
20
|
-
const compareClassName = classNames[j];
|
|
21
|
-
const compareRule = validRules.find((eachValidRule)=>eachValidRule.className === compareClassName);
|
|
22
|
-
if (i !== j && compareRule && css.areRulesDuplicated(rule, compareRule) && css.areRuleStatesEqual(rule, compareRule)) {
|
|
23
|
-
collisionClasses.push(compareClassName);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
if (collisionClasses.length > 0) {
|
|
27
|
-
collisionClassesRecord[className] = collisionClasses;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return collisionClassesRecord;
|
|
32
|
-
}
|
|
33
|
-
synckit.runAsWorker(runFilterCollisionClasses);
|
|
34
|
-
|
|
35
|
-
module.exports = runFilterCollisionClasses;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function runFilterCollisionClasses(classNames: string[], config: string | object): Record<string, string[]>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { runAsWorker } from 'synckit';
|
|
2
|
-
import getCSS from './get-css.mjs';
|
|
3
|
-
import { generateValidRules } from '@master/css-validator';
|
|
4
|
-
import { areRulesDuplicated, areRuleStatesEqual } from '@master/css';
|
|
5
|
-
|
|
6
|
-
function runFilterCollisionClasses(classNames, config) {
|
|
7
|
-
const currentCSS = getCSS(config);
|
|
8
|
-
const validRules = classNames.map((eachClassName)=>generateValidRules(eachClassName, {
|
|
9
|
-
css: currentCSS
|
|
10
|
-
})[0]).filter(Boolean);
|
|
11
|
-
const collisionClassesRecord = {};
|
|
12
|
-
for(let i = 0; i < classNames.length; i++){
|
|
13
|
-
const className = classNames[i];
|
|
14
|
-
const rule = validRules.find((eachValidRule)=>eachValidRule.className === className);
|
|
15
|
-
const collisionClasses = [];
|
|
16
|
-
if (rule) {
|
|
17
|
-
for(let j = 0; j < classNames.length; j++){
|
|
18
|
-
const compareClassName = classNames[j];
|
|
19
|
-
const compareRule = validRules.find((eachValidRule)=>eachValidRule.className === compareClassName);
|
|
20
|
-
if (i !== j && compareRule && areRulesDuplicated(rule, compareRule) && areRuleStatesEqual(rule, compareRule)) {
|
|
21
|
-
collisionClasses.push(compareClassName);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (collisionClasses.length > 0) {
|
|
25
|
-
collisionClassesRecord[className] = collisionClasses;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return collisionClassesRecord;
|
|
30
|
-
}
|
|
31
|
-
runAsWorker(runFilterCollisionClasses);
|
|
32
|
-
|
|
33
|
-
export { runFilterCollisionClasses as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var css = require('@master/css');
|
|
4
|
-
var exploreConfig = require('@master/css-explore-config');
|
|
5
|
-
|
|
6
|
-
let currentCSS;
|
|
7
|
-
let currentConfig;
|
|
8
|
-
function getCSS(config) {
|
|
9
|
-
if (!currentCSS || currentConfig !== config) {
|
|
10
|
-
currentCSS = new css.MasterCSS(typeof config === 'object' ? config : exploreConfig({
|
|
11
|
-
name: config,
|
|
12
|
-
found: undefined
|
|
13
|
-
}));
|
|
14
|
-
currentConfig = config;
|
|
15
|
-
}
|
|
16
|
-
return currentCSS;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
module.exports = getCSS;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function getCSS(config: any): any;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { MasterCSS } from '@master/css';
|
|
2
|
-
import exploreConfig from '@master/css-explore-config';
|
|
3
|
-
|
|
4
|
-
let currentCSS;
|
|
5
|
-
let currentConfig;
|
|
6
|
-
function getCSS(config) {
|
|
7
|
-
if (!currentCSS || currentConfig !== config) {
|
|
8
|
-
currentCSS = new MasterCSS(typeof config === 'object' ? config : exploreConfig({
|
|
9
|
-
name: config,
|
|
10
|
-
found: undefined
|
|
11
|
-
}));
|
|
12
|
-
currentConfig = config;
|
|
13
|
-
}
|
|
14
|
-
return currentCSS;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export { getCSS as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var synckit = require('synckit');
|
|
4
|
-
var reorderValidClasses_worker = require('./reorder-valid-classes.worker.cjs');
|
|
5
|
-
var path = require('path');
|
|
6
|
-
|
|
7
|
-
var reorderValidClasses = process.env.NODE_ENV === 'test' ? reorderValidClasses_worker : synckit.createSyncFn(path.join(__dirname, 'reorder-valid-classes.worker.cjs'));
|
|
8
|
-
|
|
9
|
-
module.exports = reorderValidClasses;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import __url_for_shim from 'url';
|
|
2
|
-
import __path_for_shim from 'path';
|
|
3
|
-
const __filename = __url_for_shim.fileURLToPath(import.meta.url);
|
|
4
|
-
const __dirname = __path_for_shim.dirname(__filename);
|
|
5
|
-
import { createSyncFn } from 'synckit';
|
|
6
|
-
import runReorderValidClasses from './reorder-valid-classes.worker.mjs';
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
var reorderValidClasses = process.env.NODE_ENV === 'test' ? runReorderValidClasses : createSyncFn(join(__dirname, 'reorder-valid-classes.worker.cjs'));
|
|
9
|
-
export {
|
|
10
|
-
reorderValidClasses as default
|
|
11
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var css = require('@master/css');
|
|
4
|
-
var synckit = require('synckit');
|
|
5
|
-
var getCss = require('./get-css.cjs');
|
|
6
|
-
|
|
7
|
-
function runReorderValidClasses(classNames, config) {
|
|
8
|
-
const currentCSS = getCss(config);
|
|
9
|
-
return css.reorderForReadableClasses(classNames, currentCSS).filter((eachOrderedClassName)=>classNames.includes(eachOrderedClassName));
|
|
10
|
-
}
|
|
11
|
-
synckit.runAsWorker(runReorderValidClasses);
|
|
12
|
-
|
|
13
|
-
module.exports = runReorderValidClasses;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function runReorderValidClasses(classNames: string[], config: string | object): string[];
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { reorderForReadableClasses } from '@master/css';
|
|
2
|
-
import { runAsWorker } from 'synckit';
|
|
3
|
-
import getCSS from './get-css.mjs';
|
|
4
|
-
|
|
5
|
-
function runReorderValidClasses(classNames, config) {
|
|
6
|
-
const currentCSS = getCSS(config);
|
|
7
|
-
return reorderForReadableClasses(classNames, currentCSS).filter((eachOrderedClassName)=>classNames.includes(eachOrderedClassName));
|
|
8
|
-
}
|
|
9
|
-
runAsWorker(runReorderValidClasses);
|
|
10
|
-
|
|
11
|
-
export { runReorderValidClasses as default };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var synckit = require('synckit');
|
|
4
|
-
var validate_worker = require('./validate.worker.cjs');
|
|
5
|
-
var path = require('path');
|
|
6
|
-
|
|
7
|
-
var validate = process.env.NODE_ENV === 'test' ? validate_worker : synckit.createSyncFn(path.join(__dirname, 'validate.worker.cjs'));
|
|
8
|
-
|
|
9
|
-
module.exports = validate;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import __url_for_shim from 'url';
|
|
2
|
-
import __path_for_shim from 'path';
|
|
3
|
-
const __filename = __url_for_shim.fileURLToPath(import.meta.url);
|
|
4
|
-
const __dirname = __path_for_shim.dirname(__filename);
|
|
5
|
-
import { createSyncFn } from 'synckit';
|
|
6
|
-
import runValidate from './validate.worker.mjs';
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
var validate = process.env.NODE_ENV === 'test' ? runValidate : createSyncFn(join(__dirname, 'validate.worker.cjs'));
|
|
9
|
-
export {
|
|
10
|
-
validate as default
|
|
11
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var synckit = require('synckit');
|
|
4
|
-
var getCss = require('./get-css.cjs');
|
|
5
|
-
var cssValidator = require('@master/css-validator');
|
|
6
|
-
|
|
7
|
-
function runValidate(className, config) {
|
|
8
|
-
const currentCSS = getCss(config);
|
|
9
|
-
return cssValidator.validate(className, {
|
|
10
|
-
css: currentCSS
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
synckit.runAsWorker(runValidate);
|
|
14
|
-
|
|
15
|
-
module.exports = runValidate;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { runAsWorker } from 'synckit';
|
|
2
|
-
import getCSS from './get-css.mjs';
|
|
3
|
-
import { validate } from '@master/css-validator';
|
|
4
|
-
|
|
5
|
-
function runValidate(className, config) {
|
|
6
|
-
const currentCSS = getCSS(config);
|
|
7
|
-
return validate(className, {
|
|
8
|
-
css: currentCSS
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
runAsWorker(runValidate);
|
|
12
|
-
|
|
13
|
-
export { runValidate as default };
|