@w5s/eslint-config 2.4.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/index.cjs +4199 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +8054 -0
  4. package/dist/index.d.ts +8054 -3
  5. package/dist/index.js +4171 -22
  6. package/dist/index.js.map +1 -0
  7. package/package.json +26 -17
  8. package/src/config/createRules.ts +5 -0
  9. package/src/config/es.ts +58 -0
  10. package/src/config/ignores.ts +84 -0
  11. package/src/config/imports.ts +32 -0
  12. package/src/config/jsdoc.ts +53 -0
  13. package/src/config/jsonc.ts +237 -0
  14. package/src/config/node.ts +42 -0
  15. package/src/config/stylistic.ts +50 -0
  16. package/src/config/test.ts +44 -0
  17. package/src/config/ts.ts +97 -0
  18. package/src/config/unicorn.ts +68 -0
  19. package/src/config/yml.ts +70 -0
  20. package/src/config.ts +11 -0
  21. package/src/defineConfig.ts +62 -0
  22. package/src/index.ts +3 -31
  23. package/src/type/Config.ts +5 -0
  24. package/src/type/PluginOptionsBase.ts +14 -0
  25. package/src/type/StylisticConfig.ts +39 -0
  26. package/src/type.ts +3 -0
  27. package/src/typegen/.keep +0 -0
  28. package/src/typegen/import.d.ts +501 -0
  29. package/src/typegen/jsdoc.d.ts +1155 -0
  30. package/src/typegen/jsonc.d.ts +500 -0
  31. package/src/typegen/node.d.ts +529 -0
  32. package/src/typegen/style.d.ts +1637 -0
  33. package/src/typegen/test.d.ts +430 -0
  34. package/src/typegen/ts.d.ts +1872 -0
  35. package/src/typegen/unicorn.d.ts +913 -0
  36. package/src/typegen/yml.d.ts +363 -0
  37. package/dist/es.d.ts +0 -3
  38. package/dist/es.js +0 -10
  39. package/dist/jest.d.ts +0 -3
  40. package/dist/jest.js +0 -20
  41. package/dist/json.d.ts +0 -3
  42. package/dist/json.js +0 -14
  43. package/dist/rules/es/base.d.ts +0 -4
  44. package/dist/rules/es/base.js +0 -71
  45. package/dist/rules/es/import.d.ts +0 -3
  46. package/dist/rules/es/import.js +0 -74
  47. package/dist/rules/es/jsdoc.d.ts +0 -3
  48. package/dist/rules/es/jsdoc.js +0 -21
  49. package/dist/rules/es/node.d.ts +0 -3
  50. package/dist/rules/es/node.js +0 -20
  51. package/dist/rules/es/promise.d.ts +0 -3
  52. package/dist/rules/es/promise.js +0 -11
  53. package/dist/rules/es/unicorn.d.ts +0 -3
  54. package/dist/rules/es/unicorn.js +0 -72
  55. package/dist/rules/es.d.ts +0 -3
  56. package/dist/rules/es.js +0 -14
  57. package/dist/rules/ignore.d.ts +0 -3
  58. package/dist/rules/ignore.js +0 -54
  59. package/dist/rules/jest.d.ts +0 -3
  60. package/dist/rules/jest.js +0 -64
  61. package/dist/rules/jsonc.d.ts +0 -3
  62. package/dist/rules/jsonc.js +0 -183
  63. package/dist/rules/prettier.d.ts +0 -3
  64. package/dist/rules/prettier.js +0 -13
  65. package/dist/rules/typescript.d.ts +0 -3
  66. package/dist/rules/typescript.js +0 -249
  67. package/dist/rules/yml.d.ts +0 -3
  68. package/dist/rules/yml.js +0 -21
  69. package/dist/tsconfig.build.tsbuildinfo +0 -1
  70. package/dist/typescript.d.ts +0 -3
  71. package/dist/typescript.js +0 -21
  72. package/dist/yml.d.ts +0 -3
  73. package/dist/yml.js +0 -19
  74. package/src/es.ts +0 -12
  75. package/src/jest.ts +0 -18
  76. package/src/json.ts +0 -12
  77. package/src/rules/es/base.ts +0 -83
  78. package/src/rules/es/import.ts +0 -81
  79. package/src/rules/es/jsdoc.ts +0 -23
  80. package/src/rules/es/node.ts +0 -21
  81. package/src/rules/es/promise.ts +0 -12
  82. package/src/rules/es/unicorn.ts +0 -74
  83. package/src/rules/es.ts +0 -21
  84. package/src/rules/ignore.ts +0 -54
  85. package/src/rules/jest.ts +0 -68
  86. package/src/rules/jsonc.ts +0 -187
  87. package/src/rules/prettier.ts +0 -11
  88. package/src/rules/typescript.ts +0 -255
  89. package/src/rules/yml.ts +0 -22
  90. package/src/typescript.ts +0 -24
  91. package/src/yml.ts +0 -18
