@master/eslint-plugin-css 2.0.0-rc.70 → 2.0.0-rc.72
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 +68 -11
- package/dist/configs/recommended.cjs +4 -3
- package/dist/configs/recommended.mjs +4 -3
- package/dist/plugin.cjs +10 -6
- package/dist/plugin.mjs +10 -6
- package/dist/rules/no-conflicting-classes.cjs +101 -0
- package/dist/rules/no-conflicting-classes.d.ts +4 -0
- package/dist/rules/no-conflicting-classes.mjs +99 -0
- package/dist/rules/no-invalid-classes.cjs +51 -0
- package/dist/rules/{class-validation.d.ts → no-invalid-classes.d.ts} +1 -1
- package/dist/rules/no-invalid-classes.mjs +49 -0
- package/dist/rules/no-unapproved-raw-values.cjs +77 -0
- package/dist/rules/no-unapproved-raw-values.d.ts +8 -0
- package/dist/rules/no-unapproved-raw-values.mjs +75 -0
- package/dist/rules/prefer-canonical-classes.cjs +112 -0
- package/dist/rules/prefer-canonical-classes.d.ts +5 -0
- package/dist/rules/prefer-canonical-classes.mjs +110 -0
- package/dist/rules/{class-order.cjs → sort-classes.cjs} +10 -21
- package/dist/rules/{class-order.mjs → sort-classes.mjs} +10 -21
- package/dist/settings-schema.cjs +29 -23
- package/dist/settings-schema.d.ts +3 -2
- package/dist/settings-schema.mjs +25 -23
- package/dist/settings.cjs +2 -8
- package/dist/settings.d.ts +2 -2
- package/dist/settings.mjs +2 -8
- package/dist/utils/define-visitors.cjs +1 -1
- package/dist/utils/define-visitors.mjs +1 -1
- package/dist/utils/master-css.cjs +2 -82
- package/dist/utils/master-css.d.ts +0 -16
- package/dist/utils/master-css.mjs +1 -75
- package/dist/utils/resolve-class-node.cjs +18 -67
- package/dist/utils/resolve-class-node.d.ts +15 -7
- package/dist/utils/resolve-class-node.mjs +18 -67
- package/dist/utils/resolve-context.d.ts +1 -1
- package/package.json +1 -1
- package/dist/common.cjs +0 -7
- package/dist/common.d.ts +0 -2
- package/dist/common.mjs +0 -4
- package/dist/functions/filter-collision-classes.cjs +0 -29
- package/dist/functions/filter-collision-classes.d.ts +0 -2
- package/dist/functions/filter-collision-classes.mjs +0 -27
- package/dist/rules/class-collision.cjs +0 -76
- package/dist/rules/class-collision.d.ts +0 -4
- package/dist/rules/class-collision.mjs +0 -74
- package/dist/rules/class-validation.cjs +0 -60
- package/dist/rules/class-validation.mjs +0 -58
- /package/dist/rules/{class-order.d.ts → sort-classes.d.ts} +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import defineVisitors from '../utils/define-visitors.mjs';
|
|
2
|
+
import resolveContext from '../utils/resolve-context.mjs';
|
|
3
|
+
import createRule from '../create-rule.mjs';
|
|
4
|
+
import { findUnapprovedRawValueClasses } from '@master/css-lint';
|
|
5
|
+
|
|
6
|
+
var noUnapprovedRawValues = createRule({
|
|
7
|
+
name: 'no-unapproved-raw-values',
|
|
8
|
+
meta: {
|
|
9
|
+
type: 'suggestion',
|
|
10
|
+
docs: {
|
|
11
|
+
description: 'Disallow unapproved raw values in token-backed Master CSS classes'
|
|
12
|
+
},
|
|
13
|
+
messages: {
|
|
14
|
+
unapprovedRawValue: 'Unexpected raw value "{{value}}" in "{{className}}". Use a token or allow it explicitly.'
|
|
15
|
+
},
|
|
16
|
+
fixable: null,
|
|
17
|
+
schema: [
|
|
18
|
+
{
|
|
19
|
+
type: 'object',
|
|
20
|
+
properties: {
|
|
21
|
+
allowRawValues: {
|
|
22
|
+
type: 'boolean'
|
|
23
|
+
},
|
|
24
|
+
allowProperties: {
|
|
25
|
+
type: 'array',
|
|
26
|
+
items: {
|
|
27
|
+
type: 'string'
|
|
28
|
+
},
|
|
29
|
+
uniqueItems: true
|
|
30
|
+
},
|
|
31
|
+
allowedPatterns: {
|
|
32
|
+
type: 'array',
|
|
33
|
+
items: {
|
|
34
|
+
type: 'string'
|
|
35
|
+
},
|
|
36
|
+
uniqueItems: true
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
additionalProperties: false
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
defaultOptions: [
|
|
44
|
+
{
|
|
45
|
+
allowRawValues: false,
|
|
46
|
+
allowProperties: [],
|
|
47
|
+
allowedPatterns: []
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
create (context) {
|
|
51
|
+
const { settings, css } = resolveContext(context);
|
|
52
|
+
const options = context.options[0] || {};
|
|
53
|
+
return defineVisitors({
|
|
54
|
+
context,
|
|
55
|
+
settings
|
|
56
|
+
}, (node, { classNodes, classValues })=>{
|
|
57
|
+
const issues = findUnapprovedRawValueClasses(classValues, css, options);
|
|
58
|
+
for (const issue of issues){
|
|
59
|
+
const classNode = classNodes.find((node)=>node.value === issue.className);
|
|
60
|
+
if (!classNode) continue;
|
|
61
|
+
context.report({
|
|
62
|
+
node,
|
|
63
|
+
loc: classNode.loc,
|
|
64
|
+
messageId: 'unapprovedRawValue',
|
|
65
|
+
data: {
|
|
66
|
+
className: issue.className,
|
|
67
|
+
value: issue.value
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
export { noUnapprovedRawValues as default };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defineVisitors = require('../utils/define-visitors.cjs');
|
|
4
|
+
var resolveContext = require('../utils/resolve-context.cjs');
|
|
5
|
+
var createRule = require('../create-rule.cjs');
|
|
6
|
+
var cssLint = require('@master/css-lint');
|
|
7
|
+
|
|
8
|
+
var preferCanonicalClasses = createRule({
|
|
9
|
+
name: 'prefer-canonical-classes',
|
|
10
|
+
meta: {
|
|
11
|
+
type: 'suggestion',
|
|
12
|
+
docs: {
|
|
13
|
+
description: 'Prefer canonical Master CSS classes'
|
|
14
|
+
},
|
|
15
|
+
messages: {
|
|
16
|
+
preferClass: 'Prefer "{{recommended}}" over "{{actual}}".'
|
|
17
|
+
},
|
|
18
|
+
fixable: 'code',
|
|
19
|
+
schema: [
|
|
20
|
+
{
|
|
21
|
+
type: 'object',
|
|
22
|
+
properties: {
|
|
23
|
+
preferStaticUtilities: {
|
|
24
|
+
type: 'boolean'
|
|
25
|
+
},
|
|
26
|
+
preferThemeTokens: {
|
|
27
|
+
type: 'boolean'
|
|
28
|
+
},
|
|
29
|
+
preferPropertyAliases: {
|
|
30
|
+
type: 'boolean'
|
|
31
|
+
},
|
|
32
|
+
preferVariableReferences: {
|
|
33
|
+
type: 'boolean'
|
|
34
|
+
},
|
|
35
|
+
preferMultiValueTokens: {
|
|
36
|
+
type: 'boolean'
|
|
37
|
+
},
|
|
38
|
+
preferCompositionUtilities: {
|
|
39
|
+
type: 'boolean'
|
|
40
|
+
},
|
|
41
|
+
preferConditionOrder: {
|
|
42
|
+
type: 'boolean'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
additionalProperties: false
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
defaultOptions: [
|
|
50
|
+
cssLint.defaultCanonicalClassNameOptions
|
|
51
|
+
],
|
|
52
|
+
create (context) {
|
|
53
|
+
const { settings, css } = resolveContext(context);
|
|
54
|
+
const options = {
|
|
55
|
+
...cssLint.defaultCanonicalClassNameOptions,
|
|
56
|
+
...context.options[0] || {}
|
|
57
|
+
};
|
|
58
|
+
return defineVisitors({
|
|
59
|
+
context,
|
|
60
|
+
settings
|
|
61
|
+
}, (node, { raw, start, end, unescape, classNodes, classValues })=>{
|
|
62
|
+
const groupSuggestions = cssLint.suggestCanonicalClassGroups(classValues, css, options);
|
|
63
|
+
const coveredClassNames = new Set(groupSuggestions.flatMap((suggestion)=>suggestion.classNames));
|
|
64
|
+
const reports = [];
|
|
65
|
+
let fixedRaw = raw;
|
|
66
|
+
for (const suggestion of groupSuggestions){
|
|
67
|
+
const firstClassNode = classNodes.find((node)=>node.value === suggestion.classNames[0]);
|
|
68
|
+
if (!firstClassNode) continue;
|
|
69
|
+
fixedRaw = cssLint.replaceClassGroupInClassList(fixedRaw, suggestion.classNames, suggestion.recommended, {
|
|
70
|
+
unescape
|
|
71
|
+
});
|
|
72
|
+
reports.push({
|
|
73
|
+
loc: firstClassNode.loc,
|
|
74
|
+
actual: suggestion.classNames.join(' '),
|
|
75
|
+
recommended: suggestion.recommended
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
for (const classNode of classNodes){
|
|
79
|
+
if (coveredClassNames.has(classNode.value)) continue;
|
|
80
|
+
const recommended = cssLint.suggestCanonicalClassName(classNode.value, css, options);
|
|
81
|
+
if (!recommended) continue;
|
|
82
|
+
fixedRaw = cssLint.replaceClassNameInClassList(fixedRaw, classNode.value, recommended, {
|
|
83
|
+
unescape
|
|
84
|
+
});
|
|
85
|
+
reports.push({
|
|
86
|
+
loc: classNode.loc,
|
|
87
|
+
actual: classNode.value,
|
|
88
|
+
recommended
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
for (const report of reports){
|
|
92
|
+
context.report({
|
|
93
|
+
node,
|
|
94
|
+
loc: report.loc,
|
|
95
|
+
messageId: 'preferClass',
|
|
96
|
+
data: {
|
|
97
|
+
actual: report.actual,
|
|
98
|
+
recommended: report.recommended
|
|
99
|
+
},
|
|
100
|
+
fix (fixer) {
|
|
101
|
+
return fixer.replaceTextRange([
|
|
102
|
+
start,
|
|
103
|
+
end
|
|
104
|
+
], fixedRaw);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
module.exports = preferCanonicalClasses;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type CanonicalClassNameOptions } from '@master/css-lint';
|
|
2
|
+
declare const _default: import("@typescript-eslint/utils/ts-eslint").RuleModule<"preferClass", [Required<CanonicalClassNameOptions>], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
5
|
+
export default _default;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import defineVisitors from '../utils/define-visitors.mjs';
|
|
2
|
+
import resolveContext from '../utils/resolve-context.mjs';
|
|
3
|
+
import createRule from '../create-rule.mjs';
|
|
4
|
+
import { defaultCanonicalClassNameOptions, suggestCanonicalClassGroups, replaceClassGroupInClassList, suggestCanonicalClassName, replaceClassNameInClassList } from '@master/css-lint';
|
|
5
|
+
|
|
6
|
+
var preferCanonicalClasses = createRule({
|
|
7
|
+
name: 'prefer-canonical-classes',
|
|
8
|
+
meta: {
|
|
9
|
+
type: 'suggestion',
|
|
10
|
+
docs: {
|
|
11
|
+
description: 'Prefer canonical Master CSS classes'
|
|
12
|
+
},
|
|
13
|
+
messages: {
|
|
14
|
+
preferClass: 'Prefer "{{recommended}}" over "{{actual}}".'
|
|
15
|
+
},
|
|
16
|
+
fixable: 'code',
|
|
17
|
+
schema: [
|
|
18
|
+
{
|
|
19
|
+
type: 'object',
|
|
20
|
+
properties: {
|
|
21
|
+
preferStaticUtilities: {
|
|
22
|
+
type: 'boolean'
|
|
23
|
+
},
|
|
24
|
+
preferThemeTokens: {
|
|
25
|
+
type: 'boolean'
|
|
26
|
+
},
|
|
27
|
+
preferPropertyAliases: {
|
|
28
|
+
type: 'boolean'
|
|
29
|
+
},
|
|
30
|
+
preferVariableReferences: {
|
|
31
|
+
type: 'boolean'
|
|
32
|
+
},
|
|
33
|
+
preferMultiValueTokens: {
|
|
34
|
+
type: 'boolean'
|
|
35
|
+
},
|
|
36
|
+
preferCompositionUtilities: {
|
|
37
|
+
type: 'boolean'
|
|
38
|
+
},
|
|
39
|
+
preferConditionOrder: {
|
|
40
|
+
type: 'boolean'
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
additionalProperties: false
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
defaultOptions: [
|
|
48
|
+
defaultCanonicalClassNameOptions
|
|
49
|
+
],
|
|
50
|
+
create (context) {
|
|
51
|
+
const { settings, css } = resolveContext(context);
|
|
52
|
+
const options = {
|
|
53
|
+
...defaultCanonicalClassNameOptions,
|
|
54
|
+
...context.options[0] || {}
|
|
55
|
+
};
|
|
56
|
+
return defineVisitors({
|
|
57
|
+
context,
|
|
58
|
+
settings
|
|
59
|
+
}, (node, { raw, start, end, unescape, classNodes, classValues })=>{
|
|
60
|
+
const groupSuggestions = suggestCanonicalClassGroups(classValues, css, options);
|
|
61
|
+
const coveredClassNames = new Set(groupSuggestions.flatMap((suggestion)=>suggestion.classNames));
|
|
62
|
+
const reports = [];
|
|
63
|
+
let fixedRaw = raw;
|
|
64
|
+
for (const suggestion of groupSuggestions){
|
|
65
|
+
const firstClassNode = classNodes.find((node)=>node.value === suggestion.classNames[0]);
|
|
66
|
+
if (!firstClassNode) continue;
|
|
67
|
+
fixedRaw = replaceClassGroupInClassList(fixedRaw, suggestion.classNames, suggestion.recommended, {
|
|
68
|
+
unescape
|
|
69
|
+
});
|
|
70
|
+
reports.push({
|
|
71
|
+
loc: firstClassNode.loc,
|
|
72
|
+
actual: suggestion.classNames.join(' '),
|
|
73
|
+
recommended: suggestion.recommended
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
for (const classNode of classNodes){
|
|
77
|
+
if (coveredClassNames.has(classNode.value)) continue;
|
|
78
|
+
const recommended = suggestCanonicalClassName(classNode.value, css, options);
|
|
79
|
+
if (!recommended) continue;
|
|
80
|
+
fixedRaw = replaceClassNameInClassList(fixedRaw, classNode.value, recommended, {
|
|
81
|
+
unescape
|
|
82
|
+
});
|
|
83
|
+
reports.push({
|
|
84
|
+
loc: classNode.loc,
|
|
85
|
+
actual: classNode.value,
|
|
86
|
+
recommended
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
for (const report of reports){
|
|
90
|
+
context.report({
|
|
91
|
+
node,
|
|
92
|
+
loc: report.loc,
|
|
93
|
+
messageId: 'preferClass',
|
|
94
|
+
data: {
|
|
95
|
+
actual: report.actual,
|
|
96
|
+
recommended: report.recommended
|
|
97
|
+
},
|
|
98
|
+
fix (fixer) {
|
|
99
|
+
return fixer.replaceTextRange([
|
|
100
|
+
start,
|
|
101
|
+
end
|
|
102
|
+
], fixedRaw);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
export { preferCanonicalClasses as default };
|
|
@@ -3,23 +3,20 @@
|
|
|
3
3
|
var defineVisitors = require('../utils/define-visitors.cjs');
|
|
4
4
|
var resolveContext = require('../utils/resolve-context.cjs');
|
|
5
5
|
var createRule = require('../create-rule.cjs');
|
|
6
|
-
var
|
|
7
|
-
var masterCss = require('../utils/master-css.cjs');
|
|
6
|
+
var cssLint = require('@master/css-lint');
|
|
8
7
|
|
|
9
|
-
var
|
|
10
|
-
name: '
|
|
8
|
+
var sortClasses = createRule({
|
|
9
|
+
name: 'sort-classes',
|
|
11
10
|
meta: {
|
|
12
11
|
type: 'layout',
|
|
13
12
|
fixable: 'code',
|
|
14
13
|
docs: {
|
|
15
|
-
description: '
|
|
14
|
+
description: 'Sort Master CSS classes'
|
|
16
15
|
},
|
|
17
16
|
messages: {
|
|
18
17
|
invalidClassOrder: 'No consistent class order followed.'
|
|
19
18
|
},
|
|
20
|
-
schema: [
|
|
21
|
-
settingsSchema
|
|
22
|
-
]
|
|
19
|
+
schema: []
|
|
23
20
|
},
|
|
24
21
|
defaultOptions: [],
|
|
25
22
|
create: function(context) {
|
|
@@ -28,19 +25,11 @@ var classOrder = createRule({
|
|
|
28
25
|
return defineVisitors({
|
|
29
26
|
context,
|
|
30
27
|
settings
|
|
31
|
-
}, (node, { raw, start, end, nodes,
|
|
28
|
+
}, (node, { raw, start, end, nodes, unescape })=>{
|
|
32
29
|
if (nodes.length <= 1) return;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const value = orderedClasses.shift();
|
|
37
|
-
return classValueRawMap.get(value);
|
|
38
|
-
}
|
|
39
|
-
if (eachNode.type === 'space' && (orderedClasses.length !== 0 || i === nodes.length - 1)) {
|
|
40
|
-
return eachNode.raw;
|
|
41
|
-
}
|
|
42
|
-
return '';
|
|
43
|
-
}).join('');
|
|
30
|
+
const orderedRaw = cssLint.sortClassList(raw, css, {
|
|
31
|
+
unescape
|
|
32
|
+
});
|
|
44
33
|
if (raw !== orderedRaw) {
|
|
45
34
|
context.report({
|
|
46
35
|
node,
|
|
@@ -61,4 +50,4 @@ var classOrder = createRule({
|
|
|
61
50
|
}
|
|
62
51
|
});
|
|
63
52
|
|
|
64
|
-
module.exports =
|
|
53
|
+
module.exports = sortClasses;
|
|
@@ -1,23 +1,20 @@
|
|
|
1
1
|
import defineVisitors from '../utils/define-visitors.mjs';
|
|
2
2
|
import resolveContext from '../utils/resolve-context.mjs';
|
|
3
3
|
import createRule from '../create-rule.mjs';
|
|
4
|
-
import
|
|
5
|
-
import { sortReadableClasses } from '../utils/master-css.mjs';
|
|
4
|
+
import { sortClassList } from '@master/css-lint';
|
|
6
5
|
|
|
7
|
-
var
|
|
8
|
-
name: '
|
|
6
|
+
var sortClasses = createRule({
|
|
7
|
+
name: 'sort-classes',
|
|
9
8
|
meta: {
|
|
10
9
|
type: 'layout',
|
|
11
10
|
fixable: 'code',
|
|
12
11
|
docs: {
|
|
13
|
-
description: '
|
|
12
|
+
description: 'Sort Master CSS classes'
|
|
14
13
|
},
|
|
15
14
|
messages: {
|
|
16
15
|
invalidClassOrder: 'No consistent class order followed.'
|
|
17
16
|
},
|
|
18
|
-
schema: [
|
|
19
|
-
settingsSchema
|
|
20
|
-
]
|
|
17
|
+
schema: []
|
|
21
18
|
},
|
|
22
19
|
defaultOptions: [],
|
|
23
20
|
create: function(context) {
|
|
@@ -26,19 +23,11 @@ var classOrder = createRule({
|
|
|
26
23
|
return defineVisitors({
|
|
27
24
|
context,
|
|
28
25
|
settings
|
|
29
|
-
}, (node, { raw, start, end, nodes,
|
|
26
|
+
}, (node, { raw, start, end, nodes, unescape })=>{
|
|
30
27
|
if (nodes.length <= 1) return;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const value = orderedClasses.shift();
|
|
35
|
-
return classValueRawMap.get(value);
|
|
36
|
-
}
|
|
37
|
-
if (eachNode.type === 'space' && (orderedClasses.length !== 0 || i === nodes.length - 1)) {
|
|
38
|
-
return eachNode.raw;
|
|
39
|
-
}
|
|
40
|
-
return '';
|
|
41
|
-
}).join('');
|
|
28
|
+
const orderedRaw = sortClassList(raw, css, {
|
|
29
|
+
unescape
|
|
30
|
+
});
|
|
42
31
|
if (raw !== orderedRaw) {
|
|
43
32
|
context.report({
|
|
44
33
|
node,
|
|
@@ -59,4 +48,4 @@ var classOrder = createRule({
|
|
|
59
48
|
}
|
|
60
49
|
});
|
|
61
50
|
|
|
62
|
-
export {
|
|
51
|
+
export { sortClasses as default };
|
package/dist/settings-schema.cjs
CHANGED
|
@@ -1,32 +1,38 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
const sourceMatcherSchema = {
|
|
6
|
+
type: 'array',
|
|
7
|
+
items: {
|
|
8
|
+
type: 'string',
|
|
9
|
+
minLength: 1
|
|
10
|
+
},
|
|
11
|
+
uniqueItems: true
|
|
12
|
+
};
|
|
13
|
+
const masterCSSSettingsSchema = {
|
|
4
14
|
type: 'object',
|
|
5
15
|
properties: {
|
|
6
|
-
classAttributes:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
classFunctions: {
|
|
13
|
-
type: 'array',
|
|
14
|
-
items: {
|
|
15
|
-
type: 'string'
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
ignoredKeys: {
|
|
19
|
-
type: 'array',
|
|
20
|
-
items: {
|
|
21
|
-
type: 'string',
|
|
22
|
-
minLength: 0
|
|
23
|
-
},
|
|
24
|
-
uniqueItems: true
|
|
25
|
-
},
|
|
16
|
+
classAttributes: sourceMatcherSchema,
|
|
17
|
+
classFunctions: sourceMatcherSchema,
|
|
18
|
+
classDeclarations: sourceMatcherSchema,
|
|
19
|
+
ignoredKeys: sourceMatcherSchema,
|
|
26
20
|
manifest: {
|
|
27
21
|
type: 'object'
|
|
28
22
|
}
|
|
29
|
-
}
|
|
23
|
+
},
|
|
24
|
+
additionalProperties: false
|
|
25
|
+
};
|
|
26
|
+
const noInvalidClassesOptionsSchema = {
|
|
27
|
+
type: 'object',
|
|
28
|
+
properties: {
|
|
29
|
+
disallowUnknownClass: {
|
|
30
|
+
type: 'boolean'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
additionalProperties: false
|
|
30
34
|
};
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
exports.default = masterCSSSettingsSchema;
|
|
37
|
+
exports.masterCSSSettingsSchema = masterCSSSettingsSchema;
|
|
38
|
+
exports.noInvalidClassesOptionsSchema = noInvalidClassesOptionsSchema;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { JSONSchema4 } from '@typescript-eslint/utils/json-schema';
|
|
2
|
-
declare const
|
|
3
|
-
export
|
|
2
|
+
export declare const masterCSSSettingsSchema: JSONSchema4;
|
|
3
|
+
export declare const noInvalidClassesOptionsSchema: JSONSchema4;
|
|
4
|
+
export default masterCSSSettingsSchema;
|
package/dist/settings-schema.mjs
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
1
|
-
const
|
|
1
|
+
const sourceMatcherSchema = {
|
|
2
|
+
type: 'array',
|
|
3
|
+
items: {
|
|
4
|
+
type: 'string',
|
|
5
|
+
minLength: 1
|
|
6
|
+
},
|
|
7
|
+
uniqueItems: true
|
|
8
|
+
};
|
|
9
|
+
const masterCSSSettingsSchema = {
|
|
2
10
|
type: 'object',
|
|
3
11
|
properties: {
|
|
4
|
-
classAttributes:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
classFunctions: {
|
|
11
|
-
type: 'array',
|
|
12
|
-
items: {
|
|
13
|
-
type: 'string'
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
ignoredKeys: {
|
|
17
|
-
type: 'array',
|
|
18
|
-
items: {
|
|
19
|
-
type: 'string',
|
|
20
|
-
minLength: 0
|
|
21
|
-
},
|
|
22
|
-
uniqueItems: true
|
|
23
|
-
},
|
|
12
|
+
classAttributes: sourceMatcherSchema,
|
|
13
|
+
classFunctions: sourceMatcherSchema,
|
|
14
|
+
classDeclarations: sourceMatcherSchema,
|
|
15
|
+
ignoredKeys: sourceMatcherSchema,
|
|
24
16
|
manifest: {
|
|
25
17
|
type: 'object'
|
|
26
18
|
}
|
|
27
|
-
}
|
|
19
|
+
},
|
|
20
|
+
additionalProperties: false
|
|
21
|
+
};
|
|
22
|
+
const noInvalidClassesOptionsSchema = {
|
|
23
|
+
type: 'object',
|
|
24
|
+
properties: {
|
|
25
|
+
disallowUnknownClass: {
|
|
26
|
+
type: 'boolean'
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
additionalProperties: false
|
|
28
30
|
};
|
|
29
31
|
|
|
30
|
-
export {
|
|
32
|
+
export { masterCSSSettingsSchema as default, masterCSSSettingsSchema, noInvalidClassesOptionsSchema };
|
package/dist/settings.cjs
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var cssLint = require('@master/css-lint');
|
|
4
4
|
|
|
5
5
|
const settings = {
|
|
6
|
-
|
|
7
|
-
classFunctions: masterCss.CLASS_FUNCTIONS,
|
|
8
|
-
classDeclarations: masterCss.CLASS_DECLARATIONS,
|
|
9
|
-
ignoredKeys: [
|
|
10
|
-
'compoundVariants',
|
|
11
|
-
'defaultVariants'
|
|
12
|
-
],
|
|
6
|
+
...cssLint.defaultClassLintSettings,
|
|
13
7
|
manifest: undefined
|
|
14
8
|
};
|
|
15
9
|
|
package/dist/settings.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { MasterCSSManifest } from './utils/master-css';
|
|
2
2
|
declare const settings: {
|
|
3
|
+
manifest: any;
|
|
3
4
|
classAttributes: string[];
|
|
4
5
|
classFunctions: string[];
|
|
5
6
|
classDeclarations: string[];
|
|
6
7
|
ignoredKeys: string[];
|
|
7
|
-
manifest: any;
|
|
8
8
|
};
|
|
9
9
|
export default settings;
|
|
10
10
|
export interface Settings {
|
package/dist/settings.mjs
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultClassLintSettings } from '@master/css-lint';
|
|
2
2
|
|
|
3
3
|
const settings = {
|
|
4
|
-
|
|
5
|
-
classFunctions: CLASS_FUNCTIONS,
|
|
6
|
-
classDeclarations: CLASS_DECLARATIONS,
|
|
7
|
-
ignoredKeys: [
|
|
8
|
-
'compoundVariants',
|
|
9
|
-
'defaultVariants'
|
|
10
|
-
],
|
|
4
|
+
...defaultClassLintSettings,
|
|
11
5
|
manifest: undefined
|
|
12
6
|
};
|
|
13
7
|
|
|
@@ -4,7 +4,7 @@ var withVisitClassNode = require('./with-visit-class-node.cjs');
|
|
|
4
4
|
|
|
5
5
|
function defineVisitors({ context, settings }, visitNode) {
|
|
6
6
|
const classAttributeRegex = new RegExp(`^(?:${settings.classAttributes.join('|')})$`);
|
|
7
|
-
const classFunctionsRegex = new RegExp(`^(?:${settings.classFunctions.join('|')})
|
|
7
|
+
const classFunctionsRegex = new RegExp(`^(?:${settings.classFunctions.join('|')})$`);
|
|
8
8
|
const classDeclarationsRegex = new RegExp(`^(?:${settings.classDeclarations.join('|')})$`);
|
|
9
9
|
const visitClassNode = withVisitClassNode(visitNode, context);
|
|
10
10
|
const getStaticName = (node)=>{
|
|
@@ -2,7 +2,7 @@ import withVisitClassNode from './with-visit-class-node.mjs';
|
|
|
2
2
|
|
|
3
3
|
function defineVisitors({ context, settings }, visitNode) {
|
|
4
4
|
const classAttributeRegex = new RegExp(`^(?:${settings.classAttributes.join('|')})$`);
|
|
5
|
-
const classFunctionsRegex = new RegExp(`^(?:${settings.classFunctions.join('|')})
|
|
5
|
+
const classFunctionsRegex = new RegExp(`^(?:${settings.classFunctions.join('|')})$`);
|
|
6
6
|
const classDeclarationsRegex = new RegExp(`^(?:${settings.classDeclarations.join('|')})$`);
|
|
7
7
|
const visitClassNode = withVisitClassNode(visitNode, context);
|
|
8
8
|
const getStaticName = (node)=>{
|