eslint-plugin-better-tailwindcss 3.6.2 → 3.6.3
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/lib/cjs/rules/enforce-consistent-variable-syntax.d.ts +2 -2
- package/lib/cjs/rules/enforce-consistent-variable-syntax.d.ts.map +1 -1
- package/lib/cjs/rules/enforce-consistent-variable-syntax.js +50 -10
- package/lib/cjs/rules/enforce-consistent-variable-syntax.js.map +1 -1
- package/lib/cjs/rules/no-deprecated-classes.d.ts.map +1 -1
- package/lib/cjs/rules/no-deprecated-classes.js +49 -26
- package/lib/cjs/rules/no-deprecated-classes.js.map +1 -1
- package/lib/cjs/utils/lint.js +1 -1
- package/lib/cjs/utils/lint.js.map +1 -1
- package/lib/cjs/utils/utils.js +2 -2
- package/lib/cjs/utils/utils.js.map +1 -1
- package/lib/esm/rules/enforce-consistent-variable-syntax.d.ts +2 -2
- package/lib/esm/rules/enforce-consistent-variable-syntax.d.ts.map +1 -1
- package/lib/esm/rules/enforce-consistent-variable-syntax.js +50 -10
- package/lib/esm/rules/enforce-consistent-variable-syntax.js.map +1 -1
- package/lib/esm/rules/no-deprecated-classes.d.ts.map +1 -1
- package/lib/esm/rules/no-deprecated-classes.js +49 -26
- package/lib/esm/rules/no-deprecated-classes.js.map +1 -1
- package/lib/esm/utils/lint.js +1 -1
- package/lib/esm/utils/lint.js.map +1 -1
- package/lib/esm/utils/utils.js +2 -2
- package/lib/esm/utils/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,12 +2,12 @@ import type { Rule } from "eslint";
|
|
|
2
2
|
import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "../types/rule.js";
|
|
3
3
|
export type Options = [
|
|
4
4
|
Partial<AttributeOption & CalleeOption & TagOption & VariableOption & {
|
|
5
|
-
syntax?: "arbitrary" | "parentheses";
|
|
5
|
+
syntax?: "arbitrary" | "parentheses" | "shorthand" | "variable";
|
|
6
6
|
}>
|
|
7
7
|
];
|
|
8
8
|
export declare const enforceConsistentVariableSyntax: ESLintRule<Options>;
|
|
9
9
|
export declare function getOptions(ctx: Rule.RuleContext): {
|
|
10
|
-
syntax: "arbitrary" | "parentheses";
|
|
10
|
+
syntax: "shorthand" | "arbitrary" | "parentheses" | "variable";
|
|
11
11
|
attributes: any;
|
|
12
12
|
callees: any;
|
|
13
13
|
tags: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;KACjE,CACF;CACF,CAAC;AAaF,eAAO,MAAM,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAgC/D,CAAC;AAuNF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAY/C"}
|
|
@@ -7,10 +7,11 @@ const descriptions_js_1 = require("../options/descriptions.js");
|
|
|
7
7
|
const lint_js_1 = require("../utils/lint.js");
|
|
8
8
|
const options_js_1 = require("../utils/options.js");
|
|
9
9
|
const rule_js_1 = require("../utils/rule.js");
|
|
10
|
+
const version_js_1 = require("../async-utils/version.js");
|
|
10
11
|
const defaultOptions = {
|
|
11
12
|
attributes: default_options_js_1.DEFAULT_ATTRIBUTE_NAMES,
|
|
12
13
|
callees: default_options_js_1.DEFAULT_CALLEE_NAMES,
|
|
13
|
-
syntax: "
|
|
14
|
+
syntax: "shorthand",
|
|
14
15
|
tags: default_options_js_1.DEFAULT_TAG_NAMES,
|
|
15
16
|
variables: default_options_js_1.DEFAULT_VARIABLE_NAMES
|
|
16
17
|
};
|
|
@@ -35,9 +36,9 @@ exports.enforceConsistentVariableSyntax = {
|
|
|
35
36
|
...descriptions_js_1.VARIABLE_SCHEMA,
|
|
36
37
|
...descriptions_js_1.TAG_SCHEMA,
|
|
37
38
|
syntax: {
|
|
38
|
-
default: "
|
|
39
|
-
description: "Preferred syntax for CSS variables. '
|
|
40
|
-
enum: ["arbitrary", "parentheses"],
|
|
39
|
+
default: "shorthand",
|
|
40
|
+
description: "Preferred syntax for CSS variables. 'variable' uses [var(--foo)], 'shorthand' uses (--foo) in Tailwind CSS v4 or [--foo] in Tailwind CSS v3.",
|
|
41
|
+
enum: ["arbitrary", "parentheses", "shorthand", "variable"],
|
|
41
42
|
type: "string"
|
|
42
43
|
}
|
|
43
44
|
},
|
|
@@ -50,11 +51,12 @@ exports.enforceConsistentVariableSyntax = {
|
|
|
50
51
|
};
|
|
51
52
|
function lintLiterals(ctx, literals) {
|
|
52
53
|
const { syntax } = getOptions(ctx);
|
|
54
|
+
const { major } = (0, version_js_1.getTailwindcssVersion)();
|
|
53
55
|
for (const literal of literals) {
|
|
54
56
|
(0, lint_js_1.lintClasses)(ctx, literal, className => {
|
|
55
57
|
for (let i = 0, isInsideVar = false, isInsideBrackets = false, characters = []; i < className.length; i++) {
|
|
56
58
|
characters.push(className[i]);
|
|
57
|
-
if (syntax === "arbitrary") {
|
|
59
|
+
if (syntax === "arbitrary" || syntax === "variable") {
|
|
58
60
|
if (isInsideVar) {
|
|
59
61
|
continue;
|
|
60
62
|
}
|
|
@@ -72,8 +74,21 @@ function lintLiterals(ctx, literals) {
|
|
|
72
74
|
message: `Incorrect variable syntax: "${balancedContent}".`
|
|
73
75
|
};
|
|
74
76
|
}
|
|
77
|
+
if (isBeginningOfArbitraryShorthand(characters)) {
|
|
78
|
+
const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
|
|
79
|
+
const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
|
|
80
|
+
if (!balancedArbitraryContent) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const end = start + balancedArbitraryContent.length + 2;
|
|
84
|
+
const fixedVariable = `${className.slice(0, start)}[var(${balancedArbitraryContent})]${className.slice(end)}`;
|
|
85
|
+
return {
|
|
86
|
+
fix: fixedVariable,
|
|
87
|
+
message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
|
|
88
|
+
};
|
|
89
|
+
}
|
|
75
90
|
}
|
|
76
|
-
if (syntax === "parentheses") {
|
|
91
|
+
if (syntax === "parentheses" || syntax === "shorthand") {
|
|
77
92
|
if (isBeginningOfArbitraryVariable(characters)) {
|
|
78
93
|
if (isInsideBrackets) {
|
|
79
94
|
continue;
|
|
@@ -85,22 +100,47 @@ function lintLiterals(ctx, literals) {
|
|
|
85
100
|
continue;
|
|
86
101
|
}
|
|
87
102
|
const end = start + balancedArbitraryContent.length + 2;
|
|
88
|
-
const fixedVariable =
|
|
103
|
+
const fixedVariable = major >= 4 /* TailwindcssVersion.V4 */
|
|
104
|
+
? `${className.slice(0, start)}(${balancedVariableContent})${className.slice(end)}`
|
|
105
|
+
: `${className.slice(0, start)}[${balancedVariableContent}]${className.slice(end)}`;
|
|
89
106
|
return {
|
|
90
107
|
fix: fixedVariable,
|
|
91
108
|
message: `Incorrect variable syntax: "${balancedArbitraryContent}".`
|
|
92
109
|
};
|
|
93
110
|
}
|
|
111
|
+
if (isBeginningOfArbitraryShorthand(characters)) {
|
|
112
|
+
if (major <= 3 /* TailwindcssVersion.V3 */) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
|
|
116
|
+
const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
|
|
117
|
+
if (!balancedArbitraryContent) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const end = start + balancedArbitraryContent.length + 2;
|
|
121
|
+
const fixedVariable = `${className.slice(0, start)}(${balancedArbitraryContent})${className.slice(end)}`;
|
|
122
|
+
return {
|
|
123
|
+
fix: fixedVariable,
|
|
124
|
+
message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
|
|
125
|
+
};
|
|
126
|
+
}
|
|
94
127
|
}
|
|
95
128
|
}
|
|
96
129
|
});
|
|
97
130
|
}
|
|
98
131
|
}
|
|
99
132
|
function isBeginningOfParenthesizedVariable(characters) {
|
|
100
|
-
return
|
|
133
|
+
return (isBeginningOfArbitrarySyntax(characters, "(--") &&
|
|
134
|
+
!isBeginningOfArbitrarySyntax(characters, "[var(--"));
|
|
135
|
+
}
|
|
136
|
+
function isBeginningOfArbitraryShorthand(characters) {
|
|
137
|
+
return isBeginningOfArbitrarySyntax(characters, "[--");
|
|
101
138
|
}
|
|
102
139
|
function isBeginningOfArbitraryVariable(characters) {
|
|
103
|
-
|
|
140
|
+
return isBeginningOfArbitrarySyntax(characters, "[var(--");
|
|
141
|
+
}
|
|
142
|
+
function isBeginningOfArbitrarySyntax(characters, syntax) {
|
|
143
|
+
const toBe = syntax.split("");
|
|
104
144
|
for (let i = characters.length - 1; i >= 0; i--) {
|
|
105
145
|
if (toBe.length === 0) {
|
|
106
146
|
return true;
|
|
@@ -111,7 +151,7 @@ function isBeginningOfArbitraryVariable(characters) {
|
|
|
111
151
|
return false;
|
|
112
152
|
}
|
|
113
153
|
if (character !== expectedChar) {
|
|
114
|
-
if (
|
|
154
|
+
if (character === "_") {
|
|
115
155
|
continue;
|
|
116
156
|
}
|
|
117
157
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA4BnD,CAAC;AAmGF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;EAE/C"}
|
|
@@ -10,6 +10,7 @@ const lint_js_1 = require("../utils/lint.js");
|
|
|
10
10
|
const options_js_1 = require("../utils/options.js");
|
|
11
11
|
const rule_js_1 = require("../utils/rule.js");
|
|
12
12
|
const utils_js_1 = require("../utils/utils.js");
|
|
13
|
+
const version_js_1 = require("../async-utils/version.js");
|
|
13
14
|
const defaultOptions = {
|
|
14
15
|
attributes: default_options_js_1.DEFAULT_ATTRIBUTE_NAMES,
|
|
15
16
|
callees: default_options_js_1.DEFAULT_CALLEE_NAMES,
|
|
@@ -47,25 +48,42 @@ exports.noDeprecatedClasses = {
|
|
|
47
48
|
}
|
|
48
49
|
};
|
|
49
50
|
const deprecations = [
|
|
50
|
-
[
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
51
|
+
[
|
|
52
|
+
{ major: 4, minor: 0 }, [
|
|
53
|
+
[/^shadow$/, "shadow-sm"],
|
|
54
|
+
[/^inset-shadow$/, "inset-shadow-sm"],
|
|
55
|
+
[/^drop-shadow$/, "drop-shadow-sm"],
|
|
56
|
+
[/^blur$/, "blur-sm"],
|
|
57
|
+
[/^backdrop-blur$/, "backdrop-blur-sm"],
|
|
58
|
+
[/^rounded$/, "rounded-sm"],
|
|
59
|
+
[/^bg-opacity-(.*)$/],
|
|
60
|
+
[/^text-opacity-(.*)$/],
|
|
61
|
+
[/^border-opacity-(.*)$/],
|
|
62
|
+
[/^divide-opacity-(.*)$/],
|
|
63
|
+
[/^ring-opacity-(.*)$/],
|
|
64
|
+
[/^placeholder-opacity-(.*)$/],
|
|
65
|
+
[/^flex-shrink-(.*)$/, "shrink-$1"],
|
|
66
|
+
[/^flex-grow-(.*)$/, "grow-$1"],
|
|
67
|
+
[/^overflow-ellipsis$/, "text-ellipsis"],
|
|
68
|
+
[/^decoration-slice$/, "box-decoration-slice"],
|
|
69
|
+
[/^decoration-clone$/, "box-decoration-clone"]
|
|
70
|
+
]
|
|
71
|
+
], [
|
|
72
|
+
{ major: 4, minor: 1 }, [
|
|
73
|
+
[/^bg-left-top$/, "bg-top-left"],
|
|
74
|
+
[/^bg-left-bottom$/, "bg-bottom-left"],
|
|
75
|
+
[/^bg-right-top$/, "bg-top-right"],
|
|
76
|
+
[/^bg-right-bottom$/, "bg-bottom-right"],
|
|
77
|
+
[/^object-left-top$/, "object-top-left"],
|
|
78
|
+
[/^object-left-bottom$/, "object-bottom-left"],
|
|
79
|
+
[/^object-right-top$/, "object-top-right"],
|
|
80
|
+
[/^object-right-bottom$/, "object-bottom-right"]
|
|
81
|
+
]
|
|
82
|
+
]
|
|
66
83
|
];
|
|
67
84
|
function lintLiterals(ctx, literals) {
|
|
68
85
|
const { tailwindConfig } = getOptions(ctx);
|
|
86
|
+
const { major, minor } = (0, version_js_1.getTailwindcssVersion)();
|
|
69
87
|
for (const literal of literals) {
|
|
70
88
|
const classes = (0, utils_js_1.splitClasses)(literal.content);
|
|
71
89
|
const { dissectedClasses, warnings } = (0, dissect_classes_js_1.getDissectedClasses)({ classes, configPath: tailwindConfig, cwd: ctx.cwd });
|
|
@@ -74,21 +92,26 @@ function lintLiterals(ctx, literals) {
|
|
|
74
92
|
if (!dissectedClass) {
|
|
75
93
|
return;
|
|
76
94
|
}
|
|
77
|
-
for (const [
|
|
78
|
-
|
|
79
|
-
if (!match) {
|
|
95
|
+
for (const [version, deprecation] of deprecations) {
|
|
96
|
+
if (major < version.major || major === version.major && minor < version.minor) {
|
|
80
97
|
continue;
|
|
81
98
|
}
|
|
82
|
-
|
|
99
|
+
for (const [pattern, replacement] of deprecation) {
|
|
100
|
+
const match = dissectedClass.base.match(pattern);
|
|
101
|
+
if (!match) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
if (!replacement) {
|
|
105
|
+
return {
|
|
106
|
+
message: (0, utils_js_1.augmentMessageWithWarnings)(`Class "${className}" is deprecated. Check the tailwindcss documentation for more information: https://tailwindcss.com/docs/upgrade-guide#removed-deprecated-utilities`, DOCUMENTATION_URL, warnings)
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
const fix = (0, class_js_1.buildClass)({ ...dissectedClass, base: (0, utils_js_1.replacePlaceholders)(replacement, match) });
|
|
83
110
|
return {
|
|
84
|
-
|
|
111
|
+
fix,
|
|
112
|
+
message: (0, utils_js_1.augmentMessageWithWarnings)(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
|
|
85
113
|
};
|
|
86
114
|
}
|
|
87
|
-
const fix = (0, class_js_1.buildClass)({ ...dissectedClass, base: (0, utils_js_1.replacePlaceholders)(replacement, match) });
|
|
88
|
-
return {
|
|
89
|
-
fix,
|
|
90
|
-
message: (0, utils_js_1.augmentMessageWithWarnings)(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
|
|
91
|
-
};
|
|
92
115
|
}
|
|
93
116
|
});
|
|
94
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/utils/lint.js
CHANGED
|
@@ -29,7 +29,7 @@ function lintClasses(ctx, literal, report) {
|
|
|
29
29
|
data: {
|
|
30
30
|
className
|
|
31
31
|
},
|
|
32
|
-
loc: (0, utils_js_1.getExactClassLocation)(literal,
|
|
32
|
+
loc: (0, utils_js_1.getExactClassLocation)(literal, classStart, className),
|
|
33
33
|
message: typeof result === "object" && result.message
|
|
34
34
|
? result.message
|
|
35
35
|
: "Expected {{ before }} to be {{ after }}.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":";;AAOA,kCA2DC;AAlED,gEAA0G;AAO1G,SAAgB,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,IAAA,gCAAqB,EAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":";;AAOA,kCA2DC;AAlED,gEAA0G;AAO1G,SAAgB,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAA,2BAAgB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,IAAA,gCAAqB,EAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;YAC1D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
|
package/lib/cjs/utils/utils.js
CHANGED
|
@@ -80,12 +80,12 @@ function isClassSticky(literal, classIndex) {
|
|
|
80
80
|
!endsWithWhitespace && classIndex === classChunks.length - 1 && !!literal.openingBraces);
|
|
81
81
|
}
|
|
82
82
|
function getExactClassLocation(literal, stringIndex, className) {
|
|
83
|
-
const linesUpToStartIndex = literal.content.slice(0, stringIndex
|
|
83
|
+
const linesUpToStartIndex = literal.content.slice(0, stringIndex).split(/\r?\n/);
|
|
84
84
|
const isOnFirstLine = linesUpToStartIndex.length === 1;
|
|
85
85
|
const containingLine = linesUpToStartIndex.at(-1);
|
|
86
86
|
const line = literal.loc.start.line + linesUpToStartIndex.length - 1;
|
|
87
87
|
const column = (isOnFirstLine
|
|
88
|
-
? literal.loc.start.column
|
|
88
|
+
? literal.loc.start.column + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0)
|
|
89
89
|
: 0) + (containingLine?.length ?? 0);
|
|
90
90
|
return {
|
|
91
91
|
end: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":";;AAGA,sCAKC;AAED,8BAQC;AAED,gCAKC;AAED,oCAQC;AAED,0BAMC;AAQD,gEAgBC;AAED,4CAEC;AAED,wCAEC;AAED,wCAEC;AAED,sCAaC;AAED,sDAsBC;AAED,kCAKC;AAED,kDAKC;AAED,kDAQC;AAMD,0DAQC;AAzJD,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AACnD,CAAC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhC,OAAO;QACL,YAAY,EAAE,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC7G,YAAY,EAAE,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAC9G,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,GAAW,EAAE,MAAkB,EAAE,MAAmB;IAC7E,OAAO,GAAG,CAAC,SAAS,CAClB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,EAC1E,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,CACxF,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAC,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,OAAO;SACX,IAAI,EAAE;SACN,KAAK,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe;IACrC,OAAO,OAAO;SACX,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;SACpB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAQD,SAAgB,0BAA0B,CAAC,OAAe,EAAE,gBAAwB,EAAE,QAAkC;IACtH,MAAM,YAAY,GAAG,QAAQ;QAC3B,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC;SAC3B,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAE3D,IAAG,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAC,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO;QACL,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;YAC/C,eAAe,KAAK,cAAc,MAAM,0BAA0B;YAClE,0BAA0B,GAAG,EAAE;SAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACb,OAAO;KACR,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB,EAAE,UAAkB;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEhC,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACvF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/G,OAAO,CACL,CAAC,oBAAoB,IAAI,UAAU,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa;QACpE,CAAC,kBAAkB,IAAI,UAAU,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CACxF,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CAAC,OAAgB,EAAE,WAAmB,EAAE,SAAiB;IAC5F,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAElD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,CACb,aAAa;QACX,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC;QACvG,CAAC,CAAC,CAAC,CACN,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAElC,OAAO;QACL,GAAG,EAAE;YACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM;YACjC,IAAI;SACL;QACD,KAAK,EAAE;YACL,MAAM;YACN,IAAI;SACL;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,WAAW,CAAC,OAAe,EAAE,IAAwB;IACnE,IAAG,CAAC,IAAI,EAAC,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACtC,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAAgB,EAAE,KAAkC;IACtF,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,mBAAmB,CAAC,QAAmB;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QACnC,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAC7B,OAAO,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO;gBAC9B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,KAAK,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAMD,SAAgB,uBAAuB,CAAC,IAAa;IACnD,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,QAAQ,IAAI,IAAI;QAChB,IAAI,CAAC,MAAM,KAAK,IAAI;QACpB,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAChC,CAAC;AACJ,CAAC"}
|
|
@@ -2,12 +2,12 @@ import type { Rule } from "eslint";
|
|
|
2
2
|
import type { AttributeOption, CalleeOption, ESLintRule, TagOption, VariableOption } from "../types/rule.js";
|
|
3
3
|
export type Options = [
|
|
4
4
|
Partial<AttributeOption & CalleeOption & TagOption & VariableOption & {
|
|
5
|
-
syntax?: "arbitrary" | "parentheses";
|
|
5
|
+
syntax?: "arbitrary" | "parentheses" | "shorthand" | "variable";
|
|
6
6
|
}>
|
|
7
7
|
];
|
|
8
8
|
export declare const enforceConsistentVariableSyntax: ESLintRule<Options>;
|
|
9
9
|
export declare function getOptions(ctx: Rule.RuleContext): {
|
|
10
|
-
syntax: "arbitrary" | "parentheses";
|
|
10
|
+
syntax: "shorthand" | "arbitrary" | "parentheses" | "variable";
|
|
11
11
|
attributes: any;
|
|
12
12
|
callees: any;
|
|
13
13
|
tags: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enforce-consistent-variable-syntax.d.ts","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,MAAM,CAAC,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;KACjE,CACF;CACF,CAAC;AAaF,eAAO,MAAM,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAgC/D,CAAC;AAuNF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAY/C"}
|
|
@@ -3,10 +3,11 @@ import { ATTRIBUTE_SCHEMA, CALLEE_SCHEMA, TAG_SCHEMA, VARIABLE_SCHEMA } from "..
|
|
|
3
3
|
import { lintClasses } from "../utils/lint.js";
|
|
4
4
|
import { getCommonOptions } from "../utils/options.js";
|
|
5
5
|
import { createRuleListener } from "../utils/rule.js";
|
|
6
|
+
import { getTailwindcssVersion, TailwindcssVersion } from "../async-utils/version.js";
|
|
6
7
|
const defaultOptions = {
|
|
7
8
|
attributes: DEFAULT_ATTRIBUTE_NAMES,
|
|
8
9
|
callees: DEFAULT_CALLEE_NAMES,
|
|
9
|
-
syntax: "
|
|
10
|
+
syntax: "shorthand",
|
|
10
11
|
tags: DEFAULT_TAG_NAMES,
|
|
11
12
|
variables: DEFAULT_VARIABLE_NAMES
|
|
12
13
|
};
|
|
@@ -31,9 +32,9 @@ export const enforceConsistentVariableSyntax = {
|
|
|
31
32
|
...VARIABLE_SCHEMA,
|
|
32
33
|
...TAG_SCHEMA,
|
|
33
34
|
syntax: {
|
|
34
|
-
default: "
|
|
35
|
-
description: "Preferred syntax for CSS variables. '
|
|
36
|
-
enum: ["arbitrary", "parentheses"],
|
|
35
|
+
default: "shorthand",
|
|
36
|
+
description: "Preferred syntax for CSS variables. 'variable' uses [var(--foo)], 'shorthand' uses (--foo) in Tailwind CSS v4 or [--foo] in Tailwind CSS v3.",
|
|
37
|
+
enum: ["arbitrary", "parentheses", "shorthand", "variable"],
|
|
37
38
|
type: "string"
|
|
38
39
|
}
|
|
39
40
|
},
|
|
@@ -46,11 +47,12 @@ export const enforceConsistentVariableSyntax = {
|
|
|
46
47
|
};
|
|
47
48
|
function lintLiterals(ctx, literals) {
|
|
48
49
|
const { syntax } = getOptions(ctx);
|
|
50
|
+
const { major } = getTailwindcssVersion();
|
|
49
51
|
for (const literal of literals) {
|
|
50
52
|
lintClasses(ctx, literal, className => {
|
|
51
53
|
for (let i = 0, isInsideVar = false, isInsideBrackets = false, characters = []; i < className.length; i++) {
|
|
52
54
|
characters.push(className[i]);
|
|
53
|
-
if (syntax === "arbitrary") {
|
|
55
|
+
if (syntax === "arbitrary" || syntax === "variable") {
|
|
54
56
|
if (isInsideVar) {
|
|
55
57
|
continue;
|
|
56
58
|
}
|
|
@@ -68,8 +70,21 @@ function lintLiterals(ctx, literals) {
|
|
|
68
70
|
message: `Incorrect variable syntax: "${balancedContent}".`
|
|
69
71
|
};
|
|
70
72
|
}
|
|
73
|
+
if (isBeginningOfArbitraryShorthand(characters)) {
|
|
74
|
+
const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
|
|
75
|
+
const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
|
|
76
|
+
if (!balancedArbitraryContent) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const end = start + balancedArbitraryContent.length + 2;
|
|
80
|
+
const fixedVariable = `${className.slice(0, start)}[var(${balancedArbitraryContent})]${className.slice(end)}`;
|
|
81
|
+
return {
|
|
82
|
+
fix: fixedVariable,
|
|
83
|
+
message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
|
|
84
|
+
};
|
|
85
|
+
}
|
|
71
86
|
}
|
|
72
|
-
if (syntax === "parentheses") {
|
|
87
|
+
if (syntax === "parentheses" || syntax === "shorthand") {
|
|
73
88
|
if (isBeginningOfArbitraryVariable(characters)) {
|
|
74
89
|
if (isInsideBrackets) {
|
|
75
90
|
continue;
|
|
@@ -81,22 +96,47 @@ function lintLiterals(ctx, literals) {
|
|
|
81
96
|
continue;
|
|
82
97
|
}
|
|
83
98
|
const end = start + balancedArbitraryContent.length + 2;
|
|
84
|
-
const fixedVariable =
|
|
99
|
+
const fixedVariable = major >= TailwindcssVersion.V4
|
|
100
|
+
? `${className.slice(0, start)}(${balancedVariableContent})${className.slice(end)}`
|
|
101
|
+
: `${className.slice(0, start)}[${balancedVariableContent}]${className.slice(end)}`;
|
|
85
102
|
return {
|
|
86
103
|
fix: fixedVariable,
|
|
87
104
|
message: `Incorrect variable syntax: "${balancedArbitraryContent}".`
|
|
88
105
|
};
|
|
89
106
|
}
|
|
107
|
+
if (isBeginningOfArbitraryShorthand(characters)) {
|
|
108
|
+
if (major <= TailwindcssVersion.V3) {
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const start = i + 1 - (findOpeningBracketOffset(characters) ?? 0);
|
|
112
|
+
const [balancedArbitraryContent] = extractBalanced(className.slice(start), "[", "]");
|
|
113
|
+
if (!balancedArbitraryContent) {
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
const end = start + balancedArbitraryContent.length + 2;
|
|
117
|
+
const fixedVariable = `${className.slice(0, start)}(${balancedArbitraryContent})${className.slice(end)}`;
|
|
118
|
+
return {
|
|
119
|
+
fix: fixedVariable,
|
|
120
|
+
message: `Incorrect variable syntax: "[${balancedArbitraryContent}]".`
|
|
121
|
+
};
|
|
122
|
+
}
|
|
90
123
|
}
|
|
91
124
|
}
|
|
92
125
|
});
|
|
93
126
|
}
|
|
94
127
|
}
|
|
95
128
|
function isBeginningOfParenthesizedVariable(characters) {
|
|
96
|
-
return
|
|
129
|
+
return (isBeginningOfArbitrarySyntax(characters, "(--") &&
|
|
130
|
+
!isBeginningOfArbitrarySyntax(characters, "[var(--"));
|
|
131
|
+
}
|
|
132
|
+
function isBeginningOfArbitraryShorthand(characters) {
|
|
133
|
+
return isBeginningOfArbitrarySyntax(characters, "[--");
|
|
97
134
|
}
|
|
98
135
|
function isBeginningOfArbitraryVariable(characters) {
|
|
99
|
-
|
|
136
|
+
return isBeginningOfArbitrarySyntax(characters, "[var(--");
|
|
137
|
+
}
|
|
138
|
+
function isBeginningOfArbitrarySyntax(characters, syntax) {
|
|
139
|
+
const toBe = syntax.split("");
|
|
100
140
|
for (let i = characters.length - 1; i >= 0; i--) {
|
|
101
141
|
if (toBe.length === 0) {
|
|
102
142
|
return true;
|
|
@@ -107,7 +147,7 @@ function isBeginningOfArbitraryVariable(characters) {
|
|
|
107
147
|
return false;
|
|
108
148
|
}
|
|
109
149
|
if (character !== expectedChar) {
|
|
110
|
-
if (
|
|
150
|
+
if (character === "_") {
|
|
111
151
|
continue;
|
|
112
152
|
}
|
|
113
153
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,eAAe,EAChB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"enforce-consistent-variable-syntax.js","sourceRoot":"","sources":["../../../src/rules/enforce-consistent-variable-syntax.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"no-deprecated-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CACL,eAAe,GACf,YAAY,GACZ,SAAS,GACT,cAAc,GACd;QACE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA4BnD,CAAC;AAmGF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;EAE/C"}
|
|
@@ -6,6 +6,7 @@ import { lintClasses } from "../utils/lint.js";
|
|
|
6
6
|
import { getCommonOptions } from "../utils/options.js";
|
|
7
7
|
import { createRuleListener } from "../utils/rule.js";
|
|
8
8
|
import { augmentMessageWithWarnings, replacePlaceholders, splitClasses } from "../utils/utils.js";
|
|
9
|
+
import { getTailwindcssVersion } from "../async-utils/version.js";
|
|
9
10
|
const defaultOptions = {
|
|
10
11
|
attributes: DEFAULT_ATTRIBUTE_NAMES,
|
|
11
12
|
callees: DEFAULT_CALLEE_NAMES,
|
|
@@ -43,25 +44,42 @@ export const noDeprecatedClasses = {
|
|
|
43
44
|
}
|
|
44
45
|
};
|
|
45
46
|
const deprecations = [
|
|
46
|
-
[
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
47
|
+
[
|
|
48
|
+
{ major: 4, minor: 0 }, [
|
|
49
|
+
[/^shadow$/, "shadow-sm"],
|
|
50
|
+
[/^inset-shadow$/, "inset-shadow-sm"],
|
|
51
|
+
[/^drop-shadow$/, "drop-shadow-sm"],
|
|
52
|
+
[/^blur$/, "blur-sm"],
|
|
53
|
+
[/^backdrop-blur$/, "backdrop-blur-sm"],
|
|
54
|
+
[/^rounded$/, "rounded-sm"],
|
|
55
|
+
[/^bg-opacity-(.*)$/],
|
|
56
|
+
[/^text-opacity-(.*)$/],
|
|
57
|
+
[/^border-opacity-(.*)$/],
|
|
58
|
+
[/^divide-opacity-(.*)$/],
|
|
59
|
+
[/^ring-opacity-(.*)$/],
|
|
60
|
+
[/^placeholder-opacity-(.*)$/],
|
|
61
|
+
[/^flex-shrink-(.*)$/, "shrink-$1"],
|
|
62
|
+
[/^flex-grow-(.*)$/, "grow-$1"],
|
|
63
|
+
[/^overflow-ellipsis$/, "text-ellipsis"],
|
|
64
|
+
[/^decoration-slice$/, "box-decoration-slice"],
|
|
65
|
+
[/^decoration-clone$/, "box-decoration-clone"]
|
|
66
|
+
]
|
|
67
|
+
], [
|
|
68
|
+
{ major: 4, minor: 1 }, [
|
|
69
|
+
[/^bg-left-top$/, "bg-top-left"],
|
|
70
|
+
[/^bg-left-bottom$/, "bg-bottom-left"],
|
|
71
|
+
[/^bg-right-top$/, "bg-top-right"],
|
|
72
|
+
[/^bg-right-bottom$/, "bg-bottom-right"],
|
|
73
|
+
[/^object-left-top$/, "object-top-left"],
|
|
74
|
+
[/^object-left-bottom$/, "object-bottom-left"],
|
|
75
|
+
[/^object-right-top$/, "object-top-right"],
|
|
76
|
+
[/^object-right-bottom$/, "object-bottom-right"]
|
|
77
|
+
]
|
|
78
|
+
]
|
|
62
79
|
];
|
|
63
80
|
function lintLiterals(ctx, literals) {
|
|
64
81
|
const { tailwindConfig } = getOptions(ctx);
|
|
82
|
+
const { major, minor } = getTailwindcssVersion();
|
|
65
83
|
for (const literal of literals) {
|
|
66
84
|
const classes = splitClasses(literal.content);
|
|
67
85
|
const { dissectedClasses, warnings } = getDissectedClasses({ classes, configPath: tailwindConfig, cwd: ctx.cwd });
|
|
@@ -70,21 +88,26 @@ function lintLiterals(ctx, literals) {
|
|
|
70
88
|
if (!dissectedClass) {
|
|
71
89
|
return;
|
|
72
90
|
}
|
|
73
|
-
for (const [
|
|
74
|
-
|
|
75
|
-
if (!match) {
|
|
91
|
+
for (const [version, deprecation] of deprecations) {
|
|
92
|
+
if (major < version.major || major === version.major && minor < version.minor) {
|
|
76
93
|
continue;
|
|
77
94
|
}
|
|
78
|
-
|
|
95
|
+
for (const [pattern, replacement] of deprecation) {
|
|
96
|
+
const match = dissectedClass.base.match(pattern);
|
|
97
|
+
if (!match) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (!replacement) {
|
|
101
|
+
return {
|
|
102
|
+
message: augmentMessageWithWarnings(`Class "${className}" is deprecated. Check the tailwindcss documentation for more information: https://tailwindcss.com/docs/upgrade-guide#removed-deprecated-utilities`, DOCUMENTATION_URL, warnings)
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
const fix = buildClass({ ...dissectedClass, base: replacePlaceholders(replacement, match) });
|
|
79
106
|
return {
|
|
80
|
-
|
|
107
|
+
fix,
|
|
108
|
+
message: augmentMessageWithWarnings(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
|
|
81
109
|
};
|
|
82
110
|
}
|
|
83
|
-
const fix = buildClass({ ...dissectedClass, base: replacePlaceholders(replacement, match) });
|
|
84
|
-
return {
|
|
85
|
-
fix,
|
|
86
|
-
message: augmentMessageWithWarnings(`Deprecated class detected. Replace "${className}" with ${fix}.`, DOCUMENTATION_URL, warnings)
|
|
87
|
-
};
|
|
88
111
|
}
|
|
89
112
|
});
|
|
90
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,eAAe,EAChB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"no-deprecated-classes.js","sourceRoot":"","sources":["../../../src/rules/no-deprecated-classes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,eAAe,EAChB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAClH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AA4B5E,MAAM,cAAc,GAAG;IACrB,UAAU,EAAE,uBAAuB;IACnC,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,sBAAsB;CACJ,CAAC;AAEhC,MAAM,iBAAiB,GAAG,2GAA2G,CAAC;AAEtI,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,IAAI,EAAE,uBAAgC;IACtC,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;QACrE,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,WAAW,EAAE,sDAAsD;gBACnE,WAAW,EAAE,KAAK;gBAClB,GAAG,EAAE,iBAAiB;aACvB;YACD,OAAO,EAAE,MAAM;YACf,MAAM,EAAE;gBACN;oBACE,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,GAAG,aAAa;wBAChB,GAAG,gBAAgB;wBACnB,GAAG,eAAe;wBAClB,GAAG,UAAU;wBACb,GAAG,iBAAiB;wBACpB,GAAG,sBAAsB;qBAC1B;oBACD,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB;QACE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACtB,CAAC,UAAU,EAAE,WAAW,CAAC;YACzB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;YACrC,CAAC,eAAe,EAAE,gBAAgB,CAAC;YACnC,CAAC,QAAQ,EAAE,SAAS,CAAC;YACrB,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YACvC,CAAC,WAAW,EAAE,YAAY,CAAC;YAE3B,CAAC,mBAAmB,CAAC;YACrB,CAAC,qBAAqB,CAAC;YACvB,CAAC,uBAAuB,CAAC;YACzB,CAAC,uBAAuB,CAAC;YACzB,CAAC,qBAAqB,CAAC;YACvB,CAAC,4BAA4B,CAAC;YAE9B,CAAC,oBAAoB,EAAE,WAAW,CAAC;YACnC,CAAC,kBAAkB,EAAE,SAAS,CAAC;YAE/B,CAAC,qBAAqB,EAAE,eAAe,CAAC;YAExC,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;YAC9C,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;SAC/C;KACF,EAAE;QACD,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YACtB,CAAC,eAAe,EAAE,aAAa,CAAC;YAChC,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;YACtC,CAAC,gBAAgB,EAAE,cAAc,CAAC;YAClC,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;YACxC,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;YACxC,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;YAC9C,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;YAC1C,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;SACjD;KACF;CACkF,CAAC;AAEtF,SAAS,YAAY,CAAC,GAAqB,EAAE,QAAmB;IAE9D,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAEjD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAC,CAAC;QAE7B,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE9C,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAElH,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;YACpC,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YAEvG,IAAG,CAAC,cAAc,EAAC,CAAC;gBAClB,OAAO;YACT,CAAC;YAED,KAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,YAAY,EAAC,CAAC;gBAChD,IAAG,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAC,CAAC;oBAC5E,SAAS;gBACX,CAAC;gBAED,KAAI,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,WAAW,EAAC,CAAC;oBAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAEjD,IAAG,CAAC,KAAK,EAAC,CAAC;wBACT,SAAS;oBACX,CAAC;oBAED,IAAG,CAAC,WAAW,EAAC,CAAC;wBACf,OAAO;4BACL,OAAO,EAAE,0BAA0B,CACjC,UAAU,SAAS,oJAAoJ,EACvK,iBAAiB,EACjB,QAAQ,CACT;yBACF,CAAC;oBACJ,CAAC;oBAED,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,GAAG,cAAc,EAAE,IAAI,EAAE,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;oBAE7F,OAAO;wBACL,GAAG;wBACH,OAAO,EAAE,0BAA0B,CACjC,uCAAuC,SAAS,UAAU,GAAG,GAAG,EAChE,iBAAiB,EACjB,QAAQ,CACT;qBACF,CAAC;gBAEJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAqB;IAC9C,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC"}
|
package/lib/esm/utils/lint.js
CHANGED
|
@@ -26,7 +26,7 @@ export function lintClasses(ctx, literal, report) {
|
|
|
26
26
|
data: {
|
|
27
27
|
className
|
|
28
28
|
},
|
|
29
|
-
loc: getExactClassLocation(literal,
|
|
29
|
+
loc: getExactClassLocation(literal, classStart, className),
|
|
30
30
|
message: typeof result === "object" && result.message
|
|
31
31
|
? result.message
|
|
32
32
|
: "Expected {{ before }} to be {{ after }}.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAO1G,MAAM,UAAU,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/utils/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAO1G,MAAM,UAAU,WAAW,CAAC,GAAqB,EAAE,OAAgB,EAAE,MAAwH;IAE3L,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE/B,KAAI,IAAI,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,EAAC,CAAC;QAEtF,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE1C,IAAG,oBAAoB,EAAC,CAAC;YACvB,WAAW,IAAI,gBAAgB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACrD,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,CAAC;QAE/B,WAAW,IAAI,SAAS,CAAC,MAAM,CAAC;QAEhC,IAAG,CAAC,oBAAoB,EAAC,CAAC;YACxB,WAAW,IAAI,gBAAgB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAG,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS,EAAC,CAAC;YACnE,SAAS;QACX,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAErC,IAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAC,CAAC;YACzD,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,MAAM,CAAC;YACT,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC;YAC1D,OAAO,EAAE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,0CAA0C;YAC9C,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS;gBACzD;oBACE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAClC;wBACE,YAAY,GAAG,UAAU,GAAG,CAAC;wBAC7B,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;qBACjD,EACD,MAAM,CAAC,GAAI,CACZ;iBACF;SACF,CAAC,CAAC;IAEL,CAAC;AAEH,CAAC"}
|
package/lib/esm/utils/utils.js
CHANGED
|
@@ -63,12 +63,12 @@ export function isClassSticky(literal, classIndex) {
|
|
|
63
63
|
!endsWithWhitespace && classIndex === classChunks.length - 1 && !!literal.openingBraces);
|
|
64
64
|
}
|
|
65
65
|
export function getExactClassLocation(literal, stringIndex, className) {
|
|
66
|
-
const linesUpToStartIndex = literal.content.slice(0, stringIndex
|
|
66
|
+
const linesUpToStartIndex = literal.content.slice(0, stringIndex).split(/\r?\n/);
|
|
67
67
|
const isOnFirstLine = linesUpToStartIndex.length === 1;
|
|
68
68
|
const containingLine = linesUpToStartIndex.at(-1);
|
|
69
69
|
const line = literal.loc.start.line + linesUpToStartIndex.length - 1;
|
|
70
70
|
const column = (isOnFirstLine
|
|
71
|
-
? literal.loc.start.column
|
|
71
|
+
? literal.loc.start.column + (literal.openingQuote?.length ?? 0) + (literal.closingBraces?.length ?? 0)
|
|
72
72
|
: 0) + (containingLine?.length ?? 0);
|
|
73
73
|
return {
|
|
74
74
|
end: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED