eslint-plugin-better-tailwindcss 3.2.1 → 3.3.0

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.
@@ -2,12 +2,18 @@ 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
- restrict?: string[];
5
+ restrict?: {
6
+ pattern: string;
7
+ message?: string;
8
+ }[] | string[];
6
9
  }>
7
10
  ];
8
11
  export declare const noRestrictedClasses: ESLintRule<Options>;
9
12
  export declare function getOptions(ctx: Rule.RuleContext): {
10
- restrict: string[];
13
+ restrict: string[] | {
14
+ pattern: string;
15
+ message?: string;
16
+ }[];
11
17
  attributes: any;
12
18
  callees: any;
13
19
  tags: any;
@@ -1 +1 @@
1
- {"version":3,"file":"no-restricted-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"AAgBA,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,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA+BnD,CAAC;AA6BF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAa/C"}
1
+ {"version":3,"file":"no-restricted-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"AAgBA,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,QAAQ,CAAC,EACL;YACA,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,EAAE,GACD,MAAM,EAAE,CAAC;KACd,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CAmDnD,CAAC;AAuCF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;iBA5G7B,MAAM;kBACL,MAAM;;;;;;;EAwHzB"}
@@ -35,7 +35,27 @@ exports.noRestrictedClasses = {
35
35
  ...descriptions_js_1.TAG_SCHEMA,
36
36
  restrict: {
37
37
  items: {
38
- type: "string"
38
+ anyOf: [
39
+ {
40
+ additionalProperties: false,
41
+ properties: {
42
+ message: {
43
+ default: undefined,
44
+ description: "The message to report when a class is restricted.",
45
+ type: "string"
46
+ },
47
+ pattern: {
48
+ description: "The regex pattern to match restricted classes.",
49
+ type: "string"
50
+ }
51
+ },
52
+ required: ["pattern"],
53
+ type: "object"
54
+ },
55
+ {
56
+ type: "string"
57
+ }
58
+ ]
39
59
  },
40
60
  type: "array"
41
61
  }
@@ -52,17 +72,24 @@ function lintLiterals(ctx, literals) {
52
72
  for (const literal of literals) {
53
73
  const classes = literal.content;
54
74
  const classNames = (0, utils_js_1.splitClasses)(classes);
55
- const restrict = classNames.filter(className => {
56
- return restrictions.some(restriction => className.match(restriction));
57
- });
58
- for (const restrictedClass of restrict) {
59
- ctx.report({
60
- data: {
61
- restrictedClass
62
- },
63
- loc: (0, utils_js_1.getExactClassLocation)(literal, restrictedClass),
64
- message: "Restricted class: \"{{ restrictedClass }}\"."
65
- });
75
+ for (const className of classNames) {
76
+ for (const restriction of restrictions) {
77
+ const pattern = typeof restriction === "string" ? restriction : restriction.pattern;
78
+ const message = typeof restriction === "string" ? undefined : restriction.message;
79
+ const matches = className.match(pattern);
80
+ if (!matches) {
81
+ continue;
82
+ }
83
+ ctx.report({
84
+ data: {
85
+ className
86
+ },
87
+ loc: (0, utils_js_1.getExactClassLocation)(literal, className),
88
+ message: message
89
+ ? (0, utils_js_1.replacePlaceholders)(message, matches)
90
+ : "Restricted class: \"{{ className }}\"."
91
+ });
92
+ }
66
93
  }
67
94
  }
68
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-restricted-classes.js","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":";;;AA8GA,gCAaC;AA3HD,sFAKuD;AACvD,gFAKoD;AACpD,oEAAuE;AACvE,8DAAsE;AACtE,gEAAwF;AA0BxF,MAAM,cAAc,GAAG;IACrB,UAAU,EAAE,4CAAuB;IACnC,OAAO,EAAE,yCAAoB;IAC7B,QAAQ,EAAE,EAAE;IACZ,IAAI,EAAE,sCAAiB;IACvB,SAAS,EAAE,2CAAsB;CACJ,CAAC;AAEhC,MAAM,iBAAiB,GAAG,2GAA2G,CAAC;AAEzH,QAAA,mBAAmB,GAAwB;IACtD,IAAI,EAAE,uBAAgC;IACtC,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,IAAA,4BAAkB,EAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC;QACrE,IAAI,EAAE;YACJ,IAAI,EAAE;gBACJ,WAAW,EAAE,8BAA8B;gBAC3C,WAAW,EAAE,KAAK;gBAClB,GAAG,EAAE,iBAAiB;aACvB;YACD,MAAM,EAAE;gBACN;oBACE,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,GAAG,+BAAa;wBAChB,GAAG,kCAAgB;wBACnB,GAAG,iCAAe;wBAClB,GAAG,4BAAU;wBACb,QAAQ,EAAE;4BACR,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;6BACf;4BACD,IAAI,EAAE,OAAO;yBACd;qBACF;oBACD,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC;AAGF,SAAS,YAAY,CAAC,GAAqB,EAAE,QAAmB;IAE9D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEnD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,UAAU,GAAG,IAAA,uBAAY,EAAC,OAAO,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC7C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,KAAI,MAAM,eAAe,IAAI,QAAQ,EAAC,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC;gBACT,IAAI,EAAE;oBACJ,eAAe;iBAChB;gBACD,GAAG,EAAE,IAAA,gCAAqB,EAAC,OAAO,EAAE,eAAe,CAAC;gBACpD,OAAO,EAAE,8CAA8C;aACxD,CAAC,CAAC;QACL,CAAC;IAEH,CAAC;AAEH,CAAC;AAED,SAAgB,UAAU,CAAC,GAAqB;IAE9C,MAAM,OAAO,GAAe,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,MAAM,MAAM,GAAG,IAAA,6BAAgB,EAAC,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC;IAE7D,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;KACT,CAAC;AAEJ,CAAC"}
1
+ {"version":3,"file":"no-restricted-classes.js","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare function getQuotes(raw: string): QuoteMeta;
7
7
  export declare function getContent(raw: string, quotes?: QuoteMeta, braces?: BracesMeta): string;
8
8
  export declare function splitClasses(classes: string): string[];
9
9
  export declare function display(classes: string): string;
10
+ export declare function replacePlaceholders(template: string, match: RegExpMatchArray): string;
10
11
  export interface Warning<Options extends Record<string, any> = Record<string, any>> {
11
12
  option: keyof Options;
12
13
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAQhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,UAK9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChF,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,UAgBvH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAe;;;;;;;;;EAwC9H;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAQlE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,qBAAqB,CAQpF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAQhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,UAK9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAKrF;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChF,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,UAgBvH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAe;;;;;;;;;EAwC9H;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAQlE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,qBAAqB,CAQpF"}
@@ -5,6 +5,7 @@ exports.getQuotes = getQuotes;
5
5
  exports.getContent = getContent;
6
6
  exports.splitClasses = splitClasses;
7
7
  exports.display = display;
8
+ exports.replacePlaceholders = replacePlaceholders;
8
9
  exports.augmentMessageWithWarnings = augmentMessageWithWarnings;
9
10
  exports.splitWhitespaces = splitWhitespaces;
10
11
  exports.getIndentation = getIndentation;
@@ -44,6 +45,12 @@ function display(classes) {
44
45
  .replaceAll("\r", "↩\r")
45
46
  .replaceAll("\t", "→");
46
47
  }
48
+ function replacePlaceholders(template, match) {
49
+ return template.replace(/\$(\d+)/g, (_, groupIndex) => {
50
+ const index = Number(groupIndex);
51
+ return match[index] ?? "";
52
+ });
53
+ }
47
54
  function augmentMessageWithWarnings(message, documentationUrl, warnings) {
48
55
  const ruleWarnings = warnings
49
56
  ?.filter(warning => warning)
@@ -1 +1 @@
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,sDAwCC;AAED,kCAKC;AAED,kDAQC;AAMD,0DAQC;AArJD,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,qBAAqB,CAAC,OAAgB,EAAE,SAAiB,EAAE,UAAmB,KAAK,EAAE,YAAqB,KAAK;IAC7H,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,EAAE,GAAG,CAAC;QACtC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,YAAY,aAAa,EAAE,GAAG,CAAC,CAAC;IAE7D,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzD,IAAG,KAAK,EAAE,KAAK,KAAK,SAAS,EAAC,CAAC;QAC7B,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,YAAY,GAAG,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/E,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;QAChE,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,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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,18 @@ 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
- restrict?: string[];
5
+ restrict?: {
6
+ pattern: string;
7
+ message?: string;
8
+ }[] | string[];
6
9
  }>
7
10
  ];
8
11
  export declare const noRestrictedClasses: ESLintRule<Options>;
9
12
  export declare function getOptions(ctx: Rule.RuleContext): {
10
- restrict: string[];
13
+ restrict: string[] | {
14
+ pattern: string;
15
+ message?: string;
16
+ }[];
11
17
  attributes: any;
12
18
  callees: any;
13
19
  tags: any;
@@ -1 +1 @@
1
- {"version":3,"file":"no-restricted-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"AAgBA,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,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CA+BnD,CAAC;AA6BF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;;;;;;EAa/C"}
1
+ {"version":3,"file":"no-restricted-classes.d.ts","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"AAgBA,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,QAAQ,CAAC,EACL;YACA,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,EAAE,GACD,MAAM,EAAE,CAAC;KACd,CACF;CACF,CAAC;AAYF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,OAAO,CAmDnD,CAAC;AAuCF,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW;;iBA5G7B,MAAM;kBACL,MAAM;;;;;;;EAwHzB"}
@@ -2,7 +2,7 @@ import { DEFAULT_ATTRIBUTE_NAMES, DEFAULT_CALLEE_NAMES, DEFAULT_TAG_NAMES, DEFAU
2
2
  import { ATTRIBUTE_SCHEMA, CALLEE_SCHEMA, TAG_SCHEMA, VARIABLE_SCHEMA } from "../options/descriptions.js";
3
3
  import { getCommonOptions } from "../utils/options.js";
4
4
  import { createRuleListener } from "../utils/rule.js";
5
- import { getExactClassLocation, splitClasses } from "../utils/utils.js";
5
+ import { getExactClassLocation, replacePlaceholders, splitClasses } from "../utils/utils.js";
6
6
  const defaultOptions = {
7
7
  attributes: DEFAULT_ATTRIBUTE_NAMES,
8
8
  callees: DEFAULT_CALLEE_NAMES,
@@ -31,7 +31,27 @@ export const noRestrictedClasses = {
31
31
  ...TAG_SCHEMA,
32
32
  restrict: {
33
33
  items: {
34
- type: "string"
34
+ anyOf: [
35
+ {
36
+ additionalProperties: false,
37
+ properties: {
38
+ message: {
39
+ default: undefined,
40
+ description: "The message to report when a class is restricted.",
41
+ type: "string"
42
+ },
43
+ pattern: {
44
+ description: "The regex pattern to match restricted classes.",
45
+ type: "string"
46
+ }
47
+ },
48
+ required: ["pattern"],
49
+ type: "object"
50
+ },
51
+ {
52
+ type: "string"
53
+ }
54
+ ]
35
55
  },
36
56
  type: "array"
37
57
  }
@@ -48,17 +68,24 @@ function lintLiterals(ctx, literals) {
48
68
  for (const literal of literals) {
49
69
  const classes = literal.content;
50
70
  const classNames = splitClasses(classes);
51
- const restrict = classNames.filter(className => {
52
- return restrictions.some(restriction => className.match(restriction));
53
- });
54
- for (const restrictedClass of restrict) {
55
- ctx.report({
56
- data: {
57
- restrictedClass
58
- },
59
- loc: getExactClassLocation(literal, restrictedClass),
60
- message: "Restricted class: \"{{ restrictedClass }}\"."
61
- });
71
+ for (const className of classNames) {
72
+ for (const restriction of restrictions) {
73
+ const pattern = typeof restriction === "string" ? restriction : restriction.pattern;
74
+ const message = typeof restriction === "string" ? undefined : restriction.message;
75
+ const matches = className.match(pattern);
76
+ if (!matches) {
77
+ continue;
78
+ }
79
+ ctx.report({
80
+ data: {
81
+ className
82
+ },
83
+ loc: getExactClassLocation(literal, className),
84
+ message: message
85
+ ? replacePlaceholders(message, matches)
86
+ : "Restricted class: \"{{ className }}\"."
87
+ });
88
+ }
62
89
  }
63
90
  }
64
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-restricted-classes.js","sourceRoot":"","sources":["../../../src/rules/no-restricted-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,UAAU,EACV,eAAe,EAChB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AA0BxF,MAAM,cAAc,GAAG;IACrB,UAAU,EAAE,uBAAuB;IACnC,OAAO,EAAE,oBAAoB;IAC7B,QAAQ,EAAE,EAAE;IACZ,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,8BAA8B;gBAC3C,WAAW,EAAE,KAAK;gBAClB,GAAG,EAAE,iBAAiB;aACvB;YACD,MAAM,EAAE;gBACN;oBACE,oBAAoB,EAAE,KAAK;oBAC3B,UAAU,EAAE;wBACV,GAAG,aAAa;wBAChB,GAAG,gBAAgB;wBACnB,GAAG,eAAe;wBAClB,GAAG,UAAU;wBACb,QAAQ,EAAE;4BACR,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;6BACf;4BACD,IAAI,EAAE,OAAO;yBACd;qBACF;oBACD,IAAI,EAAE,QAAQ;iBACf;aACF;YACD,IAAI,EAAE,SAAS;SAChB;KACF;CACF,CAAC;AAGF,SAAS,YAAY,CAAC,GAAqB,EAAE,QAAmB;IAE9D,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEnD,KAAI,MAAM,OAAO,IAAI,QAAQ,EAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC7C,OAAO,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,KAAI,MAAM,eAAe,IAAI,QAAQ,EAAC,CAAC;YACrC,GAAG,CAAC,MAAM,CAAC;gBACT,IAAI,EAAE;oBACJ,eAAe;iBAChB;gBACD,GAAG,EAAE,qBAAqB,CAAC,OAAO,EAAE,eAAe,CAAC;gBACpD,OAAO,EAAE,8CAA8C;aACxD,CAAC,CAAC;QACL,CAAC;IAEH,CAAC;AAEH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAqB;IAE9C,MAAM,OAAO,GAAe,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC;IAE7D,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;KACT,CAAC;AAEJ,CAAC"}
1
+ {"version":3,"file":"no-restricted-classes.js","sourceRoot":"","sources":["../../../src/rules/no-restricted-classes.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare function getQuotes(raw: string): QuoteMeta;
7
7
  export declare function getContent(raw: string, quotes?: QuoteMeta, braces?: BracesMeta): string;
8
8
  export declare function splitClasses(classes: string): string[];
9
9
  export declare function display(classes: string): string;
10
+ export declare function replacePlaceholders(template: string, match: RegExpMatchArray): string;
10
11
  export interface Warning<Options extends Record<string, any> = Record<string, any>> {
11
12
  option: keyof Options;
12
13
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAQhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,UAK9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChF,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,UAgBvH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAe;;;;;;;;;EAwC9H;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAQlE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,qBAAqB,CAQpF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGtF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM;;;EAK5C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAQhD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,UAAU,UAK9E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAKrF;AAED,MAAM,WAAW,OAAO,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAChF,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,UAgBvH;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,UAE1C;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,SAAS,GAAE,OAAe;;;;;;;;;EAwC9H;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK9E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAQlE;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,qBAAqB,CAQpF"}
@@ -29,6 +29,12 @@ export function display(classes) {
29
29
  .replaceAll("\r", "↩\r")
30
30
  .replaceAll("\t", "→");
31
31
  }
32
+ export function replacePlaceholders(template, match) {
33
+ return template.replace(/\$(\d+)/g, (_, groupIndex) => {
34
+ const index = Number(groupIndex);
35
+ return match[index] ?? "";
36
+ });
37
+ }
32
38
  export function augmentMessageWithWarnings(message, documentationUrl, warnings) {
33
39
  const ruleWarnings = warnings
34
40
  ?.filter(warning => warning)
@@ -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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.2.1",
2
+ "version": "3.3.0",
3
3
  "type": "module",
4
4
  "name": "eslint-plugin-better-tailwindcss",
5
5
  "description": "auto-wraps tailwind classes after a certain print width or class count into multiple lines to improve readability.",
@@ -66,7 +66,7 @@
66
66
  "typecheck": "tsc --noEmit"
67
67
  },
68
68
  "engines": {
69
- "node": ">=v20.11.0"
69
+ "node": "^20.11.0 || >=21.2.0"
70
70
  },
71
71
  "files": [
72
72
  "lib"
@@ -79,29 +79,29 @@
79
79
  "@eslint/css-tree": "^3.6.1",
80
80
  "enhanced-resolve": "^5.18.1",
81
81
  "jiti": "^2.4.2",
82
- "postcss": "^8.5.5",
83
- "postcss-import": "^16.1.0",
82
+ "postcss": "^8.5.6",
83
+ "postcss-import": "^16.1.1",
84
84
  "synckit": "^0.11.8",
85
- "tailwind-csstree": "^0.1.0"
85
+ "tailwind-csstree": "^0.1.1"
86
86
  },
87
87
  "devDependencies": {
88
88
  "@angular/compiler": "^20.0.3",
89
- "@angular-eslint/template-parser": "^20.0.0",
89
+ "@angular-eslint/template-parser": "^20.1.0",
90
90
  "@html-eslint/parser": "^0.41.0",
91
- "@schoero/configs": "^1.4.2",
91
+ "@schoero/configs": "^1.5.2",
92
92
  "@types/estree-jsx": "^1.0.5",
93
- "@types/node": "^24.0.1",
94
- "@typescript-eslint/parser": "^8.34.0",
93
+ "@types/node": "^24.0.3",
94
+ "@typescript-eslint/parser": "^8.34.1",
95
95
  "astro-eslint-parser": "^1.2.2",
96
96
  "changelogen": "^0.6.1",
97
- "cspell": "^9.0.2",
97
+ "cspell": "^9.1.1",
98
98
  "es-html-parser": "^0.2.0",
99
99
  "eslint": "^9.29.0",
100
100
  "eslint-plugin-better-tailwindcss": "file:./",
101
101
  "eslint-plugin-eslint-plugin": "^6.4.0",
102
102
  "json-schema": "^0.4.0",
103
103
  "markdownlint": "^0.38.0",
104
- "svelte": "^5.34.1",
104
+ "svelte": "^5.34.4",
105
105
  "svelte-eslint-parser": "^1.2.0",
106
106
  "tailwindcss": "^4.1.10",
107
107
  "tailwindcss3": "npm:tailwindcss@^3.0.0",
@@ -109,8 +109,8 @@
109
109
  "ts-node": "^10.9.2",
110
110
  "tsc-alias": "^1.8.16",
111
111
  "typescript": "^5.8.3",
112
- "vite-node": "^3.2.3",
113
- "vitest": "^3.2.3",
112
+ "vite-node": "^3.2.4",
113
+ "vitest": "^3.2.4",
114
114
  "vue-eslint-parser": "^10.1.3"
115
115
  },
116
116
  "keywords": [