@agilebot/eslint-config 0.8.7 → 0.8.8

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/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -7,7 +7,7 @@
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
 
10
- const require_constants = require('./constants-CXtrbTQU.js');
10
+ const require_constants = require('./constants-ZsBapy7t.js');
11
11
  const yargs = require_constants.__toESM(require("yargs"));
12
12
  const yargs_helpers = require_constants.__toESM(require("yargs/helpers"));
13
13
  const ansis = require_constants.__toESM(require("ansis"));
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -7,7 +7,7 @@
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
 
10
- import { CLI_NAME } from "./constants-BY5SBVqe.mjs";
10
+ import { CLI_NAME } from "./constants-DbEDzHYe.mjs";
11
11
  import { createRequire } from "node:module";
12
12
  import yargs from "yargs";
13
13
  import { hideBin } from "yargs/helpers";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -69,22 +69,27 @@ interface FactoryOptions {
69
69
  ignores?: string[];
70
70
  /**
71
71
  * Enable React-specific linting rules
72
- * @default undefined
72
+ * @default false
73
73
  */
74
74
  react?: boolean | string;
75
75
  /**
76
76
  * Specify the Vue.js version for linting
77
- * @default undefined
77
+ * @default false
78
78
  */
79
79
  vue?: number;
80
+ /**
81
+ * Enable TSS linting rules
82
+ * @default false
83
+ */
84
+ tss?: boolean;
80
85
  /**
81
86
  * Enable ES module linting rules
82
- * @default undefined
87
+ * @default false
83
88
  */
84
89
  module?: boolean;
85
90
  /**
86
91
  * Enable GoDaddy-specific linting configurations
87
- * @default undefined
92
+ * @default false
88
93
  */
89
94
  godaddy?: boolean | 'typescript';
90
95
  /**
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -69,22 +69,27 @@ interface FactoryOptions {
69
69
  ignores?: string[];
70
70
  /**
71
71
  * Enable React-specific linting rules
72
- * @default undefined
72
+ * @default false
73
73
  */
74
74
  react?: boolean | string;
75
75
  /**
76
76
  * Specify the Vue.js version for linting
77
- * @default undefined
77
+ * @default false
78
78
  */
79
79
  vue?: number;
80
+ /**
81
+ * Enable TSS linting rules
82
+ * @default false
83
+ */
84
+ tss?: boolean;
80
85
  /**
81
86
  * Enable ES module linting rules
82
- * @default undefined
87
+ * @default false
83
88
  */
84
89
  module?: boolean;
85
90
  /**
86
91
  * Enable GoDaddy-specific linting configurations
87
- * @default undefined
92
+ * @default false
88
93
  */
89
94
  godaddy?: boolean | 'typescript';
90
95
  /**
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -7,7 +7,7 @@
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
 
10
- const require_constants = require('./constants-CXtrbTQU.js');
10
+ const require_constants = require('./constants-ZsBapy7t.js');
11
11
  const __agilebot_eslint_utils = require_constants.__toESM(require("@agilebot/eslint-utils"));
12
12
  const node_path = require_constants.__toESM(require("node:path"));
13
13
  const node_assert = require_constants.__toESM(require("node:assert"));
@@ -456,7 +456,8 @@ function standard() {
456
456
  allowThrowingAny: true,
457
457
  allowThrowingUnknown: true
458
458
  }],
459
- "@typescript-eslint/no-loop-func": "warn"
459
+ "@typescript-eslint/no-loop-func": "warn",
460
+ "@typescript-eslint/prefer-nullish-coalescing": "off"
460
461
  }
461
462
  };
462
463
  }
@@ -637,6 +638,7 @@ function imports(packageDir, opts) {
637
638
  if (!node_fs.default.existsSync(tmpPkgDir)) node_fs.default.mkdirSync(tmpPkgDir, { recursive: true });
638
639
  const tmpPkgJson = JSON.stringify(tmpPkg, null, 2);
639
640
  node_fs.default.writeFileSync(node_path.default.join(tmpPkgDir, "package.json"), tmpPkgJson);
641
+ const ignorePatterns = [String.raw`\?(react|raw|url|inline|worker|worker&inline|worker&url|sharedworker|sharedworker&inline|sharedworker&url)$`];
640
642
  return {
641
643
  name: "agilebot/imports",
642
644
  files: require_constants.DEFAULT_GLOBS,
@@ -647,7 +649,7 @@ function imports(packageDir, opts) {
647
649
  rules: {
648
650
  ...eslint_plugin_import_x.default.configs.recommended.rules,
649
651
  ...eslint_plugin_import_x.default.configs.typescript.rules,
650
- "import-x/no-unresolved": ["error", { ignore: [String.raw`\?(react|raw|url|inline|worker|worker&inline|worker&url|sharedworker|sharedworker&inline|sharedworker&url)$`] }],
652
+ "import-x/no-unresolved": ["error", { ignore: ignorePatterns }],
651
653
  "import-x/no-named-as-default-member": "off",
652
654
  "import-x/no-named-as-default": "off",
653
655
  "import-x/no-useless-path-segments": ["error", { noUselessIndex: true }],
@@ -672,8 +674,8 @@ function imports(packageDir, opts) {
672
674
  "**/*.test.{ts,tsx,js,jsx,cjs,mjs,mts,cts}",
673
675
  "**/*.config.{ts,js,cjs,mjs,mts,cts}",
674
676
  "**/.storybook/**",
675
- "**/*.stories.{ts,tsx}",
676
- "**/scripts/*.{ts,mts}",
677
+ "**/*.stories.{cts,ts,mtx,tsx,mtsx}",
678
+ "**/scripts/*.{cts,ts,mts}",
677
679
  ...opts.devDependencies ?? []
678
680
  ],
