@favorodera/eslint-config 0.0.5 → 0.0.7

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/dist/index.d.mts CHANGED
@@ -2377,6 +2377,41 @@ interface RuleOptions {
2377
2377
  * @see https://perfectionist.dev/rules/sort-variable-declarations
2378
2378
  */
2379
2379
  'perfectionist/sort-variable-declarations'?: Linter.RuleEntry<PerfectionistSortVariableDeclarations>;
2380
+ /**
2381
+ * Enforce using "catalog:" in `package.json`
2382
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-enforce-catalog.test.ts
2383
+ */
2384
+ 'pnpm/json-enforce-catalog'?: Linter.RuleEntry<PnpmJsonEnforceCatalog>;
2385
+ /**
2386
+ * Prefer having pnpm settings in `pnpm-workspace.yaml` instead of `package.json`. This requires pnpm v10.6+, see https://github.com/orgs/pnpm/discussions/9037.
2387
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-prefer-workspace-settings.test.ts
2388
+ */
2389
+ 'pnpm/json-prefer-workspace-settings'?: Linter.RuleEntry<PnpmJsonPreferWorkspaceSettings>;
2390
+ /**
2391
+ * Enforce using valid catalog in `package.json`
2392
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/json/json-valid-catalog.test.ts
2393
+ */
2394
+ 'pnpm/json-valid-catalog'?: Linter.RuleEntry<PnpmJsonValidCatalog>;
2395
+ /**
2396
+ * Enforce settings in `pnpm-workspace.yaml`
2397
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-enforce-settings.test.ts
2398
+ */
2399
+ 'pnpm/yaml-enforce-settings'?: Linter.RuleEntry<PnpmYamlEnforceSettings>;
2400
+ /**
2401
+ * Disallow duplicate catalog items in `pnpm-workspace.yaml`
2402
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-duplicate-catalog-item.test.ts
2403
+ */
2404
+ 'pnpm/yaml-no-duplicate-catalog-item'?: Linter.RuleEntry<PnpmYamlNoDuplicateCatalogItem>;
2405
+ /**
2406
+ * Disallow unused catalogs in `pnpm-workspace.yaml`
2407
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-no-unused-catalog-item.test.ts
2408
+ */
2409
+ 'pnpm/yaml-no-unused-catalog-item'?: Linter.RuleEntry<[]>;
2410
+ /**
2411
+ * Ensure all package patterns in `pnpm-workspace.yaml` match at least one directory
2412
+ * @see https://github.com/antfu/pnpm-workspace-utils/tree/main/packages/eslint-plugin-pnpm/src/rules/yaml/yaml-valid-packages.test.ts
2413
+ */
2414
+ 'pnpm/yaml-valid-packages'?: Linter.RuleEntry<[]>;
2380
2415
  /**
2381
2416
  * Require using arrow functions for callbacks
2382
2417
  * @see https://eslint.org/docs/latest/rules/prefer-arrow-callback
@@ -3151,6 +3186,417 @@ interface RuleOptions {
3151
3186
  * @deprecated
3152
3187
  */
3153
3188
  'template-tag-spacing'?: Linter.RuleEntry<TemplateTagSpacing>;
3189
+ /**
3190
+ * enforce using `.each` or `.for` consistently
3191
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-each-for.md
3192
+ */
3193
+ 'test/consistent-each-for'?: Linter.RuleEntry<TestConsistentEachFor>;
3194
+ /**
3195
+ * require test file pattern
3196
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
3197
+ */
3198
+ 'test/consistent-test-filename'?: Linter.RuleEntry<TestConsistentTestFilename>;
3199
+ /**
3200
+ * enforce using test or it but not both
3201
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-it.md
3202
+ */
3203
+ 'test/consistent-test-it'?: Linter.RuleEntry<TestConsistentTestIt>;
3204
+ /**
3205
+ * enforce using vitest or vi but not both
3206
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-vitest-vi.md
3207
+ */
3208
+ 'test/consistent-vitest-vi'?: Linter.RuleEntry<TestConsistentVitestVi>;
3209
+ /**
3210
+ * enforce having expectation in test body
3211
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/expect-expect.md
3212
+ */
3213
+ 'test/expect-expect'?: Linter.RuleEntry<TestExpectExpect>;
3214
+ /**
3215
+ * enforce hoisted APIs to be on top of the file
3216
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/hoisted-apis-on-top.md
3217
+ */
3218
+ 'test/hoisted-apis-on-top'?: Linter.RuleEntry<[]>;
3219
+ /**
3220
+ * enforce a maximum number of expect per test
3221
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md
3222
+ */
3223
+ 'test/max-expects'?: Linter.RuleEntry<TestMaxExpects>;
3224
+ /**
3225
+ * require describe block to be less than set max value or default value
3226
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/max-nested-describe.md
3227
+ */
3228
+ 'test/max-nested-describe'?: Linter.RuleEntry<TestMaxNestedDescribe>;
3229
+ /**
3230
+ * disallow alias methods
3231
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-alias-methods.md
3232
+ */
3233
+ 'test/no-alias-methods'?: Linter.RuleEntry<[]>;
3234
+ /**
3235
+ * disallow commented out tests
3236
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-commented-out-tests.md
3237
+ */
3238
+ 'test/no-commented-out-tests'?: Linter.RuleEntry<[]>;
3239
+ /**
3240
+ * disallow conditional expects
3241
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-expect.md
3242
+ */
3243
+ 'test/no-conditional-expect'?: Linter.RuleEntry<TestNoConditionalExpect>;
3244
+ /**
3245
+ * disallow conditional tests
3246
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-in-test.md
3247
+ */
3248
+ 'test/no-conditional-in-test'?: Linter.RuleEntry<[]>;
3249
+ /**
3250
+ * disallow conditional tests
3251
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-conditional-tests.md
3252
+ */
3253
+ 'test/no-conditional-tests'?: Linter.RuleEntry<[]>;
3254
+ /**
3255
+ * disallow disabled tests
3256
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-disabled-tests.md
3257
+ */
3258
+ 'test/no-disabled-tests'?: Linter.RuleEntry<[]>;
3259
+ /**
3260
+ * disallow using a callback in asynchronous tests and hooks
3261
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-done-callback.md
3262
+ * @deprecated
3263
+ */
3264
+ 'test/no-done-callback'?: Linter.RuleEntry<[]>;
3265
+ /**
3266
+ * disallow duplicate hooks and teardown hooks
3267
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-duplicate-hooks.md
3268
+ */
3269
+ 'test/no-duplicate-hooks'?: Linter.RuleEntry<[]>;
3270
+ /**
3271
+ * disallow focused tests
3272
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-focused-tests.md
3273
+ */
3274
+ 'test/no-focused-tests'?: Linter.RuleEntry<TestNoFocusedTests>;
3275
+ /**
3276
+ * disallow setup and teardown hooks
3277
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-hooks.md
3278
+ */
3279
+ 'test/no-hooks'?: Linter.RuleEntry<TestNoHooks>;
3280
+ /**
3281
+ * disallow identical titles
3282
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-identical-title.md
3283
+ */
3284
+ 'test/no-identical-title'?: Linter.RuleEntry<[]>;
3285
+ /**
3286
+ * disallow importing `node:test`
3287
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-import-node-test.md
3288
+ */
3289
+ 'test/no-import-node-test'?: Linter.RuleEntry<[]>;
3290
+ /**
3291
+ * disallow importing Vitest globals
3292
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-importing-vitest-globals.md
3293
+ */
3294
+ 'test/no-importing-vitest-globals'?: Linter.RuleEntry<[]>;
3295
+ /**
3296
+ * disallow string interpolation in snapshots
3297
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-interpolation-in-snapshots.md
3298
+ */
3299
+ 'test/no-interpolation-in-snapshots'?: Linter.RuleEntry<[]>;
3300
+ /**
3301
+ * disallow large snapshots
3302
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-large-snapshots.md
3303
+ */
3304
+ 'test/no-large-snapshots'?: Linter.RuleEntry<TestNoLargeSnapshots>;
3305
+ /**
3306
+ * disallow importing from __mocks__ directory
3307
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-mocks-import.md
3308
+ */
3309
+ 'test/no-mocks-import'?: Linter.RuleEntry<[]>;
3310
+ /**
3311
+ * disallow the use of certain matchers
3312
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-matchers.md
3313
+ */
3314
+ 'test/no-restricted-matchers'?: Linter.RuleEntry<TestNoRestrictedMatchers>;
3315
+ /**
3316
+ * disallow specific `vi.` methods
3317
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-vi-methods.md
3318
+ */
3319
+ 'test/no-restricted-vi-methods'?: Linter.RuleEntry<TestNoRestrictedViMethods>;
3320
+ /**
3321
+ * disallow using `expect` outside of `it` or `test` blocks
3322
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-standalone-expect.md
3323
+ */
3324
+ 'test/no-standalone-expect'?: Linter.RuleEntry<TestNoStandaloneExpect>;
3325
+ /**
3326
+ * disallow using the `f` and `x` prefixes in favour of `.only` and `.skip`
3327
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-prefixes.md
3328
+ */
3329
+ 'test/no-test-prefixes'?: Linter.RuleEntry<[]>;
3330
+ /**
3331
+ * disallow return statements in tests
3332
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-test-return-statement.md
3333
+ */
3334
+ 'test/no-test-return-statement'?: Linter.RuleEntry<[]>;
3335
+ /**
3336
+ * Disallow unnecessary async function wrapper for expected promises
3337
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/no-unneeded-async-expect-function.md
3338
+ */
3339
+ 'test/no-unneeded-async-expect-function'?: Linter.RuleEntry<[]>;
3340
+ /**
3341
+ * Enforce padding around `afterAll` blocks
3342
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-all-blocks.md
3343
+ */
3344
+ 'test/padding-around-after-all-blocks'?: Linter.RuleEntry<[]>;
3345
+ /**
3346
+ * Enforce padding around `afterEach` blocks
3347
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-after-each-blocks.md
3348
+ */
3349
+ 'test/padding-around-after-each-blocks'?: Linter.RuleEntry<[]>;
3350
+ /**
3351
+ * Enforce padding around vitest functions
3352
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-all.md
3353
+ */
3354
+ 'test/padding-around-all'?: Linter.RuleEntry<[]>;
3355
+ /**
3356
+ * Enforce padding around `beforeAll` blocks
3357
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-before-all-blocks.md
3358
+ */
3359
+ 'test/padding-around-before-all-blocks'?: Linter.RuleEntry<[]>;
3360
+ /**
3361
+ * Enforce padding around `beforeEach` blocks
3362
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-before-each-blocks.md
3363
+ */
3364
+ 'test/padding-around-before-each-blocks'?: Linter.RuleEntry<[]>;
3365
+ /**
3366
+ * Enforce padding around `describe` blocks
3367
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-describe-blocks.md
3368
+ */
3369
+ 'test/padding-around-describe-blocks'?: Linter.RuleEntry<[]>;
3370
+ /**
3371
+ * Enforce padding around `expect` groups
3372
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-expect-groups.md
3373
+ */
3374
+ 'test/padding-around-expect-groups'?: Linter.RuleEntry<[]>;
3375
+ /**
3376
+ * Enforce padding around `test` blocks
3377
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/padding-around-test-blocks.md
3378
+ */
3379
+ 'test/padding-around-test-blocks'?: Linter.RuleEntry<[]>;
3380
+ /**
3381
+ * Prefer `toHaveBeenCalledExactlyOnceWith` over `toHaveBeenCalledOnce` and `toHaveBeenCalledWith`
3382
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-exactly-once-with.md
3383
+ */
3384
+ 'test/prefer-called-exactly-once-with'?: Linter.RuleEntry<[]>;
3385
+ /**
3386
+ * enforce using `toBeCalledOnce()` or `toHaveBeenCalledOnce()`
3387
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-once.md
3388
+ */
3389
+ 'test/prefer-called-once'?: Linter.RuleEntry<[]>;
3390
+ /**
3391
+ * enforce using `toBeCalledTimes(1)` or `toHaveBeenCalledTimes(1)`
3392
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-times.md
3393
+ */
3394
+ 'test/prefer-called-times'?: Linter.RuleEntry<[]>;
3395
+ /**
3396
+ * enforce using `toBeCalledWith()` or `toHaveBeenCalledWith()`
3397
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-called-with.md
3398
+ */
3399
+ 'test/prefer-called-with'?: Linter.RuleEntry<[]>;
3400
+ /**
3401
+ * enforce using the built-in comparison matchers
3402
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-comparison-matcher.md
3403
+ */
3404
+ 'test/prefer-comparison-matcher'?: Linter.RuleEntry<[]>;
3405
+ /**
3406
+ * enforce using a function as a describe title over an equivalent string
3407
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-describe-function-title.md
3408
+ */
3409
+ 'test/prefer-describe-function-title'?: Linter.RuleEntry<[]>;
3410
+ /**
3411
+ * enforce using `each` rather than manual loops
3412
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-each.md
3413
+ */
3414
+ 'test/prefer-each'?: Linter.RuleEntry<[]>;
3415
+ /**
3416
+ * enforce using the built-in equality matchers
3417
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md
3418
+ */
3419
+ 'test/prefer-equality-matcher'?: Linter.RuleEntry<[]>;
3420
+ /**
3421
+ * enforce using expect assertions instead of callbacks
3422
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-assertions.md
3423
+ */
3424
+ 'test/prefer-expect-assertions'?: Linter.RuleEntry<TestPreferExpectAssertions>;
3425
+ /**
3426
+ * enforce using `expect().resolves` over `expect(await ...)` syntax
3427
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-resolves.md
3428
+ */
3429
+ 'test/prefer-expect-resolves'?: Linter.RuleEntry<[]>;
3430
+ /**
3431
+ * enforce using `expect(...).toBeTypeOf(...)` instead of `expect(typeof ...).toBe(...)`
3432
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-expect-type-of.md
3433
+ */
3434
+ 'test/prefer-expect-type-of'?: Linter.RuleEntry<[]>;
3435
+ /**
3436
+ * enforce having hooks in consistent order
3437
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-in-order.md
3438
+ */
3439
+ 'test/prefer-hooks-in-order'?: Linter.RuleEntry<[]>;
3440
+ /**
3441
+ * enforce having hooks before any test cases
3442
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-hooks-on-top.md
3443
+ */
3444
+ 'test/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
3445
+ /**
3446
+ * prefer dynamic import in mock
3447
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-import-in-mock.md
3448
+ */
3449
+ 'test/prefer-import-in-mock'?: Linter.RuleEntry<TestPreferImportInMock>;
3450
+ /**
3451
+ * enforce importing Vitest globals
3452
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-importing-vitest-globals.md
3453
+ */
3454
+ 'test/prefer-importing-vitest-globals'?: Linter.RuleEntry<[]>;
3455
+ /**
3456
+ * enforce lowercase titles
3457
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-lowercase-title.md
3458
+ */
3459
+ 'test/prefer-lowercase-title'?: Linter.RuleEntry<TestPreferLowercaseTitle>;
3460
+ /**
3461
+ * enforce mock resolved/rejected shorthands for promises
3462
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-mock-promise-shorthand.md
3463
+ */
3464
+ 'test/prefer-mock-promise-shorthand'?: Linter.RuleEntry<[]>;
3465
+ /**
3466
+ * Prefer mock return shorthands
3467
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-mock-return-shorthand.md
3468
+ */
3469
+ 'test/prefer-mock-return-shorthand'?: Linter.RuleEntry<[]>;
3470
+ /**
3471
+ * enforce including a hint with external snapshots
3472
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-snapshot-hint.md
3473
+ */
3474
+ 'test/prefer-snapshot-hint'?: Linter.RuleEntry<TestPreferSnapshotHint>;
3475
+ /**
3476
+ * enforce using `vi.spyOn`
3477
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-spy-on.md
3478
+ */
3479
+ 'test/prefer-spy-on'?: Linter.RuleEntry<[]>;
3480
+ /**
3481
+ * enforce using `toBe(true)` and `toBe(false)` over matchers that coerce types to boolean
3482
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-boolean-matchers.md
3483
+ */
3484
+ 'test/prefer-strict-boolean-matchers'?: Linter.RuleEntry<[]>;
3485
+ /**
3486
+ * enforce strict equal over equal
3487
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-strict-equal.md
3488
+ */
3489
+ 'test/prefer-strict-equal'?: Linter.RuleEntry<[]>;
3490
+ /**
3491
+ * enforce using toBe()
3492
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be.md
3493
+ */
3494
+ 'test/prefer-to-be'?: Linter.RuleEntry<[]>;
3495
+ /**
3496
+ * enforce using toBeFalsy()
3497
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-falsy.md
3498
+ */
3499
+ 'test/prefer-to-be-falsy'?: Linter.RuleEntry<[]>;
3500
+ /**
3501
+ * enforce using toBeObject()
3502
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-object.md
3503
+ */
3504
+ 'test/prefer-to-be-object'?: Linter.RuleEntry<[]>;
3505
+ /**
3506
+ * enforce using `toBeTruthy`
3507
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-be-truthy.md
3508
+ */
3509
+ 'test/prefer-to-be-truthy'?: Linter.RuleEntry<[]>;
3510
+ /**
3511
+ * enforce using toContain()
3512
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-contain.md
3513
+ */
3514
+ 'test/prefer-to-contain'?: Linter.RuleEntry<[]>;
3515
+ /**
3516
+ * Suggest using `toHaveBeenCalledTimes()`
3517
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-been-called-times.md
3518
+ */
3519
+ 'test/prefer-to-have-been-called-times'?: Linter.RuleEntry<[]>;
3520
+ /**
3521
+ * enforce using toHaveLength()
3522
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-to-have-length.md
3523
+ */
3524
+ 'test/prefer-to-have-length'?: Linter.RuleEntry<[]>;
3525
+ /**
3526
+ * enforce using `test.todo`
3527
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-todo.md
3528
+ */
3529
+ 'test/prefer-todo'?: Linter.RuleEntry<[]>;
3530
+ /**
3531
+ * require `vi.mocked()` over `fn as Mock`
3532
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
3533
+ */
3534
+ 'test/prefer-vi-mocked'?: Linter.RuleEntry<[]>;
3535
+ /**
3536
+ * ensure that every `expect.poll` call is awaited
3537
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-awaited-expect-poll.md
3538
+ */
3539
+ 'test/require-awaited-expect-poll'?: Linter.RuleEntry<[]>;
3540
+ /**
3541
+ * require setup and teardown to be within a hook
3542
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md
3543
+ */
3544
+ 'test/require-hook'?: Linter.RuleEntry<TestRequireHook>;
3545
+ /**
3546
+ * require local Test Context for concurrent snapshot tests
3547
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md
3548
+ */
3549
+ 'test/require-local-test-context-for-concurrent-snapshots'?: Linter.RuleEntry<[]>;
3550
+ /**
3551
+ * enforce using type parameters with vitest mock functions
3552
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-mock-type-parameters.md
3553
+ */
3554
+ 'test/require-mock-type-parameters'?: Linter.RuleEntry<TestRequireMockTypeParameters>;
3555
+ /**
3556
+ * require tests to declare a timeout
3557
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-test-timeout.md
3558
+ */
3559
+ 'test/require-test-timeout'?: Linter.RuleEntry<[]>;
3560
+ /**
3561
+ * require toThrow() to be called with an error message
3562
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-to-throw-message.md
3563
+ */
3564
+ 'test/require-to-throw-message'?: Linter.RuleEntry<[]>;
3565
+ /**
3566
+ * enforce that all tests are in a top-level describe
3567
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-top-level-describe.md
3568
+ */
3569
+ 'test/require-top-level-describe'?: Linter.RuleEntry<TestRequireTopLevelDescribe>;
3570
+ /**
3571
+ * enforce unbound methods are called with their expected scope
3572
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/unbound-method.md
3573
+ */
3574
+ 'test/unbound-method'?: Linter.RuleEntry<TestUnboundMethod>;
3575
+ /**
3576
+ * enforce valid describe callback
3577
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-describe-callback.md
3578
+ */
3579
+ 'test/valid-describe-callback'?: Linter.RuleEntry<[]>;
3580
+ /**
3581
+ * enforce valid `expect()` usage
3582
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md
3583
+ */
3584
+ 'test/valid-expect'?: Linter.RuleEntry<TestValidExpect>;
3585
+ /**
3586
+ * require promises that have expectations in their chain to be valid
3587
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-expect-in-promise.md
3588
+ */
3589
+ 'test/valid-expect-in-promise'?: Linter.RuleEntry<[]>;
3590
+ /**
3591
+ * enforce valid titles
3592
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/valid-title.md
3593
+ */
3594
+ 'test/valid-title'?: Linter.RuleEntry<TestValidTitle>;
3595
+ /**
3596
+ * disallow `.todo` usage
3597
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/warn-todo.md
3598
+ */
3599
+ 'test/warn-todo'?: Linter.RuleEntry<[]>;
3154
3600
  /**
3155
3601
  * Require that function overload signatures be consecutive
3156
3602
  * @see https://typescript-eslint.io/rules/adjacent-overload-signatures
@@ -6050,6 +6496,146 @@ interface RuleOptions {
6050
6496
  * @deprecated
6051
6497
  */
6052
6498
  'wrap-regex'?: Linter.RuleEntry<[]>;
6499
+ /**
6500
+ * require or disallow block style mappings.
6501
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-mapping.html
6502
+ */
6503
+ 'yaml/block-mapping'?: Linter.RuleEntry<YamlBlockMapping>;
6504
+ /**
6505
+ * enforce consistent line breaks after `:` indicator
6506
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-mapping-colon-indicator-newline.html
6507
+ */
6508
+ 'yaml/block-mapping-colon-indicator-newline'?: Linter.RuleEntry<YamlBlockMappingColonIndicatorNewline>;
6509
+ /**
6510
+ * enforce consistent line breaks after `?` indicator
6511
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-mapping-question-indicator-newline.html
6512
+ */
6513
+ 'yaml/block-mapping-question-indicator-newline'?: Linter.RuleEntry<YamlBlockMappingQuestionIndicatorNewline>;
6514
+ /**
6515
+ * require or disallow block style sequences.
6516
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-sequence.html
6517
+ */
6518
+ 'yaml/block-sequence'?: Linter.RuleEntry<YamlBlockSequence>;
6519
+ /**
6520
+ * enforce consistent line breaks after `-` indicator
6521
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/block-sequence-hyphen-indicator-newline.html
6522
+ */
6523
+ 'yaml/block-sequence-hyphen-indicator-newline'?: Linter.RuleEntry<YamlBlockSequenceHyphenIndicatorNewline>;
6524
+ /**
6525
+ * enforce YAML file extension
6526
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/file-extension.html
6527
+ */
6528
+ 'yaml/file-extension'?: Linter.RuleEntry<YamlFileExtension>;
6529
+ /**
6530
+ * enforce consistent line breaks inside braces
6531
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-mapping-curly-newline.html
6532
+ */
6533
+ 'yaml/flow-mapping-curly-newline'?: Linter.RuleEntry<YamlFlowMappingCurlyNewline>;
6534
+ /**
6535
+ * enforce consistent spacing inside braces
6536
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-mapping-curly-spacing.html
6537
+ */
6538
+ 'yaml/flow-mapping-curly-spacing'?: Linter.RuleEntry<YamlFlowMappingCurlySpacing>;
6539
+ /**
6540
+ * enforce linebreaks after opening and before closing flow sequence brackets
6541
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-sequence-bracket-newline.html
6542
+ */
6543
+ 'yaml/flow-sequence-bracket-newline'?: Linter.RuleEntry<YamlFlowSequenceBracketNewline>;
6544
+ /**
6545
+ * enforce consistent spacing inside flow sequence brackets
6546
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/flow-sequence-bracket-spacing.html
6547
+ */
6548
+ 'yaml/flow-sequence-bracket-spacing'?: Linter.RuleEntry<YamlFlowSequenceBracketSpacing>;
6549
+ /**
6550
+ * enforce consistent indentation
6551
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/indent.html
6552
+ */
6553
+ 'yaml/indent'?: Linter.RuleEntry<YamlIndent>;
6554
+ /**
6555
+ * enforce naming convention to key names
6556
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/key-name-casing.html
6557
+ */
6558
+ 'yaml/key-name-casing'?: Linter.RuleEntry<YamlKeyNameCasing>;
6559
+ /**
6560
+ * enforce consistent spacing between keys and values in mapping pairs
6561
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/key-spacing.html
6562
+ */
6563
+ 'yaml/key-spacing'?: Linter.RuleEntry<YamlKeySpacing>;
6564
+ /**
6565
+ * disallow empty document
6566
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-document.html
6567
+ */
6568
+ 'yaml/no-empty-document'?: Linter.RuleEntry<[]>;
6569
+ /**
6570
+ * disallow empty mapping keys
6571
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-key.html
6572
+ */
6573
+ 'yaml/no-empty-key'?: Linter.RuleEntry<[]>;
6574
+ /**
6575
+ * disallow empty mapping values
6576
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-mapping-value.html
6577
+ */
6578
+ 'yaml/no-empty-mapping-value'?: Linter.RuleEntry<[]>;
6579
+ /**
6580
+ * disallow empty sequence entries
6581
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-empty-sequence-entry.html
6582
+ */
6583
+ 'yaml/no-empty-sequence-entry'?: Linter.RuleEntry<[]>;
6584
+ /**
6585
+ * disallow irregular whitespace
6586
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-irregular-whitespace.html
6587
+ */
6588
+ 'yaml/no-irregular-whitespace'?: Linter.RuleEntry<YamlNoIrregularWhitespace>;
6589
+ /**
6590
+ * disallow multiple empty lines
6591
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-multiple-empty-lines.html
6592
+ */
6593
+ 'yaml/no-multiple-empty-lines'?: Linter.RuleEntry<YamlNoMultipleEmptyLines>;
6594
+ /**
6595
+ * disallow tabs for indentation.
6596
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-tab-indent.html
6597
+ */
6598
+ 'yaml/no-tab-indent'?: Linter.RuleEntry<[]>;
6599
+ /**
6600
+ * disallow trailing zeros for floats
6601
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/no-trailing-zeros.html
6602
+ */
6603
+ 'yaml/no-trailing-zeros'?: Linter.RuleEntry<[]>;
6604
+ /**
6605
+ * require or disallow plain style scalar.
6606
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/plain-scalar.html
6607
+ */
6608
+ 'yaml/plain-scalar'?: Linter.RuleEntry<YamlPlainScalar>;
6609
+ /**
6610
+ * enforce the consistent use of either double, or single quotes
6611
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/quotes.html
6612
+ */
6613
+ 'yaml/quotes'?: Linter.RuleEntry<YamlQuotes>;
6614
+ /**
6615
+ * disallow mapping keys other than strings
6616
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/require-string-key.html
6617
+ */
6618
+ 'yaml/require-string-key'?: Linter.RuleEntry<[]>;
6619
+ /**
6620
+ * require mapping keys to be sorted
6621
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/sort-keys.html
6622
+ */
6623
+ 'yaml/sort-keys'?: Linter.RuleEntry<YamlSortKeys>;
6624
+ /**
6625
+ * require sequence values to be sorted
6626
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/sort-sequence-values.html
6627
+ */
6628
+ 'yaml/sort-sequence-values'?: Linter.RuleEntry<YamlSortSequenceValues>;
6629
+ /**
6630
+ * enforce consistent spacing after the `#` in a comment
6631
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/spaced-comment.html
6632
+ */
6633
+ 'yaml/spaced-comment'?: Linter.RuleEntry<YamlSpacedComment>;
6634
+ /**
6635
+ * disallow parsing errors in Vue custom blocks
6636
+ * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/vue-custom-block/no-parsing-error.html
6637
+ */
6638
+ 'yaml/vue-custom-block/no-parsing-error'?: Linter.RuleEntry<[]>;
6053
6639
  /**
6054
6640
  * Require or disallow spacing around the `*` in `yield*` expressions
6055
6641
  * @see https://eslint.org/docs/latest/rules/yield-star-spacing
@@ -10858,7 +11444,38 @@ type PerfectionistSortVariableDeclarations = {
10858
11444
  } | string)));
10859
11445
  });
10860
11446
  partitionByNewLine?: boolean;
10861
- }[]; // ----- prefer-arrow-callback -----
11447
+ }[]; // ----- pnpm/json-enforce-catalog -----
11448
+ type PnpmJsonEnforceCatalog = [] | [{
11449
+ allowedProtocols?: string[];
11450
+ autofix?: boolean;
11451
+ defaultCatalog?: string;
11452
+ reuseExistingCatalog?: boolean;
11453
+ conflicts?: ("new-catalog" | "overrides" | "error");
11454
+ fields?: string[];
11455
+ ignores?: string[];
11456
+ }]; // ----- pnpm/json-prefer-workspace-settings -----
11457
+ type PnpmJsonPreferWorkspaceSettings = [] | [{
11458
+ autofix?: boolean;
11459
+ }]; // ----- pnpm/json-valid-catalog -----
11460
+ type PnpmJsonValidCatalog = [] | [{
11461
+ autoInsert?: boolean;
11462
+ autoInsertDefaultSpecifier?: string;
11463
+ autofix?: boolean;
11464
+ enforceNoConflict?: boolean;
11465
+ fields?: unknown[];
11466
+ }]; // ----- pnpm/yaml-enforce-settings -----
11467
+ type PnpmYamlEnforceSettings = [] | [{
11468
+ autofix?: boolean;
11469
+ settings?: {
11470
+ [k: string]: unknown | undefined;
11471
+ };
11472
+ requiredFields?: string[];
11473
+ forbiddenFields?: string[];
11474
+ }]; // ----- pnpm/yaml-no-duplicate-catalog-item -----
11475
+ type PnpmYamlNoDuplicateCatalogItem = [] | [{
11476
+ allow?: string[];
11477
+ checkDuplicates?: ("name-only" | "exact-version");
11478
+ }]; // ----- prefer-arrow-callback -----
10862
11479
  type PreferArrowCallback = [] | [{
10863
11480
  allowNamedFunctions?: boolean;
10864
11481
  allowUnboundThis?: boolean;
@@ -14903,7 +15520,100 @@ type TailwindNoUnnecessaryWhitespace = [] | [{
14903
15520
  allowMultiline?: boolean;
14904
15521
  }]; // ----- template-curly-spacing -----
14905
15522
  type TemplateCurlySpacing = [] | [("always" | "never")]; // ----- template-tag-spacing -----
14906
- type TemplateTagSpacing = [] | [("always" | "never")]; // ----- ts/array-type -----
15523
+ type TemplateTagSpacing = [] | [("always" | "never")]; // ----- test/consistent-each-for -----
15524
+ type TestConsistentEachFor = [] | [{
15525
+ test?: ("each" | "for");
15526
+ it?: ("each" | "for");
15527
+ describe?: ("each" | "for");
15528
+ suite?: ("each" | "for");
15529
+ }]; // ----- test/consistent-test-filename -----
15530
+ type TestConsistentTestFilename = [] | [{
15531
+ pattern?: string;
15532
+ allTestPattern?: string;
15533
+ }]; // ----- test/consistent-test-it -----
15534
+ type TestConsistentTestIt = [] | [{
15535
+ fn?: ("test" | "it");
15536
+ withinDescribe?: ("test" | "it");
15537
+ }]; // ----- test/consistent-vitest-vi -----
15538
+ type TestConsistentVitestVi = [] | [{
15539
+ fn?: ("vi" | "vitest");
15540
+ }]; // ----- test/expect-expect -----
15541
+ type TestExpectExpect = [] | [{
15542
+ assertFunctionNames?: string[];
15543
+ additionalTestBlockFunctions?: string[];
15544
+ }]; // ----- test/max-expects -----
15545
+ type TestMaxExpects = [] | [{
15546
+ max?: number;
15547
+ }]; // ----- test/max-nested-describe -----
15548
+ type TestMaxNestedDescribe = [] | [{
15549
+ max?: number;
15550
+ }]; // ----- test/no-conditional-expect -----
15551
+ type TestNoConditionalExpect = [] | [{
15552
+ expectAssertions?: boolean;
15553
+ }]; // ----- test/no-focused-tests -----
15554
+ type TestNoFocusedTests = [] | [{
15555
+ fixable?: boolean;
15556
+ }]; // ----- test/no-hooks -----
15557
+ type TestNoHooks = [] | [{
15558
+ allow?: ("beforeAll" | "beforeEach" | "afterAll" | "afterEach")[];
15559
+ }]; // ----- test/no-large-snapshots -----
15560
+ type TestNoLargeSnapshots = [] | [{
15561
+ maxSize?: number;
15562
+ inlineMaxSize?: number;
15563
+ allowedSnapshots?: {
15564
+ [k: string]: unknown[] | undefined;
15565
+ };
15566
+ }]; // ----- test/no-restricted-matchers -----
15567
+ type TestNoRestrictedMatchers = [] | [{
15568
+ [k: string]: (string | null) | undefined;
15569
+ }]; // ----- test/no-restricted-vi-methods -----
15570
+ type TestNoRestrictedViMethods = [] | [{
15571
+ [k: string]: (string | null) | undefined;
15572
+ }]; // ----- test/no-standalone-expect -----
15573
+ type TestNoStandaloneExpect = [] | [{
15574
+ additionalTestBlockFunctions?: string[];
15575
+ }]; // ----- test/prefer-expect-assertions -----
15576
+ type TestPreferExpectAssertions = [] | [{
15577
+ onlyFunctionsWithAsyncKeyword?: boolean;
15578
+ onlyFunctionsWithExpectInLoop?: boolean;
15579
+ onlyFunctionsWithExpectInCallback?: boolean;
15580
+ }]; // ----- test/prefer-import-in-mock -----
15581
+ type TestPreferImportInMock = [] | [{
15582
+ fixable?: boolean;
15583
+ }]; // ----- test/prefer-lowercase-title -----
15584
+ type TestPreferLowercaseTitle = [] | [{
15585
+ ignore?: ("describe" | "test" | "it")[];
15586
+ allowedPrefixes?: string[];
15587
+ ignoreTopLevelDescribe?: boolean;
15588
+ lowercaseFirstCharacterOnly?: boolean;
15589
+ }]; // ----- test/prefer-snapshot-hint -----
15590
+ type TestPreferSnapshotHint = [] | [("always" | "multi")]; // ----- test/require-hook -----
15591
+ type TestRequireHook = [] | [{
15592
+ allowedFunctionCalls?: string[];
15593
+ }]; // ----- test/require-mock-type-parameters -----
15594
+ type TestRequireMockTypeParameters = [] | [{
15595
+ checkImportFunctions?: boolean;
15596
+ }]; // ----- test/require-top-level-describe -----
15597
+ type TestRequireTopLevelDescribe = [] | [{
15598
+ maxNumberOfTopLevelDescribes?: number;
15599
+ }]; // ----- test/unbound-method -----
15600
+ type TestUnboundMethod = [] | [{
15601
+ ignoreStatic?: boolean;
15602
+ }]; // ----- test/valid-expect -----
15603
+ type TestValidExpect = [] | [{
15604
+ alwaysAwait?: boolean;
15605
+ asyncMatchers?: string[];
15606
+ minArgs?: number;
15607
+ maxArgs?: number;
15608
+ }]; // ----- test/valid-title -----
15609
+ type TestValidTitle = [] | [{
15610
+ ignoreTypeOfDescribeName?: boolean;
15611
+ allowArguments?: boolean;
15612
+ disallowedWords?: string[];
15613
+ [k: string]: (string | [string] | [string, string] | {
15614
+ [k: string]: (string | [string] | [string, string]) | undefined;
15615
+ });
15616
+ }]; // ----- ts/array-type -----
14907
15617
  type TsArrayType = [] | [{
14908
15618
  default?: ("array" | "generic" | "array-simple");
14909
15619
  readonly?: ("array" | "generic" | "array-simple");
@@ -17217,6 +17927,195 @@ type VueValidVSlot = [] | [{
17217
17927
  }]; // ----- wrap-iife -----
17218
17928
  type WrapIife = [] | [("outside" | "inside" | "any")] | [("outside" | "inside" | "any"), {
17219
17929
  functionPrototypeMethods?: boolean;
17930
+ }]; // ----- yaml/block-mapping -----
17931
+ type YamlBlockMapping = [] | [(("always" | "never") | {
17932
+ singleline?: ("always" | "never" | "ignore");
17933
+ multiline?: ("always" | "never" | "ignore");
17934
+ })]; // ----- yaml/block-mapping-colon-indicator-newline -----
17935
+ type YamlBlockMappingColonIndicatorNewline = [] | [("always" | "never")]; // ----- yaml/block-mapping-question-indicator-newline -----
17936
+ type YamlBlockMappingQuestionIndicatorNewline = [] | [("always" | "never")]; // ----- yaml/block-sequence -----
17937
+ type YamlBlockSequence = [] | [(("always" | "never") | {
17938
+ singleline?: ("always" | "never" | "ignore");
17939
+ multiline?: ("always" | "never" | "ignore");
17940
+ })]; // ----- yaml/block-sequence-hyphen-indicator-newline -----
17941
+ type YamlBlockSequenceHyphenIndicatorNewline = [] | [("always" | "never")] | [("always" | "never"), {
17942
+ nestedHyphen?: ("always" | "never");
17943
+ blockMapping?: ("always" | "never");
17944
+ }]; // ----- yaml/file-extension -----
17945
+ type YamlFileExtension = [] | [{
17946
+ extension?: ("yaml" | "yml");
17947
+ caseSensitive?: boolean;
17948
+ }]; // ----- yaml/flow-mapping-curly-newline -----
17949
+ type YamlFlowMappingCurlyNewline = [] | [(("always" | "never") | {
17950
+ multiline?: boolean;
17951
+ minProperties?: number;
17952
+ consistent?: boolean;
17953
+ })]; // ----- yaml/flow-mapping-curly-spacing -----
17954
+ type YamlFlowMappingCurlySpacing = [] | [("always" | "never")] | [("always" | "never"), {
17955
+ arraysInObjects?: boolean;
17956
+ objectsInObjects?: boolean;
17957
+ emptyObjects?: ("ignore" | "always" | "never");
17958
+ }]; // ----- yaml/flow-sequence-bracket-newline -----
17959
+ type YamlFlowSequenceBracketNewline = [] | [(("always" | "never" | "consistent") | {
17960
+ multiline?: boolean;
17961
+ minItems?: (number | null);
17962
+ })]; // ----- yaml/flow-sequence-bracket-spacing -----
17963
+ type YamlFlowSequenceBracketSpacing = [] | [("always" | "never")] | [("always" | "never"), {
17964
+ singleValue?: boolean;
17965
+ objectsInArrays?: boolean;
17966
+ arraysInArrays?: boolean;
17967
+ }]; // ----- yaml/indent -----
17968
+ type YamlIndent = [] | [number] | [number, {
17969
+ indentBlockSequences?: boolean;
17970
+ indicatorValueIndent?: number;
17971
+ alignMultilineFlowScalars?: boolean;
17972
+ }]; // ----- yaml/key-name-casing -----
17973
+ type YamlKeyNameCasing = [] | [{
17974
+ camelCase?: boolean;
17975
+ PascalCase?: boolean;
17976
+ SCREAMING_SNAKE_CASE?: boolean;
17977
+ "kebab-case"?: boolean;
17978
+ snake_case?: boolean;
17979
+ ignores?: string[];
17980
+ }]; // ----- yaml/key-spacing -----
17981
+ type YamlKeySpacing = [] | [({
17982
+ align?: (("colon" | "value") | {
17983
+ on?: ("colon" | "value");
17984
+ mode?: ("strict" | "minimum");
17985
+ beforeColon?: boolean;
17986
+ afterColon?: boolean;
17987
+ });
17988
+ mode?: ("strict" | "minimum");
17989
+ beforeColon?: boolean;
17990
+ afterColon?: boolean;
17991
+ } | {
17992
+ singleLine?: {
17993
+ mode?: ("strict" | "minimum");
17994
+ beforeColon?: boolean;
17995
+ afterColon?: boolean;
17996
+ };
17997
+ multiLine?: {
17998
+ align?: (("colon" | "value") | {
17999
+ on?: ("colon" | "value");
18000
+ mode?: ("strict" | "minimum");
18001
+ beforeColon?: boolean;
18002
+ afterColon?: boolean;
18003
+ });
18004
+ mode?: ("strict" | "minimum");
18005
+ beforeColon?: boolean;
18006
+ afterColon?: boolean;
18007
+ };
18008
+ } | {
18009
+ singleLine?: {
18010
+ mode?: ("strict" | "minimum");
18011
+ beforeColon?: boolean;
18012
+ afterColon?: boolean;
18013
+ };
18014
+ multiLine?: {
18015
+ mode?: ("strict" | "minimum");
18016
+ beforeColon?: boolean;
18017
+ afterColon?: boolean;
18018
+ };
18019
+ align?: {
18020
+ on?: ("colon" | "value");
18021
+ mode?: ("strict" | "minimum");
18022
+ beforeColon?: boolean;
18023
+ afterColon?: boolean;
18024
+ };
18025
+ })]; // ----- yaml/no-irregular-whitespace -----
18026
+ type YamlNoIrregularWhitespace = [] | [{
18027
+ skipComments?: boolean;
18028
+ skipQuotedScalars?: boolean;
18029
+ }]; // ----- yaml/no-multiple-empty-lines -----
18030
+ type YamlNoMultipleEmptyLines = [] | [{
18031
+ max: number;
18032
+ maxEOF?: number;
18033
+ maxBOF?: number;
18034
+ }]; // ----- yaml/plain-scalar -----
18035
+ type YamlPlainScalar = [] | [("always" | "never")] | [("always" | "never"), {
18036
+ ignorePatterns?: string[];
18037
+ overrides?: {
18038
+ mappingKey?: ("always" | "never" | null);
18039
+ };
18040
+ }]; // ----- yaml/quotes -----
18041
+ type YamlQuotes = [] | [{
18042
+ prefer?: ("double" | "single");
18043
+ avoidEscape?: boolean;
18044
+ }]; // ----- yaml/sort-keys -----
18045
+ type YamlSortKeys = ([{
18046
+ pathPattern: string;
18047
+ hasProperties?: string[];
18048
+ order: ((string | {
18049
+ keyPattern?: string;
18050
+ order?: {
18051
+ type?: ("asc" | "desc");
18052
+ caseSensitive?: boolean;
18053
+ natural?: boolean;
18054
+ };
18055
+ })[] | {
18056
+ type?: ("asc" | "desc");
18057
+ caseSensitive?: boolean;
18058
+ natural?: boolean;
18059
+ });
18060
+ minKeys?: number;
18061
+ allowLineSeparatedGroups?: boolean;
18062
+ }, ...({
18063
+ pathPattern: string;
18064
+ hasProperties?: string[];
18065
+ order: ((string | {
18066
+ keyPattern?: string;
18067
+ order?: {
18068
+ type?: ("asc" | "desc");
18069
+ caseSensitive?: boolean;
18070
+ natural?: boolean;
18071
+ };
18072
+ })[] | {
18073
+ type?: ("asc" | "desc");
18074
+ caseSensitive?: boolean;
18075
+ natural?: boolean;
18076
+ });
18077
+ minKeys?: number;
18078
+ allowLineSeparatedGroups?: boolean;
18079
+ })[]] | [] | [("asc" | "desc")] | [("asc" | "desc"), {
18080
+ caseSensitive?: boolean;
18081
+ natural?: boolean;
18082
+ minKeys?: number;
18083
+ allowLineSeparatedGroups?: boolean;
18084
+ }]); // ----- yaml/sort-sequence-values -----
18085
+ type YamlSortSequenceValues = [{
18086
+ pathPattern: string;
18087
+ order: ((string | {
18088
+ valuePattern?: string;
18089
+ order?: {
18090
+ type?: ("asc" | "desc");
18091
+ caseSensitive?: boolean;
18092
+ natural?: boolean;
18093
+ };
18094
+ })[] | {
18095
+ type?: ("asc" | "desc");
18096
+ caseSensitive?: boolean;
18097
+ natural?: boolean;
18098
+ });
18099
+ minValues?: number;
18100
+ }, ...({
18101
+ pathPattern: string;
18102
+ order: ((string | {
18103
+ valuePattern?: string;
18104
+ order?: {
18105
+ type?: ("asc" | "desc");
18106
+ caseSensitive?: boolean;
18107
+ natural?: boolean;
18108
+ };
18109
+ })[] | {
18110
+ type?: ("asc" | "desc");
18111
+ caseSensitive?: boolean;
18112
+ natural?: boolean;
18113
+ });
18114
+ minValues?: number;
18115
+ })[]]; // ----- yaml/spaced-comment -----
18116
+ type YamlSpacedComment = [] | [("always" | "never")] | [("always" | "never"), {
18117
+ exceptions?: string[];
18118
+ markers?: string[];
17220
18119
  }]; // ----- yield-star-spacing -----
17221
18120
  type YieldStarSpacing = [] | [(("before" | "after" | "both" | "neither") | {
17222
18121
  before?: boolean;
@@ -17226,7 +18125,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
17226
18125
  exceptRange?: boolean;
17227
18126
  onlyEquality?: boolean;
17228
18127
  }]; // Names of all the configs
17229
- type ConfigNames = 'favorodera/ignores' | 'favorodera/imports/setup' | 'favorodera/imports/rules' | 'favorodera/javascript/setup' | 'favorodera/javascript/rules' | 'favorodera/jsdoc/setup' | 'favorodera/tailwind/rules' | 'favorodera/jsonc/setup' | 'favorodera/jsonc/rules' | 'favorodera/jsonc/sort/package-json' | 'favorodera/jsonc/sort/tsconfig-json' | 'favorodera/markdown/setup' | 'favorodera/markdown/rules' | 'favorodera/markdown/disables/code' | 'favorodera/node/setup' | 'favorodera/node/rules' | 'favorodera/perfectionist/setup' | 'favorodera/perfectionist/rules' | 'favorodera/stylistic/setup' | 'favorodera/stylistic/rules' | 'favorodera/tailwind/setup' | 'favorodera/tailwind/rules' | 'favorodera/typescript/setup' | 'favorodera/typescript/rules' | 'favorodera/unicorn/setup' | 'favorodera/unicorn/rules' | 'favorodera/vue/setup' | 'favorodera/vue/rules';
18128
+ type ConfigNames = 'favorodera/ignores' | 'favorodera/imports/setup' | 'favorodera/imports/rules' | 'favorodera/javascript/setup' | 'favorodera/javascript/rules' | 'favorodera/jsdoc/setup' | 'favorodera/jsdoc/rules' | 'favorodera/jsonc/setup' | 'favorodera/jsonc/rules' | 'favorodera/jsonc/sort/package-json' | 'favorodera/jsonc/sort/tsconfig-json' | 'favorodera/markdown/setup' | 'favorodera/markdown/rules' | 'favorodera/markdown/code-in-md/disables' | 'favorodera/node/setup' | 'favorodera/node/rules' | 'favorodera/perfectionist/setup' | 'favorodera/perfectionist/rules' | 'favorodera/pnpm/setup' | 'favorodera/pnpm/package-json' | 'favorodera/pnpm/pnpm-workspace-yaml' | 'favorodera/stylistic/setup' | 'favorodera/stylistic/rules' | 'favorodera/tailwind/setup' | 'favorodera/tailwind/rules' | 'favorodera/test/setup' | 'favorodera/test/rules' | 'favorodera/test/disables' | 'favorodera/typescript/setup' | 'favorodera/typescript/rules' | 'favorodera/unicorn/setup' | 'favorodera/unicorn/rules' | 'favorodera/vue/setup' | 'favorodera/vue/rules' | 'favorodera/yaml/setup' | 'favorodera/yaml/rules' | 'favorodera/yaml/sort/pnpm-workspace-yaml';
17230
18129
  //#endregion
17231
18130
  //#region src/types/utils.d.ts
17232
18131
  /** ESLint rules configuration with type-safe autocompletion */
@@ -17352,6 +18251,10 @@ type TailwindConfigOptions = SharedOptions & {
17352
18251
  };
17353
18252
  };
