@storm-software/eslint 0.170.156 → 0.170.157

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.
Files changed (92) hide show
  1. package/README.md +1 -1
  2. package/dist/astro-CKzo6xci.d.mts +5 -0
  3. package/dist/banner-YnHf4ewf.d.mts +5 -0
  4. package/dist/bun-OJPLvfnX.d.mts +5 -0
  5. package/dist/cspell-CfGd6g7m.d.mts +8 -0
  6. package/dist/disables-Dx5b56Fi.d.mts +5 -0
  7. package/dist/find-workspace-root-D3UHWbgn.mjs +211 -0
  8. package/dist/formatters-VU6Zu_ju.d.mts +5 -0
  9. package/dist/graphql-ClFinA5J.d.mts +5 -0
  10. package/dist/helpers-mce_MNwt.mjs +72 -0
  11. package/dist/ignores-CPeru9Fz.d.mts +5 -0
  12. package/dist/imports-CQToT7JW.d.mts +5 -0
  13. package/dist/index.d.mts +41 -0
  14. package/dist/index.mjs +42 -0
  15. package/dist/javascript-BR8uv0Wr.d.mts +5 -0
  16. package/dist/jsdoc-Dy8bHykP.d.mts +5 -0
  17. package/dist/jsonc-YqDXTIOi.d.mts +5 -0
  18. package/dist/jsx-DzqEJSYd.d.mts +5 -0
  19. package/dist/markdown-C5lFEI83.d.mts +5 -0
  20. package/dist/mdx-CDEhveb1.d.mts +5 -0
  21. package/dist/next-DGhspeMc.d.mts +8 -0
  22. package/dist/node-CQgsZ8nv.d.mts +5 -0
  23. package/dist/nx-CLRc6QRM.d.mts +8 -0
  24. package/dist/perfectionist-CgSgqAjV.d.mts +10 -0
  25. package/dist/plugins-CZWNS7l4.mjs +8291 -0
  26. package/dist/plugins.d.mts +616 -0
  27. package/dist/plugins.mjs +2 -0
  28. package/dist/pnpm-Cp9VzsCv.d.mts +5 -0
  29. package/dist/preset-x6MId9-7.mjs +265 -0
  30. package/dist/preset.d.mts +30 -0
  31. package/dist/preset.mjs +3 -0
  32. package/dist/prettier-CboafVRp.d.mts +8 -0
  33. package/dist/react-C5HWHYPh.d.mts +5 -0
  34. package/dist/react-native-DjQo3PXB.d.mts +8 -0
  35. package/dist/regexp-D2Fm6vg7.d.mts +5 -0
  36. package/dist/rolldown-runtime-CMFfr-1z.mjs +26 -0
  37. package/dist/secrets-DfvPNLCF.d.mts +10 -0
  38. package/dist/sort-9_xeGmal.d.mts +16 -0
  39. package/dist/storybook-DqDJ5exI.d.mts +5 -0
  40. package/dist/stylistic-9jDGqsHH.d.mts +9 -0
  41. package/dist/test-Dw-h86ig.d.mts +5 -0
  42. package/dist/toml-ConAZLXy.d.mts +5 -0
  43. package/dist/tsdoc-DcYWMVl0.d.mts +5 -0
  44. package/dist/{types.d.cts → typegen.d.mts} +8536 -11156
  45. package/dist/types-XIthLTox.d.mts +852 -0
  46. package/dist/types.d.mts +3 -0
  47. package/dist/types.mjs +2 -0
  48. package/dist/typescript-BFiiMXDt.d.mts +5 -0
  49. package/dist/unicorn-CQ3PTdfT.d.mts +5 -0
  50. package/dist/unocss-Uw-vEvNU.d.mts +5 -0
  51. package/dist/yaml-Ddbh49WY.d.mts +5 -0
  52. package/dist/zod-7F7dUsU5.d.mts +8 -0
  53. package/package.json +58 -79
  54. package/dist/index.cjs +0 -24
  55. package/dist/index.d.cts +0 -127
  56. package/dist/index.d.ts +0 -127
  57. package/dist/index.js +0 -7
  58. package/dist/preset.cjs +0 -354
  59. package/dist/preset.d.cts +0 -34
  60. package/dist/preset.d.ts +0 -34
  61. package/dist/preset.js +0 -344
  62. package/dist/types.cjs +0 -12
  63. package/dist/types.d.ts +0 -19537
  64. package/dist/types.js +0 -1
  65. package/dist/utils/combine.cjs +0 -8
  66. package/dist/utils/combine.d.cts +0 -14
  67. package/dist/utils/combine.d.ts +0 -14
  68. package/dist/utils/combine.js +0 -6
  69. package/dist/utils/correct-paths.cjs +0 -231
  70. package/dist/utils/correct-paths.d.cts +0 -30
  71. package/dist/utils/correct-paths.d.ts +0 -30
  72. package/dist/utils/correct-paths.js +0 -216
  73. package/dist/utils/find-workspace-root.cjs +0 -96
  74. package/dist/utils/find-workspace-root.d.cts +0 -16
  75. package/dist/utils/find-workspace-root.d.ts +0 -16
  76. package/dist/utils/find-workspace-root.js +0 -93
  77. package/dist/utils/format-config.cjs +0 -19
  78. package/dist/utils/format-config.d.cts +0 -5
  79. package/dist/utils/format-config.d.ts +0 -5
  80. package/dist/utils/format-config.js +0 -17
  81. package/dist/utils/helpers.cjs +0 -86
  82. package/dist/utils/helpers.d.cts +0 -55
  83. package/dist/utils/helpers.d.ts +0 -55
  84. package/dist/utils/helpers.js +0 -72
  85. package/dist/utils/package-manager.cjs +0 -18
  86. package/dist/utils/package-manager.d.cts +0 -8
  87. package/dist/utils/package-manager.d.ts +0 -8
  88. package/dist/utils/package-manager.js +0 -16
  89. package/dist/utils/tsconfig.cjs +0 -43
  90. package/dist/utils/tsconfig.d.cts +0 -25
  91. package/dist/utils/tsconfig.d.ts +0 -25
  92. package/dist/utils/tsconfig.js +0 -40
