@w5s/eslint-config 2.4.5 → 3.0.1

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 (88) hide show
  1. package/dist/index.d.ts +8054 -3
  2. package/dist/index.js +4171 -22
  3. package/dist/index.js.map +1 -0
  4. package/package.json +26 -17
  5. package/src/config/createRules.ts +5 -0
  6. package/src/config/es.ts +58 -0
  7. package/src/config/ignores.ts +84 -0
  8. package/src/config/imports.ts +32 -0
  9. package/src/config/jsdoc.ts +53 -0
  10. package/src/config/jsonc.ts +237 -0
  11. package/src/config/node.ts +42 -0
  12. package/src/config/stylistic.ts +50 -0
  13. package/src/config/test.ts +44 -0
  14. package/src/config/ts.ts +97 -0
  15. package/src/config/unicorn.ts +68 -0
  16. package/src/config/yml.ts +70 -0
  17. package/src/config.ts +11 -0
  18. package/src/defineConfig.ts +62 -0
  19. package/src/index.ts +3 -31
  20. package/src/type/Config.ts +5 -0
  21. package/src/type/PluginOptionsBase.ts +14 -0
  22. package/src/type/StylisticConfig.ts +39 -0
  23. package/src/type.ts +3 -0
  24. package/src/typegen/.keep +0 -0
  25. package/src/typegen/import.d.ts +501 -0
  26. package/src/typegen/jsdoc.d.ts +1155 -0
  27. package/src/typegen/jsonc.d.ts +500 -0
  28. package/src/typegen/node.d.ts +529 -0
  29. package/src/typegen/style.d.ts +1637 -0
  30. package/src/typegen/test.d.ts +430 -0
  31. package/src/typegen/ts.d.ts +1872 -0
  32. package/src/typegen/unicorn.d.ts +913 -0
  33. package/src/typegen/yml.d.ts +363 -0
  34. package/dist/es.d.ts +0 -3
  35. package/dist/es.js +0 -10
  36. package/dist/jest.d.ts +0 -3
  37. package/dist/jest.js +0 -20
  38. package/dist/json.d.ts +0 -3
  39. package/dist/json.js +0 -14
  40. package/dist/rules/es/base.d.ts +0 -4
  41. package/dist/rules/es/base.js +0 -71
  42. package/dist/rules/es/import.d.ts +0 -3
  43. package/dist/rules/es/import.js +0 -74
  44. package/dist/rules/es/jsdoc.d.ts +0 -3
  45. package/dist/rules/es/jsdoc.js +0 -21
  46. package/dist/rules/es/node.d.ts +0 -3
  47. package/dist/rules/es/node.js +0 -20
  48. package/dist/rules/es/promise.d.ts +0 -3
  49. package/dist/rules/es/promise.js +0 -11
  50. package/dist/rules/es/unicorn.d.ts +0 -3
  51. package/dist/rules/es/unicorn.js +0 -72
  52. package/dist/rules/es.d.ts +0 -3
  53. package/dist/rules/es.js +0 -14
  54. package/dist/rules/ignore.d.ts +0 -3
  55. package/dist/rules/ignore.js +0 -54
  56. package/dist/rules/jest.d.ts +0 -3
  57. package/dist/rules/jest.js +0 -64
  58. package/dist/rules/jsonc.d.ts +0 -3
  59. package/dist/rules/jsonc.js +0 -183
  60. package/dist/rules/prettier.d.ts +0 -3
  61. package/dist/rules/prettier.js +0 -13
  62. package/dist/rules/typescript.d.ts +0 -3
  63. package/dist/rules/typescript.js +0 -249
  64. package/dist/rules/yml.d.ts +0 -3
  65. package/dist/rules/yml.js +0 -21
  66. package/dist/tsconfig.build.tsbuildinfo +0 -1
  67. package/dist/typescript.d.ts +0 -3
  68. package/dist/typescript.js +0 -21
  69. package/dist/yml.d.ts +0 -3
  70. package/dist/yml.js +0 -19
  71. package/src/es.ts +0 -12
  72. package/src/jest.ts +0 -18
  73. package/src/json.ts +0 -12
  74. package/src/rules/es/base.ts +0 -83
  75. package/src/rules/es/import.ts +0 -81
  76. package/src/rules/es/jsdoc.ts +0 -23
  77. package/src/rules/es/node.ts +0 -21
  78. package/src/rules/es/promise.ts +0 -12
  79. package/src/rules/es/unicorn.ts +0 -74
  80. package/src/rules/es.ts +0 -21
  81. package/src/rules/ignore.ts +0 -54
  82. package/src/rules/jest.ts +0 -68
  83. package/src/rules/jsonc.ts +0 -187
  84. package/src/rules/prettier.ts +0 -11
  85. package/src/rules/typescript.ts +0 -255
  86. package/src/rules/yml.ts +0 -22
  87. package/src/typescript.ts +0 -24
  88. package/src/yml.ts +0 -18
