@isentinel/eslint-config 0.7.0 → 0.7.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.
package/dist/cli.cjs CHANGED
@@ -37,25 +37,21 @@ var import_helpers = require("yargs/helpers");
37
37
  // package.json
38
38
  var package_default = {
39
39
  name: "@isentinel/eslint-config",
40
- type: "module",
41
- version: "0.7.0",
42
- publishConfig: {
43
- access: "public"
44
- },
45
- packageManager: "pnpm@9.4.0",
40
+ version: "0.7.2",
46
41
  description: "iSentinel's ESLint config",
47
- author: "Christopher Buss <christopher.buss@pm.me> (https://github.com/christopher-buss)",
48
- contributors: [
49
- "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)"
50
- ],
51
- license: "MIT",
52
- homepage: "https://github.com/christopher-buss/roblox-ts-eslint-config",
53
42
  keywords: [
54
43
  "eslint-config",
55
44
  "roblox",
56
45
  "roblox-ts",
57
46
  "rbxts"
58
47
  ],
48
+ homepage: "https://github.com/christopher-buss/roblox-ts-eslint-config",
49
+ license: "MIT",
50
+ author: "Christopher Buss <christopher.buss@pm.me> (https://github.com/christopher-buss)",
51
+ contributors: [
52
+ "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)"
53
+ ],
54
+ type: "module",
59
55
  exports: {
60
56
  ".": {
61
57
  import: "./dist/index.js",
@@ -71,56 +67,50 @@ var package_default = {
71
67
  ],
72
68
  scripts: {
73
69
  build: "nr typegen && tsup --format esm,cjs --clean --dts",
74
- stub: "tsup --format esm",
75
- dev: "npx @eslint/config-inspector --config eslint.config.ts",
76
70
  "build:inspector": "pnpm build && npx @eslint/config-inspector build",
77
- watch: "tsup --format esm,cjs --watch",
71
+ dev: "npx @eslint/config-inspector --config eslint.config.ts",
78
72
  lint: "eslint .",
79
- typegen: "esno scripts/typegen.ts",
80
73
  prepack: "nr build",
74
+ prepare: "simple-git-hooks",
81
75
  release: "bumpp && pnpm publish --p",
76
+ stub: "tsup --format esm",
82
77
  typecheck: "tsc --noEmit",
83
- prepare: "simple-git-hooks"
78
+ typegen: "esno scripts/typegen.ts",
79
+ watch: "tsup --format esm,cjs --watch"
84
80
  },
85
- peerDependencies: {
86
- "@eslint-react/eslint-plugin": "^1.5.8",
87
- eslint: ">=8.40.0",
88
- "eslint-plugin-react-hooks": "^4.6.0"
81
+ "simple-git-hooks": {
82
+ "pre-commit": "pnpm lint-staged"
89
83
  },
90
- peerDependenciesMeta: {
91
- "@eslint-react/eslint-plugin": {
92
- optional: true
93
- },
94
- "eslint-plugin-react-hooks": {
95
- optional: true
96
- }
84
+ "lint-staged": {
85
+ "*": "eslint --fix"
97
86
  },
98
87
  dependencies: {
99
88
  "@antfu/install-pkg": "0.3.3",
100
89
  "@clack/prompts": "0.7.0",
101
90
  "@cspell/eslint-plugin": "8.10.4",
102
- "@eslint/compat": "1.1.0",
91
+ "@eslint/compat": "1.1.1",
103
92
  "@isentinel/dict-rbxts": "1.0.1",
104
93
  "@isentinel/dict-roblox": "1.0.3",
105
94
  "@isentinel/eslint-plugin-comment-length": "1.7.3",
106
95
  "@shopify/eslint-plugin": "45.0.0",
107
96
  "@stylistic/eslint-plugin": "2.3.0",
108
- "@typescript-eslint/eslint-plugin": "7.15.0",
109
- "@typescript-eslint/parser": "7.15.0",
110
- "eslint-config-flat-gitignore": "0.1.5",
97
+ "@typescript-eslint/eslint-plugin": "7.16.1",
98
+ "@typescript-eslint/parser": "7.16.1",
99
+ "eslint-config-flat-gitignore": "0.1.7",
111
100
  "eslint-config-prettier": "9.1.0",
112
101
  "eslint-flat-config-utils": "0.2.5",
113
102
  "eslint-merge-processors": "0.1.0",
114
103
  "eslint-plugin-antfu": "2.3.4",
115
- "eslint-plugin-arrow-return-style": "1.3.0",
104
+ "eslint-plugin-arrow-return-style": "1.3.1",
116
105
  "eslint-plugin-eslint-comments": "3.2.0",
117
106
  "eslint-plugin-format": "0.1.2",
118
107
  "eslint-plugin-format-lua": "0.1.0",
119
- "eslint-plugin-import-x": "0.5.3",
120
- "eslint-plugin-jsdoc": "48.5.2",
108
+ "eslint-plugin-import-x": "3.0.1",
109
+ "eslint-plugin-jsdoc": "48.7.0",
121
110
  "eslint-plugin-jsonc": "2.16.0",
122
- "eslint-plugin-markdown": "5.0.0",
111
+ "eslint-plugin-markdown": "5.1.0",
123
112
  "eslint-plugin-no-autofix": "2.0.0",
113
+ "eslint-plugin-package-json": "0.15.2",
124
114
  "eslint-plugin-perfectionist": "2.11.0",
125
115
  "eslint-plugin-promise": "6.4.0",
126
116
  "eslint-plugin-sonarjs": "1.0.3",
@@ -132,7 +122,7 @@ var package_default = {
132
122
  "local-pkg": "0.5.0",
133
123
  "parse-gitignore": "2.0.0",
134
124
  picocolors: "1.0.1",
135
- prettier: "3.3.2",
125
+ prettier: "3.3.3",
136
126
  "prettier-plugin-jsdoc": "1.3.0",
137
127
  prompts: "2.4.2",
138
128
  "toml-eslint-parser": "0.10.0",
@@ -140,8 +130,8 @@ var package_default = {
140
130
  yargs: "17.7.2"
141
131
  },
142
132
  devDependencies: {
143
- "@antfu/ni": "0.21.12",
144
- "@eslint-react/eslint-plugin": "1.5.23",
133
+ "@antfu/ni": "0.22.0",
134
+ "@eslint-react/eslint-plugin": "1.5.27",
145
135
  "@eslint/config-inspector": "0.5.1",
146
136
  "@isentinel/eslint-config": "workspace:*",
147
137
  "@stylistic/eslint-plugin-migrate": "2.3.0",
@@ -152,7 +142,7 @@ var package_default = {
152
142
  "@types/yargs": "17.0.32",
153
143
  bumpp: "9.4.1",
154
144
  "bundle-require": "5.0.0",
155
- eslint: "9.6.0",
145
+ eslint: "9.7.0",
156
146
  "eslint-plugin-react-hooks": "4.6.2",
157
147
  "eslint-plugin-simple-import-sort": "12.1.1",
158
148
  "eslint-typegen": "0.2.4",
@@ -161,16 +151,27 @@ var package_default = {
161
151
  "fast-glob": "3.3.2",
162
152
  "fs-extra": "11.2.0",
163
153
  "lint-staged": "15.2.7",
164
- rimraf: "5.0.7",
154
+ rimraf: "6.0.1",
165
155
  "simple-git-hooks": "2.11.1",
166
156
  tsup: "8.1.0",
167
157
  typescript: "5.5.3"
168
158
  },
169
- "simple-git-hooks": {
170
- "pre-commit": "pnpm lint-staged"
159
+ peerDependencies: {
160
+ "@eslint-react/eslint-plugin": "^1.5.27",
161
+ eslint: ">=8.40.0",
162
+ "eslint-plugin-react-hooks": "^4.6.0"
171
163
  },
172
- "lint-staged": {
173
- "*": "eslint --fix"
164
+ peerDependenciesMeta: {
165
+ "@eslint-react/eslint-plugin": {
166
+ optional: true
167
+ },
168
+ "eslint-plugin-react-hooks": {
169
+ optional: true
170
+ }
171
+ },
172
+ packageManager: "pnpm@9.5.0",
173
+ publishConfig: {
174
+ access: "public"
174
175
  }
175
176
  };
176
177
 
package/dist/cli.js CHANGED
@@ -19,25 +19,21 @@ init_esm_shims();
19
19
  // package.json
20
20
  var package_default = {
21
21
  name: "@isentinel/eslint-config",
22
- type: "module",
23
- version: "0.7.0",
24
- publishConfig: {
25
- access: "public"
26
- },
27
- packageManager: "pnpm@9.4.0",
22
+ version: "0.7.2",
28
23
  description: "iSentinel's ESLint config",
29
- author: "Christopher Buss <christopher.buss@pm.me> (https://github.com/christopher-buss)",
30
- contributors: [
31
- "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)"
32
- ],
33
- license: "MIT",
34
- homepage: "https://github.com/christopher-buss/roblox-ts-eslint-config",
35
24
  keywords: [
36
25
  "eslint-config",
37
26
  "roblox",
38
27
  "roblox-ts",
39
28
  "rbxts"
40
29
  ],
30
+ homepage: "https://github.com/christopher-buss/roblox-ts-eslint-config",
31
+ license: "MIT",
32
+ author: "Christopher Buss <christopher.buss@pm.me> (https://github.com/christopher-buss)",
33
+ contributors: [
34
+ "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)"
35
+ ],
36
+ type: "module",
41
37
  exports: {
42
38
  ".": {
43
39
  import: "./dist/index.js",
@@ -53,56 +49,50 @@ var package_default = {
53
49
  ],
54
50
  scripts: {
55
51
  build: "nr typegen && tsup --format esm,cjs --clean --dts",
56
- stub: "tsup --format esm",
57
- dev: "npx @eslint/config-inspector --config eslint.config.ts",
58
52
  "build:inspector": "pnpm build && npx @eslint/config-inspector build",
59
- watch: "tsup --format esm,cjs --watch",
53
+ dev: "npx @eslint/config-inspector --config eslint.config.ts",
60
54
  lint: "eslint .",
61
- typegen: "esno scripts/typegen.ts",
62
55
  prepack: "nr build",
56
+ prepare: "simple-git-hooks",
63
57
  release: "bumpp && pnpm publish --p",
58
+ stub: "tsup --format esm",
64
59
  typecheck: "tsc --noEmit",
65
- prepare: "simple-git-hooks"
60
+ typegen: "esno scripts/typegen.ts",
61
+ watch: "tsup --format esm,cjs --watch"
66
62
  },
67
- peerDependencies: {
68
- "@eslint-react/eslint-plugin": "^1.5.8",
69
- eslint: ">=8.40.0",
70
- "eslint-plugin-react-hooks": "^4.6.0"
63
+ "simple-git-hooks": {
64
+ "pre-commit": "pnpm lint-staged"
71
65
  },
72
- peerDependenciesMeta: {
73
- "@eslint-react/eslint-plugin": {
74
- optional: true
75
- },
76
- "eslint-plugin-react-hooks": {
77
- optional: true
78
- }
66
+ "lint-staged": {
67
+ "*": "eslint --fix"
79
68
  },
80
69
  dependencies: {
81
70
  "@antfu/install-pkg": "0.3.3",
82
71
  "@clack/prompts": "0.7.0",
83
72
  "@cspell/eslint-plugin": "8.10.4",
84
- "@eslint/compat": "1.1.0",
73
+ "@eslint/compat": "1.1.1",
85
74
  "@isentinel/dict-rbxts": "1.0.1",
86
75
  "@isentinel/dict-roblox": "1.0.3",
87
76
  "@isentinel/eslint-plugin-comment-length": "1.7.3",
88
77
  "@shopify/eslint-plugin": "45.0.0",
89
78
  "@stylistic/eslint-plugin": "2.3.0",
90
- "@typescript-eslint/eslint-plugin": "7.15.0",
91
- "@typescript-eslint/parser": "7.15.0",
92
- "eslint-config-flat-gitignore": "0.1.5",
79
+ "@typescript-eslint/eslint-plugin": "7.16.1",
80
+ "@typescript-eslint/parser": "7.16.1",
81
+ "eslint-config-flat-gitignore": "0.1.7",
93
82
  "eslint-config-prettier": "9.1.0",
94
83
  "eslint-flat-config-utils": "0.2.5",
95
84
  "eslint-merge-processors": "0.1.0",
96
85
  "eslint-plugin-antfu": "2.3.4",
97
- "eslint-plugin-arrow-return-style": "1.3.0",
86
+ "eslint-plugin-arrow-return-style": "1.3.1",
98
87
  "eslint-plugin-eslint-comments": "3.2.0",
99
88
  "eslint-plugin-format": "0.1.2",
100
89
  "eslint-plugin-format-lua": "0.1.0",
101
- "eslint-plugin-import-x": "0.5.3",
102
- "eslint-plugin-jsdoc": "48.5.2",
90
+ "eslint-plugin-import-x": "3.0.1",
91
+ "eslint-plugin-jsdoc": "48.7.0",
103
92
  "eslint-plugin-jsonc": "2.16.0",
104
- "eslint-plugin-markdown": "5.0.0",
93
+ "eslint-plugin-markdown": "5.1.0",
105
94
  "eslint-plugin-no-autofix": "2.0.0",
95
+ "eslint-plugin-package-json": "0.15.2",
106
96
  "eslint-plugin-perfectionist": "2.11.0",
107
97
  "eslint-plugin-promise": "6.4.0",
108
98
  "eslint-plugin-sonarjs": "1.0.3",
@@ -114,7 +104,7 @@ var package_default = {
114
104
  "local-pkg": "0.5.0",
115
105
  "parse-gitignore": "2.0.0",
116
106
  picocolors: "1.0.1",
117
- prettier: "3.3.2",
107
+ prettier: "3.3.3",
118
108
  "prettier-plugin-jsdoc": "1.3.0",
119
109
  prompts: "2.4.2",
120
110
  "toml-eslint-parser": "0.10.0",
@@ -122,8 +112,8 @@ var package_default = {
122
112
  yargs: "17.7.2"
123
113
  },
124
114
  devDependencies: {
125
- "@antfu/ni": "0.21.12",
126
- "@eslint-react/eslint-plugin": "1.5.23",
115
+ "@antfu/ni": "0.22.0",
116
+ "@eslint-react/eslint-plugin": "1.5.27",
127
117
  "@eslint/config-inspector": "0.5.1",
128
118
  "@isentinel/eslint-config": "workspace:*",
129
119
  "@stylistic/eslint-plugin-migrate": "2.3.0",
@@ -134,7 +124,7 @@ var package_default = {
134
124
  "@types/yargs": "17.0.32",
135
125
  bumpp: "9.4.1",
136
126
  "bundle-require": "5.0.0",
137
- eslint: "9.6.0",
127
+ eslint: "9.7.0",
138
128
  "eslint-plugin-react-hooks": "4.6.2",
139
129
  "eslint-plugin-simple-import-sort": "12.1.1",
140
130
  "eslint-typegen": "0.2.4",
@@ -143,16 +133,27 @@ var package_default = {
143
133
  "fast-glob": "3.3.2",
144
134
  "fs-extra": "11.2.0",
145
135
  "lint-staged": "15.2.7",
146
- rimraf: "5.0.7",
136
+ rimraf: "6.0.1",
147
137
  "simple-git-hooks": "2.11.1",
148
138
  tsup: "8.1.0",
149
139
  typescript: "5.5.3"
150
140
  },
151
- "simple-git-hooks": {
152
- "pre-commit": "pnpm lint-staged"
141
+ peerDependencies: {
142
+ "@eslint-react/eslint-plugin": "^1.5.27",
143
+ eslint: ">=8.40.0",
144
+ "eslint-plugin-react-hooks": "^4.6.0"
153
145
  },
154
- "lint-staged": {
155
- "*": "eslint --fix"
146
+ peerDependenciesMeta: {
147
+ "@eslint-react/eslint-plugin": {
148
+ optional: true
149
+ },
150
+ "eslint-plugin-react-hooks": {
151
+ optional: true
152
+ }
153
+ },
154
+ packageManager: "pnpm@9.5.0",
155
+ publishConfig: {
156
+ access: "public"
156
157
  }
157
158
  };
158
159
 
package/dist/index.cjs CHANGED
@@ -43,9 +43,9 @@ var init_cjs_shims = __esm({
43
43
  }
44
44
  });
45
45
 
46
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/shared.js
46
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/shared.js
47
47
  var require_shared = __commonJS({
48
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/shared.js"(exports2, module2) {
48
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/shared.js"(exports2, module2) {
49
49
  "use strict";
50
50
  init_cjs_shims();
51
51
  function extractChunks(parentNode, isPartOfChunk) {
@@ -584,9 +584,9 @@ var require_shared = __commonJS({
584
584
  }
585
585
  });
586
586
 
587
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/imports.js
587
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/imports.js
588
588
  var require_imports = __commonJS({
589
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/imports.js"(exports2, module2) {
589
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/imports.js"(exports2, module2) {
590
590
  "use strict";
591
591
  init_cjs_shims();
592
592
  var shared = require_shared();
@@ -712,9 +712,9 @@ var require_imports = __commonJS({
712
712
  }
713
713
  });
714
714
 
715
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/exports.js
715
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/exports.js
716
716
  var require_exports = __commonJS({
717
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/exports.js"(exports2, module2) {
717
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/exports.js"(exports2, module2) {
718
718
  "use strict";
719
719
  init_cjs_shims();
720
720
  var shared = require_shared();
@@ -804,9 +804,9 @@ var require_exports = __commonJS({
804
804
  }
805
805
  });
806
806
 
807
- // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/index.js
807
+ // node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/index.js
808
808
  var require_eslint_plugin_simple_import_sort = __commonJS({
809
- "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.6.0/node_modules/eslint-plugin-simple-import-sort/index.js"(exports2, module2) {
809
+ "node_modules/.pnpm/eslint-plugin-simple-import-sort@12.1.1_eslint@9.7.0/node_modules/eslint-plugin-simple-import-sort/index.js"(exports2, module2) {
810
810
  "use strict";
811
811
  init_cjs_shims();
812
812
  var importsRule = require_imports();
@@ -864,6 +864,7 @@ __export(src_exports, {
864
864
  jsdoc: () => jsdoc,
865
865
  jsonc: () => jsonc,
866
866
  markdown: () => markdown,
867
+ packageJson: () => packageJson,
867
868
  parserPlain: () => parserPlain,
868
869
  perfectionist: () => perfectionist,
869
870
  prettier: () => prettier,
@@ -875,7 +876,6 @@ __export(src_exports, {
875
876
  roblox: () => roblox,
876
877
  shopify: () => shopify,
877
878
  sonarjs: () => sonarjs,
878
- sortPackageJson: () => sortPackageJson,
879
879
  sortTsconfig: () => sortTsconfig,
880
880
  spelling: () => spelling,
881
881
  style: () => style,
@@ -963,6 +963,7 @@ var import_eslint_plugin_format = __toESM(require("eslint-plugin-format"), 1);
963
963
  var import_eslint_plugin_format_lua = __toESM(require("eslint-plugin-format-lua"), 1);
964
964
  var pluginImport = __toESM(require("eslint-plugin-import-x"), 1);
965
965
  var import_eslint_plugin_no_autofix = __toESM(require("eslint-plugin-no-autofix"), 1);
966
+ var pluginPackageJson = __toESM(require("eslint-plugin-package-json"), 1);
966
967
  var import_eslint_plugin_perfectionist = __toESM(require("eslint-plugin-perfectionist"), 1);
967
968
  var import_eslint_plugin_promise = __toESM(require("eslint-plugin-promise"), 1);
968
969
  var import_eslint_plugin_simple_import_sort = __toESM(require_eslint_plugin_simple_import_sort(), 1);
@@ -1344,7 +1345,7 @@ init_cjs_shims();
1344
1345
  async function ignores() {
1345
1346
  return [
1346
1347
  {
1347
- ignores: GLOB_EXCLUDE
1348
+ ignores: [...GLOB_EXCLUDE, GLOB_JS]
1348
1349
  }
1349
1350
  ];
1350
1351
  }
@@ -1362,6 +1363,8 @@ async function imports(options = {}) {
1362
1363
  },
1363
1364
  rules: {
1364
1365
  "antfu/import-dedupe": "error",
1366
+ "antfu/no-import-dist": "error",
1367
+ "antfu/no-import-node-modules-by-path": "error",
1365
1368
  "import/first": "error",
1366
1369
  "import/no-duplicates": "error",
1367
1370
  "import/no-mutable-exports": "error",
@@ -1396,6 +1399,14 @@ async function imports(options = {}) {
1396
1399
  }
1397
1400
  ]
1398
1401
  }
1402
+ },
1403
+ {
1404
+ files: ["**/bin/**/*", `**/bin.${GLOB_SRC_EXT}`],
1405
+ name: "antfu/imports/disables/bin",
1406
+ rules: {
1407
+ "antfu/no-import-dist": "off",
1408
+ "antfu/no-import-node-modules-by-path": "off"
1409
+ }
1399
1410
  }
1400
1411
  ];
1401
1412
  }
@@ -1415,6 +1426,7 @@ async function jsdoc(options = {}) {
1415
1426
  "jsdoc/check-param-names": ["warn", { checkDestructured: false }],
1416
1427
  "jsdoc/check-property-names": "warn",
1417
1428
  "jsdoc/check-types": "warn",
1429
+ "jsdoc/convert-to-jsdoc-comments": "warn",
1418
1430
  "jsdoc/empty-tags": "warn",
1419
1431
  "jsdoc/implements-on-classes": "warn",
1420
1432
  "jsdoc/informative-docs": "warn",
@@ -1608,6 +1620,34 @@ async function markdown(options = {}) {
1608
1620
  ];
1609
1621
  }
1610
1622
 
1623
+ // src/configs/package-json.ts
1624
+ init_cjs_shims();
1625
+ async function packageJson() {
1626
+ return [
1627
+ {
1628
+ files: ["**/package.json"],
1629
+ languageOptions: {
1630
+ parser: await interopDefault(import("jsonc-eslint-parser"))
1631
+ },
1632
+ name: "style:package-json",
1633
+ plugins: {
1634
+ "package-json": pluginPackageJson
1635
+ },
1636
+ rules: {
1637
+ "package-json/order-properties": "error",
1638
+ "package-json/repository-shorthand": "error",
1639
+ "package-json/sort-collections": "error",
1640
+ "package-json/unique-dependencies": "error",
1641
+ "package-json/valid-local-dependency": "error",
1642
+ "package-json/valid-name": "error",
1643
+ "package-json/valid-package-def": "error",
1644
+ "package-json/valid-repository-directory": "error",
1645
+ "package-json/valid-version": "error"
1646
+ }
1647
+ }
1648
+ ];
1649
+ }
1650
+
1611
1651
  // src/configs/perfectionist.ts
1612
1652
  init_cjs_shims();
1613
1653
  async function perfectionist() {
@@ -1900,7 +1940,7 @@ async function react(options = {}) {
1900
1940
  "react/no-unused-state": "warn",
1901
1941
  "react/no-useless-fragment": "warn",
1902
1942
  "react/prefer-destructuring-assignment": "warn",
1903
- "react/prefer-read-only-props": "off",
1943
+ "react/prefer-read-only-props": "error",
1904
1944
  "react/prefer-shorthand-boolean": "off",
1905
1945
  "react/prefer-shorthand-fragment": "warn",
1906
1946
  // recommended rules react-hooks
@@ -1910,6 +1950,8 @@ async function react(options = {}) {
1910
1950
  "react-hooks-extra/ensure-custom-hooks-using-other-hooks": "error",
1911
1951
  "react-hooks-extra/ensure-use-callback-has-non-empty-deps": "error",
1912
1952
  "react-hooks-extra/ensure-use-memo-has-non-empty-deps": "error",
1953
+ "react-hooks-extra/no-direct-set-state-in-use-effect": "error",
1954
+ "react-hooks-extra/no-direct-set-state-in-use-layout-effect": "error",
1913
1955
  "react-hooks-extra/prefer-use-state-lazy-initialization": "error",
1914
1956
  // recommended rules from @eslint-react/naming-convention
1915
1957
  "react-naming-convention/filename-extension": ["warn", "as-needed"],
@@ -2114,92 +2156,6 @@ async function sonarjs() {
2114
2156
 
2115
2157
  // src/configs/sort.ts
2116
2158
  init_cjs_shims();
2117
- async function sortPackageJson() {
2118
- return [
2119
- {
2120
- files: ["**/package.json"],
2121
- name: "style:sort-package-json",
2122
- rules: {
2123
- "jsonc/sort-array-values": [
2124
- "error",
2125
- {
2126
- order: { type: "asc" },
2127
- pathPattern: "^files$"
2128
- }
2129
- ],
2130
- "jsonc/sort-keys": [
2131
- "error",
2132
- {
2133
- order: [
2134
- "publisher",
2135
- "name",
2136
- "displayName",
2137
- "type",
2138
- "version",
2139
- "private",
2140
- "packageManager",
2141
- "description",
2142
- "author",
2143
- "contributors",
2144
- "license",
2145
- "funding",
2146
- "homepage",
2147
- "repository",
2148
- "bugs",
2149
- "keywords",
2150
- "categories",
2151
- "sideEffects",
2152
- "exports",
2153
- "main",
2154
- "module",
2155
- "unpkg",
2156
- "jsdelivr",
2157
- "types",
2158
- "typesVersions",
2159
- "bin",
2160
- "icon",
2161
- "files",
2162
- "engines",
2163
- "activationEvents",
2164
- "contributes",
2165
- "scripts",
2166
- "peerDependencies",
2167
- "peerDependenciesMeta",
2168
- "dependencies",
2169
- "optionalDependencies",
2170
- "devDependencies",
2171
- "pnpm",
2172
- "overrides",
2173
- "resolutions",
2174
- "husky",
2175
- "simple-git-hooks",
2176
- "lint-staged",
2177
- "eslintConfig",
2178
- "prettier"
2179
- ],
2180
- pathPattern: "^$"
2181
- },
2182
- {
2183
- order: { type: "asc" },
2184
- pathPattern: "^(?:dev|peer|optional|bundled)?[Dd]ependencies$"
2185
- },
2186
- {
2187
- order: { type: "asc" },
2188
- pathPattern: "^resolutions$"
2189
- },
2190
- {
2191
- order: { type: "asc" },
2192
- pathPattern: "^pnpm.overrides$"
2193
- },
2194
- {
2195
- order: ["types", "import", "require", "default"],
2196
- pathPattern: "^exports.*$"
2197
- }
2198
- ]
2199
- }
2200
- }
2201
- ];
2202
- }
2203
2159
  function sortTsconfig() {
2204
2160
  return [
2205
2161
  {
@@ -2464,6 +2420,7 @@ async function typescript(options = {}) {
2464
2420
  ],
2465
2421
  "ts/no-confusing-void-expression": "error",
2466
2422
  "ts/no-duplicate-type-constituents": "error",
2423
+ "ts/no-empty-object-type": "error",
2467
2424
  "ts/no-floating-promises": [
2468
2425
  "error",
2469
2426
  {
@@ -2479,6 +2436,7 @@ async function typescript(options = {}) {
2479
2436
  "ts/no-throw-literal": "off",
2480
2437
  "ts/no-unnecessary-boolean-literal-compare": "error",
2481
2438
  "ts/no-unnecessary-condition": ["error", { allowConstantLoopConditions: true }],
2439
+ "ts/no-unnecessary-parameter-property-assignment": "error",
2482
2440
  "ts/no-unnecessary-qualifier": "error",
2483
2441
  "ts/no-unnecessary-type-arguments": "error",
2484
2442
  "ts/no-unnecessary-type-assertion": "error",
@@ -2955,7 +2913,7 @@ function style(options = {}, ...userConfigs) {
2955
2913
  overrides: getOverrides(options, "jsonc"),
2956
2914
  stylistic: stylisticOptions
2957
2915
  }),
2958
- sortPackageJson(),
2916
+ packageJson(),
2959
2917
  sortTsconfig()
2960
2918
  );
2961
2919
  }
@@ -3057,6 +3015,7 @@ init_cjs_shims();
3057
3015
  jsdoc,
3058
3016
  jsonc,
3059
3017
  markdown,
3018
+ packageJson,
3060
3019
  parserPlain,
3061
3020
  perfectionist,
3062
3021
  prettier,
@@ -3068,7 +3027,6 @@ init_cjs_shims();
3068
3027
  roblox,
3069
3028
  shopify,
3070
3029
  sonarjs,
3071
- sortPackageJson,
3072
3030
  sortTsconfig,
3073
3031
  spelling,
3074
3032
  style,