17354
18253
  //#endregion
18254
+ //#region src/configs/test.d.ts
18255
+ /** Options for configuring test (Vitest) linting rules. */
18256
+ type TestConfigOptions = SharedOptions;
18257
+ //#endregion
17355
18258
  //#region src/configs/typescript.d.ts
17356
18259
  /** Options for configuring TypeScript linting rules. */
17357
18260
  type TypescriptConfigOptions = SharedOptions;
@@ -17371,6 +18274,10 @@ type VueConfigOptions = SharedOptions & {
17371
18274
  sfcBlocks?: boolean | Options;
17372
18275
  };
17373
18276
  //#endregion
18277
+ //#region src/configs/yaml.d.ts
18278
+ /** Options for configuring YAML linting rules. */
18279
+ type YAMLConfigOptions = SharedOptions;
18280
+ //#endregion
17374
18281
  //#region src/factory.d.ts
17375
18282
  /**
17376
18283
  * Configuration options for the ESLint flat config.
@@ -17397,16 +18304,22 @@ interface ConfigOptions {
17397
18304
  node?: boolean | NodeConfigOptions;
17398
18305
  /** Perfectionist rules for sorting objects, imports, classes, etc (via `eslint-plugin-perfectionist`). */
17399
18306
  perfectionist?: boolean | PerfectionistConfigOptions;