@@ -0,0 +1,852 @@
1
+ import { ConfigNames, RuleOptions } from "./typegen.mjs";
2
+ import { FlatConfigComposer } from "eslint-flat-config-utils";
3
+ import { Linter } from "eslint";
4
+ import { Options } from "@storm-software/eslint-plugin-banner/rules/banner";
5
+ import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
6
+ import { ParserOptions } from "@typescript-eslint/parser";
7
+ import { FlatGitignoreOptions } from "eslint-config-flat-gitignore";
8
+ //#region src/vendor/prettier-types.d.ts
9
+ /**
10
+ * Vendor types from Prettier so we don't rely on the dependency.
11
+ */
12
+ type VendoredPrettierOptions = Partial<VendoredPrettierOptionsRequired>;
13
+ interface VendoredPrettierOptionsRequired {
14
+ /**
15
+ * Specify the line length that the printer will wrap on.
16
+ * @default 120
17
+ */
18
+ printWidth: number;
19
+ /**
20
+ * Specify the number of spaces per indentation-level.
21
+ */
22
+ tabWidth: number;
23
+ /**
24
+ * Indent lines with tabs instead of spaces
25
+ */
26
+ useTabs?: boolean;
27
+ /**
28
+ * Print semicolons at the ends of statements.
29
+ */
30
+ semi: boolean;
31
+ /**
32
+ * Use single quotes instead of double quotes.
33
+ */
34
+ singleQuote: boolean;
35
+ /**
36
+ * Use single quotes in JSX.
37
+ */
38
+ jsxSingleQuote: boolean;
39
+ /**
40
+ * Print trailing commas wherever possible.
41
+ */
42
+ trailingComma: "none" | "es5" | "all";
43
+ /**
44
+ * Print spaces between brackets in object literals.
45
+ */
46
+ bracketSpacing: boolean;
47
+ /**
48
+ * Put the `>` of a multi-line HTML (HTML, XML, JSX, Vue, Angular) element at the end of the last line instead of being
49
+ * alone on the next line (does not apply to self closing elements).
50
+ */
51
+ bracketSameLine: boolean;
52
+ /**
53
+ * Put the `>` of a multi-line JSX element at the end of the last line instead of being alone on the next line.
54
+ * @deprecated use bracketSameLine instead
55
+ */
56
+ jsxBracketSameLine: boolean;
57
+ /**
58
+ * Format only a segment of a file.
59
+ */
60
+ rangeStart: number;
61
+ /**
62
+ * Format only a segment of a file.
63
+ * @default Number.POSITIVE_INFINITY
64
+ */
65
+ rangeEnd: number;
66
+ /**
67
+ * By default, Prettier will wrap markdown text as-is since some services use a linebreak-sensitive renderer.
68
+ * In some cases you may want to rely on editor/viewer soft wrapping instead, so this option allows you to opt out.
69
+ * @default "preserve"
70
+ */
71
+ proseWrap: "always" | "never" | "preserve";
72
+ /**
73
+ * Include parentheses around a sole arrow function parameter.
74
+ * @default "always"
75
+ */
76
+ arrowParens: "avoid" | "always";
77
+ /**
78
+ * Provide ability to support new languages to prettier.
79
+ */
80
+ plugins: Array<string | any>;
81
+ /**
82
+ * How to handle whitespaces in HTML.
83
+ * @default "css"
84
+ */
85
+ htmlWhitespaceSensitivity: "css" | "strict" | "ignore";
86
+ /**
87
+ * Which end of line characters to apply.
88
+ * @default "lf"
89
+ */
90
+ endOfLine: "auto" | "lf" | "crlf" | "cr";
91
+ /**
92
+ * Change when properties in objects are quoted.
93
+ * @default "as-needed"
94
+ */
95
+ quoteProps: "as-needed" | "consistent" | "preserve";
96
+ /**
97
+ * Whether or not to indent the code inside <script> and <style> tags in Vue files.
98
+ * @default false
99
+ */
100
+ vueIndentScriptAndStyle: boolean;
101
+ /**
102
+ * Enforce single attribute per line in HTML, XML, Vue and JSX.
103
+ * @default false
104
+ */
105
+ singleAttributePerLine: boolean;
106
+ /**
107
+ * How to handle whitespaces in XML.
108
+ * @default "preserve"
109
+ */
110
+ xmlQuoteAttributes: "single" | "double" | "preserve";
111
+ /**
112
+ * Whether to put a space inside the brackets of self-closing XML elements.
113
+ * @default true
114
+ */
115
+ xmlSelfClosingSpace: boolean;
116
+ /**
117
+ * Whether to sort attributes by key in XML elements.
118
+ * @default false
119
+ */
120
+ xmlSortAttributesByKey: boolean;
121
+ /**
122
+ * How to handle whitespaces in XML.
123
+ * @default "ignore"
124
+ */
125
+ xmlWhitespaceSensitivity: "ignore" | "strict" | "preserve";
126
+ }
127
+ //#endregion
128
+ //#region src/types.d.ts
129
+ type Awaitable<T> = T | Promise<T>;
130
+ /**
131
+ * Matches `@nx/enforce-module-boundaries` dependency constraint options.
132
+ *
133
+ * @see https://nx.dev/nx-api/eslint-plugin/documents/enforce-module-boundaries#dependency-constraints
134
+ */
135
+ type DepConstraint = {
136
+ sourceTag: string;
137
+ onlyDependOnLibsWithTags?: string[];
138
+ notDependOnLibsWithTags?: string[];
139
+ allowedExternalImports?: string[];
140
+ bannedExternalImports?: string[];
141
+ } | {
142
+ allSourceTags: string[];
143
+ onlyDependOnLibsWithTags?: string[];
144
+ notDependOnLibsWithTags?: string[];
145
+ allowedExternalImports?: string[];
146
+ bannedExternalImports?: string[];
147
+ };
148
+ type Rules = RuleOptions;
149
+ type TypedFlatConfigItem = Omit<Linter.Config<Linter.RulesRecord & Rules>, "plugins"> & {
150
+ /**
151
+ * An object containing a name-value mapping of plugin names to plugin objects. When `files` is specified, these plugins are only available to the matching files.
152
+ *
153
+ * @see [Using plugins in your configuration](https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new#using-plugins-in-your-configuration)
154
+ */
155
+ plugins?: Record<string, any>;
156
+ };
157
+ interface OptionsFiles {
158
+ /**
159
+ * Override the `files` option to provide custom globs.
160
+ */
161
+ files?: string[];
162
+ }
163
+ type OptionsTypescript = (OptionsTypeScriptWithTypes & OptionsOverrides) | (OptionsTypeScriptParserOptions & OptionsOverrides);
164
+ interface OptionsFormatters {
165
+ /**
166
+ * Enable formatting support for CSS, Less, Sass, and SCSS.
167
+ *
168
+ * Currently only support Prettier.
169
+ */
170
+ css?: "prettier" | boolean;
171
+ /**
172
+ * Enable formatting support for HTML.
173
+ *
174
+ * Currently only support Prettier.
175
+ */
176
+ html?: "prettier" | boolean;
177
+ /**
178
+ * Enable formatting support for XML.
179
+ *
180
+ * Currently only support Prettier.
181
+ */
182
+ xml?: "prettier" | boolean;
183
+ /**
184
+ * Enable formatting support for SVG.
185
+ *
186
+ * Currently only support Prettier.
187
+ */
188
+ svg?: "prettier" | boolean;
189
+ /**
190
+ * Enable formatting support for Markdown.
191
+ *
192
+ * Support both Prettier and dprint.
193
+ *
194
+ * When set to `true`, it will use Prettier.
195
+ */
196
+ markdown?: "prettier" | "dprint" | boolean;
197
+ /**
198
+ * Enable formatting support for GraphQL.
199
+ */
200
+ graphql?: "prettier" | boolean;
201
+ /**
202
+ * Custom options for Prettier.
203
+ *
204
+ * By default it's controlled by our own config.
205
+ */
206
+ prettierOptions?: VendoredPrettierOptions;
207
+ /**
208
+ * Custom options for dprint.
209
+ *
210
+ * By default it's controlled by our own config.
211
+ */
212
+ dprintOptions?: boolean;
213
+ /**
214
+ * Enable formatting support for Astro.
215
+ *
216
+ * Currently only support Prettier.
217
+ */
218
+ astro?: "prettier" | boolean;
219
+ }
220
+ interface OptionsComponentExts {
221
+ /**
222
+ * Additional extensions for components.
223
+ *
224
+ * @example ['vue']
225
+ * @defaultValue []
226
+ */
227
+ componentExts?: string[];
228
+ }
229
+ interface OptionsUnicorn {
230
+ /**
231
+ * Include all rules recommended by `eslint-plugin-unicorn`, instead of only ones picked by Anthony.
232
+ *
233
+ * @defaultValue false
234
+ */
235
+ allRecommended?: boolean;
236
+ }
237
+ interface OptionsTSDoc extends OptionsOverrides {
238
+ /**
239
+ * The TSDoc ESLint rule severity.
240
+ *
241
+ * @defaultValue "error"
242
+ */
243
+ severity?: "error" | "warn" | "off";
244
+ /**
245
+ * The type of Storm Software TSDoc configuration to use.
246
+ *
247
+ * @defaultValue "recommended"
248
+ */
249
+ type?: "base" | "typedoc" | "api-extractor" | "core" | "callouts" | "recommended";
250
+ /**
251
+ * The path to a TSDoc config file.
252
+ */
253
+ configFile?: string;
254
+ }
255
+ interface OptionsJSDoc extends OptionsOverrides {
256
+ /**
257
+ * The JSDoc ESLint rule severity.
258
+ *
259
+ * @defaultValue "error"
260
+ */
261
+ severity?: "error" | "warn" | "off";
262
+ /**
263
+ * Enable stylistic rules for JSDoc.
264
+ */
265
+ stylistic?: boolean;
266
+ }
267
+ interface OptionsTypeScriptParserOptions {
268
+ /**
269
+ * When this options is provided as false, type aware rules will be **disabled**.
270
+ *
271
+ * @see https://typescript-eslint.io/linting/typed-linting/
272
+ */
273
+ tsconfigPath: false;
274
+ /**
275
+ * Additional parser options for TypeScript.
276
+ */
277
+ parserOptions?: Partial<ParserOptions>;
278
+ /**
279
+ * Glob patterns for files that should be type aware.
280
+ * @defaultValue ['**\/*.{ts,tsx}']
281
+ */
282
+ filesTypeAware?: string[];
283
+ /**
284
+ * Glob patterns for files that should not be type aware.
285
+ * @defaultValue ['**\/*.md\/**', '**\/*.astro/*.ts']
286
+ */
287
+ ignoresTypeAware?: string[];
288
+ }
289
+ interface OptionsTypeScriptWithTypes {
290
+ /**
291
+ * When this options is provided (or if `tsconfigPath` is found with {@link @storm-software/eslint/utils/tsconfig#getTsConfigPath | the getTsConfigPath function}), type aware rules will be enabled.
292
+ *
293
+ * @see https://typescript-eslint.io/linting/typed-linting/
294
+ */
295
+ tsconfigPath?: string;
296
+ /**
297
+ * Override type aware rules.
298
+ */
299
+ overridesTypeAware?: TypedFlatConfigItem["rules"];
300
+ /**
301
+ * A linting style for importing types. This is applied to the "ts/consistent-type-imports" rule.
302
+ *
303
+ * - `always`: always import types
304
+ * - `never`: never import types
305
+ * - `optional`: warn to import as type but allow any import
306
+ * - `off`: Do not check import types
307
+ *
308
+ * @remarks
309
+ * When set to `true`, it will use the default value of `always`. When set to `false`, it will use the default value of `never`.
310
+ *
311
+ * @defaultValue "always"
312
+ */
313
+ typeImports?: "always" | "never" | "optional" | "off" | boolean;
314
+ }
315
+ interface OptionsHasTypeScript {
316
+ typescript?: boolean;
317
+ }
318
+ interface OptionsStylistic {
319
+ stylistic?: boolean | StylisticConfig;
320
+ }
321
+ type StylisticConfig = Pick<StylisticCustomizeOptions, "indent" | "quotes" | "jsx" | "semi"> & {
322
+ lineEndings?: "unix" | "windows";
323
+ };
324
+ interface OptionsOverrides {
325
+ overrides?: TypedFlatConfigItem["rules"];
326
+ }
327
+ interface OptionsProjectType {
328
+ /**
329
+ * Type of the project. `lib` will enable more strict rules for libraries.
330
+ *
331
+ * @defaultValue 'app'
332
+ */
333
+ type?: "app" | "lib";
334
+ }
335
+ interface OptionsRegExp {
336
+ /**
337
+ * Override rulelevels
338
+ */
339
+ level?: "error" | "warn";
340
+ }
341
+ interface OptionsIsInEditor {
342
+ isInEditor?: boolean;
343
+ }
344
+ interface OptionsUnoCSS extends OptionsOverrides {
345
+ /**
346
+ * Enable attributify support.
347
+ * @defaultValue true
348
+ */
349
+ attributify?: boolean;
350
+ /**
351
+ * Enable strict mode by throwing errors about blocklisted classes.
352
+ * @defaultValue false
353
+ */
354
+ strict?: boolean;
355
+ }
356
+ interface OptionsNext extends OptionsOverrides {
357
+ /**
358
+ * Enable [core-web-vitals](https://nextjs.org/docs/app/api-reference/config/eslint#with-core-web-vitals) support.
359
+ *
360
+ * @see https://nextjs.org/docs/app/api-reference/config/eslint#with-core-web-vitals
361
+ *
362
+ * @defaultValue true
363
+ */
364
+ coreWebVitals?: boolean;
365
+ /**
366
+ * Specify the root directory of the Next.js project for scenarios where Next.js isn't installed in your root directory (such as a monorepo).
367
+ *
368
+ * @see https://nextjs.org/docs/app/api-reference/config/eslint#specifying-a-root-directory-within-a-monorepo
369
+ */
370
+ rootDir?: string;
371
+ }
372
+ interface OptionsGraphQL extends OptionsOverrides {
373
+ /**
374
+ * Enable schema type GraphQL ESLint rules
375
+ *
376
+ * @see https://the-guild.dev/graphql/eslint/rules
377
+ *
378
+ * @defaultValue true
379
+ */
380
+ schema?: boolean;
381
+ /**
382
+ * Enable operations type GraphQL ESLint rules
383
+ *
384
+ * @see https://the-guild.dev/graphql/eslint/rules
385
+ *
386
+ * @defaultValue true
387
+ */
388
+ operations?: boolean;
389
+ /**
390
+ * Enable [Relay](https://relay.dev/) support.
391
+ *
392
+ * @see https://github.com/relayjs/eslint-plugin-relay
393
+ *
394
+ * @defaultValue true
395
+ */
396
+ relay?: boolean;
397
+ }
398
+ interface OptionsStorybook extends OptionsOverrides {
399
+ /**
400
+ * A option to control the strictness of the Component Story Format (CSF) ESLint rules
401
+ *
402
+ * @see https://storybook.js.org/docs/api/csf
403
+ *
404
+ * @defaultValue "loose"
405
+ */
406
+ csf?: "none" | "loose" | "strict";
407
+ }
408
+ interface OptionsReact extends OptionsOverrides {
409
+ /**
410
+ * Use a strict mode for React rules, which will enable more strict rules that may cause more false positives but can catch more potential issues.
411
+ *
412
+ * @defaultValue false
413
+ */
414
+ strict?: boolean;
415
+ }
416
+ interface OptionsNxDependencyChecks extends OptionsOverrides {
417
+ /**
418
+ * List of build target names
419
+ *
420
+ * @defaultValue ['build-base', 'build']
421
+ */
422
+ buildTargets: string[];
423
+ /**
424
+ * Disable to skip checking for missing dependencies
425
+ *
426
+ * @defaultValue true
427
+ */
428
+ checkMissingDependencies: boolean;
429
+ /**
430
+ * Disable to skip checking for unused dependencies
431
+ *
432
+ * @defaultValue true
433
+ */
434
+ checkObsoleteDependencies: boolean;
435
+ /**
436
+ * Disable to skip checking if version specifier matches installed version
437
+ *
438
+ * @defaultValue true
439
+ */
440
+ checkVersionMismatches: boolean;
441
+ /**
442
+ * List of dependencies to ignore for checks
443
+ *
444
+ * @defaultValue []
445
+ */
446
+ ignoredDependencies: string[];
447
+ /**
448
+ * List of files to ignore when collecting dependencies. The default value will be set based on the selected executor during the generation.
449
+ *
450
+ * @defaultValue []
451
+ */
452
+ ignoredFiles: string[];
453
+ /**
454
+ * Enable to collect dependencies of children projects
455
+ *
456
+ * @defaultValue false
457
+ */
458
+ includeTransitiveDependencies: boolean;
459
+ /**
460
+ * Set workspace dependencies as relative file:// paths. Useful for monorepos that link via file:// in package.json files.
461
+ *
462
+ * @defaultValue false
463
+ */
464
+ useLocalPathsForWorkspaceDependencies: boolean;
465
+ }
466
+ interface OptionsNxEnforceModuleBoundaries extends OptionsOverrides {
467
+ /**
468
+ * List of imports that should be allowed without any checks
469
+ *
470
+ * @defaultValue []
471
+ */
472
+ allow: string[];
473
+ /**
474
+ * List of build target names
475
+ *
476
+ * @defaultValue ['build-base', 'build']
477
+ */
478
+ buildTargets: string[];
479
+ /**
480
+ * List of dependency constraints between projects
481
+ *
482
+ * @defaultValue true
483
+ */
484
+ depConstraints: DepConstraint[];
485
+ /**
486
+ * Enable to restrict the buildable libs from importing non-buildable libraries
487
+ *
488
+ * @defaultValue true
489
+ */
490
+ enforceBuildableLibDependency: boolean;
491
+ /**
492
+ * Disable check for self circular dependency when project imports from itself via alias path
493
+ *
494
+ * @defaultValue false
495
+ */
496
+ allowCircularSelfDependency: boolean;
497
+ /**
498
+ * List of project pairs that should be skipped from Circular dependencies checks, including the self-circular dependency check. E.g. ['feature-project-a', 'myapp']. Project name can be replaced by catch all * for more generic matches.
499
+ *
500
+ * @defaultValue []
501
+ */
502
+ ignoredCircularDependencies: Array<[string, string]>;
503
+ /**
504
+ * List of imports that should be skipped for Imports of lazy-loaded libraries forbidden checks. E.g. ['@myorg/lazy-project/component/*', '@myorg/other-project']
505
+ *
506
+ * @defaultValue []
507
+ */
508
+ checkDynamicDependenciesExceptions: string[];
509
+ /**
510
+ * Ban import of dependencies that were not specified in the root or project's package.json
511
+ *
512
+ * @defaultValue false
513
+ */
514
+ banTransitiveDependencies: boolean;
515
+ /**
516
+ * Enable to enforce the check for banned external imports in the nested packages. Check [Dependency constraints](https://nx.dev/nx-api/eslint-plugin/documents/enforce-module-boundaries#dependency-constraints) for more information
517
+ *
518
+ * @defaultValue false
519
+ */
520
+ checkNestedExternalImports: boolean;
521
+ }
522
+ interface OptionsNx extends OptionsOverrides {
523
+ /**
524
+ * The dependencies to not check in the `@nx/dependency-checks` rule
525
+ */
526
+ ignoredDependencies?: string[];
527
+ /**
528
+ * The files to not check in the `@nx/dependency-checks` rule
529
+ */
530
+ ignoredFiles?: string[];
531
+ /**
532
+ * Check for obsolete dependencies in the `@nx/dependency-checks` rule
533
+ */
534
+ checkObsoleteDependencies?: boolean;
535
+ /**
536
+ * Enables us to discover mismatches between dependencies specified in a project's package.json and the dependencies that your project depends on.
537
+ *
538
+ * @remarks
539
+ * If any values are overridden here, the `ignoredDependencies`, `ignoredFiles`, and `checkObsoleteDependencies` options will be ignored.
540
+ *
541
+ * @defaultValue false
542
+ */
543
+ depsCheck?: OptionsNxDependencyChecks | false;
544
+ /**
545
+ * The severity of the `@nx/dependency-checks` rule
546
+ *
547
+ * @defaultValue "warn"
548
+ */
549
+ depsCheckSeverity?: "off" | "warn" | "error";
550
+ /**
551
+ * Enables us to define strict rules for accessing resources between different projects in the repository. Enforcing strict boundaries helps to prevent unplanned cross-dependencies.
552
+ */
553
+ moduleBoundaries?: OptionsNxEnforceModuleBoundaries | false;
554
+ }
555
+ interface OptionsPnpm extends OptionsOverrides {
556
+ /**
557
+ * A list of dependencies to ignore for the `pnpm/json-enforce-catalog` rule.
558
+ *
559
+ * @defaultValue ["typescript"]
560
+ */
561
+ ignore?: string[];
562
+ /**
563
+ * Should local workspace dependencies be ignored by the `pnpm/json-enforce-catalog` rule.
564
+ *
565
+ * @defaultValue true
566
+ */
567
+ ignoreWorkspaceDeps?: boolean;
568
+ }
569
+ interface OptionsBun extends OptionsOverrides {
570
+ /**
571
+ * A list of dependencies to ignore for the `bun/json-enforce-catalog` rule.
572
+ *
573
+ * @defaultValue ["typescript"]
574
+ */
575
+ ignore?: string[];
576
+ /**
577
+ * Should local workspace dependencies be ignored by the `bun/json-enforce-catalog` rule.
578
+ *
579
+ * @defaultValue true
580
+ */
581
+ ignoreWorkspaceDeps?: boolean;
582
+ }
583
+ interface OptionsCSpell extends OptionsOverrides {
584
+ /**
585
+ * A path to a CSpell configuration file
586
+ *
587
+ * @defaultValue "./.vscode/cspell.json"
588
+ */
589
+ configFile?: string;
590
+ }
591
+ /**
592
+ * The ESLint globals property value.
593
+ */
594
+ type ESLintGlobalsPropValue = boolean | "readonly" | "readable" | "writable" | "writeable";
595
+ type OptionsBanner = OptionsOverrides & Options[0];
596
+ interface OptionsJavascript {
597
+ /**
598
+ * An object containing a list of extra global variables to include in the configuration.
599
+ */
600
+ globals?: Record<string, ESLintGlobalsPropValue>;
601
+ }
602
+ interface OptionsConfig extends OptionsComponentExts, OptionsJavascript, OptionsProjectType {
603
+ /**
604
+ * Options to control the generated file header banner.
605
+ *
606
+ * @see https://github.com/storm-software/eslint-plugin-banner
607
+ */
608
+ banner?: boolean | OptionsBanner;
609
+ /**
610
+ * Enable gitignore support.
611
+ *
612
+ * Passing an object to configure the options.
613
+ *
614
+ * @see https://github.com/antfu/eslint-config-flat-gitignore
615
+ *
616
+ * @defaultValue true
617
+ */
618
+ gitignore?: boolean | FlatGitignoreOptions;
619
+ /**
620
+ * Disable some opinionated rules to Antfu's preference.
621
+ *
622
+ * @defaultValue false
623
+ */
624
+ lessOpinionated?: boolean;
625
+ /**
626
+ * Core rules. Can't be disabled.
627
+ */
628
+ javascript?: OptionsOverrides;
629
+ /**
630
+ * Enable cspell rules.
631
+ *
632
+ * Requires installing:
633
+ * - `@cspell/eslint-plugin`
634
+ *
635
+ * @defaultValue true
636
+ */
637
+ cspell?: boolean | OptionsCSpell;
638
+ /**
639
+ * Enable TypeScript support.
640
+ *
641
+ * Passing an object to enable TypeScript Language Server support.
642
+ *
643
+ * @defaultValue auto-detect based on the dependencies
644
+ */
645
+ typescript?: boolean | OptionsTypescript;
646
+ /**
647
+ * Enable Nx monorepo support.
648
+ */
649
+ nx?: OptionsNx;
650
+ /**
651
+ * Enable PNPM related rules.
652
+ *
653
+ * Requires installing:
654
+ * - `@storm-software/eslint-plugin-pnpm`
655
+ *
656
+ * @remarks
657
+ * If the package manager is detected to be Bun, this option will be disabled.
658
+ *
659
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm
660
+ *
661
+ * @defaultValue true
662
+ */
663
+ pnpm?: boolean | OptionsPnpm;
664
+ /**
665
+ * Enable Bun related rules.
666
+ *
667
+ * Requires installing:
668
+ * - `@storm-software/eslint-plugin-bun`
669
+ *
670
+ * @remarks
671
+ * If the package manager is detected to be PNPM, this option will be disabled.
672
+ *
673
+ * @see https://github.com/oven-sh/bun-plugin-eslint
674
+ *
675
+ * @defaultValue false
676
+ */
677
+ bun?: boolean | OptionsBun;
678
+ /**
679
+ * Enable JSX related rules.
680
+ *
681
+ * Currently only stylistic rules are included.
682
+ *
683
+ * @defaultValue true
684
+ */
685
+ jsx?: boolean;
686
+ /**
687
+ * Options for eslint-plugin-unicorn.
688
+ *
689
+ * @defaultValue true
690
+ */
691
+ unicorn?: boolean | OptionsUnicorn;
692
+ /**
693
+ * Options for eslint-plugin-jsdoc.
694
+ *
695
+ * @defaultValue false
696
+ */
697
+ jsdoc?: boolean | OptionsJSDoc;
698
+ /**
699
+ * Options for @storm-software/eslint-plugin-tsdoc.
700
+ *
701
+ * @defaultValue true
702
+ */
703
+ tsdoc?: boolean | OptionsTSDoc;
704
+ /**
705
+ * Enable Zod support.
706
+ *
707
+ * @defaultValue false
708
+ */
709
+ zod?: boolean | OptionsOverrides;
710
+ /**
711
+ * Enable test support.
712
+ *
713
+ * @defaultValue true
714
+ */
715
+ test?: boolean | OptionsOverrides;
716
+ /**
717
+ * Enable JSONC support.
718
+ *
719
+ * @defaultValue true
720
+ */
721
+ jsonc?: boolean | OptionsOverrides;
722
+ /**
723
+ * Enable YAML support.
724
+ *
725
+ * @defaultValue true
726
+ */
727
+ yaml?: boolean | OptionsOverrides;
728
+ /**
729
+ * Enable TOML support.
730
+ *
731
+ * @defaultValue true
732
+ */
733
+ toml?: boolean | OptionsOverrides;
734
+ /**
735
+ * Enable ASTRO support.
736
+ *
737
+ * Requires installing:
738
+ * - `eslint-plugin-astro`
739
+ *
740
+ * Requires installing for formatting .astro:
741
+ * - `prettier-plugin-astro`
742
+ *
743
+ * @defaultValue false
744
+ */
745
+ astro?: boolean | OptionsOverrides;
746
+ /**
747
+ * Enable linting for **code snippets** in Markdown.
748
+ *
749
+ * For formatting Markdown content, enable also `formatters.markdown`.
750
+ *
751
+ * @defaultValue false
752
+ */
753
+ markdown?: boolean | OptionsOverrides;
754
+ /**
755
+ * Enable linting for mdx files.
756
+ *
757
+ * @defaultValue false
758
+ */
759
+ mdx?: boolean | OptionsOverrides;
760
+ /**
761
+ * Enable stylistic rules.
762
+ *
763
+ * @see https://eslint.style/
764
+ *
765
+ * @defaultValue false
766
+ */
767
+ stylistic?: boolean | (StylisticConfig & OptionsOverrides);
768
+ /**
769
+ * Enable regexp rules.
770
+ *
771
+ * @see https://ota-meshi.github.io/eslint-plugin-regexp/
772
+ * @defaultValue true
773
+ */
774
+ regexp?: boolean | (OptionsRegExp & OptionsOverrides);
775
+ /**
776
+ * Enable GraphQL support.
777
+ *
778
+ * @defaultValue false
779
+ */
780
+ graphql?: boolean | OptionsGraphQL;
781
+ /**
782
+ * Enable Storybook support.
783
+ *
784
+ * @defaultValue false
785
+ */
786
+ storybook?: boolean | OptionsStorybook;
787
+ /**
788
+ * Enable react rules.
789
+ *
790
+ * Requires installing:
791
+ * - `@eslint-react/eslint-plugin`
792
+ * - `eslint-plugin-react-hooks`
793
+ * - `eslint-plugin-react-refresh`
794
+ *
795
+ * @defaultValue false
796
+ */
797
+ react?: boolean | OptionsReact;
798
+ /**
799
+ * Enable react native rules.
800
+ *
801
+ * Requires installing:
802
+ * - `eslint-plugin-react-native`
803
+ *
804
+ * @defaultValue false
805
+ */
806
+ "react-native"?: boolean | OptionsOverrides;
807
+ /**
808
+ * Enable next rules.
809
+ *
810
+ * Requires installing:
811
+ * - `@next/eslint-plugin-next`
812
+ *
813
+ * @defaultValue false
814
+ */
815
+ next?: boolean | OptionsNext;
816
+ /**
817
+ * Enable unocss rules.
818
+ *
819
+ * Requires installing:
820
+ * - `@unocss/eslint-plugin`
821
+ *
822
+ * @defaultValue false
823
+ */
824
+ unocss?: boolean | OptionsUnoCSS;
825
+ /**
826
+ * Use external formatters to format files.
827
+ *
828
+ * Requires installing:
829
+ * - `eslint-plugin-format`
830
+ *
831
+ * When set to `true`, it will enable all formatters.
832
+ *
833
+ * @defaultValue false
834
+ */
835
+ formatters?: boolean | OptionsFormatters;
836
+ /**
837
+ * Control to disable some rules in editors.
838
+ * @defaultValue auto-detect based on the process.env
839
+ */
840
+ isInEditor?: boolean;
841
+ /**
842
+ * Automatically rename plugins in the config.
843
+ *
844
+ * @defaultValue true
845
+ */
846
+ autoRenamePlugins?: boolean;
847
+ }
848
+ type UserConfig = Awaitable<TypedFlatConfigItem | TypedFlatConfigItem[] | FlatConfigComposer<object, string> | Linter.Config[]>;
849
+ type PresetConfig<TOptions> = TOptions & Omit<TypedFlatConfigItem, "files">;
850
+ type PresetResult = FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
851
+ //#endregion
852
+ export { OptionsUnicorn as A, OptionsRegExp as C, OptionsTypeScriptParserOptions as D, OptionsTSDoc as E, StylisticConfig as F, TypedFlatConfigItem as I, UserConfig as L, PresetConfig as M, PresetResult as N, OptionsTypeScriptWithTypes as O, Rules as P, OptionsReact as S, OptionsStylistic as T, OptionsNxDependencyChecks as _, OptionsCSpell as a, OptionsPnpm as b, OptionsFiles as c, OptionsHasTypeScript as d, OptionsIsInEditor as f, OptionsNx as g, OptionsNext as h, OptionsBun as i, OptionsUnoCSS as j, OptionsTypescript as k, OptionsFormatters as l, OptionsJavascript as m, ESLintGlobalsPropValue as n, OptionsComponentExts as o, OptionsJSDoc as p, OptionsBanner as r, OptionsConfig as s, Awaitable as t, OptionsGraphQL as u, OptionsNxEnforceModuleBoundaries as v, OptionsStorybook as w, OptionsProjectType as x, OptionsOverrides as y };