@ncontiero/eslint-config 6.3.0-beta.9 → 6.3.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.
package/README.md CHANGED
@@ -12,7 +12,7 @@ Nicolas's ESLint config preset for JavaScript, TypeScript, and Prettier.
12
12
  - Sort imports, `package.json`, `tsconfig.json`...
13
13
  - Reasonable defaults, best practices, only one line of config.
14
14
  - Designed to work with TypeScript out-of-box.
15
- - Support JSON(5), YAML, TOML, Markdown...
15
+ - Support JSON(5), YAML, TOML, Markdown, HTML with [HTML Eslint](https://html-eslint.org/)...
16
16
  - [ESLint Flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new), compose easily!
17
17
  - Ignores common files like `dist`, `node_modules`, `coverage`, and files in `.gitignore`.
18
18
  - Optional [React](https://react.dev/), [NextJs](https://nextjs.org/), [TailwindCSS](https://tailwindcss.com/), [TanStack Query](https://tanstack.com/query/) support.
@@ -42,7 +42,7 @@ export default ncontiero(
42
42
  react: true, // auto detection
43
43
  nextjs: false, // auto detection
44
44
  tailwindcss: false, // auto detection
45
- reactQuery: false, // auto detection
45
+ reactQuery: false, // auto detection
46
46
  },
47
47
  {
48
48
  /* your custom config */
@@ -189,6 +189,7 @@ export default ncontiero({
189
189
  ### Optional Configs
190
190
 
191
191
  We provide some optional configs for specific use cases, that we don't include their dependencies by default.
192
+
192
193
  > React, Next.js and Tailwind CSS have their dependencies by default.
193
194
 
194
195
  #### TanStack Query
package/dist/index.d.ts CHANGED
@@ -466,7 +466,7 @@ interface RuleOptions {
466
466
  * Disallow member access on a value with type `any`
467
467
  * @see https://typescript-eslint.io/rules/no-unsafe-member-access
468
468
  */
469
- '@typescript-eslint/no-unsafe-member-access'?: Linter.RuleEntry<[]>
469
+ '@typescript-eslint/no-unsafe-member-access'?: Linter.RuleEntry<TypescriptEslintNoUnsafeMemberAccess>
470
470
  /**
471
471
  * Disallow returning a value with type `any` from a function
472
472
  * @see https://typescript-eslint.io/rules/no-unsafe-return
@@ -1061,6 +1061,279 @@ interface RuleOptions {
1061
1061
  * @deprecated
1062
1062
  */
1063
1063
  'handle-callback-err'?: Linter.RuleEntry<HandleCallbackErr>
1064
+ /**
1065
+ * Enforce newline between attributes
1066
+ * @see https://html-eslint.org/docs/rules/attrs-newline
1067
+ */
1068
+ 'html/attrs-newline'?: Linter.RuleEntry<HtmlAttrsNewline>
1069
+ /**
1070
+ * Enforce newline between elements.
1071
+ * @see https://html-eslint.org/docs/rules/element-newline
1072
+ */
1073
+ 'html/element-newline'?: Linter.RuleEntry<HtmlElementNewline>
1074
+ /**
1075
+ * Enforce consistent naming of id attributes
1076
+ * @see https://html-eslint.org/docs/rules/id-naming-convention
1077
+ */
1078
+ 'html/id-naming-convention'?: Linter.RuleEntry<HtmlIdNamingConvention>
1079
+ /**
1080
+ * Enforce consistent indentation
1081
+ */
1082
+ 'html/indent'?: Linter.RuleEntry<HtmlIndent>
1083
+ /**
1084
+ * Enforce use of lowercase for tag and attribute names.
1085
+ * @see https://html-eslint.org/docs/rules/lowercase
1086
+ */
1087
+ 'html/lowercase'?: Linter.RuleEntry<[]>
1088
+ /**
1089
+ * Enforce maximum element depth
1090
+ * @see https://html-eslint.org/docs/rules/max-element-depth
1091
+ */
1092
+ 'html/max-element-depth'?: Linter.RuleEntry<HtmlMaxElementDepth>
1093
+ /**
1094
+ * Disallow use of abstract roles
1095
+ * @see https://html-eslint.org/docs/rules/no-abstract-roles
1096
+ */
1097
+ 'html/no-abstract-roles'?: Linter.RuleEntry<[]>
1098
+ /**
1099
+ * Disallow use of accesskey attribute
1100
+ * @see https://html-eslint.org/docs/rules/no-accesskey-attrs
1101
+ */
1102
+ 'html/no-accesskey-attrs'?: Linter.RuleEntry<[]>
1103
+ /**
1104
+ * Disallow use of aria-hidden attributes on the `body` element.
1105
+ * @see https://html-eslint.org/docs/rules/no-aria-hidden-body
1106
+ */
1107
+ 'html/no-aria-hidden-body'?: Linter.RuleEntry<[]>
1108
+ /**
1109
+ * Disallow aria-hidden="true" on focusable elements
1110
+ * @see https://html-eslint.org/docs/rules/no-aria-hidden-on-focusable
1111
+ */
1112
+ 'html/no-aria-hidden-on-focusable'?: Linter.RuleEntry<[]>
1113
+ /**
1114
+ * Disallow duplicate attributes
1115
+ * @see https://html-eslint.org/docs/rules/no-duplicate-attrs
1116
+ */
1117
+ 'html/no-duplicate-attrs'?: Linter.RuleEntry<[]>
1118
+ /**
1119
+ * Disallow duplicate class names
1120
+ * @see https://html-eslint.org/docs/rules/no-duplicate-class
1121
+ */
1122
+ 'html/no-duplicate-class'?: Linter.RuleEntry<[]>
1123
+ /**
1124
+ * Disallow duplicate id attributes
1125
+ * @see https://html-eslint.org/docs/rules/no-duplicate-id
1126
+ */
1127
+ 'html/no-duplicate-id'?: Linter.RuleEntry<[]>
1128
+ /**
1129
+ * Disallow duplicate tags in `<head>`
1130
+ * @see https://html-eslint.org/docs/rules/no-duplicate-in-head
1131
+ */
1132
+ 'html/no-duplicate-in-head'?: Linter.RuleEntry<[]>
1133
+ /**
1134
+ * Disallow empty or inaccessible headings.
1135
+ * @see https://html-eslint.org/docs/rules/no-empty-headings
1136
+ */
1137
+ 'html/no-empty-headings'?: Linter.RuleEntry<[]>
1138
+ /**
1139
+ * Disallow extra spacing around attributes
1140
+ * @see https://html-eslint.org/docs/rules/no-extra-spacing-attrs
1141
+ */
1142
+ 'html/no-extra-spacing-attrs'?: Linter.RuleEntry<HtmlNoExtraSpacingAttrs>
1143
+ /**
1144
+ * Disallow unnecessary consecutive spaces
1145
+ * @see https://html-eslint.org/docs/rules/no-extra-spacing-text
1146
+ */
1147
+ 'html/no-extra-spacing-text'?: Linter.RuleEntry<HtmlNoExtraSpacingText>
1148
+ /**
1149
+ * Disallows the use of heading elements inside <button>.
1150
+ * @see https://html-eslint.org/docs/rules/no-heading-inside-button
1151
+ */
1152
+ 'html/no-heading-inside-button'?: Linter.RuleEntry<[]>
1153
+ /**
1154
+ * Disallow HTML attributes that have no effect in their context
1155
+ */
1156
+ 'html/no-ineffective-attrs'?: Linter.RuleEntry<[]>
1157
+ /**
1158
+ * Disallow using inline style
1159
+ * @see https://html-eslint.org/docs/rules/no-inline-styles
1160
+ */
1161
+ 'html/no-inline-styles'?: Linter.RuleEntry<[]>
1162
+ /**
1163
+ * Disallows the use of invalid HTML entities
1164
+ * @see https://html-eslint.org/docs/rules/no-invalid-entity
1165
+ */
1166
+ 'html/no-invalid-entity'?: Linter.RuleEntry<[]>
1167
+ /**
1168
+ * Disallows use of invalid role.
1169
+ * @see https://html-eslint.org/docs/rules/no-invalid-role
1170
+ */
1171
+ 'html/no-invalid-role'?: Linter.RuleEntry<[]>
1172
+ /**
1173
+ * Disallow multiple empty lines
1174
+ * @see https://html-eslint.org/docs/rules/no-multiple-empty-lines
1175
+ */
1176
+ 'html/no-multiple-empty-lines'?: Linter.RuleEntry<HtmlNoMultipleEmptyLines>
1177
+ /**
1178
+ * Disallow multiple `<h1></h1>`.
1179
+ * @see https://html-eslint.org/docs/rules/no-multiple-h1
1180
+ */
1181
+ 'html/no-multiple-h1'?: Linter.RuleEntry<[]>
1182
+ /**
1183
+ * Disallows nested interactive elements
1184
+ * @see https://html-eslint.org/docs/rules/no-nested-interactive
1185
+ */
1186
+ 'html/no-nested-interactive'?: Linter.RuleEntry<[]>
1187
+ /**
1188
+ * Disallow use of `user-scalable=no` in `<meta name="viewport">`.
1189
+ * @see https://html-eslint.org/docs/rules/no-non-scalable-viewport
1190
+ */
1191
+ 'html/no-non-scalable-viewport'?: Linter.RuleEntry<[]>
1192
+ /**
1193
+ * Disallow use of obsolete elements in HTML5
1194
+ * @see https://html-eslint.org/docs/rules/no-obsolete-tags
1195
+ */
1196
+ 'html/no-obsolete-tags'?: Linter.RuleEntry<[]>
1197
+ /**
1198
+ * Disallow use of positive `tabindex`.
1199
+ * @see https://html-eslint.org/docs/rules/no-positive-tabindex
1200
+ */
1201
+ 'html/no-positive-tabindex'?: Linter.RuleEntry<[]>
1202
+ /**
1203
+ * Disallow specified attributes
1204
+ * @see https://html-eslint.org/docs/rules/no-restricted-attr-values
1205
+ */
1206
+ 'html/no-restricted-attr-values'?: Linter.RuleEntry<HtmlNoRestrictedAttrValues>
1207
+ /**
1208
+ * Disallow specified attributes
1209
+ * @see https://html-eslint.org/docs/rules/no-restricted-attrs
1210
+ */
1211
+ 'html/no-restricted-attrs'?: Linter.RuleEntry<HtmlNoRestrictedAttrs>
1212
+ /**
1213
+ * Disallow specified tags
1214
+ * @see https://html-eslint.org/docs/rules/no-restricted-tags
1215
+ */
1216
+ 'html/no-restricted-tags'?: Linter.RuleEntry<HtmlNoRestrictedTags>
1217
+ /**
1218
+ * Enforce to omit type attributes for style sheets and scripts
1219
+ * @see https://html-eslint.org/docs/rules/no-script-style-type
1220
+ */
1221
+ 'html/no-script-style-type'?: Linter.RuleEntry<[]>
1222
+ /**
1223
+ * Disallow skipping heading levels
1224
+ * @see https://html-eslint.org/docs/rules/no-skip-heading-levels
1225
+ */
1226
+ 'html/no-skip-heading-levels'?: Linter.RuleEntry<[]>
1227
+ /**
1228
+ * Disallow usage of unsafe `target='_blank'`
1229
+ * @see https://html-eslint.org/docs/rules/no-target-blank
1230
+ */
1231
+ 'html/no-target-blank'?: Linter.RuleEntry<[]>
1232
+ /**
1233
+ * Disallow trailing whitespace at the end of lines
1234
+ * @see https://html-eslint.org/docs/rules/no-trailing-spaces
1235
+ */
1236
+ 'html/no-trailing-spaces'?: Linter.RuleEntry<[]>
1237
+ /**
1238
+ * Prefer to use HTTPS for embedded resources
1239
+ * @see https://html-eslint.org/docs/rules/prefer-https
1240
+ */
1241
+ 'html/prefer-https'?: Linter.RuleEntry<[]>
1242
+ /**
1243
+ * Enforce consistent quoting attributes with double(") or single(')
1244
+ * @see https://html-eslint.org/docs/rules/quotes
1245
+ */
1246
+ 'html/quotes'?: Linter.RuleEntry<HtmlQuotes>
1247
+ /**
1248
+ * Require specified attributes
1249
+ * @see https://html-eslint.org/docs/rules/require-attrs
1250
+ */
1251
+ 'html/require-attrs'?: Linter.RuleEntry<HtmlRequireAttrs>
1252
+ /**
1253
+ * Require use of the button element with a valid type attribute.
1254
+ * @see https://html-eslint.org/docs/rules/require-button-type
1255
+ */
1256
+ 'html/require-button-type'?: Linter.RuleEntry<[]>
1257
+ /**
1258
+ * Require closing tags.
1259
+ * @see https://html-eslint.org/docs/rules/require-closing-tags
1260
+ */
1261
+ 'html/require-closing-tags'?: Linter.RuleEntry<HtmlRequireClosingTags>
1262
+ /**
1263
+ * Require `<!DOCTYPE HTML>` in HTML
1264
+ * @see https://html-eslint.org/docs/rules/require-doctype
1265
+ */
1266
+ 'html/require-doctype'?: Linter.RuleEntry<[]>
1267
+ /**
1268
+ * Enforces that some elements (img, iframe) have explicitly defined width and height attributes.
1269
+ * @see https://html-eslint.org/docs/rules/require-explicit-size
1270
+ */
1271
+ 'html/require-explicit-size'?: Linter.RuleEntry<HtmlRequireExplicitSize>
1272
+ /**
1273
+ * Require `method` attribute in `<form>`
1274
+ * @see https://html-eslint.org/docs/rules/require-form-method
1275
+ */
1276
+ 'html/require-form-method'?: Linter.RuleEntry<[]>
1277
+ /**
1278
+ * Require `title` in `<frame>`, `<iframe>`
1279
+ * @see https://html-eslint.org/docs/rules/require-frame-title
1280
+ */
1281
+ 'html/require-frame-title'?: Linter.RuleEntry<[]>
1282
+ /**
1283
+ * Require `alt` attribute on `<img>` tag
1284
+ * @see https://html-eslint.org/docs/rules/require-img-alt
1285
+ */
1286
+ 'html/require-img-alt'?: Linter.RuleEntry<HtmlRequireImgAlt>
1287
+ /**
1288
+ * Enforces use of label for form elements(`input`, `textarea`, `select`)
1289
+ * @see https://html-eslint.org/docs/rules/require-input-label
1290
+ */
1291
+ 'html/require-input-label'?: Linter.RuleEntry<[]>
1292
+ /**
1293
+ * Require `lang` attribute on `<html>` tag
1294
+ * @see https://html-eslint.org/docs/rules/require-lang
1295
+ */
1296
+ 'html/require-lang'?: Linter.RuleEntry<[]>
1297
+ /**
1298
+ * Enforce `<li>` to be in `<ul>`, `<ol>` or `<menu>`.
1299
+ * @see https://html-eslint.org/docs/rules/require-li-container
1300
+ */
1301
+ 'html/require-li-container'?: Linter.RuleEntry<[]>
1302
+ /**
1303
+ * Enforce use of `<meta charset="...">` in `<head>`
1304
+ * @see https://html-eslint.org/docs/rules/require-meta-charset
1305
+ */
1306
+ 'html/require-meta-charset'?: Linter.RuleEntry<[]>
1307
+ /**
1308
+ * Require use of `<meta name="description">` in `<head>`
1309
+ * @see https://html-eslint.org/docs/rules/require-meta-description
1310
+ */
1311
+ 'html/require-meta-description'?: Linter.RuleEntry<[]>
1312
+ /**
1313
+ * Enforce use of `<meta name="viewport">` in `<head>`
1314
+ * @see https://html-eslint.org/docs/rules/require-meta-viewport
1315
+ */
1316
+ 'html/require-meta-viewport'?: Linter.RuleEntry<[]>
1317
+ /**
1318
+ * Enforce use of specified meta tags for open graph protocol.
1319
+ * @see https://html-eslint.org/docs/rules/require-open-graph-protocol
1320
+ */
1321
+ 'html/require-open-graph-protocol'?: Linter.RuleEntry<HtmlRequireOpenGraphProtocol>
1322
+ /**
1323
+ * Require `<title>` in the `<head>`
1324
+ * @see https://html-eslint.org/docs/rules/require-title
1325
+ */
1326
+ 'html/require-title'?: Linter.RuleEntry<[]>
1327
+ /**
1328
+ * Enforce priority and alphabetical sorting of attributes
1329
+ * @see https://html-eslint.org/docs/rules/sort-attrs
1330
+ */
1331
+ 'html/sort-attrs'?: Linter.RuleEntry<HtmlSortAttrs>
1332
+ /**
1333
+ * Enforce the use of baseline features.
1334
+ * @see https://html-eslint.org/docs/rules/use-baseline
1335
+ */
1336
+ 'html/use-baseline'?: Linter.RuleEntry<HtmlUseBaseline>
1064
1337
  /**
1065
1338
  * Disallow specified identifiers
1066
1339
  * @see https://eslint.org/docs/latest/rules/id-blacklist
@@ -1681,6 +1954,26 @@ interface RuleOptions {
1681
1954
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/text-escaping.md#repos-sticky-header
1682
1955
  */
1683
1956
  'jsdoc/text-escaping'?: Linter.RuleEntry<JsdocTextEscaping>
1957
+ /**
1958
+ * Prefers either function properties or method signatures
1959
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-method-signature-style.md#repos-sticky-header
1960
+ */
1961
+ 'jsdoc/ts-method-signature-style'?: Linter.RuleEntry<JsdocTsMethodSignatureStyle>
1962
+ /**
1963
+ * Warns against use of the empty object type
1964
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-empty-object-type.md#repos-sticky-header
1965
+ */
1966
+ 'jsdoc/ts-no-empty-object-type'?: Linter.RuleEntry<[]>
1967
+ /**
1968
+ * Catches unnecessary template expressions such as string expressions within a template literal.
1969
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-no-unnecessary-template-expression.md#repos-sticky-header
1970
+ */
1971
+ 'jsdoc/ts-no-unnecessary-template-expression'?: Linter.RuleEntry<JsdocTsNoUnnecessaryTemplateExpression>
1972
+ /**
1973
+ * Prefers function types over call signatures when there are no other properties.
1974
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/ts-prefer-function-type.md#repos-sticky-header
1975
+ */
1976
+ 'jsdoc/ts-prefer-function-type'?: Linter.RuleEntry<JsdocTsPreferFunctionType>
1684
1977
  /**
1685
1978
  * Formats JSDoc type values.
1686
1979
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/type-formatting.md#repos-sticky-header
@@ -3926,6 +4219,10 @@ interface RuleOptions {
3926
4219
  * Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
3927
4220
  */
3928
4221
  'react-hooks/use-memo'?: Linter.RuleEntry<ReactHooksUseMemo>
4222
+ /**
4223
+ * Validates that useMemos always return a value. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
4224
+ */
4225
+ 'react-hooks/void-use-memo'?: Linter.RuleEntry<ReactHooksVoidUseMemo>
3929
4226
  'react-refresh/only-export-components'?: Linter.RuleEntry<ReactRefreshOnlyExportComponents>
3930
4227
  /**
3931
4228
  * Enforces consistent naming for boolean props
@@ -6058,15 +6355,19 @@ type TypescriptEslintArrayType = []|[{
6058
6355
  type TypescriptEslintBanTsComment = []|[{
6059
6356
 
6060
6357
  minimumDescriptionLength?: number
6358
+
6061
6359
  "ts-check"?: (boolean | "allow-with-description" | {
6062
6360
  descriptionFormat?: string
6063
6361
  })
6362
+
6064
6363
  "ts-expect-error"?: (boolean | "allow-with-description" | {
6065
6364
  descriptionFormat?: string
6066
6365
  })
6366
+
6067
6367
  "ts-ignore"?: (boolean | "allow-with-description" | {
6068
6368
  descriptionFormat?: string
6069
6369
  })
6370
+
6070
6371
  "ts-nocheck"?: (boolean | "allow-with-description" | {
6071
6372
  descriptionFormat?: string
6072
6373
  })
@@ -6160,10 +6461,15 @@ type TypescriptEslintExplicitMemberAccessibility = []|[{
6160
6461
  ignoredMethodNames?: string[]
6161
6462
 
6162
6463
  overrides?: {
6464
+
6163
6465
  accessors?: ("explicit" | "no-public" | "off")
6466
+
6164
6467
  constructors?: ("explicit" | "no-public" | "off")
6468
+
6165
6469
  methods?: ("explicit" | "no-public" | "off")
6470
+
6166
6471
  parameterProperties?: ("explicit" | "no-public" | "off")
6472
+
6167
6473
  properties?: ("explicit" | "no-public" | "off")
6168
6474
  }
6169
6475
  }]
@@ -6197,26 +6503,31 @@ type TypescriptEslintMaxParams = []|[{
6197
6503
  }]
6198
6504
  // ----- @typescript-eslint/member-ordering -----
6199
6505
  type TypescriptEslintMemberOrdering = []|[{
6506
+
6200
6507
  classes?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | {
6201
6508
  memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | "never")
6202
6509
  optionalityOrder?: ("optional-first" | "required-first")
6203
6510
  order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
6204
6511
  })
6512
+
6205
6513
  classExpressions?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | {
6206
6514
  memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | "never")
6207
6515
  optionalityOrder?: ("optional-first" | "required-first")
6208
6516
  order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
6209
6517
  })
6518
+
6210
6519
  default?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | {
6211
6520
  memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization") | ("readonly-signature" | "signature" | "readonly-field" | "public-readonly-field" | "public-decorated-readonly-field" | "decorated-readonly-field" | "static-readonly-field" | "public-static-readonly-field" | "instance-readonly-field" | "public-instance-readonly-field" | "abstract-readonly-field" | "public-abstract-readonly-field" | "protected-readonly-field" | "protected-decorated-readonly-field" | "protected-static-readonly-field" | "protected-instance-readonly-field" | "protected-abstract-readonly-field" | "private-readonly-field" | "private-decorated-readonly-field" | "private-static-readonly-field" | "private-instance-readonly-field" | "#private-readonly-field" | "#private-static-readonly-field" | "#private-instance-readonly-field" | "field" | "public-field" | "public-decorated-field" | "decorated-field" | "static-field" | "public-static-field" | "instance-field" | "public-instance-field" | "abstract-field" | "public-abstract-field" | "protected-field" | "protected-decorated-field" | "protected-static-field" | "protected-instance-field" | "protected-abstract-field" | "private-field" | "private-decorated-field" | "private-static-field" | "private-instance-field" | "#private-field" | "#private-static-field" | "#private-instance-field" | "method" | "public-method" | "public-decorated-method" | "decorated-method" | "static-method" | "public-static-method" | "instance-method" | "public-instance-method" | "abstract-method" | "public-abstract-method" | "protected-method" | "protected-decorated-method" | "protected-static-method" | "protected-instance-method" | "protected-abstract-method" | "private-method" | "private-decorated-method" | "private-static-method" | "private-instance-method" | "#private-method" | "#private-static-method" | "#private-instance-method" | "call-signature" | "constructor" | "public-constructor" | "protected-constructor" | "private-constructor" | "accessor" | "public-accessor" | "public-decorated-accessor" | "decorated-accessor" | "static-accessor" | "public-static-accessor" | "instance-accessor" | "public-instance-accessor" | "abstract-accessor" | "public-abstract-accessor" | "protected-accessor" | "protected-decorated-accessor" | "protected-static-accessor" | "protected-instance-accessor" | "protected-abstract-accessor" | "private-accessor" | "private-decorated-accessor" | "private-static-accessor" | "private-instance-accessor" | "#private-accessor" | "#private-static-accessor" | "#private-instance-accessor" | "get" | "public-get" | "public-decorated-get" | "decorated-get" | "static-get" | "public-static-get" | "instance-get" | "public-instance-get" | "abstract-get" | "public-abstract-get" | "protected-get" | "protected-decorated-get" | "protected-static-get" | "protected-instance-get" | "protected-abstract-get" | "private-get" | "private-decorated-get" | "private-static-get" | "private-instance-get" | "#private-get" | "#private-static-get" | "#private-instance-get" | "set" | "public-set" | "public-decorated-set" | "decorated-set" | "static-set" | "public-static-set" | "instance-set" | "public-instance-set" | "abstract-set" | "public-abstract-set" | "protected-set" | "protected-decorated-set" | "protected-static-set" | "protected-instance-set" | "protected-abstract-set" | "private-set" | "private-decorated-set" | "private-static-set" | "private-instance-set" | "#private-set" | "#private-static-set" | "#private-instance-set" | "static-initialization" | "static-static-initialization" | "public-static-static-initialization" | "instance-static-initialization" | "public-instance-static-initialization" | "abstract-static-initialization" | "public-abstract-static-initialization" | "protected-static-static-initialization" | "protected-instance-static-initialization" | "protected-abstract-static-initialization" | "private-static-static-initialization" | "private-instance-static-initialization" | "#private-static-static-initialization" | "#private-instance-static-initialization")[])[] | "never")
6212
6521
  optionalityOrder?: ("optional-first" | "required-first")
6213
6522
  order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
6214
6523
  })
6524
+
6215
6525
  interfaces?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | {
6216
6526
  memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | "never")
6217
6527
  optionalityOrder?: ("optional-first" | "required-first")
6218
6528
  order?: ("alphabetically" | "alphabetically-case-insensitive" | "as-written" | "natural" | "natural-case-insensitive")
6219
6529
  })
6530
+
6220
6531
  typeLiterals?: ("never" | (("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | {
6221
6532
  memberTypes?: ((("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor") | ("readonly-signature" | "signature" | "readonly-field" | "field" | "method" | "constructor")[])[] | "never")
6222
6533
  optionalityOrder?: ("optional-first" | "required-first")
@@ -6867,6 +7178,11 @@ type TypescriptEslintNoUnnecessaryTypeAssertion = []|[{
6867
7178
 
6868
7179
  typesToIgnore?: string[]
6869
7180
  }]
7181
+ // ----- @typescript-eslint/no-unsafe-member-access -----
7182
+ type TypescriptEslintNoUnsafeMemberAccess = []|[{
7183
+
7184
+ allowOptionalChaining?: boolean
7185
+ }]
6870
7186
  // ----- @typescript-eslint/no-unused-expressions -----
6871
7187
  type TypescriptEslintNoUnusedExpressions = []|[{
6872
7188
  allowShortCircuit?: boolean
@@ -6892,6 +7208,8 @@ type TypescriptEslintNoUnusedVars = []|[(("all" | "local") | {
6892
7208
 
6893
7209
  ignoreRestSiblings?: boolean
6894
7210
 
7211
+ ignoreUsingDeclarations?: boolean
7212
+
6895
7213
  reportUsedIgnorePattern?: boolean
6896
7214
 
6897
7215
  vars?: ("all" | "local")
@@ -7469,6 +7787,101 @@ type GroupedAccessorPairs = []|[("anyOrder" | "getBeforeSet" | "setBeforeGet")]|
7469
7787
  }]
7470
7788
  // ----- handle-callback-err -----
7471
7789
  type HandleCallbackErr = []|[string]
7790
+ // ----- html/attrs-newline -----
7791
+ type HtmlAttrsNewline = []|[{
7792
+ closeStyle?: ("newline" | "sameline")
7793
+ ifAttrsMoreThan?: number
7794
+ }]
7795
+ // ----- html/element-newline -----
7796
+ type HtmlElementNewline = []|[{
7797
+ inline?: string[]
7798
+ skip?: string[]
7799
+ }]
7800
+ // ----- html/id-naming-convention -----
7801
+ type HtmlIdNamingConvention = []|[("camelCase" | "snake_case" | "PascalCase" | "kebab-case" | "regex")]|[("camelCase" | "snake_case" | "PascalCase" | "kebab-case" | "regex"), {
7802
+ pattern?: string
7803
+ flags?: string
7804
+ }]
7805
+ // ----- html/indent -----
7806
+ type HtmlIndent = []|[("tab" | number)]|[("tab" | number), {
7807
+ Attribute?: number
7808
+ tagChildrenIndent?: {
7809
+ [k: string]: number
7810
+ }
7811
+ }]
7812
+ // ----- html/max-element-depth -----
7813
+ type HtmlMaxElementDepth = []|[{
7814
+ max: number
7815
+ }]
7816
+ // ----- html/no-extra-spacing-attrs -----
7817
+ type HtmlNoExtraSpacingAttrs = []|[{
7818
+ disallowInAssignment?: boolean
7819
+ disallowMissing?: boolean
7820
+ disallowTabs?: boolean
7821
+ enforceBeforeSelfClose?: boolean
7822
+ }]
7823
+ // ----- html/no-extra-spacing-text -----
7824
+ type HtmlNoExtraSpacingText = []|[{
7825
+ skip?: string[]
7826
+ }]
7827
+ // ----- html/no-multiple-empty-lines -----
7828
+ type HtmlNoMultipleEmptyLines = []|[{
7829
+ max: number
7830
+ }]
7831
+ // ----- html/no-restricted-attr-values -----
7832
+ type HtmlNoRestrictedAttrValues = {
7833
+ attrPatterns: string[]
7834
+ attrValuePatterns: string[]
7835
+ message?: string
7836
+ }[]
7837
+ // ----- html/no-restricted-attrs -----
7838
+ type HtmlNoRestrictedAttrs = {
7839
+ tagPatterns: string[]
7840
+ attrPatterns: string[]
7841
+ message?: string
7842
+ }[]
7843
+ // ----- html/no-restricted-tags -----
7844
+ type HtmlNoRestrictedTags = {
7845
+ tagPatterns: string[]
7846
+ message?: string
7847
+ }[]
7848
+ // ----- html/quotes -----
7849
+ type HtmlQuotes = []|[("single" | "double")]|[("single" | "double"), {
7850
+ enforceTemplatedAttrValue?: boolean
7851
+ }]
7852
+ // ----- html/require-attrs -----
7853
+ type HtmlRequireAttrs = {
7854
+ tag: string
7855
+ attr: string
7856
+ value?: string
7857
+ message?: string
7858
+ }[]
7859
+ // ----- html/require-closing-tags -----
7860
+ type HtmlRequireClosingTags = []|[{
7861
+ selfClosing?: ("always" | "never")
7862
+ selfClosingCustomPatterns?: string[]
7863
+ }]
7864
+ // ----- html/require-explicit-size -----
7865
+ type HtmlRequireExplicitSize = []|[{
7866
+ allowClass?: string[]
7867
+ allowId?: string[]
7868
+ }]
7869
+ // ----- html/require-img-alt -----
7870
+ type HtmlRequireImgAlt = []|[{
7871
+ substitute?: string[]
7872
+ }]
7873
+ // ----- html/require-open-graph-protocol -----
7874
+ type HtmlRequireOpenGraphProtocol = []|[string[]]
7875
+ // ----- html/sort-attrs -----
7876
+ type HtmlSortAttrs = []|[{
7877
+ priority?: (string | {
7878
+ pattern: string
7879
+ })[]
7880
+ }]
7881
+ // ----- html/use-baseline -----
7882
+ type HtmlUseBaseline = []|[{
7883
+ available?: (("widely" | "newly") | number)
7884
+ }]
7472
7885
  // ----- id-blacklist -----
7473
7886
  type IdBlacklist = string[]
7474
7887
  // ----- id-denylist -----
@@ -8508,15 +8921,56 @@ type JsdocTextEscaping = []|[{
8508
8921
 
8509
8922
  escapeMarkdown?: boolean
8510
8923
  }]
8924
+ // ----- jsdoc/ts-method-signature-style -----
8925
+ type JsdocTsMethodSignatureStyle = []|[("method" | "property")]|[("method" | "property"), {
8926
+
8927
+ enableFixer?: boolean
8928
+ }]
8929
+ // ----- jsdoc/ts-no-unnecessary-template-expression -----
8930
+ type JsdocTsNoUnnecessaryTemplateExpression = []|[{
8931
+
8932
+ enableFixer?: boolean
8933
+ }]
8934
+ // ----- jsdoc/ts-prefer-function-type -----
8935
+ type JsdocTsPreferFunctionType = []|[{
8936
+
8937
+ enableFixer?: boolean
8938
+ }]
8511
8939
  // ----- jsdoc/type-formatting -----
8512
8940
  type JsdocTypeFormatting = []|[{
8513
8941
 
8514
8942
  arrayBrackets?: ("angle" | "square")
8515
8943
 
8944
+ arrowFunctionPostReturnMarkerSpacing?: string
8945
+
8946
+ arrowFunctionPreReturnMarkerSpacing?: string
8947
+
8516
8948
  enableFixer?: boolean
8517
8949
 
8950
+ functionOrClassParameterSpacing?: string
8951
+
8952
+ functionOrClassPostGenericSpacing?: string
8953
+
8954
+ functionOrClassPostReturnMarkerSpacing?: string
8955
+
8956
+ functionOrClassPreReturnMarkerSpacing?: string
8957
+
8958
+ functionOrClassTypeParameterSpacing?: string
8959
+
8960
+ genericAndTupleElementSpacing?: string
8961
+
8518
8962
  genericDot?: boolean
8519
8963
 
8964
+ keyValuePostColonSpacing?: string
8965
+
8966
+ keyValuePostKeySpacing?: string
8967
+
8968
+ keyValuePostOptionalSpacing?: string
8969
+
8970
+ keyValuePostVariadicSpacing?: string
8971
+
8972
+ methodQuotes?: ("double" | "single")
8973
+
8520
8974
  objectFieldIndent?: string
8521
8975
 
8522
8976
  objectFieldQuote?: ("double" | "single" | null)
@@ -8527,6 +8981,12 @@ type JsdocTypeFormatting = []|[{
8527
8981
 
8528
8982
  objectFieldSeparatorTrailingPunctuation?: boolean
8529
8983
 
8984
+ parameterDefaultValueSpacing?: string
8985
+
8986
+ postMethodNameSpacing?: string
8987
+
8988
+ postNewSpacing?: string
8989
+
8530
8990
  separatorForSingleObjectField?: boolean
8531
8991
 
8532
8992
  stringQuotes?: ("double" | "single")
@@ -13487,6 +13947,10 @@ type ReactHooksUnsupportedSyntax = []|[{
13487
13947
  type ReactHooksUseMemo = []|[{
13488
13948
  [k: string]: unknown | undefined
13489
13949
  }]
13950
+ // ----- react-hooks/void-use-memo -----
13951
+ type ReactHooksVoidUseMemo = []|[{
13952
+ [k: string]: unknown | undefined
13953
+ }]
13490
13954
  // ----- react-refresh/only-export-components -----
13491
13955
  type ReactRefreshOnlyExportComponents = []|[{
13492
13956
  allowExportNames?: string[]
@@ -15464,6 +15928,8 @@ type UnusedImportsNoUnusedImports = []|[(("all" | "local") | {
15464
15928
 
15465
15929
  ignoreRestSiblings?: boolean
15466
15930
 
15931
+ ignoreUsingDeclarations?: boolean
15932
+
15467
15933
  reportUsedIgnorePattern?: boolean
15468
15934
 
15469
15935
  vars?: ("all" | "local")
@@ -15487,6 +15953,8 @@ type UnusedImportsNoUnusedVars = []|[(("all" | "local") | {
15487
15953
 
15488
15954
  ignoreRestSiblings?: boolean
15489
15955
 
15956
+ ignoreUsingDeclarations?: boolean
15957
+
15490
15958
  reportUsedIgnorePattern?: boolean
15491
15959
 
15492
15960
  vars?: ("all" | "local")
@@ -15764,9 +16232,6 @@ interface OptionsHasTanStackReactQuery {
15764
16232
  reactQuery?: boolean;
15765
16233
  }
15766
16234
  type OptionsTypescript = OptionsTypeScriptParserOptions & OptionsOverrides;
15767
- interface OptionsIsInEditor {
15768
- isInEditor?: boolean;
15769
- }
15770
16235
  interface StyleConfig {
15771
16236
  indent?: number;
15772
16237
  semi?: boolean;
@@ -15783,6 +16248,16 @@ interface OptionsUnicorn extends OptionsOverrides {
15783
16248
  */
15784
16249
  allRecommended?: boolean;
15785
16250
  }
16251
+ interface HTMLOptions extends OptionsOverrides {
16252
+ /**
16253
+ * Custom template engine syntax to be recognized by the HTML parser.
16254
+ * This allows the parser to correctly handle template delimiters like `{{...}}` or `{%...%}`.
16255
+ *
16256
+ * @see https://html-eslint.org/docs/integrating-template-engine
16257
+ * @default { "{{": "}}", "{%": "%}" }
16258
+ */
16259
+ templateEngineSyntax?: Record<string, string>;
16260
+ }
15786
16261
  interface OptionsTailwindCSS extends OptionsOverrides {
15787
16262
  /**
15788
16263
  * Path to the Tailwind CSS config file.
@@ -15854,6 +16329,13 @@ interface OptionsConfig {
15854
16329
  * @default true
15855
16330
  */
15856
16331
  regexp?: boolean | OptionsOverrides;
16332
+ /**
16333
+ * Enable HTML linting.
16334
+ *
16335
+ * @see https://html-eslint.org/
16336
+ * @default true
16337
+ */
16338
+ html?: boolean | HTMLOptions;
15857
16339
  /**
15858
16340
  * Enable Prettier support.
15859
16341
  *
@@ -15886,11 +16368,6 @@ interface OptionsConfig {
15886
16368
  * @default auto-detect based on the dependencies
15887
16369
  */
15888
16370
  reactQuery?: boolean;
15889
- /**
15890
- * Control to disable some rules in editors.
15891
- * @default auto-detect based on the process.env
15892
- */
15893
- isInEditor?: boolean;
15894
16371
  }
15895
16372
 
15896
16373
  declare function command(): FlatConfigItem[];
@@ -15899,6 +16376,8 @@ declare function comments(): FlatConfigItem[];
15899
16376
 
15900
16377
  declare function deMorgan(): FlatConfigItem[];
15901
16378
 
16379
+ declare function html(options: HTMLOptions): Promise<FlatConfigItem[]>;
16380
+
15902
16381
  declare function ignores(userIgnores?: string[]): FlatConfigItem[];
15903
16382
 
15904
16383
  declare function imports(options?: OptionsHasNextJs): FlatConfigItem[];
@@ -15934,7 +16413,7 @@ declare function regexp(options?: OptionsOverrides): FlatConfigItem[];
15934
16413
  declare function sortPackageJson(): FlatConfigItem[];
15935
16414
  declare function sortTsconfig(): FlatConfigItem[];
15936
16415
 
15937
- declare function tailwindcss(options?: OptionsIsInEditor & OptionsTailwindCSS): Promise<FlatConfigItem[]>;
16416
+ declare function tailwindcss(options?: OptionsTailwindCSS): Promise<FlatConfigItem[]>;
15938
16417
 
15939
16418
  declare function toml(options?: OptionsOverrides & OptionsFiles & StyleOptions): Promise<FlatConfigItem[]>;
15940
16419
 
@@ -15945,7 +16424,6 @@ declare function unicorn(options?: OptionsHasRegexp & OptionsUnicorn): FlatConfi
15945
16424
 
15946
16425
  declare function yml(options?: OptionsOverrides & OptionsFiles & StyleOptions): Promise<FlatConfigItem[]>;
15947
16426
 
15948
- declare const isInEditorEnv: boolean;
15949
16427
  declare const hasTypeScript: boolean;
15950
16428
  declare const hasReact: boolean;
15951
16429
  declare const hasNextJs: boolean;
@@ -16027,4 +16505,4 @@ declare function ensurePackages(packages: (string | undefined)[]): void;
16027
16505
  declare function composer(...items: Awaitable<FlatConfigItem[]>[]): Promise<FlatConfigItem[]>;
16028
16506
  declare function toArray<T>(value: T | T[]): T[];
16029
16507
 
16030
- export { type Awaitable, type FlatConfigItem, GLOB_ALL_SRC, GLOB_CSS, GLOB_DIST, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LOCKFILE, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_NODE_MODULES, GLOB_POSTCSS, GLOB_REACT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_YAML, type OptionsConfig, type OptionsFiles, type OptionsHasNextJs, type OptionsHasRegexp, type OptionsHasTanStackReactQuery, type OptionsHasTypeScript, type OptionsIsInEditor, type OptionsOverrides, type OptionsTailwindCSS, type OptionsTypeScriptParserOptions, type OptionsTypescript, type OptionsUnicorn, type ResolvedOptions, type Rules, type StyleConfig, type StyleOptions, combine, command, comments, composer, deMorgan, ensurePackages, getOverrides, hasNextJs, hasReact, hasTailwind, hasTanStackReactQuery, hasTypeScript, ignores, imports, interopDefault, isInEditorEnv, javascript, jsdoc, jsonc, markdown, ncontiero, nextJs, node, parserPlain, perfectionist, prettier, promise, react, regexp, resolveSubOptions, restrictedSyntaxJs, sortPackageJson, sortTsconfig, tailwindcss, toArray, toml, typescript, unicorn, yml };
16508
+ export { type Awaitable, type FlatConfigItem, GLOB_ALL_SRC, GLOB_CSS, GLOB_DIST, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_LOCKFILE, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_MARKDOWN_IN_MARKDOWN, GLOB_NODE_MODULES, GLOB_POSTCSS, GLOB_REACT, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TOML, GLOB_TS, GLOB_TSX, GLOB_YAML, type HTMLOptions, type OptionsConfig, type OptionsFiles, type OptionsHasNextJs, type OptionsHasRegexp, type OptionsHasTanStackReactQuery, type OptionsHasTypeScript, type OptionsOverrides, type OptionsTailwindCSS, type OptionsTypeScriptParserOptions, type OptionsTypescript, type OptionsUnicorn, type ResolvedOptions, type Rules, type StyleConfig, type StyleOptions, combine, command, comments, composer, deMorgan, ensurePackages, getOverrides, hasNextJs, hasReact, hasTailwind, hasTanStackReactQuery, hasTypeScript, html, ignores, imports, interopDefault, javascript, jsdoc, jsonc, markdown, ncontiero, nextJs, node, parserPlain, perfectionist, prettier, promise, react, regexp, resolveSubOptions, restrictedSyntaxJs, sortPackageJson, sortTsconfig, tailwindcss, toArray, toml, typescript, unicorn, yml };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import Pe from"eslint-plugin-command/config";function E(){return[{...Pe(),name:"ncontiero/command/rules"}]}import{default as A}from"@eslint-community/eslint-plugin-eslint-comments";import{default as v}from"eslint-plugin-antfu";import{default as N}from"eslint-plugin-de-morgan";import{default as M}from"eslint-plugin-import-x";import{default as q}from"eslint-plugin-n";import{default as J}from"eslint-plugin-perfectionist";import{default as P}from"eslint-plugin-unicorn";import{default as U}from"eslint-plugin-unused-imports";function K(){return[{name:"ncontiero/comments/rules",plugins:{"eslint-comments":A},rules:{"eslint-comments/disable-enable-pair":["error",{allowWholeFile:!0}],"eslint-comments/no-aggregating-enable":"error","eslint-comments/no-duplicate-disable":"error","eslint-comments/no-unlimited-disable":"error","eslint-comments/no-unused-enable":"error"}}]}function $(){return[{...N.configs.recommended,name:"ncontiero/de-morgan"}]}var x="?([cm])[jt]s?(x)",c="**/*.?([cm])[jt]s?(x)",H="**/*.?([cm])js",tr="**/*.?([cm])jsx",w="**/*.?([cm])ts",O="**/*.?([cm])tsx",j="**/*.?([cm])?(j|t)sx",Fe="**/*.{c,le,sc}ss",nr="**/*.css",sr="**/*.{p,post}css",ir="**/*.less",ar="**/*.scss",F="**/*.json",T="**/*.json5",W="**/*.jsonc",d="**/*.md",Q="**/*.md/*.md",L="**/*.y?(a)ml",V="**/*.toml",R="**/*.htm?(l)",X=`${d}/${c}`,pr=[c,Fe,F,T,d,L,R],Te="**/node_modules",Le="**/dist",Re=["**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb"],Y=[Te,Le,...Re,"**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/fixtures","**/.git","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.contentlayer","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/next-env.d.ts","**/.nitro","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts"];function z(e=[]){return[{ignores:[...Y,...e],name:"ncontiero/global-ignores"}]}function Z(e={}){let{nextJs:r=!1}=e;return[{name:"ncontiero/imports/rules",plugins:{antfu:v,import:M},rules:{"antfu/import-dedupe":"error","import/first":"error","import/newline-after-import":["error",{count:1}],"import/no-default-export":"error","import/no-duplicates":"error","import/no-mutable-exports":"error","import/no-named-default":"error","import/no-self-import":"error","import/no-webpack-loader-syntax":"error"}},{files:[`**/*config*.${x}`,`**/{views,pages,routes,middleware,plugins,api,app}/${c}`,r?"{,src/}middleware.{ts,js}":"","**/{index,vite,esbuild,rollup,rolldown,webpack,rspack}.ts","**/*.d.ts",`${d}/**`,"**/.prettierrc*"],name:"ncontiero/imports/allow-default-export",rules:{"import/no-default-export":"off"}}]}import D from"globals";var k=["ForInStatement","LabeledStatement","WithStatement"];function ee(e={}){let{overrides:r={}}=e;return[{languageOptions:{ecmaVersion:"latest",globals:{...D.browser,...D.es2026,...D.node,document:"readonly",navigator:"readonly",window:"readonly"},parserOptions:{ecmaFeatures:{jsx:!0},ecmaVersion:"latest",sourceType:"module"},sourceType:"module"},linterOptions:{reportUnusedDisableDirectives:!0},name:"ncontiero/javascript/rules",plugins:{antfu:v,"unused-imports":U},rules:{"array-callback-return":"error","block-scoped-var":"error","constructor-super":"error","dot-notation":"warn",eqeqeq:["error","smart"],"for-direction":"error","getter-return":"error","no-alert":"warn","no-async-promise-executor":"error","no-case-declarations":"error","no-class-assign":"error","no-compare-neg-zero":"error","no-cond-assign":"error","no-console":["warn",{allow:["warn","error"]}],"no-const-assign":"error","no-constant-condition":"error","no-control-regex":"error","no-debugger":"warn","no-delete-var":"error","no-dupe-args":"error","no-dupe-class-members":"error","no-dupe-else-if":"error","no-dupe-keys":"error","no-duplicate-case":"error","no-duplicate-imports":"error","no-empty":["error",{allowEmptyCatch:!0}],"no-empty-character-class":"error","no-empty-pattern":"error","no-ex-assign":"error","no-extra-boolean-cast":"error","no-fallthrough":["warn",{commentPattern:"break[\\s\\w]*omitted"}],"no-func-assign":"error","no-global-assign":"error","no-import-assign":"error","no-inner-declarations":"error","no-invalid-regexp":"error","no-irregular-whitespace":"error","no-lonely-if":"error","no-loss-of-precision":"error","no-misleading-character-class":"error","no-multi-str":"error","no-new-native-nonconstructor":"error","no-nonoctal-decimal-escape":"error","no-obj-calls":"error","no-octal":"error","no-prototype-builtins":"error","no-redeclare":"error","no-regex-spaces":"error","no-restricted-syntax":["error",...k],"no-self-assign":"error","no-setter-return":"error","no-shadow-restricted-names":"error","no-sparse-arrays":"error","no-this-before-super":"error","no-undef":"error","no-unexpected-multiline":"error","no-unreachable":"error","no-unsafe-finally":"error","no-unsafe-negation":"error","no-unsafe-optional-chaining":"error","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-unused-labels":"error","no-unused-vars":"off","no-useless-backreference":"error","no-useless-catch":"error","no-useless-computed-key":"error","no-useless-constructor":"error","no-useless-escape":"error","no-useless-rename":"error","no-var":"error","no-void":"error","no-with":"error","object-shorthand":["error","always",{avoidQuotes:!0,ignoreConstructors:!1}],"prefer-arrow-callback":["error",{allowNamedFunctions:!1,allowUnboundThis:!0}],"prefer-const":["warn",{destructuring:"all",ignoreReadBeforeAssign:!0}],"prefer-exponentiation-operator":"error","prefer-regex-literals":["error",{disallowRedundantWrapping:!0}],"prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error","require-await":"error","require-yield":"error","unicode-bom":["error","never"],"unused-imports/no-unused-imports":"warn","unused-imports/no-unused-vars":["error",{args:"after-used",ignoreRestSiblings:!0}],"use-isnan":["error",{enforceForIndexOf:!0,enforceForSwitchCase:!0}],"valid-typeof":["error",{requireStringLiterals:!0}],"vars-on-top":"error",...r}},{files:[`**/{scripts,cli}/${c}`,`**/cli.${x}`],name:"ncontiero/javascript/cli-rules",rules:{"no-console":"off"}},{files:[`**/*.{test,spec}.${x}`],name:"ncontiero/javascript/test-rules",rules:{"no-unused-expressions":"off","unicorn/consistent-function-scoping":"off"}}]}import{isPackageExists as re}from"local-pkg";var De=re("@ncontiero/eslint-config"),oe={meta:{name:"parser-plain"},parseForESLint:e=>({ast:{body:[],comments:[],loc:{end:e.length,start:0},range:[0,e.length],tokens:[],type:"Program"},scopeManager:null,services:{isPlain:!0},visitorKeys:{Program:[]}})};async function br(...e){return(await Promise.all(e)).flat()}async function o(e){let r=await e;return r.default||r}function te(e){if(process.env.CI||!process.stdout.isTTY||!De)return;let r=e.filter(t=>t&&!re(t));if(r.length!==0)throw new Error(`This package(s) are required for this config: ${r.join(", ")}. Please install them.`)}async function ne(...e){let r=[],n=(await Promise.all(e)).flat();return r=[...r,...n],r}function hr(e){return Array.isArray(e)?e:[e]}async function se(){return[{name:"ncontiero/jsdoc/rules",plugins:{jsdoc:await o(import("eslint-plugin-jsdoc"))},rules:{"jsdoc/check-access":"warn","jsdoc/check-param-names":"warn","jsdoc/check-property-names":"warn","jsdoc/check-types":"warn","jsdoc/empty-tags":"warn","jsdoc/implements-on-classes":"warn","jsdoc/no-defaults":"warn","jsdoc/no-multi-asterisks":"warn","jsdoc/require-param-name":"warn","jsdoc/require-property":"warn","jsdoc/require-property-description":"warn","jsdoc/require-property-name":"warn","jsdoc/require-returns-check":"warn","jsdoc/require-returns-description":"warn","jsdoc/require-yields-check":"warn"}}]}async function ie(e={}){let{files:r=[F,T,W],overrides:t={},style:n=!0}=e,{indent:s=2}=typeof n=="boolean"?{}:n,[a,p]=await Promise.all([o(import("eslint-plugin-jsonc")),o(import("jsonc-eslint-parser"))]);return[{name:"ncontiero/jsonc/setup",plugins:{jsonc:a}},{files:r,languageOptions:{parser:p},name:"ncontiero/jsonc/rules",rules:{...a.configs["recommended-with-jsonc"].rules,"jsonc/array-bracket-spacing":["error","never"],"jsonc/comma-style":["error","last"],"jsonc/indent":["error",s],"jsonc/key-spacing":["error",{afterColon:!0,beforeColon:!1}],"jsonc/object-curly-newline":["error",{consistent:!0,multiline:!0}],"jsonc/object-curly-spacing":["error","always"],"jsonc/object-property-newline":["error",{allowAllPropertiesOnSameLine:!0}],"jsonc/quote-props":"off","jsonc/quotes":"off",...t}}]}import{mergeProcessors as _e,processorPassThrough as Be}from"eslint-merge-processors";async function ae(e={}){let{files:r=[d],overrides:t={}}=e,n=await o(import("@eslint/markdown"));return[{name:"ncontiero/markdown/setup",plugins:{markdown:n}},{files:r,ignores:[Q],name:"ncontiero/markdown/processor",processor:_e([n.processors.markdown,Be])},{files:r,languageOptions:{parser:oe},name:"ncontiero/markdown/parser"},{files:[X],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},name:"ncontiero/markdown/rules",rules:{"@typescript-eslint/comma-dangle":"off","@typescript-eslint/consistent-type-imports":"off","@typescript-eslint/no-extraneous-class":"off","@typescript-eslint/no-namespace":"off","@typescript-eslint/no-redeclare":"off","@typescript-eslint/no-require-imports":"off","@typescript-eslint/no-unused-expressions":"off","@typescript-eslint/no-unused-vars":"off","@typescript-eslint/no-use-before-define":"off","import/newline-after-import":"off","no-alert":"off","no-console":"off","no-restricted-imports":"off","no-undef":"off","no-unused-expressions":"off","no-unused-vars":"off","node/prefer-global/buffer":"off","node/prefer-global/process":"off","unused-imports/no-unused-imports":"off","unused-imports/no-unused-vars":"off",...t}}]}async function pe(e={}){let{files:r=[j],overrides:t={}}=e,n=await o(import("@next/eslint-plugin-next"));return[{files:r,name:"ncontiero/nextjs/rules",plugins:{nextjs:n},rules:{"nextjs/google-font-display":["warn"],"nextjs/google-font-preconnect":["warn"],"nextjs/inline-script-id":["error"],"nextjs/next-script-for-ga":["warn"],"nextjs/no-assign-module-variable":["error"],"nextjs/no-async-client-component":"warn","nextjs/no-before-interactive-script-outside-document":["warn"],"nextjs/no-css-tags":["warn"],"nextjs/no-document-import-in-page":["error"],"nextjs/no-duplicate-head":["error"],"nextjs/no-head-element":["warn"],"nextjs/no-head-import-in-document":["error"],"nextjs/no-html-link-for-pages":["warn"],"nextjs/no-img-element":["warn"],"nextjs/no-page-custom-font":["warn"],"nextjs/no-script-component-in-head":["error"],"nextjs/no-styled-jsx-in-document":["warn"],"nextjs/no-sync-scripts":["warn"],"nextjs/no-title-in-document-head":["warn"],"nextjs/no-typos":["warn"],"nextjs/no-unwanted-polyfillio":["warn"],...t}}]}function ce(){return[{name:"ncontiero/node/rules",plugins:{node:q},rules:{"node/handle-callback-err":["error","^(err|error)$"],"node/no-deprecated-api":"error","node/no-exports-assign":"error","node/no-new-require":"error","node/no-path-concat":"error","node/no-unsupported-features/es-builtins":"error","node/no-unsupported-features/es-syntax":"error","node/no-unsupported-features/node-builtins":"error","node/prefer-global/console":["error","always"],"node/prefer-global/process":["error","always"],"node/prefer-global/url":["error","always"],"node/prefer-global/url-search-params":["error","always"],"node/process-exit-as-throw":"error"}}]}function le(){return[{name:"ncontiero/perfectionist/rules",plugins:{perfectionist:J},rules:{"perfectionist/sort-exports":["warn",{type:"natural"}],"perfectionist/sort-imports":["warn",{customGroups:{type:{react:["^react$","^react-(?!.*.css$).+"]},value:{react:["^react$","^react-(?!.*.css$).+"]}},groups:["side-effect-style","style","type","internal-type",["parent-type","sibling-type","index-type"],"builtin","react","external","internal",["parent","sibling","index"],"object","unknown"],internalPattern:["^[~@#]/.*"],newlinesBetween:"ignore",type:"natural"}],"perfectionist/sort-named-exports":["warn",{groupKind:"types-first"}],"perfectionist/sort-named-imports":["warn",{groupKind:"types-first"}]}}]}async function me(e={}){return[{name:"ncontiero/prettier/setup",plugins:{prettier:await o(import("eslint-plugin-prettier"))}},{files:[c],name:"ncontiero/prettier/disables",rules:{"antfu/consistent-list-newline":"off","arrow-body-style":"off",curly:"off","no-unexpected-multiline":"off","prefer-arrow-callback":"off","unicorn/empty-brace-spaces":"off","unicorn/no-nested-ternary":"off","unicorn/number-literal-case":"off","unicorn/template-indent":"off"}},{files:[c],name:"ncontiero/prettier/rules",rules:{"prettier/prettier":["warn",e]}}]}async function ue(){return[{...(await o(import("eslint-plugin-promise"))).configs["flat/recommended"],name:"ncontiero/promise/setup"},{name:"ncontiero/promise/rules",rules:{"promise/always-return":["error",{ignoreLastCallback:!0}],"promise/no-multiple-resolved":"warn"}}]}import{isPackageExists as _}from"local-pkg";var Ge=["vite"],Ee=["@react-router/node","@react-router/react","@react-router/serve","@react-router/dev"],Ae=["next"];async function fe(e={}){let{files:r=[j],overrides:t={},reactQuery:n,typescript:s}=e;n&&te(["@tanstack/eslint-plugin-query"]);let[a,p,u,S]=await Promise.all([o(import("eslint-plugin-jsx-a11y")),o(import("eslint-plugin-react")),o(import("eslint-plugin-react-hooks")),o(import("eslint-plugin-react-refresh"))]),y=Ge.some(l=>_(l)),g=Ee.some(l=>_(l)),h=Ae.some(l=>_(l));return[{files:r,name:"ncontiero/react/setup",plugins:{"jsx-a11y":a,react:p,"react-hooks":u,"react-refresh":S},settings:{react:{version:"detect"}}},n?{...(await o(import("@tanstack/eslint-plugin-query"))).configs["flat/recommended"][0],name:"ncontiero/tanstack-query"}:{},{files:r,languageOptions:{parserOptions:{ecmaFeatures:{jsx:!0}}},name:"ncontiero/react/rules",rules:{"react-hooks/component-hook-factories":"warn","react-hooks/error-boundaries":"warn","react-hooks/exhaustive-deps":"warn","react-hooks/globals":"warn","react-hooks/immutability":"warn","react-hooks/incompatible-library":"warn","react-hooks/preserve-manual-memoization":"warn","react-hooks/purity":"warn","react-hooks/refs":"warn","react-hooks/rules-of-hooks":"error","react-hooks/set-state-in-effect":"warn","react-hooks/set-state-in-render":"warn","react-hooks/static-components":"warn","react-hooks/unsupported-syntax":"warn","react-hooks/use-memo":"warn","react-refresh/only-export-components":["warn",{allowConstantExport:y,allowExportNames:[...h?["experimental_ppr","dynamic","dynamicParams","revalidate","fetchCache","runtime","preferredRegion","maxDuration","generateStaticParams","metadata","generateMetadata","viewport","generateViewport"]:[],...g?["meta","links","headers","loader","action","clientLoader","clientAction","handle","shouldRevalidate"]:[]]}],"react/boolean-prop-naming":["off",{rule:"^(is|has|are|can|should|did|will)[A-Z]([A-Za-z0-9])+",validateNested:!0}],"react/button-has-type":["error",{button:!0,reset:!1,submit:!0}],"react/display-name":["error",{ignoreTranspilerName:!1}],"react/hook-use-state":["error"],"react/iframe-missing-sandbox":["error"],"react/jsx-boolean-value":["error","never"],"react/jsx-filename-extension":["warn",{extensions:[".tsx"]}],"react/jsx-fragments":["error","syntax"],"react/jsx-handler-names":["error",{eventHandlerPrefix:"handle",eventHandlerPropPrefix:"on"}],"react/jsx-key":["error",{checkFragmentShorthand:!0,checkKeyMustBeforeSpread:!0,warnOnDuplicates:!0}],"react/jsx-no-bind":["error",{allowArrowFunctions:!0}],"react/jsx-no-comment-textnodes":"error","react/jsx-no-constructed-context-values":"error","react/jsx-no-duplicate-props":["error"],"react/jsx-no-leaked-render":["error"],"react/jsx-no-script-url":["error",[{name:"Link",props:["to"]}]],"react/jsx-no-target-blank":["error",{forms:!0,links:!0,warnOnSpreadAttributes:!0}],"react/jsx-no-undef":"error","react/jsx-no-useless-fragment":"error","react/jsx-uses-react":"error","react/jsx-uses-vars":"error","react/no-access-state-in-setstate":"error","react/no-array-index-key":"error","react/no-arrow-function-lifecycle":"error","react/no-children-prop":"error","react/no-danger":"error","react/no-danger-with-children":"error","react/no-deprecated":"error","react/no-did-update-set-state":"error","react/no-direct-mutation-state":"error","react/no-find-dom-node":"error","react/no-invalid-html-attribute":"error","react/no-is-mounted":"error","react/no-namespace":"error","react/no-object-type-as-default-prop":"error","react/no-redundant-should-component-update":"error","react/no-render-return-value":"error","react/no-string-refs":["error",{noTemplateLiterals:!0}],"react/no-this-in-sfc":["error"],"react/no-typos":["error"],"react/no-unescaped-entities":"error","react/no-unknown-property":"error","react/no-unstable-nested-components":["error"],"react/no-unused-class-component-methods":["error"],"react/no-unused-prop-types":["error",{customValidators:[],skipShapeProps:!0}],"react/no-unused-state":["error"],"react/no-will-update-set-state":["error"],"react/prefer-es6-class":["error","always"],"react/prefer-exact-props":["error"],"react/prefer-read-only-props":["error"],"react/prefer-stateless-function":["error",{ignorePureComponents:!0}],"react/prop-types":["error",{customValidators:[],ignore:[],skipUndeclared:!1}],"react/react-in-jsx-scope":"off","react/require-render-return":"error","react/self-closing-comp":["error",{component:!0,html:!0}],"react/sort-default-props":["error"],"react/state-in-constructor":["error","never"],"react/static-property-placement":["error","property assignment"],"react/style-prop-object":["error",{allow:["FormattedNumber"]}],"react/void-dom-elements-no-children":["error"],...s?{"react/jsx-no-undef":"off","react/prop-types":"off"}:{},"jsx-a11y/alt-text":["warn",{area:[],elements:["img","object","area",'input[type="image"]'],img:[],'input[type="image"]':[],object:[]}],"jsx-a11y/anchor-has-content":["warn",{components:[]}],"jsx-a11y/anchor-is-valid":["warn",{aspects:["noHref","invalidHref","preferButton"],components:["Link"],specialLink:["to"]}],"jsx-a11y/aria-activedescendant-has-tabindex":["warn"],"jsx-a11y/aria-props":["warn"],"jsx-a11y/aria-proptypes":["warn"],"jsx-a11y/aria-role":["warn",{ignoreNonDOM:!1}],"jsx-a11y/aria-unsupported-elements":["warn"],"jsx-a11y/autocomplete-valid":["off",{inputComponents:[]}],"jsx-a11y/click-events-have-key-events":["warn"],"jsx-a11y/control-has-associated-label":["warn",{controlComponents:[],depth:5,ignoreElements:["audio","canvas","embed","input","textarea","tr","video"],ignoreRoles:["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],labelAttributes:["label"]}],"jsx-a11y/heading-has-content":["warn",{components:[""]}],"jsx-a11y/html-has-lang":["warn"],"jsx-a11y/iframe-has-title":["warn"],"jsx-a11y/img-redundant-alt":["warn"],"jsx-a11y/interactive-supports-focus":["warn"],"jsx-a11y/label-has-associated-control":"warn","jsx-a11y/lang":["warn"],"jsx-a11y/media-has-caption":["warn",{audio:[],track:[],video:[]}],"jsx-a11y/mouse-events-have-key-events":["warn"],"jsx-a11y/no-access-key":["warn"],"jsx-a11y/no-autofocus":["warn",{ignoreNonDOM:!0}],"jsx-a11y/no-distracting-elements":["warn",{elements:["marquee","blink"]}],"jsx-a11y/no-interactive-element-to-noninteractive-role":["warn",{tr:["none","presentation"]}],"jsx-a11y/no-noninteractive-element-interactions":["warn",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/no-noninteractive-element-to-interactive-role":["warn",{li:["menuitem","option","row","tab","treeitem"],ol:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],table:["grid"],td:["gridcell"],ul:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"]}],"jsx-a11y/no-noninteractive-tabindex":["warn",{roles:["tabpanel"],tags:[]}],"jsx-a11y/no-redundant-roles":["warn"],"jsx-a11y/no-static-element-interactions":["off",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/role-has-required-aria-props":["warn"],"jsx-a11y/role-supports-aria-props":["warn"],"jsx-a11y/scope":["warn"],"jsx-a11y/tabindex-no-positive":["warn"],...t}}]}import{configs as Ne}from"eslint-plugin-regexp";function de(e={}){let r=Ne["flat/recommended"],t={...r.rules,...e.overrides};return[{...r,name:"ncontiero/regexp/rules",rules:t}]}function ye(){return[{files:["**/package.json"],name:"ncontiero/sort/package-json",rules:{"jsonc/sort-array-values":["error",{order:{type:"asc"},pathPattern:"^files$"}],"jsonc/sort-keys":["error",{order:["publisher","name","displayName","type","version","private","packageManager","description","author","contributors","license","funding","homepage","repository","bugs","keywords","categories","sideEffects","imports","exports","main","module","unpkg","jsdelivr","browser","types","typesVersions","bin","icon","files","directories","publishConfig","scripts","peerDependencies","peerDependenciesMeta","optionalDependencies","dependencies","devDependencies","engines","prisma","config","pnpm","overrides","resolutions","husky","lint-staged","eslintConfig","prettier"],pathPattern:"^$"},{order:{type:"asc"},pathPattern:"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$"},{order:["types","require","import","default"],pathPattern:"^exports.*$"},{order:{type:"asc"},pathPattern:"^(?:resolutions|overrides|pnpm.overrides)$"},{order:{type:"asc"},pathPattern:"^workspaces\\.catalog$"},{order:{type:"asc"},pathPattern:"^workspaces\\.catalogs\\.[^.]+$"}]}}]}function ge(){return[{files:["**/[jt]sconfig.json","**/[jt]sconfig.*.json"],name:"ncontiero/sort/tsconfig",rules:{"jsonc/sort-keys":["error",{order:["extends","compilerOptions","references","files","include","exclude"],pathPattern:"^$"},{order:["incremental","composite","tsBuildInfoFile","disableSourceOfProjectReferenceRedirect","disableSolutionSearching","disableReferencedProjectLoad","target","jsx","jsxFactory","jsxFragmentFactory","jsxImportSource","lib","moduleDetection","noLib","reactNamespace","useDefineForClassFields","emitDecoratorMetadata","experimentalDecorators","libReplacement","baseUrl","rootDir","rootDirs","customConditions","module","moduleResolution","moduleSuffixes","noResolve","paths","resolveJsonModule","resolvePackageJsonExports","resolvePackageJsonImports","typeRoots","types","allowArbitraryExtensions","allowImportingTsExtensions","allowUmdGlobalAccess","allowJs","checkJs","maxNodeModuleJsDepth","strict","strictBindCallApply","strictFunctionTypes","strictNullChecks","strictPropertyInitialization","allowUnreachableCode","allowUnusedLabels","alwaysStrict","exactOptionalPropertyTypes","noFallthroughCasesInSwitch","noImplicitAny","noImplicitOverride","noImplicitReturns","noImplicitThis","noPropertyAccessFromIndexSignature","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","useUnknownInCatchVariables","declaration","declarationDir","declarationMap","downlevelIteration","emitBOM","emitDeclarationOnly","importHelpers","importsNotUsedAsValues","inlineSourceMap","inlineSources","isolatedDeclarations","mapRoot","newLine","noEmit","noEmitHelpers","noEmitOnError","outDir","outFile","preserveConstEnums","preserveValueImports","removeComments","sourceMap","sourceRoot","stripInternal","allowSyntheticDefaultImports","esModuleInterop","forceConsistentCasingInFileNames","isolatedModules","preserveSymlinks","verbatimModuleSyntax","erasableSyntaxOnly","skipDefaultLibCheck","skipLibCheck"],pathPattern:"^compilerOptions$"}]}}]}import C from"path";async function xe(e={}){let{overrides:r={}}=e,t=p=>C.isAbsolute(p)?p:C.resolve(process.cwd(),p),n=t(e.cssGlobalPath??C.join("src","app","globals.css")),s=t(e.configPath??C.join("tailwind.config.ts"));return[{name:"ncontiero/tailwindcss/setup",plugins:{tailwindcss:await o(import("eslint-plugin-better-tailwindcss"))},settings:{tailwindcss:{entryPoint:n,tailwindConfig:s}}},{files:[c,R],name:"ncontiero/tailwindcss/rules",rules:{"tailwindcss/enforce-consistent-class-order":"warn","tailwindcss/enforce-consistent-important-position":"warn","tailwindcss/enforce-consistent-line-wrapping":["warn",{group:"never",preferSingleLine:!0,printWidth:120}],"tailwindcss/enforce-consistent-variable-syntax":"error","tailwindcss/enforce-shorthand-classes":"warn","tailwindcss/no-conflicting-classes":"error","tailwindcss/no-deprecated-classes":"error","tailwindcss/no-duplicate-classes":"error","tailwindcss/no-restricted-classes":"error","tailwindcss/no-unknown-classes":"warn","tailwindcss/no-unnecessary-whitespace":"warn",...r}}]}async function we(e={}){let{files:r=[V],overrides:t={},style:n=!0}=e,{indent:s=2}=typeof n=="boolean"?{}:n,[a,p]=await Promise.all([o(import("eslint-plugin-toml")),o(import("toml-eslint-parser"))]);return[{name:"ncontiero/toml/setup",plugins:{toml:a}},{files:r,languageOptions:{parser:p},name:"ncontiero/toml/rules",rules:{"toml/array-bracket-newline":"error","toml/array-bracket-spacing":"error","toml/array-element-newline":"off","toml/comma-style":"error","toml/indent":["error",s],"toml/inline-table-curly-spacing":"error","toml/key-spacing":"error","toml/keys-order":"error","toml/no-space-dots":"error","toml/no-unreadable-number-separator":"error","toml/padding-line-between-pairs":"error","toml/padding-line-between-tables":"error","toml/precision-of-fractional-seconds":"error","toml/precision-of-integer":"error","toml/quoted-keys":"error","toml/spaced-comment":"error","toml/table-bracket-spacing":"error","toml/tables-order":"error","toml/vue-custom-block/no-parsing-error":"error","unicorn/filename-case":"off",...t}}]}async function Oe(e={}){let{files:r=[w,O],overrides:t={},parserOptions:n={}}=e,[s,a]=await Promise.all([o(import("@typescript-eslint/eslint-plugin")),o(import("@typescript-eslint/parser"))]);return[{name:"ncontiero/typescript/setup",plugins:{"@typescript-eslint":s}},{files:r,languageOptions:{parser:a,parserOptions:{sourceType:"module",...n}},name:"ncontiero/typescript/parser"},{files:r,name:"ncontiero/typescript/rules",rules:{...s.configs["eslint-recommended"].overrides[0].rules,...s.configs.recommended.rules,"@typescript-eslint/ban-ts-comment":["error",{"ts-ignore":"allow-with-description"}],"@typescript-eslint/consistent-type-assertions":["error",{assertionStyle:"as",objectLiteralTypeAssertions:"allow-as-parameter"}],"@typescript-eslint/consistent-type-imports":["error",{disallowTypeAnnotations:!1,fixStyle:"inline-type-imports"}],"@typescript-eslint/method-signature-style":["error","property"],"@typescript-eslint/no-empty-object-type":["error",{allowInterfaces:"always"}],"@typescript-eslint/no-explicit-any":"off","@typescript-eslint/no-import-type-side-effects":"error","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/no-redeclare":"error","@typescript-eslint/no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!1,allowTernary:!0,enforceForJSX:!0}],"@typescript-eslint/no-unused-vars":"off","@typescript-eslint/no-useless-constructor":"error","@typescript-eslint/no-wrapper-object-types":"error","@typescript-eslint/prefer-as-const":"warn","@typescript-eslint/prefer-literal-enum-member":["error",{allowBitwiseExpressions:!0}],"no-restricted-syntax":["error",...k,"TSEnumDeclaration[const=true]"],...t}},{files:["**/*.d.ts"],name:"ncontiero/typescript/dts-rules",rules:{"eslint-comments/no-unlimited-disable":"off","import/no-duplicates":"off","no-restricted-syntax":["error",...k],"unused-imports/no-unused-vars":"off"}},{files:[H,"**/*.cjs"],name:"ncontiero/typescript/cjs-rules",rules:{"@typescript-eslint/no-require-imports":"off"}}]}function be(e={}){let{allRecommended:r,overrides:t={},regexp:n=!1}=e;return[{name:"ncontiero/unicorn/rules",plugins:{unicorn:P},rules:{...r?P.configs.recommended.rules:{"unicorn/better-regex":n?"off":"error","unicorn/catch-error-name":"error","unicorn/consistent-date-clone":"error","unicorn/consistent-empty-array-spread":"error","unicorn/consistent-existence-index-check":"error","unicorn/consistent-function-scoping":"error","unicorn/custom-error-definition":"error","unicorn/error-message":"error","unicorn/escape-case":"error","unicorn/explicit-length-check":"error","unicorn/new-for-builtins":"error","unicorn/no-array-callback-reference":"error","unicorn/no-array-method-this-argument":"error","unicorn/no-await-in-promise-methods":"error","unicorn/no-console-spaces":"error","unicorn/no-for-loop":"error","unicorn/no-hex-escape":"error","unicorn/no-instanceof-builtins":"error","unicorn/no-invalid-remove-event-listener":"error","unicorn/no-lonely-if":"error","unicorn/no-negation-in-equality-check":"error","unicorn/no-new-array":"error","unicorn/no-new-buffer":"error","unicorn/no-single-promise-in-promise-methods":"error","unicorn/no-static-only-class":"error","unicorn/no-unnecessary-array-flat-depth":"error","unicorn/no-unnecessary-array-splice-count":"error","unicorn/no-unnecessary-await":"error","unicorn/no-unnecessary-slice-end":"error","unicorn/no-zero-fractions":"error","unicorn/number-literal-case":"error","unicorn/prefer-add-event-listener":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-at":"error","unicorn/prefer-blob-reading-methods":"error","unicorn/prefer-class-fields":"error","unicorn/prefer-date-now":"error","unicorn/prefer-dom-node-append":"error","unicorn/prefer-dom-node-dataset":"error","unicorn/prefer-dom-node-remove":"error","unicorn/prefer-dom-node-text-content":"error","unicorn/prefer-includes":"error","unicorn/prefer-keyboard-event-key":"error","unicorn/prefer-math-min-max":"error","unicorn/prefer-math-trunc":"error","unicorn/prefer-modern-dom-apis":"error","unicorn/prefer-modern-math-apis":"error","unicorn/prefer-negative-index":"error","unicorn/prefer-node-protocol":"error","unicorn/prefer-number-properties":"error","unicorn/prefer-optional-catch-binding":"error","unicorn/prefer-prototype-methods":"error","unicorn/prefer-query-selector":"error","unicorn/prefer-reflect-apply":"error","unicorn/prefer-regexp-test":"error","unicorn/prefer-single-call":"error","unicorn/prefer-string-replace-all":"error","unicorn/prefer-string-slice":"error","unicorn/prefer-string-starts-ends-with":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-type-error":"error","unicorn/throw-new-error":"error"},...t}}]}async function he(e={}){let{files:r=[L],overrides:t={},style:n=!0}=e,{indent:s=2,quotes:a="double"}=typeof n=="boolean"?{}:n,[p,u]=await Promise.all([o(import("eslint-plugin-yml")),o(import("yaml-eslint-parser"))]);return[{name:"ncontiero/yml/setup",plugins:{yml:p}},{files:r,languageOptions:{parser:u},name:"ncontiero/yml/rules",rules:{"yml/block-mapping":"error","yml/block-mapping-question-indicator-newline":"error","yml/block-sequence":"error","yml/block-sequence-hyphen-indicator-newline":"error","yml/flow-mapping-curly-newline":"error","yml/flow-mapping-curly-spacing":"error","yml/flow-sequence-bracket-newline":"error","yml/flow-sequence-bracket-spacing":"error","yml/indent":["error",s],"yml/key-spacing":"error","yml/no-empty-document":"error","yml/no-empty-key":"error","yml/no-empty-sequence-entry":"error","yml/no-irregular-whitespace":"error","yml/no-tab-indent":"error","yml/plain-scalar":"error","yml/quotes":["error",{avoidEscape:!1,prefer:a}],"yml/spaced-comment":"error","yml/vue-custom-block/no-parsing-error":"error",...t}},{files:["pnpm-workspace.yaml"],name:"ncontiero/yml/pnpm-workspace",rules:{"yml/sort-keys":["error",{order:["packages","overrides","patchedDependencies","hoistPattern","catalog","catalogs","allowedDeprecatedVersions","allowNonAppliedPatches","allowUnusedPatches","configDependencies","ignoredBuiltDependencies","ignoredOptionalDependencies","ignorePatchFailures","neverBuiltDependencies","onlyBuiltDependencies","onlyBuiltDependenciesFile","packageExtensions","peerDependencyRules","supportedArchitectures"],pathPattern:"^$"},{order:{type:"asc"},pathPattern:".*"}]}}]}import{isPackageExists as b}from"local-pkg";var ve=!!((process.env.VSCODE_PID||process.env.VSCODE_CWD||process.env.NVIM||process.env.JETBRAINS_IDE||process.env.VIM)&&!process.env.CI),je=b("typescript"),ke=b("react"),Ce=b("next"),Se=b("tailwindcss"),Ie=b("@tanstack/react-query");var Me=["name","languageOptions","linterOptions","processor","plugins","rules","settings"];function B(e,r){return typeof e[r]=="boolean"?{}:e[r]||{}}function m(e,r){let t=B(e,r);return{...("overrides"in e?e.overrides:{})?.[r],..."overrides"in t?t.overrides:{}}}function qe(e){return"tabWidth"in e||"singleQuote"in e||"semi"in e?{indent:e.tabWidth||2,quotes:e.singleQuote?"single":"double",semi:e.semi??!0}:!1}function Uo(e={},...r){let{gitignore:t=!0,isInEditor:n=ve,nextjs:s=Ce,react:a=ke,reactQuery:p=Ie,regexp:u=!0,tailwindcss:S=Se,typescript:y=je,unicorn:g=!0}=e,h=typeof e.prettier=="object"?e.prettier:{},l=qe(h),i=[];if(t&&(typeof t!="boolean"?i.push(o(import("eslint-config-flat-gitignore")).then(f=>[f({name:"ncontiero/gitignore",...t})])):i.push(o(import("eslint-config-flat-gitignore")).then(f=>[f({name:"ncontiero/gitignore",strict:!1})]))),y||(e.ignores?e.ignores.push(w,O):e.ignores=[w,O]),i.push(z(e.ignores),ee({overrides:m(e,"javascript")}),K(),se(),Z({nextJs:!!s}),ce(),ue(),E(),le(),$()),g&&i.push(be(g===!0?{regexp:!!u}:g)),y&&i.push(Oe({...B(e,"typescript"),overrides:m(e,"typescript")})),(e.jsonc??!0)&&i.push(ie({overrides:m(e,"jsonc"),style:l}),ye(),ge()),(e.yaml??!0)&&i.push(he({overrides:m(e,"yaml"),style:l})),(e.toml??!0)&&i.push(we({overrides:m(e,"toml"),style:l})),(e.markdown??!0)&&i.push(ae({overrides:m(e,"markdown")})),u&&i.push(de(typeof u=="boolean"?{}:u)),a&&i.push(fe({overrides:m(e,"react"),reactQuery:!!p,typescript:!!y})),s&&i.push(pe({overrides:m(e,"nextjs")})),S&&i.push(xe({isInEditor:n,...B(e,"tailwindcss"),overrides:m(e,"tailwindcss")})),(e.prettier??!0)&&i.push(me(h)),"files"in e)throw new Error('[@ncontiero/eslint-config] The first argument should not contain the "files" property as the options are supposed to be global. Place it in the second or later config instead.');let G=Me.reduce((f,I)=>(I in e&&(f[I]=e[I]),f),{});return Object.keys(G).length>0&&i.push([G]),ne(...i,...r)}export{pr as GLOB_ALL_SRC,nr as GLOB_CSS,Le as GLOB_DIST,Y as GLOB_EXCLUDE,R as GLOB_HTML,H as GLOB_JS,F as GLOB_JSON,T as GLOB_JSON5,W as GLOB_JSONC,tr as GLOB_JSX,ir as GLOB_LESS,Re as GLOB_LOCKFILE,d as GLOB_MARKDOWN,X as GLOB_MARKDOWN_CODE,Q as GLOB_MARKDOWN_IN_MARKDOWN,Te as GLOB_NODE_MODULES,sr as GLOB_POSTCSS,j as GLOB_REACT,ar as GLOB_SCSS,c as GLOB_SRC,x as GLOB_SRC_EXT,Fe as GLOB_STYLE,V as GLOB_TOML,w as GLOB_TS,O as GLOB_TSX,L as GLOB_YAML,br as combine,E as command,K as comments,ne as composer,$ as deMorgan,te as ensurePackages,m as getOverrides,Ce as hasNextJs,ke as hasReact,Se as hasTailwind,Ie as hasTanStackReactQuery,je as hasTypeScript,z as ignores,Z as imports,o as interopDefault,ve as isInEditorEnv,ee as javascript,se as jsdoc,ie as jsonc,ae as markdown,Uo as ncontiero,pe as nextJs,ce as node,oe as parserPlain,le as perfectionist,me as prettier,ue as promise,fe as react,de as regexp,B as resolveSubOptions,k as restrictedSyntaxJs,ye as sortPackageJson,ge as sortTsconfig,xe as tailwindcss,hr as toArray,we as toml,Oe as typescript,be as unicorn,he as yml};
1
+ import Ie from"eslint-plugin-command/config";function A(){return[{...Ie(),name:"ncontiero/command/rules"}]}import{default as M}from"@eslint-community/eslint-plugin-eslint-comments";import{default as C}from"eslint-plugin-antfu";import{default as q}from"eslint-plugin-de-morgan";import{default as E}from"eslint-plugin-import-x";import{default as N}from"eslint-plugin-n";import{default as J}from"eslint-plugin-perfectionist";import{default as T}from"eslint-plugin-unicorn";import{default as U}from"eslint-plugin-unused-imports";function H(){return[{name:"ncontiero/comments/rules",plugins:{"eslint-comments":M},rules:{"eslint-comments/disable-enable-pair":["error",{allowWholeFile:!0}],"eslint-comments/no-aggregating-enable":"error","eslint-comments/no-duplicate-disable":"error","eslint-comments/no-unlimited-disable":"error","eslint-comments/no-unused-enable":"error"}}]}function K(){return[{...q.configs.recommended,name:"ncontiero/de-morgan"}]}var O="?([cm])[jt]s?(x)",c="**/*.?([cm])[jt]s?(x)",$="**/*.?([cm])js",ir="**/*.?([cm])jsx",b="**/*.?([cm])ts",v="**/*.?([cm])tsx",d="**/*.?([cm])?(j|t)sx",Re="**/*.{c,le,sc}ss",W="**/*.css",Q="**/*.{p,post}css",V="**/*.less",X="**/*.scss",I="**/*.json",R="**/*.json5",Y="**/*.jsonc",m="**/*.md",z="**/*.md/*.md",_="**/*.y?(a)ml",Z="**/*.toml",g="**/*.htm?(l)",ee=`${m}/${c}`,ar=[c,Re,I,R,m,_,g],_e="**/node_modules",De="**/dist",Be=["**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb"],re=[_e,De,...Be,"**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/fixtures","**/.git","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.contentlayer","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/next-env.d.ts","**/.nitro","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts"];import{isPackageExists as oe}from"local-pkg";var Ge=oe("@ncontiero/eslint-config"),u={meta:{name:"parser-plain"},parseForESLint:e=>({ast:{body:[],comments:[],loc:{end:e.length,start:0},range:[0,e.length],tokens:[],type:"Program"},scopeManager:null,services:{isPlain:!0},visitorKeys:{Program:[]}})};async function cr(...e){return(await Promise.all(e)).flat()}async function o(e){let r=await e;return r.default||r}function te(e){if(process.env.CI||!process.stdout.isTTY||!Ge)return;let r=e.filter(t=>t&&!oe(t));if(r.length!==0)throw new Error(`This package(s) are required for this config: ${r.join(", ")}. Please install them.`)}async function ne(...e){let r=[],n=(await Promise.all(e)).flat();return r=[...r,...n],r}function mr(e){return Array.isArray(e)?e:[e]}async function se(e){let{overrides:r={}}=e,[t,n]=await Promise.all([o(import("@html-eslint/parser")),o(import("@html-eslint/eslint-plugin"))]),i=e.templateEngineSyntax??{"{{":"}}","{%":"%}"};return[{files:[g],languageOptions:{parser:t,parserOptions:{templateEngineSyntax:i}},name:"ncontiero/html/setup",plugins:{html:n}},{files:[g],name:"ncontiero/html/rules",rules:{"html/attrs-newline":["warn",{ifAttrsMoreThan:5}],"html/element-newline":["warn",{inline:["$inline"]}],"html/indent":["warn",2],"html/lowercase":"warn","html/no-aria-hidden-body":"error","html/no-aria-hidden-on-focusable":"warn","html/no-duplicate-attrs":"error","html/no-duplicate-class":"warn","html/no-duplicate-id":"error","html/no-duplicate-in-head":"error","html/no-empty-headings":"warn","html/no-extra-spacing-attrs":["warn",{disallowInAssignment:!0,disallowMissing:!0,enforceBeforeSelfClose:!0}],"html/no-extra-spacing-text":"warn","html/no-heading-inside-button":"warn","html/no-ineffective-attrs":"warn","html/no-invalid-entity":"warn","html/no-invalid-role":"warn","html/no-multiple-empty-lines":["warn",{max:1}],"html/no-multiple-h1":"error","html/no-nested-interactive":"error","html/no-non-scalable-viewport":"warn","html/no-obsolete-tags":"error","html/no-script-style-type":"warn","html/no-target-blank":"error","html/no-trailing-spaces":"warn","html/quotes":"warn","html/require-button-type":"warn","html/require-closing-tags":["warn",{selfClosing:"always"}],"html/require-doctype":"error","html/require-form-method":"warn","html/require-img-alt":"warn","html/require-lang":"warn","html/require-li-container":"warn","html/require-meta-charset":"warn","html/require-meta-viewport":"warn","html/require-title":"warn","html/sort-attrs":["warn",{priority:["name","content","id","type",{pattern:"data-.*"},"class","style"]}],"html/use-baseline":"error",...r}}]}function ie(e=[]){return[{ignores:[...re,...e],name:"ncontiero/global-ignores"}]}function ae(e={}){let{nextJs:r=!1}=e;return[{name:"ncontiero/imports/rules",plugins:{antfu:C,import:E},rules:{"antfu/import-dedupe":"error","import/first":"error","import/newline-after-import":["error",{count:1}],"import/no-default-export":"error","import/no-duplicates":"error","import/no-mutable-exports":"error","import/no-named-default":"error","import/no-self-import":"error","import/no-webpack-loader-syntax":"error"}},{files:[`**/*config*.${O}`,`**/{views,pages,routes,middleware,plugins,api,app}/${c}`,r?"{,src/}middleware.{ts,js}":"","**/{index,vite,esbuild,rollup,rolldown,webpack,rspack}.ts","**/*.d.ts",`${m}/**`,"**/.prettierrc*"],name:"ncontiero/imports/allow-default-export",rules:{"import/no-default-export":"off"}}]}import D from"globals";var S=["ForInStatement","LabeledStatement","WithStatement"];function pe(e={}){let{overrides:r={}}=e;return[{languageOptions:{ecmaVersion:"latest",globals:{...D.browser,...D.es2026,...D.node,document:"readonly",navigator:"readonly",window:"readonly"},parserOptions:{ecmaFeatures:{jsx:!0},ecmaVersion:"latest",sourceType:"module"},sourceType:"module"},linterOptions:{reportUnusedDisableDirectives:!0},name:"ncontiero/javascript/rules",plugins:{antfu:C,"unused-imports":U},rules:{"array-callback-return":"error","block-scoped-var":"error","constructor-super":"error","dot-notation":"warn",eqeqeq:["error","smart"],"for-direction":"error","getter-return":"error","no-alert":"warn","no-async-promise-executor":"error","no-case-declarations":"error","no-class-assign":"error","no-compare-neg-zero":"error","no-cond-assign":"error","no-console":["warn",{allow:["warn","error"]}],"no-const-assign":"error","no-constant-condition":"error","no-control-regex":"error","no-debugger":"warn","no-delete-var":"error","no-dupe-args":"error","no-dupe-class-members":"error","no-dupe-else-if":"error","no-dupe-keys":"error","no-duplicate-case":"error","no-duplicate-imports":"error","no-empty":["error",{allowEmptyCatch:!0}],"no-empty-character-class":"error","no-empty-pattern":"error","no-ex-assign":"error","no-extra-boolean-cast":"error","no-fallthrough":["warn",{commentPattern:"break[\\s\\w]*omitted"}],"no-func-assign":"error","no-global-assign":"error","no-import-assign":"error","no-inner-declarations":"error","no-invalid-regexp":"error","no-irregular-whitespace":"error","no-lonely-if":"error","no-loss-of-precision":"error","no-misleading-character-class":"error","no-multi-str":"error","no-new-native-nonconstructor":"error","no-nonoctal-decimal-escape":"error","no-obj-calls":"error","no-octal":"error","no-prototype-builtins":"error","no-redeclare":"error","no-regex-spaces":"error","no-restricted-syntax":["error",...S],"no-self-assign":"error","no-setter-return":"error","no-shadow-restricted-names":"error","no-sparse-arrays":"error","no-this-before-super":"error","no-undef":"error","no-unexpected-multiline":"error","no-unreachable":"error","no-unsafe-finally":"error","no-unsafe-negation":"error","no-unsafe-optional-chaining":"error","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-unused-labels":"error","no-unused-vars":"off","no-useless-backreference":"error","no-useless-catch":"error","no-useless-computed-key":"error","no-useless-constructor":"error","no-useless-escape":"error","no-useless-rename":"error","no-var":"error","no-void":"error","no-with":"error","object-shorthand":["error","always",{avoidQuotes:!0,ignoreConstructors:!1}],"prefer-arrow-callback":["error",{allowNamedFunctions:!1,allowUnboundThis:!0}],"prefer-const":["warn",{destructuring:"all",ignoreReadBeforeAssign:!0}],"prefer-exponentiation-operator":"error","prefer-regex-literals":["error",{disallowRedundantWrapping:!0}],"prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error","require-await":"error","require-yield":"error","unicode-bom":["error","never"],"unused-imports/no-unused-imports":"warn","unused-imports/no-unused-vars":["error",{args:"after-used",ignoreRestSiblings:!0}],"use-isnan":["error",{enforceForIndexOf:!0,enforceForSwitchCase:!0}],"valid-typeof":["error",{requireStringLiterals:!0}],"vars-on-top":"error",...r}},{files:[`**/{scripts,cli}/${c}`,`**/cli.${O}`],name:"ncontiero/javascript/cli-rules",rules:{"no-console":"off"}},{files:[`**/*.{test,spec}.${O}`],name:"ncontiero/javascript/test-rules",rules:{"no-unused-expressions":"off","unicorn/consistent-function-scoping":"off"}}]}async function le(){return[{name:"ncontiero/jsdoc/rules",plugins:{jsdoc:await o(import("eslint-plugin-jsdoc"))},rules:{"jsdoc/check-access":"warn","jsdoc/check-param-names":"warn","jsdoc/check-property-names":"warn","jsdoc/check-types":"warn","jsdoc/empty-tags":"warn","jsdoc/implements-on-classes":"warn","jsdoc/no-defaults":"warn","jsdoc/no-multi-asterisks":"warn","jsdoc/require-param-name":"warn","jsdoc/require-property":"warn","jsdoc/require-property-description":"warn","jsdoc/require-property-name":"warn","jsdoc/require-returns-check":"warn","jsdoc/require-returns-description":"warn","jsdoc/require-yields-check":"warn"}}]}async function ce(e={}){let{files:r=[I,R,Y],overrides:t={},style:n=!0}=e,{indent:i=2}=typeof n=="boolean"?{}:n,[p,a]=await Promise.all([o(import("eslint-plugin-jsonc")),o(import("jsonc-eslint-parser"))]);return[{name:"ncontiero/jsonc/setup",plugins:{jsonc:p}},{files:r,languageOptions:{parser:a},name:"ncontiero/jsonc/rules",rules:{...p.configs["recommended-with-jsonc"].rules,"jsonc/array-bracket-spacing":["error","never"],"jsonc/comma-style":["error","last"],"jsonc/indent":["error",i],"jsonc/key-spacing":["error",{afterColon:!0,beforeColon:!1}],"jsonc/object-curly-newline":["error",{consistent:!0,multiline:!0}],"jsonc/object-curly-spacing":["error","always"],"jsonc/object-property-newline":["error",{allowAllPropertiesOnSameLine:!0}],"jsonc/quote-props":"off","jsonc/quotes":"off",...t}}]}import{mergeProcessors as Ae,processorPassThrough as Me}from"eslint-merge-processors";async function me(e={}){let{files:r=[m],overrides:t={}}=e,n=await o(import("@eslint/markdown"));return[{name:"ncontiero/markdown/setup",plugins:{markdown:n}},{files:r,ignores:[z],name:"ncontiero/markdown/processor",processor:Ae([n.processors.markdown,Me])},{files:r,languageOptions:{parser:u},name:"ncontiero/markdown/parser"},{files:[ee],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},name:"ncontiero/markdown/rules",rules:{"@typescript-eslint/comma-dangle":"off","@typescript-eslint/consistent-type-imports":"off","@typescript-eslint/no-extraneous-class":"off","@typescript-eslint/no-namespace":"off","@typescript-eslint/no-redeclare":"off","@typescript-eslint/no-require-imports":"off","@typescript-eslint/no-unused-expressions":"off","@typescript-eslint/no-unused-vars":"off","@typescript-eslint/no-use-before-define":"off","import/newline-after-import":"off","no-alert":"off","no-console":"off","no-restricted-imports":"off","no-undef":"off","no-unused-expressions":"off","no-unused-vars":"off","node/prefer-global/buffer":"off","node/prefer-global/process":"off","unused-imports/no-unused-imports":"off","unused-imports/no-unused-vars":"off",...t}}]}async function ue(e={}){let{files:r=[d],overrides:t={}}=e,n=await o(import("@next/eslint-plugin-next"));return[{files:r,name:"ncontiero/nextjs/rules",plugins:{nextjs:n},rules:{"nextjs/google-font-display":["warn"],"nextjs/google-font-preconnect":["warn"],"nextjs/inline-script-id":["error"],"nextjs/next-script-for-ga":["warn"],"nextjs/no-assign-module-variable":["error"],"nextjs/no-async-client-component":"warn","nextjs/no-before-interactive-script-outside-document":["warn"],"nextjs/no-css-tags":["warn"],"nextjs/no-document-import-in-page":["error"],"nextjs/no-duplicate-head":["error"],"nextjs/no-head-element":["warn"],"nextjs/no-head-import-in-document":["error"],"nextjs/no-html-link-for-pages":["warn"],"nextjs/no-img-element":["warn"],"nextjs/no-page-custom-font":["warn"],"nextjs/no-script-component-in-head":["error"],"nextjs/no-styled-jsx-in-document":["warn"],"nextjs/no-sync-scripts":["warn"],"nextjs/no-title-in-document-head":["warn"],"nextjs/no-typos":["warn"],"nextjs/no-unwanted-polyfillio":["warn"],...t}}]}function fe(){return[{name:"ncontiero/node/rules",plugins:{node:N},rules:{"node/handle-callback-err":["error","^(err|error)$"],"node/no-deprecated-api":"error","node/no-exports-assign":"error","node/no-new-require":"error","node/no-path-concat":"error","node/no-unsupported-features/es-builtins":"error","node/no-unsupported-features/es-syntax":"error","node/no-unsupported-features/node-builtins":"error","node/prefer-global/console":["error","always"],"node/prefer-global/process":["error","always"],"node/prefer-global/url":["error","always"],"node/prefer-global/url-search-params":["error","always"],"node/process-exit-as-throw":"error"}}]}function de(){return[{name:"ncontiero/perfectionist/rules",plugins:{perfectionist:J},rules:{"perfectionist/sort-exports":["warn",{type:"natural"}],"perfectionist/sort-imports":["warn",{customGroups:{type:{react:["^react$","^react-(?!.*.css$).+"]},value:{react:["^react$","^react-(?!.*.css$).+"]}},groups:["side-effect-style","style","type","internal-type",["parent-type","sibling-type","index-type"],"builtin","react","external","internal",["parent","sibling","index"],"object","unknown"],internalPattern:["^[~@#]/.*"],newlinesBetween:"ignore",type:"natural"}],"perfectionist/sort-named-exports":["warn",{groupKind:"types-first"}],"perfectionist/sort-named-imports":["warn",{groupKind:"types-first"}]}}]}async function ge(e={}){return[{name:"ncontiero/prettier/setup",plugins:{prettier:await o(import("eslint-plugin-prettier"))}},{files:[c],name:"ncontiero/prettier/disables",rules:{"antfu/consistent-list-newline":"off","arrow-body-style":"off",curly:"off","no-unexpected-multiline":"off","prefer-arrow-callback":"off","unicorn/empty-brace-spaces":"off","unicorn/no-nested-ternary":"off","unicorn/number-literal-case":"off","unicorn/template-indent":"off"}},{files:[c],name:"ncontiero/prettier/rules",rules:{"prettier/prettier":["warn",e]}},{files:[m],languageOptions:{parser:u},name:"ncontiero/prettier/markdown",rules:{"prettier/prettier":["warn",{...e,parser:"markdown"}]}},{files:[W,Q],languageOptions:{parser:u},name:"ncontiero/prettier/css",rules:{"prettier/prettier":["warn",{...e,parser:"css"}]}},{files:[X],languageOptions:{parser:u},name:"ncontiero/prettier/scss",rules:{"prettier/prettier":["warn",{...e,parser:"scss"}]}},{files:[V],languageOptions:{parser:u},name:"ncontiero/prettier/less",rules:{"prettier/prettier":["warn",{...e,parser:"less"}]}}]}async function ye(){return[{...(await o(import("eslint-plugin-promise"))).configs["flat/recommended"],name:"ncontiero/promise/setup"},{name:"ncontiero/promise/rules",rules:{"promise/always-return":["error",{ignoreLastCallback:!0}],"promise/no-multiple-resolved":"warn"}}]}import{isPackageExists as B}from"local-pkg";var qe=["vite"],Ee=["@react-router/node","@react-router/react","@react-router/serve","@react-router/dev"],Ne=["next"];async function xe(e={}){let{files:r=[d],overrides:t={},reactQuery:n,typescript:i}=e;n&&te(["@tanstack/eslint-plugin-query"]);let[p,a,y,x]=await Promise.all([o(import("eslint-plugin-jsx-a11y")),o(import("eslint-plugin-react")),o(import("eslint-plugin-react-hooks")),o(import("eslint-plugin-react-refresh"))]),w=qe.some(s=>B(s)),k=Ee.some(s=>B(s)),h=Ne.some(s=>B(s));return[{files:r,name:"ncontiero/react/setup",plugins:{"jsx-a11y":p,react:a,"react-hooks":y,"react-refresh":x},settings:{react:{version:"detect"}}},n?{...(await o(import("@tanstack/eslint-plugin-query"))).configs["flat/recommended"][0],name:"ncontiero/tanstack-query"}:{},{files:r,languageOptions:{parserOptions:{ecmaFeatures:{jsx:!0}}},name:"ncontiero/react/rules",rules:{"react-hooks/component-hook-factories":"warn","react-hooks/error-boundaries":"warn","react-hooks/exhaustive-deps":"warn","react-hooks/globals":"warn","react-hooks/immutability":"warn","react-hooks/incompatible-library":"warn","react-hooks/preserve-manual-memoization":"warn","react-hooks/purity":"warn","react-hooks/refs":"warn","react-hooks/rules-of-hooks":"error","react-hooks/set-state-in-effect":"warn","react-hooks/set-state-in-render":"warn","react-hooks/static-components":"warn","react-hooks/unsupported-syntax":"warn","react-hooks/use-memo":"warn","react-refresh/only-export-components":["warn",{allowConstantExport:w,allowExportNames:[...h?["experimental_ppr","dynamic","dynamicParams","revalidate","fetchCache","runtime","preferredRegion","maxDuration","generateStaticParams","metadata","generateMetadata","viewport","generateViewport"]:[],...k?["meta","links","headers","loader","action","clientLoader","clientAction","handle","shouldRevalidate"]:[]]}],"react/boolean-prop-naming":["off",{rule:"^(is|has|are|can|should|did|will)[A-Z]([A-Za-z0-9])+",validateNested:!0}],"react/button-has-type":["error",{button:!0,reset:!1,submit:!0}],"react/display-name":["error",{ignoreTranspilerName:!1}],"react/hook-use-state":["error"],"react/iframe-missing-sandbox":["error"],"react/jsx-boolean-value":["error","never"],"react/jsx-filename-extension":["warn",{extensions:[".tsx"]}],"react/jsx-fragments":["error","syntax"],"react/jsx-handler-names":["error",{eventHandlerPrefix:"handle",eventHandlerPropPrefix:"on"}],"react/jsx-key":["error",{checkFragmentShorthand:!0,checkKeyMustBeforeSpread:!0,warnOnDuplicates:!0}],"react/jsx-no-bind":["error",{allowArrowFunctions:!0}],"react/jsx-no-comment-textnodes":"error","react/jsx-no-constructed-context-values":"error","react/jsx-no-duplicate-props":["error"],"react/jsx-no-leaked-render":["error"],"react/jsx-no-script-url":["error",[{name:"Link",props:["to"]}]],"react/jsx-no-target-blank":["error",{forms:!0,links:!0,warnOnSpreadAttributes:!0}],"react/jsx-no-undef":"error","react/jsx-no-useless-fragment":"error","react/jsx-uses-react":"error","react/jsx-uses-vars":"error","react/no-access-state-in-setstate":"error","react/no-array-index-key":"error","react/no-arrow-function-lifecycle":"error","react/no-children-prop":"error","react/no-danger":"error","react/no-danger-with-children":"error","react/no-deprecated":"error","react/no-did-update-set-state":"error","react/no-direct-mutation-state":"error","react/no-find-dom-node":"error","react/no-invalid-html-attribute":"error","react/no-is-mounted":"error","react/no-namespace":"error","react/no-object-type-as-default-prop":"error","react/no-redundant-should-component-update":"error","react/no-render-return-value":"error","react/no-string-refs":["error",{noTemplateLiterals:!0}],"react/no-this-in-sfc":["error"],"react/no-typos":["error"],"react/no-unescaped-entities":"error","react/no-unknown-property":"error","react/no-unstable-nested-components":["error"],"react/no-unused-class-component-methods":["error"],"react/no-unused-prop-types":["error",{customValidators:[],skipShapeProps:!0}],"react/no-unused-state":["error"],"react/no-will-update-set-state":["error"],"react/prefer-es6-class":["error","always"],"react/prefer-exact-props":["error"],"react/prefer-read-only-props":["error"],"react/prefer-stateless-function":["error",{ignorePureComponents:!0}],"react/prop-types":["error",{customValidators:[],ignore:[],skipUndeclared:!1}],"react/react-in-jsx-scope":"off","react/require-render-return":"error","react/self-closing-comp":["error",{component:!0,html:!0}],"react/sort-default-props":["error"],"react/state-in-constructor":["error","never"],"react/static-property-placement":["error","property assignment"],"react/style-prop-object":["error",{allow:["FormattedNumber"]}],"react/void-dom-elements-no-children":["error"],...i?{"react/jsx-no-undef":"off","react/prop-types":"off"}:{},"jsx-a11y/alt-text":["warn",{area:[],elements:["img","object","area",'input[type="image"]'],img:[],'input[type="image"]':[],object:[]}],"jsx-a11y/anchor-has-content":["warn",{components:[]}],"jsx-a11y/anchor-is-valid":["warn",{aspects:["noHref","invalidHref","preferButton"],components:["Link"],specialLink:["to"]}],"jsx-a11y/aria-activedescendant-has-tabindex":["warn"],"jsx-a11y/aria-props":["warn"],"jsx-a11y/aria-proptypes":["warn"],"jsx-a11y/aria-role":["warn",{ignoreNonDOM:!1}],"jsx-a11y/aria-unsupported-elements":["warn"],"jsx-a11y/autocomplete-valid":["off",{inputComponents:[]}],"jsx-a11y/click-events-have-key-events":["warn"],"jsx-a11y/control-has-associated-label":["warn",{controlComponents:[],depth:5,ignoreElements:["audio","canvas","embed","input","textarea","tr","video"],ignoreRoles:["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],labelAttributes:["label"]}],"jsx-a11y/heading-has-content":["warn",{components:[""]}],"jsx-a11y/html-has-lang":["warn"],"jsx-a11y/iframe-has-title":["warn"],"jsx-a11y/img-redundant-alt":["warn"],"jsx-a11y/interactive-supports-focus":["warn"],"jsx-a11y/label-has-associated-control":"warn","jsx-a11y/lang":["warn"],"jsx-a11y/media-has-caption":["warn",{audio:[],track:[],video:[]}],"jsx-a11y/mouse-events-have-key-events":["warn"],"jsx-a11y/no-access-key":["warn"],"jsx-a11y/no-autofocus":["warn",{ignoreNonDOM:!0}],"jsx-a11y/no-distracting-elements":["warn",{elements:["marquee","blink"]}],"jsx-a11y/no-interactive-element-to-noninteractive-role":["warn",{tr:["none","presentation"]}],"jsx-a11y/no-noninteractive-element-interactions":["warn",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/no-noninteractive-element-to-interactive-role":["warn",{li:["menuitem","option","row","tab","treeitem"],ol:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],table:["grid"],td:["gridcell"],ul:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"]}],"jsx-a11y/no-noninteractive-tabindex":["warn",{roles:["tabpanel"],tags:[]}],"jsx-a11y/no-redundant-roles":["warn"],"jsx-a11y/no-static-element-interactions":["off",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/role-has-required-aria-props":["warn"],"jsx-a11y/role-supports-aria-props":["warn"],"jsx-a11y/scope":["warn"],"jsx-a11y/tabindex-no-positive":["warn"],...t}}]}import{configs as Je}from"eslint-plugin-regexp";function we(e={}){let r=Je["flat/recommended"],t={...r.rules,...e.overrides};return[{...r,name:"ncontiero/regexp/rules",rules:t}]}function he(){return[{files:["**/package.json"],name:"ncontiero/sort/package-json",rules:{"jsonc/sort-array-values":["error",{order:{type:"asc"},pathPattern:"^files$"}],"jsonc/sort-keys":["error",{order:["publisher","name","displayName","type","version","private","packageManager","description","author","contributors","license","funding","homepage","repository","bugs","keywords","categories","sideEffects","imports","exports","main","module","unpkg","jsdelivr","browser","types","typesVersions","bin","icon","files","directories","publishConfig","scripts","peerDependencies","peerDependenciesMeta","optionalDependencies","dependencies","devDependencies","engines","prisma","config","pnpm","overrides","resolutions","husky","lint-staged","eslintConfig","prettier"],pathPattern:"^$"},{order:{type:"asc"},pathPattern:"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$"},{order:["types","require","import","default"],pathPattern:"^exports.*$"},{order:{type:"asc"},pathPattern:"^(?:resolutions|overrides|pnpm.overrides)$"},{order:{type:"asc"},pathPattern:"^workspaces\\.catalog$"},{order:{type:"asc"},pathPattern:"^workspaces\\.catalogs\\.[^.]+$"}]}}]}function Oe(){return[{files:["**/[jt]sconfig.json","**/[jt]sconfig.*.json"],name:"ncontiero/sort/tsconfig",rules:{"jsonc/sort-keys":["error",{order:["extends","compilerOptions","references","files","include","exclude"],pathPattern:"^$"},{order:["incremental","composite","tsBuildInfoFile","disableSourceOfProjectReferenceRedirect","disableSolutionSearching","disableReferencedProjectLoad","target","jsx","jsxFactory","jsxFragmentFactory","jsxImportSource","lib","moduleDetection","noLib","reactNamespace","useDefineForClassFields","emitDecoratorMetadata","experimentalDecorators","libReplacement","baseUrl","rootDir","rootDirs","customConditions","module","moduleResolution","moduleSuffixes","noResolve","paths","resolveJsonModule","resolvePackageJsonExports","resolvePackageJsonImports","typeRoots","types","allowArbitraryExtensions","allowImportingTsExtensions","allowUmdGlobalAccess","allowJs","checkJs","maxNodeModuleJsDepth","strict","strictBindCallApply","strictFunctionTypes","strictNullChecks","strictPropertyInitialization","allowUnreachableCode","allowUnusedLabels","alwaysStrict","exactOptionalPropertyTypes","noFallthroughCasesInSwitch","noImplicitAny","noImplicitOverride","noImplicitReturns","noImplicitThis","noPropertyAccessFromIndexSignature","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","useUnknownInCatchVariables","declaration","declarationDir","declarationMap","downlevelIteration","emitBOM","emitDeclarationOnly","importHelpers","importsNotUsedAsValues","inlineSourceMap","inlineSources","isolatedDeclarations","mapRoot","newLine","noEmit","noEmitHelpers","noEmitOnError","outDir","outFile","preserveConstEnums","preserveValueImports","removeComments","sourceMap","sourceRoot","stripInternal","allowSyntheticDefaultImports","esModuleInterop","forceConsistentCasingInFileNames","isolatedModules","preserveSymlinks","verbatimModuleSyntax","erasableSyntaxOnly","skipDefaultLibCheck","skipLibCheck"],pathPattern:"^compilerOptions$"}]}}]}import P from"path";async function be(e={}){let{overrides:r={}}=e,t=a=>P.isAbsolute(a)?a:P.resolve(process.cwd(),a),n=t(e.cssGlobalPath??P.join("src","app","globals.css")),i=t(e.configPath??P.join("tailwind.config.ts"));return[{name:"ncontiero/tailwindcss/setup",plugins:{tailwindcss:await o(import("eslint-plugin-better-tailwindcss"))},settings:{tailwindcss:{entryPoint:n,tailwindConfig:i}}},{files:[d,g],name:"ncontiero/tailwindcss/rules",rules:{"tailwindcss/enforce-consistent-class-order":"warn","tailwindcss/enforce-consistent-important-position":"warn","tailwindcss/enforce-consistent-line-wrapping":["warn",{group:"never",preferSingleLine:!0,printWidth:120}],"tailwindcss/enforce-consistent-variable-syntax":"error","tailwindcss/enforce-shorthand-classes":"warn","tailwindcss/no-conflicting-classes":"error","tailwindcss/no-deprecated-classes":"error","tailwindcss/no-duplicate-classes":"error","tailwindcss/no-restricted-classes":"error","tailwindcss/no-unknown-classes":"warn","tailwindcss/no-unnecessary-whitespace":"warn",...r}}]}async function ve(e={}){let{files:r=[Z],overrides:t={},style:n=!0}=e,{indent:i=2}=typeof n=="boolean"?{}:n,[p,a]=await Promise.all([o(import("eslint-plugin-toml")),o(import("toml-eslint-parser"))]);return[{name:"ncontiero/toml/setup",plugins:{toml:p}},{files:r,languageOptions:{parser:a},name:"ncontiero/toml/rules",rules:{"toml/array-bracket-newline":"error","toml/array-bracket-spacing":"error","toml/array-element-newline":"off","toml/comma-style":"error","toml/indent":["error",i],"toml/inline-table-curly-spacing":"error","toml/key-spacing":"error","toml/keys-order":"error","toml/no-space-dots":"error","toml/no-unreadable-number-separator":"error","toml/padding-line-between-pairs":"error","toml/padding-line-between-tables":"error","toml/precision-of-fractional-seconds":"error","toml/precision-of-integer":"error","toml/quoted-keys":"error","toml/spaced-comment":"error","toml/table-bracket-spacing":"error","toml/tables-order":"error","toml/vue-custom-block/no-parsing-error":"error","unicorn/filename-case":"off",...t}}]}async function je(e={}){let{files:r=[b,v],overrides:t={},parserOptions:n={}}=e,[i,p]=await Promise.all([o(import("@typescript-eslint/eslint-plugin")),o(import("@typescript-eslint/parser"))]);return[{name:"ncontiero/typescript/setup",plugins:{"@typescript-eslint":i}},{files:r,languageOptions:{parser:p,parserOptions:{sourceType:"module",...n}},name:"ncontiero/typescript/parser"},{files:r,name:"ncontiero/typescript/rules",rules:{...i.configs["eslint-recommended"].overrides[0].rules,...i.configs.recommended.rules,"@typescript-eslint/ban-ts-comment":["error",{"ts-ignore":"allow-with-description"}],"@typescript-eslint/consistent-type-assertions":["error",{assertionStyle:"as",objectLiteralTypeAssertions:"allow-as-parameter"}],"@typescript-eslint/consistent-type-imports":["error",{disallowTypeAnnotations:!1,fixStyle:"inline-type-imports"}],"@typescript-eslint/method-signature-style":["error","property"],"@typescript-eslint/no-empty-object-type":["error",{allowInterfaces:"always"}],"@typescript-eslint/no-explicit-any":"off","@typescript-eslint/no-import-type-side-effects":"error","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/no-redeclare":"error","@typescript-eslint/no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!1,allowTernary:!0,enforceForJSX:!0}],"@typescript-eslint/no-unused-vars":"off","@typescript-eslint/no-useless-constructor":"error","@typescript-eslint/no-wrapper-object-types":"error","@typescript-eslint/prefer-as-const":"warn","@typescript-eslint/prefer-literal-enum-member":["error",{allowBitwiseExpressions:!0}],"no-restricted-syntax":["error",...S,"TSEnumDeclaration[const=true]"],...t}},{files:["**/*.d.ts"],name:"ncontiero/typescript/dts-rules",rules:{"eslint-comments/no-unlimited-disable":"off","import/no-duplicates":"off","no-restricted-syntax":["error",...S],"unused-imports/no-unused-vars":"off"}},{files:[$,"**/*.cjs"],name:"ncontiero/typescript/cjs-rules",rules:{"@typescript-eslint/no-require-imports":"off"}}]}function ke(e={}){let{allRecommended:r,overrides:t={},regexp:n=!1}=e;return[{name:"ncontiero/unicorn/rules",plugins:{unicorn:T},rules:{...r?T.configs.recommended.rules:{"unicorn/better-regex":n?"off":"error","unicorn/catch-error-name":"error","unicorn/consistent-date-clone":"error","unicorn/consistent-empty-array-spread":"error","unicorn/consistent-existence-index-check":"error","unicorn/consistent-function-scoping":"error","unicorn/custom-error-definition":"error","unicorn/error-message":"error","unicorn/escape-case":"error","unicorn/explicit-length-check":"error","unicorn/new-for-builtins":"error","unicorn/no-array-callback-reference":"error","unicorn/no-array-method-this-argument":"error","unicorn/no-await-in-promise-methods":"error","unicorn/no-console-spaces":"error","unicorn/no-for-loop":"error","unicorn/no-hex-escape":"error","unicorn/no-instanceof-builtins":"error","unicorn/no-invalid-remove-event-listener":"error","unicorn/no-lonely-if":"error","unicorn/no-negation-in-equality-check":"error","unicorn/no-new-array":"error","unicorn/no-new-buffer":"error","unicorn/no-single-promise-in-promise-methods":"error","unicorn/no-static-only-class":"error","unicorn/no-unnecessary-array-flat-depth":"error","unicorn/no-unnecessary-array-splice-count":"error","unicorn/no-unnecessary-await":"error","unicorn/no-unnecessary-slice-end":"error","unicorn/no-zero-fractions":"error","unicorn/number-literal-case":"error","unicorn/prefer-add-event-listener":"error","unicorn/prefer-array-find":"error","unicorn/prefer-array-flat-map":"error","unicorn/prefer-array-index-of":"error","unicorn/prefer-array-some":"error","unicorn/prefer-at":"error","unicorn/prefer-blob-reading-methods":"error","unicorn/prefer-class-fields":"error","unicorn/prefer-date-now":"error","unicorn/prefer-dom-node-append":"error","unicorn/prefer-dom-node-dataset":"error","unicorn/prefer-dom-node-remove":"error","unicorn/prefer-dom-node-text-content":"error","unicorn/prefer-includes":"error","unicorn/prefer-keyboard-event-key":"error","unicorn/prefer-math-min-max":"error","unicorn/prefer-math-trunc":"error","unicorn/prefer-modern-dom-apis":"error","unicorn/prefer-modern-math-apis":"error","unicorn/prefer-negative-index":"error","unicorn/prefer-node-protocol":"error","unicorn/prefer-number-properties":"error","unicorn/prefer-optional-catch-binding":"error","unicorn/prefer-prototype-methods":"error","unicorn/prefer-query-selector":"error","unicorn/prefer-reflect-apply":"error","unicorn/prefer-regexp-test":"error","unicorn/prefer-single-call":"error","unicorn/prefer-string-replace-all":"error","unicorn/prefer-string-slice":"error","unicorn/prefer-string-starts-ends-with":"error","unicorn/prefer-string-trim-start-end":"error","unicorn/prefer-type-error":"error","unicorn/throw-new-error":"error"},...t}}]}async function Ce(e={}){let{files:r=[_],overrides:t={},style:n=!0}=e,{indent:i=2,quotes:p="double"}=typeof n=="boolean"?{}:n,[a,y]=await Promise.all([o(import("eslint-plugin-yml")),o(import("yaml-eslint-parser"))]);return[{name:"ncontiero/yml/setup",plugins:{yml:a}},{files:r,languageOptions:{parser:y},name:"ncontiero/yml/rules",rules:{"yml/block-mapping":"error","yml/block-mapping-question-indicator-newline":"error","yml/block-sequence":"error","yml/block-sequence-hyphen-indicator-newline":"error","yml/flow-mapping-curly-newline":"error","yml/flow-mapping-curly-spacing":"error","yml/flow-sequence-bracket-newline":"error","yml/flow-sequence-bracket-spacing":"error","yml/indent":["error",i],"yml/key-spacing":"error","yml/no-empty-document":"error","yml/no-empty-key":"error","yml/no-empty-sequence-entry":"error","yml/no-irregular-whitespace":"error","yml/no-tab-indent":"error","yml/plain-scalar":"error","yml/quotes":["error",{avoidEscape:!1,prefer:p}],"yml/spaced-comment":"error","yml/vue-custom-block/no-parsing-error":"error",...t}},{files:["pnpm-workspace.yaml"],name:"ncontiero/yml/pnpm-workspace",rules:{"yml/sort-keys":["error",{order:["packages","overrides","patchedDependencies","hoistPattern","catalog","catalogs","allowedDeprecatedVersions","allowNonAppliedPatches","allowUnusedPatches","configDependencies","ignoredBuiltDependencies","ignoredOptionalDependencies","ignorePatchFailures","neverBuiltDependencies","onlyBuiltDependencies","onlyBuiltDependenciesFile","packageExtensions","peerDependencyRules","supportedArchitectures"],pathPattern:"^$"},{order:{type:"asc"},pathPattern:".*"}]}}]}import{isPackageExists as j}from"local-pkg";var Se=j("typescript"),Pe=j("react"),Le=j("next"),Fe=j("tailwindcss"),Te=j("@tanstack/react-query");var Ue=["name","languageOptions","linterOptions","processor","plugins","rules","settings"];function L(e,r){return typeof e[r]=="boolean"?{}:e[r]||{}}function l(e,r){let t=L(e,r);return{...("overrides"in e?e.overrides:{})?.[r],..."overrides"in t?t.overrides:{}}}function He(e){return"tabWidth"in e||"singleQuote"in e||"semi"in e?{indent:e.tabWidth||2,quotes:e.singleQuote?"single":"double",semi:e.semi??!0}:!1}function $o(e={},...r){let{gitignore:t=!0,nextjs:n=Le,react:i=Pe,reactQuery:p=Te,regexp:a=!0,tailwindcss:y=Fe,typescript:x=Se,unicorn:w=!0}=e,k=typeof e.prettier=="object"?e.prettier:{},h=He(k),s=[];if(t&&(typeof t!="boolean"?s.push(o(import("eslint-config-flat-gitignore")).then(f=>[f({name:"ncontiero/gitignore",...t})])):s.push(o(import("eslint-config-flat-gitignore")).then(f=>[f({name:"ncontiero/gitignore",strict:!1})]))),x||(e.ignores?e.ignores.push(b,v):e.ignores=[b,v]),s.push(ie(e.ignores),pe({overrides:l(e,"javascript")}),H(),le(),ae({nextJs:!!n}),fe(),ye(),A(),de(),K()),w&&s.push(ke(w===!0?{regexp:!!a}:w)),x&&s.push(je({...L(e,"typescript"),overrides:l(e,"typescript")})),(e.jsonc??!0)&&s.push(ce({overrides:l(e,"jsonc"),style:h}),he(),Oe()),(e.yaml??!0)&&s.push(Ce({overrides:l(e,"yaml"),style:h})),(e.toml??!0)&&s.push(ve({overrides:l(e,"toml"),style:h})),(e.markdown??!0)&&s.push(me({overrides:l(e,"markdown")})),a&&s.push(we(typeof a=="boolean"?{}:a)),i&&s.push(xe({overrides:l(e,"react"),reactQuery:!!p,typescript:!!x})),n&&s.push(ue({overrides:l(e,"nextjs")})),(e.html??!0)&&s.push(se({...L(e,"html"),overrides:l(e,"html")})),y&&s.push(be({...L(e,"tailwindcss"),overrides:l(e,"tailwindcss")})),(e.prettier??!0)&&s.push(ge(k)),"files"in e)throw new Error('[@ncontiero/eslint-config] The first argument should not contain the "files" property as the options are supposed to be global. Place it in the second or later config instead.');let G=Ue.reduce((f,F)=>(F in e&&(f[F]=e[F]),f),{});return Object.keys(G).length>0&&s.push([G]),ne(...s,...r)}export{ar as GLOB_ALL_SRC,W as GLOB_CSS,De as GLOB_DIST,re as GLOB_EXCLUDE,g as GLOB_HTML,$ as GLOB_JS,I as GLOB_JSON,R as GLOB_JSON5,Y as GLOB_JSONC,ir as GLOB_JSX,V as GLOB_LESS,Be as GLOB_LOCKFILE,m as GLOB_MARKDOWN,ee as GLOB_MARKDOWN_CODE,z as GLOB_MARKDOWN_IN_MARKDOWN,_e as GLOB_NODE_MODULES,Q as GLOB_POSTCSS,d as GLOB_REACT,X as GLOB_SCSS,c as GLOB_SRC,O as GLOB_SRC_EXT,Re as GLOB_STYLE,Z as GLOB_TOML,b as GLOB_TS,v as GLOB_TSX,_ as GLOB_YAML,cr as combine,A as command,H as comments,ne as composer,K as deMorgan,te as ensurePackages,l as getOverrides,Le as hasNextJs,Pe as hasReact,Fe as hasTailwind,Te as hasTanStackReactQuery,Se as hasTypeScript,se as html,ie as ignores,ae as imports,o as interopDefault,pe as javascript,le as jsdoc,ce as jsonc,me as markdown,$o as ncontiero,ue as nextJs,fe as node,u as parserPlain,de as perfectionist,ge as prettier,ye as promise,xe as react,we as regexp,L as resolveSubOptions,S as restrictedSyntaxJs,he as sortPackageJson,Oe as sortTsconfig,be as tailwindcss,mr as toArray,ve as toml,je as typescript,ke as unicorn,Ce as yml};
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@ncontiero/eslint-config",
3
3
  "type": "module",
4
- "version": "6.3.0-beta.9",
5
- "packageManager": "pnpm@10.18.0",
4
+ "version": "6.3.1",
6
5
  "description": "Nicolas's ESLint config.",
7
6
  "author": {
8
7
  "name": "Nicolas Contiero",
@@ -28,18 +27,6 @@
28
27
  "publishConfig": {
29
28
  "access": "public"
30
29
  },
31
- "scripts": {
32
- "build": "pnpm typegen && tsup",
33
- "dev": "pnpm dlx @eslint/config-inspector --config eslint-inspector.config.ts",
34
- "build:inspector": "pnpm build && pnpm dlx @eslint/config-inspector build --config eslint-inspector.config.ts",
35
- "typegen": "tsx scripts/typegen.ts",
36
- "lint": "eslint .",
37
- "lint:fix": "pnpm lint --fix",
38
- "changeset": "changeset",
39
- "test": "vitest",
40
- "typecheck": "tsc --noEmit",
41
- "prepare": "husky"
42
- },
43
30
  "peerDependencies": {
44
31
  "@tanstack/eslint-plugin-query": ">=5.50.0",
45
32
  "eslint": ">=9.20.0"
@@ -51,10 +38,12 @@
51
38
  },
52
39
  "dependencies": {
53
40
  "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
54
- "@eslint/markdown": "^7.3.0",
41
+ "@eslint/markdown": "^7.4.0",
42
+ "@html-eslint/eslint-plugin": "^0.47.0",
43
+ "@html-eslint/parser": "^0.47.0",
55
44
  "@next/eslint-plugin-next": "^15.5.4",
56
- "@typescript-eslint/eslint-plugin": "^8.45.0",
57
- "@typescript-eslint/parser": "^8.45.0",
45
+ "@typescript-eslint/eslint-plugin": "^8.46.0",
46
+ "@typescript-eslint/parser": "^8.46.0",
58
47
  "eslint-config-flat-gitignore": "^2.1.0",
59
48
  "eslint-merge-processors": "^2.0.0",
60
49
  "eslint-plugin-antfu": "^3.1.1",
@@ -62,7 +51,7 @@
62
51
  "eslint-plugin-command": "^3.3.1",
63
52
  "eslint-plugin-de-morgan": "^2.0.0",
64
53
  "eslint-plugin-import-x": "^4.16.1",
65
- "eslint-plugin-jsdoc": "^60.8.0",
54
+ "eslint-plugin-jsdoc": "^61.1.1",
66
55
  "eslint-plugin-jsonc": "^2.21.0",
67
56
  "eslint-plugin-jsx-a11y": "^6.10.2",
68
57
  "eslint-plugin-n": "^17.23.1",
@@ -70,7 +59,7 @@
70
59
  "eslint-plugin-prettier": "^5.5.4",
71
60
  "eslint-plugin-promise": "^7.2.1",
72
61
  "eslint-plugin-react": "^7.37.5",
73
- "eslint-plugin-react-hooks": "^6.1.1",
62
+ "eslint-plugin-react-hooks": "^7.0.0",
74
63
  "eslint-plugin-react-refresh": "^0.4.23",
75
64
  "eslint-plugin-regexp": "^2.10.0",
76
65
  "eslint-plugin-toml": "^0.12.0",
@@ -92,12 +81,12 @@
92
81
  "@ncontiero/prettier-config": "^1.0.0",
93
82
  "@tanstack/eslint-plugin-query": "^5.91.0",
94
83
  "@types/eslint-plugin-jsx-a11y": "^6.10.1",
95
- "@types/node": "^24.6.2",
84
+ "@types/node": "^24.7.2",
96
85
  "eslint": "^9.37.0",
97
86
  "eslint-typegen": "^2.3.0",
98
87
  "execa": "^9.6.0",
99
88
  "husky": "^9.1.7",
100
- "lint-staged": "^16.2.3",
89
+ "lint-staged": "^16.2.4",
101
90
  "tinyglobby": "^0.2.15",
102
91
  "tsup": "^8.5.0",
103
92
  "tsx": "^4.20.6",
@@ -110,5 +99,17 @@
110
99
  "lint-staged": {
111
100
  "*": "pnpm lint:fix"
112
101
  },
113
- "prettier": "@ncontiero/prettier-config"
114
- }
102
+ "prettier": "@ncontiero/prettier-config",
103
+ "scripts": {
104
+ "build": "pnpm typegen && tsup",
105
+ "dev": "pnpm dlx @eslint/config-inspector --config eslint-inspector.config.ts",
106
+ "build:inspector": "pnpm build && pnpm dlx @eslint/config-inspector build --config eslint-inspector.config.ts",
107
+ "typegen": "tsx scripts/typegen.ts",
108
+ "test": "vitest",
109
+ "lint": "eslint .",
110
+ "lint:fix": "pnpm lint --fix",
111
+ "typecheck": "tsc --noEmit",
112
+ "check": "pnpm lint && pnpm typecheck",
113
+ "release": "changeset publish"
114
+ }
115
+ }