18307
+ /** PNPM workspaces rules (via `eslint-plugin-pnpm`). */
18308
+ pnpm?: boolean;
17400
18309
  /** Stylistic code formatting rules (via `@stylistic/eslint-plugin`). */
17401
18310
  stylistic?: boolean | StylisticConfigOptions;
17402
18311
  /** Tailwind CSS class sorting and best practices (via `eslint-plugin-better-tailwindcss`). */
17403
18312
  tailwind?: boolean | TailwindConfigOptions;
18313
+ /** Test and Vitest specific linting rules (via `@vitest/eslint-plugin`). */
18314
+ test?: boolean | TestConfigOptions;
17404
18315
  /** TypeScript language linting (via `typescript-eslint`). */
17405
18316
  typescript?: boolean | TypescriptConfigOptions;
17406
18317
  /** Unicorn rules for various code quality improvements (via `eslint-plugin-unicorn`). */
17407
18318
  unicorn?: boolean | UnicornConfigOptions;
17408
18319
  /** Vue single-file components linting (via `eslint-plugin-vue`). */
17409
18320
  vue?: boolean | VueConfigOptions;
18321
+ /** YAML files linting and sorting (via `eslint-plugin-yml`). */
18322
+ yaml?: boolean | YAMLConfigOptions;
17410
18323
  }
