projen 0.92.10 → 0.92.12

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 (253) hide show
  1. package/.jsii +13752 -324
  2. package/lib/awscdk/auto-discover.js +5 -5
  3. package/lib/awscdk/awscdk-app-java.js +1 -1
  4. package/lib/awscdk/awscdk-app-py.js +1 -1
  5. package/lib/awscdk/awscdk-app-ts.js +3 -3
  6. package/lib/awscdk/awscdk-construct.js +2 -2
  7. package/lib/awscdk/awscdk-deps-java.js +1 -1
  8. package/lib/awscdk/awscdk-deps-js.js +1 -1
  9. package/lib/awscdk/awscdk-deps-py.js +1 -1
  10. package/lib/awscdk/awscdk-deps.js +1 -1
  11. package/lib/awscdk/cdk-config.js +1 -1
  12. package/lib/awscdk/cdk-tasks.js +1 -1
  13. package/lib/awscdk/integration-test.js +1 -1
  14. package/lib/awscdk/lambda-extension.js +1 -1
  15. package/lib/awscdk/lambda-function.js +2 -2
  16. package/lib/build/build-workflow.js +1 -1
  17. package/lib/cdk/auto-discover-base.js +4 -4
  18. package/lib/cdk/construct-lib.js +1 -1
  19. package/lib/cdk/integration-test-base.js +1 -1
  20. package/lib/cdk/jsii-docgen.js +1 -1
  21. package/lib/cdk/jsii-project.js +1 -1
  22. package/lib/cdk8s/auto-discover.js +2 -2
  23. package/lib/cdk8s/cdk8s-app-py.js +1 -1
  24. package/lib/cdk8s/cdk8s-app-ts.js +1 -1
  25. package/lib/cdk8s/cdk8s-construct.js +1 -1
  26. package/lib/cdk8s/cdk8s-deps-py.js +1 -1
  27. package/lib/cdk8s/cdk8s-deps.js +1 -1
  28. package/lib/cdk8s/integration-test.js +1 -1
  29. package/lib/cdktf/cdktf-construct.js +1 -1
  30. package/lib/circleci/circleci.js +1 -1
  31. package/lib/cleanup.js +4 -3
  32. package/lib/component.js +1 -1
  33. package/lib/dependencies.js +1 -1
  34. package/lib/dev-env.js +1 -1
  35. package/lib/docker-compose/docker-compose-service.js +1 -1
  36. package/lib/docker-compose/docker-compose.js +1 -1
  37. package/lib/file.js +1 -1
  38. package/lib/gitattributes.js +1 -1
  39. package/lib/github/actions-provider.js +1 -1
  40. package/lib/github/auto-approve.js +1 -1
  41. package/lib/github/auto-merge.js +1 -1
  42. package/lib/github/auto-queue.js +1 -1
  43. package/lib/github/dependabot.js +1 -1
  44. package/lib/github/github-credentials.js +1 -1
  45. package/lib/github/github-project.js +1 -1
  46. package/lib/github/github.js +1 -1
  47. package/lib/github/merge-queue.js +1 -1
  48. package/lib/github/mergify.js +1 -1
  49. package/lib/github/pr-template.js +1 -1
  50. package/lib/github/pull-request-backport.js +1 -1
  51. package/lib/github/pull-request-lint.js +1 -1
  52. package/lib/github/stale.js +1 -1
  53. package/lib/github/task-workflow-job.js +1 -1
  54. package/lib/github/task-workflow.js +1 -1
  55. package/lib/github/workflow-actions.js +1 -1
  56. package/lib/github/workflow-jobs.js +1 -1
  57. package/lib/github/workflow-steps.js +1 -1
  58. package/lib/github/workflows.js +1 -1
  59. package/lib/gitlab/configuration.js +1 -1
  60. package/lib/gitlab/gitlab-configuration.js +1 -1
  61. package/lib/gitlab/nested-configuration.js +1 -1
  62. package/lib/gitpod.js +1 -1
  63. package/lib/ignore-file.js +1 -1
  64. package/lib/ini.js +1 -1
  65. package/lib/java/java-project.js +1 -1
  66. package/lib/java/junit.js +1 -1
  67. package/lib/java/maven-compile.js +1 -1
  68. package/lib/java/maven-packaging.js +1 -1
  69. package/lib/java/maven-sample.js +1 -1
  70. package/lib/java/pom.js +2 -2
  71. package/lib/java/projenrc.js +1 -1
  72. package/lib/javascript/biome/biome-config.d.ts +2522 -0
  73. package/lib/javascript/biome/biome-config.js +10 -0
  74. package/lib/javascript/biome/biome.d.ts +67 -0
  75. package/lib/javascript/biome/biome.js +128 -0
  76. package/lib/javascript/bundler.js +1 -1
  77. package/lib/javascript/eslint.js +1 -1
  78. package/lib/javascript/index.d.ts +2 -0
  79. package/lib/javascript/index.js +4 -1
  80. package/lib/javascript/jest.js +4 -4
  81. package/lib/javascript/license-checker.js +1 -1
  82. package/lib/javascript/node-package.js +1 -1
  83. package/lib/javascript/node-project.d.ts +13 -0
  84. package/lib/javascript/node-project.js +9 -2
  85. package/lib/javascript/npm-config.js +1 -1
  86. package/lib/javascript/prettier.js +1 -1
  87. package/lib/javascript/projenrc.d.ts +1 -1
  88. package/lib/javascript/projenrc.js +5 -2
  89. package/lib/javascript/typescript-config.js +2 -2
  90. package/lib/javascript/upgrade-dependencies.js +2 -2
  91. package/lib/javascript/yarnrc.js +1 -1
  92. package/lib/json-patch.js +1 -1
  93. package/lib/json.js +1 -1
  94. package/lib/license.js +1 -1
  95. package/lib/logger.js +1 -1
  96. package/lib/makefile.js +1 -1
  97. package/lib/object-file.js +3 -3
  98. package/lib/project-build.js +1 -1
  99. package/lib/project-tree.js +1 -1
  100. package/lib/project.js +5 -4
  101. package/lib/projects.js +1 -1
  102. package/lib/projenrc-json.js +2 -2
  103. package/lib/projenrc.js +1 -1
  104. package/lib/python/pip.js +1 -1
  105. package/lib/python/poetry.js +2 -2
  106. package/lib/python/projenrc.js +1 -1
  107. package/lib/python/pytest-sample.js +1 -1
  108. package/lib/python/pytest.js +1 -1
  109. package/lib/python/python-project.js +1 -1
  110. package/lib/python/python-sample.js +1 -1
  111. package/lib/python/requirements-file.js +1 -1
  112. package/lib/python/setuppy.js +1 -1
  113. package/lib/python/setuptools.js +1 -1
  114. package/lib/python/venv.js +1 -1
  115. package/lib/readme.js +1 -1
  116. package/lib/release/publisher.js +1 -1
  117. package/lib/release/release-trigger.js +1 -1
  118. package/lib/release/release.js +1 -1
  119. package/lib/renovatebot.js +1 -1
  120. package/lib/sample-file.js +6 -5
  121. package/lib/semver.js +1 -1
  122. package/lib/source-code.js +1 -1
  123. package/lib/task-runtime.js +1 -1
  124. package/lib/task.js +1 -1
  125. package/lib/tasks.js +1 -1
  126. package/lib/testing.js +1 -1
  127. package/lib/textfile.js +1 -1
  128. package/lib/toml.js +1 -1
  129. package/lib/typescript/projenrc-ts.js +1 -1
  130. package/lib/typescript/projenrc.js +4 -2
  131. package/lib/typescript/typescript-typedoc.js +1 -1
  132. package/lib/typescript/typescript.js +13 -7
  133. package/lib/util/synth.js +5 -4
  134. package/lib/util.d.ts +20 -2
  135. package/lib/util.js +20 -8
  136. package/lib/version.js +2 -2
  137. package/lib/vscode/devcontainer.js +1 -1
  138. package/lib/vscode/extensions.js +1 -1
  139. package/lib/vscode/launch-config.js +1 -1
  140. package/lib/vscode/settings.js +1 -1
  141. package/lib/vscode/vscode.js +1 -1
  142. package/lib/web/next.js +3 -3
  143. package/lib/web/postcss.js +1 -1
  144. package/lib/web/react.js +4 -4
  145. package/lib/web/tailwind.js +1 -1
  146. package/lib/xmlfile.js +1 -1
  147. package/lib/yaml.js +1 -1
  148. package/node_modules/end-of-stream/index.js +3 -1
  149. package/node_modules/end-of-stream/package.json +1 -1
  150. package/node_modules/pump/index.js +1 -1
  151. package/node_modules/pump/package.json +1 -1
  152. package/package.json +6 -3
  153. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  154. package/node_modules/balanced-match/LICENSE.md +0 -21
  155. package/node_modules/balanced-match/README.md +0 -97
  156. package/node_modules/balanced-match/index.js +0 -62
  157. package/node_modules/balanced-match/package.json +0 -48
  158. package/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  159. package/node_modules/brace-expansion/LICENSE +0 -21
  160. package/node_modules/brace-expansion/README.md +0 -135
  161. package/node_modules/brace-expansion/index.js +0 -203
  162. package/node_modules/brace-expansion/package.json +0 -46
  163. package/node_modules/fs.realpath/LICENSE +0 -43
  164. package/node_modules/fs.realpath/README.md +0 -33
  165. package/node_modules/fs.realpath/index.js +0 -66
  166. package/node_modules/fs.realpath/old.js +0 -303
  167. package/node_modules/fs.realpath/package.json +0 -26
  168. package/node_modules/glob/LICENSE +0 -15
  169. package/node_modules/glob/README.md +0 -399
  170. package/node_modules/glob/common.js +0 -244
  171. package/node_modules/glob/glob.js +0 -790
  172. package/node_modules/glob/node_modules/minimatch/LICENSE +0 -15
  173. package/node_modules/glob/node_modules/minimatch/README.md +0 -259
  174. package/node_modules/glob/node_modules/minimatch/lib/path.js +0 -4
  175. package/node_modules/glob/node_modules/minimatch/minimatch.js +0 -944
  176. package/node_modules/glob/node_modules/minimatch/package.json +0 -35
  177. package/node_modules/glob/package.json +0 -55
  178. package/node_modules/glob/sync.js +0 -486
  179. package/node_modules/inflight/LICENSE +0 -15
  180. package/node_modules/inflight/README.md +0 -37
  181. package/node_modules/inflight/inflight.js +0 -54
  182. package/node_modules/inflight/package.json +0 -29
  183. package/node_modules/inherits/LICENSE +0 -16
  184. package/node_modules/inherits/README.md +0 -42
  185. package/node_modules/inherits/inherits.js +0 -9
  186. package/node_modules/inherits/inherits_browser.js +0 -27
  187. package/node_modules/inherits/package.json +0 -29
  188. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/LICENSE +0 -0
  189. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/README.md +0 -0
  190. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/index.js +0 -0
  191. /package/node_modules/{fast-glob/node_modules/glob-parent → glob-parent}/package.json +0 -0
  192. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/LICENSE +0 -0
  193. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/README.md +0 -0
  194. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/index.js +0 -0
  195. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/append/constant.js +0 -0
  196. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/append.js +0 -0
  197. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/count.js +0 -0
  198. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/help.js +0 -0
  199. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store/constant.js +0 -0
  200. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store/false.js +0 -0
  201. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store/true.js +0 -0
  202. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/store.js +0 -0
  203. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/subparsers.js +0 -0
  204. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action/version.js +0 -0
  205. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action.js +0 -0
  206. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/action_container.js +0 -0
  207. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argparse.js +0 -0
  208. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument/error.js +0 -0
  209. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument/exclusive.js +0 -0
  210. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument/group.js +0 -0
  211. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/argument_parser.js +0 -0
  212. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/const.js +0 -0
  213. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/help/added_formatters.js +0 -0
  214. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/help/formatter.js +0 -0
  215. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/namespace.js +0 -0
  216. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/lib/utils.js +0 -0
  217. /package/node_modules/{argparse → xmlbuilder2/node_modules/argparse}/package.json +0 -0
  218. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/LICENSE +0 -0
  219. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/README.md +0 -0
  220. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/bin/js-yaml.js +0 -0
  221. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/dist/js-yaml.js +0 -0
  222. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/dist/js-yaml.min.js +0 -0
  223. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/index.js +0 -0
  224. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/common.js +0 -0
  225. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/dumper.js +0 -0
  226. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/exception.js +0 -0
  227. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/loader.js +0 -0
  228. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/mark.js +0 -0
  229. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/core.js +0 -0
  230. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/default_full.js +0 -0
  231. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/default_safe.js +0 -0
  232. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/failsafe.js +0 -0
  233. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema/json.js +0 -0
  234. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/schema.js +0 -0
  235. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/binary.js +0 -0
  236. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/bool.js +0 -0
  237. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/float.js +0 -0
  238. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/int.js +0 -0
  239. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/js/function.js +0 -0
  240. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/js/regexp.js +0 -0
  241. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/js/undefined.js +0 -0
  242. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/map.js +0 -0
  243. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/merge.js +0 -0
  244. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/null.js +0 -0
  245. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/omap.js +0 -0
  246. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/pairs.js +0 -0
  247. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/seq.js +0 -0
  248. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/set.js +0 -0
  249. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/str.js +0 -0
  250. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type/timestamp.js +0 -0
  251. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml/type.js +0 -0
  252. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/lib/js-yaml.js +0 -0
  253. /package/node_modules/{js-yaml → xmlbuilder2/node_modules/js-yaml}/package.json +0 -0