@@ -0,0 +1,500 @@
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
+ * enforce line breaks after opening and before closing array brackets
15
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-newline.html
16
+ */
17
+ 'jsonc/array-bracket-newline'?: Linter.RuleEntry<JsoncArrayBracketNewline>
18
+ /**
19
+ * disallow or enforce spaces inside of brackets
20
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-bracket-spacing.html
21
+ */
22
+ 'jsonc/array-bracket-spacing'?: Linter.RuleEntry<JsoncArrayBracketSpacing>
23
+ /**
24
+ * enforce line breaks between array elements
25
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/array-element-newline.html
26
+ */
27
+ 'jsonc/array-element-newline'?: Linter.RuleEntry<JsoncArrayElementNewline>
28
+ /**
29
+ * apply jsonc rules similar to your configured ESLint core rules
30
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/auto.html
31
+ */
32
+ 'jsonc/auto'?: Linter.RuleEntry<[]>
33
+ /**
34
+ * require or disallow trailing commas
35
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-dangle.html
36
+ */
37
+ 'jsonc/comma-dangle'?: Linter.RuleEntry<JsoncCommaDangle>
38
+ /**
39
+ * enforce consistent comma style
40
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/comma-style.html
41
+ */
42
+ 'jsonc/comma-style'?: Linter.RuleEntry<JsoncCommaStyle>
43
+ /**
44
+ * enforce consistent indentation
45
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/indent.html
46
+ */
47
+ 'jsonc/indent'?: Linter.RuleEntry<JsoncIndent>
48
+ /**
49
+ * enforce naming convention to property key names
50
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-name-casing.html
51
+ */
52
+ 'jsonc/key-name-casing'?: Linter.RuleEntry<JsoncKeyNameCasing>
53
+ /**
54
+ * enforce consistent spacing between keys and values in object literal properties
55
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/key-spacing.html
56
+ */
57
+ 'jsonc/key-spacing'?: Linter.RuleEntry<JsoncKeySpacing>
58
+ /**
59
+ * disallow BigInt literals
60
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-bigint-literals.html
61
+ */
62
+ 'jsonc/no-bigint-literals'?: Linter.RuleEntry<[]>
63
+ /**
64
+ * disallow binary expression
65
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-expression.html
66
+ */
67
+ 'jsonc/no-binary-expression'?: Linter.RuleEntry<[]>
68
+ /**
69
+ * disallow binary numeric literals
70
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-binary-numeric-literals.html
71
+ */
72
+ 'jsonc/no-binary-numeric-literals'?: Linter.RuleEntry<[]>
73
+ /**
74
+ * disallow comments
75
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-comments.html
76
+ */
77
+ 'jsonc/no-comments'?: Linter.RuleEntry<[]>
78
+ /**
79
+ * disallow duplicate keys in object literals
80
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-dupe-keys.html
81
+ */
82
+ 'jsonc/no-dupe-keys'?: Linter.RuleEntry<[]>
83
+ /**
84
+ * disallow escape sequences in identifiers.
85
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-escape-sequence-in-identifier.html
86
+ */
87
+ 'jsonc/no-escape-sequence-in-identifier'?: Linter.RuleEntry<[]>
88
+ /**
89
+ * disallow leading or trailing decimal points in numeric literals
90
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-floating-decimal.html
91
+ */
92
+ 'jsonc/no-floating-decimal'?: Linter.RuleEntry<[]>
93
+ /**
94
+ * disallow hexadecimal numeric literals
95
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-hexadecimal-numeric-literals.html
96
+ */
97
+ 'jsonc/no-hexadecimal-numeric-literals'?: Linter.RuleEntry<[]>
98
+ /**
99
+ * disallow Infinity
100
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-infinity.html
101
+ */
102
+ 'jsonc/no-infinity'?: Linter.RuleEntry<[]>
103
+ /**
104
+ * disallow irregular whitespace
105
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-irregular-whitespace.html
106
+ */
107
+ 'jsonc/no-irregular-whitespace'?: Linter.RuleEntry<JsoncNoIrregularWhitespace>
108
+ /**
109
+ * disallow multiline strings
110
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-multi-str.html
111
+ */
112
+ 'jsonc/no-multi-str'?: Linter.RuleEntry<[]>
113
+ /**
114
+ * disallow NaN
115
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-nan.html
116
+ */
117
+ 'jsonc/no-nan'?: Linter.RuleEntry<[]>
118
+ /**
119
+ * disallow number property keys
120
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-number-props.html
121
+ */
122
+ 'jsonc/no-number-props'?: Linter.RuleEntry<[]>
123
+ /**
124
+ * disallow numeric separators
125
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-numeric-separators.html
126
+ */
127
+ 'jsonc/no-numeric-separators'?: Linter.RuleEntry<[]>
128
+ /**
129
+ * disallow legacy octal literals
130
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal.html
131
+ */
132
+ 'jsonc/no-octal'?: Linter.RuleEntry<[]>
133
+ /**
134
+ * disallow octal escape sequences in string literals
135
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-escape.html
136
+ */
137
+ 'jsonc/no-octal-escape'?: Linter.RuleEntry<[]>
138
+ /**
139
+ * disallow octal numeric literals
140
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-octal-numeric-literals.html
141
+ */
142
+ 'jsonc/no-octal-numeric-literals'?: Linter.RuleEntry<[]>
143
+ /**
144
+ * disallow parentheses around the expression
145
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-parenthesized.html
146
+ */
147
+ 'jsonc/no-parenthesized'?: Linter.RuleEntry<[]>
148
+ /**
149
+ * disallow plus sign
150
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-plus-sign.html
151
+ */
152
+ 'jsonc/no-plus-sign'?: Linter.RuleEntry<[]>
153
+ /**
154
+ * disallow RegExp literals
155
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-regexp-literals.html
156
+ */
157
+ 'jsonc/no-regexp-literals'?: Linter.RuleEntry<[]>
158
+ /**
159
+ * disallow sparse arrays
160
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-sparse-arrays.html
161
+ */
162
+ 'jsonc/no-sparse-arrays'?: Linter.RuleEntry<[]>
163
+ /**
164
+ * disallow template literals
165
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-template-literals.html
166
+ */
167
+ 'jsonc/no-template-literals'?: Linter.RuleEntry<[]>
168
+ /**
169
+ * disallow `undefined`
170
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-undefined-value.html
171
+ */
172
+ 'jsonc/no-undefined-value'?: Linter.RuleEntry<[]>
173
+ /**
174
+ * disallow Unicode code point escape sequences.
175
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-unicode-codepoint-escapes.html
176
+ */
177
+ 'jsonc/no-unicode-codepoint-escapes'?: Linter.RuleEntry<[]>
178
+ /**
179
+ * disallow unnecessary escape usage
180
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/no-useless-escape.html
181
+ */
182
+ 'jsonc/no-useless-escape'?: Linter.RuleEntry<JsoncNoUselessEscape>
183
+ /**
184
+ * enforce consistent line breaks inside braces
185
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-newline.html
186
+ */
187
+ 'jsonc/object-curly-newline'?: Linter.RuleEntry<JsoncObjectCurlyNewline>
188
+ /**
189
+ * enforce consistent spacing inside braces
190
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-curly-spacing.html
191
+ */
192
+ 'jsonc/object-curly-spacing'?: Linter.RuleEntry<JsoncObjectCurlySpacing>
193
+ /**
194
+ * enforce placing object properties on separate lines
195
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/object-property-newline.html
196
+ */
197
+ 'jsonc/object-property-newline'?: Linter.RuleEntry<JsoncObjectPropertyNewline>
198
+ /**
199
+ * require quotes around object literal property names
200
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quote-props.html
201
+ */
202
+ 'jsonc/quote-props'?: Linter.RuleEntry<JsoncQuoteProps>
203
+ /**
204
+ * enforce use of double or single quotes
205
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/quotes.html
206
+ */
207
+ 'jsonc/quotes'?: Linter.RuleEntry<JsoncQuotes>
208
+ /**
209
+ * require array values to be sorted
210
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-array-values.html
211
+ */
212
+ 'jsonc/sort-array-values'?: Linter.RuleEntry<JsoncSortArrayValues>
213
+ /**
214
+ * require object keys to be sorted
215
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html
216
+ */
217
+ 'jsonc/sort-keys'?: Linter.RuleEntry<JsoncSortKeys>
218
+ /**
219
+ * disallow spaces after unary operators
220
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/space-unary-ops.html
221
+ */
222
+ 'jsonc/space-unary-ops'?: Linter.RuleEntry<JsoncSpaceUnaryOps>
223
+ /**
224
+ * disallow invalid number for JSON
225
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/valid-json-number.html
226
+ */
227
+ 'jsonc/valid-json-number'?: Linter.RuleEntry<[]>
228
+ /**
229
+ * disallow parsing errors in Vue custom blocks
230
+ * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/vue-custom-block/no-parsing-error.html
231
+ */
232
+ 'jsonc/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>
233
+ }
234
+
235
+ /* ======= Declarations ======= */
236
+ // ----- jsonc/array-bracket-newline -----
237
+ type JsoncArrayBracketNewline = []|[(("always" | "never" | "consistent") | {
238
+ multiline?: boolean
239
+ minItems?: (number | null)
240
+ })]
241
+ // ----- jsonc/array-bracket-spacing -----
242
+ type JsoncArrayBracketSpacing = []|[("always" | "never")]|[("always" | "never"), {
243
+ singleValue?: boolean
244
+ objectsInArrays?: boolean
245
+ arraysInArrays?: boolean
246
+ }]
247
+ // ----- jsonc/array-element-newline -----
248
+ type JsoncArrayElementNewline = []|[(_JsoncArrayElementNewlineBasicConfig | {
249
+ ArrayExpression?: _JsoncArrayElementNewlineBasicConfig
250
+ JSONArrayExpression?: _JsoncArrayElementNewlineBasicConfig
251
+ ArrayPattern?: _JsoncArrayElementNewlineBasicConfig
252
+ })]
253
+ type _JsoncArrayElementNewlineBasicConfig = (("always" | "never" | "consistent") | {
254
+ multiline?: boolean
255
+ minItems?: (number | null)
256
+ })
257
+ // ----- jsonc/comma-dangle -----
258
+ type JsoncCommaDangle = []|[(_JsoncCommaDangleValue | {
259
+ arrays?: _JsoncCommaDangleValueWithIgnore
260
+ objects?: _JsoncCommaDangleValueWithIgnore
261
+ imports?: _JsoncCommaDangleValueWithIgnore
262
+ exports?: _JsoncCommaDangleValueWithIgnore
263
+ functions?: _JsoncCommaDangleValueWithIgnore
264
+ })]
265
+ type _JsoncCommaDangleValue = ("always-multiline" | "always" | "never" | "only-multiline")
266
+ type _JsoncCommaDangleValueWithIgnore = ("always-multiline" | "always" | "ignore" | "never" | "only-multiline")
267
+ // ----- jsonc/comma-style -----
268
+ type JsoncCommaStyle = []|[("first" | "last")]|[("first" | "last"), {
269
+ exceptions?: {
270
+ [k: string]: boolean | undefined
271
+ }
272
+ }]
273
+ // ----- jsonc/indent -----
274
+ type JsoncIndent = []|[("tab" | number)]|[("tab" | number), {
275
+ SwitchCase?: number
276
+ VariableDeclarator?: ((number | ("first" | "off")) | {
277
+ var?: (number | ("first" | "off"))
278
+ let?: (number | ("first" | "off"))
279
+ const?: (number | ("first" | "off"))
280
+ })
281
+ outerIIFEBody?: (number | "off")
282
+ MemberExpression?: (number | "off")
283
+ FunctionDeclaration?: {
284
+ parameters?: (number | ("first" | "off"))
285
+ body?: number
286
+ }
287
+ FunctionExpression?: {
288
+ parameters?: (number | ("first" | "off"))
289
+ body?: number
290
+ }
291
+ StaticBlock?: {
292
+ body?: number
293
+ }
294
+ CallExpression?: {
295
+ arguments?: (number | ("first" | "off"))
296
+ }
297
+ ArrayExpression?: (number | ("first" | "off"))
298
+ ObjectExpression?: (number | ("first" | "off"))
299
+ ImportDeclaration?: (number | ("first" | "off"))
300
+ flatTernaryExpressions?: boolean
301
+ offsetTernaryExpressions?: boolean
302
+ ignoredNodes?: string[]
303
+ ignoreComments?: boolean
304
+ }]
305
+ // ----- jsonc/key-name-casing -----
306
+ type JsoncKeyNameCasing = []|[{
307
+ camelCase?: boolean
308
+ PascalCase?: boolean
309
+ SCREAMING_SNAKE_CASE?: boolean
310
+ "kebab-case"?: boolean
311
+ snake_case?: boolean
312
+ ignores?: string[]
313
+ }]
314
+ // ----- jsonc/key-spacing -----
315
+ type JsoncKeySpacing = []|[({
316
+ align?: (("colon" | "value") | {
317
+ mode?: ("strict" | "minimum")
318
+ on?: ("colon" | "value")
319
+ beforeColon?: boolean
320
+ afterColon?: boolean
321
+ })
322
+ mode?: ("strict" | "minimum")
323
+ beforeColon?: boolean
324
+ afterColon?: boolean
325
+ } | {
326
+ singleLine?: {
327
+ mode?: ("strict" | "minimum")
328
+ beforeColon?: boolean
329
+ afterColon?: boolean
330
+ }
331
+ multiLine?: {
332
+ align?: (("colon" | "value") | {
333
+ mode?: ("strict" | "minimum")
334
+ on?: ("colon" | "value")
335
+ beforeColon?: boolean
336
+ afterColon?: boolean
337
+ })
338
+ mode?: ("strict" | "minimum")
339
+ beforeColon?: boolean
340
+ afterColon?: boolean
341
+ }
342
+ } | {
343
+ singleLine?: {
344
+ mode?: ("strict" | "minimum")
345
+ beforeColon?: boolean
346
+ afterColon?: boolean
347
+ }
348
+ multiLine?: {
349
+ mode?: ("strict" | "minimum")
350
+ beforeColon?: boolean
351
+ afterColon?: boolean
352
+ }
353
+ align?: {
354
+ mode?: ("strict" | "minimum")
355
+ on?: ("colon" | "value")
356
+ beforeColon?: boolean
357
+ afterColon?: boolean
358
+ }
359
+ })]
360
+ // ----- jsonc/no-irregular-whitespace -----
361
+ type JsoncNoIrregularWhitespace = []|[{
362
+ skipComments?: boolean
363
+ skipStrings?: boolean
364
+ skipTemplates?: boolean
365
+ skipRegExps?: boolean
366
+ skipJSXText?: boolean
367
+ }]
368
+ // ----- jsonc/no-useless-escape -----
369
+ type JsoncNoUselessEscape = []|[{
370
+ allowRegexCharacters?: string[]
371
+ }]
372
+ // ----- jsonc/object-curly-newline -----
373
+ type JsoncObjectCurlyNewline = []|[((("always" | "never") | {
374
+ multiline?: boolean
375
+ minProperties?: number
376
+ consistent?: boolean
377
+ }) | {
378
+ ObjectExpression?: (("always" | "never") | {
379
+ multiline?: boolean
380
+ minProperties?: number
381
+ consistent?: boolean
382
+ })
383
+ ObjectPattern?: (("always" | "never") | {
384
+ multiline?: boolean
385
+ minProperties?: number
386
+ consistent?: boolean
387
+ })
388
+ ImportDeclaration?: (("always" | "never") | {
389
+ multiline?: boolean
390
+ minProperties?: number
391
+ consistent?: boolean
392
+ })
393
+ ExportDeclaration?: (("always" | "never") | {
394
+ multiline?: boolean
395
+ minProperties?: number
396
+ consistent?: boolean
397
+ })
398
+ })]
399
+ // ----- jsonc/object-curly-spacing -----
400
+ type JsoncObjectCurlySpacing = []|[("always" | "never")]|[("always" | "never"), {
401
+ arraysInObjects?: boolean
402
+ objectsInObjects?: boolean
403
+ }]
404
+ // ----- jsonc/object-property-newline -----
405
+ type JsoncObjectPropertyNewline = []|[{
406
+ allowAllPropertiesOnSameLine?: boolean
407
+ allowMultiplePropertiesPerLine?: boolean
408
+ }]
409
+ // ----- jsonc/quote-props -----
410
+ type JsoncQuoteProps = ([]|[("always" | "as-needed" | "consistent" | "consistent-as-needed")] | []|[("always" | "as-needed" | "consistent" | "consistent-as-needed")]|[("always" | "as-needed" | "consistent" | "consistent-as-needed"), {
411
+ keywords?: boolean
412
+ unnecessary?: boolean
413
+ numbers?: boolean
414
+ }])
415
+ // ----- jsonc/quotes -----
416
+ type JsoncQuotes = []|[("single" | "double" | "backtick")]|[("single" | "double" | "backtick"), ("avoid-escape" | {
417
+ avoidEscape?: boolean
418
+ allowTemplateLiterals?: boolean
419
+ })]
420
+ // ----- jsonc/sort-array-values -----
421
+ type JsoncSortArrayValues = [{
422
+ pathPattern: string
423
+ order: ((string | {
424
+ valuePattern?: string
425
+ order?: {
426
+ type?: ("asc" | "desc")
427
+ caseSensitive?: boolean
428
+ natural?: boolean
429
+ }
430
+ })[] | {
431
+ type?: ("asc" | "desc")
432
+ caseSensitive?: boolean
433
+ natural?: boolean
434
+ })
435
+ minValues?: number
436
+ }, ...({
437
+ pathPattern: string
438
+ order: ((string | {
439
+ valuePattern?: string
440
+ order?: {
441
+ type?: ("asc" | "desc")
442
+ caseSensitive?: boolean
443
+ natural?: boolean
444
+ }
445
+ })[] | {
446
+ type?: ("asc" | "desc")
447
+ caseSensitive?: boolean
448
+ natural?: boolean
449
+ })
450
+ minValues?: number
451
+ })[]]
452
+ // ----- jsonc/sort-keys -----
453
+ type JsoncSortKeys = ([{
454
+ pathPattern: string
455
+ hasProperties?: string[]
456
+ order: ((string | {
457
+ keyPattern?: string
458
+ order?: {
459
+ type?: ("asc" | "desc")
460
+ caseSensitive?: boolean
461
+ natural?: boolean
462
+ }
463
+ })[] | {
464
+ type?: ("asc" | "desc")
465
+ caseSensitive?: boolean
466
+ natural?: boolean
467
+ })
468
+ minKeys?: number
469
+ allowLineSeparatedGroups?: boolean
470
+ }, ...({
471
+ pathPattern: string
472
+ hasProperties?: string[]
473
+ order: ((string | {
474
+ keyPattern?: string
475
+ order?: {
476
+ type?: ("asc" | "desc")
477
+ caseSensitive?: boolean
478
+ natural?: boolean
479
+ }
480
+ })[] | {
481
+ type?: ("asc" | "desc")
482
+ caseSensitive?: boolean
483
+ natural?: boolean
484
+ })
485
+ minKeys?: number
486
+ allowLineSeparatedGroups?: boolean
487
+ })[]] | []|[("asc" | "desc")]|[("asc" | "desc"), {
488
+ caseSensitive?: boolean
489
+ natural?: boolean
490
+ minKeys?: number
491
+ allowLineSeparatedGroups?: boolean
492
+ }])
493
+ // ----- jsonc/space-unary-ops -----
494
+ type JsoncSpaceUnaryOps = []|[{
495
+ words?: boolean
496
+ nonwords?: boolean
497
+ overrides?: {
498
+ [k: string]: boolean | undefined
499
+ }
500
+ }]