17411
18324
  /**
17412
18325
  * Factory to create a flat ESLint config.
@@ -17416,7 +18329,52 @@ interface ConfigOptions {
17416
18329
  */
17417
18330
  declare function factory(options?: ConfigOptions): FlatConfigComposer<TypedFlatConfigItem, ConfigNames>;
17418
18331
  //#endregion
18332
+ //#region src/globs.d.ts
18333
+ /** Glob pattern for matching JavaScript files */
18334
+ declare const jsGlob = "**/*.{js,cjs,mjs}";
18335
+ /** Glob pattern for matching TypeScript files */
18336
+ declare const tsGlob = "**/*.{ts,cts,mts}";
18337
+ /** Glob pattern for matching Vue single-file components */
18338
+ declare const vueGlob = "**/*.vue";
18339
+ /** Glob pattern for matching Markdown files */
18340
+ declare const mdGlob = "**/*.md";
18341
+ /** Glob pattern for matching virtual files extracted from Markdown */
18342
+ declare const mdInMdGlob = "**/*.md/*.md";
18343
+ /** Glob pattern for matching code blocks embedded in Markdown files */
18344
+ declare const codeInMdGlob = "**/*.md/**/*.{js,cjs,mjs,ts,cts,mts,vue}";
18345
+ /** Glob pattern for matching scripts files */
18346
+ declare const scriptsGlob = "**/*.{js,cjs,mjs,ts,cts,mts}";
18347
+ /** Glob pattern for matching test files */
18348
+ declare const testsGlob: string[];
18349
+ /** Glob pattern for matching JSON files */
18350
+ declare const jsonGlob = "**/*.json";
18351
+ /** Glob pattern for matching JSON5 files */
18352
+ declare const json5Glob = "**/*.json5";
18353
+ /** Glob pattern for matching JSON with Comments files */
18354
+ declare const jsoncGlob = "**/*.jsonc";
18355
+ /** Glob patterns for matching TypeScript configuration files */
18356
+ declare const tsConfigGlob: string[];
18357
+ /** Glob pattern for matching YAML files */
18358
+ declare const yamlGlob = "**/*.{yml,yaml}";
18359
+ /** Glob pattern for matching pnpm-workspace.yaml file */
18360
+ declare const pnpmWorkspaceGlob = "pnpm-workspace.yaml";
18361
+ /** Glob pattern for matching package.json files */
18362
+ declare const packageJsonGlob = "**/package.json";
18363
+ /**
18364
+ * Common glob patterns for files and directories that should be ignored by ESLint.
18365
+ * Includes node_modules, build outputs, lock files, temporary files, and tool-specific caches.
18366
+ */
18367
+ declare const ignoresGlob: string[];
18368
+ //#endregion
17419
18369
  //#region src/utils.d.ts