@@ -0,0 +1,2522 @@
1
+ /**
2
+ * This file was automatically generated by json-schema-to-typescript.
3
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4
+ * and run json-schema-to-typescript to regenerate this file.
5
+ */
6
+ export type IRuleAssistConfiguration = "on" | "off";
7
+ export type IStringSet = string[];
8
+ export type IIndentStyle = "tab" | "space";
9
+ export type IIndentWidth = number;
10
+ export type ILineEnding = "lf" | "crlf" | "cr";
11
+ /**
12
+ * Validated value for the `line_width` formatter options
13
+ *
14
+ * The allowed range of values is 1..=320
15
+ */
16
+ export type ILineWidth = number;
17
+ export type IQuoteStyle = "double" | "single";
18
+ export type IAttributePosition = "auto" | "multiline";
19
+ export type IBracketSpacing = boolean;
20
+ export type IArrowParentheses = "always" | "asNeeded";
21
+ export type IQuoteProperties = "asNeeded" | "preserve";
22
+ export type ISemicolons = "always" | "asNeeded";
23
+ /**
24
+ * Print trailing commas wherever possible in multi-line comma-separated syntactic structures.
25
+ */
26
+ export type ITrailingCommas = "all" | "es5" | "none";
27
+ /**
28
+ * Indicates the type of runtime or transformation used for interpreting JSX.
29
+ */
30
+ export type IJsxRuntime = "transparent" | "reactClassic";
31
+ export type ITrailingCommas2 = "none" | "all";
32
+ export type IRuleFixConfiguration = IRulePlainConfiguration | IRuleWithFixNoOptions;
33
+ export type IRulePlainConfiguration = "warn" | "error" | "info" | "off";
34
+ /**
35
+ * Used to identify the kind of code action emitted by a rule
36
+ */
37
+ export type IFixKind = "none" | "safe" | "unsafe";
38
+ export type IAllowDomainConfiguration = IRulePlainConfiguration | IRuleWithAllowDomainOptions;
39
+ export type INoLabelWithoutControlConfiguration = IRulePlainConfiguration | IRuleWithNoLabelWithoutControlOptions;
40
+ export type IRuleConfiguration = IRulePlainConfiguration | IRuleWithNoOptions;
41
+ export type IValidAriaRoleConfiguration = IRulePlainConfiguration | IRuleWithValidAriaRoleOptions;
42
+ export type IComplexityConfiguration = IRulePlainConfiguration | IRuleWithComplexityOptions;
43
+ export type IUseExhaustiveDependenciesConfiguration = IRulePlainConfiguration | IRuleWithUseExhaustiveDependenciesOptions;
44
+ export type IStableHookResult = boolean | number[];
45
+ export type IDeprecatedHooksConfiguration = IRulePlainConfiguration | IRuleWithDeprecatedHooksOptions;
46
+ export type IUseImportExtensionsConfiguration = IRulePlainConfiguration | IRuleWithUseImportExtensionsOptions;
47
+ export type IRestrictedImportsConfiguration = IRulePlainConfiguration | IRuleWithRestrictedImportsOptions;
48
+ export type INoRestrictedTypesConfiguration = IRulePlainConfiguration | IRuleWithNoRestrictedTypesOptions;
49
+ export type ICustomRestrictedType = string | ICustomRestrictedTypeOptions;
50
+ export type INoSecretsConfiguration = IRulePlainConfiguration | IRuleWithNoSecretsOptions;
51
+ export type IUseComponentExportOnlyModulesConfiguration = IRulePlainConfiguration | IRuleWithUseComponentExportOnlyModulesOptions;
52
+ export type IConsistentMemberAccessibilityConfiguration = IRulePlainConfiguration | IRuleWithConsistentMemberAccessibilityOptions;
53
+ export type IAccessibility = "noPublic" | "explicit" | "none";
54
+ export type IUtilityClassSortingConfiguration = IRulePlainConfiguration | IRuleWithUtilityClassSortingOptions;
55
+ export type IUseValidAutocompleteConfiguration = IRulePlainConfiguration | IRuleWithUseValidAutocompleteOptions;
56
+ export type IRestrictedGlobalsConfiguration = IRulePlainConfiguration | IRuleWithRestrictedGlobalsOptions;
57
+ export type IConsistentArrayTypeConfiguration = IRulePlainConfiguration | IRuleWithConsistentArrayTypeOptions;
58
+ export type IConsistentArrayType = "shorthand" | "generic";
59
+ export type IFilenamingConventionConfiguration = IRulePlainConfiguration | IRuleWithFilenamingConventionOptions;
60
+ /**
61
+ * Supported cases for file names.
62
+ */
63
+ export type IFilenameCase = "camelCase" | "export" | "kebab-case" | "PascalCase" | "snake_case";
64
+ export type IFilenameCases = IFilenameCase[];
65
+ export type INamingConventionConfiguration = IRulePlainConfiguration | IRuleWithNamingConventionOptions;
66
+ /**
67
+ * Supported cases.
68
+ */
69
+ export type IFormat = "camelCase" | "CONSTANT_CASE" | "PascalCase" | "snake_case";
70
+ export type IFormats = IFormat[];
71
+ export type IRegex = string;
72
+ export type IKind = ("class" | "enum" | "interface" | "enumMember" | "importNamespace" | "exportNamespace" | "variable" | "const" | "let" | "using" | "var" | "catchParameter" | "indexParameter" | "exportAlias" | "importAlias" | "classGetter" | "classSetter" | "classMethod" | "objectLiteralProperty" | "objectLiteralGetter" | "objectLiteralSetter" | "objectLiteralMethod" | "typeAlias") | "any" | "typeLike" | "function" | "namespaceLike" | "namespace" | "functionParameter" | "typeParameter" | "classMember" | "classProperty" | "objectLiteralMember" | "typeMember" | "typeGetter" | "typeProperty" | "typeSetter" | "typeMethod";
73
+ export type IRestrictedModifier = "abstract" | "private" | "protected" | "readonly" | "static";
74
+ export type IModifiers = IRestrictedModifier[];
75
+ export type IScope = "any" | "global";
76
+ export type INoConsoleConfiguration = IRulePlainConfiguration | IRuleWithNoConsoleOptions;
77
+ export type INoDoubleEqualsConfiguration = IRulePlainConfiguration | IRuleWithNoDoubleEqualsOptions;
78
+ export type IOverrides = IOverridePattern[];
79
+ export type IVcsClientKind = "git";
80
+ /**
81
+ * The configuration that is contained inside the file `biome.json`
82
+ */
83
+ export interface IConfiguration {
84
+ /**
85
+ * A field for the [JSON schema](https://json-schema.org/) specification
86
+ */
87
+ /**
88
+ * Specific configuration for assists
89
+ */
90
+ assists?: IAssistsConfiguration;
91
+ /**
92
+ * Specific configuration for the Css language
93
+ */
94
+ css?: ICssConfiguration;
95
+ /**
96
+ * A list of paths to other JSON files, used to extends the current configuration.
97
+ */
98
+ extends?: IStringSet;
99
+ /**
100
+ * The configuration of the filesystem
101
+ */
102
+ files?: IFilesConfiguration;
103
+ /**
104
+ * The configuration of the formatter
105
+ */
106
+ formatter?: IFormatterConfiguration;
107
+ /**
108
+ * Specific configuration for the GraphQL language
109
+ */
110
+ graphql?: IGraphqlConfiguration;
111
+ /**
112
+ * Specific configuration for the JavaScript language
113
+ */
114
+ javascript?: IJavascriptConfiguration;
115
+ /**
116
+ * Specific configuration for the Json language
117
+ */
118
+ json?: IJsonConfiguration;
119
+ /**
120
+ * The configuration for the linter
121
+ */
122
+ linter?: ILinterConfiguration;
123
+ /**
124
+ * The configuration of the import sorting
125
+ */
126
+ organizeImports?: IOrganizeImports;
127
+ /**
128
+ * A list of granular patterns that should be applied only to a sub set of files
129
+ */
130
+ overrides?: IOverrides;
131
+ /**
132
+ * The configuration of the VCS integration
133
+ */
134
+ vcs?: IVcsConfiguration;
135
+ }
136
+ export interface IAssistsConfiguration {
137
+ /**
138
+ * Whether Biome should fail in CLI if the assists were not applied to the code.
139
+ */
140
+ actions?: IActions;
141
+ /**
142
+ * Whether Biome should enable assists via LSP.
143
+ */
144
+ enabled?: boolean;
145
+ /**
146
+ * A list of Unix shell style patterns. The formatter will ignore files/folders that will match these patterns.
147
+ */
148
+ ignore?: IStringSet;
149
+ /**
150
+ * A list of Unix shell style patterns. The formatter will include files/folders that will match these patterns.
151
+ */
152
+ include?: IStringSet;
153
+ }
154
+ export interface IActions {
155
+ source?: ISource;
156
+ }
157
+ /**
158
+ * A list of rules that belong to this group
159
+ */
160
+ export interface ISource {
161
+ /**
162
+ * Enforce props sorting in JSX elements.
163
+ */
164
+ sortJsxProps?: IRuleAssistConfiguration;
165
+ /**
166
+ * Sorts the keys of a JSON object in natural order
167
+ */
168
+ useSortedKeys?: IRuleAssistConfiguration;
169
+ }
170
+ /**
171
+ * Options applied to CSS files
172
+ */
173
+ export interface ICssConfiguration {
174
+ /**
175
+ * CSS assists options
176
+ */
177
+ assists?: ICssAssists;
178
+ /**
179
+ * CSS formatter options
180
+ */
181
+ formatter?: ICssFormatter;
182
+ /**
183
+ * CSS linter options
184
+ */
185
+ linter?: ICssLinter;
186
+ /**
187
+ * CSS parsing options
188
+ */
189
+ parser?: ICssParser;
190
+ }
191
+ /**
192
+ * Options that changes how the CSS assists behaves
193
+ */
194
+ export interface ICssAssists {
195
+ /**
196
+ * Control the assists for CSS files.
197
+ */
198
+ enabled?: boolean;
199
+ }
200
+ /**
201
+ * Options that changes how the CSS formatter behaves
202
+ */
203
+ export interface ICssFormatter {
204
+ /**
205
+ * Control the formatter for CSS (and its super languages) files.
206
+ */
207
+ enabled?: boolean;
208
+ /**
209
+ * The indent style applied to CSS (and its super languages) files.
210
+ */
211
+ indentStyle?: IIndentStyle;
212
+ /**
213
+ * The size of the indentation applied to CSS (and its super languages) files. Default to 2.
214
+ */
215
+ indentWidth?: IIndentWidth;
216
+ /**
217
+ * The type of line ending applied to CSS (and its super languages) files.
218
+ */
219
+ lineEnding?: ILineEnding;
220
+ /**
221
+ * What's the max width of a line applied to CSS (and its super languages) files. Defaults to 80.
222
+ */
223
+ lineWidth?: ILineWidth;
224
+ /**
225
+ * The type of quotes used in CSS code. Defaults to double.
226
+ */
227
+ quoteStyle?: IQuoteStyle;
228
+ }
229
+ /**
230
+ * Options that changes how the CSS linter behaves
231
+ */
232
+ export interface ICssLinter {
233
+ /**
234
+ * Control the linter for CSS files.
235
+ */
236
+ enabled?: boolean;
237
+ }
238
+ /**
239
+ * Options that changes how the CSS parser behaves
240
+ */
241
+ export interface ICssParser {
242
+ /**
243
+ * Allow comments to appear on incorrect lines in `.css` files
244
+ */
245
+ allowWrongLineComments?: boolean;
246
+ /**
247
+ * Enables parsing of CSS Modules specific features.
248
+ */
249
+ cssModules?: boolean;
250
+ }
251
+ /**
252
+ * The configuration of the filesystem
253
+ */
254
+ export interface IFilesConfiguration {
255
+ /**
256
+ * A list of Unix shell style patterns. Biome will ignore files/folders that will match these patterns.
257
+ */
258
+ ignore?: IStringSet;
259
+ /**
260
+ * Tells Biome to not emit diagnostics when handling files that doesn't know
261
+ */
262
+ ignoreUnknown?: boolean;
263
+ /**
264
+ * A list of Unix shell style patterns. Biome will handle only those files/folders that will match these patterns.
265
+ */
266
+ include?: IStringSet;
267
+ /**
268
+ * The maximum allowed size for source code files in bytes. Files above this limit will be ignored for performance reasons. Defaults to 1 MiB
269
+ */
270
+ maxSize?: number;
271
+ }
272
+ /**
273
+ * Generic options applied to all files
274
+ */
275
+ export interface IFormatterConfiguration {
276
+ /**
277
+ * The attribute position style in HTMLish languages. By default auto.
278
+ */
279
+ attributePosition?: IAttributePosition;
280
+ /**
281
+ * Whether to insert spaces around brackets in object literals. Defaults to true.
282
+ */
283
+ bracketSpacing?: IBracketSpacing;
284
+ enabled?: boolean;
285
+ /**
286
+ * Stores whether formatting should be allowed to proceed if a given file has syntax errors
287
+ */
288
+ formatWithErrors?: boolean;
289
+ /**
290
+ * A list of Unix shell style patterns. The formatter will ignore files/folders that will match these patterns.
291
+ */
292
+ ignore?: IStringSet;
293
+ /**
294
+ * A list of Unix shell style patterns. The formatter will include files/folders that will match these patterns.
295
+ */
296
+ include?: IStringSet;
297
+ /**
298
+ * The size of the indentation, 2 by default (deprecated, use `indent-width`)
299
+ */
300
+ indentSize?: IIndentWidth;
301
+ /**
302
+ * The indent style.
303
+ */
304
+ indentStyle?: IIndentStyle;
305
+ /**
306
+ * The size of the indentation, 2 by default
307
+ */
308
+ indentWidth?: IIndentWidth;
309
+ /**
310
+ * The type of line ending.
311
+ */
312
+ lineEnding?: ILineEnding;
313
+ /**
314
+ * What's the max width of a line. Defaults to 80.
315
+ */
316
+ lineWidth?: ILineWidth;
317
+ /**
318
+ * Use any `.editorconfig` files to configure the formatter. Configuration in `biome.json` will override `.editorconfig` configuration. Default: false.
319
+ */
320
+ useEditorconfig?: boolean;
321
+ }
322
+ /**
323
+ * Options applied to GraphQL files
324
+ */
325
+ export interface IGraphqlConfiguration {
326
+ /**
327
+ * GraphQL formatter options
328
+ */
329
+ formatter?: IGraphqlFormatter;
330
+ linter?: IGraphqlLinter;
331
+ }
332
+ /**
333
+ * Options that changes how the GraphQL formatter behaves
334
+ */
335
+ export interface IGraphqlFormatter {
336
+ /**
337
+ * Whether to insert spaces around brackets in object literals. Defaults to true.
338
+ */
339
+ bracketSpacing?: IBracketSpacing;
340
+ /**
341
+ * Control the formatter for GraphQL files.
342
+ */
343
+ enabled?: boolean;
344
+ /**
345
+ * The indent style applied to GraphQL files.
346
+ */
347
+ indentStyle?: IIndentStyle;
348
+ /**
349
+ * The size of the indentation applied to GraphQL files. Default to 2.
350
+ */
351
+ indentWidth?: IIndentWidth;
352
+ /**
353
+ * The type of line ending applied to GraphQL files.
354
+ */
355
+ lineEnding?: ILineEnding;
356
+ /**
357
+ * What's the max width of a line applied to GraphQL files. Defaults to 80.
358
+ */
359
+ lineWidth?: ILineWidth;
360
+ /**
361
+ * The type of quotes used in GraphQL code. Defaults to double.
362
+ */
363
+ quoteStyle?: IQuoteStyle;
364
+ }
365
+ /**
366
+ * Options that changes how the GraphQL linter behaves
367
+ */
368
+ export interface IGraphqlLinter {
369
+ /**
370
+ * Control the formatter for GraphQL files.
371
+ */
372
+ enabled?: boolean;
373
+ }
374
+ /**
375
+ * A set of options applied to the JavaScript files
376
+ */
377
+ export interface IJavascriptConfiguration {
378
+ /**
379
+ * Assists options
380
+ */
381
+ assists?: IJavascriptAssists;
382
+ /**
383
+ * Formatting options
384
+ */
385
+ formatter?: IJavascriptFormatter;
386
+ /**
387
+ * A list of global bindings that should be ignored by the analyzers
388
+ *
389
+ * If defined here, they should not emit diagnostics.
390
+ */
391
+ globals?: IStringSet;
392
+ /**
393
+ * Indicates the type of runtime or transformation used for interpreting JSX.
394
+ */
395
+ jsxRuntime?: IJsxRuntime;
396
+ /**
397
+ * Linter options
398
+ */
399
+ linter?: IJavascriptLinter;
400
+ organizeImports?: IJavascriptOrganizeImports;
401
+ /**
402
+ * Parsing options
403
+ */
404
+ parser?: IJavascriptParser;
405
+ }
406
+ /**
407
+ * Linter options specific to the JavaScript linter
408
+ */
409
+ export interface IJavascriptAssists {
410
+ /**
411
+ * Control the linter for JavaScript (and its super languages) files.
412
+ */
413
+ enabled?: boolean;
414
+ }
415
+ /**
416
+ * Formatting options specific to the JavaScript files
417
+ */
418
+ export interface IJavascriptFormatter {
419
+ /**
420
+ * Whether to add non-necessary parentheses to arrow functions. Defaults to "always".
421
+ */
422
+ arrowParentheses?: IArrowParentheses;
423
+ /**
424
+ * The attribute position style in jsx elements. Defaults to auto.
425
+ */
426
+ attributePosition?: IAttributePosition;
427
+ /**
428
+ * Whether to hug the closing bracket of multiline HTML/JSX tags to the end of the last line, rather than being alone on the following line. Defaults to false.
429
+ */
430
+ bracketSameLine?: boolean;
431
+ /**
432
+ * Whether to insert spaces around brackets in object literals. Defaults to true.
433
+ */
434
+ bracketSpacing?: IBracketSpacing;
435
+ /**
436
+ * Control the formatter for JavaScript (and its super languages) files.
437
+ */
438
+ enabled?: boolean;
439
+ /**
440
+ * The size of the indentation applied to JavaScript (and its super languages) files. Default to 2.
441
+ */
442
+ indentSize?: IIndentWidth;
443
+ /**
444
+ * The indent style applied to JavaScript (and its super languages) files.
445
+ */
446
+ indentStyle?: IIndentStyle;
447
+ /**
448
+ * The size of the indentation applied to JavaScript (and its super languages) files. Default to 2.
449
+ */
450
+ indentWidth?: IIndentWidth;
451
+ /**
452
+ * The type of quotes used in JSX. Defaults to double.
453
+ */
454
+ jsxQuoteStyle?: IQuoteStyle;
455
+ /**
456
+ * The type of line ending applied to JavaScript (and its super languages) files.
457
+ */
458
+ lineEnding?: ILineEnding;
459
+ /**
460
+ * What's the max width of a line applied to JavaScript (and its super languages) files. Defaults to 80.
461
+ */
462
+ lineWidth?: ILineWidth;
463
+ /**
464
+ * When properties in objects are quoted. Defaults to asNeeded.
465
+ */
466
+ quoteProperties?: IQuoteProperties;
467
+ /**
468
+ * The type of quotes used in JavaScript code. Defaults to double.
469
+ */
470
+ quoteStyle?: IQuoteStyle;
471
+ /**
472
+ * Whether the formatter prints semicolons for all statements or only in for statements where it is necessary because of ASI.
473
+ */
474
+ semicolons?: ISemicolons;
475
+ /**
476
+ * Print trailing commas wherever possible in multi-line comma-separated syntactic structures. Defaults to "all".
477
+ */
478
+ trailingComma?: ITrailingCommas;
479
+ /**
480
+ * Print trailing commas wherever possible in multi-line comma-separated syntactic structures. Defaults to "all".
481
+ */
482
+ trailingCommas?: ITrailingCommas;
483
+ }
484
+ /**
485
+ * Linter options specific to the JavaScript linter
486
+ */
487
+ export interface IJavascriptLinter {
488
+ /**
489
+ * Control the linter for JavaScript (and its super languages) files.
490
+ */
491
+ enabled?: boolean;
492
+ }
493
+ export interface IJavascriptOrganizeImports {
494
+ }
495
+ /**
496
+ * Options that changes how the JavaScript parser behaves
497
+ */
498
+ export interface IJavascriptParser {
499
+ /**
500
+ * It enables the experimental and unsafe parsing of parameter decorators
501
+ *
502
+ * These decorators belong to an old proposal, and they are subject to change.
503
+ */
504
+ unsafeParameterDecoratorsEnabled?: boolean;
505
+ }
506
+ /**
507
+ * Options applied to JSON files
508
+ */
509
+ export interface IJsonConfiguration {
510
+ /**
511
+ * Assists options
512
+ */
513
+ assists?: IJsonAssists;
514
+ /**
515
+ * Formatting options
516
+ */
517
+ formatter?: IJsonFormatter;
518
+ /**
519
+ * Linting options
520
+ */
521
+ linter?: IJsonLinter;
522
+ /**
523
+ * Parsing options
524
+ */
525
+ parser?: IJsonParser;
526
+ }
527
+ /**
528
+ * Linter options specific to the JSON linter
529
+ */
530
+ export interface IJsonAssists {
531
+ /**
532
+ * Control the linter for JSON (and its super languages) files.
533
+ */
534
+ enabled?: boolean;
535
+ }
536
+ export interface IJsonFormatter {
537
+ /**
538
+ * Control the formatter for JSON (and its super languages) files.
539
+ */
540
+ enabled?: boolean;
541
+ /**
542
+ * The size of the indentation applied to JSON (and its super languages) files. Default to 2.
543
+ */
544
+ indentSize?: IIndentWidth;
545
+ /**
546
+ * The indent style applied to JSON (and its super languages) files.
547
+ */
548
+ indentStyle?: IIndentStyle;
549
+ /**
550
+ * The size of the indentation applied to JSON (and its super languages) files. Default to 2.
551
+ */
552
+ indentWidth?: IIndentWidth;
553
+ /**
554
+ * The type of line ending applied to JSON (and its super languages) files.
555
+ */
556
+ lineEnding?: ILineEnding;
557
+ /**
558
+ * What's the max width of a line applied to JSON (and its super languages) files. Defaults to 80.
559
+ */
560
+ lineWidth?: ILineWidth;
561
+ /**
562
+ * Print trailing commas wherever possible in multi-line comma-separated syntactic structures. Defaults to "none".
563
+ */
564
+ trailingCommas?: ITrailingCommas2;
565
+ }
566
+ /**
567
+ * Linter options specific to the JSON linter
568
+ */
569
+ export interface IJsonLinter {
570
+ /**
571
+ * Control the linter for JSON (and its super languages) files.
572
+ */
573
+ enabled?: boolean;
574
+ }
575
+ /**
576
+ * Options that changes how the JSON parser behaves
577
+ */
578
+ export interface IJsonParser {
579
+ /**
580
+ * Allow parsing comments in `.json` files
581
+ */
582
+ allowComments?: boolean;
583
+ /**
584
+ * Allow parsing trailing commas in `.json` files
585
+ */
586
+ allowTrailingCommas?: boolean;
587
+ }
588
+ export interface ILinterConfiguration {
589
+ /**
590
+ * if `false`, it disables the feature and the linter won't be executed. `true` by default
591
+ */
592
+ enabled?: boolean;
593
+ /**
594
+ * A list of Unix shell style patterns. The formatter will ignore files/folders that will match these patterns.
595
+ */
596
+ ignore?: IStringSet;
597
+ /**
598
+ * A list of Unix shell style patterns. The formatter will include files/folders that will match these patterns.
599
+ */
600
+ include?: IStringSet;
601
+ /**
602
+ * List of rules
603
+ */
604
+ rules?: IRules;
605
+ }
606
+ export interface IRules {
607
+ a11y?: IA11y;
608
+ /**
609
+ * It enables ALL rules. The rules that belong to `nursery` won't be enabled.
610
+ */
611
+ all?: boolean;
612
+ complexity?: IComplexity;
613
+ correctness?: ICorrectness;
614
+ nursery?: INursery;
615
+ performance?: IPerformance;
616
+ /**
617
+ * It enables the lint rules recommended by Biome. `true` by default.
618
+ */
619
+ recommended?: boolean;
620
+ security?: ISecurity;
621
+ style?: IStyle;
622
+ suspicious?: ISuspicious;
623
+ }
624
+ /**
625
+ * A list of rules that belong to this group
626
+ */
627
+ export interface IA11y {
628
+ /**
629
+ * It enables ALL rules for this group.
630
+ */
631
+ all?: boolean;
632
+ /**
633
+ * Enforce that the accessKey attribute is not used on any HTML element.
634
+ */
635
+ noAccessKey?: IRuleFixConfiguration;
636
+ /**
637
+ * Enforce that aria-hidden="true" is not set on focusable elements.
638
+ */
639
+ noAriaHiddenOnFocusable?: IRuleFixConfiguration;
640
+ /**
641
+ * Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.
642
+ */
643
+ noAriaUnsupportedElements?: IRuleFixConfiguration;
644
+ /**
645
+ * Enforce that autoFocus prop is not used on elements.
646
+ */
647
+ noAutofocus?: IRuleFixConfiguration;
648
+ /**
649
+ * Disallow target="_blank" attribute without rel="noreferrer"
650
+ */
651
+ noBlankTarget?: IAllowDomainConfiguration;
652
+ /**
653
+ * Enforces that no distracting elements are used.
654
+ */
655
+ noDistractingElements?: IRuleFixConfiguration;
656
+ /**
657
+ * The scope prop should be used only on \<th> elements.
658
+ */
659
+ noHeaderScope?: IRuleFixConfiguration;
660
+ /**
661
+ * Enforce that non-interactive ARIA roles are not assigned to interactive HTML elements.
662
+ */
663
+ noInteractiveElementToNoninteractiveRole?: IRuleFixConfiguration;
664
+ /**
665
+ * Enforce that a label element or component has a text label and an associated input.
666
+ */
667
+ noLabelWithoutControl?: INoLabelWithoutControlConfiguration;
668
+ /**
669
+ * Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements.
670
+ */
671
+ noNoninteractiveElementToInteractiveRole?: IRuleFixConfiguration;
672
+ /**
673
+ * Enforce that tabIndex is not assigned to non-interactive HTML elements.
674
+ */
675
+ noNoninteractiveTabindex?: IRuleFixConfiguration;
676
+ /**
677
+ * Prevent the usage of positive integers on tabIndex property
678
+ */
679
+ noPositiveTabindex?: IRuleFixConfiguration;
680
+ /**
681
+ * Enforce img alt prop does not contain the word "image", "picture", or "photo".
682
+ */
683
+ noRedundantAlt?: IRuleConfiguration;
684
+ /**
685
+ * Enforce explicit role property is not the same as implicit/default role property on an element.
686
+ */
687
+ noRedundantRoles?: IRuleFixConfiguration;
688
+ /**
689
+ * Enforces the usage of the title element for the svg element.
690
+ */
691
+ noSvgWithoutTitle?: IRuleConfiguration;
692
+ /**
693
+ * It enables the recommended rules for this group
694
+ */
695
+ recommended?: boolean;
696
+ /**
697
+ * Enforce that all elements that require alternative text have meaningful information to relay back to the end user.
698
+ */
699
+ useAltText?: IRuleConfiguration;
700
+ /**
701
+ * Enforce that anchors have content and that the content is accessible to screen readers.
702
+ */
703
+ useAnchorContent?: IRuleFixConfiguration;
704
+ /**
705
+ * Enforce that tabIndex is assigned to non-interactive HTML elements with aria-activedescendant.
706
+ */
707
+ useAriaActivedescendantWithTabindex?: IRuleFixConfiguration;
708
+ /**
709
+ * Enforce that elements with ARIA roles must have all required ARIA attributes for that role.
710
+ */
711
+ useAriaPropsForRole?: IRuleConfiguration;
712
+ /**
713
+ * Enforces the usage of the attribute type for the element button
714
+ */
715
+ useButtonType?: IRuleConfiguration;
716
+ /**
717
+ * Elements with an interactive role and interaction handlers must be focusable.
718
+ */
719
+ useFocusableInteractive?: IRuleConfiguration;
720
+ /**
721
+ * Disallow a missing generic family keyword within font families.
722
+ */
723
+ useGenericFontNames?: IRuleConfiguration;
724
+ /**
725
+ * Enforce that heading elements (h1, h2, etc.) have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the aria-hidden prop.
726
+ */
727
+ useHeadingContent?: IRuleConfiguration;
728
+ /**
729
+ * Enforce that html element has lang attribute.
730
+ */
731
+ useHtmlLang?: IRuleConfiguration;
732
+ /**
733
+ * Enforces the usage of the attribute title for the element iframe.
734
+ */
735
+ useIframeTitle?: IRuleConfiguration;
736
+ /**
737
+ * Enforce onClick is accompanied by at least one of the following: onKeyUp, onKeyDown, onKeyPress.
738
+ */
739
+ useKeyWithClickEvents?: IRuleConfiguration;
740
+ /**
741
+ * Enforce onMouseOver / onMouseOut are accompanied by onFocus / onBlur.
742
+ */
743
+ useKeyWithMouseEvents?: IRuleConfiguration;
744
+ /**
745
+ * Enforces that audio and video elements must have a track for captions.
746
+ */
747
+ useMediaCaption?: IRuleConfiguration;
748
+ /**
749
+ * It detects the use of role attributes in JSX elements and suggests using semantic elements instead.
750
+ */
751
+ useSemanticElements?: IRuleConfiguration;
752
+ /**
753
+ * Enforce that all anchors are valid, and they are navigable elements.
754
+ */
755
+ useValidAnchor?: IRuleConfiguration;
756
+ /**
757
+ * Ensures that ARIA properties aria-* are all valid.
758
+ */
759
+ useValidAriaProps?: IRuleFixConfiguration;
760
+ /**
761
+ * Elements with ARIA roles must use a valid, non-abstract ARIA role.
762
+ */
763
+ useValidAriaRole?: IValidAriaRoleConfiguration;
764
+ /**
765
+ * Enforce that ARIA state and property values are valid.
766
+ */
767
+ useValidAriaValues?: IRuleConfiguration;
768
+ /**
769
+ * Ensure that the attribute passed to the lang attribute is a correct ISO language and/or country.
770
+ */
771
+ useValidLang?: IRuleConfiguration;
772
+ }
773
+ export interface IRuleWithFixNoOptions {
774
+ /**
775
+ * The kind of the code actions emitted by the rule
776
+ */
777
+ fix?: IFixKind;
778
+ /**
779
+ * The severity of the emitted diagnostics by the rule
780
+ */
781
+ level: IRulePlainConfiguration;
782
+ }
783
+ export interface IRuleWithAllowDomainOptions {
784
+ /**
785
+ * The kind of the code actions emitted by the rule
786
+ */
787
+ fix?: IFixKind;
788
+ /**
789
+ * The severity of the emitted diagnostics by the rule
790
+ */
791
+ level: IRulePlainConfiguration;
792
+ /**
793
+ * Rule's options
794
+ */
795
+ options?: IAllowDomainOptions;
796
+ }
797
+ export interface IAllowDomainOptions {
798
+ /**
799
+ * List of domains to allow `target="_blank"` without `rel="noreferrer"`
800
+ */
801
+ allowDomains?: string[];
802
+ }
803
+ export interface IRuleWithNoLabelWithoutControlOptions {
804
+ /**
805
+ * The severity of the emitted diagnostics by the rule
806
+ */
807
+ level: IRulePlainConfiguration;
808
+ /**
809
+ * Rule's options
810
+ */
811
+ options?: INoLabelWithoutControlOptions;
812
+ }
813
+ export interface INoLabelWithoutControlOptions {
814
+ /**
815
+ * Array of component names that should be considered the same as an `input` element.
816
+ */
817
+ inputComponents?: string[];
818
+ /**
819
+ * Array of attributes that should be treated as the `label` accessible text content.
820
+ */
821
+ labelAttributes?: string[];
822
+ /**
823
+ * Array of component names that should be considered the same as a `label` element.
824
+ */
825
+ labelComponents?: string[];
826
+ }
827
+ export interface IRuleWithNoOptions {
828
+ /**
829
+ * The severity of the emitted diagnostics by the rule
830
+ */
831
+ level: IRulePlainConfiguration;
832
+ }
833
+ export interface IRuleWithValidAriaRoleOptions {
834
+ /**
835
+ * The kind of the code actions emitted by the rule
836
+ */
837
+ fix?: IFixKind;
838
+ /**
839
+ * The severity of the emitted diagnostics by the rule
840
+ */
841
+ level: IRulePlainConfiguration;
842
+ /**
843
+ * Rule's options
844
+ */
845
+ options?: IValidAriaRoleOptions;
846
+ }
847
+ export interface IValidAriaRoleOptions {
848
+ allowInvalidRoles?: string[];
849
+ ignoreNonDom?: boolean;
850
+ }
851
+ /**
852
+ * A list of rules that belong to this group
853
+ */
854
+ export interface IComplexity {
855
+ /**
856
+ * It enables ALL rules for this group.
857
+ */
858
+ all?: boolean;
859
+ /**
860
+ * Disallow primitive type aliases and misleading types.
861
+ */
862
+ noBannedTypes?: IRuleFixConfiguration;
863
+ /**
864
+ * Disallow empty type parameters in type aliases and interfaces.
865
+ */
866
+ noEmptyTypeParameters?: IRuleConfiguration;
867
+ /**
868
+ * Disallow functions that exceed a given Cognitive Complexity score.
869
+ */
870
+ noExcessiveCognitiveComplexity?: IComplexityConfiguration;
871
+ /**
872
+ * This rule enforces a maximum depth to nested describe() in test files.
873
+ */
874
+ noExcessiveNestedTestSuites?: IRuleConfiguration;
875
+ /**
876
+ * Disallow unnecessary boolean casts
877
+ */
878
+ noExtraBooleanCast?: IRuleFixConfiguration;
879
+ /**
880
+ * Prefer for...of statement instead of Array.forEach.
881
+ */
882
+ noForEach?: IRuleConfiguration;
883
+ /**
884
+ * Disallow unclear usage of consecutive space characters in regular expression literals
885
+ */
886
+ noMultipleSpacesInRegularExpressionLiterals?: IRuleFixConfiguration;
887
+ /**
888
+ * This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace.
889
+ */
890
+ noStaticOnlyClass?: IRuleConfiguration;
891
+ /**
892
+ * Disallow this and super in static contexts.
893
+ */
894
+ noThisInStatic?: IRuleFixConfiguration;
895
+ /**
896
+ * Disallow unnecessary catch clauses.
897
+ */
898
+ noUselessCatch?: IRuleFixConfiguration;
899
+ /**
900
+ * Disallow unnecessary constructors.
901
+ */
902
+ noUselessConstructor?: IRuleFixConfiguration;
903
+ /**
904
+ * Disallow empty exports that don't change anything in a module file.
905
+ */
906
+ noUselessEmptyExport?: IRuleFixConfiguration;
907
+ /**
908
+ * Disallow unnecessary fragments
909
+ */
910
+ noUselessFragments?: IRuleFixConfiguration;
911
+ /**
912
+ * Disallow unnecessary labels.
913
+ */
914
+ noUselessLabel?: IRuleFixConfiguration;
915
+ /**
916
+ * Disallow unnecessary nested block statements.
917
+ */
918
+ noUselessLoneBlockStatements?: IRuleFixConfiguration;
919
+ /**
920
+ * Disallow renaming import, export, and destructured assignments to the same name.
921
+ */
922
+ noUselessRename?: IRuleFixConfiguration;
923
+ /**
924
+ * Disallow unnecessary concatenation of string or template literals.
925
+ */
926
+ noUselessStringConcat?: IRuleFixConfiguration;
927
+ /**
928
+ * Disallow useless case in switch statements.
929
+ */
930
+ noUselessSwitchCase?: IRuleFixConfiguration;
931
+ /**
932
+ * Disallow ternary operators when simpler alternatives exist.
933
+ */
934
+ noUselessTernary?: IRuleFixConfiguration;
935
+ /**
936
+ * Disallow useless this aliasing.
937
+ */
938
+ noUselessThisAlias?: IRuleFixConfiguration;
939
+ /**
940
+ * Disallow using any or unknown as type constraint.
941
+ */
942
+ noUselessTypeConstraint?: IRuleFixConfiguration;
943
+ /**
944
+ * Disallow initializing variables to undefined.
945
+ */
946
+ noUselessUndefinedInitialization?: IRuleFixConfiguration;
947
+ /**
948
+ * Disallow the use of void operators, which is not a familiar operator.
949
+ */
950
+ noVoid?: IRuleConfiguration;
951
+ /**
952
+ * Disallow with statements in non-strict contexts.
953
+ */
954
+ noWith?: IRuleConfiguration;
955
+ /**
956
+ * It enables the recommended rules for this group
957
+ */
958
+ recommended?: boolean;
959
+ /**
960
+ * Use arrow functions over function expressions.
961
+ */
962
+ useArrowFunction?: IRuleFixConfiguration;
963
+ /**
964
+ * Use Date.now() to get the number of milliseconds since the Unix Epoch.
965
+ */
966
+ useDateNow?: IRuleFixConfiguration;
967
+ /**
968
+ * Promotes the use of .flatMap() when map().flat() are used together.
969
+ */
970
+ useFlatMap?: IRuleFixConfiguration;
971
+ /**
972
+ * Enforce the usage of a literal access to properties over computed property access.
973
+ */
974
+ useLiteralKeys?: IRuleFixConfiguration;
975
+ /**
976
+ * Enforce using concise optional chain instead of chained logical expressions.
977
+ */
978
+ useOptionalChain?: IRuleFixConfiguration;
979
+ /**
980
+ * Enforce the use of the regular expression literals instead of the RegExp constructor if possible.
981
+ */
982
+ useRegexLiterals?: IRuleFixConfiguration;
983
+ /**
984
+ * Disallow number literal object member names which are not base10 or uses underscore as separator
985
+ */
986
+ useSimpleNumberKeys?: IRuleFixConfiguration;
987
+ /**
988
+ * Discard redundant terms from logical expressions.
989
+ */
990
+ useSimplifiedLogicExpression?: IRuleFixConfiguration;
991
+ }
992
+ export interface IRuleWithComplexityOptions {
993
+ /**
994
+ * The severity of the emitted diagnostics by the rule
995
+ */
996
+ level: IRulePlainConfiguration;
997
+ /**
998
+ * Rule's options
999
+ */
1000
+ options?: IComplexityOptions;
1001
+ }
1002
+ /**
1003
+ * Options for the rule `noExcessiveCognitiveComplexity`.
1004
+ */
1005
+ export interface IComplexityOptions {
1006
+ /**
1007
+ * The maximum complexity score that we allow. Anything higher is considered excessive.
1008
+ */
1009
+ maxAllowedComplexity?: number;
1010
+ }
1011
+ /**
1012
+ * A list of rules that belong to this group
1013
+ */
1014
+ export interface ICorrectness {
1015
+ /**
1016
+ * It enables ALL rules for this group.
1017
+ */
1018
+ all?: boolean;
1019
+ /**
1020
+ * Prevent passing of children as props.
1021
+ */
1022
+ noChildrenProp?: IRuleConfiguration;
1023
+ /**
1024
+ * Prevents from having const variables being re-assigned.
1025
+ */
1026
+ noConstAssign?: IRuleFixConfiguration;
1027
+ /**
1028
+ * Disallow constant expressions in conditions
1029
+ */
1030
+ noConstantCondition?: IRuleConfiguration;
1031
+ /**
1032
+ * Disallow the use of Math.min and Math.max to clamp a value where the result itself is constant.
1033
+ */
1034
+ noConstantMathMinMaxClamp?: IRuleFixConfiguration;
1035
+ /**
1036
+ * Disallow returning a value from a constructor.
1037
+ */
1038
+ noConstructorReturn?: IRuleConfiguration;
1039
+ /**
1040
+ * Disallow empty character classes in regular expression literals.
1041
+ */
1042
+ noEmptyCharacterClassInRegex?: IRuleConfiguration;
1043
+ /**
1044
+ * Disallows empty destructuring patterns.
1045
+ */
1046
+ noEmptyPattern?: IRuleConfiguration;
1047
+ /**
1048
+ * Disallow to use unnecessary callback on flatMap.
1049
+ */
1050
+ noFlatMapIdentity?: IRuleFixConfiguration;
1051
+ /**
1052
+ * Disallow calling global object properties as functions
1053
+ */
1054
+ noGlobalObjectCalls?: IRuleConfiguration;
1055
+ /**
1056
+ * Disallow function and var declarations that are accessible outside their block.
1057
+ */
1058
+ noInnerDeclarations?: IRuleConfiguration;
1059
+ /**
1060
+ * Ensure that builtins are correctly instantiated.
1061
+ */
1062
+ noInvalidBuiltinInstantiation?: IRuleFixConfiguration;
1063
+ /**
1064
+ * Prevents the incorrect use of super() inside classes. It also checks whether a call super() is missing from classes that extends other constructors.
1065
+ */
1066
+ noInvalidConstructorSuper?: IRuleConfiguration;
1067
+ /**
1068
+ * Disallow non-standard direction values for linear gradient functions.
1069
+ */
1070
+ noInvalidDirectionInLinearGradient?: IRuleConfiguration;
1071
+ /**
1072
+ * Disallows invalid named grid areas in CSS Grid Layouts.
1073
+ */
1074
+ noInvalidGridAreas?: IRuleConfiguration;
1075
+ /**
1076
+ * Disallow new operators with global non-constructor functions.
1077
+ */
1078
+ noInvalidNewBuiltin?: IRuleFixConfiguration;
1079
+ /**
1080
+ * Disallow the use of @import at-rules in invalid positions.
1081
+ */
1082
+ noInvalidPositionAtImportRule?: IRuleConfiguration;
1083
+ /**
1084
+ * Disallow the use of variables and function parameters before their declaration
1085
+ */
1086
+ noInvalidUseBeforeDeclaration?: IRuleConfiguration;
1087
+ /**
1088
+ * Disallow new operators with the Symbol object.
1089
+ */
1090
+ noNewSymbol?: IRuleFixConfiguration;
1091
+ /**
1092
+ * Forbid the use of Node.js builtin modules.
1093
+ */
1094
+ noNodejsModules?: IRuleConfiguration;
1095
+ /**
1096
+ * Disallow \8 and \9 escape sequences in string literals.
1097
+ */
1098
+ noNonoctalDecimalEscape?: IRuleFixConfiguration;
1099
+ /**
1100
+ * Disallow literal numbers that lose precision
1101
+ */
1102
+ noPrecisionLoss?: IRuleConfiguration;
1103
+ /**
1104
+ * Prevent the usage of the return value of React.render.
1105
+ */
1106
+ noRenderReturnValue?: IRuleConfiguration;
1107
+ /**
1108
+ * Disallow assignments where both sides are exactly the same.
1109
+ */
1110
+ noSelfAssign?: IRuleConfiguration;
1111
+ /**
1112
+ * Disallow returning a value from a setter
1113
+ */
1114
+ noSetterReturn?: IRuleConfiguration;
1115
+ /**
1116
+ * Disallow comparison of expressions modifying the string case with non-compliant value.
1117
+ */
1118
+ noStringCaseMismatch?: IRuleFixConfiguration;
1119
+ /**
1120
+ * Disallow lexical declarations in switch clauses.
1121
+ */
1122
+ noSwitchDeclarations?: IRuleFixConfiguration;
1123
+ /**
1124
+ * Disallow the use of dependencies that aren't specified in the package.json.
1125
+ */
1126
+ noUndeclaredDependencies?: IRuleConfiguration;
1127
+ /**
1128
+ * Prevents the usage of variables that haven't been declared inside the document.
1129
+ */
1130
+ noUndeclaredVariables?: IRuleConfiguration;
1131
+ /**
1132
+ * Disallow unknown CSS value functions.
1133
+ */
1134
+ noUnknownFunction?: IRuleConfiguration;
1135
+ /**
1136
+ * Disallow unknown media feature names.
1137
+ */
1138
+ noUnknownMediaFeatureName?: IRuleConfiguration;
1139
+ /**
1140
+ * Disallow unknown properties.
1141
+ */
1142
+ noUnknownProperty?: IRuleConfiguration;
1143
+ /**
1144
+ * Disallow unknown CSS units.
1145
+ */
1146
+ noUnknownUnit?: IRuleConfiguration;
1147
+ /**
1148
+ * Disallow unmatchable An+B selectors.
1149
+ */
1150
+ noUnmatchableAnbSelector?: IRuleConfiguration;
1151
+ /**
1152
+ * Avoid using unnecessary continue.
1153
+ */
1154
+ noUnnecessaryContinue?: IRuleFixConfiguration;
1155
+ /**
1156
+ * Disallow unreachable code
1157
+ */
1158
+ noUnreachable?: IRuleConfiguration;
1159
+ /**
1160
+ * Ensures the super() constructor is called exactly once on every code path in a class constructor before this is accessed if the class has a superclass
1161
+ */
1162
+ noUnreachableSuper?: IRuleConfiguration;
1163
+ /**
1164
+ * Disallow control flow statements in finally blocks.
1165
+ */
1166
+ noUnsafeFinally?: IRuleConfiguration;
1167
+ /**
1168
+ * Disallow the use of optional chaining in contexts where the undefined value is not allowed.
1169
+ */
1170
+ noUnsafeOptionalChaining?: IRuleConfiguration;
1171
+ /**
1172
+ * Disallow unused function parameters.
1173
+ */
1174
+ noUnusedFunctionParameters?: IRuleFixConfiguration;
1175
+ /**
1176
+ * Disallow unused imports.
1177
+ */
1178
+ noUnusedImports?: IRuleFixConfiguration;
1179
+ /**
1180
+ * Disallow unused labels.
1181
+ */
1182
+ noUnusedLabels?: IRuleFixConfiguration;
1183
+ /**
1184
+ * Disallow unused private class members
1185
+ */
1186
+ noUnusedPrivateClassMembers?: IRuleFixConfiguration;
1187
+ /**
1188
+ * Disallow unused variables.
1189
+ */
1190
+ noUnusedVariables?: IRuleFixConfiguration;
1191
+ /**
1192
+ * This rules prevents void elements (AKA self-closing elements) from having children.
1193
+ */
1194
+ noVoidElementsWithChildren?: IRuleFixConfiguration;
1195
+ /**
1196
+ * Disallow returning a value from a function with the return type 'void'
1197
+ */
1198
+ noVoidTypeReturn?: IRuleConfiguration;
1199
+ /**
1200
+ * It enables the recommended rules for this group
1201
+ */
1202
+ recommended?: boolean;
1203
+ /**
1204
+ * Disallow Array constructors.
1205
+ */
1206
+ useArrayLiterals?: IRuleFixConfiguration;
1207
+ /**
1208
+ * Enforce all dependencies are correctly specified in a React hook.
1209
+ */
1210
+ useExhaustiveDependencies?: IUseExhaustiveDependenciesConfiguration;
1211
+ /**
1212
+ * Enforce that all React hooks are being called from the Top Level component functions.
1213
+ */
1214
+ useHookAtTopLevel?: IDeprecatedHooksConfiguration;
1215
+ /**
1216
+ * Enforce file extensions for relative imports.
1217
+ */
1218
+ useImportExtensions?: IUseImportExtensionsConfiguration;
1219
+ /**
1220
+ * Require calls to isNaN() when checking for NaN.
1221
+ */
1222
+ useIsNan?: IRuleFixConfiguration;
1223
+ /**
1224
+ * Disallow missing key props in iterators/collection literals.
1225
+ */
1226
+ useJsxKeyInIterable?: IRuleConfiguration;
1227
+ /**
1228
+ * Enforce "for" loop update clause moving the counter in the right direction.
1229
+ */
1230
+ useValidForDirection?: IRuleConfiguration;
1231
+ /**
1232
+ * Require generator functions to contain yield.
1233
+ */
1234
+ useYield?: IRuleConfiguration;
1235
+ }
1236
+ export interface IRuleWithUseExhaustiveDependenciesOptions {
1237
+ /**
1238
+ * The severity of the emitted diagnostics by the rule
1239
+ */
1240
+ level: IRulePlainConfiguration;
1241
+ /**
1242
+ * Rule's options
1243
+ */
1244
+ options?: IUseExhaustiveDependenciesOptions;
1245
+ }
1246
+ /**
1247
+ * Options for the rule `useExhaustiveDependencies`
1248
+ */
1249
+ export interface IUseExhaustiveDependenciesOptions {
1250
+ /**
1251
+ * List of hooks of which the dependencies should be validated.
1252
+ */
1253
+ hooks?: IHook[];
1254
+ /**
1255
+ * Whether to report an error when a hook has no dependencies array.
1256
+ */
1257
+ reportMissingDependenciesArray?: boolean;
1258
+ /**
1259
+ * Whether to report an error when a dependency is listed in the dependencies array but isn't used. Defaults to true.
1260
+ */
1261
+ reportUnnecessaryDependencies?: boolean;
1262
+ }
1263
+ export interface IHook {
1264
+ /**
1265
+ * The "position" of the closure function, starting from zero.
1266
+ *
1267
+ * For example, for React's `useEffect()` hook, the closure index is 0.
1268
+ */
1269
+ closureIndex?: number;
1270
+ /**
1271
+ * The "position" of the array of dependencies, starting from zero.
1272
+ *
1273
+ * For example, for React's `useEffect()` hook, the dependencies index is 1.
1274
+ */
1275
+ dependenciesIndex?: number;
1276
+ /**
1277
+ * The name of the hook.
1278
+ */
1279
+ name?: string;
1280
+ /**
1281
+ * Whether the result of the hook is stable.
1282
+ *
1283
+ * Set to `true` to mark the identity of the hook's return value as stable, or use a number/an array of numbers to mark the "positions" in the return array as stable.
1284
+ *
1285
+ * For example, for React's `useRef()` hook the value would be `true`, while for `useState()` it would be `[1]`.
1286
+ */
1287
+ stableResult?: IStableHookResult;
1288
+ }
1289
+ export interface IRuleWithDeprecatedHooksOptions {
1290
+ /**
1291
+ * The severity of the emitted diagnostics by the rule
1292
+ */
1293
+ level: IRulePlainConfiguration;
1294
+ /**
1295
+ * Rule's options
1296
+ */
1297
+ options?: IDeprecatedHooksOptions;
1298
+ }
1299
+ /**
1300
+ * Options for the `useHookAtTopLevel` rule have been deprecated, since we now use the React hook naming convention to determine whether a function is a hook.
1301
+ */
1302
+ export interface IDeprecatedHooksOptions {
1303
+ }
1304
+ export interface IRuleWithUseImportExtensionsOptions {
1305
+ /**
1306
+ * The kind of the code actions emitted by the rule
1307
+ */
1308
+ fix?: IFixKind;
1309
+ /**
1310
+ * The severity of the emitted diagnostics by the rule
1311
+ */
1312
+ level: IRulePlainConfiguration;
1313
+ /**
1314
+ * Rule's options
1315
+ */
1316
+ options?: IUseImportExtensionsOptions;
1317
+ }
1318
+ export interface IUseImportExtensionsOptions {
1319
+ /**
1320
+ * A map of custom import extension mappings, where the key is the inspected file extension, and the value is a pair of `module` extension and `component` import extension
1321
+ */
1322
+ suggestedExtensions?: {
1323
+ [k: string]: ISuggestedExtensionMapping;
1324
+ };
1325
+ }
1326
+ export interface ISuggestedExtensionMapping {
1327
+ /**
1328
+ * Extension that should be used for component file imports
1329
+ */
1330
+ component?: string;
1331
+ /**
1332
+ * Extension that should be used for module imports
1333
+ */
1334
+ module?: string;
1335
+ }
1336
+ /**
1337
+ * A list of rules that belong to this group
1338
+ */
1339
+ export interface INursery {
1340
+ /**
1341
+ * It enables ALL rules for this group.
1342
+ */
1343
+ all?: boolean;
1344
+ /**
1345
+ * Disallow use of CommonJs module system in favor of ESM style imports.
1346
+ */
1347
+ noCommonJs?: IRuleConfiguration;
1348
+ /**
1349
+ * Disallow a lower specificity selector from coming after a higher specificity selector.
1350
+ */
1351
+ noDescendingSpecificity?: IRuleConfiguration;
1352
+ /**
1353
+ * Disallow direct assignments to document.cookie.
1354
+ */
1355
+ noDocumentCookie?: IRuleConfiguration;
1356
+ /**
1357
+ * Prevents importing next/document outside of pages/_document.jsx in Next.js projects.
1358
+ */
1359
+ noDocumentImportInPage?: IRuleConfiguration;
1360
+ /**
1361
+ * Disallow duplicate custom properties within declaration blocks.
1362
+ */
1363
+ noDuplicateCustomProperties?: IRuleConfiguration;
1364
+ /**
1365
+ * Disallow duplicate conditions in if-else-if chains
1366
+ */
1367
+ noDuplicateElseIf?: IRuleConfiguration;
1368
+ /**
1369
+ * Disallow duplicate properties within declaration blocks.
1370
+ */
1371
+ noDuplicateProperties?: IRuleConfiguration;
1372
+ /**
1373
+ * No duplicated fields in GraphQL operations.
1374
+ */
1375
+ noDuplicatedFields?: IRuleConfiguration;
1376
+ /**
1377
+ * Disallow accessing namespace imports dynamically.
1378
+ */
1379
+ noDynamicNamespaceImportAccess?: IRuleConfiguration;
1380
+ /**
1381
+ * Disallow TypeScript enum.
1382
+ */
1383
+ noEnum?: IRuleConfiguration;
1384
+ /**
1385
+ * Disallow exporting an imported variable.
1386
+ */
1387
+ noExportedImports?: IRuleConfiguration;
1388
+ /**
1389
+ * Prevent usage of \<head> element in a Next.js project.
1390
+ */
1391
+ noHeadElement?: IRuleConfiguration;
1392
+ /**
1393
+ * Prevent using the next/head module in pages/_document.js on Next.js projects.
1394
+ */
1395
+ noHeadImportInDocument?: IRuleConfiguration;
1396
+ /**
1397
+ * Prevent usage of \<img> element in a Next.js project.
1398
+ */
1399
+ noImgElement?: IRuleConfiguration;
1400
+ /**
1401
+ * Disallows the use of irregular whitespace characters.
1402
+ */
1403
+ noIrregularWhitespace?: IRuleConfiguration;
1404
+ /**
1405
+ * Disallow missing var function for css variables.
1406
+ */
1407
+ noMissingVarFunction?: IRuleConfiguration;
1408
+ /**
1409
+ * Disallow nested ternary expressions.
1410
+ */
1411
+ noNestedTernary?: IRuleConfiguration;
1412
+ /**
1413
+ * Disallow octal escape sequences in string literals
1414
+ */
1415
+ noOctalEscape?: IRuleConfiguration;
1416
+ /**
1417
+ * Disallow the use of process.env.
1418
+ */
1419
+ noProcessEnv?: IRuleConfiguration;
1420
+ /**
1421
+ * Disallow specified modules when loaded by import or require.
1422
+ */
1423
+ noRestrictedImports?: IRestrictedImportsConfiguration;
1424
+ /**
1425
+ * Disallow user defined types.
1426
+ */
1427
+ noRestrictedTypes?: INoRestrictedTypesConfiguration;
1428
+ /**
1429
+ * Disallow usage of sensitive data such as API keys and tokens.
1430
+ */
1431
+ noSecrets?: INoSecretsConfiguration;
1432
+ /**
1433
+ * Enforce that static, visible elements (such as \<div>) that have click handlers use the valid role attribute.
1434
+ */
1435
+ noStaticElementInteractions?: IRuleConfiguration;
1436
+ /**
1437
+ * Enforce the use of String.slice() over String.substr() and String.substring().
1438
+ */
1439
+ noSubstr?: IRuleFixConfiguration;
1440
+ /**
1441
+ * Disallow template literal placeholder syntax in regular strings.
1442
+ */
1443
+ noTemplateCurlyInString?: IRuleConfiguration;
1444
+ /**
1445
+ * Disallow unknown pseudo-class selectors.
1446
+ */
1447
+ noUnknownPseudoClass?: IRuleConfiguration;
1448
+ /**
1449
+ * Disallow unknown pseudo-element selectors.
1450
+ */
1451
+ noUnknownPseudoElement?: IRuleConfiguration;
1452
+ /**
1453
+ * Disallow unknown type selectors.
1454
+ */
1455
+ noUnknownTypeSelector?: IRuleConfiguration;
1456
+ /**
1457
+ * Disallow unnecessary escape sequence in regular expression literals.
1458
+ */
1459
+ noUselessEscapeInRegex?: IRuleFixConfiguration;
1460
+ /**
1461
+ * Disallow unnecessary String.raw function in template string literals without any escape sequence.
1462
+ */
1463
+ noUselessStringRaw?: IRuleConfiguration;
1464
+ /**
1465
+ * Disallow use of @value rule in css modules.
1466
+ */
1467
+ noValueAtRule?: IRuleConfiguration;
1468
+ /**
1469
+ * It enables the recommended rules for this group
1470
+ */
1471
+ recommended?: boolean;
1472
+ /**
1473
+ * Disallow the use of overload signatures that are not next to each other.
1474
+ */
1475
+ useAdjacentOverloadSignatures?: IRuleConfiguration;
1476
+ /**
1477
+ * Enforce that ARIA properties are valid for the roles that are supported by the element.
1478
+ */
1479
+ useAriaPropsSupportedByRole?: IRuleConfiguration;
1480
+ /**
1481
+ * Use at() instead of integer index access.
1482
+ */
1483
+ useAtIndex?: IRuleFixConfiguration;
1484
+ /**
1485
+ * Enforce using single if instead of nested if clauses.
1486
+ */
1487
+ useCollapsedIf?: IRuleFixConfiguration;
1488
+ /**
1489
+ * Enforce declaring components only within modules that export React Components exclusively.
1490
+ */
1491
+ useComponentExportOnlyModules?: IUseComponentExportOnlyModulesConfiguration;
1492
+ /**
1493
+ * This rule enforces consistent use of curly braces inside JSX attributes and JSX children.
1494
+ */
1495
+ useConsistentCurlyBraces?: IRuleFixConfiguration;
1496
+ /**
1497
+ * Require consistent accessibility modifiers on class properties and methods.
1498
+ */
1499
+ useConsistentMemberAccessibility?: IConsistentMemberAccessibilityConfiguration;
1500
+ /**
1501
+ * Require specifying the reason argument when using @deprecated directive
1502
+ */
1503
+ useDeprecatedReason?: IRuleConfiguration;
1504
+ /**
1505
+ * Require explicit return types on functions and class methods.
1506
+ */
1507
+ useExplicitType?: IRuleConfiguration;
1508
+ /**
1509
+ * Enforces the use of a recommended display strategy with Google Fonts.
1510
+ */
1511
+ useGoogleFontDisplay?: IRuleConfiguration;
1512
+ /**
1513
+ * Require for-in loops to include an if statement.
1514
+ */
1515
+ useGuardForIn?: IRuleConfiguration;
1516
+ /**
1517
+ * Disallows package private imports.
1518
+ */
1519
+ useImportRestrictions?: IRuleConfiguration;
1520
+ /**
1521
+ * Enforce the sorting of CSS utility classes.
1522
+ */
1523
+ useSortedClasses?: IUtilityClassSortingConfiguration;
1524
+ /**
1525
+ * Enforce the use of the directive "use strict" in script files.
1526
+ */
1527
+ useStrictMode?: IRuleFixConfiguration;
1528
+ /**
1529
+ * Enforce the use of String.trimStart() and String.trimEnd() over String.trimLeft() and String.trimRight().
1530
+ */
1531
+ useTrimStartEnd?: IRuleFixConfiguration;
1532
+ /**
1533
+ * Use valid values for the autocomplete attribute on input elements.
1534
+ */
1535
+ useValidAutocomplete?: IUseValidAutocompleteConfiguration;
1536
+ }
1537
+ export interface IRuleWithRestrictedImportsOptions {
1538
+ /**
1539
+ * The severity of the emitted diagnostics by the rule
1540
+ */
1541
+ level: IRulePlainConfiguration;
1542
+ /**
1543
+ * Rule's options
1544
+ */
1545
+ options?: IRestrictedImportsOptions;
1546
+ }
1547
+ /**
1548
+ * Options for the rule `noRestrictedImports`.
1549
+ */
1550
+ export interface IRestrictedImportsOptions {
1551
+ /**
1552
+ * A list of names that should trigger the rule
1553
+ */
1554
+ paths?: {
1555
+ [k: string]: string;
1556
+ };
1557
+ }
1558
+ export interface IRuleWithNoRestrictedTypesOptions {
1559
+ /**
1560
+ * The kind of the code actions emitted by the rule
1561
+ */
1562
+ fix?: IFixKind;
1563
+ /**
1564
+ * The severity of the emitted diagnostics by the rule
1565
+ */
1566
+ level: IRulePlainConfiguration;
1567
+ /**
1568
+ * Rule's options
1569
+ */
1570
+ options?: INoRestrictedTypesOptions;
1571
+ }
1572
+ export interface INoRestrictedTypesOptions {
1573
+ types?: {
1574
+ [k: string]: ICustomRestrictedType;
1575
+ };
1576
+ }
1577
+ export interface ICustomRestrictedTypeOptions {
1578
+ message?: string;
1579
+ use?: string;
1580
+ }
1581
+ export interface IRuleWithNoSecretsOptions {
1582
+ /**
1583
+ * The severity of the emitted diagnostics by the rule
1584
+ */
1585
+ level: IRulePlainConfiguration;
1586
+ /**
1587
+ * Rule's options
1588
+ */
1589
+ options?: INoSecretsOptions;
1590
+ }
1591
+ export interface INoSecretsOptions {
1592
+ /**
1593
+ * Set entropy threshold (default is 41).
1594
+ */
1595
+ entropyThreshold?: number;
1596
+ }
1597
+ export interface IRuleWithUseComponentExportOnlyModulesOptions {
1598
+ /**
1599
+ * The severity of the emitted diagnostics by the rule
1600
+ */
1601
+ level: IRulePlainConfiguration;
1602
+ /**
1603
+ * Rule's options
1604
+ */
1605
+ options?: IUseComponentExportOnlyModulesOptions;
1606
+ }
1607
+ export interface IUseComponentExportOnlyModulesOptions {
1608
+ /**
1609
+ * Allows the export of constants. This option is for environments that support it, such as [Vite](https://vitejs.dev/)
1610
+ */
1611
+ allowConstantExport?: boolean;
1612
+ /**
1613
+ * A list of names that can be additionally exported from the module This option is for exports that do not hinder [React Fast Refresh](https://github.com/facebook/react/tree/main/packages/react-refresh), such as [`meta` in Remix](https://remix.run/docs/en/main/route/meta)
1614
+ */
1615
+ allowExportNames?: string[];
1616
+ }
1617
+ export interface IRuleWithConsistentMemberAccessibilityOptions {
1618
+ /**
1619
+ * The severity of the emitted diagnostics by the rule
1620
+ */
1621
+ level: IRulePlainConfiguration;
1622
+ /**
1623
+ * Rule's options
1624
+ */
1625
+ options?: IConsistentMemberAccessibilityOptions;
1626
+ }
1627
+ export interface IConsistentMemberAccessibilityOptions {
1628
+ accessibility?: IAccessibility & string;
1629
+ }
1630
+ export interface IRuleWithUtilityClassSortingOptions {
1631
+ /**
1632
+ * The kind of the code actions emitted by the rule
1633
+ */
1634
+ fix?: IFixKind;
1635
+ /**
1636
+ * The severity of the emitted diagnostics by the rule
1637
+ */
1638
+ level: IRulePlainConfiguration;
1639
+ /**
1640
+ * Rule's options
1641
+ */
1642
+ options?: IUtilityClassSortingOptions;
1643
+ }
1644
+ export interface IUtilityClassSortingOptions {
1645
+ /**
1646
+ * Additional attributes that will be sorted.
1647
+ */
1648
+ attributes?: string[];
1649
+ /**
1650
+ * Names of the functions or tagged templates that will be sorted.
1651
+ */
1652
+ functions?: string[];
1653
+ }
1654
+ export interface IRuleWithUseValidAutocompleteOptions {
1655
+ /**
1656
+ * The severity of the emitted diagnostics by the rule
1657
+ */
1658
+ level: IRulePlainConfiguration;
1659
+ /**
1660
+ * Rule's options
1661
+ */
1662
+ options?: IUseValidAutocompleteOptions;
1663
+ }
1664
+ export interface IUseValidAutocompleteOptions {
1665
+ /**
1666
+ * `input` like custom components that should be checked.
1667
+ */
1668
+ inputComponents?: string[];
1669
+ }
1670
+ /**
1671
+ * A list of rules that belong to this group
1672
+ */
1673
+ export interface IPerformance {
1674
+ /**
1675
+ * It enables ALL rules for this group.
1676
+ */
1677
+ all?: boolean;
1678
+ /**
1679
+ * Disallow the use of spread (...) syntax on accumulators.
1680
+ */
1681
+ noAccumulatingSpread?: IRuleConfiguration;
1682
+ /**
1683
+ * Disallow the use of barrel file.
1684
+ */
1685
+ noBarrelFile?: IRuleConfiguration;
1686
+ /**
1687
+ * Disallow the use of the delete operator.
1688
+ */
1689
+ noDelete?: IRuleFixConfiguration;
1690
+ /**
1691
+ * Avoid re-export all.
1692
+ */
1693
+ noReExportAll?: IRuleConfiguration;
1694
+ /**
1695
+ * It enables the recommended rules for this group
1696
+ */
1697
+ recommended?: boolean;
1698
+ /**
1699
+ * Require regex literals to be declared at the top level.
1700
+ */
1701
+ useTopLevelRegex?: IRuleConfiguration;
1702
+ }
1703
+ /**
1704
+ * A list of rules that belong to this group
1705
+ */
1706
+ export interface ISecurity {
1707
+ /**
1708
+ * It enables ALL rules for this group.
1709
+ */
1710
+ all?: boolean;
1711
+ /**
1712
+ * Prevent the usage of dangerous JSX props
1713
+ */
1714
+ noDangerouslySetInnerHtml?: IRuleConfiguration;
1715
+ /**
1716
+ * Report when a DOM element or a component uses both children and dangerouslySetInnerHTML prop.
1717
+ */
1718
+ noDangerouslySetInnerHtmlWithChildren?: IRuleConfiguration;
1719
+ /**
1720
+ * Disallow the use of global eval().
1721
+ */
1722
+ noGlobalEval?: IRuleConfiguration;
1723
+ /**
1724
+ * It enables the recommended rules for this group
1725
+ */
1726
+ recommended?: boolean;
1727
+ }
1728
+ /**
1729
+ * A list of rules that belong to this group
1730
+ */
1731
+ export interface IStyle {
1732
+ /**
1733
+ * It enables ALL rules for this group.
1734
+ */
1735
+ all?: boolean;
1736
+ /**
1737
+ * Disallow the use of arguments.
1738
+ */
1739
+ noArguments?: IRuleConfiguration;
1740
+ /**
1741
+ * Disallow comma operator.
1742
+ */
1743
+ noCommaOperator?: IRuleConfiguration;
1744
+ /**
1745
+ * Disallow default exports.
1746
+ */
1747
+ noDefaultExport?: IRuleConfiguration;
1748
+ /**
1749
+ * Disallow using a callback in asynchronous tests and hooks.
1750
+ */
1751
+ noDoneCallback?: IRuleConfiguration;
1752
+ /**
1753
+ * Disallow implicit true values on JSX boolean attributes
1754
+ */
1755
+ noImplicitBoolean?: IRuleFixConfiguration;
1756
+ /**
1757
+ * Disallow type annotations for variables, parameters, and class properties initialized with a literal expression.
1758
+ */
1759
+ noInferrableTypes?: IRuleFixConfiguration;
1760
+ /**
1761
+ * Disallow the use of TypeScript's namespaces.
1762
+ */
1763
+ noNamespace?: IRuleConfiguration;
1764
+ /**
1765
+ * Disallow the use of namespace imports.
1766
+ */
1767
+ noNamespaceImport?: IRuleConfiguration;
1768
+ /**
1769
+ * Disallow negation in the condition of an if statement if it has an else clause.
1770
+ */
1771
+ noNegationElse?: IRuleFixConfiguration;
1772
+ /**
1773
+ * Disallow non-null assertions using the ! postfix operator.
1774
+ */
1775
+ noNonNullAssertion?: IRuleFixConfiguration;
1776
+ /**
1777
+ * Disallow reassigning function parameters.
1778
+ */
1779
+ noParameterAssign?: IRuleConfiguration;
1780
+ /**
1781
+ * Disallow the use of parameter properties in class constructors.
1782
+ */
1783
+ noParameterProperties?: IRuleConfiguration;
1784
+ /**
1785
+ * This rule allows you to specify global variable names that you don’t want to use in your application.
1786
+ */
1787
+ noRestrictedGlobals?: IRestrictedGlobalsConfiguration;
1788
+ /**
1789
+ * Disallow the use of constants which its value is the upper-case version of its name.
1790
+ */
1791
+ noShoutyConstants?: IRuleFixConfiguration;
1792
+ /**
1793
+ * Disallow template literals if interpolation and special-character handling are not needed
1794
+ */
1795
+ noUnusedTemplateLiteral?: IRuleFixConfiguration;
1796
+ /**
1797
+ * Disallow else block when the if block breaks early.
1798
+ */
1799
+ noUselessElse?: IRuleFixConfiguration;
1800
+ /**
1801
+ * Disallow the use of var
1802
+ */
1803
+ noVar?: IRuleFixConfiguration;
1804
+ /**
1805
+ * Disallow the use of yoda expressions.
1806
+ */
1807
+ noYodaExpression?: IRuleFixConfiguration;
1808
+ /**
1809
+ * It enables the recommended rules for this group
1810
+ */
1811
+ recommended?: boolean;
1812
+ /**
1813
+ * Enforce the use of as const over literal type and type annotation.
1814
+ */
1815
+ useAsConstAssertion?: IRuleFixConfiguration;
1816
+ /**
1817
+ * Requires following curly brace conventions.
1818
+ */
1819
+ useBlockStatements?: IRuleFixConfiguration;
1820
+ /**
1821
+ * Enforce using else if instead of nested if in else clauses.
1822
+ */
1823
+ useCollapsedElseIf?: IRuleFixConfiguration;
1824
+ /**
1825
+ * Require consistently using either T\[] or Array\<T>
1826
+ */
1827
+ useConsistentArrayType?: IConsistentArrayTypeConfiguration;
1828
+ /**
1829
+ * Enforce the use of new for all builtins, except String, Number and Boolean.
1830
+ */
1831
+ useConsistentBuiltinInstantiation?: IRuleFixConfiguration;
1832
+ /**
1833
+ * Require const declarations for variables that are only assigned once.
1834
+ */
1835
+ useConst?: IRuleFixConfiguration;
1836
+ /**
1837
+ * Enforce default function parameters and optional function parameters to be last.
1838
+ */
1839
+ useDefaultParameterLast?: IRuleFixConfiguration;
1840
+ /**
1841
+ * Require the default clause in switch statements.
1842
+ */
1843
+ useDefaultSwitchClause?: IRuleConfiguration;
1844
+ /**
1845
+ * Require that each enum member value be explicitly initialized.
1846
+ */
1847
+ useEnumInitializers?: IRuleFixConfiguration;
1848
+ /**
1849
+ * Enforce explicitly comparing the length, size, byteLength or byteOffset property of a value.
1850
+ */
1851
+ useExplicitLengthCheck?: IRuleFixConfiguration;
1852
+ /**
1853
+ * Disallow the use of Math.pow in favor of the ** operator.
1854
+ */
1855
+ useExponentiationOperator?: IRuleFixConfiguration;
1856
+ /**
1857
+ * Promotes the use of export type for types.
1858
+ */
1859
+ useExportType?: IRuleFixConfiguration;
1860
+ /**
1861
+ * Enforce naming conventions for JavaScript and TypeScript filenames.
1862
+ */
1863
+ useFilenamingConvention?: IFilenamingConventionConfiguration;
1864
+ /**
1865
+ * This rule recommends a for-of loop when in a for loop, the index used to extract an item from the iterated array.
1866
+ */
1867
+ useForOf?: IRuleConfiguration;
1868
+ /**
1869
+ * This rule enforces the use of \<>...\</> over \<Fragment>...\</Fragment>.
1870
+ */
1871
+ useFragmentSyntax?: IRuleFixConfiguration;
1872
+ /**
1873
+ * Promotes the use of import type for types.
1874
+ */
1875
+ useImportType?: IRuleFixConfiguration;
1876
+ /**
1877
+ * Require all enum members to be literal values.
1878
+ */
1879
+ useLiteralEnumMembers?: IRuleConfiguration;
1880
+ /**
1881
+ * Enforce naming conventions for everything across a codebase.
1882
+ */
1883
+ useNamingConvention?: INamingConventionConfiguration;
1884
+ /**
1885
+ * Promotes the usage of node:assert/strict over node:assert.
1886
+ */
1887
+ useNodeAssertStrict?: IRuleFixConfiguration;
1888
+ /**
1889
+ * Enforces using the node: protocol for Node.js builtin modules.
1890
+ */
1891
+ useNodejsImportProtocol?: IRuleFixConfiguration;
1892
+ /**
1893
+ * Use the Number properties instead of global ones.
1894
+ */
1895
+ useNumberNamespace?: IRuleFixConfiguration;
1896
+ /**
1897
+ * Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals
1898
+ */
1899
+ useNumericLiterals?: IRuleFixConfiguration;
1900
+ /**
1901
+ * Prevent extra closing tags for components without children
1902
+ */
1903
+ useSelfClosingElements?: IRuleFixConfiguration;
1904
+ /**
1905
+ * When expressing array types, this rule promotes the usage of T\[] shorthand instead of Array\<T>.
1906
+ */
1907
+ useShorthandArrayType?: IRuleFixConfiguration;
1908
+ /**
1909
+ * Require assignment operator shorthand where possible.
1910
+ */
1911
+ useShorthandAssign?: IRuleFixConfiguration;
1912
+ /**
1913
+ * Enforce using function types instead of object type with call signatures.
1914
+ */
1915
+ useShorthandFunctionType?: IRuleFixConfiguration;
1916
+ /**
1917
+ * Enforces switch clauses have a single statement, emits a quick fix wrapping the statements in a block.
1918
+ */
1919
+ useSingleCaseStatement?: IRuleFixConfiguration;
1920
+ /**
1921
+ * Disallow multiple variable declarations in the same variable statement
1922
+ */
1923
+ useSingleVarDeclarator?: IRuleFixConfiguration;
1924
+ /**
1925
+ * Prefer template literals over string concatenation.
1926
+ */
1927
+ useTemplate?: IRuleFixConfiguration;
1928
+ /**
1929
+ * Require new when throwing an error.
1930
+ */
1931
+ useThrowNewError?: IRuleFixConfiguration;
1932
+ /**
1933
+ * Disallow throwing non-Error values.
1934
+ */
1935
+ useThrowOnlyError?: IRuleConfiguration;
1936
+ /**
1937
+ * Enforce the use of while loops instead of for loops when the initializer and update expressions are not needed.
1938
+ */
1939
+ useWhile?: IRuleFixConfiguration;
1940
+ }
1941
+ export interface IRuleWithRestrictedGlobalsOptions {
1942
+ /**
1943
+ * The severity of the emitted diagnostics by the rule
1944
+ */
1945
+ level: IRulePlainConfiguration;
1946
+ /**
1947
+ * Rule's options
1948
+ */
1949
+ options?: IRestrictedGlobalsOptions;
1950
+ }
1951
+ /**
1952
+ * Options for the rule `noRestrictedGlobals`.
1953
+ */
1954
+ export interface IRestrictedGlobalsOptions {
1955
+ /**
1956
+ * A list of names that should trigger the rule
1957
+ */
1958
+ deniedGlobals?: string[];
1959
+ }
1960
+ export interface IRuleWithConsistentArrayTypeOptions {
1961
+ /**
1962
+ * The kind of the code actions emitted by the rule
1963
+ */
1964
+ fix?: IFixKind;
1965
+ /**
1966
+ * The severity of the emitted diagnostics by the rule
1967
+ */
1968
+ level: IRulePlainConfiguration;
1969
+ /**
1970
+ * Rule's options
1971
+ */
1972
+ options?: IConsistentArrayTypeOptions;
1973
+ }
1974
+ export interface IConsistentArrayTypeOptions {
1975
+ syntax?: IConsistentArrayType & string;
1976
+ }
1977
+ export interface IRuleWithFilenamingConventionOptions {
1978
+ /**
1979
+ * The severity of the emitted diagnostics by the rule
1980
+ */
1981
+ level: IRulePlainConfiguration;
1982
+ /**
1983
+ * Rule's options
1984
+ */
1985
+ options?: IFilenamingConventionOptions;
1986
+ }
1987
+ /**
1988
+ * Rule's options.
1989
+ */
1990
+ export interface IFilenamingConventionOptions {
1991
+ /**
1992
+ * Allowed cases for file names.
1993
+ */
1994
+ filenameCases?: IFilenameCases;
1995
+ /**
1996
+ * If `false`, then non-ASCII characters are allowed.
1997
+ */
1998
+ requireAscii?: boolean;
1999
+ /**
2000
+ * If `false`, then consecutive uppercase are allowed in _camel_ and _pascal_ cases. This does not affect other [Case].
2001
+ */
2002
+ strictCase?: boolean;
2003
+ }
2004
+ export interface IRuleWithNamingConventionOptions {
2005
+ /**
2006
+ * The kind of the code actions emitted by the rule
2007
+ */
2008
+ fix?: IFixKind;
2009
+ /**
2010
+ * The severity of the emitted diagnostics by the rule
2011
+ */
2012
+ level: IRulePlainConfiguration;
2013
+ /**
2014
+ * Rule's options
2015
+ */
2016
+ options?: INamingConventionOptions;
2017
+ }
2018
+ /**
2019
+ * Rule's options.
2020
+ */
2021
+ export interface INamingConventionOptions {
2022
+ /**
2023
+ * Custom conventions.
2024
+ */
2025
+ conventions?: IConvention[];
2026
+ /**
2027
+ * Allowed cases for _TypeScript_ `enum` member names.
2028
+ */
2029
+ enumMemberCase?: IFormat;
2030
+ /**
2031
+ * If `false`, then non-ASCII characters are allowed.
2032
+ */
2033
+ requireAscii?: boolean;
2034
+ /**
2035
+ * If `false`, then consecutive uppercase are allowed in _camel_ and _pascal_ cases. This does not affect other [Case].
2036
+ */
2037
+ strictCase?: boolean;
2038
+ }
2039
+ export interface IConvention {
2040
+ /**
2041
+ * String cases to enforce
2042
+ */
2043
+ formats?: IFormats;
2044
+ /**
2045
+ * Regular expression to enforce
2046
+ */
2047
+ match?: IRegex;
2048
+ /**
2049
+ * Declarations concerned by this convention
2050
+ */
2051
+ selector?: ISelector;
2052
+ }
2053
+ export interface ISelector {
2054
+ /**
2055
+ * Declaration kind
2056
+ */
2057
+ kind?: IKind;
2058
+ /**
2059
+ * Modifiers used on the declaration
2060
+ */
2061
+ modifiers?: IModifiers;
2062
+ /**
2063
+ * Scope of the declaration
2064
+ */
2065
+ scope?: IScope;
2066
+ }
2067
+ /**
2068
+ * A list of rules that belong to this group
2069
+ */
2070
+ export interface ISuspicious {
2071
+ /**
2072
+ * It enables ALL rules for this group.
2073
+ */
2074
+ all?: boolean;
2075
+ /**
2076
+ * Use standard constants instead of approximated literals.
2077
+ */
2078
+ noApproximativeNumericConstant?: IRuleFixConfiguration;
2079
+ /**
2080
+ * Discourage the usage of Array index in keys.
2081
+ */
2082
+ noArrayIndexKey?: IRuleConfiguration;
2083
+ /**
2084
+ * Disallow assignments in expressions.
2085
+ */
2086
+ noAssignInExpressions?: IRuleConfiguration;
2087
+ /**
2088
+ * Disallows using an async function as a Promise executor.
2089
+ */
2090
+ noAsyncPromiseExecutor?: IRuleConfiguration;
2091
+ /**
2092
+ * Disallow reassigning exceptions in catch clauses.
2093
+ */
2094
+ noCatchAssign?: IRuleConfiguration;
2095
+ /**
2096
+ * Disallow reassigning class members.
2097
+ */
2098
+ noClassAssign?: IRuleConfiguration;
2099
+ /**
2100
+ * Prevent comments from being inserted as text nodes
2101
+ */
2102
+ noCommentText?: IRuleFixConfiguration;
2103
+ /**
2104
+ * Disallow comparing against -0
2105
+ */
2106
+ noCompareNegZero?: IRuleFixConfiguration;
2107
+ /**
2108
+ * Disallow labeled statements that are not loops.
2109
+ */
2110
+ noConfusingLabels?: IRuleConfiguration;
2111
+ /**
2112
+ * Disallow void type outside of generic or return types.
2113
+ */
2114
+ noConfusingVoidType?: IRuleFixConfiguration;
2115
+ /**
2116
+ * Disallow the use of console.
2117
+ */
2118
+ noConsole?: INoConsoleConfiguration;
2119
+ /**
2120
+ * Disallow the use of console.log
2121
+ */
2122
+ noConsoleLog?: IRuleFixConfiguration;
2123
+ /**
2124
+ * Disallow TypeScript const enum
2125
+ */
2126
+ noConstEnum?: IRuleFixConfiguration;
2127
+ /**
2128
+ * Prevents from having control characters and some escape sequences that match control characters in regular expressions.
2129
+ */
2130
+ noControlCharactersInRegex?: IRuleConfiguration;
2131
+ /**
2132
+ * Disallow the use of debugger
2133
+ */
2134
+ noDebugger?: IRuleFixConfiguration;
2135
+ /**
2136
+ * Require the use of === and !==.
2137
+ */
2138
+ noDoubleEquals?: INoDoubleEqualsConfiguration;
2139
+ /**
2140
+ * Disallow duplicate @import rules.
2141
+ */
2142
+ noDuplicateAtImportRules?: IRuleConfiguration;
2143
+ /**
2144
+ * Disallow duplicate case labels.
2145
+ */
2146
+ noDuplicateCase?: IRuleConfiguration;
2147
+ /**
2148
+ * Disallow duplicate class members.
2149
+ */
2150
+ noDuplicateClassMembers?: IRuleConfiguration;
2151
+ /**
2152
+ * Disallow duplicate names within font families.
2153
+ */
2154
+ noDuplicateFontNames?: IRuleConfiguration;
2155
+ /**
2156
+ * Prevents JSX properties to be assigned multiple times.
2157
+ */
2158
+ noDuplicateJsxProps?: IRuleConfiguration;
2159
+ /**
2160
+ * Disallow two keys with the same name inside objects.
2161
+ */
2162
+ noDuplicateObjectKeys?: IRuleConfiguration;
2163
+ /**
2164
+ * Disallow duplicate function parameter name.
2165
+ */
2166
+ noDuplicateParameters?: IRuleConfiguration;
2167
+ /**
2168
+ * Disallow duplicate selectors within keyframe blocks.
2169
+ */
2170
+ noDuplicateSelectorsKeyframeBlock?: IRuleConfiguration;
2171
+ /**
2172
+ * A describe block should not contain duplicate hooks.
2173
+ */
2174
+ noDuplicateTestHooks?: IRuleConfiguration;
2175
+ /**
2176
+ * Disallow CSS empty blocks.
2177
+ */
2178
+ noEmptyBlock?: IRuleConfiguration;
2179
+ /**
2180
+ * Disallow empty block statements and static blocks.
2181
+ */
2182
+ noEmptyBlockStatements?: IRuleConfiguration;
2183
+ /**
2184
+ * Disallow the declaration of empty interfaces.
2185
+ */
2186
+ noEmptyInterface?: IRuleFixConfiguration;
2187
+ /**
2188
+ * Disallow variables from evolving into any type through reassignments.
2189
+ */
2190
+ noEvolvingTypes?: IRuleConfiguration;
2191
+ /**
2192
+ * Disallow the any type usage.
2193
+ */
2194
+ noExplicitAny?: IRuleConfiguration;
2195
+ /**
2196
+ * Disallow using export or module.exports in files containing tests
2197
+ */
2198
+ noExportsInTest?: IRuleConfiguration;
2199
+ /**
2200
+ * Prevents the wrong usage of the non-null assertion operator (!) in TypeScript files.
2201
+ */
2202
+ noExtraNonNullAssertion?: IRuleFixConfiguration;
2203
+ /**
2204
+ * Disallow fallthrough of switch clauses.
2205
+ */
2206
+ noFallthroughSwitchClause?: IRuleConfiguration;
2207
+ /**
2208
+ * Disallow focused tests.
2209
+ */
2210
+ noFocusedTests?: IRuleFixConfiguration;
2211
+ /**
2212
+ * Disallow reassigning function declarations.
2213
+ */
2214
+ noFunctionAssign?: IRuleConfiguration;
2215
+ /**
2216
+ * Disallow assignments to native objects and read-only global variables.
2217
+ */
2218
+ noGlobalAssign?: IRuleConfiguration;
2219
+ /**
2220
+ * Use Number.isFinite instead of global isFinite.
2221
+ */
2222
+ noGlobalIsFinite?: IRuleFixConfiguration;
2223
+ /**
2224
+ * Use Number.isNaN instead of global isNaN.
2225
+ */
2226
+ noGlobalIsNan?: IRuleFixConfiguration;
2227
+ /**
2228
+ * Disallow use of implicit any type on variable declarations.
2229
+ */
2230
+ noImplicitAnyLet?: IRuleConfiguration;
2231
+ /**
2232
+ * Disallow assigning to imported bindings
2233
+ */
2234
+ noImportAssign?: IRuleConfiguration;
2235
+ /**
2236
+ * Disallow invalid !important within keyframe declarations
2237
+ */
2238
+ noImportantInKeyframe?: IRuleConfiguration;
2239
+ /**
2240
+ * Disallow labels that share a name with a variable
2241
+ */
2242
+ noLabelVar?: IRuleConfiguration;
2243
+ /**
2244
+ * Disallow characters made with multiple code points in character class syntax.
2245
+ */
2246
+ noMisleadingCharacterClass?: IRuleFixConfiguration;
2247
+ /**
2248
+ * Enforce proper usage of new and constructor.
2249
+ */
2250
+ noMisleadingInstantiator?: IRuleConfiguration;
2251
+ /**
2252
+ * Checks that the assertion function, for example expect, is placed inside an it() function call.
2253
+ */
2254
+ noMisplacedAssertion?: IRuleConfiguration;
2255
+ /**
2256
+ * Disallow shorthand assign when variable appears on both sides.
2257
+ */
2258
+ noMisrefactoredShorthandAssign?: IRuleFixConfiguration;
2259
+ /**
2260
+ * Disallow direct use of Object.prototype builtins.
2261
+ */
2262
+ noPrototypeBuiltins?: IRuleConfiguration;
2263
+ /**
2264
+ * Prevents React-specific JSX properties from being used.
2265
+ */
2266
+ noReactSpecificProps?: IRuleFixConfiguration;
2267
+ /**
2268
+ * Disallow variable, function, class, and type redeclarations in the same scope.
2269
+ */
2270
+ noRedeclare?: IRuleConfiguration;
2271
+ /**
2272
+ * Prevents from having redundant "use strict".
2273
+ */
2274
+ noRedundantUseStrict?: IRuleFixConfiguration;
2275
+ /**
2276
+ * Disallow comparisons where both sides are exactly the same.
2277
+ */
2278
+ noSelfCompare?: IRuleConfiguration;
2279
+ /**
2280
+ * Disallow identifiers from shadowing restricted names.
2281
+ */
2282
+ noShadowRestrictedNames?: IRuleConfiguration;
2283
+ /**
2284
+ * Disallow shorthand properties that override related longhand properties.
2285
+ */
2286
+ noShorthandPropertyOverrides?: IRuleConfiguration;
2287
+ /**
2288
+ * Disallow disabled tests.
2289
+ */
2290
+ noSkippedTests?: IRuleFixConfiguration;
2291
+ /**
2292
+ * Disallow sparse arrays
2293
+ */
2294
+ noSparseArray?: IRuleFixConfiguration;
2295
+ /**
2296
+ * It detects possible "wrong" semicolons inside JSX elements.
2297
+ */
2298
+ noSuspiciousSemicolonInJsx?: IRuleConfiguration;
2299
+ /**
2300
+ * Disallow then property.
2301
+ */
2302
+ noThenProperty?: IRuleConfiguration;
2303
+ /**
2304
+ * Disallow unsafe declaration merging between interfaces and classes.
2305
+ */
2306
+ noUnsafeDeclarationMerging?: IRuleConfiguration;
2307
+ /**
2308
+ * Disallow using unsafe negation.
2309
+ */
2310
+ noUnsafeNegation?: IRuleFixConfiguration;
2311
+ /**
2312
+ * It enables the recommended rules for this group
2313
+ */
2314
+ recommended?: boolean;
2315
+ /**
2316
+ * Ensure async functions utilize await.
2317
+ */
2318
+ useAwait?: IRuleConfiguration;
2319
+ /**
2320
+ * Enforce default clauses in switch statements to be last
2321
+ */
2322
+ useDefaultSwitchClauseLast?: IRuleConfiguration;
2323
+ /**
2324
+ * Enforce passing a message value when creating a built-in error.
2325
+ */
2326
+ useErrorMessage?: IRuleConfiguration;
2327
+ /**
2328
+ * Enforce get methods to always return a value.
2329
+ */
2330
+ useGetterReturn?: IRuleConfiguration;
2331
+ /**
2332
+ * Use Array.isArray() instead of instanceof Array.
2333
+ */
2334
+ useIsArray?: IRuleFixConfiguration;
2335
+ /**
2336
+ * Require using the namespace keyword over the module keyword to declare TypeScript namespaces.
2337
+ */
2338
+ useNamespaceKeyword?: IRuleFixConfiguration;
2339
+ /**
2340
+ * Enforce using the digits argument with Number#toFixed().
2341
+ */
2342
+ useNumberToFixedDigitsArgument?: IRuleFixConfiguration;
2343
+ /**
2344
+ * This rule verifies the result of typeof $expr unary expressions is being compared to valid values, either string literals containing valid type names or other typeof expressions
2345
+ */
2346
+ useValidTypeof?: IRuleFixConfiguration;
2347
+ }
2348
+ export interface IRuleWithNoConsoleOptions {
2349
+ /**
2350
+ * The kind of the code actions emitted by the rule
2351
+ */
2352
+ fix?: IFixKind;
2353
+ /**
2354
+ * The severity of the emitted diagnostics by the rule
2355
+ */
2356
+ level: IRulePlainConfiguration;
2357
+ /**
2358
+ * Rule's options
2359
+ */
2360
+ options?: INoConsoleOptions;
2361
+ }
2362
+ export interface INoConsoleOptions {
2363
+ /**
2364
+ * Allowed calls on the console object.
2365
+ */
2366
+ allow: string[];
2367
+ }
2368
+ export interface IRuleWithNoDoubleEqualsOptions {
2369
+ /**
2370
+ * The kind of the code actions emitted by the rule
2371
+ */
2372
+ fix?: IFixKind;
2373
+ /**
2374
+ * The severity of the emitted diagnostics by the rule
2375
+ */
2376
+ level: IRulePlainConfiguration;
2377
+ /**
2378
+ * Rule's options
2379
+ */
2380
+ options?: INoDoubleEqualsOptions;
2381
+ }
2382
+ /**
2383
+ * Rule's options
2384
+ */
2385
+ export interface INoDoubleEqualsOptions {
2386
+ /**
2387
+ * If `true`, an exception is made when comparing with `null`, as it's often relied on to check both for `null` or `undefined`.
2388
+ *
2389
+ * If `false`, no such exception will be made.
2390
+ */
2391
+ ignoreNull?: boolean;
2392
+ }
2393
+ export interface IOrganizeImports {
2394
+ /**
2395
+ * Enables the organization of imports
2396
+ */
2397
+ enabled?: boolean;
2398
+ /**
2399
+ * A list of Unix shell style patterns. The formatter will ignore files/folders that will match these patterns.
2400
+ */
2401
+ ignore?: IStringSet;
2402
+ /**
2403
+ * A list of Unix shell style patterns. The formatter will include files/folders that will match these patterns.
2404
+ */
2405
+ include?: IStringSet;
2406
+ }
2407
+ export interface IOverridePattern {
2408
+ /**
2409
+ * Specific configuration for the Css language
2410
+ */
2411
+ css?: ICssConfiguration;
2412
+ /**
2413
+ * Specific configuration for the Json language
2414
+ */
2415
+ formatter?: IOverrideFormatterConfiguration;
2416
+ /**
2417
+ * Specific configuration for the Graphql language
2418
+ */
2419
+ graphql?: IGraphqlConfiguration;
2420
+ /**
2421
+ * A list of Unix shell style patterns. The formatter will ignore files/folders that will match these patterns.
2422
+ */
2423
+ ignore?: IStringSet;
2424
+ /**
2425
+ * A list of Unix shell style patterns. The formatter will include files/folders that will match these patterns.
2426
+ */
2427
+ include?: IStringSet;
2428
+ /**
2429
+ * Specific configuration for the JavaScript language
2430
+ */
2431
+ javascript?: IJavascriptConfiguration;
2432
+ /**
2433
+ * Specific configuration for the Json language
2434
+ */
2435
+ json?: IJsonConfiguration;
2436
+ /**
2437
+ * Specific configuration for the Json language
2438
+ */
2439
+ linter?: IOverrideLinterConfiguration;
2440
+ /**
2441
+ * Specific configuration for the Json language
2442
+ */
2443
+ organizeImports?: IOverrideOrganizeImportsConfiguration;
2444
+ }
2445
+ export interface IOverrideFormatterConfiguration {
2446
+ /**
2447
+ * The attribute position style.
2448
+ */
2449
+ attributePosition?: IAttributePosition;
2450
+ /**
2451
+ * Whether to insert spaces around brackets in object literals. Defaults to true.
2452
+ */
2453
+ bracketSpacing?: IBracketSpacing;
2454
+ enabled?: boolean;
2455
+ /**
2456
+ * Stores whether formatting should be allowed to proceed if a given file has syntax errors
2457
+ */
2458
+ formatWithErrors?: boolean;
2459
+ /**
2460
+ * The size of the indentation, 2 by default (deprecated, use `indent-width`)
2461
+ */
2462
+ indentSize?: IIndentWidth;
2463
+ /**
2464
+ * The indent style.
2465
+ */
2466
+ indentStyle?: IIndentStyle;
2467
+ /**
2468
+ * The size of the indentation, 2 by default
2469
+ */
2470
+ indentWidth?: IIndentWidth;
2471
+ /**
2472
+ * The type of line ending.
2473
+ */
2474
+ lineEnding?: ILineEnding;
2475
+ /**
2476
+ * What's the max width of a line. Defaults to 80.
2477
+ */
2478
+ lineWidth?: ILineWidth;
2479
+ }
2480
+ export interface IOverrideLinterConfiguration {
2481
+ /**
2482
+ * if `false`, it disables the feature and the linter won't be executed. `true` by default
2483
+ */
2484
+ enabled?: boolean;
2485
+ /**
2486
+ * List of rules
2487
+ */
2488
+ rules?: IRules;
2489
+ }
2490
+ export interface IOverrideOrganizeImportsConfiguration {
2491
+ /**
2492
+ * if `false`, it disables the feature and the linter won't be executed. `true` by default
2493
+ */
2494
+ enabled?: boolean;
2495
+ }
2496
+ /**
2497
+ * Set of properties to integrate Biome with a VCS software.
2498
+ */
2499
+ export interface IVcsConfiguration {
2500
+ /**
2501
+ * The kind of client.
2502
+ */
2503
+ clientKind?: IVcsClientKind;
2504
+ /**
2505
+ * The main branch of the project
2506
+ */
2507
+ defaultBranch?: string;
2508
+ /**
2509
+ * Whether Biome should integrate itself with the VCS client
2510
+ */
2511
+ enabled?: boolean;
2512
+ /**
2513
+ * The folder where Biome should check for VCS files. By default, Biome will use the same folder where `biome.json` was found.
2514
+ *
2515
+ * If Biome can't find the configuration, it will attempt to use the current working directory. If no current working directory can't be found, Biome won't use the VCS integration, and a diagnostic will be emitted
2516
+ */
2517
+ root?: string;
2518
+ /**
2519
+ * Whether Biome should use the VCS ignore file. When [true], Biome will ignore the files specified in the ignore file.
2520
+ */
2521
+ useIgnoreFile?: boolean;
2522
+ }