679
681
  includeInternal: true
@@ -696,13 +698,18 @@ function imports(packageDir, opts) {
696
698
  "newlines-between": "always",
697
699
  distinctGroup: false
698
700
  }],
701
+ "import-x/no-duplicates": ["error", {
702
+ "prefer-inline": true,
703
+ considerQueryString: true
704
+ }],
699
705
  "no-relative-import-paths/no-relative-import-paths": opts.allowRelativePaths ? "off" : ["warn", { allowSameFolder: true }]
700
706
  },
701
707
  settings: {
702
708
  "import-x/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
703
709
  "import-x/resolver": { typescript: { alwaysTryTypes: true } },
704
710
  "import-x/internal-regex": opts.monorepoScope ? `^${opts.monorepoScope.replace(/\//g, "")}/` : void 0,
705
- "import-x/core-modules": opts.coreModules ?? void 0
711
+ "import-x/core-modules": opts.coreModules ?? void 0,
712
+ "import-x/ignore": ignorePatterns
706
713
  }
707
714
  };
708
715
  }
@@ -752,7 +759,7 @@ function react(opts) {
752
759
  files: require_constants.DEFAULT_GLOBS,
753
760
  plugins: {
754
761
  react: eslint_plugin_react.default,
755
- "react-hooks": eslint_plugin_react_hooks.default,
762
+ "react-hooks": eslint_plugin_react_hooks,
756
763
  "jsx-a11y": eslint_plugin_jsx_a11y.default,
757
764
  ...__eslint_react_eslint_plugin.default.configs.recommended.plugins,
758
765
  "@stylistic": __stylistic_eslint_plugin.default,
@@ -849,7 +856,7 @@ function vue(opts) {
849
856
  name: "agilebot/vue",
850
857
  files: require_constants.VUE_GLOBS,
851
858
  plugins: { vue: eslint_plugin_vue.default },
852
- rules: { ...opts.version === 3 ? eslint_plugin_vue.default.configs["vue3-strongly-recommended"].rules : eslint_plugin_vue.default.configs["strongly-recommended"].rules }
859
+ rules: { ...opts.version === 3 ? eslint_plugin_vue.default.configs["strongly-recommended"].rules : eslint_plugin_vue.default.configs["vue2-strongly-recommended"].rules }
853
860
  };
854
861
  }
855
862
 
@@ -931,7 +938,7 @@ function agilebot(opts) {
931
938
  files: require_constants.DEFAULT_GLOBS,
932
939
  plugins: {
933
940
  "@agilebot": __agilebot_eslint_plugin.default,
934
- "react-hooks": eslint_plugin_react_hooks.default
941
+ "react-hooks": eslint_plugin_react_hooks
935
942
  },
936
943
  rules: {
937
944
  ...__agilebot_eslint_plugin.default.configs.recommended.rules,
@@ -940,7 +947,12 @@ function agilebot(opts) {
940
947
  },
941
948
  settings: {
942
949
  "agilebot/project-root": opts.root,
943
- "agilebot/monorepo-scope": opts.monorepoScope ? opts.monorepoScope.replace(/\//g, "") : void 0
950
+ "agilebot/monorepo-scope": opts.monorepoScope ? opts.monorepoScope.replace(/\//g, "") : void 0,
951
+ "@agilebot/no-import-css": opts.tss ? "error" : "off",
952
+ "@agilebot/tss-class-naming": opts.tss ? "error" : "off",
953
+ "@agilebot/tss-no-color-name": opts.tss ? "warn" : "off",
954
+ "@agilebot/tss-no-color-value": opts.tss ? "error" : "off",
955
+ "@agilebot/tss-unused-classes": opts.tss ? "warn" : "off"
944
956
  }
945
957
  };
946
958
  }
@@ -949,7 +961,7 @@ function agilebot(opts) {
949
961
  //#region ../prettier-config/dist/index.mjs
950
962
  /**
951
963
 
952
- * @license @agilebot/prettier-config v0.8.7
964
+ * @license @agilebot/prettier-config v0.8.8
953
965
 
954
966
  *
955
967
 
@@ -1117,7 +1129,8 @@ function factory(root, options) {
1117
1129
  config$1.push(...commonConfigs);
1118
1130
  config$1.push(agilebot({
1119
1131
  root: rootDir,
1120
- monorepoScope: typeof options.import === "object" ? options.import?.monorepoScope : void 0
1132
+ monorepoScope: typeof options.import === "object" ? options.import?.monorepoScope : void 0,
1133
+ tss: options.tss
1121
1134
  }));
1122
1135
  }
1123
1136
  if (options.config) config$1.push({
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license @agilebot/eslint-config v0.8.7
2
+ * @license @agilebot/eslint-config v0.8.8
3
3
  *
4
4
  * Copyright (c) Agilebot, Inc. and its affiliates.
5
5
  *
@@ -7,7 +7,7 @@
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
 
10
- import { DEFAULT_GLOBS, DTS_GLOBS, IGNORE_GLOBS, JS_GLOBS, TS_GLOBS, VUE_GLOBS } from "./constants-BY5SBVqe.mjs";
10
+ import { DEFAULT_GLOBS, DTS_GLOBS, IGNORE_GLOBS, JS_GLOBS, TS_GLOBS, VUE_GLOBS } from "./constants-DbEDzHYe.mjs";
11
11
  import { findCacheDir, findRootDir, findTsconfigFiles, isInEditor } from "@agilebot/eslint-utils";
12
12
  import path from "node:path";
13
13
  import assert from "node:assert";
@@ -29,7 +29,8 @@ import pluginNoRelativeImportPaths from "eslint-plugin-no-relative-import-paths"
29
29
  import pluginUnicorn from "eslint-plugin-unicorn";
30
30
  import pluginReact from "eslint-plugin-react";
31
31
  import pluginReactX from "@eslint-react/eslint-plugin";
32
- import pluginReactHooks from "eslint-plugin-react-hooks";
32
+ import * as pluginReactHooks$1 from "eslint-plugin-react-hooks";
33
+ import * as pluginReactHooks from "eslint-plugin-react-hooks";
33
34
  import pluginJsxA11y from "eslint-plugin-jsx-a11y";
34
35
  import pluginAgilebot from "@agilebot/eslint-plugin";
35
36
  import pluginVue from "eslint-plugin-vue";
@@ -457,7 +458,8 @@ function standard() {
457
458
  allowThrowingAny: true,
458
459
  allowThrowingUnknown: true
459
460
  }],
460
- "@typescript-eslint/no-loop-func": "warn"
461
+ "@typescript-eslint/no-loop-func": "warn",
462
+ "@typescript-eslint/prefer-nullish-coalescing": "off"
461
463
  }
462
464
  };
463
465
  }
@@ -617,7 +619,7 @@ function dts() {
617
619
  }
618
620
 
619
621
  //#endregion
620
- //#region ../../node_modules/.pnpm/tsdown@0.12.7_typescript@5.7.2/node_modules/tsdown/esm-shims.js
622
+ //#region ../../node_modules/.pnpm/tsdown@0.12.7_typescript@5._8eb27ae7d06cad84cfedd69f32a6329d/node_modules/tsdown/esm-shims.js
621
623
  const getFilename = () => fileURLToPath(import.meta.url);
622
624
  const getDirname = () => path.dirname(getFilename());
623
625
  const __dirname = /* @__PURE__ */ getDirname();
@@ -644,6 +646,7 @@ function imports(packageDir, opts) {
644
646
  if (!fs.existsSync(tmpPkgDir)) fs.mkdirSync(tmpPkgDir, { recursive: true });
645
647
  const tmpPkgJson = JSON.stringify(tmpPkg, null, 2);
646
648
  fs.writeFileSync(path.join(tmpPkgDir, "package.json"), tmpPkgJson);
649
+ const ignorePatterns = [String.raw`\?(react|raw|url|inline|worker|worker&inline|worker&url|sharedworker|sharedworker&inline|sharedworker&url)$`];
647
650
  return {
648
651
  name: "agilebot/imports",
649
652
  files: DEFAULT_GLOBS,
@@ -654,7 +657,7 @@ function imports(packageDir, opts) {
654
657
  rules: {
655
658
  ...pluginImport.configs.recommended.rules,
656
659
  ...pluginImport.configs.typescript.rules,
657
- "import-x/no-unresolved": ["error", { ignore: [String.raw`\?(react|raw|url|inline|worker|worker&inline|worker&url|sharedworker|sharedworker&inline|sharedworker&url)$`] }],
660
+ "import-x/no-unresolved": ["error", { ignore: ignorePatterns }],
658
661
  "import-x/no-named-as-default-member": "off",
659
662
  "import-x/no-named-as-default": "off",
660
663
  "import-x/no-useless-path-segments": ["error", { noUselessIndex: true }],
@@ -679,8 +682,8 @@ function imports(packageDir, opts) {
679
682
  "**/*.test.{ts,tsx,js,jsx,cjs,mjs,mts,cts}",
680
683
  "**/*.config.{ts,js,cjs,mjs,mts,cts}",
681
684
  "**/.storybook/**",
682
- "**/*.stories.{ts,tsx}",
683
- "**/scripts/*.{ts,mts}",
685
+ "**/*.stories.{cts,ts,mtx,tsx,mtsx}",
686
+ "**/scripts/*.{cts,ts,mts}",
684
687
  ...opts.devDependencies ?? []
685
688
  ],
686
689
  includeInternal: true
@@ -703,13 +706,18 @@ function imports(packageDir, opts) {
703
706
  "newlines-between": "always",
704
707
  distinctGroup: false
705
708
  }],
709
+ "import-x/no-duplicates": ["error", {
710
+ "prefer-inline": true,
711
+ considerQueryString: true
712
+ }],
706
713
  "no-relative-import-paths/no-relative-import-paths": opts.allowRelativePaths ? "off" : ["warn", { allowSameFolder: true }]
707
714
  },
708
715
  settings: {
709
716
  "import-x/parsers": { "@typescript-eslint/parser": [".ts", ".tsx"] },
710
717
  "import-x/resolver": { typescript: { alwaysTryTypes: true } },
711
718
  "import-x/internal-regex": opts.monorepoScope ? `^${opts.monorepoScope.replace(/\//g, "")}/` : void 0,
712
- "import-x/core-modules": opts.coreModules ?? void 0
719
+ "import-x/core-modules": opts.coreModules ?? void 0,
720
+ "import-x/ignore": ignorePatterns
713
721
  }
714
722
  };
715
723
  }
@@ -759,7 +767,7 @@ function react(opts) {
759
767
  files: DEFAULT_GLOBS,
760
768
  plugins: {
761
769
  react: pluginReact,
762
- "react-hooks": pluginReactHooks,
770
+ "react-hooks": pluginReactHooks$1,
763
771
  "jsx-a11y": pluginJsxA11y,
764
772
  ...pluginReactX.configs.recommended.plugins,
765
773
  "@stylistic": pluginStylistic,
@@ -856,7 +864,7 @@ function vue(opts) {
856
864
  name: "agilebot/vue",
857
865
  files: VUE_GLOBS,
858
866
  plugins: { vue: pluginVue },
859
- rules: { ...opts.version === 3 ? pluginVue.configs["vue3-strongly-recommended"].rules : pluginVue.configs["strongly-recommended"].rules }
867
+ rules: { ...opts.version === 3 ? pluginVue.configs["strongly-recommended"].rules : pluginVue.configs["vue2-strongly-recommended"].rules }
860
868
  };
861
869
  }
862
870
 
@@ -947,7 +955,12 @@ function agilebot(opts) {
947
955
  },
948
956
  settings: {
949
957
  "agilebot/project-root": opts.root,
950
- "agilebot/monorepo-scope": opts.monorepoScope ? opts.monorepoScope.replace(/\//g, "") : void 0
958
+ "agilebot/monorepo-scope": opts.monorepoScope ? opts.monorepoScope.replace(/\//g, "") : void 0,
959
+ "@agilebot/no-import-css": opts.tss ? "error" : "off",
960
+ "@agilebot/tss-class-naming": opts.tss ? "error" : "off",
961
+ "@agilebot/tss-no-color-name": opts.tss ? "warn" : "off",
962
+ "@agilebot/tss-no-color-value": opts.tss ? "error" : "off",
963
+ "@agilebot/tss-unused-classes": opts.tss ? "warn" : "off"
951
964
  }
952
965
  };
953
966
  }
@@ -956,7 +969,7 @@ function agilebot(opts) {
956
969
  //#region ../prettier-config/dist/index.mjs
957
970
  /**
958
971
 
959
- * @license @agilebot/prettier-config v0.8.7
972
+ * @license @agilebot/prettier-config v0.8.8
960
973
 
961
974
  *
962
975
 
@@ -1124,7 +1137,8 @@ function factory(root, options) {
1124
1137
  config$1.push(...commonConfigs);
1125
1138
  config$1.push(agilebot({
1126
1139
  root: rootDir,
1127
- monorepoScope: typeof options.import === "object" ? options.import?.monorepoScope : void 0
1140
+ monorepoScope: typeof options.import === "object" ? options.import?.monorepoScope : void 0,
1141
+ tss: options.tss
1128
1142
  }));
1129
1143
  }
1130
1144
  if (options.config) config$1.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilebot/eslint-config",
3
- "version": "0.8.7",
3
+ "version": "0.8.8",
4
4
  "description": "Agilebot's ESLint config",
5
5
  "bin": {
6
6
  "eslint-agilebot": "bin/eslint-agilebot"
@@ -26,20 +26,20 @@
26
26
  },
27
27
  "homepage": "https://github.com/sh-agilebot/frontend-toolkit/tree/master/packages/eslint-config#readme",
28
28
  "dependencies": {
29
- "@cspell/eslint-plugin": "^8.17.5",
30
- "@eslint-community/eslint-plugin-eslint-comments": "~4.4.1",
31
- "@eslint-react/eslint-plugin": "~1.29.0",
32
- "@eslint/compat": "^1.2.7",
33
- "@eslint/js": "^9.21.0",
34
- "@stylistic/eslint-plugin": "~4.1.0",
35
- "@typescript-eslint/eslint-plugin": "~8.25.0",
36
- "@typescript-eslint/parser": "~8.25.0",
29
+ "@cspell/eslint-plugin": "~9.0.2",
30
+ "@eslint-community/eslint-plugin-eslint-comments": "~4.5.0",
31
+ "@eslint-react/eslint-plugin": "~1.52.2",
32
+ "@eslint/compat": "^1.3.0",
33
+ "@eslint/js": "^9.29.0",
34
+ "@stylistic/eslint-plugin": "~4.4.1",
35
+ "@typescript-eslint/eslint-plugin": "~8.29.0",
36
+ "@typescript-eslint/parser": "~8.29.0",
37
37
  "ansis": "^3.17.0",
38
38
  "eslint-config-godaddy": "^6.0.0",
39
39
  "eslint-config-prettier": "~9.1.0",
40
40
  "eslint-import-resolver-typescript": "^4.4.3",
41
- "eslint-plugin-file-progress": "~3.0.1",
42
- "eslint-plugin-import-x": "~4.6.1",
41
+ "eslint-plugin-file-progress": "~3.0.2",
42
+ "eslint-plugin-import-x": "~4.15.2",
43
43
  "eslint-plugin-jsdoc": "~50.6.3",
44
44
  "eslint-plugin-jsx-a11y": "~6.10.2",
45
45
  "eslint-plugin-mocha": "~10.5.0",
@@ -53,13 +53,13 @@
53
53
  "eslint-plugin-react-hooks": "^5.0.0",
54
54
  "eslint-plugin-unicorn": "^56.0.1",
55
55
  "eslint-plugin-unused-imports": "~4.1.4",
56
- "eslint-plugin-vue": "~9.32.0",
56
+ "eslint-plugin-vue": "~10.2.0",
57
57
  "eslint-plugin-you-dont-need-lodash-underscore": "~6.13.0",
58
58
  "find-up": "^5.0.0",
59
- "globals": "^16.0.0",
60
- "vue-eslint-parser": "^9.4.3",
59
+ "globals": "^16.2.0",
60
+ "vue-eslint-parser": "^10.1.3",
61
61
  "yargs": "^17.7.2",
62
- "@agilebot/eslint-utils": "0.8.7"
62
+ "@agilebot/eslint-utils": "0.8.8"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@types/yargs": "^17.0.33",
@@ -67,7 +67,7 @@
67
67
  },
68
68
  "peerDependencies": {
69
69
  "eslint": "^8.57.0 || ^9.0.0",
70
- "@agilebot/eslint-plugin": "0.8.7"
70
+ "@agilebot/eslint-plugin": "0.8.8"
71
71
  },
72
72
  "files": [
73
73
  "bin",
@@ -76,6 +76,7 @@
76
76
  "scripts": {
77
77
  "build": "tsdown",
78
78
  "dev:cli": "tsx src/cli.ts",
79
- "lint": "eslint-agilebot src"
79
+ "lint": "eslint-agilebot src",
80
+ "typecheck": "tsc --noEmit"
80
81
  }
81
82
  }