@@ -0,0 +1,1155 @@
1
+ /* eslint-disable unicorn/no-abusive-eslint-disable */
2
+ /* eslint-disable */
3
+ /* prettier-ignore */
4
+ import type { Linter } from 'eslint'
5
+
6
+ declare module 'eslint' {
7
+ namespace Linter {
8
+ interface RulesRecord extends RuleOptions {}
9
+ }
10
+ }
11
+
12
+ export interface RuleOptions {
13
+ /**
14
+ * Checks that `@access` tags have a valid value.
15
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-access.md#repos-sticky-header
16
+ */
17
+ 'jsdoc/check-access'?: Linter.RuleEntry<[]>
18
+ /**
19
+ * Reports invalid alignment of JSDoc block asterisks.
20
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-alignment.md#repos-sticky-header
21
+ */
22
+ 'jsdoc/check-alignment'?: Linter.RuleEntry<JsdocCheckAlignment>
23
+ /**
24
+ * @deprecated - Use `getJsdocProcessorPlugin` processor; ensures that (JavaScript) samples within `@example` tags adhere to ESLint rules.
25
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-examples.md#repos-sticky-header
26
+ */
27
+ 'jsdoc/check-examples'?: Linter.RuleEntry<JsdocCheckExamples>
28
+ /**
29
+ * Reports invalid padding inside JSDoc blocks.
30
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-indentation.md#repos-sticky-header
31
+ */
32
+ 'jsdoc/check-indentation'?: Linter.RuleEntry<JsdocCheckIndentation>
33
+ /**
34
+ * Reports invalid alignment of JSDoc block lines.
35
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-line-alignment.md#repos-sticky-header
36
+ */
37
+ 'jsdoc/check-line-alignment'?: Linter.RuleEntry<JsdocCheckLineAlignment>
38
+ /**
39
+ * Checks for dupe `@param` names, that nested param names have roots, and that parameter names in function declarations match JSDoc param names.
40
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-param-names.md#repos-sticky-header
41
+ */
42
+ 'jsdoc/check-param-names'?: Linter.RuleEntry<JsdocCheckParamNames>
43
+ /**
44
+ * Ensures that property names in JSDoc are not duplicated on the same block and that nested properties have defined roots.
45
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-property-names.md#repos-sticky-header
46
+ */
47
+ 'jsdoc/check-property-names'?: Linter.RuleEntry<JsdocCheckPropertyNames>
48
+ /**
49
+ * Reports against syntax not valid for the mode (e.g., Google Closure Compiler in non-Closure mode).
50
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-syntax.md#repos-sticky-header
51
+ */
52
+ 'jsdoc/check-syntax'?: Linter.RuleEntry<[]>
53
+ /**
54
+ * Reports invalid block tag names.
55
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-tag-names.md#repos-sticky-header
56
+ */
57
+ 'jsdoc/check-tag-names'?: Linter.RuleEntry<JsdocCheckTagNames>
58
+ /**
59
+ * Checks that any `@template` names are actually used in the connected `@typedef` or type alias.
60
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-template-names.md#repos-sticky-header
61
+ */
62
+ 'jsdoc/check-template-names'?: Linter.RuleEntry<[]>
63
+ /**
64
+ * Reports types deemed invalid (customizable and with defaults, for preventing and/or recommending replacements).
65
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-types.md#repos-sticky-header
66
+ */
67
+ 'jsdoc/check-types'?: Linter.RuleEntry<JsdocCheckTypes>
68
+ /**
69
+ * This rule checks the values for a handful of tags: `@version`, `@since`, `@license` and `@author`.
70
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/check-values.md#repos-sticky-header
71
+ */
72
+ 'jsdoc/check-values'?: Linter.RuleEntry<JsdocCheckValues>
73
+ /**
74
+ * Converts non-JSDoc comments preceding or following nodes into JSDoc ones
75
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/convert-to-jsdoc-comments.md#repos-sticky-header
76
+ */
77
+ 'jsdoc/convert-to-jsdoc-comments'?: Linter.RuleEntry<JsdocConvertToJsdocComments>
78
+ /**
79
+ * Checks tags that are expected to be empty (e.g., `@abstract` or `@async`), reporting if they have content
80
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/empty-tags.md#repos-sticky-header
81
+ */
82
+ 'jsdoc/empty-tags'?: Linter.RuleEntry<JsdocEmptyTags>
83
+ /**
84
+ * Reports use of JSDoc tags in non-tag positions (in the default "typescript" mode).
85
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/escape-inline-tags.md#repos-sticky-header
86
+ */
87
+ 'jsdoc/escape-inline-tags'?: Linter.RuleEntry<JsdocEscapeInlineTags>
88
+ /**
89
+ * Prohibits use of `@implements` on non-constructor functions (to enforce the tag only being used on classes/constructors).
90
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/implements-on-classes.md#repos-sticky-header
91
+ */
92
+ 'jsdoc/implements-on-classes'?: Linter.RuleEntry<JsdocImplementsOnClasses>
93
+ /**
94
+ * Reports if JSDoc `import()` statements point to a package which is not listed in `dependencies` or `devDependencies`
95
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/imports-as-dependencies.md#repos-sticky-header
96
+ */
97
+ 'jsdoc/imports-as-dependencies'?: Linter.RuleEntry<[]>
98
+ /**
99
+ * This rule reports doc comments that only restate their attached name.
100
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/informative-docs.md#repos-sticky-header
101
+ */
102
+ 'jsdoc/informative-docs'?: Linter.RuleEntry<JsdocInformativeDocs>
103
+ /**
104
+ * Enforces minimum number of newlines before JSDoc comment blocks
105
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/lines-before-block.md#repos-sticky-header
106
+ */
107
+ 'jsdoc/lines-before-block'?: Linter.RuleEntry<JsdocLinesBeforeBlock>
108
+ /**
109
+ * Enforces a regular expression pattern on descriptions.
110
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-description.md#repos-sticky-header
111
+ */
112
+ 'jsdoc/match-description'?: Linter.RuleEntry<JsdocMatchDescription>
113
+ /**
114
+ * Reports the name portion of a JSDoc tag if matching or not matching a given regular expression.
115
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/match-name.md#repos-sticky-header
116
+ */
117
+ 'jsdoc/match-name'?: Linter.RuleEntry<JsdocMatchName>
118
+ /**
119
+ * Controls how and whether JSDoc blocks can be expressed as single or multiple line blocks.
120
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/multiline-blocks.md#repos-sticky-header
121
+ */
122
+ 'jsdoc/multiline-blocks'?: Linter.RuleEntry<JsdocMultilineBlocks>
123
+ /**
124
+ * This rule checks for multi-line-style comments which fail to meet the criteria of a JSDoc block.
125
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-bad-blocks.md#repos-sticky-header
126
+ */
127
+ 'jsdoc/no-bad-blocks'?: Linter.RuleEntry<JsdocNoBadBlocks>
128
+ /**
129
+ * If tags are present, this rule will prevent empty lines in the block description. If no tags are present, this rule will prevent extra empty lines in the block description.
130
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-block-descriptions.md#repos-sticky-header
131
+ */
132
+ 'jsdoc/no-blank-block-descriptions'?: Linter.RuleEntry<[]>
133
+ /**
134
+ * Removes empty blocks with nothing but possibly line breaks
135
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-blank-blocks.md#repos-sticky-header
136
+ */
137
+ 'jsdoc/no-blank-blocks'?: Linter.RuleEntry<JsdocNoBlankBlocks>
138
+ /**
139
+ * This rule reports defaults being used on the relevant portion of `@param` or `@default`.
140
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-defaults.md#repos-sticky-header
141
+ */
142
+ 'jsdoc/no-defaults'?: Linter.RuleEntry<JsdocNoDefaults>
143
+ /**
144
+ * Reports when certain comment structures are always expected.
145
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-missing-syntax.md#repos-sticky-header
146
+ */
147
+ 'jsdoc/no-missing-syntax'?: Linter.RuleEntry<JsdocNoMissingSyntax>
148
+ /**
149
+ * Prevents use of multiple asterisks at the beginning of lines.
150
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-multi-asterisks.md#repos-sticky-header
151
+ */
152
+ 'jsdoc/no-multi-asterisks'?: Linter.RuleEntry<JsdocNoMultiAsterisks>
153
+ /**
154
+ * Reports when certain comment structures are present.
155
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-restricted-syntax.md#repos-sticky-header
156
+ */
157
+ 'jsdoc/no-restricted-syntax'?: Linter.RuleEntry<JsdocNoRestrictedSyntax>
158
+ /**
159
+ * This rule reports types being used on `@param` or `@returns` (redundant with TypeScript).
160
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-types.md#repos-sticky-header
161
+ */
162
+ 'jsdoc/no-types'?: Linter.RuleEntry<JsdocNoTypes>
163
+ /**
164
+ * Besides some expected built-in types, prohibits any types not specified as globals or within `@typedef`.
165
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/no-undefined-types.md#repos-sticky-header
166
+ */
167
+ 'jsdoc/no-undefined-types'?: Linter.RuleEntry<JsdocNoUndefinedTypes>
168
+ /**
169
+ * Prefer `@import` tags to inline `import()` statements.
170
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/prefer-import-tag.md#repos-sticky-header
171
+ */
172
+ 'jsdoc/prefer-import-tag'?: Linter.RuleEntry<JsdocPreferImportTag>
173
+ /**
174
+ * Reports use of `any` or `*` type
175
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-any-type.md#repos-sticky-header
176
+ */
177
+ 'jsdoc/reject-any-type'?: Linter.RuleEntry<[]>
178
+ /**
179
+ * Reports use of `Function` type
180
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/reject-function-type.md#repos-sticky-header
181
+ */
182
+ 'jsdoc/reject-function-type'?: Linter.RuleEntry<[]>
183
+ /**
184
+ * Requires that each JSDoc line starts with an `*`.
185
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-asterisk-prefix.md#repos-sticky-header
186
+ */
187
+ 'jsdoc/require-asterisk-prefix'?: Linter.RuleEntry<JsdocRequireAsteriskPrefix>
188
+ /**
189
+ * Requires that all functions (and potentially other contexts) have a description.
190
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description.md#repos-sticky-header
191
+ */
192
+ 'jsdoc/require-description'?: Linter.RuleEntry<JsdocRequireDescription>
193
+ /**
194
+ * Requires that block description, explicit `@description`, and `@param`/`@returns` tag descriptions are written in complete sentences.
195
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-description-complete-sentence.md#repos-sticky-header
196
+ */
197
+ 'jsdoc/require-description-complete-sentence'?: Linter.RuleEntry<JsdocRequireDescriptionCompleteSentence>
198
+ /**
199
+ * Requires that all functions (and potentially other contexts) have examples.
200
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-example.md#repos-sticky-header
201
+ */
202
+ 'jsdoc/require-example'?: Linter.RuleEntry<JsdocRequireExample>
203
+ /**
204
+ * Checks that all files have one `@file`, `@fileoverview`, or `@overview` tag at the beginning of the file.
205
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-file-overview.md#repos-sticky-header
206
+ */
207
+ 'jsdoc/require-file-overview'?: Linter.RuleEntry<JsdocRequireFileOverview>
208
+ /**
209
+ * Requires a hyphen before the `@param` description (and optionally before `@property` descriptions).
210
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-hyphen-before-param-description.md#repos-sticky-header
211
+ */
212
+ 'jsdoc/require-hyphen-before-param-description'?: Linter.RuleEntry<JsdocRequireHyphenBeforeParamDescription>
213
+ /**
214
+ * Checks for presence of JSDoc comments, on functions and potentially other contexts (optionally limited to exports).
215
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-jsdoc.md#repos-sticky-header
216
+ */
217
+ 'jsdoc/require-jsdoc'?: Linter.RuleEntry<JsdocRequireJsdoc>
218
+ /**
219
+ * Requires a description for `@next` tags
220
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-description.md#repos-sticky-header
221
+ */
222
+ 'jsdoc/require-next-description'?: Linter.RuleEntry<[]>
223
+ /**
224
+ * Requires a type for `@next` tags
225
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-next-type.md#repos-sticky-header
226
+ */
227
+ 'jsdoc/require-next-type'?: Linter.RuleEntry<[]>
228
+ /**
229
+ * Requires that all function parameters are documented with a `@param` tag.
230
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param.md#repos-sticky-header
231
+ */
232
+ 'jsdoc/require-param'?: Linter.RuleEntry<JsdocRequireParam>
233
+ /**
234
+ * Requires that each `@param` tag has a `description` value.
235
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-description.md#repos-sticky-header
236
+ */
237
+ 'jsdoc/require-param-description'?: Linter.RuleEntry<JsdocRequireParamDescription>
238
+ /**
239
+ * Requires that all `@param` tags have names.
240
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-name.md#repos-sticky-header
241
+ */
242
+ 'jsdoc/require-param-name'?: Linter.RuleEntry<JsdocRequireParamName>
243
+ /**
244
+ * Requires that each `@param` tag has a type value (in curly brackets).
245
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-param-type.md#repos-sticky-header
246
+ */
247
+ 'jsdoc/require-param-type'?: Linter.RuleEntry<JsdocRequireParamType>
248
+ /**
249
+ * Requires that all `@typedef` and `@namespace` tags have `@property` when their type is a plain `object`, `Object`, or `PlainObject`.
250
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property.md#repos-sticky-header
251
+ */
252
+ 'jsdoc/require-property'?: Linter.RuleEntry<[]>
253
+ /**
254
+ * Requires that each `@property` tag has a `description` value.
255
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-description.md#repos-sticky-header
256
+ */
257
+ 'jsdoc/require-property-description'?: Linter.RuleEntry<[]>
258
+ /**
259
+ * Requires that all `@property` tags have names.
260
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-name.md#repos-sticky-header
261
+ */
262
+ 'jsdoc/require-property-name'?: Linter.RuleEntry<[]>
263
+ /**
264
+ * Requires that each `@property` tag has a type value (in curly brackets).
265
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header
266
+ */
267
+ 'jsdoc/require-property-type'?: Linter.RuleEntry<[]>
268
+ /**
269
+ * Requires that returns are documented with `@returns`.
270
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header
271
+ */
272
+ 'jsdoc/require-returns'?: Linter.RuleEntry<JsdocRequireReturns>
273
+ /**
274
+ * Requires a return statement in function body if a `@returns` tag is specified in JSDoc comment(and reports if multiple `@returns` tags are present).
275
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-check.md#repos-sticky-header
276
+ */
277
+ 'jsdoc/require-returns-check'?: Linter.RuleEntry<JsdocRequireReturnsCheck>
278
+ /**
279
+ * Requires that the `@returns` tag has a `description` value (not including `void`/`undefined` type returns).
280
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-description.md#repos-sticky-header
281
+ */
282
+ 'jsdoc/require-returns-description'?: Linter.RuleEntry<JsdocRequireReturnsDescription>
283
+ /**
284
+ * Requires that `@returns` tag has type value (in curly brackets).
285
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns-type.md#repos-sticky-header
286
+ */
287
+ 'jsdoc/require-returns-type'?: Linter.RuleEntry<JsdocRequireReturnsType>
288
+ /**
289
+ * Requires tags be present, optionally for specific contexts
290
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-tags.md#repos-sticky-header
291
+ */
292
+ 'jsdoc/require-tags'?: Linter.RuleEntry<JsdocRequireTags>
293
+ /**
294
+ * Requires `@template` tags be present when type parameters are used.
295
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template.md#repos-sticky-header
296
+ */
297
+ 'jsdoc/require-template'?: Linter.RuleEntry<JsdocRequireTemplate>
298
+ /**
299
+ * Requires a description for `@template` tags
300
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-template-description.md#repos-sticky-header
301
+ */
302
+ 'jsdoc/require-template-description'?: Linter.RuleEntry<[]>
303
+ /**
304
+ * Requires that throw statements are documented with `@throws` tags.
305
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws.md#repos-sticky-header
306
+ */
307
+ 'jsdoc/require-throws'?: Linter.RuleEntry<JsdocRequireThrows>
308
+ /**
309
+ * Requires a description for `@throws` tags
310
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-description.md#repos-sticky-header
311
+ */
312
+ 'jsdoc/require-throws-description'?: Linter.RuleEntry<[]>
313
+ /**
314
+ * Requires a type for `@throws` tags
315
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-throws-type.md#repos-sticky-header
316
+ */
317
+ 'jsdoc/require-throws-type'?: Linter.RuleEntry<[]>
318
+ /**
319
+ * Requires yields are documented with `@yields` tags.
320
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields.md#repos-sticky-header
321
+ */
322
+ 'jsdoc/require-yields'?: Linter.RuleEntry<JsdocRequireYields>
323
+ /**
324
+ * Ensures that if a `@yields` is present that a `yield` (or `yield` with a value) is present in the function body (or that if a `@next` is present that there is a yield with a return value present).
325
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-check.md#repos-sticky-header
326
+ */
327
+ 'jsdoc/require-yields-check'?: Linter.RuleEntry<JsdocRequireYieldsCheck>
328
+ /**
329
+ * Requires a description for `@yields` tags
330
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-description.md#repos-sticky-header
331
+ */
332
+ 'jsdoc/require-yields-description'?: Linter.RuleEntry<[]>
333
+ /**
334
+ * Requires a type for `@yields` tags
335
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-yields-type.md#repos-sticky-header
336
+ */
337
+ 'jsdoc/require-yields-type'?: Linter.RuleEntry<[]>
338
+ /**
339
+ * Sorts tags by a specified sequence according to tag name, optionally adding line breaks between tag groups.
340
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/sort-tags.md#repos-sticky-header
341
+ */
342
+ 'jsdoc/sort-tags'?: Linter.RuleEntry<JsdocSortTags>
343
+ /**
344
+ * Enforces lines (or no lines) before, after, or between tags.
345
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/tag-lines.md#repos-sticky-header
346
+ */
347
+ 'jsdoc/tag-lines'?: Linter.RuleEntry<JsdocTagLines>
348
+ /**
349
+ * Auto-escape certain characters that are input within block and tag descriptions.
350
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
351
+ */
352
+ 'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>
353
+ /**
354
+ * Prefers either function properties or method signatures
355
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-method-signature-style.md#repos-sticky-header
356
+ */
357
+ 'jsdoc/ts-method-signature-style'?: Linter.RuleEntry<JsdocTsMethodSignatureStyle>
358
+ /**
359
+ * Warns against use of the empty object type
360
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-empty-object-type.md#repos-sticky-header
361
+ */
362
+ 'jsdoc/ts-no-empty-object-type'?: Linter.RuleEntry<[]>
363
+ /**
364
+ * Catches unnecessary template expressions such as string expressions within a template literal.
365
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-unnecessary-template-expression.md#repos-sticky-header
366
+ */
367
+ 'jsdoc/ts-no-unnecessary-template-expression'?: Linter.RuleEntry<JsdocTsNoUnnecessaryTemplateExpression>
368
+ /**
369
+ * Prefers function types over call signatures when there are no other properties.
370
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-prefer-function-type.md#repos-sticky-header
371
+ */
372
+ 'jsdoc/ts-prefer-function-type'?: Linter.RuleEntry<JsdocTsPreferFunctionType>
373
+ /**
374
+ * Formats JSDoc type values.
375
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header
376
+ */
377
+ 'jsdoc/type-formatting'?: Linter.RuleEntry<JsdocTypeFormatting>
378
+ /**
379
+ * Requires all types/namepaths to be valid JSDoc, Closure compiler, or TypeScript types (configurable in settings).
380
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/valid-types.md#repos-sticky-header
381
+ */
382
+ 'jsdoc/valid-types'?: Linter.RuleEntry<JsdocValidTypes>
383
+ }
384
+
385
+ /* ======= Declarations ======= */
386
+ // ----- jsdoc/check-alignment -----
387
+ type JsdocCheckAlignment = []|[{
388
+
389
+ innerIndent?: number
390
+ }]
391
+ // ----- jsdoc/check-examples -----
392
+ type JsdocCheckExamples = []|[{
393
+ allowInlineConfig?: boolean
394
+ baseConfig?: {
395
+ [k: string]: unknown | undefined
396
+ }
397
+ captionRequired?: boolean
398
+ checkDefaults?: boolean
399
+ checkEslintrc?: boolean
400
+ checkParams?: boolean
401
+ checkProperties?: boolean
402
+ configFile?: string
403
+ exampleCodeRegex?: string
404
+ matchingFileName?: string
405
+ matchingFileNameDefaults?: string
406
+ matchingFileNameParams?: string
407
+ matchingFileNameProperties?: string
408
+ noDefaultExampleRules?: boolean
409
+ paddedIndent?: number
410
+ rejectExampleCodeRegex?: string
411
+ reportUnusedDisableDirectives?: boolean
412
+ }]
413
+ // ----- jsdoc/check-indentation -----
414
+ type JsdocCheckIndentation = []|[{
415
+
416
+ excludeTags?: string[]
417
+ }]
418
+ // ----- jsdoc/check-line-alignment -----
419
+ type JsdocCheckLineAlignment = []|[("always" | "never" | "any")]|[("always" | "never" | "any"), {
420
+
421
+ customSpacings?: {
422
+
423
+ postDelimiter?: number
424
+
425
+ postHyphen?: number
426
+
427
+ postName?: number
428
+
429
+ postTag?: number
430
+
431
+ postType?: number
432
+ }
433
+
434
+ disableWrapIndent?: boolean
435
+
436
+ preserveMainDescriptionPostDelimiter?: boolean
437
+
438
+ tags?: string[]
439
+
440
+ wrapIndent?: string
441
+ }]
442
+ // ----- jsdoc/check-param-names -----
443
+ type JsdocCheckParamNames = []|[{
444
+
445
+ allowExtraTrailingParamDocs?: boolean
446
+
447
+ checkDestructured?: boolean
448
+
449
+ checkRestProperty?: boolean
450
+
451
+ checkTypesPattern?: string
452
+
453
+ disableExtraPropertyReporting?: boolean
454
+
455
+ disableMissingParamChecks?: boolean
456
+
457
+ enableFixer?: boolean
458
+
459
+ useDefaultObjectProperties?: boolean
460
+ }]
461
+ // ----- jsdoc/check-property-names -----
462
+ type JsdocCheckPropertyNames = []|[{
463
+
464
+ enableFixer?: boolean
465
+ }]
466
+ // ----- jsdoc/check-tag-names -----
467
+ type JsdocCheckTagNames = []|[{
468
+
469
+ definedTags?: string[]
470
+
471
+ enableFixer?: boolean
472
+
473
+ inlineTags?: string[]
474
+
475
+ jsxTags?: boolean
476
+
477
+ typed?: boolean
478
+ }]
479
+ // ----- jsdoc/check-types -----
480
+ type JsdocCheckTypes = []|[{
481
+
482
+ exemptTagContexts?: {
483
+
484
+ tag?: string
485
+
486
+ types?: (boolean | string[])
487
+ }[]
488
+
489
+ noDefaults?: boolean
490
+
491
+ unifyParentAndChildTypeChecks?: boolean
492
+ }]
493
+ // ----- jsdoc/check-values -----
494
+ type JsdocCheckValues = []|[{
495
+
496
+ allowedAuthors?: string[]
497
+
498
+ allowedLicenses?: (string[] | boolean)
499
+
500
+ licensePattern?: string
501
+
502
+ numericOnlyVariation?: boolean
503
+ }]
504
+ // ----- jsdoc/convert-to-jsdoc-comments -----
505
+ type JsdocConvertToJsdocComments = []|[{
506
+
507
+ allowedPrefixes?: string[]
508
+
509
+ contexts?: (string | {
510
+ context?: string
511
+ inlineCommentBlock?: boolean
512
+ })[]
513
+
514
+ contextsAfter?: (string | {
515
+ context?: string
516
+ inlineCommentBlock?: boolean
517
+ })[]
518
+
519
+ contextsBeforeAndAfter?: (string | {
520
+ context?: string
521
+ inlineCommentBlock?: boolean
522
+ })[]
523
+
524
+ enableFixer?: boolean
525
+
526
+ enforceJsdocLineStyle?: ("multi" | "single")
527
+
528
+ lineOrBlockStyle?: ("block" | "line" | "both")
529
+ }]
530
+ // ----- jsdoc/empty-tags -----
531
+ type JsdocEmptyTags = []|[{
532
+
533
+ tags?: string[]
534
+ }]
535
+ // ----- jsdoc/escape-inline-tags -----
536
+ type JsdocEscapeInlineTags = []|[{
537
+
538
+ allowedInlineTags?: string[]
539
+
540
+ enableFixer?: boolean
541
+
542
+ fixType?: ("backticks" | "backslash")
543
+ }]
544
+ // ----- jsdoc/implements-on-classes -----
545
+ type JsdocImplementsOnClasses = []|[{
546
+
547
+ contexts?: (string | {
548
+ comment?: string
549
+ context?: string
550
+ })[]
551
+ }]
552
+ // ----- jsdoc/informative-docs -----
553
+ type JsdocInformativeDocs = []|[{
554
+
555
+ aliases?: {
556
+ [k: string]: string[]
557
+ }
558
+
559
+ excludedTags?: string[]
560
+
561
+ uselessWords?: string[]
562
+ }]
563
+ // ----- jsdoc/lines-before-block -----
564
+ type JsdocLinesBeforeBlock = []|[{
565
+
566
+ checkBlockStarts?: boolean
567
+
568
+ excludedTags?: string[]
569
+
570
+ ignoreSameLine?: boolean
571
+
572
+ ignoreSingleLines?: boolean
573
+
574
+ lines?: number
575
+ }]
576
+ // ----- jsdoc/match-description -----
577
+ type JsdocMatchDescription = []|[{
578
+
579
+ contexts?: (string | {
580
+ comment?: string
581
+ context?: string
582
+ })[]
583
+
584
+ mainDescription?: (string | boolean | {
585
+ match?: (string | boolean)
586
+ message?: string
587
+ })
588
+
589
+ matchDescription?: string
590
+
591
+ message?: string
592
+
593
+ nonemptyTags?: boolean
594
+
595
+ tags?: {
596
+ [k: string]: (string | true | {
597
+ match?: (string | true)
598
+ message?: string
599
+ })
600
+ }
601
+ }]
602
+ // ----- jsdoc/match-name -----
603
+ type JsdocMatchName = []|[{
604
+
605
+ match: {
606
+
607
+ allowName?: string
608
+
609
+ comment?: string
610
+
611
+ context?: string
612
+
613
+ disallowName?: string
614
+
615
+ message?: string
616
+
617
+ replacement?: string
618
+
619
+ tags?: string[]
620
+ }[]
621
+ }]
622
+ // ----- jsdoc/multiline-blocks -----
623
+ type JsdocMultilineBlocks = []|[{
624
+
625
+ allowMultipleTags?: boolean
626
+
627
+ minimumLengthForMultiline?: number
628
+
629
+ multilineTags?: ("*" | string[])
630
+
631
+ noFinalLineText?: boolean
632
+
633
+ noMultilineBlocks?: boolean
634
+
635
+ noSingleLineBlocks?: boolean
636
+
637
+ noZeroLineText?: boolean
638
+
639
+ requireSingleLineUnderCount?: number
640
+
641
+ singleLineTags?: string[]
642
+ }]
643
+ // ----- jsdoc/no-bad-blocks -----
644
+ type JsdocNoBadBlocks = []|[{
645
+
646
+ ignore?: string[]
647
+
648
+ preventAllMultiAsteriskBlocks?: boolean
649
+ }]
650
+ // ----- jsdoc/no-blank-blocks -----
651
+ type JsdocNoBlankBlocks = []|[{
652
+
653
+ enableFixer?: boolean
654
+ }]
655
+ // ----- jsdoc/no-defaults -----
656
+ type JsdocNoDefaults = []|[{
657
+
658
+ contexts?: (string | {
659
+ comment?: string
660
+ context?: string
661
+ })[]
662
+
663
+ noOptionalParamNames?: boolean
664
+ }]
665
+ // ----- jsdoc/no-missing-syntax -----
666
+ type JsdocNoMissingSyntax = []|[{
667
+
668
+ contexts?: (string | {
669
+ comment?: string
670
+ context?: string
671
+ message?: string
672
+ minimum?: number
673
+ })[]
674
+ }]
675
+ // ----- jsdoc/no-multi-asterisks -----
676
+ type JsdocNoMultiAsterisks = []|[{
677
+
678
+ allowWhitespace?: boolean
679
+
680
+ preventAtEnd?: boolean
681
+
682
+ preventAtMiddleLines?: boolean
683
+ }]
684
+ // ----- jsdoc/no-restricted-syntax -----
685
+ type JsdocNoRestrictedSyntax = []|[{
686
+
687
+ contexts: (string | {
688
+ comment?: string
689
+ context?: string
690
+ message?: string
691
+ })[]
692
+ }]
693
+ // ----- jsdoc/no-types -----
694
+ type JsdocNoTypes = []|[{
695
+
696
+ contexts?: (string | {
697
+ comment?: string
698
+ context?: string
699
+ })[]
700
+ }]
701
+ // ----- jsdoc/no-undefined-types -----
702
+ type JsdocNoUndefinedTypes = []|[{
703
+
704
+ checkUsedTypedefs?: boolean
705
+
706
+ definedTypes?: string[]
707
+
708
+ disableReporting?: boolean
709
+
710
+ markVariablesAsUsed?: boolean
711
+ }]
712
+ // ----- jsdoc/prefer-import-tag -----
713
+ type JsdocPreferImportTag = []|[{
714
+
715
+ enableFixer?: boolean
716
+
717
+ exemptTypedefs?: boolean
718
+
719
+ outputType?: ("named-import" | "namespaced-import")
720
+ }]
721
+ // ----- jsdoc/require-asterisk-prefix -----
722
+ type JsdocRequireAsteriskPrefix = []|[("always" | "never" | "any")]|[("always" | "never" | "any"), {
723
+
724
+ tags?: {
725
+
726
+ always?: string[]
727
+
728
+ any?: string[]
729
+
730
+ never?: string[]
731
+ }
732
+ }]
733
+ // ----- jsdoc/require-description -----
734
+ type JsdocRequireDescription = []|[{
735
+
736
+ checkConstructors?: boolean
737
+
738
+ checkGetters?: boolean
739
+
740
+ checkSetters?: boolean
741
+
742
+ contexts?: (string | {
743
+ comment?: string
744
+ context?: string
745
+ })[]
746
+
747
+ descriptionStyle?: ("body" | "tag" | "any")
748
+
749
+ exemptedBy?: string[]
750
+ }]
751
+ // ----- jsdoc/require-description-complete-sentence -----
752
+ type JsdocRequireDescriptionCompleteSentence = []|[{
753
+
754
+ abbreviations?: string[]
755
+
756
+ newlineBeforeCapsAssumesBadSentenceEnd?: boolean
757
+
758
+ tags?: string[]
759
+ }]
760
+ // ----- jsdoc/require-example -----
761
+ type JsdocRequireExample = []|[{
762
+
763
+ checkConstructors?: boolean
764
+
765
+ checkGetters?: boolean
766
+
767
+ checkSetters?: boolean
768
+
769
+ contexts?: (string | {
770
+ comment?: string
771
+ context?: string
772
+ })[]
773
+
774
+ enableFixer?: boolean
775
+
776
+ exemptedBy?: string[]
777
+
778
+ exemptNoArguments?: boolean
779
+ }]
780
+ // ----- jsdoc/require-file-overview -----
781
+ type JsdocRequireFileOverview = []|[{
782
+
783
+ tags?: {
784
+ [k: string]: {
785
+ initialCommentsOnly?: boolean
786
+ mustExist?: boolean
787
+ preventDuplicates?: boolean
788
+ }
789
+ }
790
+ }]
791
+ // ----- jsdoc/require-hyphen-before-param-description -----
792
+ type JsdocRequireHyphenBeforeParamDescription = []|[("always" | "never")]|[("always" | "never"), {
793
+
794
+ tags?: ({
795
+ [k: string]: ("always" | "never")
796
+ } | "any")
797
+ }]
798
+ // ----- jsdoc/require-jsdoc -----
799
+ type JsdocRequireJsdoc = []|[{
800
+
801
+ checkConstructors?: boolean
802
+
803
+ checkGetters?: (boolean | "no-setter")
804
+
805
+ checkSetters?: (boolean | "no-getter")
806
+
807
+ contexts?: (string | {
808
+ context?: string
809
+ inlineCommentBlock?: boolean
810
+ minLineCount?: number
811
+ })[]
812
+
813
+ enableFixer?: boolean
814
+
815
+ exemptEmptyConstructors?: boolean
816
+
817
+ exemptEmptyFunctions?: boolean
818
+
819
+ exemptOverloadedImplementations?: boolean
820
+
821
+ fixerMessage?: string
822
+
823
+ minLineCount?: number
824
+
825
+ publicOnly?: (boolean | {
826
+ ancestorsOnly?: boolean
827
+ cjs?: boolean
828
+ esm?: boolean
829
+ window?: boolean
830
+ })
831
+
832
+ require?: {
833
+
834
+ ArrowFunctionExpression?: boolean
835
+
836
+ ClassDeclaration?: boolean
837
+
838
+ ClassExpression?: boolean
839
+
840
+ FunctionDeclaration?: boolean
841
+
842
+ FunctionExpression?: boolean
843
+
844
+ MethodDefinition?: boolean
845
+ }
846
+
847
+ skipInterveningOverloadedDeclarations?: boolean
848
+ }]
849
+ // ----- jsdoc/require-param -----
850
+ type JsdocRequireParam = []|[{
851
+
852
+ autoIncrementBase?: number
853
+
854
+ checkConstructors?: boolean
855
+
856
+ checkDestructured?: boolean
857
+
858
+ checkDestructuredRoots?: boolean
859
+
860
+ checkGetters?: boolean
861
+
862
+ checkRestProperty?: boolean
863
+
864
+ checkSetters?: boolean
865
+
866
+ checkTypesPattern?: string
867
+
868
+ contexts?: (string | {
869
+ comment?: string
870
+ context?: string
871
+ })[]
872
+
873
+ enableFixer?: boolean
874
+
875
+ enableRestElementFixer?: boolean
876
+
877
+ enableRootFixer?: boolean
878
+
879
+ exemptedBy?: string[]
880
+
881
+ ignoreWhenAllParamsMissing?: boolean
882
+
883
+ interfaceExemptsParamsCheck?: boolean
884
+
885
+ unnamedRootBase?: string[]
886
+
887
+ useDefaultObjectProperties?: boolean
888
+ }]
889
+ // ----- jsdoc/require-param-description -----
890
+ type JsdocRequireParamDescription = []|[{
891
+
892
+ contexts?: (string | {
893
+ comment?: string
894
+ context?: string
895
+ })[]
896
+
897
+ defaultDestructuredRootDescription?: string
898
+
899
+ setDefaultDestructuredRootDescription?: boolean
900
+ }]
901
+ // ----- jsdoc/require-param-name -----
902
+ type JsdocRequireParamName = []|[{
903
+
904
+ contexts?: (string | {
905
+ comment?: string
906
+ context?: string
907
+ })[]
908
+ }]
909
+ // ----- jsdoc/require-param-type -----
910
+ type JsdocRequireParamType = []|[{
911
+
912
+ contexts?: (string | {
913
+ comment?: string
914
+ context?: string
915
+ })[]
916
+
917
+ defaultDestructuredRootType?: string
918
+
919
+ setDefaultDestructuredRootType?: boolean
920
+ }]
921
+ // ----- jsdoc/require-returns -----
922
+ type JsdocRequireReturns = []|[{
923
+
924
+ checkConstructors?: boolean
925
+
926
+ checkGetters?: boolean
927
+
928
+ contexts?: (string | {
929
+ comment?: string
930
+ context?: string
931
+ forceRequireReturn?: boolean
932
+ })[]
933
+
934
+ enableFixer?: boolean
935
+
936
+ exemptedBy?: string[]
937
+
938
+ forceRequireReturn?: boolean
939
+
940
+ forceReturnsWithAsync?: boolean
941
+
942
+ publicOnly?: (boolean | {
943
+ ancestorsOnly?: boolean
944
+ cjs?: boolean
945
+ esm?: boolean
946
+ window?: boolean
947
+ })
948
+ }]
949
+ // ----- jsdoc/require-returns-check -----
950
+ type JsdocRequireReturnsCheck = []|[{
951
+
952
+ exemptAsync?: boolean
953
+
954
+ exemptGenerators?: boolean
955
+
956
+ noNativeTypes?: boolean
957
+
958
+ reportMissingReturnForUndefinedTypes?: boolean
959
+ }]
960
+ // ----- jsdoc/require-returns-description -----
961
+ type JsdocRequireReturnsDescription = []|[{
962
+
963
+ contexts?: (string | {
964
+ comment?: string
965
+ context?: string
966
+ })[]
967
+ }]
968
+ // ----- jsdoc/require-returns-type -----
969
+ type JsdocRequireReturnsType = []|[{
970
+
971
+ contexts?: (string | {
972
+ comment?: string
973
+ context?: string
974
+ })[]
975
+ }]
976
+ // ----- jsdoc/require-tags -----
977
+ type JsdocRequireTags = []|[{
978
+
979
+ tags?: (string | {
980
+ context?: string
981
+ tag?: string
982
+ [k: string]: unknown | undefined
983
+ })[]
984
+ }]
985
+ // ----- jsdoc/require-template -----
986
+ type JsdocRequireTemplate = []|[{
987
+
988
+ exemptedBy?: string[]
989
+
990
+ requireSeparateTemplates?: boolean
991
+ }]
992
+ // ----- jsdoc/require-throws -----
993
+ type JsdocRequireThrows = []|[{
994
+
995
+ contexts?: (string | {
996
+ comment?: string
997
+ context?: string
998
+ })[]
999
+
1000
+ exemptedBy?: string[]
1001
+ }]
1002
+ // ----- jsdoc/require-yields -----
1003
+ type JsdocRequireYields = []|[{
1004
+
1005
+ contexts?: (string | {
1006
+ comment?: string
1007
+ context?: string
1008
+ })[]
1009
+
1010
+ exemptedBy?: string[]
1011
+
1012
+ forceRequireNext?: boolean
1013
+
1014
+ forceRequireYields?: boolean
1015
+
1016
+ next?: boolean
1017
+
1018
+ nextWithGeneratorTag?: boolean
1019
+
1020
+ withGeneratorTag?: boolean
1021
+ }]
1022
+ // ----- jsdoc/require-yields-check -----
1023
+ type JsdocRequireYieldsCheck = []|[{
1024
+
1025
+ checkGeneratorsOnly?: boolean
1026
+
1027
+ contexts?: (string | {
1028
+ comment?: string
1029
+ context?: string
1030
+ })[]
1031
+
1032
+ next?: boolean
1033
+ }]
1034
+ // ----- jsdoc/sort-tags -----
1035
+ type JsdocSortTags = []|[{
1036
+
1037
+ alphabetizeExtras?: boolean
1038
+
1039
+ linesBetween?: number
1040
+
1041
+ reportIntraTagGroupSpacing?: boolean
1042
+
1043
+ reportTagGroupSpacing?: boolean
1044
+
1045
+ tagSequence?: {
1046
+
1047
+ tags?: string[]
1048
+ }[]
1049
+ }]
1050
+ // ----- jsdoc/tag-lines -----
1051
+ type JsdocTagLines = []|[("always" | "any" | "never")]|[("always" | "any" | "never"), {
1052
+
1053
+ applyToEndTag?: boolean
1054
+
1055
+ count?: number
1056
+
1057
+ endLines?: (number | null)
1058
+
1059
+ maxBlockLines?: (number | null)
1060
+
1061
+ startLines?: (number | null)
1062
+
1063
+ tags?: {
1064
+ [k: string]: {
1065
+ count?: number
1066
+ lines?: ("always" | "never" | "any")
1067
+ }
1068
+ }
1069
+ }]
1070
+ // ----- jsdoc/text-escaping -----
1071
+ type JsdocTextEscaping = []|[{
1072
+
1073
+ escapeHTML?: boolean
1074
+
1075
+ escapeMarkdown?: boolean
1076
+ }]
1077
+ // ----- jsdoc/ts-method-signature-style -----
1078
+ type JsdocTsMethodSignatureStyle = []|[("method" | "property")]|[("method" | "property"), {
1079
+
1080
+ enableFixer?: boolean
1081
+ }]
1082
+ // ----- jsdoc/ts-no-unnecessary-template-expression -----
1083
+ type JsdocTsNoUnnecessaryTemplateExpression = []|[{
1084
+
1085
+ enableFixer?: boolean
1086
+ }]
1087
+ // ----- jsdoc/ts-prefer-function-type -----
1088
+ type JsdocTsPreferFunctionType = []|[{
1089
+
1090
+ enableFixer?: boolean
1091
+ }]
1092
+ // ----- jsdoc/type-formatting -----
1093
+ type JsdocTypeFormatting = []|[{
1094
+
1095
+ arrayBrackets?: ("angle" | "square")
1096
+
1097
+ arrowFunctionPostReturnMarkerSpacing?: string
1098
+
1099
+ arrowFunctionPreReturnMarkerSpacing?: string
1100
+
1101
+ enableFixer?: boolean
1102
+
1103
+ functionOrClassParameterSpacing?: string
1104
+
1105
+ functionOrClassPostGenericSpacing?: string
1106
+
1107
+ functionOrClassPostReturnMarkerSpacing?: string
1108
+
1109
+ functionOrClassPreReturnMarkerSpacing?: string
1110
+
1111
+ functionOrClassTypeParameterSpacing?: string
1112
+
1113
+ genericAndTupleElementSpacing?: string
1114
+
1115
+ genericDot?: boolean
1116
+
1117
+ keyValuePostColonSpacing?: string
1118
+
1119
+ keyValuePostKeySpacing?: string
1120
+
1121
+ keyValuePostOptionalSpacing?: string
1122
+
1123
+ keyValuePostVariadicSpacing?: string
1124
+
1125
+ methodQuotes?: ("double" | "single")
1126
+
1127
+ objectFieldIndent?: string
1128
+
1129
+ objectFieldQuote?: ("double" | "single" | null)
1130
+
1131
+ objectFieldSeparator?: ("comma" | "comma-and-linebreak" | "linebreak" | "semicolon" | "semicolon-and-linebreak")
1132
+
1133
+ objectFieldSeparatorOptionalLinebreak?: boolean
1134
+
1135
+ objectFieldSeparatorTrailingPunctuation?: boolean
1136
+
1137
+ parameterDefaultValueSpacing?: string
1138
+
1139
+ postMethodNameSpacing?: string
1140
+
1141
+ postNewSpacing?: string
1142
+
1143
+ separatorForSingleObjectField?: boolean
1144
+
1145
+ stringQuotes?: ("double" | "single")
1146
+
1147
+ typeBracketSpacing?: string
1148
+
1149
+ unionSpacing?: string
1150
+ }]
1151
+ // ----- jsdoc/valid-types -----
1152
+ type JsdocValidTypes = []|[{
1153
+
1154
+ allowEmptyNamepaths?: boolean
1155
+ }]