@creo-team/eslint-config 2.5.6 → 4.0.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,6 +1,6 @@
1
1
  # @creo-team/eslint-config
2
2
 
3
- ESLint flat config for TypeScript/React: strict type-checking, Prettier, JSDoc, complexity limits, and no magic numbers. One style and one set of rules so code stays consistent and reviewable—and so tools like Cursor and Claude can fix and generate code that matches. Works with the [ESLint MCP server](https://eslint.org/docs/latest/use/mcp).
3
+ ESLint flat config for TypeScript/React: strict type-checking, Prettier, JSDoc, complexity limits, async correctness, and no magic numbers. One style and one set of rules so code stays consistent and reviewable — and so tools like Cursor and Claude can fix and generate code that matches. Works with the [ESLint MCP server](https://eslint.org/docs/latest/use/mcp).
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/@creo-team/eslint-config.svg)](https://www.npmjs.com/package/@creo-team/eslint-config)
6
6
  [![License](https://img.shields.io/github/license/creo-team/eslint-config)](./LICENSE)
@@ -79,8 +79,8 @@ module.exports = createConfig({
79
79
  "fix": "eslint . --fix"
80
80
  },
81
81
  "devDependencies": {
82
- "@creo-team/eslint-config": "^2.4.1",
83
- "eslint": "^9.39.3"
82
+ "@creo-team/eslint-config": "^3.0.0",
83
+ "eslint": "^9.39.4"
84
84
  }
85
85
  }
86
86
  ```
@@ -252,13 +252,16 @@ module.exports = [
252
252
 
253
253
  | Rule / area | Benefit |
254
254
  |-------------|--------|
255
- | **Strict type-checked** (typescript-eslint) | Catches type errors and unsafe `any` before runtime. Fewer “works until it doesn’t” bugs. |
256
- | **JSDoc** (params, returns, descriptions) | Public API is self-describing. IDE hints and “go to definition” are useful without opening the implementation. |
257
- | **complexity (max 15)** | Branches and conditionals stay bounded. Functions stay testable and easier to reason about. |
258
- | **max-lines-per-function (200)** | Long functions get split. Easier to name, test, and reuse. |
259
- | **no-magic-numbers (warn)** | Literals become named constants. Changing a threshold or status code happens in one place. |
260
- | **Import rules** (no-cycle, order, resolver) | No circular deps; consistent import order; TypeScript path resolution works. |
261
- | **Prettier** | One formatter. No style churn in code review. |
255
+ | **Strict type-checked** (typescript-eslint) | Catches type errors and unsafe `any` before runtime. Fewer “works until it doesn’t” bugs |
256
+ | **JSDoc** (params, returns, descriptions) | Public API is self-describing. IDE hints and “go to definition” work without opening the implementation |
257
+ | **complexity (max 15)** | Branches and conditionals stay bounded. Functions stay testable and easier to reason about |
258
+ | **max-lines-per-function (200)** | Long functions get split. Easier to name, test, and reuse |
259
+ | **no-magic-numbers (warn)** | Literals become named constants. Changing a threshold or status code happens in one place |
260
+ | **no-promise-executor-return** | Catches returning values from Promise executors — always a bug |
261
+ | **no-await-in-loop (warn)** | Flags sequential awaits that should be `Promise.all()` |
262
+ | **no-console (warn)** | Catches leftover debug logging, especially from AI-generated code |
263
+ | **Import rules** (no-cycle, order, resolver) | No circular deps; consistent import order; TypeScript path resolution works |
264
+ | **Prettier** | One formatter. No style churn in code review |
262
265
 
263
266
  **LLM- and assistant-friendly.** Cursor, Claude, and other tools behave better when the codebase is consistent and documented. This config enforces one style (so generated code matches), requires JSDoc on public surfaces (so the model has context), and keeps complexity and magic numbers in check (so suggestions stay in the same style and refactors are local). Use the [ESLint MCP server](https://eslint.org/docs/latest/use/mcp) so the assistant can run ESLint and fix violations in your editor.
264
267
 
@@ -358,10 +361,17 @@ Import rule values and presets — no magic strings:
358
361
 
359
362
  - **TypeScript ESLint** — recommended + strict type-checked, stylistic
360
363
  - **Prettier** — formatting (tabs, 120 print width, no semicolons)
361
- - **JSDoc** — require descriptions, params, returns
364
+ - **JSDoc** — require descriptions, params, returns on declarations/methods (not arrow functions)
362
365
  - **Import** — order, no cycles, resolver TypeScript
363
366
  - **Perfectionist** — alphabetical sort (imports sort disabled)
364
- - **Quality** — complexity (max 15), max-lines, max-lines-per-function, no-magic-numbers (warn)
367
+ - **Async correctness** — no-promise-executor-return (error), no-await-in-loop (warn)
368
+ - **Quality** — complexity (max 15), max-lines, max-lines-per-function, no-magic-numbers (warn), no-console (warn)
369
+
370
+ ## Docs
371
+
372
+ - [ESLINT-STANDARDS.md](./docs/ESLINT-STANDARDS.md) — architecture and rule philosophy
373
+ - [ESLINT-AUDIT.md](./docs/ESLINT-AUDIT.md) — v3.0.0 audit findings and decisions
374
+ - [AI-CODE-STANDARDS.md](./docs/AI-CODE-STANDARDS.md) — guidelines for AI assistants
365
375
 
366
376
  ## Release flow
367
377
 
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  const eslint = require('@eslint/js');
3
3
  const pluginStylistic = require('@stylistic/eslint-plugin');
4
- const pluginImport = require('eslint-plugin-import');
4
+ const pluginImport = require('eslint-plugin-import-x');
5
+ const { createTypeScriptImportResolver } = require('eslint-import-resolver-typescript');
5
6
  const jsdoc = require('eslint-plugin-jsdoc');
6
7
  const perfectionist = require('eslint-plugin-perfectionist');
7
8
  const prettier = require('eslint-plugin-prettier');
@@ -39,13 +40,6 @@ function createConfig(options = {}) {
39
40
  }
40
41
  const configBlocks = [
41
42
  { ignores },
42
- {
43
- files: ['constants.js', 'rules.js'],
44
- rules: {
45
- '@typescript-eslint/naming-convention': off,
46
- 'perfectionist/sort-objects': off,
47
- },
48
- },
49
43
  ...(projectStructureBlock ? [projectStructureBlock] : []),
50
44
  eslint.configs.recommended,
51
45
  ...tsEslint.configs.recommendedTypeChecked,
@@ -69,18 +63,13 @@ function createConfig(options = {}) {
69
63
  },
70
64
  plugins: {
71
65
  '@stylistic': pluginStylistic,
72
- import: pluginImport,
66
+ 'import-x': pluginImport,
73
67
  jsdoc,
74
68
  prettier,
75
69
  },
76
- rules: {
77
- ...rules,
78
- '@typescript-eslint/no-misused-spread': off,
79
- },
70
+ rules,
80
71
  settings: {
81
- 'import/resolver': {
82
- typescript: {},
83
- },
72
+ 'import-x/resolver-next': [createTypeScriptImportResolver()],
84
73
  },
85
74
  },
86
75
  {
@@ -92,7 +81,6 @@ function createConfig(options = {}) {
92
81
  rules: {
93
82
  ...rules,
94
83
  '@typescript-eslint/naming-convention': ['error', ...namingConvention.default],
95
- '@typescript-eslint/no-misused-spread': off,
96
84
  '@typescript-eslint/no-unsafe-return': off,
97
85
  },
98
86
  },
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../eslint.config.js"],"names":[],"mappings":";AAEA,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACpC,MAAM,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;AACpD,MAAM,KAAK,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAA;AAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;AAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAE7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAC3D,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AACvC,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAC1D,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAEjD,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAY9C,SAAS,YAAY,CAAC,OAAO,GAAG,EAAE;IACjC,MAAM,EACL,OAAO,GAAG,eAAe,EACzB,cAAc,GAAG,KAAK,EACtB,SAAS,EAAE,aAAa,GAAG,IAAI,EAC/B,QAAQ,GAAG,eAAe,EAAE,GAC5B,GAAG,OAAO,CAAA;IAEX,MAAM,aAAa,GAAG,cAAc;QACnC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE;QACrD,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,CAAA;IAEnD,IAAI,qBAAqB,GAAG,IAAI,CAAA;IAChC,IAAI,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACtB,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAA;YACxD,IAAI,YAAY,EAAE,CAAC;gBAClB,qBAAqB,GAAG;oBACvB,KAAK,EAAE,CAAC,IAAI,CAAC;oBACb,OAAO,EAAE,CAAC,6BAA6B,CAAC;oBACxC,eAAe,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE;oBACnD,OAAO,EAAE,EAAE,mBAAmB,EAAE,sBAAsB,EAAE;oBACxD,KAAK,EAAE;wBACN,oCAAoC,EAAE,CAAC,OAAO,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;qBACpF;iBACD,CAAA;YACF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,IAAI,KAAK,CACd,kJAAkJ,CAClJ,CAAA;QACF,CAAC;IACF,CAAC;IAED,MAAM,YAAY,GAAG;QACpB,EAAE,OAAO,EAAE;QACX;YACC,KAAK,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;YACnC,KAAK,EAAE;gBACN,sCAAsC,EAAE,GAAG;gBAC3C,4BAA4B,EAAE,GAAG;aACjC;SACD;QACD,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,WAAW;QAC1B,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB;QAC1C,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB;QACxC,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB;QACrC,aAAa,CAAC,OAAO,CAAC,0BAA0B,CAAC;QACjD;YACC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACxB,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB;SACtC;QACD;YACC,eAAe,EAAE;gBAChB,OAAO,EAAE;oBACR,OAAO,EAAE,UAAU;oBACnB,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,UAAU;iBACnB;gBACD,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,aAAa;aACb;YACD,OAAO,EAAE;gBACR,YAAY,EAAE,eAAe;gBAC7B,MAAM,EAAE,YAAY;gBACpB,KAAK;gBACL,QAAQ;aACR;YACD,KAAK,EAAE;gBACN,GAAG,KAAK;gBACR,sCAAsC,EAAE,GAAG;aAC3C;YACD,QAAQ,EAAE;gBACT,iBAAiB,EAAE;oBAClB,UAAU,EAAE,EAAE;iBACd;aACD;SACD;QACD;YACC,KAAK,EAAE,CAAC,UAAU,CAAC;YACnB,eAAe,EAAE;gBAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,aAAa;aACb;YACD,KAAK,EAAE;gBACN,GAAG,KAAK;gBACR,sCAAsC,EAAE,CAAC,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBAC9E,sCAAsC,EAAE,GAAG;gBAC3C,qCAAqC,EAAE,GAAG;aAC1C;SACD;QACD;YACC,KAAK,EAAE,CAAC,cAAc,EAAE,UAAU,CAAC;YACnC,KAAK,EAAE;gBACN,sCAAsC,EAAE,GAAG;gBAC3C,4BAA4B,EAAE,GAAG;aACjC;SACD;KACD,CAAA;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;AACjF,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAA"}
1
+ {"version":3,"file":"eslint.config.js","sourceRoot":"","sources":["../eslint.config.js"],"names":[],"mappings":"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"}
package/dist/rules.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export const commonjsPreventRules: {
2
2
  '@typescript-eslint/no-require-imports': string;
3
- 'import/no-amd': string;
4
- 'import/no-commonjs': string;
5
- 'import/no-default-export': string;
3
+ 'import-x/no-amd': string;
4
+ 'import-x/no-commonjs': string;
5
+ 'import-x/no-default-export': string;
6
6
  };
7
7
  export const jsDoc: {
8
8
  'jsdoc/require-description-complete-sentence': string;
@@ -60,6 +60,7 @@ export const rules: {
60
60
  })[];
61
61
  '@typescript-eslint/no-explicit-any': string;
62
62
  '@typescript-eslint/no-extraneous-class': string;
63
+ '@typescript-eslint/no-misused-spread': string;
63
64
  '@typescript-eslint/no-unnecessary-condition': string;
64
65
  '@typescript-eslint/no-unsafe-argument': string;
65
66
  '@typescript-eslint/no-unsafe-assignment': string;
@@ -72,22 +73,21 @@ export const rules: {
72
73
  max: number;
73
74
  })[];
74
75
  'dot-notation': string;
75
- 'eol-last': string[];
76
- 'import/first': string;
77
- 'import/named': string;
78
- 'import/newline-after-import': (string | {
76
+ 'import-x/first': string;
77
+ 'import-x/named': string;
78
+ 'import-x/newline-after-import': (string | {
79
79
  count: number;
80
80
  })[];
81
- 'import/no-absolute-path': string;
82
- 'import/no-cycle': string;
83
- 'import/no-duplicates': string;
84
- 'import/no-empty-named-blocks': string;
85
- 'import/no-relative-packages': string;
86
- 'import/no-self-import': string;
87
- 'import/no-unresolved': string;
88
- 'import/no-unused-modules': string;
89
- 'import/no-useless-path-segments': string;
90
- 'import/prefer-default-export': string;
81
+ 'import-x/no-absolute-path': string;
82
+ 'import-x/no-cycle': string;
83
+ 'import-x/no-duplicates': string;
84
+ 'import-x/no-empty-named-blocks': string;
85
+ 'import-x/no-relative-packages': string;
86
+ 'import-x/no-self-import': string;
87
+ 'import-x/no-unresolved': string;
88
+ 'import-x/no-unused-modules': string;
89
+ 'import-x/no-useless-path-segments': string;
90
+ 'import-x/prefer-default-export': string;
91
91
  'max-classes-per-file': (string | {
92
92
  ignoreExpressions: boolean;
93
93
  max: number;
@@ -99,17 +99,15 @@ export const rules: {
99
99
  })[];
100
100
  'max-lines-per-function': (string | number)[];
101
101
  'newline-before-return': string;
102
- 'no-inline-comments': string;
102
+ 'no-await-in-loop': string;
103
+ 'no-console': string;
103
104
  'no-magic-numbers': (string | {
104
105
  enforceConst: boolean;
105
106
  ignore: number[];
106
107
  ignoreArrayIndexes: boolean;
107
108
  ignoreDefaultValues: boolean;
108
109
  })[];
109
- 'no-mixed-spaces-and-tabs': string;
110
- 'no-multiple-empty-lines': (string | {
111
- max: number;
112
- })[];
110
+ 'no-promise-executor-return': string;
113
111
  'no-restricted-imports': string;
114
112
  'no-unsafe-member-access': string;
115
113
  'object-curly-newline': string;
@@ -118,21 +116,6 @@ export const rules: {
118
116
  balanced: boolean;
119
117
  };
120
118
  })[];
121
- '@stylistic/block-spacing': string[];
122
- '@stylistic/brace-style': string[];
123
- '@stylistic/comma-dangle': string[];
124
- '@stylistic/comma-spacing': (string | {
125
- before: boolean;
126
- })[];
127
- '@stylistic/function-call-spacing': string[];
128
- '@stylistic/key-spacing': (string | {
129
- afterColon: boolean;
130
- beforeColon: boolean;
131
- })[];
132
- '@stylistic/keyword-spacing': (string | {
133
- after: boolean;
134
- before: boolean;
135
- })[];
136
119
  '@stylistic/lines-around-comment': (string | {
137
120
  allowArrayStart: boolean;
138
121
  allowBlockStart: boolean;
@@ -153,18 +136,6 @@ export const rules: {
153
136
  exceptAfterSingleLine: boolean;
154
137
  enforce?: undefined;
155
138
  })[];
156
- '@stylistic/member-delimiter-style': (string | {
157
- multiline: {
158
- delimiter: string;
159
- };
160
- })[];
161
- '@stylistic/no-extra-parens': string[];
162
- '@stylistic/padding-line-between-statements': string;
163
- '@stylistic/quote-props': string[];
164
- '@stylistic/semi': string[];
165
- '@stylistic/space-before-blocks': string[];
166
- '@stylistic/space-infix-ops': string;
167
- '@stylistic/type-annotation-spacing': string;
168
139
  'jsdoc/require-description-complete-sentence': string;
169
140
  'jsdoc/require-hyphen-before-param-description': string;
170
141
  'jsdoc/require-jsdoc': (string | {
@@ -203,26 +174,11 @@ export const rules: {
203
174
  useTabs: boolean;
204
175
  })[];
205
176
  '@typescript-eslint/no-require-imports': string;
206
- 'import/no-amd': string;
207
- 'import/no-commonjs': string;
208
- 'import/no-default-export': string;
177
+ 'import-x/no-amd': string;
178
+ 'import-x/no-commonjs': string;
179
+ 'import-x/no-default-export': string;
209
180
  };
210
181
  export const stylisticTs: {
211
- '@stylistic/block-spacing': string[];
212
- '@stylistic/brace-style': string[];
213
- '@stylistic/comma-dangle': string[];
214
- '@stylistic/comma-spacing': (string | {
215
- before: boolean;
216
- })[];
217
- '@stylistic/function-call-spacing': string[];
218
- '@stylistic/key-spacing': (string | {
219
- afterColon: boolean;
220
- beforeColon: boolean;
221
- })[];
222
- '@stylistic/keyword-spacing': (string | {
223
- after: boolean;
224
- before: boolean;
225
- })[];
226
182
  '@stylistic/lines-around-comment': (string | {
227
183
  allowArrayStart: boolean;
228
184
  allowBlockStart: boolean;
@@ -243,18 +199,6 @@ export const stylisticTs: {
243
199
  exceptAfterSingleLine: boolean;
244
200
  enforce?: undefined;
245
201
  })[];
246
- '@stylistic/member-delimiter-style': (string | {
247
- multiline: {
248
- delimiter: string;
249
- };
250
- })[];
251
- '@stylistic/no-extra-parens': string[];
252
- '@stylistic/padding-line-between-statements': string;
253
- '@stylistic/quote-props': string[];
254
- '@stylistic/semi': string[];
255
- '@stylistic/space-before-blocks': string[];
256
- '@stylistic/space-infix-ops': string;
257
- '@stylistic/type-annotation-spacing': string;
258
202
  };
259
203
  export const tsEslint: {
260
204
  '@typescript-eslint/array-type': string;
@@ -270,6 +214,7 @@ export const tsEslint: {
270
214
  })[];
271
215
  '@typescript-eslint/no-explicit-any': string;
272
216
  '@typescript-eslint/no-extraneous-class': string;
217
+ '@typescript-eslint/no-misused-spread': string;
273
218
  '@typescript-eslint/no-unnecessary-condition': string;
274
219
  '@typescript-eslint/no-unsafe-argument': string;
275
220
  '@typescript-eslint/no-unsafe-assignment': string;
@@ -282,22 +227,21 @@ export const tsEslint: {
282
227
  max: number;
283
228
  })[];
284
229
  'dot-notation': string;
285
- 'eol-last': string[];
286
- 'import/first': string;
287
- 'import/named': string;
288
- 'import/newline-after-import': (string | {
230
+ 'import-x/first': string;
231
+ 'import-x/named': string;
232
+ 'import-x/newline-after-import': (string | {
289
233
  count: number;
290
234
  })[];
291
- 'import/no-absolute-path': string;
292
- 'import/no-cycle': string;
293
- 'import/no-duplicates': string;
294
- 'import/no-empty-named-blocks': string;
295
- 'import/no-relative-packages': string;
296
- 'import/no-self-import': string;
297
- 'import/no-unresolved': string;
298
- 'import/no-unused-modules': string;
299
- 'import/no-useless-path-segments': string;
300
- 'import/prefer-default-export': string;
235
+ 'import-x/no-absolute-path': string;
236
+ 'import-x/no-cycle': string;
237
+ 'import-x/no-duplicates': string;
238
+ 'import-x/no-empty-named-blocks': string;
239
+ 'import-x/no-relative-packages': string;
240
+ 'import-x/no-self-import': string;
241
+ 'import-x/no-unresolved': string;
242
+ 'import-x/no-unused-modules': string;
243
+ 'import-x/no-useless-path-segments': string;
244
+ 'import-x/prefer-default-export': string;
301
245
  'max-classes-per-file': (string | {
302
246
  ignoreExpressions: boolean;
303
247
  max: number;
@@ -309,17 +253,15 @@ export const tsEslint: {
309
253
  })[];
310
254
  'max-lines-per-function': (string | number)[];
311
255
  'newline-before-return': string;
312
- 'no-inline-comments': string;
256
+ 'no-await-in-loop': string;
257
+ 'no-console': string;
313
258
  'no-magic-numbers': (string | {
314
259
  enforceConst: boolean;
315
260
  ignore: number[];
316
261
  ignoreArrayIndexes: boolean;
317
262
  ignoreDefaultValues: boolean;
318
263
  })[];
319
- 'no-mixed-spaces-and-tabs': string;
320
- 'no-multiple-empty-lines': (string | {
321
- max: number;
322
- })[];
264
+ 'no-promise-executor-return': string;
323
265
  'no-restricted-imports': string;
324
266
  'no-unsafe-member-access': string;
325
267
  'object-curly-newline': string;
package/dist/rules.js CHANGED
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
- const { all, always, error, namingConvention, never, none, off, warn } = require('./constants.js');
2
+ const { all, always, error, namingConvention, never, off, warn } = require('./constants.js');
3
3
  const maxClasses = 1;
4
4
  const maxComplexity = 15;
5
5
  const maxLinesPerFile = 400;
6
6
  const maxLinesPerFunction = 200;
7
- const maxConsecutiveEmptyLines = 1;
8
7
  const printWidth = 120;
9
8
  const tabWidth = 4;
10
9
  const newlineCount = 1;
@@ -15,7 +14,7 @@ const jsDoc = {
15
14
  error,
16
15
  {
17
16
  require: {
18
- ArrowFunctionExpression: true,
17
+ ArrowFunctionExpression: false,
19
18
  ClassDeclaration: false,
20
19
  ClassExpression: true,
21
20
  FunctionDeclaration: true,
@@ -56,25 +55,6 @@ const prettier = {
56
55
  ],
57
56
  };
58
57
  const stylisticTs = {
59
- '@stylistic/block-spacing': [error, always],
60
- '@stylistic/brace-style': [error, '1tbs'],
61
- '@stylistic/comma-dangle': [error, 'always-multiline'],
62
- '@stylistic/comma-spacing': [error, { before: false }],
63
- '@stylistic/function-call-spacing': [error, never],
64
- '@stylistic/key-spacing': [
65
- error,
66
- {
67
- afterColon: true,
68
- beforeColon: false,
69
- },
70
- ],
71
- '@stylistic/keyword-spacing': [
72
- error,
73
- {
74
- after: true,
75
- before: true,
76
- },
77
- ],
78
58
  '@stylistic/lines-around-comment': [
79
59
  error,
80
60
  {
@@ -98,19 +78,6 @@ const stylisticTs = {
98
78
  },
99
79
  { exceptAfterSingleLine: true },
100
80
  ],
101
- '@stylistic/member-delimiter-style': [
102
- error,
103
- {
104
- multiline: { delimiter: none },
105
- },
106
- ],
107
- '@stylistic/no-extra-parens': [error, 'functions'],
108
- '@stylistic/padding-line-between-statements': off,
109
- '@stylistic/quote-props': [error, 'as-needed'],
110
- '@stylistic/semi': [error, never],
111
- '@stylistic/space-before-blocks': [error, always],
112
- '@stylistic/space-infix-ops': error,
113
- '@stylistic/type-annotation-spacing': error,
114
81
  };
115
82
  const tsEslint = {
116
83
  '@typescript-eslint/array-type': error,
@@ -121,9 +88,10 @@ const tsEslint = {
121
88
  '@typescript-eslint/consistent-type-imports': error,
122
89
  '@typescript-eslint/dot-notation': error,
123
90
  '@typescript-eslint/naming-convention': [error, ...namingConvention.default],
124
- '@typescript-eslint/no-explicit-any': 'warn',
91
+ '@typescript-eslint/no-explicit-any': warn,
125
92
  '@typescript-eslint/no-extraneous-class': off,
126
- '@typescript-eslint/no-unnecessary-condition': off,
93
+ '@typescript-eslint/no-misused-spread': off,
94
+ '@typescript-eslint/no-unnecessary-condition': warn,
127
95
  '@typescript-eslint/no-unsafe-argument': warn,
128
96
  '@typescript-eslint/no-unsafe-assignment': off,
129
97
  '@typescript-eslint/no-unsafe-call': off,
@@ -133,25 +101,25 @@ const tsEslint = {
133
101
  '@typescript-eslint/unbound-method': off,
134
102
  complexity: [error, { max: maxComplexity }],
135
103
  'dot-notation': off,
136
- 'eol-last': [error, always],
137
- 'import/first': error,
138
- 'import/named': error,
139
- 'import/newline-after-import': [error, { count: newlineCount }],
140
- 'import/no-absolute-path': error,
141
- 'import/no-cycle': error,
142
- 'import/no-duplicates': error,
143
- 'import/no-empty-named-blocks': error,
144
- 'import/no-relative-packages': error,
145
- 'import/no-self-import': error,
146
- 'import/no-unresolved': error,
147
- 'import/no-unused-modules': error,
148
- 'import/no-useless-path-segments': error,
149
- 'import/prefer-default-export': off,
104
+ 'import-x/first': error,
105
+ 'import-x/named': error,
106
+ 'import-x/newline-after-import': [error, { count: newlineCount }],
107
+ 'import-x/no-absolute-path': error,
108
+ 'import-x/no-cycle': error,
109
+ 'import-x/no-duplicates': error,
110
+ 'import-x/no-empty-named-blocks': error,
111
+ 'import-x/no-relative-packages': error,
112
+ 'import-x/no-self-import': error,
113
+ 'import-x/no-unresolved': error,
114
+ 'import-x/no-unused-modules': off,
115
+ 'import-x/no-useless-path-segments': error,
116
+ 'import-x/prefer-default-export': off,
150
117
  'max-classes-per-file': [error, { ignoreExpressions: true, max: maxClasses }],
151
118
  'max-lines': [error, { max: maxLinesPerFile, skipBlankLines: true, skipComments: true }],
152
119
  'max-lines-per-function': [error, maxLinesPerFunction],
153
120
  'newline-before-return': error,
154
- 'no-inline-comments': error,
121
+ 'no-await-in-loop': warn,
122
+ 'no-console': warn,
155
123
  'no-magic-numbers': [
156
124
  warn,
157
125
  {
@@ -161,8 +129,7 @@ const tsEslint = {
161
129
  ignoreDefaultValues: true,
162
130
  },
163
131
  ],
164
- 'no-mixed-spaces-and-tabs': error,
165
- 'no-multiple-empty-lines': [error, { max: maxConsecutiveEmptyLines }],
132
+ 'no-promise-executor-return': error,
166
133
  'no-restricted-imports': off,
167
134
  'no-unsafe-member-access': off,
168
135
  'object-curly-newline': off,
@@ -170,9 +137,9 @@ const tsEslint = {
170
137
  };
171
138
  const commonjsPreventRules = {
172
139
  '@typescript-eslint/no-require-imports': off,
173
- 'import/no-amd': off,
174
- 'import/no-commonjs': off,
175
- 'import/no-default-export': off,
140
+ 'import-x/no-amd': off,
141
+ 'import-x/no-commonjs': off,
142
+ 'import-x/no-default-export': off,
176
143
  };
177
144
  const rulesToDisable = {
178
145
  'perfectionist/sort-imports': off,
package/dist/rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../rules.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../rules.js"],"names":[],"mappings":"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"}
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACpC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAOzC,SAAS,KAAK,CAAC,OAAO;IACrB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;IACtC,CAAC;AACF,CAAC;AAWD,SAAS,eAAe,CACvB,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,sBAAsB,EAClE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,eAAe,EACtE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE;IAExD,IAAI,UAAU,GAAG,QAAQ,CAAA;IAEzB,KAAK,CAAC,wBAAwB,UAAU,qBAAqB,UAAU,GAAG,CAAC,CAAA;IAE3E,OAAO,UAAU,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAE/C,KAAK,CAAC,gBAAgB,UAAU,aAAa,CAAC,CAAA;QAE9C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,UAAU,UAAU,SAAS,UAAU,GAAG,CAAC,CAAA;YAEjD,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;QACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,+CAA+C,UAAU,GAAG,CAAC,CAAA;YACnE,MAAK;QACN,CAAC;QAED,UAAU,GAAG,SAAS,CAAA;IACvB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjD,KAAK,CAAC,wBAAwB,YAAY,SAAS,YAAY,GAAG,CAAC,CAAA;IAEnE,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IAChB,KAAK;IACL,eAAe;CACf,CAAA"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../utils.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACpC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAOzC,SAAS,KAAK,CAAC,OAAO;IACrB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAE9B,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,EAAE,CAAC,CAAA;IACtC,CAAC;AACF,CAAC;AAWD,SAAS,eAAe,CACvB,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,sBAAsB,EAClE,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,eAAe,EACtE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE;IAExD,IAAI,UAAU,GAAG,QAAQ,CAAA;IAEzB,KAAK,CAAC,wBAAwB,UAAU,qBAAqB,UAAU,GAAG,CAAC,CAAA;IAE3E,OAAO,UAAU,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAE/C,KAAK,CAAC,gBAAgB,UAAU,aAAa,CAAC,CAAA;QAE9C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,UAAU,UAAU,SAAS,UAAU,GAAG,CAAC,CAAA;YAEjD,OAAO,UAAU,CAAA;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;QACrC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC9B,KAAK,CAAC,+CAA+C,UAAU,GAAG,CAAC,CAAA;YACnE,MAAK;QACN,CAAC;QAED,UAAU,GAAG,SAAS,CAAA;IACvB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjD,KAAK,CAAC,wBAAwB,YAAY,SAAS,YAAY,GAAG,CAAC,CAAA;IAEnE,OAAO,YAAY,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IAChB,KAAK;IACL,eAAe;CACf,CAAA"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@creo-team/eslint-config","version":"2.5.6","description":"ESLint flat config: TypeScript (strict), Prettier, JSDoc, complexity, no-magic-numbers. createConfig() for options.","author":"Colten Krauter <coltenkrauter>","main":"dist/eslint.config.js","homepage":"https://github.com/creo-team/eslint-config","repository":{"type":"git","url":"git+https://github.com/creo-team/eslint-config.git"},"scripts":{"build":"tsc","fix":"npm run lint -- --fix","lint":"npx eslint .","prepublishOnly":"npm run build","test":"vitest run && npm run lint","test:watch":"vitest","typecheck":"tsc --noEmit","upgrade:all":"npx npm-check-updates --upgrade --reject \"eslint|@eslint/js\" && npm install"},"keywords":["eslint","eslint-config","creo-team","flat-config","typescript","prettier","jsdoc","linting","lint"],"license":"ISC","dependencies":{"@eslint/js":"^9.39.3","@stylistic/eslint-plugin":"^5.9.0","eslint":"^9.39.3","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import":"^2.32.0","eslint-plugin-jsdoc":"^62.7.0","eslint-plugin-perfectionist":"^4.15.1","eslint-plugin-prettier":"^5.5.5","typescript":"^5.9.3","typescript-eslint":"^8.56.0"},"files":["dist/eslint.config.js","dist/rules.js","dist/utils.js","dist/constants.js","dist/structure.js","dist/*.d.ts","dist/*.js.map"],"type":"commonjs","devDependencies":{"react":"^19.2.4","react-dom":"^19.2.4","vitest":"^3.2.4"},"engines":{"node":">=20.0.0","npm":">=10"},"publishConfig":{"access":"public"},"exports":{".":{"require":"./dist/eslint.config.js","default":"./dist/eslint.config.js"},"./constants":{"require":"./dist/constants.js","default":"./dist/constants.js"}}}
1
+ {"name":"@creo-team/eslint-config","version":"4.0.0","description":"ESLint flat config: TypeScript (strict), Prettier, JSDoc, complexity, no-magic-numbers. createConfig() for options.","author":"Colten Krauter <coltenkrauter>","main":"dist/eslint.config.js","homepage":"https://github.com/creo-team/eslint-config","repository":{"type":"git","url":"git+https://github.com/creo-team/eslint-config.git"},"scripts":{"build":"tsc","fix":"npm run lint -- --fix","lint":"npx eslint .","prepublishOnly":"npm run build","test":"vitest run && npm run lint","test:watch":"vitest","typecheck":"tsc --noEmit","upgrade:all":"npx npm-check-updates --upgrade && npm install"},"keywords":["eslint","eslint-config","creo-team","flat-config","typescript","prettier","jsdoc","linting","lint"],"license":"ISC","dependencies":{"@eslint/js":"^10.0.1","@stylistic/eslint-plugin":"^5.10.0","eslint":"^10.1.0","eslint-import-resolver-typescript":"^4.4.4","eslint-plugin-import-x":"^4.16.2","eslint-plugin-jsdoc":"^62.8.0","eslint-plugin-perfectionist":"^5.7.0","eslint-plugin-prettier":"^5.5.5","typescript":"^5.9.3","typescript-eslint":"^8.57.2"},"files":["dist/eslint.config.js","dist/rules.js","dist/utils.js","dist/constants.js","dist/structure.js","dist/*.d.ts","dist/*.js.map"],"type":"commonjs","devDependencies":{"react":"^19.2.4","react-dom":"^19.2.4","vitest":"^3.2.4"},"engines":{"node":">=20.0.0","npm":">=10"},"publishConfig":{"access":"public"},"exports":{".":{"require":"./dist/eslint.config.js","default":"./dist/eslint.config.js"},"./constants":{"require":"./dist/constants.js","default":"./dist/constants.js"}}}