@isentinel/eslint-config 3.0.0-beta.4 → 3.0.0-beta.6

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
@@ -117,6 +117,20 @@ set:
117
117
  }
118
118
  ```
119
119
 
120
+ Alternatively, you can install `@isentinel/tsconfig` from pnpm:
121
+
122
+ ```bash
123
+ pnpm install --save-dev @isentinel/tsconfig
124
+ ```
125
+
126
+ And use it in your `tsconfig.json`:
127
+
128
+ ```json
129
+ {
130
+ "extends": "@isentinel/tsconfig/roblox"
131
+ }
132
+ ```
133
+
120
134
  ### ESLint
121
135
 
122
136
  The `ts/no-non-null-assertion` rule is enabled by default, which will warn you
@@ -0,0 +1,30 @@
1
+ import { createRequire } from "node:module";
2
+
3
+ //#region rolldown:runtime
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __commonJS = (cb, mod) => function() {
11
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
15
+ key = keys[i];
16
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: ((k) => from[k]).bind(null, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
26
+ }) : target, mod));
27
+ var __require = /* @__PURE__ */ createRequire(import.meta.url);
28
+
29
+ //#endregion
30
+ export { __commonJS, __require, __toESM };
package/dist/cli.js CHANGED
@@ -11,7 +11,7 @@ import { execSync } from "node:child_process";
11
11
 
12
12
  //#region package.json
13
13
  var name = "@isentinel/eslint-config";
14
- var version = "3.0.0-beta.4";
14
+ var version = "3.0.0-beta.6";
15
15
  var description = "iSentinel's ESLint config";
16
16
  var keywords = [
17
17
  "eslint-config",
@@ -59,6 +59,7 @@ var dependencies = {
59
59
  "@eslint/markdown": "catalog:prod",
60
60
  "@isentinel/dict-rbxts": "catalog:prod",
61
61
  "@isentinel/dict-roblox": "catalog:prod",
62
+ "@isentinel/eslint-plugin-comment-length": "catalog:prod",
62
63
  "@prettier/plugin-oxc": "catalog:prod",
63
64
  "@shopify/eslint-plugin": "catalog:prod",
64
65
  "@stylistic/eslint-plugin": "catalog:prod",
@@ -73,7 +74,6 @@ var dependencies = {
73
74
  "eslint-plugin-antfu": "catalog:prod",
74
75
  "eslint-plugin-arrow-return-style-x": "catalog:prod",
75
76
  "eslint-plugin-better-max-params": "catalog:prod",
76
- "eslint-plugin-comment-length": "catalog:prod",
77
77
  "eslint-plugin-de-morgan": "catalog:prod",
78
78
  "eslint-plugin-format-lua": "catalog:prod",
79
79
  "eslint-plugin-import-lite": "catalog:prod",
@@ -105,6 +105,7 @@ var devDependencies = {
105
105
  "@eslint-react/eslint-plugin": "catalog:peer",
106
106
  "@eslint/config-inspector": "catalog:dev",
107
107
  "@isentinel/eslint-config": "workspace:*",
108
+ "@isentinel/tsconfig": "catalog:dev",
108
109
  "@stylistic/eslint-plugin-migrate": "catalog:dev",
109
110
  "@types/fs-extra": "catalog:dev",
110
111
  "@types/node": "catalog:dev",
@@ -113,10 +114,12 @@ var devDependencies = {
113
114
  "@vitest/eslint-plugin": "catalog:peer",
114
115
  "bumpp": "catalog:dev",
115
116
  "eslint": "catalog:peer",
117
+ "eslint-plugin-erasable-syntax-only": "catalog:peer",
116
118
  "eslint-plugin-eslint-plugin": "catalog:peer",
117
119
  "eslint-plugin-jest": "catalog:peer",
118
120
  "eslint-plugin-n": "catalog:peer",
119
121
  "eslint-plugin-react-roblox-hooks": "catalog:peer",
122
+ "eslint-plugin-unused-imports": "catalog:dev",
120
123
  "eslint-typegen": "catalog:dev",
121
124
  "esno": "catalog:dev",
122
125
  "execa": "catalog:dev",
@@ -471,7 +474,7 @@ async function updateEslintFiles(result) {
471
474
  const pathESLintIgnore = path.join(cwd, ".eslintignore");
472
475
  const pathPackageJSON = path.join(cwd, "package.json");
473
476
  const packageContent = await fsp.readFile(pathPackageJSON, "utf-8");
474
- const configFileName = JSON.parse(packageContent).type === "module" ? "eslint.config.js" : "eslint.config.mjs";
477
+ const configFileName = JSON.parse(packageContent)["type"] === "module" ? "eslint.config.js" : "eslint.config.mjs";
475
478
  const pathFlatConfig = path.join(cwd, configFileName);
476
479
  const eslintIgnores = [];
477
480
  if (fs.existsSync(pathESLintIgnore)) {
@@ -513,7 +516,7 @@ async function updatePackageJson(result) {
513
516
  const parsedPackage = JSON.parse(packageContent);
514
517
  parsedPackage.devDependencies ??= {};
515
518
  parsedPackage.devDependencies["@isentinel/eslint-config"] = `^${version}`;
516
- parsedPackage.devDependencies.eslint ??= versionsMap.eslint;
519
+ parsedPackage.devDependencies["eslint"] ??= versionsMap.eslint;
517
520
  const addedPackages = [];
518
521
  for (const framework of result.frameworks) if (framework in dependenciesMap) for (const dep of dependenciesMap[framework]) {
519
522
  parsedPackage.devDependencies[dep] = versionsMap[dep];
@@ -548,7 +551,7 @@ async function updateVscodeSettings(result) {
548
551
  //#endregion
549
552
  //#region src/cli/run.ts
550
553
  async function run(options = {}) {
551
- const argumentSkipPrompt = !!(process.env.SKIP_PROMPT ?? "") || options.yes;
554
+ const argumentSkipPrompt = !!(process.env["SKIP_PROMPT"] ?? "") || options.yes;
552
555
  const argumentTemplate = options.frameworks?.map((framework) => framework.trim()).filter((framework) => {
553
556
  return frameworks.includes(framework);
554
557
  });
@@ -0,0 +1,96 @@
1
+ import { createRequire } from "module";
2
+
3
+ //#region node_modules/.pnpm/eslint-plugin-unused-imports@4.2.0_@typescript-eslint+eslint-plugin@8.39.1_@typescript-_d725b5966c09a4e636f423644baea633/node_modules/eslint-plugin-unused-imports/dist/index.mjs
4
+ var commaFilter = { filter: (token) => token.value === "," };
5
+ var includeCommentsFilter = { includeComments: true };
6
+ function makePredicate(isImport, addFixer) {
7
+ return (problem, context) => {
8
+ const sourceCode = context.sourceCode || context.getSourceCode();
9
+ const { parent } = problem.node ?? sourceCode.getNodeByRangeIndex(sourceCode.getIndexFromLoc(problem.loc.start));
10
+ return parent ? /^Import(|Default|Namespace)Specifier$/.test(parent.type) == isImport ? Object.assign(problem, addFixer?.(parent, sourceCode)) : false : isImport ? false : problem;
11
+ };
12
+ }
13
+ var unusedVarsPredicate = makePredicate(false);
14
+ var unusedImportsPredicate = makePredicate(true, (parent, sourceCode) => ({ fix(fixer) {
15
+ const grandParent = parent.parent;
16
+ if (!grandParent) return null;
17
+ if (grandParent.specifiers.length === 1) {
18
+ const nextToken = sourceCode.getTokenAfter(grandParent, includeCommentsFilter);
19
+ const newLinesBetween = nextToken ? nextToken.loc.start.line - grandParent.loc.start.line : 0;
20
+ const endOfReplaceRange = nextToken ? nextToken.range[0] : grandParent.range[1];
21
+ const count = Math.max(0, newLinesBetween - 1);
22
+ return [fixer.remove(grandParent), fixer.replaceTextRange([grandParent.range[1], endOfReplaceRange], "\n".repeat(count))];
23
+ }
24
+ if (parent !== grandParent.specifiers[grandParent.specifiers.length - 1]) {
25
+ const comma = sourceCode.getTokenAfter(parent, commaFilter);
26
+ const prevNode = sourceCode.getTokenBefore(parent);
27
+ return [
28
+ fixer.removeRange([prevNode.range[1], parent.range[0]]),
29
+ fixer.remove(parent),
30
+ fixer.remove(comma)
31
+ ];
32
+ }
33
+ if (grandParent.specifiers.filter((specifier) => specifier.type === "ImportSpecifier").length === 1) {
34
+ const start = sourceCode.getTokenBefore(parent, commaFilter);
35
+ const end = sourceCode.getTokenAfter(parent, { filter: (token) => token.value === "}" });
36
+ return fixer.removeRange([start.range[0], end.range[1]]);
37
+ }
38
+ return fixer.removeRange([sourceCode.getTokenBefore(parent, commaFilter).range[0], parent.range[1]]);
39
+ } }));
40
+ function createRuleWithPredicate(name, baseRule, predicate) {
41
+ return {
42
+ ...baseRule,
43
+ meta: {
44
+ ...baseRule.meta,
45
+ fixable: "code",
46
+ docs: {
47
+ ...baseRule.meta?.docs,
48
+ url: `https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/${name}.md`
49
+ }
50
+ },
51
+ create(context) {
52
+ return baseRule.create(Object.create(context, { report: {
53
+ enumerable: true,
54
+ value(problem) {
55
+ const result = predicate(problem, context);
56
+ if (result) context.report(result);
57
+ }
58
+ } }));
59
+ }
60
+ };
61
+ }
62
+ var rule;
63
+ var require2 = createRequire(import.meta.url);
64
+ function getBaseRule() {
65
+ if (!rule) rule = getRuleFromTSLintPlugin() ?? getRuleFromTSLint() ?? getESLintBaseRule();
66
+ return rule;
67
+ }
68
+ function getRuleFromTSLintPlugin() {
69
+ try {
70
+ return require2("@typescript-eslint/eslint-plugin").rules["no-unused-vars"];
71
+ } catch (_) {
72
+ return null;
73
+ }
74
+ }
75
+ function getRuleFromTSLint() {
76
+ try {
77
+ return require2("typescript-eslint").plugin.rules["no-unused-vars"];
78
+ } catch (_) {
79
+ return null;
80
+ }
81
+ }
82
+ function getESLintBaseRule() {
83
+ return new (require2("eslint")).Linter({ configType: "eslintrc" }).getRules().get("no-unused-vars");
84
+ }
85
+ var no_unused_vars_default = createRuleWithPredicate("no-unused-vars", getBaseRule(), unusedVarsPredicate);
86
+ var no_unused_imports_default = createRuleWithPredicate("no-unused-imports", getBaseRule(), unusedImportsPredicate);
87
+ var index_default = {
88
+ meta: { name: "unused-imports" },
89
+ rules: {
90
+ "no-unused-vars": no_unused_vars_default,
91
+ "no-unused-imports": no_unused_imports_default
92
+ }
93
+ };
94
+
95
+ //#endregion
96
+ export { index_default as default };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { Options, Options as PrettierOptions } from "prettier";
2
2
  import { FlatConfigComposer } from "eslint-flat-config-utils";
3
3
  import { FlatConfig } from "@eslint/compat";
4
+ import { Linter } from "eslint";
4
5
  import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
5
6
  import { ParserOptions } from "@typescript-eslint/parser";
6
7
  import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
7
8
  import { ESLintReactSettings } from "@eslint-react/shared";
8
- import { Linter } from "eslint";
9
9
 
10
10
  //#region src/typegen.d.ts
11
11
  interface RuleOptions {
@@ -7353,6 +7353,16 @@ interface RuleOptions {
7353
7353
  * @see https://github.com/sindresorhus/eslint-plugin-unicorn/blob/v60.0.0/docs/rules/throw-new-error.md
7354
7354
  */
7355
7355
  'unicorn/throw-new-error'?: Linter.RuleEntry<[]>;
7356
+ /**
7357
+ * Disallow unused variables
7358
+ * @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-imports.md
7359
+ */
7360
+ 'unused-imports/no-unused-imports'?: Linter.RuleEntry<UnusedImportsNoUnusedImports>;
7361
+ /**
7362
+ * Disallow unused variables
7363
+ * @see https://github.com/sweepline/eslint-plugin-unused-imports/blob/master/docs/rules/no-unused-vars.md
7364
+ */
7365
+ 'unused-imports/no-unused-vars'?: Linter.RuleEntry<UnusedImportsNoUnusedVars>;
7356
7366
  /**
7357
7367
  * Require calls to `isNaN()` when checking for `NaN`
7358
7368
  * @see https://eslint.org/docs/latest/rules/use-isnan
@@ -14846,6 +14856,32 @@ type UnicornTemplateIndent = [] | [{
14846
14856
  selectors?: string[];
14847
14857
  comments?: string[];
14848
14858
  }];
14859
+ // ----- unused-imports/no-unused-imports -----
14860
+ type UnusedImportsNoUnusedImports = [] | [(("all" | "local") | {
14861
+ args?: ("all" | "after-used" | "none");
14862
+ argsIgnorePattern?: string;
14863
+ caughtErrors?: ("all" | "none");
14864
+ caughtErrorsIgnorePattern?: string;
14865
+ destructuredArrayIgnorePattern?: string;
14866
+ ignoreClassWithStaticInitBlock?: boolean;
14867
+ ignoreRestSiblings?: boolean;
14868
+ reportUsedIgnorePattern?: boolean;
14869
+ vars?: ("all" | "local");
14870
+ varsIgnorePattern?: string;
14871
+ })];
14872
+ // ----- unused-imports/no-unused-vars -----
14873
+ type UnusedImportsNoUnusedVars = [] | [(("all" | "local") | {
14874
+ args?: ("all" | "after-used" | "none");
14875
+ argsIgnorePattern?: string;
14876
+ caughtErrors?: ("all" | "none");
14877
+ caughtErrorsIgnorePattern?: string;
14878
+ destructuredArrayIgnorePattern?: string;
14879
+ ignoreClassWithStaticInitBlock?: boolean;
14880
+ ignoreRestSiblings?: boolean;
14881
+ reportUsedIgnorePattern?: boolean;
14882
+ vars?: ("all" | "local");
14883
+ varsIgnorePattern?: string;
14884
+ })];
14849
14885
  // ----- use-isnan -----
14850
14886
  type UseIsnan = [] | [{
14851
14887
  enforceForSwitchCase?: boolean;
@@ -15078,7 +15114,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
15078
15114
  onlyEquality?: boolean;
15079
15115
  }];
15080
15116
  // Names of all the configs
15081
- type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'gitignore' | 'isentinel/ignores' | 'isentinel/imports/rules' | 'isentinel/imports/game' | 'isentinel/javascript/setup' | 'isentinel/javascript/rules' | 'isentinel/jsdoc/setup' | 'isentinel/jsdoc' | 'isentinel/jsonc/setup' | 'isentinel/jsonc/rules' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/node/rules' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/prettier/setup' | 'isentinel/prettier/javascript' | 'isentinel/prettier' | 'isentinel/prettier/css' | 'isentinel/prettier/scss' | 'isentinel/prettier/less' | 'isentinel/prettier/html' | 'isentinel/prettier/markdown' | 'isentinel/prettier/graphql' | 'isentinel/prettier/json' | 'isentinel/prettier/yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/rules' | 'isentinel/react/type-aware-rules' | 'isentinel/roblox/setup' | 'isentinel/roblox/parser' | 'isentinel/roblox/type-aware-parser' | 'isentinel/roblox' | 'isentinel/roblox/rules-type-aware' | 'isentinel/roblox/format-lua/setup' | 'isentinel/roblox/format-lua' | 'isentinel/shopify' | 'isentinel/sonarjs' | 'isentinel/sort-tsconfig' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/toml/setup' | 'isentinel/toml/rules' | 'isentinel/typescript/setup' | 'isentinel/typescript/parser' | 'isentinel/typescript/type-aware-parser' | 'isentinel/typescript/rules' | 'isentinel/typescript/rules-type-aware' | 'isentinel/unicorn' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
15117
+ type ConfigNames = 'isentinel/eslint/comments' | 'isentinel/eslint/comments/src' | 'isentinel/eslint-plugin/setup' | 'isentinel/eslint-plugin/rules' | 'gitignore' | 'isentinel/ignores' | 'isentinel/imports/rules' | 'isentinel/imports/game' | 'isentinel/javascript/setup' | 'isentinel/javascript/rules' | 'isentinel/jsdoc/setup' | 'isentinel/jsdoc' | 'isentinel/jsonc/setup' | 'isentinel/jsonc/rules' | 'isentinel/markdown/setup' | 'isentinel/markdown/processor' | 'isentinel/markdown/parser' | 'isentinel/markdown/disables' | 'isentinel/node/rules' | 'isentinel/package-json/setup' | 'isentinel/package-json' | 'isentinel/perfectionist/setup' | 'isentinel/perfectionist' | 'isentinel/pnpm/setup' | 'isentinel/pnpm/package-json' | 'isentinel/pnpm/pnpm-workspace-yaml' | 'isentinel/prettier/setup' | 'isentinel/prettier/javascript' | 'isentinel/prettier' | 'isentinel/prettier/css' | 'isentinel/prettier/scss' | 'isentinel/prettier/less' | 'isentinel/prettier/html' | 'isentinel/prettier/markdown' | 'isentinel/prettier/graphql' | 'isentinel/prettier/json' | 'isentinel/prettier/yaml' | 'isentinel/promise' | 'isentinel/react/setup' | 'isentinel/react/rules' | 'isentinel/react/type-aware-rules' | 'isentinel/roblox/setup' | 'isentinel/roblox/parser' | 'isentinel/roblox/type-aware-parser' | 'isentinel/roblox' | 'isentinel/roblox/rules-type-aware' | 'isentinel/roblox/format-lua/setup' | 'isentinel/roblox/format-lua' | 'isentinel/shopify' | 'isentinel/sonarjs' | 'isentinel/sort-tsconfig' | 'isentinel/spelling/setup' | 'isentinel/spelling' | 'isentinel/stylistic/setup' | 'isentinel/stylistic' | 'isentinel/stylistic/ts' | 'isentinel/stylistic/js' | 'isentinel/stylistic/markdown-code' | 'isentinel/test/jest/setup' | 'isentinel/test/jest/rules' | 'isentinel/toml/setup' | 'isentinel/toml/rules' | 'isentinel/typescript/setup' | 'isentinel/typescript/parser' | 'isentinel/typescript/type-aware-parser' | 'isentinel/typescript/rules' | 'isentinel/typescript/rules-type-aware' | 'isentinel/unicorn' | 'isentinel/unicorn/root' | 'isentinel/yaml/setup' | 'isentinel/yaml/rules';
15082
15118
  //#endregion
15083
15119
  //#region src/types.d.ts
15084
15120
  type Awaitable<T> = Promise<T> | T;
@@ -15324,7 +15360,16 @@ interface OptionsTestFramework {
15324
15360
  /** Enable Vitest support. */
15325
15361
  vitest?: boolean;
15326
15362
  }
15327
- type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptParserOptions) | (OptionsOverrides & OptionsTypeScriptWithTypes);
15363
+ type OptionsTypescript = (OptionsOverrides & OptionsTypeScriptErasableOnly & OptionsTypeScriptParserOptions) | (OptionsOverrides & OptionsTypeScriptErasableOnly & OptionsTypeScriptWithTypes);
15364
+ interface OptionsTypeScriptErasableOnly {
15365
+ /**
15366
+ * Enable erasable syntax only rules.
15367
+ *
15368
+ * @see https://github.com/JoshuaKGoldberg/eslint-plugin-erasable-syntax-only
15369
+ * @default false
15370
+ */
15371
+ erasableOnly?: boolean;
15372
+ }
15328
15373
  interface OptionsTypeScriptParserOptions {
15329
15374
  /**
15330
15375
  * Glob patterns for files that should be type aware.
@@ -15428,7 +15473,7 @@ declare function ignores(userIgnores?: Array<string>): Promise<Array<TypedFlatCo
15428
15473
  declare function imports(options?: OptionsProjectType & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
15429
15474
  //#endregion
15430
15475
  //#region src/configs/javascript.d.ts
15431
- declare function javascript(options?: OptionsIsInEditor & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
15476
+ declare function javascript(options?: OptionsIsInEditor & OptionsOverrides & OptionsRoblox & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
15432
15477
  //#endregion
15433
15478
  //#region src/configs/jsdoc.d.ts
15434
15479
  declare function jsdoc(options?: JsDocOptions & OptionsProjectType & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
@@ -15512,7 +15557,7 @@ declare function stylistic(options?: StylisticConfig, prettierOptions?: Prettier
15512
15557
  declare function toml(options?: OptionsFiles & OptionsOverrides & OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
15513
15558
  //#endregion
15514
15559
  //#region src/configs/typescript.d.ts
15515
- declare function typescript(options?: OptionsComponentExtensions & OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
15560
+ declare function typescript(options?: OptionsComponentExtensions & OptionsFiles & OptionsOverrides & OptionsStylistic & OptionsTypeScriptErasableOnly & OptionsTypeScriptParserOptions & OptionsTypeScriptWithTypes): Promise<Array<TypedFlatConfigItem>>;
15516
15561
  //#endregion
15517
15562
  //#region src/configs/unicorn.d.ts
15518
15563
  declare function unicorn(options?: OptionsStylistic): Promise<Array<TypedFlatConfigItem>>;
@@ -15525,6 +15570,7 @@ declare const defaultPluginRenaming: {
15525
15570
  "@eslint-react": string;
15526
15571
  "@eslint-react/hooks-extra": string;
15527
15572
  "@eslint-react/naming-convention": string;
15573
+ "@isentinel/eslint-plugin-comment-length": string;
15528
15574
  "@stylistic": string;
15529
15575
  "@typescript-eslint": string;
15530
15576
  "arrow-return-style-x": string;
@@ -15569,6 +15615,7 @@ declare const GLOB_HTML = "**/*.htm?(l)";
15569
15615
  declare const GLOB_XML = "**/*.xml";
15570
15616
  declare const GLOB_GRAPHQL = "**/*.{g,graph}ql";
15571
15617
  declare const GLOB_TESTS: string[];
15618
+ declare const GLOB_BUILD_TOOLS: string[];
15572
15619
  declare const GLOB_ALL_SRC: string[];
15573
15620
  declare const GLOB_EXCLUDE: string[];
15574
15621
  //#endregion
@@ -15704,4 +15751,4 @@ declare function resolveWithDefaults<T>(value: boolean | T | undefined, defaults
15704
15751
  */
15705
15752
  declare function shouldEnableFeature<T extends Record<string, any>>(options: boolean | T | undefined, key: keyof T, defaultValue?: boolean): boolean;
15706
15753
  //#endregion
15707
- export { Awaitable, type ConfigNames, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_ROOT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsDocOptions, OptionsComponentExtensions, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRoblox, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, PerfectionistConfig, type PrettierOptions, PrettierRuleOptions, ReactConfig, ResolvedOptions, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, combine, comments, createTsParser, isentinel as default, defaultPluginRenaming, disables, ensurePackages, eslintPlugin, getOverrides, getTsConfig, gitignore, ignores, imports, interopDefault, isInEditorEnvironment, isInGitHooksOrLintStaged, isentinel, javascript, jsdoc, jsonc, markdown, mergePrettierOptions, node, packageJson, parserPlain, perfectionist, pnpm, prettier, promise, react, renamePluginInConfigs, renameRules, require, resolvePrettierConfigOptions, resolveSubOptions, resolveWithDefaults, roblox, shopify, shouldEnableFeature, sonarjs, sortGithubAction, sortTsconfig, spelling, stylistic, toml, typescript, unicorn, yaml };
15754
+ export { Awaitable, type ConfigNames, GLOB_ALL_JSON, GLOB_ALL_SRC, GLOB_BUILD_TOOLS, GLOB_CSS, GLOB_DTS, GLOB_EXCLUDE, GLOB_GRAPHQL, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LUA, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_POSTCSS, GLOB_ROOT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_XML, GLOB_YAML, GitignoreOptions, JsDocOptions, OptionsComponentExtensions, OptionsConfig, OptionsFiles, OptionsFormatters, OptionsHasTypeScript, OptionsIsInEditor, OptionsOverrides, OptionsProjectType, OptionsRoblox, OptionsStylistic, OptionsTestFramework, OptionsTypeScriptErasableOnly, OptionsTypeScriptParserOptions, OptionsTypeScriptWithTypes, OptionsTypescript, PerfectionistConfig, type PrettierOptions, PrettierRuleOptions, ReactConfig, ResolvedOptions, Rules, SpellCheckConfig, StylisticConfig, StylisticConfigDefaults, TypedFlatConfigItem, combine, comments, createTsParser, isentinel as default, defaultPluginRenaming, disables, ensurePackages, eslintPlugin, getOverrides, getTsConfig, gitignore, ignores, imports, interopDefault, isInEditorEnvironment, isInGitHooksOrLintStaged, isentinel, javascript, jsdoc, jsonc, markdown, mergePrettierOptions, node, packageJson, parserPlain, perfectionist, pnpm, prettier, promise, react, renamePluginInConfigs, renameRules, require, resolvePrettierConfigOptions, resolveSubOptions, resolveWithDefaults, roblox, shopify, shouldEnableFeature, sonarjs, sortGithubAction, sortTsconfig, spelling, stylistic, toml, typescript, unicorn, yaml };