@master/eslint-plugin-css 2.0.0-rc.6 → 2.0.0-rc.61
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/README.md +2 -2
- package/dist/configs/base.cjs +11 -0
- package/dist/configs/base.d.ts +3 -0
- package/dist/configs/base.mjs +9 -0
- package/dist/configs/legacy.cjs +17 -0
- package/dist/configs/legacy.d.ts +3 -0
- package/dist/configs/legacy.mjs +15 -0
- package/dist/configs/recommended.cjs +14 -0
- package/dist/configs/recommended.d.ts +2 -13
- package/dist/configs/recommended.mjs +12 -1
- package/dist/create-rule.cjs +8 -0
- package/dist/create-rule.d.ts +3 -0
- package/dist/create-rule.mjs +6 -0
- package/dist/functions/filter-collision-classes.cjs +29 -0
- package/dist/functions/filter-collision-classes.d.ts +2 -0
- package/dist/functions/filter-collision-classes.mjs +27 -0
- package/dist/index.cjs +19 -0
- package/dist/index.d.ts +19 -1
- package/dist/index.mjs +17 -1
- package/dist/plugin.cjs +26 -0
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.mjs +23 -1
- package/dist/rules/class-collision.cjs +70 -0
- package/dist/rules/class-collision.d.ts +1 -2
- package/dist/rules/class-collision.mjs +68 -1
- package/dist/rules/class-order.cjs +175 -0
- package/dist/rules/class-order.d.ts +1 -2
- package/dist/rules/class-order.mjs +173 -1
- package/dist/rules/class-validation.cjs +71 -0
- package/dist/rules/class-validation.d.ts +1 -2
- package/dist/rules/class-validation.mjs +69 -1
- package/dist/settings-schema.cjs +35 -0
- package/dist/settings-schema.d.ts +3 -0
- package/dist/settings-schema.mjs +33 -0
- package/dist/settings.cjs +16 -0
- package/dist/settings.d.ts +10 -2
- package/dist/settings.mjs +14 -1
- package/dist/utils/define-visitors.cjs +92 -0
- package/dist/utils/define-visitors.d.ts +6 -4
- package/dist/utils/define-visitors.mjs +90 -1
- package/dist/utils/extract-classnames-from-value.cjs +34 -0
- package/dist/utils/extract-classnames-from-value.mjs +32 -1
- package/dist/utils/extract-range-from-node.cjs +18 -0
- package/dist/utils/extract-range-from-node.mjs +16 -1
- package/dist/utils/extract-value-from-node.cjs +23 -0
- package/dist/utils/extract-value-from-node.mjs +21 -1
- package/dist/utils/find-loc.cjs +51 -0
- package/dist/utils/find-loc.d.ts +1 -1
- package/dist/utils/find-loc.mjs +49 -1
- package/dist/utils/get-template-element-body.cjs +12 -0
- package/dist/utils/get-template-element-body.mjs +10 -1
- package/dist/utils/get-template-element-prefix.cjs +11 -0
- package/dist/utils/get-template-element-prefix.mjs +9 -1
- package/dist/utils/get-template-element-suffix.cjs +10 -0
- package/dist/utils/get-template-element-suffix.mjs +8 -1
- package/dist/utils/index-of-all.cjs +12 -0
- package/dist/utils/index-of-all.d.ts +1 -0
- package/dist/utils/index-of-all.mjs +10 -0
- package/dist/utils/parse-node-recursive.cjs +129 -0
- package/dist/utils/parse-node-recursive.d.ts +2 -2
- package/dist/utils/parse-node-recursive.mjs +127 -1
- package/dist/utils/resolve-context.cjs +36 -0
- package/dist/utils/resolve-context.d.ts +11 -2
- package/dist/utils/resolve-context.mjs +34 -1
- package/package.json +1 -1
- package/dist/configs/config.d.ts +0 -13
- package/dist/configs/config.js +0 -1
- package/dist/configs/config.mjs +0 -1
- package/dist/configs/flat.d.ts +0 -16
- package/dist/configs/flat.js +0 -1
- package/dist/configs/flat.mjs +0 -1
- package/dist/configs/recommended.js +0 -1
- package/dist/index.js +0 -1
- package/dist/plugin.js +0 -1
- package/dist/rules/class-collision.js +0 -1
- package/dist/rules/class-order.js +0 -1
- package/dist/rules/class-validation.js +0 -1
- package/dist/settings.js +0 -1
- package/dist/utils/are-declarations-equal.d.ts +0 -1
- package/dist/utils/are-declarations-equal.js +0 -1
- package/dist/utils/are-declarations-equal.mjs +0 -1
- package/dist/utils/define-visitors.js +0 -1
- package/dist/utils/extract-classnames-from-value.js +0 -1
- package/dist/utils/extract-range-from-node.js +0 -1
- package/dist/utils/extract-value-from-node.js +0 -1
- package/dist/utils/find-loc.js +0 -1
- package/dist/utils/get-mastercss.d.ts +0 -2
- package/dist/utils/get-mastercss.js +0 -1
- package/dist/utils/get-mastercss.mjs +0 -1
- package/dist/utils/get-template-element-body.js +0 -1
- package/dist/utils/get-template-element-prefix.js +0 -1
- package/dist/utils/get-template-element-suffix.js +0 -1
- package/dist/utils/parse-node-recursive.js +0 -1
- package/dist/utils/reorder-valid-classes-action.d.ts +0 -3
- package/dist/utils/reorder-valid-classes-action.js +0 -1
- package/dist/utils/reorder-valid-classes-action.mjs +0 -1
- package/dist/utils/resolve-context.js +0 -1
- package/dist/utils/valid-rules-action.d.ts +0 -3
- package/dist/utils/valid-rules-action.js +0 -1
- package/dist/utils/valid-rules-action.mjs +0 -1
- package/dist/utils/validate-action.d.ts +0 -3
- package/dist/utils/validate-action.js +0 -1
- package/dist/utils/validate-action.mjs +0 -1
- package/dist/utils/workers/reorder-valid-classes.d.ts +0 -2
- package/dist/utils/workers/reorder-valid-classes.js +0 -1
- package/dist/utils/workers/reorder-valid-classes.mjs +0 -1
- package/dist/utils/workers/valid-rules.d.ts +0 -2
- package/dist/utils/workers/valid-rules.js +0 -1
- package/dist/utils/workers/valid-rules.mjs +0 -1
- package/dist/utils/workers/validate.d.ts +0 -5
- package/dist/utils/workers/validate.js +0 -1
- package/dist/utils/workers/validate.mjs +0 -1
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var getTemplateElementPrefix = require('./get-template-element-prefix.cjs');
|
|
4
|
+
var getTemplateElementSuffix = require('./get-template-element-suffix.cjs');
|
|
5
|
+
var extractValueFromNode = require('./extract-value-from-node.cjs');
|
|
6
|
+
var extractClassnamesFromValue = require('./extract-classnames-from-value.cjs');
|
|
7
|
+
var extractRangeFromNode = require('./extract-range-from-node.cjs');
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Inspect and parse an abstract syntax node and run a callback function
|
|
11
|
+
*
|
|
12
|
+
* @param {ASTNode} rootNode The current root node being parsed by eslint
|
|
13
|
+
* @param {ASTNode} childNode The AST node child argument being checked
|
|
14
|
+
* @param {Function} cb The callback function
|
|
15
|
+
* @param {Boolean} skipConditional Optional, indicate distinct parsing for conditional nodes
|
|
16
|
+
* @param {Boolean} isolate Optional, set internally to isolate parsing and validation on conditional children
|
|
17
|
+
* @param {Array} ignoredKeys Optional, set object keys which should not be parsed e.g. for `cva`
|
|
18
|
+
* @returns {void}
|
|
19
|
+
*/ function parseNodeRecursive(rootNode, childNode, cb, skipConditional = false, isolate = false, ignoredKeys = [], context) {
|
|
20
|
+
// TODO allow vue non litteral
|
|
21
|
+
let originalClassNamesValue;
|
|
22
|
+
let classNames;
|
|
23
|
+
let start = null;
|
|
24
|
+
let end = null;
|
|
25
|
+
let prefix = '';
|
|
26
|
+
let suffix = '';
|
|
27
|
+
if (childNode === null) {
|
|
28
|
+
originalClassNamesValue = extractValueFromNode(rootNode);
|
|
29
|
+
({ classNames } = extractClassnamesFromValue(originalClassNamesValue));
|
|
30
|
+
classNames = [
|
|
31
|
+
...new Set(classNames)
|
|
32
|
+
];
|
|
33
|
+
if (classNames.length === 0) {
|
|
34
|
+
// Don't run for empty className
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const range = extractRangeFromNode(rootNode);
|
|
38
|
+
if (rootNode.type === 'TextAttribute') {
|
|
39
|
+
start = range[0];
|
|
40
|
+
end = range[1];
|
|
41
|
+
} else {
|
|
42
|
+
start = range[0] + 1;
|
|
43
|
+
end = range[1] - 1;
|
|
44
|
+
}
|
|
45
|
+
cb(classNames, rootNode, originalClassNamesValue, start, end, prefix, suffix);
|
|
46
|
+
} else if (childNode === undefined) {
|
|
47
|
+
// Ignore invalid child candidates (probably inside complex TemplateLiteral)
|
|
48
|
+
return;
|
|
49
|
+
} else {
|
|
50
|
+
const forceIsolation = skipConditional ? true : isolate;
|
|
51
|
+
let expStrings = [];
|
|
52
|
+
switch(childNode.type){
|
|
53
|
+
case 'TemplateLiteral':
|
|
54
|
+
childNode.expressions.forEach((exp)=>{
|
|
55
|
+
parseNodeRecursive(rootNode, exp, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
56
|
+
});
|
|
57
|
+
const sourceCode = context.sourceCode;
|
|
58
|
+
originalClassNamesValue = sourceCode.getText(childNode);
|
|
59
|
+
originalClassNamesValue = originalClassNamesValue.substring(1, originalClassNamesValue.length - 1);
|
|
60
|
+
expStrings = originalClassNamesValue.match(/\$\{(?:(?<!\\\\)(['"`]).*?(?<!\\\\)\1|[^}])*?\}/g) ?? [];
|
|
61
|
+
for(let i = 0; i < expStrings.length; i++){
|
|
62
|
+
originalClassNamesValue = originalClassNamesValue.replace(expStrings[i], `EXPRESSION_STRING_NUM_${i}`);
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
case 'ConditionalExpression':
|
|
66
|
+
parseNodeRecursive(rootNode, childNode.consequent, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
67
|
+
parseNodeRecursive(rootNode, childNode.alternate, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
68
|
+
return;
|
|
69
|
+
case 'LogicalExpression':
|
|
70
|
+
parseNodeRecursive(rootNode, childNode.right, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
71
|
+
return;
|
|
72
|
+
case 'ArrayExpression':
|
|
73
|
+
childNode.elements.forEach((el)=>{
|
|
74
|
+
parseNodeRecursive(rootNode, el, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
75
|
+
});
|
|
76
|
+
return;
|
|
77
|
+
case 'ObjectExpression':
|
|
78
|
+
childNode.properties.forEach((prop)=>{
|
|
79
|
+
const isUsedByClassNamesPlugin = rootNode.callee && rootNode.callee.name === 'classnames';
|
|
80
|
+
if (prop.type === 'SpreadElement') {
|
|
81
|
+
// Ignore spread elements
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (prop.key.type === 'Identifier' && ignoredKeys.includes(prop.key.name)) {
|
|
85
|
+
// Ignore specific keys defined in settings
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
parseNodeRecursive(prop, isUsedByClassNamesPlugin ? prop.key : prop.value, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
89
|
+
});
|
|
90
|
+
return;
|
|
91
|
+
case 'Property':
|
|
92
|
+
parseNodeRecursive(rootNode, childNode.key, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
93
|
+
return;
|
|
94
|
+
case 'Literal':
|
|
95
|
+
originalClassNamesValue = childNode.value;
|
|
96
|
+
start = childNode.range[0] + 1;
|
|
97
|
+
end = childNode.range[1] - 1;
|
|
98
|
+
break;
|
|
99
|
+
case 'SvelteLiteral':
|
|
100
|
+
originalClassNamesValue = childNode.value;
|
|
101
|
+
start = childNode.range[0];
|
|
102
|
+
end = childNode.range[1];
|
|
103
|
+
break;
|
|
104
|
+
case 'TemplateElement':
|
|
105
|
+
originalClassNamesValue = childNode.value.raw;
|
|
106
|
+
start = childNode.range[0];
|
|
107
|
+
end = childNode.range[1];
|
|
108
|
+
const txt = context?.sourceCode.getText(childNode) ?? '';
|
|
109
|
+
prefix = getTemplateElementPrefix(txt, originalClassNamesValue);
|
|
110
|
+
suffix = getTemplateElementSuffix(txt, originalClassNamesValue);
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
for(let i = 0; i < expStrings.length; i++){
|
|
114
|
+
originalClassNamesValue = originalClassNamesValue.replace(`EXPRESSION_STRING_NUM_${i}`, expStrings[i]);
|
|
115
|
+
}
|
|
116
|
+
({ classNames } = extractClassnamesFromValue(originalClassNamesValue));
|
|
117
|
+
classNames = [
|
|
118
|
+
...new Set(classNames)
|
|
119
|
+
];
|
|
120
|
+
if (classNames.length === 0) {
|
|
121
|
+
// Don't run for empty className
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const targetNode = isolate ? null : rootNode;
|
|
125
|
+
cb(classNames, targetNode, originalClassNamesValue, start, end, prefix, suffix);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
exports.parseNodeRecursive = parseNodeRecursive;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { RuleContext } from '@typescript-eslint/utils/ts-eslint';
|
|
2
2
|
/**
|
|
3
3
|
* Inspect and parse an abstract syntax node and run a callback function
|
|
4
4
|
*
|
|
@@ -10,4 +10,4 @@ import { Rule } from 'eslint';
|
|
|
10
10
|
* @param {Array} ignoredKeys Optional, set object keys which should not be parsed e.g. for `cva`
|
|
11
11
|
* @returns {void}
|
|
12
12
|
*/
|
|
13
|
-
export declare function parseNodeRecursive(rootNode: any, childNode: any, cb: any, skipConditional
|
|
13
|
+
export declare function parseNodeRecursive(rootNode: any, childNode: any, cb: any, skipConditional: boolean, isolate: boolean, ignoredKeys: any[], context: RuleContext<any, any>): void;
|
|
@@ -1 +1,127 @@
|
|
|
1
|
-
import
|
|
1
|
+
import getTemplateElementPrefix from './get-template-element-prefix.mjs';
|
|
2
|
+
import getTemplateElementSuffix from './get-template-element-suffix.mjs';
|
|
3
|
+
import extractValueFromNode from './extract-value-from-node.mjs';
|
|
4
|
+
import extractClassnamesFromValue from './extract-classnames-from-value.mjs';
|
|
5
|
+
import extractRangeFromNode from './extract-range-from-node.mjs';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Inspect and parse an abstract syntax node and run a callback function
|
|
9
|
+
*
|
|
10
|
+
* @param {ASTNode} rootNode The current root node being parsed by eslint
|
|
11
|
+
* @param {ASTNode} childNode The AST node child argument being checked
|
|
12
|
+
* @param {Function} cb The callback function
|
|
13
|
+
* @param {Boolean} skipConditional Optional, indicate distinct parsing for conditional nodes
|
|
14
|
+
* @param {Boolean} isolate Optional, set internally to isolate parsing and validation on conditional children
|
|
15
|
+
* @param {Array} ignoredKeys Optional, set object keys which should not be parsed e.g. for `cva`
|
|
16
|
+
* @returns {void}
|
|
17
|
+
*/ function parseNodeRecursive(rootNode, childNode, cb, skipConditional = false, isolate = false, ignoredKeys = [], context) {
|
|
18
|
+
// TODO allow vue non litteral
|
|
19
|
+
let originalClassNamesValue;
|
|
20
|
+
let classNames;
|
|
21
|
+
let start = null;
|
|
22
|
+
let end = null;
|
|
23
|
+
let prefix = '';
|
|
24
|
+
let suffix = '';
|
|
25
|
+
if (childNode === null) {
|
|
26
|
+
originalClassNamesValue = extractValueFromNode(rootNode);
|
|
27
|
+
({ classNames } = extractClassnamesFromValue(originalClassNamesValue));
|
|
28
|
+
classNames = [
|
|
29
|
+
...new Set(classNames)
|
|
30
|
+
];
|
|
31
|
+
if (classNames.length === 0) {
|
|
32
|
+
// Don't run for empty className
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const range = extractRangeFromNode(rootNode);
|
|
36
|
+
if (rootNode.type === 'TextAttribute') {
|
|
37
|
+
start = range[0];
|
|
38
|
+
end = range[1];
|
|
39
|
+
} else {
|
|
40
|
+
start = range[0] + 1;
|
|
41
|
+
end = range[1] - 1;
|
|
42
|
+
}
|
|
43
|
+
cb(classNames, rootNode, originalClassNamesValue, start, end, prefix, suffix);
|
|
44
|
+
} else if (childNode === undefined) {
|
|
45
|
+
// Ignore invalid child candidates (probably inside complex TemplateLiteral)
|
|
46
|
+
return;
|
|
47
|
+
} else {
|
|
48
|
+
const forceIsolation = skipConditional ? true : isolate;
|
|
49
|
+
let expStrings = [];
|
|
50
|
+
switch(childNode.type){
|
|
51
|
+
case 'TemplateLiteral':
|
|
52
|
+
childNode.expressions.forEach((exp)=>{
|
|
53
|
+
parseNodeRecursive(rootNode, exp, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
54
|
+
});
|
|
55
|
+
const sourceCode = context.sourceCode;
|
|
56
|
+
originalClassNamesValue = sourceCode.getText(childNode);
|
|
57
|
+
originalClassNamesValue = originalClassNamesValue.substring(1, originalClassNamesValue.length - 1);
|
|
58
|
+
expStrings = originalClassNamesValue.match(/\$\{(?:(?<!\\\\)(['"`]).*?(?<!\\\\)\1|[^}])*?\}/g) ?? [];
|
|
59
|
+
for(let i = 0; i < expStrings.length; i++){
|
|
60
|
+
originalClassNamesValue = originalClassNamesValue.replace(expStrings[i], `EXPRESSION_STRING_NUM_${i}`);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
case 'ConditionalExpression':
|
|
64
|
+
parseNodeRecursive(rootNode, childNode.consequent, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
65
|
+
parseNodeRecursive(rootNode, childNode.alternate, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
66
|
+
return;
|
|
67
|
+
case 'LogicalExpression':
|
|
68
|
+
parseNodeRecursive(rootNode, childNode.right, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
69
|
+
return;
|
|
70
|
+
case 'ArrayExpression':
|
|
71
|
+
childNode.elements.forEach((el)=>{
|
|
72
|
+
parseNodeRecursive(rootNode, el, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
73
|
+
});
|
|
74
|
+
return;
|
|
75
|
+
case 'ObjectExpression':
|
|
76
|
+
childNode.properties.forEach((prop)=>{
|
|
77
|
+
const isUsedByClassNamesPlugin = rootNode.callee && rootNode.callee.name === 'classnames';
|
|
78
|
+
if (prop.type === 'SpreadElement') {
|
|
79
|
+
// Ignore spread elements
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (prop.key.type === 'Identifier' && ignoredKeys.includes(prop.key.name)) {
|
|
83
|
+
// Ignore specific keys defined in settings
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
parseNodeRecursive(prop, isUsedByClassNamesPlugin ? prop.key : prop.value, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
87
|
+
});
|
|
88
|
+
return;
|
|
89
|
+
case 'Property':
|
|
90
|
+
parseNodeRecursive(rootNode, childNode.key, cb, skipConditional, forceIsolation, ignoredKeys, context);
|
|
91
|
+
return;
|
|
92
|
+
case 'Literal':
|
|
93
|
+
originalClassNamesValue = childNode.value;
|
|
94
|
+
start = childNode.range[0] + 1;
|
|
95
|
+
end = childNode.range[1] - 1;
|
|
96
|
+
break;
|
|
97
|
+
case 'SvelteLiteral':
|
|
98
|
+
originalClassNamesValue = childNode.value;
|
|
99
|
+
start = childNode.range[0];
|
|
100
|
+
end = childNode.range[1];
|
|
101
|
+
break;
|
|
102
|
+
case 'TemplateElement':
|
|
103
|
+
originalClassNamesValue = childNode.value.raw;
|
|
104
|
+
start = childNode.range[0];
|
|
105
|
+
end = childNode.range[1];
|
|
106
|
+
const txt = context?.sourceCode.getText(childNode) ?? '';
|
|
107
|
+
prefix = getTemplateElementPrefix(txt, originalClassNamesValue);
|
|
108
|
+
suffix = getTemplateElementSuffix(txt, originalClassNamesValue);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
for(let i = 0; i < expStrings.length; i++){
|
|
112
|
+
originalClassNamesValue = originalClassNamesValue.replace(`EXPRESSION_STRING_NUM_${i}`, expStrings[i]);
|
|
113
|
+
}
|
|
114
|
+
({ classNames } = extractClassnamesFromValue(originalClassNamesValue));
|
|
115
|
+
classNames = [
|
|
116
|
+
...new Set(classNames)
|
|
117
|
+
];
|
|
118
|
+
if (classNames.length === 0) {
|
|
119
|
+
// Don't run for empty className
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const targetNode = isolate ? null : rootNode;
|
|
123
|
+
cb(classNames, targetNode, originalClassNamesValue, start, end, prefix, suffix);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { parseNodeRecursive };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var settings = require('../settings.cjs');
|
|
4
|
+
var exploreConfig = require('@master/css-explore-config');
|
|
5
|
+
var css = require('@master/css');
|
|
6
|
+
|
|
7
|
+
const cssCaches = [];
|
|
8
|
+
function resolveContext(context) {
|
|
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
|
+
cwd: context.cwd
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
css$1 = new css.MasterCSS(config);
|
|
23
|
+
cssCaches.push({
|
|
24
|
+
cwd: context.cwd,
|
|
25
|
+
settings: resolvedSettings,
|
|
26
|
+
css: css$1
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
settings: resolvedSettings,
|
|
31
|
+
options: context.options[0] || {},
|
|
32
|
+
css: css$1
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
module.exports = resolveContext;
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { RuleContext } from '@typescript-eslint/utils/ts-eslint';
|
|
2
|
+
import { MasterCSS } from '@master/css';
|
|
3
|
+
export default function resolveContext(context: RuleContext<any, any[]>): {
|
|
4
|
+
settings: {
|
|
5
|
+
classAttributes: string[];
|
|
6
|
+
classFunctions: string[];
|
|
7
|
+
classDeclarations: string[];
|
|
8
|
+
ignoredKeys: string[];
|
|
9
|
+
config: string;
|
|
10
|
+
};
|
|
3
11
|
options: any;
|
|
12
|
+
css: MasterCSS;
|
|
4
13
|
};
|
|
@@ -1 +1,34 @@
|
|
|
1
|
-
import
|
|
1
|
+
import settings from '../settings.mjs';
|
|
2
|
+
import exploreConfig from '@master/css-explore-config';
|
|
3
|
+
import { MasterCSS } from '@master/css';
|
|
4
|
+
|
|
5
|
+
const cssCaches = [];
|
|
6
|
+
function resolveContext(context) {
|
|
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
|
+
cwd: context.cwd
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
css = new MasterCSS(config);
|
|
21
|
+
cssCaches.push({
|
|
22
|
+
cwd: context.cwd,
|
|
23
|
+
settings: resolvedSettings,
|
|
24
|
+
css
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
settings: resolvedSettings,
|
|
29
|
+
options: context.options[0] || {},
|
|
30
|
+
css
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { resolveContext as default };
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@master/eslint-plugin-css","scripts":{"build":"techor
|
|
1
|
+
{"name":"@master/eslint-plugin-css","type":"module","scripts":{"build":"techor build \"src/**/*.{js,ts}\"","dev":"pnpm build --watch","test":"vitest","type-check":"tsc --noEmit","lint":"eslint"},"keywords":["mastercss","eslint","eslintplugin"],"license":"MIT","description":"Master CSS ESLint Plugin","author":"Aoyue Design LLC.","funding":"https://rc.css.master.co/sponsor","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":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./configs/*":{"types":"./dist/configs/*.d.ts","import":"./dist/configs/*.mjs","require":"./dist/configs/*.cjs"}},"files":["dist"],"publishConfig":{"access":"public","provenance":true},"dependencies":{"@master/css":"^2.0.0-rc.61","@master/css-explore-config":"^2.0.0-rc.61","@master/css-validator":"^2.0.0-rc.61","@typescript-eslint/utils":"^8.15.0","synckit":"^0.9.2","typescript-eslint":"^8.15.0"},"devDependencies":{"@angular-eslint/template-parser":"^18.4.1","@master/css-explore-config":"^2.0.0-rc.61","@typescript-eslint/rule-tester":"^8.15.0","eslint":"^9.15.0","eslint-plugin-markdown":"^5.1.0","eslint-plugin-mdx":"^3.1.5","shared":"^2.0.0-rc.61","svelte-eslint-parser":"^0.43.0","ts-node":"^10.9.2","vue-eslint-parser":"^9.4.3"},"version":"2.0.0-rc.61"}
|
package/dist/configs/config.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
declare const config: {
|
|
2
|
-
readonly rules: {
|
|
3
|
-
readonly '@master/css/class-order': "warn";
|
|
4
|
-
readonly '@master/css/class-validation': "error";
|
|
5
|
-
readonly '@master/css/class-collision': "warn";
|
|
6
|
-
};
|
|
7
|
-
readonly parserOptions: {
|
|
8
|
-
readonly ecmaFeatures: {
|
|
9
|
-
readonly jsx: true;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export default config;
|
package/dist/configs/config.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var c=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var i=(r,s)=>{for(var e in s)c(r,e,{get:s[e],enumerable:!0})},m=(r,s,e,t)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of l(s))!n.call(r,a)&&a!==e&&c(r,a,{get:()=>s[a],enumerable:!(t=o(s,a))||t.enumerable});return r};var u=r=>m(c({},"__esModule",{value:!0}),r);var f={};i(f,{default:()=>p});module.exports=u(f);const d={rules:{"@master/css/class-order":"warn","@master/css/class-validation":"error","@master/css/class-collision":"warn"},parserOptions:{ecmaFeatures:{jsx:!0}}};var p=d;
|
package/dist/configs/config.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const s={rules:{"@master/css/class-order":"warn","@master/css/class-validation":"error","@master/css/class-collision":"warn"},parserOptions:{ecmaFeatures:{jsx:!0}}};var r=s;export{r as default};
|
package/dist/configs/flat.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
rules: {
|
|
3
|
-
readonly '@master/css/class-order': "warn";
|
|
4
|
-
readonly '@master/css/class-validation': "error";
|
|
5
|
-
readonly '@master/css/class-collision': "warn";
|
|
6
|
-
};
|
|
7
|
-
parserOptions: {
|
|
8
|
-
readonly ecmaFeatures: {
|
|
9
|
-
readonly jsx: true;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
plugins: {
|
|
13
|
-
'@master/css': import("eslint").ESLint.Plugin;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
export default _default;
|
package/dist/configs/flat.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var l=Object.create;var p=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var a=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var d=(o,r)=>{for(var i in r)p(o,i,{get:r[i],enumerable:!0})},f=(o,r,i,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of u(r))!c.call(o,m)&&m!==i&&p(o,m,{get:()=>r[m],enumerable:!(t=n(r,m))||t.enumerable});return o};var s=(o,r,i)=>(i=o!=null?l(a(o)):{},f(r||!o||!o.__esModule?p(i,"default",{value:o,enumerable:!0}):i,o)),x=o=>f(p({},"__esModule",{value:!0}),o);var h={};d(h,{default:()=>b});module.exports=x(h);var e=s(require("../plugin")),g=s(require("./config")),b={plugins:{"@master/css":e.default},...g.default};
|
package/dist/configs/flat.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import o from"../plugin.mjs";import r from"./config.mjs";var p={plugins:{"@master/css":o},...r};export{p as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.create;var e=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty;var n=(o,r)=>{for(var s in r)e(o,s,{get:r[s],enumerable:!0})},i=(o,r,s,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of c(r))!l.call(o,t)&&t!==s&&e(o,t,{get:()=>r[t],enumerable:!(f=a(r,t))||f.enumerable});return o};var u=(o,r,s)=>(s=o!=null?p(g(o)):{},i(r||!o||!o.__esModule?e(s,"default",{value:o,enumerable:!0}):s,o)),d=o=>i(e({},"__esModule",{value:!0}),o);var b={};n(b,{default:()=>x});module.exports=d(b);var m=u(require("./config")),x={plugins:["@master/css"],...m.default};
|
package/dist/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var c=Object.create;var p=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var a=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var x=(o,m,r,f)=>{if(m&&typeof m=="object"||typeof m=="function")for(let i of l(m))!u.call(o,i)&&i!==r&&p(o,i,{get:()=>m[i],enumerable:!(f=d(m,i))||f.enumerable});return o};var t=(o,m,r)=>(r=o!=null?c(a(o)):{},x(m||!o||!o.__esModule?p(r,"default",{value:o,enumerable:!0}):r,o));var e=t(require("./plugin")),n=t(require("./settings")),g=t(require("./configs/recommended")),s=t(require("./configs/flat"));module.exports={...e.default,configs:{recommended:g.default,flat:s.default},settings:n.default};
|
package/dist/plugin.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.create;var t=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var u=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var E=(s,i)=>{for(var l in i)t(s,l,{get:i[l],enumerable:!0})},n=(s,i,l,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of f(i))!g.call(s,o)&&o!==l&&t(s,o,{get:()=>i[o],enumerable:!(a=d(i,o))||a.enumerable});return s};var r=(s,i,l)=>(l=s!=null?p(u(s)):{},n(i||!s||!s.__esModule?t(l,"default",{value:s,enumerable:!0}):l,s)),L=s=>n(t({},"__esModule",{value:!0}),s);var x={};E(x,{default:()=>v});module.exports=L(x);var e=r(require("./rules/class-collision")),m=r(require("./rules/class-order")),c=r(require("./rules/class-validation"));const S={meta:{name:"@master/eslint-plugin-css"},rules:{"class-collision":e.default,"class-order":m.default,"class-validation":c.default}};var v=S;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var k=Object.create;var p=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var D=(e,s)=>{for(var o in s)p(e,o,{get:s[o],enumerable:!0})},y=(e,s,o,m)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of w(s))!K.call(e,i)&&i!==o&&p(e,i,{get:()=>s[i],enumerable:!(m=q(s,i))||m.enumerable});return e};var c=(e,s,o)=>(o=e!=null?k(A(e)):{},y(s||!e||!e.__esModule?p(o,"default",{value:e,enumerable:!0}):o,e)),O=e=>y(p({},"__esModule",{value:!0}),e);var z={};D(z,{default:()=>V});module.exports=O(z);var R=c(require("../utils/are-declarations-equal")),S=c(require("../utils/define-visitors")),$=c(require("../utils/resolve-context")),v=c(require("../utils/find-loc")),L=require("../utils/parse-node-recursive"),j=c(require("../utils/valid-rules-action")),V={meta:{docs:{description:"Avoid applying classes with the same CSS declaration",category:"Stylistic Issues",recommended:!1,url:"https://rc.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}=(0,$.default)(e);return(0,S.default)({context:e,settings:o},(i,x=null)=>{(0,L.parseNodeRecursive)(i,x,(a,u,M,N,b)=>{const E=e.sourceCode.lines,I=u.loc.start.line,T=u.loc.end.line,C=(0,j.default)(a,o.config);for(let l=0;l<a.length;l++){const f=a[l],g=C[f],d=[];if(g)for(let n=0;n<a.length;n++){const r=a[n],t=C[r];l!==n&&t&&(0,R.default)(g.declarations,t.declarations)&&g.stateToken===t.stateToken&&d.push(r)}if(d.length>0){const n=d.map(t=>`"${t}"`).join(" and ");let r=M;for(const t of d){const h=t.replace(/(\\|\.|\(|\)|\[|\]|\{|\}|\+|\*|\?|\^|\$|\||\/)/g,"\\$1");r=r.replace(new RegExp(`\\s+${h}|${h}\\s+`),"")}e.report({loc:(0,v.default)(f,E,I,T),messageId:"collisionClass",data:{message:`"${f}" applies the same CSS declarations as ${n}.`},fix:function(t){return t.replaceTextRange([N,b],r)}})}}},!1,!1,o.ignoredKeys,e)})}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var U=Object.create;var E=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var A=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var X=(r,a)=>{for(var o in a)E(r,o,{get:a[o],enumerable:!0})},R=(r,a,o,h)=>{if(a&&typeof a=="object"||typeof a=="function")for(let i of A(a))!G.call(r,i)&&i!==o&&E(r,i,{get:()=>a[i],enumerable:!(h=j(a,i))||h.enumerable});return r};var m=(r,a,o)=>(o=r!=null?U(F(r)):{},R(a||!r||!r.__esModule?E(o,"default",{value:r,enumerable:!0}):o,r)),q=r=>R(E({},"__esModule",{value:!0}),r);var K={};X(K,{default:()=>B});module.exports=q(K);var I=m(require("../utils/define-visitors")),k=m(require("../utils/resolve-context")),L=m(require("../utils/get-template-element-body")),V=m(require("../utils/get-template-element-suffix")),_=m(require("../utils/get-template-element-prefix")),$=m(require("../utils/extract-value-from-node")),M=m(require("../utils/extract-range-from-node")),O=m(require("../utils/extract-classnames-from-value")),P=m(require("../utils/find-loc")),w=m(require("../utils/reorder-valid-classes-action")),B={meta:{docs:{description:"Enforce a consistent and logical order of classes",category:"Stylistic Issues",recommended:!1,url:"https://rc.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(r){const{options:a,settings:o}=(0,k.default)(r),h=r.sourceCode,i=(l,t=null)=>{let s=null,f=null,u=null,x="",N="",g=[];if(t===null){s=(0,$.default)(l);const e=(0,M.default)(l);l.type==="TextAttribute"?(f=e[0],u=e[1]):(f=e[0]+1,u=e[1]-1)}else switch(t.type){case"Identifier":return;case"TemplateLiteral":t.expressions.forEach(n=>{i(l,n)}),s=h.getText(t),s=s.substring(1,s.length-1),g=s.match(/\$\{(?:(?<!\\\\)(['"`]).*?(?<!\\\\)\1|[^}])*?\}/g)??[];for(let n=0;n<g.length;n++)s=s.replace(g[n],`EXPRESSION_STRING_NUM_${n}`);f=t.range[0]+1,u=t.range[1]-1;break;case"ConditionalExpression":i(l,t.consequent),i(l,t.alternate);return;case"LogicalExpression":i(l,t.right);return;case"ArrayExpression":t.elements.forEach(n=>{i(l,n)});return;case"ObjectExpression":const e=l.callee&&l.callee.name==="classnames",y=l.key&&l.key.type==="VDirectiveKey";t.properties.forEach(n=>{const T=e||y?n.key:n.value;i(l,T)});return;case"Property":i(l,t.key);break;case"Literal":s=t.value,f=t.range[0]+1,u=t.range[1]-1;break;case"SvelteLiteral":if(s=t.value,s==="")return;f=t.range[0],u=t.range[1];break;case"TemplateElement":if(s=t.value.raw,s==="")return;f=t.range[0],u=t.range[1];const p=r.sourceCode.getText(t);x=(0,_.default)(p,s),N=(0,V.default)(p,s),s=(0,L.default)(p,x,N);break}const{classNames:S,whitespaces:C,headSpace:b,tailSpace:v}=(0,O.default)(s);if(S.length<=1)return;let d=(0,w.default)(S,o.config);d=S.filter(e=>!d.includes(e)).concat(d).filter(e=>e.trim()!=="");let c="";for(let e=0;e<d.length;e++){const y=C[e]??"",p=d[e];c+=b?`${y}${p}`:`${p}${y}`,p&&(!v&&e===d.length-1&&(c=c.replace(/\s+$/,"")),b&&v&&e===d.length-1&&(c+=C[C.length-1]??""))}for(let e=0;e<g.length;e++)s=s.replace(`EXPRESSION_STRING_NUM_${e}`,g[e]),c=c.replace(`EXPRESSION_STRING_NUM_${e}`,g[e]);if(s!==c){c=x+c+N;const e=h.lines,y=l.loc.start.line,p=l.loc.end.line,n={loc:(0,P.default)(s,e,y,p),messageId:"invalidClassOrder",fix:function(T){return T.replaceTextRange([f,u],c)}};r.report(n)}};return(0,I.default)({context:r,settings:o},i)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var I=Object.create;var i=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var b=(e,s)=>{for(var o in s)i(e,o,{get:s[o],enumerable:!0})},p=(e,s,o,a)=>{if(s&&typeof s=="object"||typeof s=="function")for(let r of N(s))!S.call(e,r)&&r!==o&&i(e,r,{get:()=>s[r],enumerable:!(a=M(s,r))||a.enumerable});return e};var n=(e,s,o)=>(o=e!=null?I(R(e)):{},p(s||!e||!e.__esModule?i(o,"default",{value:e,enumerable:!0}):o,e)),U=e=>p(i({},"__esModule",{value:!0}),e);var K={};b(K,{default:()=>j});module.exports=U(K);var u=n(require("../utils/define-visitors")),y=n(require("../utils/resolve-context")),l=n(require("../utils/find-loc")),C=require("../utils/parse-node-recursive"),w=n(require("../utils/validate-action")),j={meta:{docs:{description:"Detect syntax errors early when writing classes",category:"Stylistic Issues",recommended:!1,url:"https://rc.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}=(0,y.default)(e);return(0,u.default)({context:e,settings:o},(r,h=null)=>{(0,C.parseNodeRecursive)(r,h,(v,c)=>{const d=e.sourceCode.lines,m=c.loc.start.line,g=c.loc.end.line;for(const t of v){const{isMasterCSS:k,errors:f}=(0,w.default)(t,o.config);if(f.length>0)for(const L of f)k?e.report({loc:(0,l.default)(t,d,m,g),messageId:"invalidClass",data:{message:L.message+"."}}):s.disallowUnknownClass&&e.report({loc:(0,l.default)(t,d,m,g),messageId:"disallowUnknownClass",data:{message:`"${t}" is not a valid or known class.`}})}},!1,!1,o.ignoredKeys,e)})}};
|
package/dist/settings.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var r=(a,s)=>{for(var t in s)e(a,t,{get:s[t],enumerable:!0})},d=(a,s,t,l)=>{if(s&&typeof s=="object"||typeof s=="function")for(let c of i(s))!o.call(a,c)&&c!==t&&e(a,c,{get:()=>s[c],enumerable:!(l=n(s,c))||l.enumerable});return a};var g=a=>d(e({},"__esModule",{value:!0}),a);var u={};r(u,{default:()=>f});module.exports=g(u);const m={calleeMatching:"^(classnames|clsx|ctl|cva|cv|classVariant|styled(?:\\.\\w+)?)",classMatching:"^class(Name)?$",ignoredKeys:["compoundVariants","defaultVariants"],config:"master.css.*"};var f=m;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function areDeclarationsEqual(aDeclarations: any, bDeclarations: any): boolean;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var s=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var u=(t,e)=>{for(var r in e)s(t,r,{get:e[r],enumerable:!0})},y=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of f(e))!l.call(t,n)&&n!==r&&s(t,n,{get:()=>e[n],enumerable:!(o=c(e,n))||o.enumerable});return t};var p=t=>y(s({},"__esModule",{value:!0}),t);var O={};u(O,{default:()=>a});module.exports=p(O);function a(t,e){const r=Object.keys(t),o=Object.keys(e);if(r.length!==o.length)return!1;for(const n of r)if(!Object.prototype.hasOwnProperty.call(e,n))return!1;return!0}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function s(r,e){const t=Object.keys(r),n=Object.keys(e);if(t.length!==n.length)return!1;for(const o of t)if(!Object.prototype.hasOwnProperty.call(e,o))return!1;return!0}export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var E=(s,r)=>{for(var t in r)p(s,t,{get:r[t],enumerable:!0})},v=(s,r,t,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of o(r))!x.call(s,i)&&i!==t&&p(s,i,{get:()=>r[i],enumerable:!(l=m(r,i))||l.enumerable});return s};var g=s=>v(p({},"__esModule",{value:!0}),s);var V={};E(V,{default:()=>f});module.exports=g(V);function f({context:s,settings:r},t){const l=e=>{let a="";const n=e.callee||e.tag;return n.type==="Identifier"&&(a=n.name),n.type==="MemberExpression"&&(a=`${n.object.name}.${n.property.name}`),new RegExp(r.calleeMatching).test(a)},i=function(e){l(e)&&e.arguments.forEach(a=>{t(e,a)})},u=new RegExp(r.classMatching),c={CallExpression:i,JSXAttribute:function(e){!e.name||!u.test(e.name.name)||(e.value&&e.value.type==="Literal"?t(e):e.value&&e.value.type==="JSXExpressionContainer"&&t(e,e.value.expression))},SvelteAttribute:function(e){if(!(!e.key?.name||!u.test(e.key.name)))for(const a of e.value)t(e,a)},TextAttribute:function(e){!e.name||!u.test(e.name)||t(e)},TaggedTemplateExpression:function(e){if(l(e)){t(e,e.quasi);return}}},y={CallExpression:i,VAttribute:function(e){e.value&&e.value.type==="VLiteral"?t(e):e.value&&e.value.type==="VExpressionContainer"&&e.value.expression.type==="ArrayExpression"?e.value.expression.elements.forEach(a=>{t(e,a)}):e.value&&e.value.type==="VExpressionContainer"&&e.value.expression.type==="ObjectExpression"&&e.value.expression.properties.forEach(a=>{t(e,a)})}};return s.sourceCode.parserServices==null||s.sourceCode.parserServices.defineTemplateBodyVisitor==null?c:s.sourceCode.parserServices.defineTemplateBodyVisitor(y,c)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var S=Object.prototype.hasOwnProperty;var d=(e,s)=>{for(var t in s)n(e,t,{get:s[t],enumerable:!0})},g=(e,s,t,l)=>{if(s&&typeof s=="object"||typeof s=="function")for(let a of u(s))!S.call(e,a)&&a!==t&&n(e,a,{get:()=>s[a],enumerable:!(l=m(s,a))||l.enumerable});return e};var N=e=>g(n({},"__esModule",{value:!0}),e);var w={};d(w,{default:()=>i});module.exports=N(w);const p=/([\t\n\f\r ]+)/;function i(e){if(typeof e!="string")return{classNames:[],whitespaces:[],headSpace:!1,tailSpace:!1};const s=e.split(p);s[0]===""&&s.shift(),s[s.length-1]===""&&s.pop();const t=p.test(s[0]),l=p.test(s[s.length-1]),a=(h,c)=>t?c%2!==0:c%2===0,o=(h,c)=>t?c%2===0:c%2!==0,r=s.filter(a),f=s.filter(o);return{classNames:r,whitespaces:f,headSpace:t,tailSpace:l}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var u=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var i=Object.prototype.hasOwnProperty;var p=(e,t)=>{for(var r in t)u(e,r,{get:t[r],enumerable:!0})},c=(e,t,r,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of f(t))!i.call(e,a)&&a!==r&&u(e,a,{get:()=>t[a],enumerable:!(l=s(t,a))||l.enumerable});return e};var v=e=>c(u({},"__esModule",{value:!0}),e);var x={};p(x,{default:()=>n});module.exports=v(x);function n(e){if(e.type==="TextAttribute"&&e.name==="class")return[e.valueSpan.fullStart.offset,e.valueSpan.end.offset];switch(e.value.type){case"JSXExpressionContainer":return e.value.expression.range;default:return e.value.range}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var a=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var x=(e,r)=>{for(var t in r)a(e,t,{get:r[t],enumerable:!0})},v=(e,r,t,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of p(r))!n.call(e,s)&&s!==t&&a(e,s,{get:()=>r[s],enumerable:!(u=l(r,s))||u.enumerable});return e};var c=e=>v(a({},"__esModule",{value:!0}),e);var o={};x(o,{default:()=>i});module.exports=c(o);function i(e){if(e.type==="TextAttribute"&&e.name==="class")return e.value;switch(e.value.type){case"JSXExpressionContainer":return e.value.expression.value;case"VExpressionContainer":switch(e.value.expression.type){case"ArrayExpression":return e.value.expression.elements;case"ObjectExpression":return e.value.expression.properties}return e.value.expression.value;default:return e.value.value}}
|
package/dist/utils/find-loc.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var L=(n,e)=>{for(var t in e)s(n,t,{get:e[t],enumerable:!0})},m=(n,e,t,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of g(e))!h.call(n,l)&&l!==t&&s(n,l,{get:()=>e[l],enumerable:!(c=d(e,l))||c.enumerable});return n};var k=n=>m(s({},"__esModule",{value:!0}),n);var p={};L(p,{default:()=>a});module.exports=k(p);function a(n,e,t,c){const l=n.match(/.+(?:\r\n|\n)?/g);let i=0,o=null,u=!1;for(let r=t;r<=c;r++){const f=e[r-1].indexOf(l[i].replace(/\r\n|\n/,""));if(f!==-1){if(i===0&&(o={line:r,column:f}),i===l.length-1)return{start:o,end:{line:r,column:f+n.length}};u=!0,i++}else u&&(u=!1,i=0,o=null)}return null}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var a=Object.create;var n=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var m=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var b=(t,r)=>{for(var e in r)n(t,e,{get:r[e],enumerable:!0})},i=(t,r,e,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of m(r))!x.call(t,o)&&o!==e&&n(t,o,{get:()=>r[o],enumerable:!(f=l(r,o))||f.enumerable});return t};var S=(t,r,e)=>(e=t!=null?a(M(t)):{},i(r||!t||!t.__esModule?n(e,"default",{value:t,enumerable:!0}):e,t)),c=t=>i(n({},"__esModule",{value:!0}),t);var d={};b(d,{default:()=>u});module.exports=c(d);var p=S(require("@master/css")),s=S(require("explore-config"));let C,g;function u(t){return(!C||g!==t)&&(C=new p.default(typeof t=="object"?t:(0,s.default)(t||"")),g=t),C}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import o from"@master/css";import n from"explore-config";let r,e;function C(t){return(!r||e!==t)&&(r=new o(typeof t=="object"?t:n(t||"")),e=t),r}export{C as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.defineProperty;var i=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var s=(o,t)=>{for(var n in t)p(o,n,{get:t[n],enumerable:!0})},y=(o,t,n,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of r(t))!a.call(o,l)&&l!==n&&p(o,l,{get:()=>t[l],enumerable:!(e=i(t,l))||e.enumerable});return o};var b=o=>y(p({},"__esModule",{value:!0}),o);var c={};s(c,{default:()=>d});module.exports=b(c);function d(o,t,n){let e=o.split(t);return e.shift(),e=e.join(t).split(n),e.pop(),e.join(n)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var f=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var x=Object.prototype.hasOwnProperty;var o=(t,e)=>{for(var i in e)f(t,i,{get:e[i],enumerable:!0})},p=(t,e,i,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of u(e))!x.call(t,n)&&n!==i&&f(t,n,{get:()=>e[n],enumerable:!(r=l(e,n))||r.enumerable});return t};var s=t=>p(f({},"__esModule",{value:!0}),t);var c={};o(c,{default:()=>d});module.exports=s(c);function d(t,e){return t.indexOf(e)===0?"":t.split(e).shift()}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var i=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var d=(t,e)=>{for(var n in e)i(t,n,{get:e[n],enumerable:!0})},m=(t,e,n,p)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of r(e))!o.call(t,f)&&f!==n&&i(t,f,{get:()=>e[f],enumerable:!(p=l(e,f))||p.enumerable});return t};var x=t=>m(i({},"__esModule",{value:!0}),t);var a={};d(a,{default:()=>u});module.exports=x(a);function u(t,e){return t.indexOf(e)===-1?"":t.split(e).pop()}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var I=Object.create;var v=Object.defineProperty;var j=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var z=(t,e)=>{for(var a in e)v(t,a,{get:e[a],enumerable:!0})},w=(t,e,a,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of B(e))!U.call(t,m)&&m!==a&&v(t,m,{get:()=>e[m],enumerable:!(r=j(e,m))||r.enumerable});return t};var p=(t,e,a)=>(a=t!=null?I(O(t)):{},w(e||!t||!t.__esModule?v(a,"default",{value:t,enumerable:!0}):a,t)),D=t=>w(v({},"__esModule",{value:!0}),t);var G={};z(G,{parseNodeRecursive:()=>x});module.exports=D(G);var L=p(require("./get-template-element-prefix")),y=p(require("./get-template-element-suffix")),F=p(require("./extract-value-from-node")),R=p(require("./extract-classnames-from-value")),P=p(require("./extract-range-from-node"));function x(t,e,a,r=!1,m=!1,f=[],V=null){let u,l,E=null,g=null,T="",c="";if(e===null){if(u=(0,F.default)(t),{classNames:l}=(0,R.default)(u),l=[...new Set(l)],l.length===0)return;const s=(0,P.default)(t);t.type==="TextAttribute"?(E=s[0],g=s[1]):(E=s[0]+1,g=s[1]-1),a(l,t,u,E,g,T,c)}else{if(e===void 0)return;{const s=r?!0:m;let q=!1;switch(e.type){case"TemplateLiteral":e.expressions.forEach(n=>{x(t,n,a,r,s,f)}),e.quasis.forEach(n=>{x(t,n,a,r,m,f)});return;case"ConditionalExpression":x(t,e.consequent,a,r,s,f),x(t,e.alternate,a,r,s,f);return;case"LogicalExpression":x(t,e.right,a,r,s,f);return;case"ArrayExpression":e.elements.forEach(n=>{x(t,n,a,r,s,f)});return;case"ObjectExpression":e.properties.forEach(n=>{const A=t.callee&&t.callee.name==="classnames";n.type!=="SpreadElement"&&(n.key.type==="Identifier"&&f.includes(n.key.name)||x(t,A?n.key:n.value,a,r,s,f))});return;case"Property":x(t,e.key,a,r,s,f);return;case"Literal":q=!0,u=e.value,E=e.range[0]+1,g=e.range[1]-1;break;case"SvelteLiteral":u=e.value,E=e.range[0],g=e.range[1];break;case"TemplateElement":u=e.value.raw,E=e.range[0],g=e.range[1];const S=V?.sourceCode.getText(e)??"";T=(0,L.default)(S,u),c=(0,y.default)(S,u);break}if({classNames:l}=(0,R.default)(u),l=[...new Set(l)],l.length===0)return;a(l,m?null:t,u,E,g,T,c)}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var i=Object.create;var a=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var f=(e,r)=>{for(var s in r)a(e,s,{get:r[s],enumerable:!0})},t=(e,r,s,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of c(r))!u.call(e,o)&&o!==s&&a(e,o,{get:()=>r[o],enumerable:!(l=n(r,o))||l.enumerable});return e};var m=(e,r,s)=>(s=e!=null?i(p(e)):{},t(r||!e||!e.__esModule?a(s,"default",{value:e,enumerable:!0}):s,e)),y=e=>t(a({},"__esModule",{value:!0}),e);var V={};f(V,{default:()=>R});module.exports=y(V);var d=require("synckit");const C=(0,d.createSyncFn)(require.resolve("./workers/reorder-valid-classes"),{tsRunner:"swc"});var R=C;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createSyncFn as e}from"synckit";const r=e(require.resolve("./workers/reorder-valid-classes"),{tsRunner:"swc"});var o=r;export{o as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var p=Object.create;var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty;var m=(t,s)=>{for(var e in s)o(t,e,{get:s[e],enumerable:!0})},r=(t,s,e,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of c(s))!f.call(t,n)&&n!==e&&o(t,n,{get:()=>s[n],enumerable:!(i=a(s,n))||i.enumerable});return t};var u=(t,s,e)=>(e=t!=null?p(d(t)):{},r(s||!t||!t.__esModule?o(e,"default",{value:t,enumerable:!0}):e,t)),v=t=>r(o({},"__esModule",{value:!0}),t);var S={};m(S,{default:()=>l});module.exports=v(S);var g=u(require("../settings"));function l(t){return{settings:Object.assign(g.default,t.settings?.["@master/css"]),options:t.options[0]||{}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var n=Object.create;var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,p=Object.prototype.hasOwnProperty;var f=(e,r)=>{for(var l in r)s(e,l,{get:r[l],enumerable:!0})},u=(e,r,l,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of c(r))!p.call(e,o)&&o!==l&&s(e,o,{get:()=>r[o],enumerable:!(t=a(r,o))||t.enumerable});return e};var m=(e,r,l)=>(l=e!=null?n(d(e)):{},u(r||!e||!e.__esModule?s(l,"default",{value:e,enumerable:!0}):l,e)),R=e=>u(s({},"__esModule",{value:!0}),e);var w={};f(w,{default:()=>y});module.exports=R(w);var i=require("synckit");const v=(0,i.createSyncFn)(require.resolve("./workers/valid-rules"),{tsRunner:"swc"});var y=v;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createSyncFn as e}from"synckit";const r=e(require.resolve("./workers/valid-rules"),{tsRunner:"swc"});var l=r;export{l as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var s=Object.create;var o=Object.defineProperty;var c=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var f=(e,r)=>{for(var t in r)o(e,t,{get:r[t],enumerable:!0})},n=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of d(r))!u.call(e,a)&&a!==t&&o(e,a,{get:()=>r[a],enumerable:!(i=c(r,a))||i.enumerable});return e};var m=(e,r,t)=>(t=e!=null?s(p(e)):{},n(r||!e||!e.__esModule?o(t,"default",{value:e,enumerable:!0}):t,e)),v=e=>n(o({},"__esModule",{value:!0}),e);var V={};f(V,{default:()=>w});module.exports=v(V);var l=require("synckit");const y=(0,l.createSyncFn)(require.resolve("./workers/validate"),{tsRunner:"swc"});var w=y;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createSyncFn as e}from"synckit";const r=e(require.resolve("./workers/validate"),{tsRunner:"swc"});var a=r;export{a as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var C=Object.create;var s=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var p=(r,e)=>{for(var n in e)s(r,n,{get:e[n],enumerable:!0})},i=(r,e,n,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of l(e))!c.call(r,o)&&o!==n&&s(r,o,{get:()=>e[o],enumerable:!(t=d(e,o))||t.enumerable});return r};var S=(r,e,n)=>(n=r!=null?C(m(r)):{},i(e||!r||!r.__esModule?s(n,"default",{value:r,enumerable:!0}):n,r)),R=r=>i(s({},"__esModule",{value:!0}),r);var b={};p(b,{runReorderValidClasses:()=>u});module.exports=R(b);var f=require("@master/css"),g=require("synckit"),a=S(require("../get-mastercss"));function u(r,e){const n=(0,a.default)(e);return(0,f.reorderForReadableClasses)(r,{css:n}).filter(t=>r.includes(t))}(0,g.runAsWorker)(u);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{reorderForReadableClasses as t}from"@master/css";import{runAsWorker as s}from"synckit";import i from"../get-mastercss.mjs";function f(r,e){const n=i(e);return t(r,{css:n}).filter(o=>r.includes(o))}s(f);export{f as runReorderValidClasses};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var m=Object.create;var s=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var d=Object.getOwnPropertyNames;var p=Object.getPrototypeOf,R=Object.prototype.hasOwnProperty;var C=(r,t)=>{for(var o in t)s(r,o,{get:t[o],enumerable:!0})},a=(r,t,o,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of d(t))!R.call(r,n)&&n!==o&&s(r,n,{get:()=>t[n],enumerable:!(e=g(t,n))||e.enumerable});return r};var S=(r,t,o)=>(o=r!=null?m(p(r)):{},a(t||!r||!r.__esModule?s(o,"default",{value:r,enumerable:!0}):o,r)),k=r=>a(s({},"__esModule",{value:!0}),r);var y={};C(y,{runValidRules:()=>c});module.exports=k(y);var l=require("synckit"),u=S(require("../get-mastercss")),f=require("@master/css-validator");function c(r,t){const o=(0,u.default)(t),e={};return r.forEach(n=>{const i=(0,f.generateValidRules)(n,{css:o})[0];i&&(e[n]={declarations:i?.declarations,stateToken:i?.stateToken})}),e}(0,l.runAsWorker)(c);
|