@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.
Files changed (47) hide show
  1. package/README.md +68 -11
  2. package/dist/configs/recommended.cjs +4 -3
  3. package/dist/configs/recommended.mjs +4 -3
  4. package/dist/plugin.cjs +10 -6
  5. package/dist/plugin.mjs +10 -6
  6. package/dist/rules/no-conflicting-classes.cjs +101 -0
  7. package/dist/rules/no-conflicting-classes.d.ts +4 -0
  8. package/dist/rules/no-conflicting-classes.mjs +99 -0
  9. package/dist/rules/no-invalid-classes.cjs +51 -0
  10. package/dist/rules/{class-validation.d.ts → no-invalid-classes.d.ts} +1 -1
  11. package/dist/rules/no-invalid-classes.mjs +49 -0
  12. package/dist/rules/no-unapproved-raw-values.cjs +77 -0
  13. package/dist/rules/no-unapproved-raw-values.d.ts +8 -0
  14. package/dist/rules/no-unapproved-raw-values.mjs +75 -0
  15. package/dist/rules/prefer-canonical-classes.cjs +112 -0
  16. package/dist/rules/prefer-canonical-classes.d.ts +5 -0
  17. package/dist/rules/prefer-canonical-classes.mjs +110 -0
  18. package/dist/rules/{class-order.cjs → sort-classes.cjs} +10 -21
  19. package/dist/rules/{class-order.mjs → sort-classes.mjs} +10 -21
  20. package/dist/settings-schema.cjs +29 -23
  21. package/dist/settings-schema.d.ts +3 -2
  22. package/dist/settings-schema.mjs +25 -23
  23. package/dist/settings.cjs +2 -8
  24. package/dist/settings.d.ts +2 -2
  25. package/dist/settings.mjs +2 -8
  26. package/dist/utils/define-visitors.cjs +1 -1
  27. package/dist/utils/define-visitors.mjs +1 -1
  28. package/dist/utils/master-css.cjs +2 -82
  29. package/dist/utils/master-css.d.ts +0 -16
  30. package/dist/utils/master-css.mjs +1 -75
  31. package/dist/utils/resolve-class-node.cjs +18 -67
  32. package/dist/utils/resolve-class-node.d.ts +15 -7
  33. package/dist/utils/resolve-class-node.mjs +18 -67
  34. package/dist/utils/resolve-context.d.ts +1 -1
  35. package/package.json +1 -1
  36. package/dist/common.cjs +0 -7
  37. package/dist/common.d.ts +0 -2
  38. package/dist/common.mjs +0 -4
  39. package/dist/functions/filter-collision-classes.cjs +0 -29
  40. package/dist/functions/filter-collision-classes.d.ts +0 -2
  41. package/dist/functions/filter-collision-classes.mjs +0 -27
  42. package/dist/rules/class-collision.cjs +0 -76
  43. package/dist/rules/class-collision.d.ts +0 -4
  44. package/dist/rules/class-collision.mjs +0 -74
  45. package/dist/rules/class-validation.cjs +0 -60
  46. package/dist/rules/class-validation.mjs +0 -58
  47. /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 settingsSchema = require('../settings-schema.cjs');
7
- var masterCss = require('../utils/master-css.cjs');
6
+ var cssLint = require('@master/css-lint');
8
7
 
9
- var classOrder = createRule({
10
- name: 'consistent-class-order',
8
+ var sortClasses = createRule({
9
+ name: 'sort-classes',
11
10
  meta: {
12
11
  type: 'layout',
13
12
  fixable: 'code',
14
13
  docs: {
15
- description: 'Enforce a consistent and logical order of classes'
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, classValueRawMap, classValues })=>{
28
+ }, (node, { raw, start, end, nodes, unescape })=>{
32
29
  if (nodes.length <= 1) return;
33
- let orderedClasses = masterCss.sortReadableClasses(classValues, css);
34
- let orderedRaw = nodes.map((eachNode, i)=>{
35
- if (eachNode.type === 'class') {
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 = classOrder;
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 settingsSchema from '../settings-schema.mjs';
5
- import { sortReadableClasses } from '../utils/master-css.mjs';
4
+ import { sortClassList } from '@master/css-lint';
6
5
 
7
- var classOrder = createRule({
8
- name: 'consistent-class-order',
6
+ var sortClasses = createRule({
7
+ name: 'sort-classes',
9
8
  meta: {
10
9
  type: 'layout',
11
10
  fixable: 'code',
12
11
  docs: {
13
- description: 'Enforce a consistent and logical order of classes'
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, classValueRawMap, classValues })=>{
26
+ }, (node, { raw, start, end, nodes, unescape })=>{
30
27
  if (nodes.length <= 1) return;
31
- let orderedClasses = sortReadableClasses(classValues, css);
32
- let orderedRaw = nodes.map((eachNode, i)=>{
33
- if (eachNode.type === 'class') {
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 { classOrder as default };
51
+ export { sortClasses as default };
@@ -1,32 +1,38 @@
1
1
  'use strict';
2
2
 
3
- const settingsSchema = {
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
- type: 'array',
8
- items: {
9
- type: 'string'
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
- module.exports = settingsSchema;
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 settingsSchema: JSONSchema4;
3
- export default settingsSchema;
2
+ export declare const masterCSSSettingsSchema: JSONSchema4;
3
+ export declare const noInvalidClassesOptionsSchema: JSONSchema4;
4
+ export default masterCSSSettingsSchema;
@@ -1,30 +1,32 @@
1
- const settingsSchema = {
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
- type: 'array',
6
- items: {
7
- type: 'string'
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 { settingsSchema as default };
32
+ export { masterCSSSettingsSchema as default, masterCSSSettingsSchema, noInvalidClassesOptionsSchema };
package/dist/settings.cjs CHANGED
@@ -1,15 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var masterCss = require('./utils/master-css.cjs');
3
+ var cssLint = require('@master/css-lint');
4
4
 
5
5
  const settings = {
6
- classAttributes: masterCss.CLASS_ATTRIBUTES,
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
 
@@ -1,10 +1,10 @@
1
- import { type MasterCSSManifest } from './utils/master-css';
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 { CLASS_DECLARATIONS, CLASS_FUNCTIONS, CLASS_ATTRIBUTES } from './utils/master-css.mjs';
1
+ import { defaultClassLintSettings } from '@master/css-lint';
2
2
 
3
3
  const settings = {
4
- classAttributes: CLASS_ATTRIBUTES,
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)=>{