18370
+ /**
18371
+ * Extracts and merges the rules from multiple ESLint configuration arrays.
18372
+ * @param configArrays Rest parameter representing multiple arrays of ESLint flat config items.
18373
+ * @returns A single object containing all the merged rules from the provided configurations.
18374
+ */
18375
+ declare function extractRules(...configArrays: Array<Array<{
18376
+ rules?: Record<string, unknown>;
18377
+ }>>): Record<string, unknown>;
17420
18378
  /**
17421
18379
  * Resolves a module (or a promise of one) and returns its default export
17422
18380
  * if present, otherwise returns the module itself.
@@ -17431,4 +18389,4 @@ declare function importModule<TModule>(module: Awaitable<TModule>): Promise<TMod
17431
18389
  default: infer TModuleDefault;
17432
18390
  } ? TModuleDefault : TModule>;
17433
18391
  //#endregion
17434
- export { type ConfigNames, type ConfigOptions, type RuleOptions, type Rules, type SharedOptions, type TypedFlatConfigItem, factory, importModule };
18392
+ export { type ConfigNames, type ConfigOptions, type RuleOptions, type Rules, type SharedOptions, type TypedFlatConfigItem, codeInMdGlob, extractRules, factory, ignoresGlob, importModule, jsGlob, json5Glob, jsonGlob, jsoncGlob, mdGlob, mdInMdGlob, packageJsonGlob, pnpmWorkspaceGlob, scriptsGlob, testsGlob, tsConfigGlob, tsGlob, vueGlob, yamlGlob };