@liwo/eslint-config 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.d.ts +63 -3
  2. package/package.json +36 -36
package/dist/index.d.ts CHANGED
@@ -689,6 +689,11 @@ interface RuleOptions {
689
689
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-property-type.md#repos-sticky-header
690
690
  */
691
691
  'jsdoc/require-property-type'?: Linter.RuleEntry<[]>;
692
+ /**
693
+ * Requires that Promise rejections are documented with `@rejects` tags.
694
+ * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-rejects.md#repos-sticky-header
695
+ */
696
+ 'jsdoc/require-rejects'?: Linter.RuleEntry<JsdocRequireRejects>;
692
697
  /**
693
698
  * Requires that returns are documented with `@returns`.
694
699
  * @see https://github.com/gajus/eslint-plugin-jsdoc/blob/main/docs/rules/require-returns.md#repos-sticky-header
@@ -2793,6 +2798,11 @@ interface RuleOptions {
2793
2798
  * @see https://eslint-react.xyz/docs/rules/web-api-no-leaked-timeout
2794
2799
  */
2795
2800
  'react-web-api/no-leaked-timeout'?: Linter.RuleEntry<[]>;
2801
+ /**
2802
+ * Prevents dollar signs from being inserted as text nodes before expressions.
2803
+ * @see https://eslint-react.xyz/docs/rules/jsx-dollar
2804
+ */
2805
+ 'react/jsx-dollar'?: Linter.RuleEntry<[]>;
2796
2806
  /**
2797
2807
  * Enforces that the 'key' prop is placed before the spread prop in JSX elements.
2798
2808
  * @see https://eslint-react.xyz/docs/rules/jsx-key-before-spread
@@ -2931,6 +2941,7 @@ interface RuleOptions {
2931
2941
  /**
2932
2942
  * Disallow certain props on components.
2933
2943
  * @see https://eslint-react.xyz/docs/rules/no-forbidden-props
2944
+ * @deprecated
2934
2945
  */
2935
2946
  'react/no-forbidden-props'?: Linter.RuleEntry<ReactNoForbiddenProps>;
2936
2947
  /**
@@ -3052,7 +3063,7 @@ interface RuleOptions {
3052
3063
  * Prevents using referential-type values as default props in object destructuring.
3053
3064
  * @see https://eslint-react.xyz/docs/rules/no-unstable-default-props
3054
3065
  */
3055
- 'react/no-unstable-default-props'?: Linter.RuleEntry<[]>;
3066
+ 'react/no-unstable-default-props'?: Linter.RuleEntry<ReactNoUnstableDefaultProps>;
3056
3067
  /**
3057
3068
  * Warns unused class component methods and properties.
3058
3069
  * @see https://eslint-react.xyz/docs/rules/no-unused-class-component-members
@@ -4118,6 +4129,11 @@ interface RuleOptions {
4118
4129
  * @deprecated
4119
4130
  */
4120
4131
  'template-tag-spacing'?: Linter.RuleEntry<TemplateTagSpacing>;
4132
+ /**
4133
+ * enforce using `.each` or `.for` consistently
4134
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-each-for.md
4135
+ */
4136
+ 'test/consistent-each-for'?: Linter.RuleEntry<TestConsistentEachFor>;
4121
4137
  /**
4122
4138
  * require test file pattern
4123
4139
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/consistent-test-filename.md
@@ -4340,7 +4356,7 @@ interface RuleOptions {
4340
4356
  */
4341
4357
  'test/prefer-each'?: Linter.RuleEntry<[]>;
4342
4358
  /**
4343
- * enforce using the built-in quality matchers
4359
+ * enforce using the built-in equality matchers
4344
4360
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-equality-matcher.md
4345
4361
  */
4346
4362
  'test/prefer-equality-matcher'?: Linter.RuleEntry<[]>;
@@ -4449,11 +4465,21 @@ interface RuleOptions {
4449
4465
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/prefer-vi-mocked.md
4450
4466
  */
4451
4467
  'test/prefer-vi-mocked'?: Linter.RuleEntry<[]>;
4468
+ /**
4469
+ * ensure that every `expect.poll` call is awaited
4470
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-awaited-expect-poll.md
4471
+ */
4472
+ 'test/require-awaited-expect-poll'?: Linter.RuleEntry<[]>;
4452
4473
  /**
4453
4474
  * require setup and teardown to be within a hook
4454
4475
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-hook.md
4455
4476
  */
4456
4477
  'test/require-hook'?: Linter.RuleEntry<TestRequireHook>;
4478
+ /**
4479
+ * require usage of import in vi.mock()
4480
+ * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-import-vi-mock.md
4481
+ */
4482
+ 'test/require-import-vi-mock'?: Linter.RuleEntry<[]>;
4457
4483
  /**
4458
4484
  * require local Test Context for concurrent snapshot tests
4459
4485
  * @see https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/docs/rules/require-local-test-context-for-concurrent-snapshots.md
@@ -5053,6 +5079,11 @@ interface RuleOptions {
5053
5079
  * @see https://typescript-eslint.io/rules/no-unused-expressions
5054
5080
  */
5055
5081
  'ts/no-unused-expressions'?: Linter.RuleEntry<TsNoUnusedExpressions>;
5082
+ /**
5083
+ * Disallow unused private class members
5084
+ * @see https://typescript-eslint.io/rules/no-unused-private-class-members
5085
+ */
5086
+ 'ts/no-unused-private-class-members'?: Linter.RuleEntry<[]>;
5056
5087
  /**
5057
5088
  * Disallow unused variables
5058
5089
  * @see https://typescript-eslint.io/rules/no-unused-vars
@@ -6500,6 +6531,11 @@ interface RuleOptions {
6500
6531
  * @see https://eslint.vuejs.org/rules/no-duplicate-attributes.html
6501
6532
  */
6502
6533
  'vue/no-duplicate-attributes'?: Linter.RuleEntry<VueNoDuplicateAttributes>;
6534
+ /**
6535
+ * disallow duplication of class names in class attributes
6536
+ * @see https://eslint.vuejs.org/rules/no-duplicate-class-names.html
6537
+ */
6538
+ 'vue/no-duplicate-class-names'?: Linter.RuleEntry<[]>;
6503
6539
  /**
6504
6540
  * disallow the `<template>` `<script>` `<style>` block to be empty
6505
6541
  * @see https://eslint.vuejs.org/rules/no-empty-component-block.html
@@ -7835,6 +7871,7 @@ type JsdocCheckExamples = [] | [{
7835
7871
  }];
7836
7872
  // ----- jsdoc/check-indentation -----
7837
7873
  type JsdocCheckIndentation = [] | [{
7874
+ allowIndentedSections?: boolean;
7838
7875
  excludeTags?: string[];
7839
7876
  }];
7840
7877
  // ----- jsdoc/check-line-alignment -----
@@ -8181,6 +8218,14 @@ type JsdocRequireParamType = [] | [{
8181
8218
  defaultDestructuredRootType?: string;
8182
8219
  setDefaultDestructuredRootType?: boolean;
8183
8220
  }];
8221
+ // ----- jsdoc/require-rejects -----
8222
+ type JsdocRequireRejects = [] | [{
8223
+ contexts?: (string | {
8224
+ comment?: string;
8225
+ context?: string;
8226
+ })[];
8227
+ exemptedBy?: string[];
8228
+ }];
8184
8229
  // ----- jsdoc/require-returns -----
8185
8230
  type JsdocRequireReturns = [] | [{
8186
8231
  checkConstructors?: boolean;
@@ -8271,6 +8316,9 @@ type JsdocSortTags = [] | [{
8271
8316
  linesBetween?: number;
8272
8317
  reportIntraTagGroupSpacing?: boolean;
8273
8318
  reportTagGroupSpacing?: boolean;
8319
+ tagExceptions?: {
8320
+ [k: string]: number;
8321
+ };
8274
8322
  tagSequence?: {
8275
8323
  tags?: string[];
8276
8324
  }[];
@@ -11882,8 +11930,13 @@ type ReactNoForbiddenProps = [] | [{
11882
11930
  prop: string;
11883
11931
  })[];
11884
11932
  }];
11933
+ // ----- react/no-unstable-default-props -----
11934
+ type ReactNoUnstableDefaultProps = [] | [{
11935
+ safeDefaultProps?: string[];
11936
+ }];
11885
11937
  // ----- react/no-useless-fragment -----
11886
11938
  type ReactNoUselessFragment = [] | [{
11939
+ allowEmptyFragment?: boolean;
11887
11940
  allowExpressions?: boolean;
11888
11941
  }];
11889
11942
  // ----- regexp/hexadecimal-escape -----
@@ -13346,6 +13399,13 @@ type SwitchColonSpacing = [] | [{
13346
13399
  type TemplateCurlySpacing = [] | [("always" | "never")];
13347
13400
  // ----- template-tag-spacing -----
13348
13401
  type TemplateTagSpacing = [] | [("always" | "never")];
13402
+ // ----- test/consistent-each-for -----
13403
+ type TestConsistentEachFor = [] | [{
13404
+ test?: ("each" | "for");
13405
+ it?: ("each" | "for");
13406
+ describe?: ("each" | "for");
13407
+ suite?: ("each" | "for");
13408
+ }];
13349
13409
  // ----- test/consistent-test-filename -----
13350
13410
  type TestConsistentTestFilename = [] | [{
13351
13411
  pattern?: string;
@@ -13379,7 +13439,7 @@ type TestNoFocusedTests = [] | [{
13379
13439
  }];
13380
13440
  // ----- test/no-hooks -----
13381
13441
  type TestNoHooks = [] | [{
13382
- allow?: unknown[];
13442
+ allow?: ("beforeAll" | "beforeEach" | "afterAll" | "afterEach")[];
13383
13443
  }];
13384
13444
  // ----- test/no-large-snapshots -----
13385
13445
  type TestNoLargeSnapshots = [] | [{
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@liwo/eslint-config",
3
3
  "type": "module",
4
- "version": "0.1.0",
4
+ "version": "0.1.2",
5
5
  "description": "ESLint config by Liwo",
6
6
  "author": "Aoang <aoang@x2oe.com>",
7
7
  "license": "MIT",
@@ -49,64 +49,64 @@
49
49
  "@antfu/install-pkg": "1.1.0",
50
50
  "@clack/prompts": "0.11.0",
51
51
  "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
52
- "@eslint-react/eslint-plugin": "2.2.4",
53
- "@eslint/markdown": "7.5.0",
54
- "@stylistic/eslint-plugin": "5.5.0",
55
- "@typescript-eslint/eslint-plugin": "8.46.2",
56
- "@typescript-eslint/parser": "8.46.2",
57
- "@vitest/eslint-plugin": "1.3.26",
52
+ "@eslint-react/eslint-plugin": "2.3.13",
53
+ "@eslint/markdown": "7.5.1",
54
+ "@stylistic/eslint-plugin": "5.6.1",
55
+ "@typescript-eslint/eslint-plugin": "8.49.0",
56
+ "@typescript-eslint/parser": "8.49.0",
57
+ "@vitest/eslint-plugin": "1.5.2",
58
58
  "eslint-config-flat-gitignore": "2.1.0",
59
59
  "eslint-flat-config-utils": "2.1.4",
60
60
  "eslint-merge-processors": "2.0.0",
61
61
  "eslint-plugin-antfu": "3.1.1",
62
62
  "eslint-plugin-command": "3.3.1",
63
- "eslint-plugin-format": "1.0.2",
63
+ "eslint-plugin-format": "1.1.0",
64
64
  "eslint-plugin-import-lite": "0.3.0",
65
- "eslint-plugin-jsdoc": "61.1.10",
65
+ "eslint-plugin-jsdoc": "61.5.0",
66
66
  "eslint-plugin-jsonc": "2.21.0",
67
67
  "eslint-plugin-n": "17.23.1",
68
68
  "eslint-plugin-no-only-tests": "3.3.0",
69
69
  "eslint-plugin-perfectionist": "4.15.1",
70
- "eslint-plugin-pnpm": "1.3.0",
70
+ "eslint-plugin-pnpm": "1.4.2",
71
71
  "eslint-plugin-react-hooks": "7.0.1",
72
72
  "eslint-plugin-react-refresh": "0.4.24",
73
73
  "eslint-plugin-regexp": "2.10.0",
74
74
  "eslint-plugin-toml": "0.12.0",
75
75
  "eslint-plugin-unicorn": "62.0.0",
76
76
  "eslint-plugin-unused-imports": "4.3.0",
77
- "eslint-plugin-vue": "10.5.1",
77
+ "eslint-plugin-vue": "10.6.2",
78
78
  "eslint-plugin-yml": "1.19.0",
79
79
  "eslint-processor-vue-blocks": "2.0.0",
80
- "globals": "16.4.0",
81
- "jsonc-eslint-parser": "2.4.1",
80
+ "globals": "16.5.0",
81
+ "jsonc-eslint-parser": "2.4.2",
82
82
  "local-pkg": "1.1.2",
83
83
  "parse-gitignore": "2.0.0",
84
- "toml-eslint-parser": "0.10.0",
84
+ "toml-eslint-parser": "0.10.1",
85
85
  "vue-eslint-parser": "10.2.0",
86
- "yaml-eslint-parser": "1.3.0"
86
+ "yaml-eslint-parser": "1.3.2"
87
87
  },
88
88
  "devDependencies": {
89
- "@eslint/config-inspector": "^1.3.0",
90
- "@prettier/plugin-xml": "^3.4.2",
91
- "@types/node": "24.9.2",
92
- "@unocss/eslint-plugin": "^66.5.4",
93
- "bumpp": "^10.3.1",
94
- "eslint": "^9.38.0",
95
- "eslint-plugin-vuejs-accessibility": "^2.4.1",
96
- "eslint-typegen": "^2.3.0",
97
- "execa": "^9.6.0",
98
- "lint-staged": "^16.2.6",
99
- "pnpm-workspace-yaml": "^1.3.0",
100
- "prettier-plugin-slidev": "^1.0.5",
101
- "react": "^19.2.0",
102
- "simple-git-hooks": "^2.13.1",
103
- "tinyglobby": "^0.2.15",
104
- "tsdown": "^0.15.11",
105
- "tsx": "^4.20.6",
106
- "typescript": "^5.9.3",
107
- "vitest": "^4.0.5",
108
- "vue": "^3.5.22",
109
- "@liwo/eslint-config": "0.1.0"
89
+ "@eslint/config-inspector": "1.4.2",
90
+ "@prettier/plugin-xml": "3.4.2",
91
+ "@types/node": "24.10.2",
92
+ "@unocss/eslint-plugin": "66.5.10",
93
+ "bumpp": "10.3.2",
94
+ "eslint": "9.39.1",
95
+ "eslint-plugin-vuejs-accessibility": "2.4.1",
96
+ "eslint-typegen": "2.3.0",
97
+ "execa": "9.6.1",
98
+ "lint-staged": "16.2.7",
99
+ "pnpm-workspace-yaml": "1.4.2",
100
+ "prettier-plugin-slidev": "1.0.5",
101
+ "react": "19.2.1",
102
+ "simple-git-hooks": "2.13.1",
103
+ "tinyglobby": "0.2.15",
104
+ "tsdown": "0.17.2",
105
+ "tsx": "4.21.0",
106
+ "typescript": "5.9.3",
107
+ "vitest": "4.0.15",
108
+ "vue": "3.5.25",
109
+ "@liwo/eslint-config": "0.1.2"
110
110
  },
111
111
  "simple-git-hooks": {
112
112
  "pre-commit": "npx lint-staged"