@tractorbeam/eslint-config 0.3.0 → 0.4.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.
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # @tractorbeam/eslint-config
2
2
 
3
+ > [!WARNING]
4
+ > **Deprecated.** This package receives no further updates. Lint with [Oxlint](https://oxc.rs/docs/guide/usage/linter) using [`@tractorbeam/oxlint-config`](https://www.npmjs.com/package/@tractorbeam/oxlint-config) instead, and format with [Oxfmt](https://oxc.rs/docs/guide/usage/formatter) using [`@tractorbeam/oxfmt-config`](https://www.npmjs.com/package/@tractorbeam/oxfmt-config).
5
+
3
6
  Shared ESLint configuration for Tractorbeam projects using modern flat config format.
4
7
 
5
8
  ## Installation
@@ -67,11 +70,7 @@ import { defineConfig } from "eslint/config";
67
70
 
68
71
  import { base, playwright, typescript } from "@tractorbeam/eslint-config";
69
72
 
70
- export default defineConfig([
71
- base,
72
- eslint,
73
- { files: ["**/e2e/**/*.ts"], extends: [playwright] },
74
- ]);
73
+ export default defineConfig([base, eslint, { files: ["**/e2e/**/*.ts"], extends: [playwright] }]);
75
74
  ```
76
75
 
77
76
  ### Overriding Rules
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,kBAAkB,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,KAAK,GAAoB,YAAY,CAAC;IACjD;QACE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAC/B,OAAO,EAAE;YACP,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YACvC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;YACzC,aAAa,CAAC,WAAW,CAAC,WAAW;YACrC,mBAAmB,CAAC,OAAO,CAAC,WAAW;SACxC;QACD,eAAe,EAAE;YACf,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;SAChC;QACD,OAAO,EAAE;YACP,aAAa,EAAE,gBAA4C;YAC3D,eAAe,EAAE,kBAAkB;SACpC;QACD,KAAK,EAAE;YACL,6BAA6B,EAAE,KAAK;YACpC,sCAAsC,EAAE,MAAM;YAC9C,wBAAwB,EAAE,KAAK;YAC/B,0BAA0B,EAAE,KAAK;YACjC,6BAA6B,EAAE,KAAK;SACrC;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;SAC7B;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,mBAAmB,MAAM,8BAA8B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,kBAAkB,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,MAAM,KAAK,GAAoB,YAAY,CAAC;IACjD;QACE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAC/B,OAAO,EAAE;YACP,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;YACpC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YACvC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW;YACzC,aAAa,CAAC,WAAW,CAAC,WAAW;YACrC,mBAAmB,CAAC,OAAO,CAAC,WAAW;SACxC;QACD,eAAe,EAAE;YACf,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;SAChC;QACD,OAAO,EAAE;YACP,aAAa,EAAE,gBAAiC;YAChD,eAAe,EAAE,kBAAkB;SACpC;QACD,KAAK,EAAE;YACL,6BAA6B,EAAE,KAAK;YACpC,sCAAsC,EAAE,MAAM;YAC9C,wBAAwB,EAAE,KAAK;YAC/B,0BAA0B,EAAE,KAAK;YACjC,6BAA6B,EAAE,KAAK;SACrC;QACD,QAAQ,EAAE;YACR,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;SAC7B;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EA0DpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/typescript/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EA2DpC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import pluginImportLite from "eslint-plugin-import-lite";
2
- import pluginRegexp from "eslint-plugin-regexp";
2
+ import { configs as regexpConfigs } from "eslint-plugin-regexp";
3
3
  import pluginUnicorn from "eslint-plugin-unicorn";
4
4
  import { defineConfig } from "eslint/config";
5
5
  import tseslint from "typescript-eslint";
@@ -10,7 +10,7 @@ export const typescript = defineConfig([
10
10
  tseslint.configs.strictTypeChecked,
11
11
  tseslint.configs.stylisticTypeChecked,
12
12
  pluginUnicorn.configs.recommended,
13
- pluginRegexp.configs["flat/recommended"],
13
+ regexpConfigs["flat/recommended"],
14
14
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
15
15
  pluginImportLite.configs.recommended,
16
16
  ],
@@ -56,6 +56,7 @@ export const typescript = defineConfig([
56
56
  "unicorn/prevent-abbreviations": "off",
57
57
  "unicorn/no-abusive-eslint-disable": "off",
58
58
  "unicorn/no-array-sort": "off",
59
+ "unicorn/no-asterisk-prefix-in-documentation-comments": "off",
59
60
  },
60
61
  },
61
62
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typescript/index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAoB,YAAY,CAAC;IACtD;QACE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACP,QAAQ,CAAC,OAAO,CAAC,iBAAiB;YAClC,QAAQ,CAAC,OAAO,CAAC,oBAAoB;YACrC,aAAa,CAAC,OAAO,CAAC,WAAW;YACjC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACxC,sEAAsE;YACtE,gBAAgB,CAAC,OAAO,CAAC,WAAW;SACrC;QACD,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,cAAc,EAAE,IAAI;aACrB;SACF;QACD,KAAK,EAAE;YACL,yCAAyC,EAAE,KAAK;YAChD,kDAAkD,EAAE,KAAK;YAEzD,mCAAmC,EAAE,MAAM;YAC3C,yCAAyC,EAAE,MAAM;YACjD,oCAAoC,EAAE,MAAM;YAE5C,4CAA4C,EAAE,OAAO;YACrD,qCAAqC,EAAE;gBACrC,OAAO;gBACP;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAE,UAAU;yBACjB;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAE,eAAe;yBACtB;qBACF;iBACF;aACF;YACD,mCAAmC,EAAE;gBACnC,OAAO;gBACP;oBACE,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,IAAI;oBACvB,8BAA8B,EAAE,IAAI;iBACrC;aACF;YAED,2BAA2B,EAAE,KAAK;YAClC,iBAAiB,EAAE,KAAK;YACxB,+BAA+B,EAAE,KAAK;YACtC,mCAAmC,EAAE,KAAK;YAC1C,uBAAuB,EAAE,KAAK;SAC/B;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/typescript/index.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAoB,YAAY,CAAC;IACtD;QACE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACP,QAAQ,CAAC,OAAO,CAAC,iBAAiB;YAClC,QAAQ,CAAC,OAAO,CAAC,oBAAoB;YACrC,aAAa,CAAC,OAAO,CAAC,WAAW;YACjC,aAAa,CAAC,kBAAkB,CAAC;YACjC,sEAAsE;YACtE,gBAAgB,CAAC,OAAO,CAAC,WAAW;SACrC;QACD,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,cAAc,EAAE,IAAI;aACrB;SACF;QACD,KAAK,EAAE;YACL,yCAAyC,EAAE,KAAK;YAChD,kDAAkD,EAAE,KAAK;YAEzD,mCAAmC,EAAE,MAAM;YAC3C,yCAAyC,EAAE,MAAM;YACjD,oCAAoC,EAAE,MAAM;YAE5C,4CAA4C,EAAE,OAAO;YACrD,qCAAqC,EAAE;gBACrC,OAAO;gBACP;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAE,UAAU;yBACjB;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAE,eAAe;yBACtB;qBACF;iBACF;aACF;YACD,mCAAmC,EAAE;gBACnC,OAAO;gBACP;oBACE,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,IAAI;oBACvB,8BAA8B,EAAE,IAAI;iBACrC;aACF;YAED,2BAA2B,EAAE,KAAK;YAClC,iBAAiB,EAAE,KAAK;YACxB,+BAA+B,EAAE,KAAK;YACtC,mCAAmC,EAAE,KAAK;YAC1C,uBAAuB,EAAE,KAAK;YAC9B,sDAAsD,EAAE,KAAK;SAC9D;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AAM3C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAmB5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,QAAQ,CAAC;AA0B3C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAW5B,CAAC"}
package/dist/ui/index.js CHANGED
@@ -1,17 +1,27 @@
1
1
  import { defineConfig } from "eslint/config";
2
2
  import { noButtonHeightClass } from "./rules/no-button-height-class.js";
3
3
  import { noIconClassInButton } from "./rules/no-icon-class-in-button.js";
4
+ const uiRules = {
5
+ "no-button-height-class": adaptRuleModule(noButtonHeightClass),
6
+ "no-icon-class-in-button": adaptRuleModule(noIconClassInButton),
7
+ };
8
+ const uiPlugin = { rules: uiRules };
9
+ function adaptRuleModule(rule) {
10
+ return {
11
+ meta: {
12
+ ...rule.meta,
13
+ defaultOptions: rule.meta.defaultOptions === undefined ? undefined : [...rule.meta.defaultOptions],
14
+ },
15
+ create(context) {
16
+ return Reflect.apply(rule.create, rule, [context]);
17
+ },
18
+ };
19
+ }
4
20
  export const ui = defineConfig([
5
21
  {
6
22
  files: ["**/*.tsx", "**/*.jsx"],
7
23
  plugins: {
8
- ui: {
9
- rules: {
10
- // Cast required: @typescript-eslint/utils RuleModule has stricter types than ESLint's Rule.RuleModule
11
- "no-button-height-class": noButtonHeightClass,
12
- "no-icon-class-in-button": noIconClassInButton,
13
- },
14
- },
24
+ ui: uiPlugin,
15
25
  },
16
26
  rules: {
17
27
  "ui/no-button-height-class": "warn",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,CAAC,MAAM,EAAE,GAAoB,YAAY,CAAC;IAC9C;QACE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAC/B,OAAO,EAAE;YACP,EAAE,EAAE;gBACF,KAAK,EAAE;oBACL,sGAAsG;oBACtG,wBAAwB,EACtB,mBAAiD;oBACnD,yBAAyB,EACvB,mBAAiD;iBACpD;aACF;SACF;QACD,KAAK,EAAE;YACL,2BAA2B,EAAE,MAAM;YACnC,4BAA4B,EAAE,MAAM;SACrC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,OAAO,GAAG;IACd,wBAAwB,EAAE,eAAe,CAAC,mBAAmB,CAAC;IAC9D,yBAAyB,EAAE,eAAe,CAAC,mBAAmB,CAAC;CAChE,CAAC;AAEF,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAEpC,SAAS,eAAe,CAAC,IAA4B;IACnD,OAAO;QACL,IAAI,EAAE;YACJ,GAAG,IAAI,CAAC,IAAI;YACZ,cAAc,EACZ,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;SACrF;QACD,MAAM,CAAC,OAAO;YACZ,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAsB,CAAC;QAC1E,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,GAAoB,YAAY,CAAC;IAC9C;QACE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAC/B,OAAO,EAAE;YACP,EAAE,EAAE,QAAQ;SACb;QACD,KAAK,EAAE;YACL,2BAA2B,EAAE,MAAM;YACnC,4BAA4B,EAAE,MAAM;SACrC;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-button-height-class.d.ts","sourceRoot":"","sources":["../../../src/ui/rules/no-button-height-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAoDlC,eAAO,MAAM,mBAAmB,iFAkF9B,CAAC"}
1
+ {"version":3,"file":"no-button-height-class.d.ts","sourceRoot":"","sources":["../../../src/ui/rules/no-button-height-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAgDjF,eAAO,MAAM,mBAAmB,iFAwE9B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { AST_NODE_TYPES, ESLintUtils, } from "@typescript-eslint/utils";
1
+ import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
2
2
  const createRule = ESLintUtils.RuleCreator.withoutDocs;
3
3
  /**
4
4
  * Patterns for Tailwind sizing classes that shouldn't be used on Button components.
@@ -12,19 +12,19 @@ const createRule = ESLintUtils.RuleCreator.withoutDocs;
12
12
  // Base pattern for values: numeric (40), arbitrary ([100px]), fractions (1/2)
13
13
  const VALUE_PATTERN = "(\\d+|\\[.+?\\]|\\d+\\/\\d+)";
14
14
  // h-* classes (except h-full)
15
- const HEIGHT_PATTERN = new RegExp(`\\bh-(?!full\\b)${VALUE_PATTERN}`);
15
+ const HEIGHT_PATTERN = new RegExp(`\\bh-(?!full\\b)${VALUE_PATTERN}`, "u");
16
16
  // w-* classes (except w-full)
17
- const WIDTH_PATTERN = new RegExp(`\\bw-(?!full\\b)${VALUE_PATTERN}`);
17
+ const WIDTH_PATTERN = new RegExp(`\\bw-(?!full\\b)${VALUE_PATTERN}`, "u");
18
18
  // size-* classes (except size-full)
19
- const SIZE_PATTERN = new RegExp(`\\bsize-(?!full\\b)${VALUE_PATTERN}`);
19
+ const SIZE_PATTERN = new RegExp(`\\bsize-(?!full\\b)${VALUE_PATTERN}`, "u");
20
20
  // min-h-* classes (except min-h-full, min-h-0)
21
- const MIN_HEIGHT_PATTERN = new RegExp(`\\bmin-h-(?!full\\b|0\\b)${VALUE_PATTERN}`);
21
+ const MIN_HEIGHT_PATTERN = new RegExp(`\\bmin-h-(?!full\\b|0\\b)${VALUE_PATTERN}`, "u");
22
22
  // max-h-* classes (except max-h-full, max-h-none)
23
- const MAX_HEIGHT_PATTERN = new RegExp(`\\bmax-h-(?!full\\b|none\\b)${VALUE_PATTERN}`);
23
+ const MAX_HEIGHT_PATTERN = new RegExp(`\\bmax-h-(?!full\\b|none\\b)${VALUE_PATTERN}`, "u");
24
24
  // min-w-* classes (except min-w-full, min-w-0)
25
- const MIN_WIDTH_PATTERN = new RegExp(`\\bmin-w-(?!full\\b|0\\b)${VALUE_PATTERN}`);
25
+ const MIN_WIDTH_PATTERN = new RegExp(`\\bmin-w-(?!full\\b|0\\b)${VALUE_PATTERN}`, "u");
26
26
  // max-w-* classes (except max-w-full, max-w-none)
27
- const MAX_WIDTH_PATTERN = new RegExp(`\\bmax-w-(?!full\\b|none\\b)${VALUE_PATTERN}`);
27
+ const MAX_WIDTH_PATTERN = new RegExp(`\\bmax-w-(?!full\\b|none\\b)${VALUE_PATTERN}`, "u");
28
28
  const PATTERNS = [
29
29
  HEIGHT_PATTERN,
30
30
  WIDTH_PATTERN,
@@ -53,8 +53,7 @@ export const noButtonHeightClass = createRule({
53
53
  return {
54
54
  JSXOpeningElement(node) {
55
55
  // Check if element is <Button>
56
- if (node.name.type !== AST_NODE_TYPES.JSXIdentifier ||
57
- node.name.name !== "Button") {
56
+ if (node.name.type !== AST_NODE_TYPES.JSXIdentifier || node.name.name !== "Button") {
58
57
  return;
59
58
  }
60
59
  // Find className attribute
@@ -72,18 +71,16 @@ export const noButtonHeightClass = createRule({
72
71
  };
73
72
  // Check for sizing patterns in string literal or template literal
74
73
  const value = classNameAttr.value;
75
- if (value?.type === AST_NODE_TYPES.Literal &&
76
- typeof value.value === "string") {
77
- if (hasDisallowedSizeClass(value.value)) {
74
+ if (value?.type === AST_NODE_TYPES.Literal && isQuotedLiteral(value.raw)) {
75
+ if (hasDisallowedSizeClass(String(value.value))) {
78
76
  reportViolation();
79
77
  }
80
78
  }
81
79
  // Handle JSX expressions like className={...} or className={`...`}
82
80
  if (value?.type === AST_NODE_TYPES.JSXExpressionContainer) {
83
81
  const expr = value.expression;
84
- if (expr.type === AST_NODE_TYPES.Literal &&
85
- typeof expr.value === "string") {
86
- if (hasDisallowedSizeClass(expr.value)) {
82
+ if (expr.type === AST_NODE_TYPES.Literal && isQuotedLiteral(expr.raw)) {
83
+ if (hasDisallowedSizeClass(String(expr.value))) {
87
84
  reportViolation();
88
85
  }
89
86
  }
@@ -100,4 +97,7 @@ export const noButtonHeightClass = createRule({
100
97
  };
101
98
  },
102
99
  });
100
+ function isQuotedLiteral(raw) {
101
+ return raw.startsWith('"') || raw.startsWith("'");
102
+ }
103
103
  //# sourceMappingURL=no-button-height-class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-button-height-class.js","sourceRoot":"","sources":["../../../src/ui/rules/no-button-height-class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-button-height-class.js","sourceRoot":"","sources":["../../../src/ui/rules/no-button-height-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAEjF,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;AAEvD;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAErD,8BAA8B;AAC9B,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,mBAAmB,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAE3E,8BAA8B;AAC9B,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,mBAAmB,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAE1E,oCAAoC;AACpC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,sBAAsB,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAE5E,+CAA+C;AAC/C,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,4BAA4B,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAExF,kDAAkD;AAClD,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,+BAA+B,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAE3F,+CAA+C;AAC/C,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,4BAA4B,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAEvF,kDAAkD;AAClD,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAAC,+BAA+B,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;AAE1F,MAAM,QAAQ,GAAG;IACf,cAAc;IACd,aAAa;IACb,YAAY;IACZ,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAC;IAC5C,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE,2DAA2D;SACzE;QACD,QAAQ,EAAE;YACR,cAAc,EACZ,qGAAqG;SACxG;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,sBAAsB,GAAG,CAAC,WAAmB,EAAW,EAAE;YAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC;QAEF,OAAO;YACL,iBAAiB,CAAC,IAAgC;gBAChD,+BAA+B;gBAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnF,OAAO;gBACT,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACxC,CAAC,IAAI,EAAiC,EAAE,CACtC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,YAAY;oBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa;oBAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CACjC,CAAC;gBAEF,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAED,MAAM,eAAe,GAAG,GAAG,EAAE;oBAC3B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,gBAAgB;qBAC5B,CAAC,CAAC;gBACL,CAAC,CAAC;gBAEF,kEAAkE;gBAClE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;gBAClC,IAAI,KAAK,EAAE,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzE,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;wBAChD,eAAe,EAAE,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,mEAAmE;gBACnE,IAAI,KAAK,EAAE,IAAI,KAAK,cAAc,CAAC,sBAAsB,EAAE,CAAC;oBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;oBAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBACtE,IAAI,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;4BAC/C,eAAe,EAAE,CAAC;wBACpB,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;wBACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4BAChC,IAAI,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC5C,eAAe,EAAE,CAAC;gCAClB,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-icon-class-in-button.d.ts","sourceRoot":"","sources":["../../../src/ui/rules/no-icon-class-in-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAmJlC,eAAO,MAAM,mBAAmB,8EAuD9B,CAAC"}
1
+ {"version":3,"file":"no-icon-class-in-button.d.ts","sourceRoot":"","sources":["../../../src/ui/rules/no-icon-class-in-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAY,MAAM,0BAA0B,CAAC;AAyIjF,eAAO,MAAM,mBAAmB,8EAuD9B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { AST_NODE_TYPES, ESLintUtils, } from "@typescript-eslint/utils";
2
- import * as ts from "typescript";
1
+ import { AST_NODE_TYPES, ESLintUtils } from "@typescript-eslint/utils";
2
+ import ts from "typescript";
3
3
  const createRule = ESLintUtils.RuleCreator.withoutDocs;
4
4
  /**
5
5
  * Checks if a type is or extends LucideIcon from lucide-react.
@@ -24,14 +24,12 @@ function isLucideIconType(type, checker) {
24
24
  const returnType = checker.getReturnTypeOfSignature(sig);
25
25
  const returnTypeName = checker.typeToString(returnType);
26
26
  // React elements from icon components
27
- if (returnTypeName.includes("Element") ||
28
- returnTypeName.includes("ReactNode")) {
27
+ if (returnTypeName.includes("Element") || returnTypeName.includes("ReactNode")) {
29
28
  // Check parameters for SVGProps or LucideProps
30
29
  for (const param of sig.parameters) {
31
30
  const paramType = checker.getTypeOfSymbol(param);
32
31
  const paramTypeName = checker.typeToString(paramType);
33
- if (paramTypeName.includes("LucideProps") ||
34
- paramTypeName.includes("SVGProps")) {
32
+ if (paramTypeName.includes("LucideProps") || paramTypeName.includes("SVGProps")) {
35
33
  return true;
36
34
  }
37
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"no-icon-class-in-button.js","sourceRoot":"","sources":["../../../src/ui/rules/no-icon-class-in-button.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-icon-class-in-button.js","sourceRoot":"","sources":["../../../src/ui/rules/no-icon-class-in-button.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,EAE7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,eAAO,MAAM,GAAG,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAC"}
package/dist/zod/index.js CHANGED
@@ -1,6 +1,4 @@
1
1
  import eslintPluginZod from "eslint-plugin-zod";
2
2
  import { defineConfig } from "eslint/config";
3
- export const zod = defineConfig([
4
- eslintPluginZod.configs.recommended,
5
- ]);
3
+ export const zod = defineConfig([eslintPluginZod.configs.recommended]);
6
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,GAAG,GAAoB,YAAY,CAAC;IAC/C,eAAe,CAAC,OAAO,CAAC,WAAW;CACpC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/zod/index.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,GAAG,GAAoB,YAAY,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,29 +1,33 @@
1
1
  {
2
2
  "name": "@tractorbeam/eslint-config",
3
- "version": "0.3.0",
4
- "description": "Shared ESLint configuration for Tractorbeam projects",
3
+ "version": "0.4.0",
4
+ "description": "Deprecated: use @tractorbeam/oxlint-config (Oxlint) instead. Shared ESLint configuration for Tractorbeam projects",
5
5
  "keywords": [
6
- "tractorbeam",
7
- "tractorbeamai",
8
6
  "eslint",
9
- "eslintconfig",
10
7
  "eslint-config",
11
- "typescript",
8
+ "eslintconfig",
9
+ "playwright",
10
+ "prettier",
12
11
  "react",
13
12
  "tanstack",
14
- "playwright",
15
- "prettier"
13
+ "tractorbeam",
14
+ "tractorbeamai",
15
+ "typescript"
16
16
  ],
17
17
  "homepage": "https://github.com/tractorbeamai/reusables/tree/main/packages/eslint-config#readme",
18
18
  "bugs": {
19
19
  "url": "https://github.com/tractorbeamai/reusables/issues"
20
20
  },
21
+ "license": "MIT",
21
22
  "repository": {
22
23
  "type": "git",
23
24
  "url": "git+https://github.com/tractorbeamai/reusables.git",
24
25
  "directory": "packages/eslint-config"
25
26
  },
26
- "license": "MIT",
27
+ "files": [
28
+ "dist/**",
29
+ "README.md"
30
+ ],
27
31
  "type": "module",
28
32
  "exports": {
29
33
  ".": {
@@ -71,48 +75,42 @@
71
75
  "default": "./dist/zod.js"
72
76
  }
73
77
  },
74
- "files": [
75
- "dist/**",
76
- "README.md"
77
- ],
78
+ "publishConfig": {
79
+ "access": "public",
80
+ "provenance": true
81
+ },
78
82
  "dependencies": {
79
- "@eslint/js": "^9.39.2",
80
- "@tanstack/eslint-plugin-router": "^1.141.0",
81
- "eslint-config-prettier": "^10.1.8",
82
- "eslint-plugin-depend": "^1.4.0",
83
- "eslint-plugin-import-lite": "^0.4.0",
84
- "eslint-plugin-jsx-a11y": "^6.10.2",
85
- "eslint-plugin-playwright": "^2.4.0",
86
- "eslint-plugin-react": "^7.37.5",
87
- "eslint-plugin-react-compiler": "^19.1.0-rc.2",
88
- "eslint-plugin-react-hooks": "^7.0.1",
89
- "eslint-plugin-react-refresh": "^0.4.26",
90
- "eslint-plugin-regexp": "^2.10.0",
91
- "eslint-plugin-unicorn": "^62.0.0",
92
- "eslint-plugin-zod": "^3.0.2",
93
- "@typescript-eslint/utils": "^8.50.0",
94
- "globals": "^16.5.0",
95
- "typescript-eslint": "^8.50.0"
83
+ "@eslint/js": "10.0.1",
84
+ "@tanstack/eslint-plugin-router": "1.162.0",
85
+ "@typescript-eslint/utils": "8.71.1",
86
+ "eslint-config-prettier": "10.1.8",
87
+ "eslint-plugin-depend": "1.5.0",
88
+ "eslint-plugin-import-lite": "0.6.0",
89
+ "eslint-plugin-jsx-a11y": "6.10.2",
90
+ "eslint-plugin-playwright": "2.12.1",
91
+ "eslint-plugin-react": "7.37.5",
92
+ "eslint-plugin-react-compiler": "19.1.0-rc.2",
93
+ "eslint-plugin-react-hooks": "7.1.1",
94
+ "eslint-plugin-react-refresh": "0.5.7",
95
+ "eslint-plugin-regexp": "3.3.1",
96
+ "eslint-plugin-unicorn": "77.0.0",
97
+ "eslint-plugin-zod": "5.0.0",
98
+ "globals": "17.13.0",
99
+ "typescript-eslint": "8.71.1"
96
100
  },
97
101
  "devDependencies": {
98
- "@types/eslint": "^9.6.1",
99
- "@types/eslint-plugin-jsx-a11y": "^6.10.1",
100
- "@types/node": "^25.0.3",
101
- "typescript": "^5.9.3",
102
- "@tractorbeam/typescript-config": "0.2.0"
102
+ "@tractorbeam/typescript-config": "0.4.0",
103
+ "@types/eslint": "9.6.1",
104
+ "@types/eslint-plugin-jsx-a11y": "6.10.1",
105
+ "@types/node": "24.19.2",
106
+ "typescript": "6.0.3"
103
107
  },
104
108
  "peerDependencies": {
105
- "eslint": ">= 9",
109
+ "eslint": "^10.4.0",
106
110
  "typescript-eslint": ">= 8"
107
111
  },
108
- "publishConfig": {
109
- "access": "public",
110
- "provenance": true
111
- },
112
112
  "scripts": {
113
113
  "build": "tsc -p tsconfig.build.json",
114
- "clean": "rm -rf dist *.tsbuildinfo",
115
- "lint:eslint": "eslint src --max-warnings=0",
116
- "lint:types": "tsc --noEmit"
114
+ "clean": "rm -rf dist *.tsbuildinfo"
117
115
  }
118
116
  }